SPB Git forge

spb/resto-ka

Public

Resto·Ka — tous les restaurants du Québec, menus complets et prix réels (famille ·Ka)

52commits 1branches 0releases
11.6 MBsize
maindefault branch
19 days agolast push
Python 69.3% TypeScript 16.7% CSS 7.9% JavaScript 4.7% HTML 1.4%
3.1 KB · 87 lines tsx
Raw Blame History
1// ==============================================================================2// Author: Simon-Pierre Boucher <contact@spboucher.ai>3// File:   components/Icons.tsx4// Desc:   Icônes SVG inline (traits 2 u, coins ronds) — même style que Lou·Ka.5// ==============================================================================6interface IcoProps { size?: number; strokeWidth?: number }78const base = (size: number) => ({9  width: size, height: size, viewBox: "0 0 24 24", fill: "none",10  stroke: "currentColor", strokeLinecap: "round" as const,11  strokeLinejoin: "round" as const,12});1314export const IcoSearch = ({ size = 18, strokeWidth = 2 }: IcoProps) => (15  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">16    <circle cx="11" cy="11" r="7" />17    <path d="m20 20-3.8-3.8" />18  </svg>19);2021export const IcoPlate = ({ size = 18, strokeWidth = 2 }: IcoProps) => (22  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">23    <circle cx="12" cy="12" r="9" />24    <circle cx="12" cy="12" r="3.5" />25  </svg>26);2728export const IcoChart = ({ size = 18, strokeWidth = 2 }: IcoProps) => (29  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">30    <path d="M4 20V10M10 20V4M16 20v-7M21 20H3" />31  </svg>32);3334export const IcoFolder = ({ size = 18, strokeWidth = 2 }: IcoProps) => (35  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">36    <path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z" />37  </svg>38);3940export const IcoPin = ({ size = 18, strokeWidth = 2 }: IcoProps) => (41  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">42    <path d="M12 21s-7-5.4-7-11a7 7 0 0 1 14 0c0 5.6-7 11-7 11Z" />43    <circle cx="12" cy="10" r="2.6" />44  </svg>45);4647export const IcoTag = ({ size = 18, strokeWidth = 2 }: IcoProps) => (48  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">49    <path d="M3 3h8l10 10-8 8L3 11Z" />50    <circle cx="8" cy="8" r="1.6" />51  </svg>52);5354export const IcoClock = ({ size = 18, strokeWidth = 2 }: IcoProps) => (55  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">56    <circle cx="12" cy="12" r="9" />57    <path d="M12 7v5l3.2 2" />58  </svg>59);6061export const IcoCompass = ({ size = 18, strokeWidth = 2 }: IcoProps) => (62  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">63    <circle cx="12" cy="12" r="9" />64    <path d="m15.5 8.5-2 5-5 2 2-5Z" />65  </svg>66);6768export const IcoLeaf = ({ size = 18, strokeWidth = 2 }: IcoProps) => (69  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">70    <path d="M5 19C5 9 12 4 20 4c0 8-5 15-15 15Z" />71    <path d="M5 19c3-5 7-8 11-10" />72  </svg>73);7475export const IcoBag = ({ size = 18, strokeWidth = 2 }: IcoProps) => (76  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">77    <path d="M6 8h12l-1 12H7L6 8Z" />78    <path d="M9 8a3 3 0 0 1 6 0" />79  </svg>80);8182export const IcoHeart = ({ size = 18, strokeWidth = 2 }: IcoProps) => (83  <svg {...base(size)} strokeWidth={strokeWidth} aria-hidden="true">84    <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" />85  </svg>86);87