@naeil/ui 0.1.0 → 0.3.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/CHANGELOG.md +18 -0
- package/DESIGN.md +186 -0
- package/LICENSE +21 -0
- package/README.md +85 -22
- package/THIRD_PARTY_NOTICES.md +49 -0
- package/dist/chunk-JBTDRVZ7.js +46 -0
- package/dist/chunk-QKVN6Q6C.js +438 -0
- package/dist/components/index.d.ts +87 -0
- package/dist/components/index.js +832 -0
- package/dist/components/ui/index.d.ts +105 -0
- package/dist/components/ui/index.js +736 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +7 -0
- package/dist/source/components/footer.d.ts +15 -0
- package/dist/source/components/footer.js +172 -0
- package/dist/source/components/index.d.ts +11 -0
- package/dist/source/components/index.js +26 -0
- package/dist/source/components/locale-switcher.d.ts +17 -0
- package/dist/source/components/locale-switcher.js +66 -0
- package/dist/source/components/logo.d.ts +9 -0
- package/dist/source/components/logo.js +52 -0
- package/dist/source/components/nav.d.ts +39 -0
- package/dist/source/components/nav.js +412 -0
- package/dist/source/components/theme-provider.d.ts +6 -0
- package/dist/source/components/theme-provider.js +45 -0
- package/dist/source/components/theme-toggle-icon.d.ts +5 -0
- package/dist/source/components/theme-toggle-icon.js +62 -0
- package/dist/source/components/theme-toggle.d.ts +5 -0
- package/dist/source/components/theme-toggle.js +34 -0
- package/dist/source/components/typography.d.ts +12 -0
- package/dist/source/components/typography.js +49 -0
- package/dist/source/components/ui/avatar.d.ts +14 -0
- package/dist/source/components/ui/avatar.js +137 -0
- package/dist/source/components/ui/badge.d.ts +13 -0
- package/dist/source/components/ui/badge.js +76 -0
- package/dist/source/components/ui/button.d.ts +14 -0
- package/dist/source/components/ui/button.js +88 -0
- package/dist/source/components/ui/card.d.ts +13 -0
- package/dist/source/components/ui/card.js +135 -0
- package/dist/source/components/ui/checkbox.d.ts +7 -0
- package/dist/source/components/ui/checkbox.js +58 -0
- package/dist/source/components/ui/dialog.d.ts +20 -0
- package/dist/source/components/ui/dialog.js +182 -0
- package/dist/source/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/source/components/ui/dropdown-menu.js +282 -0
- package/dist/source/components/ui/index.d.ts +19 -0
- package/dist/source/components/ui/index.js +131 -0
- package/dist/source/components/ui/input.d.ts +6 -0
- package/dist/source/components/ui/input.js +49 -0
- package/dist/source/components/ui/select.d.ts +16 -0
- package/dist/source/components/ui/select.js +197 -0
- package/dist/source/components/ui/sonner.d.ts +6 -0
- package/dist/source/components/ui/sonner.js +80 -0
- package/dist/source/components/ui/switch.d.ts +7 -0
- package/dist/source/components/ui/switch.js +54 -0
- package/dist/source/components/ui/tabs.d.ts +10 -0
- package/dist/source/components/ui/tabs.js +57 -0
- package/dist/source/components/ui/textarea.d.ts +6 -0
- package/dist/source/components/ui/textarea.js +46 -0
- package/dist/source/i18n/config.d.ts +6 -0
- package/dist/source/i18n/config.js +12 -0
- package/dist/source/i18n/routing.d.ts +371 -0
- package/dist/source/i18n/routing.js +17 -0
- package/dist/source/lib/design/modal-inert.d.ts +6 -0
- package/dist/source/lib/design/modal-inert.js +73 -0
- package/dist/source/lib/utils.d.ts +5 -0
- package/dist/source/lib/utils.js +8 -0
- package/dist/tokens.ts +217 -0
- package/docs/components/README.md +21 -0
- package/docs/components/avatar.md +47 -0
- package/docs/components/badge.md +29 -0
- package/docs/components/button.md +39 -0
- package/docs/components/card.md +32 -0
- package/docs/components/checkbox.md +35 -0
- package/docs/components/common.md +31 -0
- package/docs/components/composition.md +68 -0
- package/docs/components/dialog.md +41 -0
- package/docs/components/dropdown-menu.md +38 -0
- package/docs/components/input.md +32 -0
- package/docs/components/select.md +39 -0
- package/docs/components/sonner.md +37 -0
- package/docs/components/switch.md +33 -0
- package/docs/components/tabs.md +40 -0
- package/docs/components/textarea.md +35 -0
- package/docs/design/component-demand.md +30 -0
- package/docs/design/public-ui-final-verification.md +96 -0
- package/docs/design/public-ui-release-validation.md +86 -0
- package/docs/design/public-ui-stage3-verification.md +98 -0
- package/docs/design/public-ui-stage4-verification.md +129 -0
- package/docs/design/public-ui-support.md +40 -0
- package/docs/design/v2-migration.md +199 -0
- package/docs/package-release.md +89 -0
- package/licenses/Noto-Sans-JP-OFL.txt +93 -0
- package/licenses/Nunito-Sans-OFL.txt +93 -0
- package/licenses/Pretendard-OFL.txt +94 -0
- package/licenses/React-MIT.txt +21 -0
- package/licenses/Storybook-MIT.txt +21 -0
- package/licenses/popper-MIT.txt +25 -0
- package/licenses/react-remove-scroll-bar-MIT.txt +21 -0
- package/licenses/store2-MIT.txt +22 -0
- package/licenses/toggle-selection-MIT.txt +21 -0
- package/package.json +215 -26
- package/src/styles/components.css +276 -0
- package/src/styles/globals.css +18 -0
- package/src/styles/theme.css +293 -0
- package/messages/en.json +0 -221
- package/messages/ja.json +0 -221
- package/messages/ko.json +0 -221
- package/postcss.config.mjs +0 -7
- package/src/app/[locale]/(content)/baby-agent/page.tsx +0 -30
- package/src/app/[locale]/(content)/blog/page.tsx +0 -68
- package/src/app/[locale]/(content)/cc/page.tsx +0 -216
- package/src/app/[locale]/(content)/design/page.tsx +0 -703
- package/src/app/[locale]/(content)/layout.tsx +0 -7
- package/src/app/[locale]/(content)/pkm/page.tsx +0 -31
- package/src/app/[locale]/(content)/projects/page.tsx +0 -100
- package/src/app/[locale]/(content)/sa/page.tsx +0 -179
- package/src/app/[locale]/(landing)/page.tsx +0 -157
- package/src/app/[locale]/layout.tsx +0 -72
- package/src/app/[locale]/login/actions.ts +0 -10
- package/src/app/[locale]/login/oauth-buttons.tsx +0 -78
- package/src/app/[locale]/login/page.tsx +0 -85
- package/src/app/auth/callback/route.ts +0 -78
- package/src/app/favicon.ico +0 -0
- package/src/app/globals.css +0 -32
- package/src/app/layout.tsx +0 -22
- package/src/app/sitemap.ts +0 -26
- package/src/components/accent-picker.tsx +0 -62
- package/src/components/auth-slot.tsx +0 -96
- package/src/components/footer-wrapper.tsx +0 -8
- package/src/components/footer.tsx +0 -193
- package/src/components/hero-scene.tsx +0 -948
- package/src/components/hero-section.tsx +0 -57
- package/src/components/locale-switcher.tsx +0 -74
- package/src/components/logo.tsx +0 -51
- package/src/components/nav-server-wrapper.tsx +0 -22
- package/src/components/nav-wrapper.tsx +0 -45
- package/src/components/nav.tsx +0 -550
- package/src/components/paraglider-cursor.tsx +0 -112
- package/src/components/project-layout.tsx +0 -194
- package/src/components/theme-provider.tsx +0 -10
- package/src/components/theme-toggle-icon.tsx +0 -62
- package/src/components/theme-toggle.tsx +0 -39
- package/src/components/typography.tsx +0 -27
- package/src/components/ui/avatar.tsx +0 -109
- package/src/components/ui/badge.tsx +0 -47
- package/src/components/ui/button.tsx +0 -65
- package/src/components/ui/card.tsx +0 -106
- package/src/components/ui/dialog.tsx +0 -158
- package/src/components/ui/dropdown-menu.tsx +0 -257
- package/src/components/ui/input.tsx +0 -21
- package/src/components/ui/sonner.tsx +0 -54
- package/src/components/workflow-diagram.tsx +0 -414
- package/src/i18n/config.ts +0 -8
- package/src/i18n/request.ts +0 -16
- package/src/i18n/routing.ts +0 -12
- package/src/lib/supabase/client.ts +0 -18
- package/src/lib/supabase/middleware.ts +0 -42
- package/src/lib/supabase/server.ts +0 -37
- package/src/lib/utils.ts +0 -6
- package/src/proxy.ts +0 -62
- package/src/tokens/.gitkeep +0 -0
- package/src/tokens/color.json +0 -56
- package/src/tokens/radius.json +0 -9
- package/src/tokens/semantic.json +0 -81
- package/src/tokens/shadow.json +0 -7
- package/src/tokens/spacing.json +0 -16
- package/src/tokens/typography.json +0 -34
- package/src/types/i18n.d.ts +0 -6
- package/src/utils/.gitkeep +0 -0
|
@@ -0,0 +1,736 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
Badge,
|
|
4
|
+
Button,
|
|
5
|
+
DropdownMenu,
|
|
6
|
+
DropdownMenuCheckboxItem,
|
|
7
|
+
DropdownMenuContent,
|
|
8
|
+
DropdownMenuGroup,
|
|
9
|
+
DropdownMenuItem,
|
|
10
|
+
DropdownMenuLabel,
|
|
11
|
+
DropdownMenuPortal,
|
|
12
|
+
DropdownMenuRadioGroup,
|
|
13
|
+
DropdownMenuRadioItem,
|
|
14
|
+
DropdownMenuSeparator,
|
|
15
|
+
DropdownMenuShortcut,
|
|
16
|
+
DropdownMenuSub,
|
|
17
|
+
DropdownMenuSubContent,
|
|
18
|
+
DropdownMenuSubTrigger,
|
|
19
|
+
DropdownMenuTrigger,
|
|
20
|
+
badgeVariants,
|
|
21
|
+
buttonVariants,
|
|
22
|
+
useOverlayRef,
|
|
23
|
+
useRadixHiddenInert
|
|
24
|
+
} from "../../chunk-QKVN6Q6C.js";
|
|
25
|
+
import {
|
|
26
|
+
__objRest,
|
|
27
|
+
__spreadProps,
|
|
28
|
+
__spreadValues,
|
|
29
|
+
cn
|
|
30
|
+
} from "../../chunk-JBTDRVZ7.js";
|
|
31
|
+
|
|
32
|
+
// src/components/ui/avatar.tsx
|
|
33
|
+
import { Avatar as AvatarPrimitive } from "radix-ui";
|
|
34
|
+
import { jsx } from "react/jsx-runtime";
|
|
35
|
+
function Avatar(_a) {
|
|
36
|
+
var _b = _a, {
|
|
37
|
+
className,
|
|
38
|
+
size = "default"
|
|
39
|
+
} = _b, props = __objRest(_b, [
|
|
40
|
+
"className",
|
|
41
|
+
"size"
|
|
42
|
+
]);
|
|
43
|
+
return /* @__PURE__ */ jsx(
|
|
44
|
+
AvatarPrimitive.Root,
|
|
45
|
+
__spreadValues({
|
|
46
|
+
"data-slot": "avatar",
|
|
47
|
+
"data-size": size,
|
|
48
|
+
className: cn(
|
|
49
|
+
"group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6 ui-focus",
|
|
50
|
+
className
|
|
51
|
+
)
|
|
52
|
+
}, props)
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
function AvatarImage(_a) {
|
|
56
|
+
var _b = _a, {
|
|
57
|
+
className
|
|
58
|
+
} = _b, props = __objRest(_b, [
|
|
59
|
+
"className"
|
|
60
|
+
]);
|
|
61
|
+
return /* @__PURE__ */ jsx(
|
|
62
|
+
AvatarPrimitive.Image,
|
|
63
|
+
__spreadValues({
|
|
64
|
+
"data-slot": "avatar-image",
|
|
65
|
+
className: cn("aspect-square size-full", className)
|
|
66
|
+
}, props)
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
function AvatarFallback(_a) {
|
|
70
|
+
var _b = _a, {
|
|
71
|
+
className
|
|
72
|
+
} = _b, props = __objRest(_b, [
|
|
73
|
+
"className"
|
|
74
|
+
]);
|
|
75
|
+
return /* @__PURE__ */ jsx(
|
|
76
|
+
AvatarPrimitive.Fallback,
|
|
77
|
+
__spreadValues({
|
|
78
|
+
"data-slot": "avatar-fallback",
|
|
79
|
+
className: cn(
|
|
80
|
+
"bg-secondary text-secondary-foreground flex size-full items-center justify-center rounded-full font-medium text-xs group-data-[size=sm]/avatar:text-xs",
|
|
81
|
+
className
|
|
82
|
+
)
|
|
83
|
+
}, props)
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
function AvatarBadge(_a) {
|
|
87
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
88
|
+
return /* @__PURE__ */ jsx(
|
|
89
|
+
"span",
|
|
90
|
+
__spreadValues({
|
|
91
|
+
"data-slot": "avatar-badge",
|
|
92
|
+
className: cn(
|
|
93
|
+
"bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none",
|
|
94
|
+
"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
|
|
95
|
+
"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
|
|
96
|
+
"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
|
|
97
|
+
className
|
|
98
|
+
)
|
|
99
|
+
}, props)
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
function AvatarGroup(_a) {
|
|
103
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
104
|
+
return /* @__PURE__ */ jsx(
|
|
105
|
+
"div",
|
|
106
|
+
__spreadValues({
|
|
107
|
+
"data-slot": "avatar-group",
|
|
108
|
+
className: cn(
|
|
109
|
+
"*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2",
|
|
110
|
+
className
|
|
111
|
+
)
|
|
112
|
+
}, props)
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
function AvatarGroupCount(_a) {
|
|
116
|
+
var _b = _a, {
|
|
117
|
+
className
|
|
118
|
+
} = _b, props = __objRest(_b, [
|
|
119
|
+
"className"
|
|
120
|
+
]);
|
|
121
|
+
return /* @__PURE__ */ jsx(
|
|
122
|
+
"div",
|
|
123
|
+
__spreadValues({
|
|
124
|
+
"data-slot": "avatar-group-count",
|
|
125
|
+
className: cn(
|
|
126
|
+
"bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3",
|
|
127
|
+
className
|
|
128
|
+
)
|
|
129
|
+
}, props)
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// src/components/ui/card.tsx
|
|
134
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
135
|
+
function Card(_a) {
|
|
136
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
137
|
+
return /* @__PURE__ */ jsx2(
|
|
138
|
+
"div",
|
|
139
|
+
__spreadValues({
|
|
140
|
+
"data-slot": "card",
|
|
141
|
+
className: cn(
|
|
142
|
+
"bg-card text-card-foreground flex flex-col rounded-xl border border-border-subtle transition-colors duration-(--ui-motion-fast)",
|
|
143
|
+
className
|
|
144
|
+
)
|
|
145
|
+
}, props)
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
function CardElevated(_a) {
|
|
149
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
150
|
+
return /* @__PURE__ */ jsx2(
|
|
151
|
+
"div",
|
|
152
|
+
__spreadValues({
|
|
153
|
+
"data-slot": "card",
|
|
154
|
+
className: cn(
|
|
155
|
+
"bg-card text-card-foreground flex flex-col rounded-xl border border-border-subtle shadow-sm dark:bg-card-elevated transition-colors duration-(--ui-motion-fast)",
|
|
156
|
+
className
|
|
157
|
+
)
|
|
158
|
+
}, props)
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
function CardHeader(_a) {
|
|
162
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
163
|
+
return /* @__PURE__ */ jsx2(
|
|
164
|
+
"div",
|
|
165
|
+
__spreadValues({
|
|
166
|
+
"data-slot": "card-header",
|
|
167
|
+
className: cn(
|
|
168
|
+
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-(--ui-panel-padding) has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-(--ui-panel-padding)",
|
|
169
|
+
className
|
|
170
|
+
)
|
|
171
|
+
}, props)
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
function CardTitle(_a) {
|
|
175
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
176
|
+
return /* @__PURE__ */ jsx2(
|
|
177
|
+
"div",
|
|
178
|
+
__spreadValues({
|
|
179
|
+
"data-slot": "card-title",
|
|
180
|
+
className: cn("leading-none font-semibold", className)
|
|
181
|
+
}, props)
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
function CardDescription(_a) {
|
|
185
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
186
|
+
return /* @__PURE__ */ jsx2(
|
|
187
|
+
"div",
|
|
188
|
+
__spreadValues({
|
|
189
|
+
"data-slot": "card-description",
|
|
190
|
+
className: cn("text-muted-foreground text-sm", className)
|
|
191
|
+
}, props)
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
function CardAction(_a) {
|
|
195
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
196
|
+
return /* @__PURE__ */ jsx2(
|
|
197
|
+
"div",
|
|
198
|
+
__spreadValues({
|
|
199
|
+
"data-slot": "card-action",
|
|
200
|
+
className: cn(
|
|
201
|
+
"col-start-2 row-span-2 row-start-1 self-start justify-self-end",
|
|
202
|
+
className
|
|
203
|
+
)
|
|
204
|
+
}, props)
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
function CardContent(_a) {
|
|
208
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
209
|
+
return /* @__PURE__ */ jsx2(
|
|
210
|
+
"div",
|
|
211
|
+
__spreadValues({
|
|
212
|
+
"data-slot": "card-content",
|
|
213
|
+
className: cn("px-(--ui-panel-padding)", className)
|
|
214
|
+
}, props)
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
function CardFooter(_a) {
|
|
218
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
219
|
+
return /* @__PURE__ */ jsx2(
|
|
220
|
+
"div",
|
|
221
|
+
__spreadValues({
|
|
222
|
+
"data-slot": "card-footer",
|
|
223
|
+
className: cn(
|
|
224
|
+
"flex items-center px-(--ui-panel-padding) [.border-t]:pt-(--ui-panel-padding)",
|
|
225
|
+
className
|
|
226
|
+
)
|
|
227
|
+
}, props)
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// src/components/ui/dialog.tsx
|
|
232
|
+
import { XIcon } from "lucide-react";
|
|
233
|
+
import { Dialog as DialogPrimitive } from "radix-ui";
|
|
234
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
235
|
+
function Dialog(_a) {
|
|
236
|
+
var props = __objRest(_a, []);
|
|
237
|
+
return /* @__PURE__ */ jsx3(DialogPrimitive.Root, __spreadValues({ "data-slot": "dialog" }, props));
|
|
238
|
+
}
|
|
239
|
+
function DialogTrigger(_a) {
|
|
240
|
+
var props = __objRest(_a, []);
|
|
241
|
+
return /* @__PURE__ */ jsx3(DialogPrimitive.Trigger, __spreadValues({ "data-slot": "dialog-trigger" }, props));
|
|
242
|
+
}
|
|
243
|
+
function DialogPortal(_a) {
|
|
244
|
+
var props = __objRest(_a, []);
|
|
245
|
+
return /* @__PURE__ */ jsx3(DialogPrimitive.Portal, __spreadValues({ "data-slot": "dialog-portal" }, props));
|
|
246
|
+
}
|
|
247
|
+
function DialogClose(_a) {
|
|
248
|
+
var props = __objRest(_a, []);
|
|
249
|
+
return /* @__PURE__ */ jsx3(DialogPrimitive.Close, __spreadValues({ "data-slot": "dialog-close" }, props));
|
|
250
|
+
}
|
|
251
|
+
function DialogOverlay(_a) {
|
|
252
|
+
var _b = _a, {
|
|
253
|
+
className
|
|
254
|
+
} = _b, props = __objRest(_b, [
|
|
255
|
+
"className"
|
|
256
|
+
]);
|
|
257
|
+
return /* @__PURE__ */ jsx3(
|
|
258
|
+
DialogPrimitive.Overlay,
|
|
259
|
+
__spreadValues({
|
|
260
|
+
"data-slot": "dialog-overlay",
|
|
261
|
+
className: cn("ui-popup fixed inset-0 z-50 bg-black/60 ", className)
|
|
262
|
+
}, props)
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
function DialogContent(_a) {
|
|
266
|
+
var _b = _a, {
|
|
267
|
+
className,
|
|
268
|
+
children,
|
|
269
|
+
showCloseButton = true
|
|
270
|
+
} = _b, props = __objRest(_b, [
|
|
271
|
+
"className",
|
|
272
|
+
"children",
|
|
273
|
+
"showCloseButton"
|
|
274
|
+
]);
|
|
275
|
+
return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
276
|
+
/* @__PURE__ */ jsx3(DialogOverlay, {}),
|
|
277
|
+
/* @__PURE__ */ jsxs(
|
|
278
|
+
DialogPrimitive.Content,
|
|
279
|
+
__spreadProps(__spreadValues({
|
|
280
|
+
"data-slot": "dialog-content",
|
|
281
|
+
className: cn(
|
|
282
|
+
"bg-popover ui-popup fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-xl border border-border-strong p-6 sm:max-w-lg",
|
|
283
|
+
className
|
|
284
|
+
)
|
|
285
|
+
}, props), {
|
|
286
|
+
children: [
|
|
287
|
+
children,
|
|
288
|
+
showCloseButton && /* @__PURE__ */ jsxs(
|
|
289
|
+
DialogPrimitive.Close,
|
|
290
|
+
{
|
|
291
|
+
"data-slot": "dialog-close",
|
|
292
|
+
className: "ui-focus absolute top-2 right-2 flex size-10 items-center justify-center rounded-sm text-muted-foreground hover:text-foreground transition-colors ui-focus disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
293
|
+
children: [
|
|
294
|
+
/* @__PURE__ */ jsx3(XIcon, {}),
|
|
295
|
+
/* @__PURE__ */ jsx3("span", { className: "sr-only", children: "Close" })
|
|
296
|
+
]
|
|
297
|
+
}
|
|
298
|
+
)
|
|
299
|
+
]
|
|
300
|
+
})
|
|
301
|
+
)
|
|
302
|
+
] });
|
|
303
|
+
}
|
|
304
|
+
function DialogHeader(_a) {
|
|
305
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
306
|
+
return /* @__PURE__ */ jsx3(
|
|
307
|
+
"div",
|
|
308
|
+
__spreadValues({
|
|
309
|
+
"data-slot": "dialog-header",
|
|
310
|
+
className: cn("flex flex-col gap-2 text-center sm:text-left", className)
|
|
311
|
+
}, props)
|
|
312
|
+
);
|
|
313
|
+
}
|
|
314
|
+
function DialogFooter(_a) {
|
|
315
|
+
var _b = _a, {
|
|
316
|
+
className,
|
|
317
|
+
showCloseButton = false,
|
|
318
|
+
children
|
|
319
|
+
} = _b, props = __objRest(_b, [
|
|
320
|
+
"className",
|
|
321
|
+
"showCloseButton",
|
|
322
|
+
"children"
|
|
323
|
+
]);
|
|
324
|
+
return /* @__PURE__ */ jsxs(
|
|
325
|
+
"div",
|
|
326
|
+
__spreadProps(__spreadValues({
|
|
327
|
+
"data-slot": "dialog-footer",
|
|
328
|
+
className: cn(
|
|
329
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
330
|
+
className
|
|
331
|
+
)
|
|
332
|
+
}, props), {
|
|
333
|
+
children: [
|
|
334
|
+
children,
|
|
335
|
+
showCloseButton && /* @__PURE__ */ jsx3(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx3(Button, { variant: "outline", children: "Close" }) })
|
|
336
|
+
]
|
|
337
|
+
})
|
|
338
|
+
);
|
|
339
|
+
}
|
|
340
|
+
function DialogTitle(_a) {
|
|
341
|
+
var _b = _a, {
|
|
342
|
+
className
|
|
343
|
+
} = _b, props = __objRest(_b, [
|
|
344
|
+
"className"
|
|
345
|
+
]);
|
|
346
|
+
return /* @__PURE__ */ jsx3(
|
|
347
|
+
DialogPrimitive.Title,
|
|
348
|
+
__spreadValues({
|
|
349
|
+
"data-slot": "dialog-title",
|
|
350
|
+
className: cn("text-xl leading-normal font-semibold", className)
|
|
351
|
+
}, props)
|
|
352
|
+
);
|
|
353
|
+
}
|
|
354
|
+
function DialogDescription(_a) {
|
|
355
|
+
var _b = _a, {
|
|
356
|
+
className
|
|
357
|
+
} = _b, props = __objRest(_b, [
|
|
358
|
+
"className"
|
|
359
|
+
]);
|
|
360
|
+
return /* @__PURE__ */ jsx3(
|
|
361
|
+
DialogPrimitive.Description,
|
|
362
|
+
__spreadValues({
|
|
363
|
+
"data-slot": "dialog-description",
|
|
364
|
+
className: cn("text-muted-foreground text-sm", className)
|
|
365
|
+
}, props)
|
|
366
|
+
);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
// src/components/ui/input.tsx
|
|
370
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
371
|
+
function Input(_a) {
|
|
372
|
+
var _b = _a, { className, type } = _b, props = __objRest(_b, ["className", "type"]);
|
|
373
|
+
return /* @__PURE__ */ jsx4(
|
|
374
|
+
"input",
|
|
375
|
+
__spreadValues({
|
|
376
|
+
type,
|
|
377
|
+
"data-slot": "input",
|
|
378
|
+
className: cn(
|
|
379
|
+
"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground ui-control ui-focus border-input w-full min-w-0 rounded-md border bg-background px-3 py-1 text-base transition-colors duration-(--ui-motion-fast) file:inline-flex file:h-7 file:border-0 file:bg-background file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 ",
|
|
380
|
+
"ui-focus",
|
|
381
|
+
"aria-invalid:border-error",
|
|
382
|
+
className
|
|
383
|
+
)
|
|
384
|
+
}, props)
|
|
385
|
+
);
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
// src/components/ui/sonner.tsx
|
|
389
|
+
import {
|
|
390
|
+
CircleCheckIcon,
|
|
391
|
+
InfoIcon,
|
|
392
|
+
Loader2Icon,
|
|
393
|
+
OctagonXIcon,
|
|
394
|
+
TriangleAlertIcon
|
|
395
|
+
} from "lucide-react";
|
|
396
|
+
import { useTheme } from "next-themes";
|
|
397
|
+
import { Toaster as Sonner } from "sonner";
|
|
398
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
399
|
+
var Toaster = (_a) => {
|
|
400
|
+
var props = __objRest(_a, []);
|
|
401
|
+
const { theme = "system" } = useTheme();
|
|
402
|
+
return /* @__PURE__ */ jsx5(
|
|
403
|
+
Sonner,
|
|
404
|
+
__spreadValues({
|
|
405
|
+
theme,
|
|
406
|
+
className: "toaster group font-sans",
|
|
407
|
+
position: "bottom-right",
|
|
408
|
+
duration: 4e3,
|
|
409
|
+
icons: {
|
|
410
|
+
success: /* @__PURE__ */ jsx5(CircleCheckIcon, { className: "size-4" }),
|
|
411
|
+
info: /* @__PURE__ */ jsx5(InfoIcon, { className: "size-4" }),
|
|
412
|
+
warning: /* @__PURE__ */ jsx5(TriangleAlertIcon, { className: "size-4" }),
|
|
413
|
+
error: /* @__PURE__ */ jsx5(OctagonXIcon, { className: "size-4" }),
|
|
414
|
+
loading: /* @__PURE__ */ jsx5(Loader2Icon, { className: "size-4 animate-spin" })
|
|
415
|
+
},
|
|
416
|
+
style: {
|
|
417
|
+
"--normal-bg": "var(--popover)",
|
|
418
|
+
"--normal-text": "var(--card-foreground)",
|
|
419
|
+
"--normal-border": "var(--border-strong)",
|
|
420
|
+
"--success-bg": "var(--popover)",
|
|
421
|
+
"--success-text": "var(--success)",
|
|
422
|
+
"--success-border": "var(--border-strong)",
|
|
423
|
+
"--error-bg": "var(--popover)",
|
|
424
|
+
"--error-text": "var(--error)",
|
|
425
|
+
"--error-border": "var(--border-strong)",
|
|
426
|
+
"--info-bg": "var(--popover)",
|
|
427
|
+
"--info-text": "var(--info)",
|
|
428
|
+
"--info-border": "var(--border-strong)",
|
|
429
|
+
"--warning-bg": "var(--popover)",
|
|
430
|
+
"--warning-text": "var(--warning)",
|
|
431
|
+
"--warning-border": "var(--border-strong)",
|
|
432
|
+
"--border-radius": "var(--radius-md-value)"
|
|
433
|
+
}
|
|
434
|
+
}, props)
|
|
435
|
+
);
|
|
436
|
+
};
|
|
437
|
+
|
|
438
|
+
// src/components/ui/select.tsx
|
|
439
|
+
import { Select as Primitive } from "radix-ui";
|
|
440
|
+
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
441
|
+
import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
442
|
+
var Select = Primitive.Root;
|
|
443
|
+
var SelectValue = Primitive.Value;
|
|
444
|
+
var SelectGroup = Primitive.Group;
|
|
445
|
+
function SelectTrigger(_a) {
|
|
446
|
+
var _b = _a, {
|
|
447
|
+
className,
|
|
448
|
+
children
|
|
449
|
+
} = _b, props = __objRest(_b, [
|
|
450
|
+
"className",
|
|
451
|
+
"children"
|
|
452
|
+
]);
|
|
453
|
+
return /* @__PURE__ */ jsxs2(
|
|
454
|
+
Primitive.Trigger,
|
|
455
|
+
__spreadProps(__spreadValues({
|
|
456
|
+
"data-slot": "select-trigger",
|
|
457
|
+
className: cn(
|
|
458
|
+
"ui-control ui-focus flex w-full items-center justify-between gap-2 border border-input bg-background px-3 text-left text-foreground disabled:cursor-not-allowed disabled:opacity-45 data-[placeholder]:text-muted-foreground [&>span]:min-w-0 [&>span]:truncate",
|
|
459
|
+
className
|
|
460
|
+
)
|
|
461
|
+
}, props), {
|
|
462
|
+
children: [
|
|
463
|
+
children,
|
|
464
|
+
/* @__PURE__ */ jsx6(Primitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx6(ChevronDownIcon, { className: "size-4 shrink-0" }) })
|
|
465
|
+
]
|
|
466
|
+
})
|
|
467
|
+
);
|
|
468
|
+
}
|
|
469
|
+
function SelectContent(_a) {
|
|
470
|
+
var _b = _a, {
|
|
471
|
+
ref,
|
|
472
|
+
className,
|
|
473
|
+
children,
|
|
474
|
+
position = "popper",
|
|
475
|
+
sideOffset = 6
|
|
476
|
+
} = _b, props = __objRest(_b, [
|
|
477
|
+
"ref",
|
|
478
|
+
"className",
|
|
479
|
+
"children",
|
|
480
|
+
"position",
|
|
481
|
+
"sideOffset"
|
|
482
|
+
]);
|
|
483
|
+
const [content, contentRef] = useOverlayRef(ref);
|
|
484
|
+
useRadixHiddenInert(content);
|
|
485
|
+
return /* @__PURE__ */ jsx6(Primitive.Portal, { children: /* @__PURE__ */ jsxs2(
|
|
486
|
+
Primitive.Content,
|
|
487
|
+
__spreadProps(__spreadValues({
|
|
488
|
+
ref: contentRef,
|
|
489
|
+
"data-slot": "select-content",
|
|
490
|
+
position,
|
|
491
|
+
sideOffset,
|
|
492
|
+
className: cn(
|
|
493
|
+
"ui-menu ui-popup z-50 max-h-(--radix-select-content-available-height) min-w-(--radix-select-trigger-width) max-w-[calc(100vw-24px)] overflow-hidden",
|
|
494
|
+
className
|
|
495
|
+
)
|
|
496
|
+
}, props), {
|
|
497
|
+
children: [
|
|
498
|
+
/* @__PURE__ */ jsx6(SelectScrollUpButton, {}),
|
|
499
|
+
/* @__PURE__ */ jsx6(Primitive.Viewport, { className: "p-1", children }),
|
|
500
|
+
/* @__PURE__ */ jsx6(SelectScrollDownButton, {})
|
|
501
|
+
]
|
|
502
|
+
})
|
|
503
|
+
) });
|
|
504
|
+
}
|
|
505
|
+
function SelectItem(_a) {
|
|
506
|
+
var _b = _a, {
|
|
507
|
+
className,
|
|
508
|
+
children
|
|
509
|
+
} = _b, props = __objRest(_b, [
|
|
510
|
+
"className",
|
|
511
|
+
"children"
|
|
512
|
+
]);
|
|
513
|
+
return /* @__PURE__ */ jsxs2(
|
|
514
|
+
Primitive.Item,
|
|
515
|
+
__spreadProps(__spreadValues({
|
|
516
|
+
"data-slot": "select-item",
|
|
517
|
+
className: cn(
|
|
518
|
+
"relative flex cursor-default items-center rounded-sm py-2 pr-9 pl-3 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-45",
|
|
519
|
+
className
|
|
520
|
+
)
|
|
521
|
+
}, props), {
|
|
522
|
+
children: [
|
|
523
|
+
/* @__PURE__ */ jsx6(Primitive.ItemText, { children }),
|
|
524
|
+
/* @__PURE__ */ jsx6(Primitive.ItemIndicator, { className: "absolute right-3", children: /* @__PURE__ */ jsx6(CheckIcon, { className: "size-4" }) })
|
|
525
|
+
]
|
|
526
|
+
})
|
|
527
|
+
);
|
|
528
|
+
}
|
|
529
|
+
function SelectLabel(_a) {
|
|
530
|
+
var _b = _a, {
|
|
531
|
+
className
|
|
532
|
+
} = _b, props = __objRest(_b, [
|
|
533
|
+
"className"
|
|
534
|
+
]);
|
|
535
|
+
return /* @__PURE__ */ jsx6(
|
|
536
|
+
Primitive.Label,
|
|
537
|
+
__spreadValues({
|
|
538
|
+
"data-slot": "select-label",
|
|
539
|
+
className: cn(
|
|
540
|
+
"px-3 py-2 text-sm font-medium text-muted-foreground",
|
|
541
|
+
className
|
|
542
|
+
)
|
|
543
|
+
}, props)
|
|
544
|
+
);
|
|
545
|
+
}
|
|
546
|
+
function SelectSeparator(_a) {
|
|
547
|
+
var _b = _a, {
|
|
548
|
+
className
|
|
549
|
+
} = _b, props = __objRest(_b, [
|
|
550
|
+
"className"
|
|
551
|
+
]);
|
|
552
|
+
return /* @__PURE__ */ jsx6(
|
|
553
|
+
Primitive.Separator,
|
|
554
|
+
__spreadValues({
|
|
555
|
+
"data-slot": "select-separator",
|
|
556
|
+
className: cn("my-1 h-px bg-border", className)
|
|
557
|
+
}, props)
|
|
558
|
+
);
|
|
559
|
+
}
|
|
560
|
+
function SelectScrollUpButton(_a) {
|
|
561
|
+
var _b = _a, {
|
|
562
|
+
className
|
|
563
|
+
} = _b, props = __objRest(_b, [
|
|
564
|
+
"className"
|
|
565
|
+
]);
|
|
566
|
+
return /* @__PURE__ */ jsx6(
|
|
567
|
+
Primitive.ScrollUpButton,
|
|
568
|
+
__spreadProps(__spreadValues({
|
|
569
|
+
className: cn("flex h-8 items-center justify-center", className)
|
|
570
|
+
}, props), {
|
|
571
|
+
children: /* @__PURE__ */ jsx6(ChevronUpIcon, { className: "size-4" })
|
|
572
|
+
})
|
|
573
|
+
);
|
|
574
|
+
}
|
|
575
|
+
function SelectScrollDownButton(_a) {
|
|
576
|
+
var _b = _a, {
|
|
577
|
+
className
|
|
578
|
+
} = _b, props = __objRest(_b, [
|
|
579
|
+
"className"
|
|
580
|
+
]);
|
|
581
|
+
return /* @__PURE__ */ jsx6(
|
|
582
|
+
Primitive.ScrollDownButton,
|
|
583
|
+
__spreadProps(__spreadValues({
|
|
584
|
+
className: cn("flex h-8 items-center justify-center", className)
|
|
585
|
+
}, props), {
|
|
586
|
+
children: /* @__PURE__ */ jsx6(ChevronDownIcon, { className: "size-4" })
|
|
587
|
+
})
|
|
588
|
+
);
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
// src/components/ui/switch.tsx
|
|
592
|
+
import { Switch as Primitive2 } from "radix-ui";
|
|
593
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
594
|
+
function Switch(_a) {
|
|
595
|
+
var _b = _a, {
|
|
596
|
+
className
|
|
597
|
+
} = _b, props = __objRest(_b, [
|
|
598
|
+
"className"
|
|
599
|
+
]);
|
|
600
|
+
return /* @__PURE__ */ jsx7(
|
|
601
|
+
Primitive2.Root,
|
|
602
|
+
__spreadProps(__spreadValues({
|
|
603
|
+
"data-slot": "switch",
|
|
604
|
+
className: cn("ui-choice ui-focus", className)
|
|
605
|
+
}, props), {
|
|
606
|
+
children: /* @__PURE__ */ jsx7(Primitive2.Thumb, { "data-slot": "switch-thumb" })
|
|
607
|
+
})
|
|
608
|
+
);
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
// src/components/ui/checkbox.tsx
|
|
612
|
+
import { Checkbox as Primitive3 } from "radix-ui";
|
|
613
|
+
import { CheckIcon as CheckIcon2, MinusIcon } from "lucide-react";
|
|
614
|
+
import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
615
|
+
function Checkbox(_a) {
|
|
616
|
+
var _b = _a, {
|
|
617
|
+
className
|
|
618
|
+
} = _b, props = __objRest(_b, [
|
|
619
|
+
"className"
|
|
620
|
+
]);
|
|
621
|
+
return /* @__PURE__ */ jsx8(
|
|
622
|
+
Primitive3.Root,
|
|
623
|
+
__spreadProps(__spreadValues({
|
|
624
|
+
"data-slot": "checkbox",
|
|
625
|
+
className: cn("ui-choice ui-focus group/checkbox", className)
|
|
626
|
+
}, props), {
|
|
627
|
+
children: /* @__PURE__ */ jsxs3(Primitive3.Indicator, { className: "flex items-center justify-center", children: [
|
|
628
|
+
/* @__PURE__ */ jsx8(CheckIcon2, { className: "size-3.5 group-data-[state=indeterminate]/checkbox:hidden" }),
|
|
629
|
+
/* @__PURE__ */ jsx8(MinusIcon, { className: "hidden size-3.5 group-data-[state=indeterminate]/checkbox:block" })
|
|
630
|
+
] })
|
|
631
|
+
})
|
|
632
|
+
);
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
// src/components/ui/tabs.tsx
|
|
636
|
+
import { Tabs as TabsPrimitive } from "radix-ui";
|
|
637
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
638
|
+
function Tabs(_a) {
|
|
639
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
640
|
+
return /* @__PURE__ */ jsx9(TabsPrimitive.Root, __spreadValues({ "data-slot": "tabs", className: cn("ui-tabs min-w-0", className) }, props));
|
|
641
|
+
}
|
|
642
|
+
function TabsList(_a) {
|
|
643
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
644
|
+
return /* @__PURE__ */ jsx9(TabsPrimitive.List, __spreadValues({ "data-slot": "tabs-list", className: cn("ui-tabs-list", className) }, props));
|
|
645
|
+
}
|
|
646
|
+
function TabsTrigger(_a) {
|
|
647
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
648
|
+
return /* @__PURE__ */ jsx9(TabsPrimitive.Trigger, __spreadValues({ "data-slot": "tabs-trigger", className: cn(
|
|
649
|
+
"ui-tabs-trigger ui-control ui-focus h-auto min-h-(--ui-control-height) w-max max-w-full shrink-0 whitespace-normal break-words rounded-md border-b-2 px-3 text-base leading-normal font-medium disabled:cursor-not-allowed disabled:opacity-50",
|
|
650
|
+
className
|
|
651
|
+
) }, props));
|
|
652
|
+
}
|
|
653
|
+
function TabsContent(_a) {
|
|
654
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
655
|
+
return /* @__PURE__ */ jsx9(TabsPrimitive.Content, __spreadValues({ "data-slot": "tabs-content", className: cn("ui-focus min-w-0 break-words", className) }, props));
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
// src/components/ui/textarea.tsx
|
|
659
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
660
|
+
function Textarea(_a) {
|
|
661
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
662
|
+
return /* @__PURE__ */ jsx10(
|
|
663
|
+
"textarea",
|
|
664
|
+
__spreadValues({
|
|
665
|
+
"data-slot": "textarea",
|
|
666
|
+
className: cn(
|
|
667
|
+
"ui-textarea ui-focus w-full min-w-0 resize-y rounded-md border border-input bg-background px-3 py-2 text-base leading-normal placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-error",
|
|
668
|
+
className
|
|
669
|
+
)
|
|
670
|
+
}, props)
|
|
671
|
+
);
|
|
672
|
+
}
|
|
673
|
+
export {
|
|
674
|
+
Avatar,
|
|
675
|
+
AvatarBadge,
|
|
676
|
+
AvatarFallback,
|
|
677
|
+
AvatarGroup,
|
|
678
|
+
AvatarGroupCount,
|
|
679
|
+
AvatarImage,
|
|
680
|
+
Badge,
|
|
681
|
+
Button,
|
|
682
|
+
Card,
|
|
683
|
+
CardAction,
|
|
684
|
+
CardContent,
|
|
685
|
+
CardDescription,
|
|
686
|
+
CardElevated,
|
|
687
|
+
CardFooter,
|
|
688
|
+
CardHeader,
|
|
689
|
+
CardTitle,
|
|
690
|
+
Checkbox,
|
|
691
|
+
Dialog,
|
|
692
|
+
DialogClose,
|
|
693
|
+
DialogContent,
|
|
694
|
+
DialogDescription,
|
|
695
|
+
DialogFooter,
|
|
696
|
+
DialogHeader,
|
|
697
|
+
DialogOverlay,
|
|
698
|
+
DialogPortal,
|
|
699
|
+
DialogTitle,
|
|
700
|
+
DialogTrigger,
|
|
701
|
+
DropdownMenu,
|
|
702
|
+
DropdownMenuCheckboxItem,
|
|
703
|
+
DropdownMenuContent,
|
|
704
|
+
DropdownMenuGroup,
|
|
705
|
+
DropdownMenuItem,
|
|
706
|
+
DropdownMenuLabel,
|
|
707
|
+
DropdownMenuPortal,
|
|
708
|
+
DropdownMenuRadioGroup,
|
|
709
|
+
DropdownMenuRadioItem,
|
|
710
|
+
DropdownMenuSeparator,
|
|
711
|
+
DropdownMenuShortcut,
|
|
712
|
+
DropdownMenuSub,
|
|
713
|
+
DropdownMenuSubContent,
|
|
714
|
+
DropdownMenuSubTrigger,
|
|
715
|
+
DropdownMenuTrigger,
|
|
716
|
+
Input,
|
|
717
|
+
Select,
|
|
718
|
+
SelectContent,
|
|
719
|
+
SelectGroup,
|
|
720
|
+
SelectItem,
|
|
721
|
+
SelectLabel,
|
|
722
|
+
SelectScrollDownButton,
|
|
723
|
+
SelectScrollUpButton,
|
|
724
|
+
SelectSeparator,
|
|
725
|
+
SelectTrigger,
|
|
726
|
+
SelectValue,
|
|
727
|
+
Switch,
|
|
728
|
+
Tabs,
|
|
729
|
+
TabsContent,
|
|
730
|
+
TabsList,
|
|
731
|
+
TabsTrigger,
|
|
732
|
+
Textarea,
|
|
733
|
+
Toaster,
|
|
734
|
+
badgeVariants,
|
|
735
|
+
buttonVariants
|
|
736
|
+
};
|