@shadow-js/ui 0.0.0-stage → 1.0.1
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/CHANGELOG.md +30 -0
- package/LICENSE +21 -0
- package/README.md +598 -2
- package/dist/cli.mjs +2281 -0
- package/dist/dev/cli/schema.d.ts +71 -0
- package/dist/dev/index.d.ts +6 -0
- package/dist/dev/index.js +5 -0
- package/dist/dev/locales/ar.d.ts +139 -0
- package/dist/dev/locales/ar.js +127 -0
- package/dist/dev/locales/ar.js.map +1 -0
- package/dist/dev/locales/en.d.ts +139 -0
- package/dist/dev/locales/en.js +127 -0
- package/dist/dev/locales/en.js.map +1 -0
- package/dist/dev/registry/utils/utils.d.ts +27 -0
- package/dist/dev/registry/utils/utils.js +26 -0
- package/dist/dev/registry/utils/utils.js.map +1 -0
- package/dist/dev/theme/theme-logic.d.ts +185 -0
- package/dist/dev/theme/theme-logic.js +183 -0
- package/dist/dev/theme/theme-logic.js.map +1 -0
- package/dist/dev/theme/theme-provider.d.ts +88 -0
- package/dist/dev/theme/theme-provider.js +149 -0
- package/dist/dev/theme/theme-provider.js.map +1 -0
- package/dist/prod/index.js +1 -0
- package/dist/prod/locales/ar.js +2 -0
- package/dist/prod/locales/ar.js.map +1 -0
- package/dist/prod/locales/en.js +2 -0
- package/dist/prod/locales/en.js.map +1 -0
- package/dist/prod/registry/utils/utils.js +2 -0
- package/dist/prod/registry/utils/utils.js.map +1 -0
- package/dist/prod/theme/theme-logic.js +2 -0
- package/dist/prod/theme/theme-logic.js.map +1 -0
- package/dist/prod/theme/theme-provider.js +2 -0
- package/dist/prod/theme/theme-provider.js.map +1 -0
- package/package.json +102 -4
- package/registry/accordion/accordion.tsx +210 -0
- package/registry/accordion/item.json +4 -0
- package/registry/alert/alert.tsx +200 -0
- package/registry/alert/item.json +4 -0
- package/registry/alert-dialog/alert-dialog.tsx +530 -0
- package/registry/alert-dialog/item.json +4 -0
- package/registry/aspect-ratio/aspect-ratio.tsx +71 -0
- package/registry/aspect-ratio/item.json +4 -0
- package/registry/attachment/attachment.tsx +459 -0
- package/registry/attachment/item.json +4 -0
- package/registry/avatar/avatar.tsx +385 -0
- package/registry/avatar/item.json +4 -0
- package/registry/badge/badge.tsx +108 -0
- package/registry/badge/item.json +4 -0
- package/registry/breadcrumb/breadcrumb.tsx +354 -0
- package/registry/breadcrumb/item.json +4 -0
- package/registry/bubble/bubble.tsx +260 -0
- package/registry/bubble/item.json +4 -0
- package/registry/button/button.tsx +125 -0
- package/registry/button/item.json +4 -0
- package/registry/button-group/button-group.tsx +189 -0
- package/registry/button-group/item.json +4 -0
- package/registry/calendar/calendar.tsx +348 -0
- package/registry/calendar/item.json +4 -0
- package/registry/card/card.tsx +311 -0
- package/registry/card/item.json +4 -0
- package/registry/carousel/carousel.tsx +851 -0
- package/registry/carousel/item.json +4 -0
- package/registry/chart/chart.tsx +1956 -0
- package/registry/chart/item.json +4 -0
- package/registry/chart-scale/chart-scale.ts +670 -0
- package/registry/chart-scale/item.json +5 -0
- package/registry/checkbox/checkbox.tsx +79 -0
- package/registry/checkbox/item.json +4 -0
- package/registry/code-block/code-block.tsx +470 -0
- package/registry/code-block/item.json +4 -0
- package/registry/collapsible/collapsible.tsx +117 -0
- package/registry/collapsible/item.json +4 -0
- package/registry/combobox/combobox.tsx +977 -0
- package/registry/combobox/item.json +4 -0
- package/registry/command/command.tsx +757 -0
- package/registry/command/item.json +4 -0
- package/registry/context-menu/context-menu.tsx +697 -0
- package/registry/context-menu/item.json +4 -0
- package/registry/data-table/data-table.tsx +437 -0
- package/registry/data-table/item.json +4 -0
- package/registry/date-picker/date-picker.tsx +349 -0
- package/registry/date-picker/item.json +4 -0
- package/registry/dialog/dialog.tsx +412 -0
- package/registry/dialog/item.json +4 -0
- package/registry/direction/direction.tsx +88 -0
- package/registry/direction/item.json +4 -0
- package/registry/drawer/drawer.tsx +787 -0
- package/registry/drawer/item.json +4 -0
- package/registry/dropdown-menu/dropdown-menu.tsx +692 -0
- package/registry/dropdown-menu/item.json +4 -0
- package/registry/empty/empty.tsx +240 -0
- package/registry/empty/item.json +4 -0
- package/registry/field/field.tsx +624 -0
- package/registry/field/item.json +4 -0
- package/registry/form/form.tsx +1112 -0
- package/registry/form/item.json +4 -0
- package/registry/hover-card/hover-card.tsx +144 -0
- package/registry/hover-card/item.json +4 -0
- package/registry/icons/icons.tsx +1691 -0
- package/registry/icons/item.json +4 -0
- package/registry/input/input.tsx +43 -0
- package/registry/input/item.json +4 -0
- package/registry/input-group/input-group.tsx +315 -0
- package/registry/input-group/item.json +4 -0
- package/registry/input-otp/input-otp.tsx +329 -0
- package/registry/input-otp/item.json +4 -0
- package/registry/item/item.json +4 -0
- package/registry/item/item.tsx +439 -0
- package/registry/kbd/item.json +4 -0
- package/registry/kbd/kbd.tsx +65 -0
- package/registry/label/item.json +4 -0
- package/registry/label/label.tsx +60 -0
- package/registry/marker/item.json +4 -0
- package/registry/marker/marker.tsx +175 -0
- package/registry/menubar/item.json +4 -0
- package/registry/menubar/menubar.tsx +694 -0
- package/registry/message/item.json +4 -0
- package/registry/message/message.tsx +280 -0
- package/registry/message-scroller/item.json +4 -0
- package/registry/message-scroller/message-scroller.tsx +262 -0
- package/registry/native-select/item.json +4 -0
- package/registry/native-select/native-select.tsx +113 -0
- package/registry/navigation-menu/item.json +4 -0
- package/registry/navigation-menu/navigation-menu.tsx +362 -0
- package/registry/pagination/item.json +4 -0
- package/registry/pagination/pagination.tsx +460 -0
- package/registry/password-input/item.json +5 -0
- package/registry/password-input/password-input.tsx +494 -0
- package/registry/popover/item.json +4 -0
- package/registry/popover/popover.tsx +284 -0
- package/registry/progress/item.json +4 -0
- package/registry/progress/progress.tsx +190 -0
- package/registry/questionnaire/item.json +4 -0
- package/registry/questionnaire/questionnaire.tsx +569 -0
- package/registry/radio-group/item.json +4 -0
- package/registry/radio-group/radio-group.tsx +101 -0
- package/registry/resizable/item.json +4 -0
- package/registry/resizable/resizable.tsx +455 -0
- package/registry/scroll-area/item.json +4 -0
- package/registry/scroll-area/scroll-area.tsx +149 -0
- package/registry/select/item.json +4 -0
- package/registry/select/select.tsx +571 -0
- package/registry/separator/item.json +4 -0
- package/registry/separator/separator.tsx +52 -0
- package/registry/sheet/item.json +4 -0
- package/registry/sheet/sheet.tsx +476 -0
- package/registry/sidebar/item.json +4 -0
- package/registry/sidebar/sidebar.tsx +1870 -0
- package/registry/skeleton/item.json +4 -0
- package/registry/skeleton/skeleton.tsx +47 -0
- package/registry/slider/item.json +4 -0
- package/registry/slider/slider.tsx +149 -0
- package/registry/spinner/item.json +4 -0
- package/registry/spinner/spinner.tsx +51 -0
- package/registry/switch/item.json +4 -0
- package/registry/switch/switch.tsx +93 -0
- package/registry/table/item.json +4 -0
- package/registry/table/table.tsx +373 -0
- package/registry/tabs/item.json +4 -0
- package/registry/tabs/tabs.tsx +209 -0
- package/registry/textarea/item.json +4 -0
- package/registry/textarea/textarea.tsx +51 -0
- package/registry/toast/item.json +4 -0
- package/registry/toast/toast.tsx +949 -0
- package/registry/toggle/item.json +4 -0
- package/registry/toggle/toggle.tsx +110 -0
- package/registry/toggle-group/item.json +4 -0
- package/registry/toggle-group/toggle-group.tsx +189 -0
- package/registry/tooltip/item.json +4 -0
- package/registry/tooltip/tooltip.tsx +169 -0
- package/registry/trace/item.json +4 -0
- package/registry/trace/trace.tsx +356 -0
- package/registry/ui-strings/item.json +5 -0
- package/registry/ui-strings/ui-strings.tsx +454 -0
- package/registry/use-highlighted-code/item.json +5 -0
- package/registry/use-highlighted-code/use-highlighted-code.tsx +145 -0
- package/registry/use-mobile/item.json +5 -0
- package/registry/use-mobile/use-mobile.ts +46 -0
- package/registry/utils/item.json +5 -0
- package/registry/utils/utils.ts +38 -0
- package/registry.json +3274 -0
- package/styles/animations.css +321 -0
- package/styles/theme-core.css +55 -0
- package/styles/theme.css +12 -0
- package/styles/themes/gray.css +69 -0
- package/styles/themes/neutral.css +69 -0
- package/styles/themes/slate.css +69 -0
- package/styles/themes/stone.css +69 -0
- package/styles/themes/zinc.css +69 -0
- package/styles/typeset.css +251 -0
|
@@ -0,0 +1,1691 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The icons the components use, as inline SVG (24x24, stroke 2). The shapes follow the Lucide set
|
|
3
|
+
* (ISC license, https://lucide.dev). Swap in any icon library by editing the imports of the
|
|
4
|
+
* components that use these.
|
|
5
|
+
*/
|
|
6
|
+
import { splitProps } from "@shadow-js/core";
|
|
7
|
+
import type { ComponentProps, JSX } from "@shadow-js/web";
|
|
8
|
+
import { cn } from "@/lib/utils";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Props of every icon: the attributes of an `<svg>`.
|
|
12
|
+
*
|
|
13
|
+
* Every icon renders at `size-4` by default. Pass `class` to change the size or color; the classes
|
|
14
|
+
* are merged with `cn`, so your utilities win over the defaults. Icons are decorative and carry
|
|
15
|
+
* `aria-hidden="true"`. When an icon carries meaning on its own, pass `aria-hidden="false"` and an
|
|
16
|
+
* `aria-label`.
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @see {@link CheckIcon}
|
|
19
|
+
* @see {@link XIcon}
|
|
20
|
+
*/
|
|
21
|
+
export type IconProps = ComponentProps<"svg">;
|
|
22
|
+
|
|
23
|
+
/** The shared `<svg>` frame. */
|
|
24
|
+
function Icon(props: IconProps): JSX.Element {
|
|
25
|
+
const [local, rest] = splitProps(props, ["class", "children"]);
|
|
26
|
+
return (
|
|
27
|
+
<svg
|
|
28
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
29
|
+
width="24"
|
|
30
|
+
height="24"
|
|
31
|
+
viewBox="0 0 24 24"
|
|
32
|
+
fill="none"
|
|
33
|
+
stroke="currentColor"
|
|
34
|
+
stroke-width="2"
|
|
35
|
+
stroke-linecap="round"
|
|
36
|
+
stroke-linejoin="round"
|
|
37
|
+
aria-hidden="true"
|
|
38
|
+
class={cn("size-4", local.class)}
|
|
39
|
+
{...rest}
|
|
40
|
+
>
|
|
41
|
+
{local.children}
|
|
42
|
+
</svg>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* A check mark. Use it for a selected item or a completed step.
|
|
48
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
49
|
+
* @returns The icon element.
|
|
50
|
+
* @example
|
|
51
|
+
* ```tsx
|
|
52
|
+
* import { CheckIcon } from "@/components/ui/icons";
|
|
53
|
+
*
|
|
54
|
+
* export const Selected = <CheckIcon class="size-4 text-primary" />;
|
|
55
|
+
* ```
|
|
56
|
+
* @since 1.0.0
|
|
57
|
+
* @see {@link IconProps}
|
|
58
|
+
*/
|
|
59
|
+
function CheckIcon(props: IconProps): JSX.Element {
|
|
60
|
+
return (
|
|
61
|
+
<Icon {...props}>
|
|
62
|
+
<path d="M20 6 9 17l-5-5" />
|
|
63
|
+
</Icon>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* A minus sign. Use it for the indeterminate state of a checkbox.
|
|
69
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
70
|
+
* @returns The icon element.
|
|
71
|
+
* @example
|
|
72
|
+
* ```tsx
|
|
73
|
+
* import { MinusIcon } from "@/components/ui/icons";
|
|
74
|
+
*
|
|
75
|
+
* export const Partial = <MinusIcon class="size-4" />;
|
|
76
|
+
* ```
|
|
77
|
+
* @since 1.0.0
|
|
78
|
+
* @see {@link IconProps}
|
|
79
|
+
*/
|
|
80
|
+
function MinusIcon(props: IconProps): JSX.Element {
|
|
81
|
+
return (
|
|
82
|
+
<Icon {...props}>
|
|
83
|
+
<path d="M5 12h14" />
|
|
84
|
+
</Icon>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* A ring that is filled with `fill-current` (or `fill-primary`). Radio buttons and menu radio items
|
|
90
|
+
* use it as the selected mark.
|
|
91
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
92
|
+
* @returns The icon element.
|
|
93
|
+
* @example
|
|
94
|
+
* ```tsx
|
|
95
|
+
* import { CircleIcon } from "@/components/ui/icons";
|
|
96
|
+
*
|
|
97
|
+
* export const Option = <CircleIcon class="size-2 fill-current" />;
|
|
98
|
+
* ```
|
|
99
|
+
* @since 1.0.0
|
|
100
|
+
* @see {@link IconProps}
|
|
101
|
+
*/
|
|
102
|
+
function CircleIcon(props: IconProps): JSX.Element {
|
|
103
|
+
return (
|
|
104
|
+
<Icon {...props}>
|
|
105
|
+
<circle cx="12" cy="12" r="10" />
|
|
106
|
+
</Icon>
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* A cross. Use it for closing a panel or clearing a value.
|
|
112
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
113
|
+
* @returns The icon element.
|
|
114
|
+
* @example
|
|
115
|
+
* ```tsx
|
|
116
|
+
* import { XIcon } from "@/components/ui/icons";
|
|
117
|
+
*
|
|
118
|
+
* export const Close = <XIcon class="size-4" aria-hidden="false" aria-label="Close" />;
|
|
119
|
+
* ```
|
|
120
|
+
* @since 1.0.0
|
|
121
|
+
* @see {@link IconProps}
|
|
122
|
+
*/
|
|
123
|
+
function XIcon(props: IconProps): JSX.Element {
|
|
124
|
+
return (
|
|
125
|
+
<Icon {...props}>
|
|
126
|
+
<path d="M18 6 6 18" />
|
|
127
|
+
<path d="m6 6 12 12" />
|
|
128
|
+
</Icon>
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* A chevron pointing down. Use it in select and disclosure triggers.
|
|
134
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
135
|
+
* @returns The icon element.
|
|
136
|
+
* @example
|
|
137
|
+
* ```tsx
|
|
138
|
+
* import { ChevronDownIcon } from "@/components/ui/icons";
|
|
139
|
+
*
|
|
140
|
+
* export const Caret = <ChevronDownIcon class="size-4 opacity-50" />;
|
|
141
|
+
* ```
|
|
142
|
+
* @since 1.0.0
|
|
143
|
+
* @see {@link IconProps}
|
|
144
|
+
*/
|
|
145
|
+
function ChevronDownIcon(props: IconProps): JSX.Element {
|
|
146
|
+
return (
|
|
147
|
+
<Icon {...props}>
|
|
148
|
+
<path d="m6 9 6 6 6-6" />
|
|
149
|
+
</Icon>
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* A chevron pointing up. Use it in disclosure triggers that open upward.
|
|
155
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
156
|
+
* @returns The icon element.
|
|
157
|
+
* @example
|
|
158
|
+
* ```tsx
|
|
159
|
+
* import { ChevronUpIcon } from "@/components/ui/icons";
|
|
160
|
+
*
|
|
161
|
+
* export const Collapse = <ChevronUpIcon class="size-4" />;
|
|
162
|
+
* ```
|
|
163
|
+
* @since 1.0.0
|
|
164
|
+
* @see {@link IconProps}
|
|
165
|
+
*/
|
|
166
|
+
function ChevronUpIcon(props: IconProps): JSX.Element {
|
|
167
|
+
return (
|
|
168
|
+
<Icon {...props}>
|
|
169
|
+
<path d="m18 15-6-6-6 6" />
|
|
170
|
+
</Icon>
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* A chevron pointing right. Use it for a submenu or a next step. Pass `class="rtl:rotate-180"` to
|
|
176
|
+
* flip it in right-to-left layouts.
|
|
177
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
178
|
+
* @returns The icon element.
|
|
179
|
+
* @example
|
|
180
|
+
* ```tsx
|
|
181
|
+
* import { ChevronRightIcon } from "@/components/ui/icons";
|
|
182
|
+
*
|
|
183
|
+
* export const Submenu = <ChevronRightIcon class="ms-auto size-4 rtl:rotate-180" />;
|
|
184
|
+
* ```
|
|
185
|
+
* @since 1.0.0
|
|
186
|
+
* @see {@link IconProps}
|
|
187
|
+
*/
|
|
188
|
+
function ChevronRightIcon(props: IconProps): JSX.Element {
|
|
189
|
+
return (
|
|
190
|
+
<Icon {...props}>
|
|
191
|
+
<path d="m9 18 6-6-6-6" />
|
|
192
|
+
</Icon>
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* A chevron pointing left. Use it for a previous step. Pass `class="rtl:rotate-180"` to flip it in
|
|
198
|
+
* right-to-left layouts.
|
|
199
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
200
|
+
* @returns The icon element.
|
|
201
|
+
* @example
|
|
202
|
+
* ```tsx
|
|
203
|
+
* import { ChevronLeftIcon } from "@/components/ui/icons";
|
|
204
|
+
*
|
|
205
|
+
* export const Previous = <ChevronLeftIcon class="size-4 rtl:rotate-180" />;
|
|
206
|
+
* ```
|
|
207
|
+
* @since 1.0.0
|
|
208
|
+
* @see {@link IconProps}
|
|
209
|
+
*/
|
|
210
|
+
function ChevronLeftIcon(props: IconProps): JSX.Element {
|
|
211
|
+
return (
|
|
212
|
+
<Icon {...props}>
|
|
213
|
+
<path d="m15 18-6-6 6-6" />
|
|
214
|
+
</Icon>
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Up and down chevrons. Use it for the trigger of a select or combobox.
|
|
220
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
221
|
+
* @returns The icon element.
|
|
222
|
+
* @example
|
|
223
|
+
* ```tsx
|
|
224
|
+
* import { ChevronsUpDownIcon } from "@/components/ui/icons";
|
|
225
|
+
*
|
|
226
|
+
* export const SelectCaret = <ChevronsUpDownIcon class="size-4 opacity-50" />;
|
|
227
|
+
* ```
|
|
228
|
+
* @since 1.0.0
|
|
229
|
+
* @see {@link IconProps}
|
|
230
|
+
*/
|
|
231
|
+
function ChevronsUpDownIcon(props: IconProps): JSX.Element {
|
|
232
|
+
return (
|
|
233
|
+
<Icon {...props}>
|
|
234
|
+
<path d="m7 15 5 5 5-5" />
|
|
235
|
+
<path d="m7 9 5-5 5 5" />
|
|
236
|
+
</Icon>
|
|
237
|
+
);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Three horizontal dots. Use it for a "more actions" button or an overflow marker.
|
|
242
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
243
|
+
* @returns The icon element.
|
|
244
|
+
* @example
|
|
245
|
+
* ```tsx
|
|
246
|
+
* import { EllipsisIcon } from "@/components/ui/icons";
|
|
247
|
+
*
|
|
248
|
+
* export const More = <EllipsisIcon class="size-4" />;
|
|
249
|
+
* ```
|
|
250
|
+
* @since 1.0.0
|
|
251
|
+
* @see {@link IconProps}
|
|
252
|
+
*/
|
|
253
|
+
function EllipsisIcon(props: IconProps): JSX.Element {
|
|
254
|
+
return (
|
|
255
|
+
<Icon {...props}>
|
|
256
|
+
<circle cx="12" cy="12" r="1" />
|
|
257
|
+
<circle cx="19" cy="12" r="1" />
|
|
258
|
+
<circle cx="5" cy="12" r="1" />
|
|
259
|
+
</Icon>
|
|
260
|
+
);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* A magnifying glass. Use it on search fields and search buttons.
|
|
265
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
266
|
+
* @returns The icon element.
|
|
267
|
+
* @example
|
|
268
|
+
* ```tsx
|
|
269
|
+
* import { SearchIcon } from "@/components/ui/icons";
|
|
270
|
+
*
|
|
271
|
+
* export const SearchMark = <SearchIcon class="size-4 text-muted-foreground" />;
|
|
272
|
+
* ```
|
|
273
|
+
* @since 1.0.0
|
|
274
|
+
* @see {@link IconProps}
|
|
275
|
+
*/
|
|
276
|
+
function SearchIcon(props: IconProps): JSX.Element {
|
|
277
|
+
return (
|
|
278
|
+
<Icon {...props}>
|
|
279
|
+
<circle cx="11" cy="11" r="8" />
|
|
280
|
+
<path d="m21 21-4.3-4.3" />
|
|
281
|
+
</Icon>
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* A window with a sidebar column. Use it on a button that shows or hides a sidebar.
|
|
287
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
288
|
+
* @returns The icon element.
|
|
289
|
+
* @example
|
|
290
|
+
* ```tsx
|
|
291
|
+
* import { PanelLeftIcon } from "@/components/ui/icons";
|
|
292
|
+
*
|
|
293
|
+
* export const SidebarToggle = <PanelLeftIcon class="size-4 rtl:rotate-180" />;
|
|
294
|
+
* ```
|
|
295
|
+
* @since 1.0.0
|
|
296
|
+
* @see {@link IconProps}
|
|
297
|
+
*/
|
|
298
|
+
function PanelLeftIcon(props: IconProps): JSX.Element {
|
|
299
|
+
return (
|
|
300
|
+
<Icon {...props}>
|
|
301
|
+
<rect width="18" height="18" x="3" y="3" rx="2" />
|
|
302
|
+
<path d="M9 3v18" />
|
|
303
|
+
</Icon>
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Six dots in two columns. Use it as the drag handle of a resizable panel or a sortable item.
|
|
309
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
310
|
+
* @returns The icon element.
|
|
311
|
+
* @example
|
|
312
|
+
* ```tsx
|
|
313
|
+
* import { GripVerticalIcon } from "@/components/ui/icons";
|
|
314
|
+
*
|
|
315
|
+
* export const DragHandle = <GripVerticalIcon class="size-4 text-muted-foreground" />;
|
|
316
|
+
* ```
|
|
317
|
+
* @since 1.0.0
|
|
318
|
+
* @see {@link IconProps}
|
|
319
|
+
*/
|
|
320
|
+
function GripVerticalIcon(props: IconProps): JSX.Element {
|
|
321
|
+
return (
|
|
322
|
+
<Icon {...props}>
|
|
323
|
+
<circle cx="9" cy="12" r="1" />
|
|
324
|
+
<circle cx="9" cy="5" r="1" />
|
|
325
|
+
<circle cx="9" cy="19" r="1" />
|
|
326
|
+
<circle cx="15" cy="12" r="1" />
|
|
327
|
+
<circle cx="15" cy="5" r="1" />
|
|
328
|
+
<circle cx="15" cy="19" r="1" />
|
|
329
|
+
</Icon>
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* A spinner arc. Add `animate-spin` to the class to turn it while work is in progress.
|
|
335
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
336
|
+
* @returns The icon element.
|
|
337
|
+
* @example
|
|
338
|
+
* ```tsx
|
|
339
|
+
* import { LoaderIcon } from "@/components/ui/icons";
|
|
340
|
+
*
|
|
341
|
+
* export const Loading = <LoaderIcon class="size-4 animate-spin" />;
|
|
342
|
+
* ```
|
|
343
|
+
* @since 1.0.0
|
|
344
|
+
* @see {@link IconProps}
|
|
345
|
+
*/
|
|
346
|
+
function LoaderIcon(props: IconProps): JSX.Element {
|
|
347
|
+
return (
|
|
348
|
+
<Icon {...props}>
|
|
349
|
+
<path d="M21 12a9 9 0 1 1-6.219-8.56" />
|
|
350
|
+
</Icon>
|
|
351
|
+
);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* A circled "i". Use it for an informational notice.
|
|
356
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
357
|
+
* @returns The icon element.
|
|
358
|
+
* @example
|
|
359
|
+
* ```tsx
|
|
360
|
+
* import { InfoIcon } from "@/components/ui/icons";
|
|
361
|
+
*
|
|
362
|
+
* export const Info = <InfoIcon class="size-4" />;
|
|
363
|
+
* ```
|
|
364
|
+
* @since 1.0.0
|
|
365
|
+
* @see {@link IconProps}
|
|
366
|
+
*/
|
|
367
|
+
function InfoIcon(props: IconProps): JSX.Element {
|
|
368
|
+
return (
|
|
369
|
+
<Icon {...props}>
|
|
370
|
+
<circle cx="12" cy="12" r="10" />
|
|
371
|
+
<path d="M12 16v-4" />
|
|
372
|
+
<path d="M12 8h.01" />
|
|
373
|
+
</Icon>
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* A circled check mark. Use it for a success notice.
|
|
379
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
380
|
+
* @returns The icon element.
|
|
381
|
+
* @example
|
|
382
|
+
* ```tsx
|
|
383
|
+
* import { CircleCheckIcon } from "@/components/ui/icons";
|
|
384
|
+
*
|
|
385
|
+
* export const Success = <CircleCheckIcon class="size-4 text-green-600" />;
|
|
386
|
+
* ```
|
|
387
|
+
* @since 1.0.0
|
|
388
|
+
* @see {@link IconProps}
|
|
389
|
+
*/
|
|
390
|
+
function CircleCheckIcon(props: IconProps): JSX.Element {
|
|
391
|
+
return (
|
|
392
|
+
<Icon {...props}>
|
|
393
|
+
<circle cx="12" cy="12" r="10" />
|
|
394
|
+
<path d="m9 12 2 2 4-4" />
|
|
395
|
+
</Icon>
|
|
396
|
+
);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* A circled cross. Use it for an error notice.
|
|
401
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
402
|
+
* @returns The icon element.
|
|
403
|
+
* @example
|
|
404
|
+
* ```tsx
|
|
405
|
+
* import { CircleXIcon } from "@/components/ui/icons";
|
|
406
|
+
*
|
|
407
|
+
* export const Failure = <CircleXIcon class="size-4 text-destructive" />;
|
|
408
|
+
* ```
|
|
409
|
+
* @since 1.0.0
|
|
410
|
+
* @see {@link IconProps}
|
|
411
|
+
*/
|
|
412
|
+
function CircleXIcon(props: IconProps): JSX.Element {
|
|
413
|
+
return (
|
|
414
|
+
<Icon {...props}>
|
|
415
|
+
<circle cx="12" cy="12" r="10" />
|
|
416
|
+
<path d="m15 9-6 6" />
|
|
417
|
+
<path d="m9 9 6 6" />
|
|
418
|
+
</Icon>
|
|
419
|
+
);
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* A warning triangle. Use it for a warning notice.
|
|
424
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
425
|
+
* @returns The icon element.
|
|
426
|
+
* @example
|
|
427
|
+
* ```tsx
|
|
428
|
+
* import { TriangleAlertIcon } from "@/components/ui/icons";
|
|
429
|
+
*
|
|
430
|
+
* export const Warning = <TriangleAlertIcon class="size-4" />;
|
|
431
|
+
* ```
|
|
432
|
+
* @since 1.0.0
|
|
433
|
+
* @see {@link IconProps}
|
|
434
|
+
*/
|
|
435
|
+
function TriangleAlertIcon(props: IconProps): JSX.Element {
|
|
436
|
+
return (
|
|
437
|
+
<Icon {...props}>
|
|
438
|
+
<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" />
|
|
439
|
+
<path d="M12 9v4" />
|
|
440
|
+
<path d="M12 17h.01" />
|
|
441
|
+
</Icon>
|
|
442
|
+
);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* An arrow pointing left. Use it for a back action. Pass `class="rtl:rotate-180"` to flip it in
|
|
447
|
+
* right-to-left layouts.
|
|
448
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
449
|
+
* @returns The icon element.
|
|
450
|
+
* @example
|
|
451
|
+
* ```tsx
|
|
452
|
+
* import { ArrowLeftIcon } from "@/components/ui/icons";
|
|
453
|
+
*
|
|
454
|
+
* export const Back = <ArrowLeftIcon class="size-4 rtl:rotate-180" />;
|
|
455
|
+
* ```
|
|
456
|
+
* @since 1.0.0
|
|
457
|
+
* @see {@link IconProps}
|
|
458
|
+
*/
|
|
459
|
+
function ArrowLeftIcon(props: IconProps): JSX.Element {
|
|
460
|
+
return (
|
|
461
|
+
<Icon {...props}>
|
|
462
|
+
<path d="m12 19-7-7 7-7" />
|
|
463
|
+
<path d="M19 12H5" />
|
|
464
|
+
</Icon>
|
|
465
|
+
);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* An arrow pointing right. Use it for a forward action. Pass `class="rtl:rotate-180"` to flip it in
|
|
470
|
+
* right-to-left layouts.
|
|
471
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
472
|
+
* @returns The icon element.
|
|
473
|
+
* @example
|
|
474
|
+
* ```tsx
|
|
475
|
+
* import { ArrowRightIcon } from "@/components/ui/icons";
|
|
476
|
+
*
|
|
477
|
+
* export const Forward = <ArrowRightIcon class="size-4 rtl:rotate-180" />;
|
|
478
|
+
* ```
|
|
479
|
+
* @since 1.0.0
|
|
480
|
+
* @see {@link IconProps}
|
|
481
|
+
*/
|
|
482
|
+
function ArrowRightIcon(props: IconProps): JSX.Element {
|
|
483
|
+
return (
|
|
484
|
+
<Icon {...props}>
|
|
485
|
+
<path d="M5 12h14" />
|
|
486
|
+
<path d="m12 5 7 7-7 7" />
|
|
487
|
+
</Icon>
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* Centered text lines. Use it for a text alignment control.
|
|
493
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
494
|
+
* @returns The icon element.
|
|
495
|
+
* @example
|
|
496
|
+
* ```tsx
|
|
497
|
+
* import { AlignCenterIcon } from "@/components/ui/icons";
|
|
498
|
+
*
|
|
499
|
+
* export const Mark = <AlignCenterIcon class="size-4" />;
|
|
500
|
+
* ```
|
|
501
|
+
* @since 1.0.0
|
|
502
|
+
* @see {@link IconProps}
|
|
503
|
+
*/
|
|
504
|
+
function AlignCenterIcon(props: IconProps): JSX.Element {
|
|
505
|
+
return (
|
|
506
|
+
<Icon {...props}>
|
|
507
|
+
<path d="M17 12H7" />
|
|
508
|
+
<path d="M19 18H5" />
|
|
509
|
+
<path d="M21 6H3" />
|
|
510
|
+
</Icon>
|
|
511
|
+
);
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* Left-aligned text lines. Use it for a text alignment control.
|
|
516
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
517
|
+
* @returns The icon element.
|
|
518
|
+
* @example
|
|
519
|
+
* ```tsx
|
|
520
|
+
* import { AlignLeftIcon } from "@/components/ui/icons";
|
|
521
|
+
*
|
|
522
|
+
* export const Mark = <AlignLeftIcon class="size-4" />;
|
|
523
|
+
* ```
|
|
524
|
+
* @since 1.0.0
|
|
525
|
+
* @see {@link IconProps}
|
|
526
|
+
*/
|
|
527
|
+
function AlignLeftIcon(props: IconProps): JSX.Element {
|
|
528
|
+
return (
|
|
529
|
+
<Icon {...props}>
|
|
530
|
+
<path d="M15 12H3" />
|
|
531
|
+
<path d="M17 18H3" />
|
|
532
|
+
<path d="M21 6H3" />
|
|
533
|
+
</Icon>
|
|
534
|
+
);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
/**
|
|
538
|
+
* Right-aligned text lines. Use it for a text alignment control.
|
|
539
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
540
|
+
* @returns The icon element.
|
|
541
|
+
* @example
|
|
542
|
+
* ```tsx
|
|
543
|
+
* import { AlignRightIcon } from "@/components/ui/icons";
|
|
544
|
+
*
|
|
545
|
+
* export const Mark = <AlignRightIcon class="size-4" />;
|
|
546
|
+
* ```
|
|
547
|
+
* @since 1.0.0
|
|
548
|
+
* @see {@link IconProps}
|
|
549
|
+
*/
|
|
550
|
+
function AlignRightIcon(props: IconProps): JSX.Element {
|
|
551
|
+
return (
|
|
552
|
+
<Icon {...props}>
|
|
553
|
+
<path d="M21 12H9" />
|
|
554
|
+
<path d="M21 18H7" />
|
|
555
|
+
<path d="M21 6H3" />
|
|
556
|
+
</Icon>
|
|
557
|
+
);
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* An arrow that points up. Use it for a send or an upload action.
|
|
562
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
563
|
+
* @returns The icon element.
|
|
564
|
+
* @example
|
|
565
|
+
* ```tsx
|
|
566
|
+
* import { ArrowUpIcon } from "@/components/ui/icons";
|
|
567
|
+
*
|
|
568
|
+
* export const Mark = <ArrowUpIcon class="size-4" />;
|
|
569
|
+
* ```
|
|
570
|
+
* @since 1.0.0
|
|
571
|
+
* @see {@link IconProps}
|
|
572
|
+
*/
|
|
573
|
+
function ArrowUpIcon(props: IconProps): JSX.Element {
|
|
574
|
+
return (
|
|
575
|
+
<Icon {...props}>
|
|
576
|
+
<path d="m5 12 7-7 7 7" />
|
|
577
|
+
<path d="M12 19V5" />
|
|
578
|
+
</Icon>
|
|
579
|
+
);
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* A bell. Use it for notifications.
|
|
584
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
585
|
+
* @returns The icon element.
|
|
586
|
+
* @example
|
|
587
|
+
* ```tsx
|
|
588
|
+
* import { BellIcon } from "@/components/ui/icons";
|
|
589
|
+
*
|
|
590
|
+
* export const Mark = <BellIcon class="size-4" />;
|
|
591
|
+
* ```
|
|
592
|
+
* @since 1.0.0
|
|
593
|
+
* @see {@link IconProps}
|
|
594
|
+
*/
|
|
595
|
+
function BellIcon(props: IconProps): JSX.Element {
|
|
596
|
+
return (
|
|
597
|
+
<Icon {...props}>
|
|
598
|
+
<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" />
|
|
599
|
+
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
|
|
600
|
+
</Icon>
|
|
601
|
+
);
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
/**
|
|
605
|
+
* The letter B in a bold stroke. Use it for a bold text control.
|
|
606
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
607
|
+
* @returns The icon element.
|
|
608
|
+
* @example
|
|
609
|
+
* ```tsx
|
|
610
|
+
* import { BoldIcon } from "@/components/ui/icons";
|
|
611
|
+
*
|
|
612
|
+
* export const Mark = <BoldIcon class="size-4" />;
|
|
613
|
+
* ```
|
|
614
|
+
* @since 1.0.0
|
|
615
|
+
* @see {@link IconProps}
|
|
616
|
+
*/
|
|
617
|
+
function BoldIcon(props: IconProps): JSX.Element {
|
|
618
|
+
return (
|
|
619
|
+
<Icon {...props}>
|
|
620
|
+
<path d="M14 12a4 4 0 0 0 0-8H6v8" />
|
|
621
|
+
<path d="M15 20a4 4 0 0 0 0-8H6v8Z" />
|
|
622
|
+
</Icon>
|
|
623
|
+
);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
/**
|
|
627
|
+
* A bookmark. Use it for a saved item.
|
|
628
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
629
|
+
* @returns The icon element.
|
|
630
|
+
* @example
|
|
631
|
+
* ```tsx
|
|
632
|
+
* import { BookmarkIcon } from "@/components/ui/icons";
|
|
633
|
+
*
|
|
634
|
+
* export const Mark = <BookmarkIcon class="size-4" />;
|
|
635
|
+
* ```
|
|
636
|
+
* @since 1.0.0
|
|
637
|
+
* @see {@link IconProps}
|
|
638
|
+
*/
|
|
639
|
+
function BookmarkIcon(props: IconProps): JSX.Element {
|
|
640
|
+
return (
|
|
641
|
+
<Icon {...props}>
|
|
642
|
+
<path d="m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z" />
|
|
643
|
+
</Icon>
|
|
644
|
+
);
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
/**
|
|
648
|
+
* A robot head. Use it for an assistant or an agent.
|
|
649
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
650
|
+
* @returns The icon element.
|
|
651
|
+
* @example
|
|
652
|
+
* ```tsx
|
|
653
|
+
* import { BotIcon } from "@/components/ui/icons";
|
|
654
|
+
*
|
|
655
|
+
* export const Mark = <BotIcon class="size-4" />;
|
|
656
|
+
* ```
|
|
657
|
+
* @since 1.0.0
|
|
658
|
+
* @see {@link IconProps}
|
|
659
|
+
*/
|
|
660
|
+
function BotIcon(props: IconProps): JSX.Element {
|
|
661
|
+
return (
|
|
662
|
+
<Icon {...props}>
|
|
663
|
+
<path d="M12 8V4H8" />
|
|
664
|
+
<rect x="4" y="8" width="16" height="12" rx="2" />
|
|
665
|
+
<path d="M2 14h2" />
|
|
666
|
+
<path d="M20 14h2" />
|
|
667
|
+
<path d="M15 13v2" />
|
|
668
|
+
<path d="M9 13v2" />
|
|
669
|
+
</Icon>
|
|
670
|
+
);
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
/**
|
|
674
|
+
* A calendar page. Use it for a date field or a schedule.
|
|
675
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
676
|
+
* @returns The icon element.
|
|
677
|
+
* @example
|
|
678
|
+
* ```tsx
|
|
679
|
+
* import { CalendarIcon } from "@/components/ui/icons";
|
|
680
|
+
*
|
|
681
|
+
* export const Mark = <CalendarIcon class="size-4" />;
|
|
682
|
+
* ```
|
|
683
|
+
* @since 1.0.0
|
|
684
|
+
* @see {@link IconProps}
|
|
685
|
+
*/
|
|
686
|
+
function CalendarIcon(props: IconProps): JSX.Element {
|
|
687
|
+
return (
|
|
688
|
+
<Icon {...props}>
|
|
689
|
+
<path d="M8 2v4" />
|
|
690
|
+
<path d="M16 2v4" />
|
|
691
|
+
<rect x="3" y="4" width="18" height="18" rx="2" />
|
|
692
|
+
<path d="M3 10h18" />
|
|
693
|
+
</Icon>
|
|
694
|
+
);
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
/**
|
|
698
|
+
* A clock face. Use it for a time or a duration.
|
|
699
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
700
|
+
* @returns The icon element.
|
|
701
|
+
* @example
|
|
702
|
+
* ```tsx
|
|
703
|
+
* import { ClockIcon } from "@/components/ui/icons";
|
|
704
|
+
*
|
|
705
|
+
* export const Mark = <ClockIcon class="size-4" />;
|
|
706
|
+
* ```
|
|
707
|
+
* @since 1.0.0
|
|
708
|
+
* @see {@link IconProps}
|
|
709
|
+
*/
|
|
710
|
+
function ClockIcon(props: IconProps): JSX.Element {
|
|
711
|
+
return (
|
|
712
|
+
<Icon {...props}>
|
|
713
|
+
<circle cx="12" cy="12" r="10" />
|
|
714
|
+
<path d="M12 6v6l4 2" />
|
|
715
|
+
</Icon>
|
|
716
|
+
);
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
/**
|
|
720
|
+
* Angle brackets. Use it for code.
|
|
721
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
722
|
+
* @returns The icon element.
|
|
723
|
+
* @example
|
|
724
|
+
* ```tsx
|
|
725
|
+
* import { CodeIcon } from "@/components/ui/icons";
|
|
726
|
+
*
|
|
727
|
+
* export const Mark = <CodeIcon class="size-4" />;
|
|
728
|
+
* ```
|
|
729
|
+
* @since 1.0.0
|
|
730
|
+
* @see {@link IconProps}
|
|
731
|
+
*/
|
|
732
|
+
function CodeIcon(props: IconProps): JSX.Element {
|
|
733
|
+
return (
|
|
734
|
+
<Icon {...props}>
|
|
735
|
+
<path d="m16 18 6-6-6-6" />
|
|
736
|
+
<path d="m8 6-6 6 6 6" />
|
|
737
|
+
</Icon>
|
|
738
|
+
);
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
/**
|
|
742
|
+
* The command key. Use it for a shortcut or a command palette.
|
|
743
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
744
|
+
* @returns The icon element.
|
|
745
|
+
* @example
|
|
746
|
+
* ```tsx
|
|
747
|
+
* import { CommandIcon } from "@/components/ui/icons";
|
|
748
|
+
*
|
|
749
|
+
* export const Mark = <CommandIcon class="size-4" />;
|
|
750
|
+
* ```
|
|
751
|
+
* @since 1.0.0
|
|
752
|
+
* @see {@link IconProps}
|
|
753
|
+
*/
|
|
754
|
+
function CommandIcon(props: IconProps): JSX.Element {
|
|
755
|
+
return (
|
|
756
|
+
<Icon {...props}>
|
|
757
|
+
<path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3" />
|
|
758
|
+
</Icon>
|
|
759
|
+
);
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
/**
|
|
763
|
+
* Two overlapping sheets. Use it for a copy action.
|
|
764
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
765
|
+
* @returns The icon element.
|
|
766
|
+
* @example
|
|
767
|
+
* ```tsx
|
|
768
|
+
* import { CopyIcon } from "@/components/ui/icons";
|
|
769
|
+
*
|
|
770
|
+
* export const Mark = <CopyIcon class="size-4" />;
|
|
771
|
+
* ```
|
|
772
|
+
* @since 1.0.0
|
|
773
|
+
* @see {@link IconProps}
|
|
774
|
+
*/
|
|
775
|
+
function CopyIcon(props: IconProps): JSX.Element {
|
|
776
|
+
return (
|
|
777
|
+
<Icon {...props}>
|
|
778
|
+
<rect x="8" y="8" width="14" height="14" rx="2" ry="2" />
|
|
779
|
+
<path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" />
|
|
780
|
+
</Icon>
|
|
781
|
+
);
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
/**
|
|
785
|
+
* A payment card. Use it for billing.
|
|
786
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
787
|
+
* @returns The icon element.
|
|
788
|
+
* @example
|
|
789
|
+
* ```tsx
|
|
790
|
+
* import { CreditCardIcon } from "@/components/ui/icons";
|
|
791
|
+
*
|
|
792
|
+
* export const Mark = <CreditCardIcon class="size-4" />;
|
|
793
|
+
* ```
|
|
794
|
+
* @since 1.0.0
|
|
795
|
+
* @see {@link IconProps}
|
|
796
|
+
*/
|
|
797
|
+
function CreditCardIcon(props: IconProps): JSX.Element {
|
|
798
|
+
return (
|
|
799
|
+
<Icon {...props}>
|
|
800
|
+
<rect x="2" y="5" width="20" height="14" rx="2" />
|
|
801
|
+
<path d="M2 10h20" />
|
|
802
|
+
</Icon>
|
|
803
|
+
);
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
/**
|
|
807
|
+
* An arrow into a tray. Use it for a download.
|
|
808
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
809
|
+
* @returns The icon element.
|
|
810
|
+
* @example
|
|
811
|
+
* ```tsx
|
|
812
|
+
* import { DownloadIcon } from "@/components/ui/icons";
|
|
813
|
+
*
|
|
814
|
+
* export const Mark = <DownloadIcon class="size-4" />;
|
|
815
|
+
* ```
|
|
816
|
+
* @since 1.0.0
|
|
817
|
+
* @see {@link IconProps}
|
|
818
|
+
*/
|
|
819
|
+
function DownloadIcon(props: IconProps): JSX.Element {
|
|
820
|
+
return (
|
|
821
|
+
<Icon {...props}>
|
|
822
|
+
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
|
|
823
|
+
<path d="m7 10 5 5 5-5" />
|
|
824
|
+
<path d="M12 15V3" />
|
|
825
|
+
</Icon>
|
|
826
|
+
);
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
/**
|
|
830
|
+
* An arrow leaving a box. Use it for a link that opens somewhere else.
|
|
831
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
832
|
+
* @returns The icon element.
|
|
833
|
+
* @example
|
|
834
|
+
* ```tsx
|
|
835
|
+
* import { ExternalLinkIcon } from "@/components/ui/icons";
|
|
836
|
+
*
|
|
837
|
+
* export const Mark = <ExternalLinkIcon class="size-4" />;
|
|
838
|
+
* ```
|
|
839
|
+
* @since 1.0.0
|
|
840
|
+
* @see {@link IconProps}
|
|
841
|
+
*/
|
|
842
|
+
function ExternalLinkIcon(props: IconProps): JSX.Element {
|
|
843
|
+
return (
|
|
844
|
+
<Icon {...props}>
|
|
845
|
+
<path d="M15 3h6v6" />
|
|
846
|
+
<path d="M10 14 21 3" />
|
|
847
|
+
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" />
|
|
848
|
+
</Icon>
|
|
849
|
+
);
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
/**
|
|
853
|
+
* An open eye. Use it for show or preview.
|
|
854
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
855
|
+
* @returns The icon element.
|
|
856
|
+
* @example
|
|
857
|
+
* ```tsx
|
|
858
|
+
* import { EyeIcon } from "@/components/ui/icons";
|
|
859
|
+
*
|
|
860
|
+
* export const Mark = <EyeIcon class="size-4" />;
|
|
861
|
+
* ```
|
|
862
|
+
* @since 1.0.0
|
|
863
|
+
* @see {@link IconProps}
|
|
864
|
+
*/
|
|
865
|
+
function EyeIcon(props: IconProps): JSX.Element {
|
|
866
|
+
return (
|
|
867
|
+
<Icon {...props}>
|
|
868
|
+
<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" />
|
|
869
|
+
<circle cx="12" cy="12" r="3" />
|
|
870
|
+
</Icon>
|
|
871
|
+
);
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
/**
|
|
875
|
+
* A sheet with a folded corner. Use it for a file.
|
|
876
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
877
|
+
* @returns The icon element.
|
|
878
|
+
* @example
|
|
879
|
+
* ```tsx
|
|
880
|
+
* import { FileIcon } from "@/components/ui/icons";
|
|
881
|
+
*
|
|
882
|
+
* export const Mark = <FileIcon class="size-4" />;
|
|
883
|
+
* ```
|
|
884
|
+
* @since 1.0.0
|
|
885
|
+
* @see {@link IconProps}
|
|
886
|
+
*/
|
|
887
|
+
function FileIcon(props: IconProps): JSX.Element {
|
|
888
|
+
return (
|
|
889
|
+
<Icon {...props}>
|
|
890
|
+
<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" />
|
|
891
|
+
<path d="M14 2v4a2 2 0 0 0 2 2h4" />
|
|
892
|
+
</Icon>
|
|
893
|
+
);
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
/**
|
|
897
|
+
* A sheet with lines of text. Use it for a document.
|
|
898
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
899
|
+
* @returns The icon element.
|
|
900
|
+
* @example
|
|
901
|
+
* ```tsx
|
|
902
|
+
* import { FileTextIcon } from "@/components/ui/icons";
|
|
903
|
+
*
|
|
904
|
+
* export const Mark = <FileTextIcon class="size-4" />;
|
|
905
|
+
* ```
|
|
906
|
+
* @since 1.0.0
|
|
907
|
+
* @see {@link IconProps}
|
|
908
|
+
*/
|
|
909
|
+
function FileTextIcon(props: IconProps): JSX.Element {
|
|
910
|
+
return (
|
|
911
|
+
<Icon {...props}>
|
|
912
|
+
<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" />
|
|
913
|
+
<path d="M14 2v4a2 2 0 0 0 2 2h4" />
|
|
914
|
+
<path d="M10 9H8" />
|
|
915
|
+
<path d="M16 13H8" />
|
|
916
|
+
<path d="M16 17H8" />
|
|
917
|
+
</Icon>
|
|
918
|
+
);
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
/**
|
|
922
|
+
* A closed folder. Use it for a directory.
|
|
923
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
924
|
+
* @returns The icon element.
|
|
925
|
+
* @example
|
|
926
|
+
* ```tsx
|
|
927
|
+
* import { FolderIcon } from "@/components/ui/icons";
|
|
928
|
+
*
|
|
929
|
+
* export const Mark = <FolderIcon class="size-4" />;
|
|
930
|
+
* ```
|
|
931
|
+
* @since 1.0.0
|
|
932
|
+
* @see {@link IconProps}
|
|
933
|
+
*/
|
|
934
|
+
function FolderIcon(props: IconProps): JSX.Element {
|
|
935
|
+
return (
|
|
936
|
+
<Icon {...props}>
|
|
937
|
+
<path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" />
|
|
938
|
+
</Icon>
|
|
939
|
+
);
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* A globe. Use it for a language or a region.
|
|
944
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
945
|
+
* @returns The icon element.
|
|
946
|
+
* @example
|
|
947
|
+
* ```tsx
|
|
948
|
+
* import { GlobeIcon } from "@/components/ui/icons";
|
|
949
|
+
*
|
|
950
|
+
* export const Mark = <GlobeIcon class="size-4" />;
|
|
951
|
+
* ```
|
|
952
|
+
* @since 1.0.0
|
|
953
|
+
* @see {@link IconProps}
|
|
954
|
+
*/
|
|
955
|
+
function GlobeIcon(props: IconProps): JSX.Element {
|
|
956
|
+
return (
|
|
957
|
+
<Icon {...props}>
|
|
958
|
+
<circle cx="12" cy="12" r="10" />
|
|
959
|
+
<path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" />
|
|
960
|
+
<path d="M2 12h20" />
|
|
961
|
+
</Icon>
|
|
962
|
+
);
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
/**
|
|
966
|
+
* A heart. Use it for a favorite or a like.
|
|
967
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
968
|
+
* @returns The icon element.
|
|
969
|
+
* @example
|
|
970
|
+
* ```tsx
|
|
971
|
+
* import { HeartIcon } from "@/components/ui/icons";
|
|
972
|
+
*
|
|
973
|
+
* export const Mark = <HeartIcon class="size-4" />;
|
|
974
|
+
* ```
|
|
975
|
+
* @since 1.0.0
|
|
976
|
+
* @see {@link IconProps}
|
|
977
|
+
*/
|
|
978
|
+
function HeartIcon(props: IconProps): JSX.Element {
|
|
979
|
+
return (
|
|
980
|
+
<Icon {...props}>
|
|
981
|
+
<path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z" />
|
|
982
|
+
</Icon>
|
|
983
|
+
);
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
/**
|
|
987
|
+
* A house. Use it for the start page.
|
|
988
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
989
|
+
* @returns The icon element.
|
|
990
|
+
* @example
|
|
991
|
+
* ```tsx
|
|
992
|
+
* import { HomeIcon } from "@/components/ui/icons";
|
|
993
|
+
*
|
|
994
|
+
* export const Mark = <HomeIcon class="size-4" />;
|
|
995
|
+
* ```
|
|
996
|
+
* @since 1.0.0
|
|
997
|
+
* @see {@link IconProps}
|
|
998
|
+
*/
|
|
999
|
+
function HomeIcon(props: IconProps): JSX.Element {
|
|
1000
|
+
return (
|
|
1001
|
+
<Icon {...props}>
|
|
1002
|
+
<path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />
|
|
1003
|
+
<path d="M9 22V12h6v10" />
|
|
1004
|
+
</Icon>
|
|
1005
|
+
);
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
/**
|
|
1009
|
+
* A picture frame. Use it for an image.
|
|
1010
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1011
|
+
* @returns The icon element.
|
|
1012
|
+
* @example
|
|
1013
|
+
* ```tsx
|
|
1014
|
+
* import { ImageIcon } from "@/components/ui/icons";
|
|
1015
|
+
*
|
|
1016
|
+
* export const Mark = <ImageIcon class="size-4" />;
|
|
1017
|
+
* ```
|
|
1018
|
+
* @since 1.0.0
|
|
1019
|
+
* @see {@link IconProps}
|
|
1020
|
+
*/
|
|
1021
|
+
function ImageIcon(props: IconProps): JSX.Element {
|
|
1022
|
+
return (
|
|
1023
|
+
<Icon {...props}>
|
|
1024
|
+
<rect x="3" y="3" width="18" height="18" rx="2" ry="2" />
|
|
1025
|
+
<circle cx="9" cy="9" r="2" />
|
|
1026
|
+
<path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" />
|
|
1027
|
+
</Icon>
|
|
1028
|
+
);
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
/**
|
|
1032
|
+
* The letter I slanted. Use it for an italic text control.
|
|
1033
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1034
|
+
* @returns The icon element.
|
|
1035
|
+
* @example
|
|
1036
|
+
* ```tsx
|
|
1037
|
+
* import { ItalicIcon } from "@/components/ui/icons";
|
|
1038
|
+
*
|
|
1039
|
+
* export const Mark = <ItalicIcon class="size-4" />;
|
|
1040
|
+
* ```
|
|
1041
|
+
* @since 1.0.0
|
|
1042
|
+
* @see {@link IconProps}
|
|
1043
|
+
*/
|
|
1044
|
+
function ItalicIcon(props: IconProps): JSX.Element {
|
|
1045
|
+
return (
|
|
1046
|
+
<Icon {...props}>
|
|
1047
|
+
<path d="M19 4H10" />
|
|
1048
|
+
<path d="M14 20H5" />
|
|
1049
|
+
<path d="M15 4 9 20" />
|
|
1050
|
+
</Icon>
|
|
1051
|
+
);
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1054
|
+
/**
|
|
1055
|
+
* Two chain links. Use it for a link.
|
|
1056
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1057
|
+
* @returns The icon element.
|
|
1058
|
+
* @example
|
|
1059
|
+
* ```tsx
|
|
1060
|
+
* import { LinkIcon } from "@/components/ui/icons";
|
|
1061
|
+
*
|
|
1062
|
+
* export const Mark = <LinkIcon class="size-4" />;
|
|
1063
|
+
* ```
|
|
1064
|
+
* @since 1.0.0
|
|
1065
|
+
* @see {@link IconProps}
|
|
1066
|
+
*/
|
|
1067
|
+
function LinkIcon(props: IconProps): JSX.Element {
|
|
1068
|
+
return (
|
|
1069
|
+
<Icon {...props}>
|
|
1070
|
+
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" />
|
|
1071
|
+
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" />
|
|
1072
|
+
</Icon>
|
|
1073
|
+
);
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
/**
|
|
1077
|
+
* A closed padlock. Use it for a protected or private item.
|
|
1078
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1079
|
+
* @returns The icon element.
|
|
1080
|
+
* @example
|
|
1081
|
+
* ```tsx
|
|
1082
|
+
* import { LockIcon } from "@/components/ui/icons";
|
|
1083
|
+
*
|
|
1084
|
+
* export const Mark = <LockIcon class="size-4" />;
|
|
1085
|
+
* ```
|
|
1086
|
+
* @since 1.0.0
|
|
1087
|
+
* @see {@link IconProps}
|
|
1088
|
+
*/
|
|
1089
|
+
function LockIcon(props: IconProps): JSX.Element {
|
|
1090
|
+
return (
|
|
1091
|
+
<Icon {...props}>
|
|
1092
|
+
<rect x="3" y="11" width="18" height="11" rx="2" ry="2" />
|
|
1093
|
+
<path d="M7 11V7a5 5 0 0 1 10 0v4" />
|
|
1094
|
+
</Icon>
|
|
1095
|
+
);
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
/**
|
|
1099
|
+
* An arrow leaving a door. Use it for sign out.
|
|
1100
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1101
|
+
* @returns The icon element.
|
|
1102
|
+
* @example
|
|
1103
|
+
* ```tsx
|
|
1104
|
+
* import { LogOutIcon } from "@/components/ui/icons";
|
|
1105
|
+
*
|
|
1106
|
+
* export const Mark = <LogOutIcon class="size-4" />;
|
|
1107
|
+
* ```
|
|
1108
|
+
* @since 1.0.0
|
|
1109
|
+
* @see {@link IconProps}
|
|
1110
|
+
*/
|
|
1111
|
+
function LogOutIcon(props: IconProps): JSX.Element {
|
|
1112
|
+
return (
|
|
1113
|
+
<Icon {...props}>
|
|
1114
|
+
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" />
|
|
1115
|
+
<path d="m16 17 5-5-5-5" />
|
|
1116
|
+
<path d="M21 12H9" />
|
|
1117
|
+
</Icon>
|
|
1118
|
+
);
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
/**
|
|
1122
|
+
* An envelope. Use it for email.
|
|
1123
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1124
|
+
* @returns The icon element.
|
|
1125
|
+
* @example
|
|
1126
|
+
* ```tsx
|
|
1127
|
+
* import { MailIcon } from "@/components/ui/icons";
|
|
1128
|
+
*
|
|
1129
|
+
* export const Mark = <MailIcon class="size-4" />;
|
|
1130
|
+
* ```
|
|
1131
|
+
* @since 1.0.0
|
|
1132
|
+
* @see {@link IconProps}
|
|
1133
|
+
*/
|
|
1134
|
+
function MailIcon(props: IconProps): JSX.Element {
|
|
1135
|
+
return (
|
|
1136
|
+
<Icon {...props}>
|
|
1137
|
+
<rect x="2" y="4" width="20" height="16" rx="2" />
|
|
1138
|
+
<path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7" />
|
|
1139
|
+
</Icon>
|
|
1140
|
+
);
|
|
1141
|
+
}
|
|
1142
|
+
|
|
1143
|
+
/**
|
|
1144
|
+
* Three horizontal lines. Use it for a menu button.
|
|
1145
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1146
|
+
* @returns The icon element.
|
|
1147
|
+
* @example
|
|
1148
|
+
* ```tsx
|
|
1149
|
+
* import { MenuIcon } from "@/components/ui/icons";
|
|
1150
|
+
*
|
|
1151
|
+
* export const Mark = <MenuIcon class="size-4" />;
|
|
1152
|
+
* ```
|
|
1153
|
+
* @since 1.0.0
|
|
1154
|
+
* @see {@link IconProps}
|
|
1155
|
+
*/
|
|
1156
|
+
function MenuIcon(props: IconProps): JSX.Element {
|
|
1157
|
+
return (
|
|
1158
|
+
<Icon {...props}>
|
|
1159
|
+
<path d="M4 12h16" />
|
|
1160
|
+
<path d="M4 18h16" />
|
|
1161
|
+
<path d="M4 6h16" />
|
|
1162
|
+
</Icon>
|
|
1163
|
+
);
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
/**
|
|
1167
|
+
* A crescent moon. Use it for the dark theme.
|
|
1168
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1169
|
+
* @returns The icon element.
|
|
1170
|
+
* @example
|
|
1171
|
+
* ```tsx
|
|
1172
|
+
* import { MoonIcon } from "@/components/ui/icons";
|
|
1173
|
+
*
|
|
1174
|
+
* export const Mark = <MoonIcon class="size-4" />;
|
|
1175
|
+
* ```
|
|
1176
|
+
* @since 1.0.0
|
|
1177
|
+
* @see {@link IconProps}
|
|
1178
|
+
*/
|
|
1179
|
+
function MoonIcon(props: IconProps): JSX.Element {
|
|
1180
|
+
return (
|
|
1181
|
+
<Icon {...props}>
|
|
1182
|
+
<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z" />
|
|
1183
|
+
</Icon>
|
|
1184
|
+
);
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1187
|
+
/**
|
|
1188
|
+
* A paperclip. Use it for an attachment.
|
|
1189
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1190
|
+
* @returns The icon element.
|
|
1191
|
+
* @example
|
|
1192
|
+
* ```tsx
|
|
1193
|
+
* import { PaperclipIcon } from "@/components/ui/icons";
|
|
1194
|
+
*
|
|
1195
|
+
* export const Mark = <PaperclipIcon class="size-4" />;
|
|
1196
|
+
* ```
|
|
1197
|
+
* @since 1.0.0
|
|
1198
|
+
* @see {@link IconProps}
|
|
1199
|
+
*/
|
|
1200
|
+
function PaperclipIcon(props: IconProps): JSX.Element {
|
|
1201
|
+
return (
|
|
1202
|
+
<Icon {...props}>
|
|
1203
|
+
<path d="m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48" />
|
|
1204
|
+
</Icon>
|
|
1205
|
+
);
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
/**
|
|
1209
|
+
* A pencil. Use it for edit.
|
|
1210
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1211
|
+
* @returns The icon element.
|
|
1212
|
+
* @example
|
|
1213
|
+
* ```tsx
|
|
1214
|
+
* import { PencilIcon } from "@/components/ui/icons";
|
|
1215
|
+
*
|
|
1216
|
+
* export const Mark = <PencilIcon class="size-4" />;
|
|
1217
|
+
* ```
|
|
1218
|
+
* @since 1.0.0
|
|
1219
|
+
* @see {@link IconProps}
|
|
1220
|
+
*/
|
|
1221
|
+
function PencilIcon(props: IconProps): JSX.Element {
|
|
1222
|
+
return (
|
|
1223
|
+
<Icon {...props}>
|
|
1224
|
+
<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z" />
|
|
1225
|
+
<path d="m15 5 4 4" />
|
|
1226
|
+
</Icon>
|
|
1227
|
+
);
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1230
|
+
/**
|
|
1231
|
+
* A plus sign. Use it for add or new.
|
|
1232
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1233
|
+
* @returns The icon element.
|
|
1234
|
+
* @example
|
|
1235
|
+
* ```tsx
|
|
1236
|
+
* import { PlusIcon } from "@/components/ui/icons";
|
|
1237
|
+
*
|
|
1238
|
+
* export const Mark = <PlusIcon class="size-4" />;
|
|
1239
|
+
* ```
|
|
1240
|
+
* @since 1.0.0
|
|
1241
|
+
* @see {@link IconProps}
|
|
1242
|
+
*/
|
|
1243
|
+
function PlusIcon(props: IconProps): JSX.Element {
|
|
1244
|
+
return (
|
|
1245
|
+
<Icon {...props}>
|
|
1246
|
+
<path d="M5 12h14" />
|
|
1247
|
+
<path d="M12 5v14" />
|
|
1248
|
+
</Icon>
|
|
1249
|
+
);
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
/**
|
|
1253
|
+
* Two arrows chasing each other. Use it for retry or refresh.
|
|
1254
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1255
|
+
* @returns The icon element.
|
|
1256
|
+
* @example
|
|
1257
|
+
* ```tsx
|
|
1258
|
+
* import { RefreshIcon } from "@/components/ui/icons";
|
|
1259
|
+
*
|
|
1260
|
+
* export const Mark = <RefreshIcon class="size-4" />;
|
|
1261
|
+
* ```
|
|
1262
|
+
* @since 1.0.0
|
|
1263
|
+
* @see {@link IconProps}
|
|
1264
|
+
*/
|
|
1265
|
+
function RefreshIcon(props: IconProps): JSX.Element {
|
|
1266
|
+
return (
|
|
1267
|
+
<Icon {...props}>
|
|
1268
|
+
<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" />
|
|
1269
|
+
<path d="M21 3v5h-5" />
|
|
1270
|
+
<path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" />
|
|
1271
|
+
<path d="M8 16H3v5" />
|
|
1272
|
+
</Icon>
|
|
1273
|
+
);
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
/**
|
|
1277
|
+
* A path between two points. Use it for a plan or a route.
|
|
1278
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1279
|
+
* @returns The icon element.
|
|
1280
|
+
* @example
|
|
1281
|
+
* ```tsx
|
|
1282
|
+
* import { RouteIcon } from "@/components/ui/icons";
|
|
1283
|
+
*
|
|
1284
|
+
* export const Mark = <RouteIcon class="size-4" />;
|
|
1285
|
+
* ```
|
|
1286
|
+
* @since 1.0.0
|
|
1287
|
+
* @see {@link IconProps}
|
|
1288
|
+
*/
|
|
1289
|
+
function RouteIcon(props: IconProps): JSX.Element {
|
|
1290
|
+
return (
|
|
1291
|
+
<Icon {...props}>
|
|
1292
|
+
<circle cx="6" cy="19" r="3" />
|
|
1293
|
+
<path d="M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15" />
|
|
1294
|
+
<circle cx="18" cy="5" r="3" />
|
|
1295
|
+
</Icon>
|
|
1296
|
+
);
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
/**
|
|
1300
|
+
* A cog. Use it for settings.
|
|
1301
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1302
|
+
* @returns The icon element.
|
|
1303
|
+
* @example
|
|
1304
|
+
* ```tsx
|
|
1305
|
+
* import { SettingsIcon } from "@/components/ui/icons";
|
|
1306
|
+
*
|
|
1307
|
+
* export const Mark = <SettingsIcon class="size-4" />;
|
|
1308
|
+
* ```
|
|
1309
|
+
* @since 1.0.0
|
|
1310
|
+
* @see {@link IconProps}
|
|
1311
|
+
*/
|
|
1312
|
+
function SettingsIcon(props: IconProps): JSX.Element {
|
|
1313
|
+
return (
|
|
1314
|
+
<Icon {...props}>
|
|
1315
|
+
<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z" />
|
|
1316
|
+
<circle cx="12" cy="12" r="3" />
|
|
1317
|
+
</Icon>
|
|
1318
|
+
);
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
/**
|
|
1322
|
+
* A smiling face. Use it for a reaction.
|
|
1323
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1324
|
+
* @returns The icon element.
|
|
1325
|
+
* @example
|
|
1326
|
+
* ```tsx
|
|
1327
|
+
* import { SmileIcon } from "@/components/ui/icons";
|
|
1328
|
+
*
|
|
1329
|
+
* export const Mark = <SmileIcon class="size-4" />;
|
|
1330
|
+
* ```
|
|
1331
|
+
* @since 1.0.0
|
|
1332
|
+
* @see {@link IconProps}
|
|
1333
|
+
*/
|
|
1334
|
+
function SmileIcon(props: IconProps): JSX.Element {
|
|
1335
|
+
return (
|
|
1336
|
+
<Icon {...props}>
|
|
1337
|
+
<circle cx="12" cy="12" r="10" />
|
|
1338
|
+
<path d="M8 14s1.5 2 4 2 4-2 4-2" />
|
|
1339
|
+
<path d="M9 9h.01" />
|
|
1340
|
+
<path d="M15 9h.01" />
|
|
1341
|
+
</Icon>
|
|
1342
|
+
);
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1345
|
+
/**
|
|
1346
|
+
* Four-point stars. Use it for something an assistant generated.
|
|
1347
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1348
|
+
* @returns The icon element.
|
|
1349
|
+
* @example
|
|
1350
|
+
* ```tsx
|
|
1351
|
+
* import { SparklesIcon } from "@/components/ui/icons";
|
|
1352
|
+
*
|
|
1353
|
+
* export const Mark = <SparklesIcon class="size-4" />;
|
|
1354
|
+
* ```
|
|
1355
|
+
* @since 1.0.0
|
|
1356
|
+
* @see {@link IconProps}
|
|
1357
|
+
*/
|
|
1358
|
+
function SparklesIcon(props: IconProps): JSX.Element {
|
|
1359
|
+
return (
|
|
1360
|
+
<Icon {...props}>
|
|
1361
|
+
<path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" />
|
|
1362
|
+
<path d="M20 3v4" />
|
|
1363
|
+
<path d="M22 5h-4" />
|
|
1364
|
+
<path d="M4 17v2" />
|
|
1365
|
+
<path d="M5 18H3" />
|
|
1366
|
+
</Icon>
|
|
1367
|
+
);
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
/**
|
|
1371
|
+
* A rounded square. Use it for stop.
|
|
1372
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1373
|
+
* @returns The icon element.
|
|
1374
|
+
* @example
|
|
1375
|
+
* ```tsx
|
|
1376
|
+
* import { SquareIcon } from "@/components/ui/icons";
|
|
1377
|
+
*
|
|
1378
|
+
* export const Mark = <SquareIcon class="size-4" />;
|
|
1379
|
+
* ```
|
|
1380
|
+
* @since 1.0.0
|
|
1381
|
+
* @see {@link IconProps}
|
|
1382
|
+
*/
|
|
1383
|
+
function SquareIcon(props: IconProps): JSX.Element {
|
|
1384
|
+
return (
|
|
1385
|
+
<Icon {...props}>
|
|
1386
|
+
<rect x="3" y="3" width="18" height="18" rx="2" />
|
|
1387
|
+
</Icon>
|
|
1388
|
+
);
|
|
1389
|
+
}
|
|
1390
|
+
|
|
1391
|
+
/**
|
|
1392
|
+
* A star. Use it for a rating or a favorite.
|
|
1393
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1394
|
+
* @returns The icon element.
|
|
1395
|
+
* @example
|
|
1396
|
+
* ```tsx
|
|
1397
|
+
* import { StarIcon } from "@/components/ui/icons";
|
|
1398
|
+
*
|
|
1399
|
+
* export const Mark = <StarIcon class="size-4" />;
|
|
1400
|
+
* ```
|
|
1401
|
+
* @since 1.0.0
|
|
1402
|
+
* @see {@link IconProps}
|
|
1403
|
+
*/
|
|
1404
|
+
function StarIcon(props: IconProps): JSX.Element {
|
|
1405
|
+
return (
|
|
1406
|
+
<Icon {...props}>
|
|
1407
|
+
<path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" />
|
|
1408
|
+
</Icon>
|
|
1409
|
+
);
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1412
|
+
/**
|
|
1413
|
+
* A sun. Use it for the light theme.
|
|
1414
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1415
|
+
* @returns The icon element.
|
|
1416
|
+
* @example
|
|
1417
|
+
* ```tsx
|
|
1418
|
+
* import { SunIcon } from "@/components/ui/icons";
|
|
1419
|
+
*
|
|
1420
|
+
* export const Mark = <SunIcon class="size-4" />;
|
|
1421
|
+
* ```
|
|
1422
|
+
* @since 1.0.0
|
|
1423
|
+
* @see {@link IconProps}
|
|
1424
|
+
*/
|
|
1425
|
+
function SunIcon(props: IconProps): JSX.Element {
|
|
1426
|
+
return (
|
|
1427
|
+
<Icon {...props}>
|
|
1428
|
+
<circle cx="12" cy="12" r="4" />
|
|
1429
|
+
<path d="M12 2v2" />
|
|
1430
|
+
<path d="M12 20v2" />
|
|
1431
|
+
<path d="m4.93 4.93 1.41 1.41" />
|
|
1432
|
+
<path d="m17.66 17.66 1.41 1.41" />
|
|
1433
|
+
<path d="M2 12h2" />
|
|
1434
|
+
<path d="M20 12h2" />
|
|
1435
|
+
<path d="m6.34 17.66-1.41 1.41" />
|
|
1436
|
+
<path d="m19.07 4.93-1.41 1.41" />
|
|
1437
|
+
</Icon>
|
|
1438
|
+
);
|
|
1439
|
+
}
|
|
1440
|
+
|
|
1441
|
+
/**
|
|
1442
|
+
* A prompt and a cursor. Use it for a command line.
|
|
1443
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1444
|
+
* @returns The icon element.
|
|
1445
|
+
* @example
|
|
1446
|
+
* ```tsx
|
|
1447
|
+
* import { TerminalIcon } from "@/components/ui/icons";
|
|
1448
|
+
*
|
|
1449
|
+
* export const Mark = <TerminalIcon class="size-4" />;
|
|
1450
|
+
* ```
|
|
1451
|
+
* @since 1.0.0
|
|
1452
|
+
* @see {@link IconProps}
|
|
1453
|
+
*/
|
|
1454
|
+
function TerminalIcon(props: IconProps): JSX.Element {
|
|
1455
|
+
return (
|
|
1456
|
+
<Icon {...props}>
|
|
1457
|
+
<path d="m4 17 6-6-6-6" />
|
|
1458
|
+
<path d="M12 19h8" />
|
|
1459
|
+
</Icon>
|
|
1460
|
+
);
|
|
1461
|
+
}
|
|
1462
|
+
|
|
1463
|
+
/**
|
|
1464
|
+
* A thumb pointing down. Use it for a bad response.
|
|
1465
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1466
|
+
* @returns The icon element.
|
|
1467
|
+
* @example
|
|
1468
|
+
* ```tsx
|
|
1469
|
+
* import { ThumbsDownIcon } from "@/components/ui/icons";
|
|
1470
|
+
*
|
|
1471
|
+
* export const Mark = <ThumbsDownIcon class="size-4" />;
|
|
1472
|
+
* ```
|
|
1473
|
+
* @since 1.0.0
|
|
1474
|
+
* @see {@link IconProps}
|
|
1475
|
+
*/
|
|
1476
|
+
function ThumbsDownIcon(props: IconProps): JSX.Element {
|
|
1477
|
+
return (
|
|
1478
|
+
<Icon {...props}>
|
|
1479
|
+
<path d="M17 14V2" />
|
|
1480
|
+
<path d="M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z" />
|
|
1481
|
+
</Icon>
|
|
1482
|
+
);
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
/**
|
|
1486
|
+
* A thumb pointing up. Use it for a good response.
|
|
1487
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1488
|
+
* @returns The icon element.
|
|
1489
|
+
* @example
|
|
1490
|
+
* ```tsx
|
|
1491
|
+
* import { ThumbsUpIcon } from "@/components/ui/icons";
|
|
1492
|
+
*
|
|
1493
|
+
* export const Mark = <ThumbsUpIcon class="size-4" />;
|
|
1494
|
+
* ```
|
|
1495
|
+
* @since 1.0.0
|
|
1496
|
+
* @see {@link IconProps}
|
|
1497
|
+
*/
|
|
1498
|
+
function ThumbsUpIcon(props: IconProps): JSX.Element {
|
|
1499
|
+
return (
|
|
1500
|
+
<Icon {...props}>
|
|
1501
|
+
<path d="M7 10v12" />
|
|
1502
|
+
<path d="M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z" />
|
|
1503
|
+
</Icon>
|
|
1504
|
+
);
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
/**
|
|
1508
|
+
* A bin. Use it for delete.
|
|
1509
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1510
|
+
* @returns The icon element.
|
|
1511
|
+
* @example
|
|
1512
|
+
* ```tsx
|
|
1513
|
+
* import { TrashIcon } from "@/components/ui/icons";
|
|
1514
|
+
*
|
|
1515
|
+
* export const Mark = <TrashIcon class="size-4" />;
|
|
1516
|
+
* ```
|
|
1517
|
+
* @since 1.0.0
|
|
1518
|
+
* @see {@link IconProps}
|
|
1519
|
+
*/
|
|
1520
|
+
function TrashIcon(props: IconProps): JSX.Element {
|
|
1521
|
+
return (
|
|
1522
|
+
<Icon {...props}>
|
|
1523
|
+
<path d="M3 6h18" />
|
|
1524
|
+
<path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6" />
|
|
1525
|
+
<path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" />
|
|
1526
|
+
<path d="M10 11v6" />
|
|
1527
|
+
<path d="M14 11v6" />
|
|
1528
|
+
</Icon>
|
|
1529
|
+
);
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
/**
|
|
1533
|
+
* The letter U with a rule under it. Use it for an underline text control.
|
|
1534
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1535
|
+
* @returns The icon element.
|
|
1536
|
+
* @example
|
|
1537
|
+
* ```tsx
|
|
1538
|
+
* import { UnderlineIcon } from "@/components/ui/icons";
|
|
1539
|
+
*
|
|
1540
|
+
* export const Mark = <UnderlineIcon class="size-4" />;
|
|
1541
|
+
* ```
|
|
1542
|
+
* @since 1.0.0
|
|
1543
|
+
* @see {@link IconProps}
|
|
1544
|
+
*/
|
|
1545
|
+
function UnderlineIcon(props: IconProps): JSX.Element {
|
|
1546
|
+
return (
|
|
1547
|
+
<Icon {...props}>
|
|
1548
|
+
<path d="M6 4v6a6 6 0 0 0 12 0V4" />
|
|
1549
|
+
<path d="M4 20h16" />
|
|
1550
|
+
</Icon>
|
|
1551
|
+
);
|
|
1552
|
+
}
|
|
1553
|
+
|
|
1554
|
+
/**
|
|
1555
|
+
* An arrow out of a tray. Use it for an upload.
|
|
1556
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1557
|
+
* @returns The icon element.
|
|
1558
|
+
* @example
|
|
1559
|
+
* ```tsx
|
|
1560
|
+
* import { UploadIcon } from "@/components/ui/icons";
|
|
1561
|
+
*
|
|
1562
|
+
* export const Mark = <UploadIcon class="size-4" />;
|
|
1563
|
+
* ```
|
|
1564
|
+
* @since 1.0.0
|
|
1565
|
+
* @see {@link IconProps}
|
|
1566
|
+
*/
|
|
1567
|
+
function UploadIcon(props: IconProps): JSX.Element {
|
|
1568
|
+
return (
|
|
1569
|
+
<Icon {...props}>
|
|
1570
|
+
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
|
|
1571
|
+
<path d="m17 8-5-5-5 5" />
|
|
1572
|
+
<path d="M12 3v12" />
|
|
1573
|
+
</Icon>
|
|
1574
|
+
);
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
/**
|
|
1578
|
+
* A head and shoulders. Use it for a person or an account.
|
|
1579
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1580
|
+
* @returns The icon element.
|
|
1581
|
+
* @example
|
|
1582
|
+
* ```tsx
|
|
1583
|
+
* import { UserIcon } from "@/components/ui/icons";
|
|
1584
|
+
*
|
|
1585
|
+
* export const Mark = <UserIcon class="size-4" />;
|
|
1586
|
+
* ```
|
|
1587
|
+
* @since 1.0.0
|
|
1588
|
+
* @see {@link IconProps}
|
|
1589
|
+
*/
|
|
1590
|
+
function UserIcon(props: IconProps): JSX.Element {
|
|
1591
|
+
return (
|
|
1592
|
+
<Icon {...props}>
|
|
1593
|
+
<path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2" />
|
|
1594
|
+
<circle cx="12" cy="7" r="4" />
|
|
1595
|
+
</Icon>
|
|
1596
|
+
);
|
|
1597
|
+
}
|
|
1598
|
+
|
|
1599
|
+
/**
|
|
1600
|
+
* A wrench. Use it for a tool.
|
|
1601
|
+
* @param props - The `<svg>` attributes; see {@link IconProps}.
|
|
1602
|
+
* @returns The icon element.
|
|
1603
|
+
* @example
|
|
1604
|
+
* ```tsx
|
|
1605
|
+
* import { WrenchIcon } from "@/components/ui/icons";
|
|
1606
|
+
*
|
|
1607
|
+
* export const Mark = <WrenchIcon class="size-4" />;
|
|
1608
|
+
* ```
|
|
1609
|
+
* @since 1.0.0
|
|
1610
|
+
* @see {@link IconProps}
|
|
1611
|
+
*/
|
|
1612
|
+
function WrenchIcon(props: IconProps): JSX.Element {
|
|
1613
|
+
return (
|
|
1614
|
+
<Icon {...props}>
|
|
1615
|
+
<path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" />
|
|
1616
|
+
</Icon>
|
|
1617
|
+
);
|
|
1618
|
+
}
|
|
1619
|
+
|
|
1620
|
+
export {
|
|
1621
|
+
AlignCenterIcon,
|
|
1622
|
+
AlignLeftIcon,
|
|
1623
|
+
AlignRightIcon,
|
|
1624
|
+
ArrowLeftIcon,
|
|
1625
|
+
ArrowRightIcon,
|
|
1626
|
+
ArrowUpIcon,
|
|
1627
|
+
BellIcon,
|
|
1628
|
+
BoldIcon,
|
|
1629
|
+
BookmarkIcon,
|
|
1630
|
+
BotIcon,
|
|
1631
|
+
CalendarIcon,
|
|
1632
|
+
CheckIcon,
|
|
1633
|
+
ChevronDownIcon,
|
|
1634
|
+
ChevronLeftIcon,
|
|
1635
|
+
ChevronRightIcon,
|
|
1636
|
+
ChevronsUpDownIcon,
|
|
1637
|
+
ChevronUpIcon,
|
|
1638
|
+
CircleCheckIcon,
|
|
1639
|
+
CircleIcon,
|
|
1640
|
+
CircleXIcon,
|
|
1641
|
+
ClockIcon,
|
|
1642
|
+
CodeIcon,
|
|
1643
|
+
CommandIcon,
|
|
1644
|
+
CopyIcon,
|
|
1645
|
+
CreditCardIcon,
|
|
1646
|
+
DownloadIcon,
|
|
1647
|
+
EllipsisIcon,
|
|
1648
|
+
ExternalLinkIcon,
|
|
1649
|
+
EyeIcon,
|
|
1650
|
+
FileIcon,
|
|
1651
|
+
FileTextIcon,
|
|
1652
|
+
FolderIcon,
|
|
1653
|
+
GlobeIcon,
|
|
1654
|
+
GripVerticalIcon,
|
|
1655
|
+
HeartIcon,
|
|
1656
|
+
HomeIcon,
|
|
1657
|
+
ImageIcon,
|
|
1658
|
+
InfoIcon,
|
|
1659
|
+
ItalicIcon,
|
|
1660
|
+
LinkIcon,
|
|
1661
|
+
LoaderIcon,
|
|
1662
|
+
LockIcon,
|
|
1663
|
+
LogOutIcon,
|
|
1664
|
+
MailIcon,
|
|
1665
|
+
MenuIcon,
|
|
1666
|
+
MinusIcon,
|
|
1667
|
+
MoonIcon,
|
|
1668
|
+
PanelLeftIcon,
|
|
1669
|
+
PaperclipIcon,
|
|
1670
|
+
PencilIcon,
|
|
1671
|
+
PlusIcon,
|
|
1672
|
+
RefreshIcon,
|
|
1673
|
+
RouteIcon,
|
|
1674
|
+
SearchIcon,
|
|
1675
|
+
SettingsIcon,
|
|
1676
|
+
SmileIcon,
|
|
1677
|
+
SparklesIcon,
|
|
1678
|
+
SquareIcon,
|
|
1679
|
+
StarIcon,
|
|
1680
|
+
SunIcon,
|
|
1681
|
+
TerminalIcon,
|
|
1682
|
+
ThumbsDownIcon,
|
|
1683
|
+
ThumbsUpIcon,
|
|
1684
|
+
TrashIcon,
|
|
1685
|
+
TriangleAlertIcon,
|
|
1686
|
+
UnderlineIcon,
|
|
1687
|
+
UploadIcon,
|
|
1688
|
+
UserIcon,
|
|
1689
|
+
WrenchIcon,
|
|
1690
|
+
XIcon,
|
|
1691
|
+
};
|