@sovereignfs/ui 0.33.1 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/CheckableListRow.module.css +95 -0
- package/dist/FileDropzone.module.css +63 -0
- package/dist/IconPicker.module.css +63 -0
- package/dist/QuantityStepper.module.css +67 -0
- package/dist/SuggestionInput.module.css +103 -0
- package/dist/index.d.ts +196 -3
- package/dist/index.js +1175 -185
- package/package.json +1 -1
- package/src/components/CheckableListRow/CheckableListRow.module.css +95 -0
- package/src/components/CheckableListRow/CheckableListRow.stories.tsx +99 -0
- package/src/components/CheckableListRow/CheckableListRow.tsx +89 -0
- package/src/components/FileDropzone/FileDropzone.module.css +63 -0
- package/src/components/FileDropzone/FileDropzone.tsx +109 -0
- package/src/components/FileDropzone/__tests__/FileDropzone.test.tsx +67 -0
- package/src/components/Icon/icons/apple.tsx +21 -0
- package/src/components/Icon/icons/banana.tsx +21 -0
- package/src/components/Icon/icons/beef.tsx +22 -0
- package/src/components/Icon/icons/beer.tsx +24 -0
- package/src/components/Icon/icons/candy.tsx +24 -0
- package/src/components/Icon/icons/carrot.tsx +22 -0
- package/src/components/Icon/icons/coffee.tsx +23 -0
- package/src/components/Icon/icons/cookie.tsx +25 -0
- package/src/components/Icon/icons/croissant.tsx +24 -0
- package/src/components/Icon/icons/cup-soda.tsx +23 -0
- package/src/components/Icon/icons/drumstick.tsx +21 -0
- package/src/components/Icon/icons/egg.tsx +20 -0
- package/src/components/Icon/icons/external-link.tsx +22 -0
- package/src/components/Icon/icons/file.tsx +21 -0
- package/src/components/Icon/icons/fish.tsx +25 -0
- package/src/components/Icon/icons/index.ts +93 -1
- package/src/components/Icon/icons/milk.tsx +22 -0
- package/src/components/Icon/icons/pizza.tsx +24 -0
- package/src/components/Icon/icons/salad.tsx +24 -0
- package/src/components/Icon/icons/shopping-basket.tsx +26 -0
- package/src/components/Icon/icons/snowflake.tsx +31 -0
- package/src/components/Icon/icons/spray-can.tsx +29 -0
- package/src/components/Icon/icons/upload.tsx +22 -0
- package/src/components/Icon/icons/wine.tsx +23 -0
- package/src/components/IconPicker/IconPicker.module.css +63 -0
- package/src/components/IconPicker/IconPicker.stories.tsx +84 -0
- package/src/components/IconPicker/IconPicker.tsx +90 -0
- package/src/components/QuantityStepper/QuantityStepper.module.css +67 -0
- package/src/components/QuantityStepper/QuantityStepper.stories.tsx +79 -0
- package/src/components/QuantityStepper/QuantityStepper.tsx +107 -0
- package/src/components/SuggestionInput/SuggestionInput.module.css +103 -0
- package/src/components/SuggestionInput/SuggestionInput.stories.tsx +144 -0
- package/src/components/SuggestionInput/SuggestionInput.tsx +207 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useCommitOnEnterOrBlur.ts +39 -0
- package/src/index.ts +21 -2
- package/src/stories/DesignSystemOverview.stories.tsx +134 -1
- package/src/stories/FileDropzone.stories.tsx +69 -0
- package/src/stories/InteractionHooks.stories.tsx +55 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function CoffeeIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M10 2v2" />
|
|
18
|
+
<path d="M14 2v2" />
|
|
19
|
+
<path d="M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1" />
|
|
20
|
+
<path d="M6 2v2" />
|
|
21
|
+
</svg>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function CookieIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5" />
|
|
18
|
+
<path d="M8.5 8.5v.01" />
|
|
19
|
+
<path d="M16 15.5v.01" />
|
|
20
|
+
<path d="M12 12v.01" />
|
|
21
|
+
<path d="M11 17v.01" />
|
|
22
|
+
<path d="M7 14v.01" />
|
|
23
|
+
</svg>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function CroissantIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M10.2 18H4.774a1.5 1.5 0 0 1-1.352-.97 11 11 0 0 1 .132-6.487" />
|
|
18
|
+
<path d="M18 10.2V4.774a1.5 1.5 0 0 0-.97-1.352 11 11 0 0 0-6.486.132" />
|
|
19
|
+
<path d="M18 5a4 3 0 0 1 4 3 2 2 0 0 1-2 2 10 10 0 0 0-5.139 1.42" />
|
|
20
|
+
<path d="M5 18a3 4 0 0 0 3 4 2 2 0 0 0 2-2 10 10 0 0 1 1.42-5.14" />
|
|
21
|
+
<path d="M8.709 2.554a10 10 0 0 0-6.155 6.155 1.5 1.5 0 0 0 .676 1.626l9.807 5.42a2 2 0 0 0 2.718-2.718l-5.42-9.807a1.5 1.5 0 0 0-1.626-.676" />
|
|
22
|
+
</svg>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function CupSodaIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="m6 8 1.75 12.28a2 2 0 0 0 2 1.72h4.54a2 2 0 0 0 2-1.72L18 8" />
|
|
18
|
+
<path d="M5 8h14" />
|
|
19
|
+
<path d="M7 15a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0" />
|
|
20
|
+
<path d="m12 8 1-6h2" />
|
|
21
|
+
</svg>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function DrumstickIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M15.4 15.63a7.875 6 135 1 1 6.23-6.23 4.5 3.43 135 0 0-6.23 6.23" />
|
|
18
|
+
<path d="m8.29 12.71-2.6 2.6a2.5 2.5 0 1 0-1.65 4.65A2.5 2.5 0 1 0 8.7 18.3l2.59-2.59" />
|
|
19
|
+
</svg>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function EggIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M12 2C8 2 4 8 4 14a8 8 0 0 0 16 0c0-6-4-12-8-12" />
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function ExternalLinkIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M15 3h6v6" />
|
|
18
|
+
<path d="M10 14 21 3" />
|
|
19
|
+
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" />
|
|
20
|
+
</svg>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function FileIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" />
|
|
18
|
+
<path d="M14 2v5a1 1 0 0 0 1 1h5" />
|
|
19
|
+
</svg>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function FishIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z" />
|
|
18
|
+
<path d="M18 12v.5" />
|
|
19
|
+
<path d="M16 17.93a9.77 9.77 0 0 1 0-11.86" />
|
|
20
|
+
<path d="M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33" />
|
|
21
|
+
<path d="M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4" />
|
|
22
|
+
<path d="m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98" />
|
|
23
|
+
</svg>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -29,6 +29,29 @@ import { AlertTriangleIcon } from './alert-triangle';
|
|
|
29
29
|
import { CalendarIcon } from './calendar';
|
|
30
30
|
import { SlidersHorizontalIcon } from './sliders-horizontal';
|
|
31
31
|
import { EllipsisVerticalIcon } from './ellipsis-vertical';
|
|
32
|
+
import { FileIcon } from './file';
|
|
33
|
+
import { UploadIcon } from './upload';
|
|
34
|
+
import { ExternalLinkIcon } from './external-link';
|
|
35
|
+
import { BananaIcon } from './banana';
|
|
36
|
+
import { AppleIcon } from './apple';
|
|
37
|
+
import { CarrotIcon } from './carrot';
|
|
38
|
+
import { EggIcon } from './egg';
|
|
39
|
+
import { BeefIcon } from './beef';
|
|
40
|
+
import { FishIcon } from './fish';
|
|
41
|
+
import { CoffeeIcon } from './coffee';
|
|
42
|
+
import { WineIcon } from './wine';
|
|
43
|
+
import { BeerIcon } from './beer';
|
|
44
|
+
import { CookieIcon } from './cookie';
|
|
45
|
+
import { PizzaIcon } from './pizza';
|
|
46
|
+
import { CandyIcon } from './candy';
|
|
47
|
+
import { SaladIcon } from './salad';
|
|
48
|
+
import { MilkIcon } from './milk';
|
|
49
|
+
import { DrumstickIcon } from './drumstick';
|
|
50
|
+
import { CroissantIcon } from './croissant';
|
|
51
|
+
import { CupSodaIcon } from './cup-soda';
|
|
52
|
+
import { SprayCanIcon } from './spray-can';
|
|
53
|
+
import { SnowflakeIcon } from './snowflake';
|
|
54
|
+
import { ShoppingBasketIcon } from './shopping-basket';
|
|
32
55
|
|
|
33
56
|
export type IconName =
|
|
34
57
|
| 'house'
|
|
@@ -59,7 +82,30 @@ export type IconName =
|
|
|
59
82
|
| 'alert-triangle'
|
|
60
83
|
| 'calendar'
|
|
61
84
|
| 'sliders-horizontal'
|
|
62
|
-
| 'ellipsis-vertical'
|
|
85
|
+
| 'ellipsis-vertical'
|
|
86
|
+
| 'file'
|
|
87
|
+
| 'upload'
|
|
88
|
+
| 'external-link'
|
|
89
|
+
| 'banana'
|
|
90
|
+
| 'apple'
|
|
91
|
+
| 'carrot'
|
|
92
|
+
| 'egg'
|
|
93
|
+
| 'beef'
|
|
94
|
+
| 'fish'
|
|
95
|
+
| 'coffee'
|
|
96
|
+
| 'wine'
|
|
97
|
+
| 'beer'
|
|
98
|
+
| 'cookie'
|
|
99
|
+
| 'pizza'
|
|
100
|
+
| 'candy'
|
|
101
|
+
| 'salad'
|
|
102
|
+
| 'milk'
|
|
103
|
+
| 'drumstick'
|
|
104
|
+
| 'croissant'
|
|
105
|
+
| 'cup-soda'
|
|
106
|
+
| 'spray-can'
|
|
107
|
+
| 'snowflake'
|
|
108
|
+
| 'shopping-basket';
|
|
63
109
|
|
|
64
110
|
export type IconComponent = (props: SVGProps<SVGSVGElement>) => ReactElement;
|
|
65
111
|
|
|
@@ -93,6 +139,29 @@ export const ICONS: Record<IconName, IconComponent> = {
|
|
|
93
139
|
calendar: CalendarIcon,
|
|
94
140
|
'sliders-horizontal': SlidersHorizontalIcon,
|
|
95
141
|
'ellipsis-vertical': EllipsisVerticalIcon,
|
|
142
|
+
file: FileIcon,
|
|
143
|
+
upload: UploadIcon,
|
|
144
|
+
'external-link': ExternalLinkIcon,
|
|
145
|
+
banana: BananaIcon,
|
|
146
|
+
apple: AppleIcon,
|
|
147
|
+
carrot: CarrotIcon,
|
|
148
|
+
egg: EggIcon,
|
|
149
|
+
beef: BeefIcon,
|
|
150
|
+
fish: FishIcon,
|
|
151
|
+
coffee: CoffeeIcon,
|
|
152
|
+
wine: WineIcon,
|
|
153
|
+
beer: BeerIcon,
|
|
154
|
+
cookie: CookieIcon,
|
|
155
|
+
pizza: PizzaIcon,
|
|
156
|
+
candy: CandyIcon,
|
|
157
|
+
salad: SaladIcon,
|
|
158
|
+
milk: MilkIcon,
|
|
159
|
+
drumstick: DrumstickIcon,
|
|
160
|
+
croissant: CroissantIcon,
|
|
161
|
+
'cup-soda': CupSodaIcon,
|
|
162
|
+
'spray-can': SprayCanIcon,
|
|
163
|
+
snowflake: SnowflakeIcon,
|
|
164
|
+
'shopping-basket': ShoppingBasketIcon,
|
|
96
165
|
};
|
|
97
166
|
|
|
98
167
|
export { HouseIcon } from './house';
|
|
@@ -124,3 +193,26 @@ export { AlertTriangleIcon } from './alert-triangle';
|
|
|
124
193
|
export { CalendarIcon } from './calendar';
|
|
125
194
|
export { SlidersHorizontalIcon } from './sliders-horizontal';
|
|
126
195
|
export { EllipsisVerticalIcon } from './ellipsis-vertical';
|
|
196
|
+
export { FileIcon } from './file';
|
|
197
|
+
export { UploadIcon } from './upload';
|
|
198
|
+
export { ExternalLinkIcon } from './external-link';
|
|
199
|
+
export { BananaIcon } from './banana';
|
|
200
|
+
export { AppleIcon } from './apple';
|
|
201
|
+
export { CarrotIcon } from './carrot';
|
|
202
|
+
export { EggIcon } from './egg';
|
|
203
|
+
export { BeefIcon } from './beef';
|
|
204
|
+
export { FishIcon } from './fish';
|
|
205
|
+
export { CoffeeIcon } from './coffee';
|
|
206
|
+
export { WineIcon } from './wine';
|
|
207
|
+
export { BeerIcon } from './beer';
|
|
208
|
+
export { CookieIcon } from './cookie';
|
|
209
|
+
export { PizzaIcon } from './pizza';
|
|
210
|
+
export { CandyIcon } from './candy';
|
|
211
|
+
export { SaladIcon } from './salad';
|
|
212
|
+
export { MilkIcon } from './milk';
|
|
213
|
+
export { DrumstickIcon } from './drumstick';
|
|
214
|
+
export { CroissantIcon } from './croissant';
|
|
215
|
+
export { CupSodaIcon } from './cup-soda';
|
|
216
|
+
export { SprayCanIcon } from './spray-can';
|
|
217
|
+
export { SnowflakeIcon } from './snowflake';
|
|
218
|
+
export { ShoppingBasketIcon } from './shopping-basket';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function MilkIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M8 2h8" />
|
|
18
|
+
<path d="M9 2v2.789a4 4 0 0 1-.672 2.219l-.656.984A4 4 0 0 0 7 10.212V20a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-9.789a4 4 0 0 0-.672-2.219l-.656-.984A4 4 0 0 1 15 4.788V2" />
|
|
19
|
+
<path d="M7 15a6.472 6.472 0 0 1 5 0 6.47 6.47 0 0 0 5 0" />
|
|
20
|
+
</svg>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function PizzaIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="m12 14-1 1" />
|
|
18
|
+
<path d="m13.75 18.25-1.25 1.42" />
|
|
19
|
+
<path d="M17.775 5.654a15.68 15.68 0 0 0-12.121 12.12" />
|
|
20
|
+
<path d="M18.8 9.3a1 1 0 0 0 2.1 7.7" />
|
|
21
|
+
<path d="M21.964 20.732a1 1 0 0 1-1.232 1.232l-18-5a1 1 0 0 1-.695-1.232A19.68 19.68 0 0 1 15.732 2.037a1 1 0 0 1 1.232.695z" />
|
|
22
|
+
</svg>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function SaladIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M7 21h10" />
|
|
18
|
+
<path d="M12 21a9 9 0 0 0 9-9H3a9 9 0 0 0 9 9Z" />
|
|
19
|
+
<path d="M11.38 12a2.4 2.4 0 0 1-.4-4.77 2.4 2.4 0 0 1 3.2-2.77 2.4 2.4 0 0 1 3.47-.63 2.4 2.4 0 0 1 3.37 3.37 2.4 2.4 0 0 1-1.1 3.7 2.51 2.51 0 0 1 .03 1.1" />
|
|
20
|
+
<path d="m13 12 4-4" />
|
|
21
|
+
<path d="M10.9 7.25A3.99 3.99 0 0 0 4 10c0 .73.2 1.41.54 2" />
|
|
22
|
+
</svg>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function ShoppingBasketIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="m15 11-1 9" />
|
|
18
|
+
<path d="m19 11-4-7" />
|
|
19
|
+
<path d="M2 11h20" />
|
|
20
|
+
<path d="m3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4" />
|
|
21
|
+
<path d="M4.5 15.5h15" />
|
|
22
|
+
<path d="m5 11 4-7" />
|
|
23
|
+
<path d="m9 11 1 9" />
|
|
24
|
+
</svg>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function SnowflakeIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="m10 20-1.25-2.5L6 18" />
|
|
18
|
+
<path d="M10 4 8.75 6.5 6 6" />
|
|
19
|
+
<path d="m14 20 1.25-2.5L18 18" />
|
|
20
|
+
<path d="m14 4 1.25 2.5L18 6" />
|
|
21
|
+
<path d="m17 21-3-6h-4" />
|
|
22
|
+
<path d="m17 3-3 6 1.5 3" />
|
|
23
|
+
<path d="M2 12h6.5L10 9" />
|
|
24
|
+
<path d="m20 10-1.5 2 1.5 2" />
|
|
25
|
+
<path d="M22 12h-6.5L14 15" />
|
|
26
|
+
<path d="m4 10 1.5 2L4 14" />
|
|
27
|
+
<path d="m7 21 3-6-1.5-3" />
|
|
28
|
+
<path d="m7 3 3 6h4" />
|
|
29
|
+
</svg>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function SprayCanIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M3 3h.01" />
|
|
18
|
+
<path d="M7 5h.01" />
|
|
19
|
+
<path d="M11 7h.01" />
|
|
20
|
+
<path d="M3 7h.01" />
|
|
21
|
+
<path d="M7 9h.01" />
|
|
22
|
+
<path d="M3 11h.01" />
|
|
23
|
+
<rect width="4" height="4" x="15" y="5" />
|
|
24
|
+
<path d="m19 9 2 2v10c0 .6-.4 1-1 1h-6c-.6 0-1-.4-1-1V11l2-2" />
|
|
25
|
+
<path d="m13 14 8-2" />
|
|
26
|
+
<path d="m13 19 8-2" />
|
|
27
|
+
</svg>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function UploadIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M12 3v12" />
|
|
18
|
+
<path d="m17 8-5-5-5 5" />
|
|
19
|
+
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
|
|
20
|
+
</svg>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Generated by scripts/generate-icons.ts — do not edit.
|
|
2
|
+
// Source: Lucide (https://lucide.dev) — ISC license, see packages/ui/NOTICE.
|
|
3
|
+
import type { SVGProps } from 'react';
|
|
4
|
+
|
|
5
|
+
export function WineIcon(props: SVGProps<SVGSVGElement>) {
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
stroke="currentColor"
|
|
12
|
+
strokeWidth="2"
|
|
13
|
+
strokeLinecap="round"
|
|
14
|
+
strokeLinejoin="round"
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M8 22h8" />
|
|
18
|
+
<path d="M7 10h10" />
|
|
19
|
+
<path d="M12 15v7" />
|
|
20
|
+
<path d="M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z" />
|
|
21
|
+
</svg>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
.trigger {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
gap: var(--sv-space-2);
|
|
5
|
+
padding: var(--sv-space-2);
|
|
6
|
+
border: 1px solid var(--sv-color-border-strong);
|
|
7
|
+
border-radius: var(--sv-radius-md);
|
|
8
|
+
background: var(--sv-color-surface);
|
|
9
|
+
color: var(--sv-color-text-primary);
|
|
10
|
+
cursor: pointer;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.trigger:hover {
|
|
14
|
+
background: var(--sv-color-surface-sunken);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.trigger:disabled {
|
|
18
|
+
opacity: 0.5;
|
|
19
|
+
cursor: not-allowed;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.placeholder {
|
|
23
|
+
display: flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
justify-content: center;
|
|
26
|
+
width: var(--sv-icon-size-md);
|
|
27
|
+
height: var(--sv-icon-size-md);
|
|
28
|
+
color: var(--sv-color-text-subtle);
|
|
29
|
+
font-size: var(--sv-font-size-sm);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.triggerLabel {
|
|
33
|
+
font-size: var(--sv-font-size-sm);
|
|
34
|
+
color: var(--sv-color-text-primary);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.grid {
|
|
38
|
+
display: grid;
|
|
39
|
+
grid-template-columns: repeat(5, 1fr);
|
|
40
|
+
gap: var(--sv-space-1);
|
|
41
|
+
padding: var(--sv-space-2);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.option {
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
width: var(--sv-touch-target-min);
|
|
49
|
+
height: var(--sv-touch-target-min);
|
|
50
|
+
border: none;
|
|
51
|
+
border-radius: var(--sv-radius-sm);
|
|
52
|
+
background: transparent;
|
|
53
|
+
color: var(--sv-color-text-primary);
|
|
54
|
+
cursor: pointer;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.option:hover {
|
|
58
|
+
background: var(--sv-color-surface-sunken);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.optionSelected {
|
|
62
|
+
background: var(--sv-color-accent-subtle);
|
|
63
|
+
}
|