@naeil/ui 0.1.0 → 0.2.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.
Files changed (73) hide show
  1. package/README.md +60 -21
  2. package/dist/chunk-JBTDRVZ7.js +46 -0
  3. package/dist/chunk-SYI3IKIC.js +355 -0
  4. package/dist/components/index.d.ts +87 -0
  5. package/dist/components/index.js +832 -0
  6. package/dist/components/ui/index.d.ts +83 -0
  7. package/dist/components/ui/index.js +481 -0
  8. package/dist/lib/utils.d.ts +5 -0
  9. package/dist/lib/utils.js +7 -0
  10. package/package.json +52 -11
  11. package/src/app/globals.css +1 -1
  12. package/src/styles/theme.css +206 -0
  13. package/postcss.config.mjs +0 -7
  14. package/src/app/[locale]/(content)/baby-agent/page.tsx +0 -30
  15. package/src/app/[locale]/(content)/blog/page.tsx +0 -68
  16. package/src/app/[locale]/(content)/cc/page.tsx +0 -216
  17. package/src/app/[locale]/(content)/design/page.tsx +0 -703
  18. package/src/app/[locale]/(content)/layout.tsx +0 -7
  19. package/src/app/[locale]/(content)/pkm/page.tsx +0 -31
  20. package/src/app/[locale]/(content)/projects/page.tsx +0 -100
  21. package/src/app/[locale]/(content)/sa/page.tsx +0 -179
  22. package/src/app/[locale]/(landing)/page.tsx +0 -157
  23. package/src/app/[locale]/layout.tsx +0 -72
  24. package/src/app/[locale]/login/actions.ts +0 -10
  25. package/src/app/[locale]/login/oauth-buttons.tsx +0 -78
  26. package/src/app/[locale]/login/page.tsx +0 -85
  27. package/src/app/auth/callback/route.ts +0 -78
  28. package/src/app/favicon.ico +0 -0
  29. package/src/app/layout.tsx +0 -22
  30. package/src/app/sitemap.ts +0 -26
  31. package/src/components/accent-picker.tsx +0 -62
  32. package/src/components/auth-slot.tsx +0 -96
  33. package/src/components/footer-wrapper.tsx +0 -8
  34. package/src/components/footer.tsx +0 -193
  35. package/src/components/hero-scene.tsx +0 -948
  36. package/src/components/hero-section.tsx +0 -57
  37. package/src/components/locale-switcher.tsx +0 -74
  38. package/src/components/logo.tsx +0 -51
  39. package/src/components/nav-server-wrapper.tsx +0 -22
  40. package/src/components/nav-wrapper.tsx +0 -45
  41. package/src/components/nav.tsx +0 -550
  42. package/src/components/paraglider-cursor.tsx +0 -112
  43. package/src/components/project-layout.tsx +0 -194
  44. package/src/components/theme-provider.tsx +0 -10
  45. package/src/components/theme-toggle-icon.tsx +0 -62
  46. package/src/components/theme-toggle.tsx +0 -39
  47. package/src/components/typography.tsx +0 -27
  48. package/src/components/ui/avatar.tsx +0 -109
  49. package/src/components/ui/badge.tsx +0 -47
  50. package/src/components/ui/button.tsx +0 -65
  51. package/src/components/ui/card.tsx +0 -106
  52. package/src/components/ui/dialog.tsx +0 -158
  53. package/src/components/ui/dropdown-menu.tsx +0 -257
  54. package/src/components/ui/input.tsx +0 -21
  55. package/src/components/ui/sonner.tsx +0 -54
  56. package/src/components/workflow-diagram.tsx +0 -414
  57. package/src/i18n/config.ts +0 -8
  58. package/src/i18n/request.ts +0 -16
  59. package/src/i18n/routing.ts +0 -12
  60. package/src/lib/supabase/client.ts +0 -18
  61. package/src/lib/supabase/middleware.ts +0 -42
  62. package/src/lib/supabase/server.ts +0 -37
  63. package/src/lib/utils.ts +0 -6
  64. package/src/proxy.ts +0 -62
  65. package/src/tokens/.gitkeep +0 -0
  66. package/src/tokens/color.json +0 -56
  67. package/src/tokens/radius.json +0 -9
  68. package/src/tokens/semantic.json +0 -81
  69. package/src/tokens/shadow.json +0 -7
  70. package/src/tokens/spacing.json +0 -16
  71. package/src/tokens/typography.json +0 -34
  72. package/src/types/i18n.d.ts +0 -6
  73. package/src/utils/.gitkeep +0 -0
@@ -0,0 +1,83 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Avatar as Avatar$1, Dialog as Dialog$1, DropdownMenu as DropdownMenu$1 } from 'radix-ui';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { VariantProps } from 'class-variance-authority';
6
+ import { ToasterProps } from 'sonner';
7
+
8
+ declare function Avatar({ className, size, ...props }: React.ComponentProps<typeof Avatar$1.Root> & {
9
+ size?: "default" | "sm" | "lg";
10
+ }): react_jsx_runtime.JSX.Element;
11
+ declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof Avatar$1.Image>): react_jsx_runtime.JSX.Element;
12
+ declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof Avatar$1.Fallback>): react_jsx_runtime.JSX.Element;
13
+ declare function AvatarBadge({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
14
+ declare function AvatarGroup({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
15
+ declare function AvatarGroupCount({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
16
+
17
+ declare const badgeVariants: (props?: ({
18
+ variant?: "default" | "secondary" | "outline" | "destructive" | null | undefined;
19
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
20
+ declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
21
+ asChild?: boolean;
22
+ }): react_jsx_runtime.JSX.Element;
23
+
24
+ declare const buttonVariants: (props?: ({
25
+ variant?: "default" | "secondary" | "outline" | "destructive" | "link" | "ghost" | null | undefined;
26
+ size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
27
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
28
+ declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
29
+ asChild?: boolean;
30
+ }): react_jsx_runtime.JSX.Element;
31
+
32
+ declare function Card({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
33
+ declare function CardElevated({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
34
+ declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
35
+ declare function CardTitle({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
36
+ declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
37
+ declare function CardAction({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
38
+ declare function CardContent({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
39
+ declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
40
+
41
+ declare function Dialog({ ...props }: React.ComponentProps<typeof Dialog$1.Root>): react_jsx_runtime.JSX.Element;
42
+ declare function DialogTrigger({ ...props }: React.ComponentProps<typeof Dialog$1.Trigger>): react_jsx_runtime.JSX.Element;
43
+ declare function DialogPortal({ ...props }: React.ComponentProps<typeof Dialog$1.Portal>): react_jsx_runtime.JSX.Element;
44
+ declare function DialogClose({ ...props }: React.ComponentProps<typeof Dialog$1.Close>): react_jsx_runtime.JSX.Element;
45
+ declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof Dialog$1.Overlay>): react_jsx_runtime.JSX.Element;
46
+ declare function DialogContent({ className, children, showCloseButton, ...props }: React.ComponentProps<typeof Dialog$1.Content> & {
47
+ showCloseButton?: boolean;
48
+ }): react_jsx_runtime.JSX.Element;
49
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
50
+ declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
51
+ showCloseButton?: boolean;
52
+ }): react_jsx_runtime.JSX.Element;
53
+ declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof Dialog$1.Title>): react_jsx_runtime.JSX.Element;
54
+ declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof Dialog$1.Description>): react_jsx_runtime.JSX.Element;
55
+
56
+ declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenu$1.Root>): react_jsx_runtime.JSX.Element;
57
+ declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenu$1.Portal>): react_jsx_runtime.JSX.Element;
58
+ declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenu$1.Trigger>): react_jsx_runtime.JSX.Element;
59
+ declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenu$1.Content>): react_jsx_runtime.JSX.Element;
60
+ declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenu$1.Group>): react_jsx_runtime.JSX.Element;
61
+ declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenu$1.Item> & {
62
+ inset?: boolean;
63
+ variant?: "default" | "destructive";
64
+ }): react_jsx_runtime.JSX.Element;
65
+ declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenu$1.CheckboxItem>): react_jsx_runtime.JSX.Element;
66
+ declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenu$1.RadioGroup>): react_jsx_runtime.JSX.Element;
67
+ declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenu$1.RadioItem>): react_jsx_runtime.JSX.Element;
68
+ declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenu$1.Label> & {
69
+ inset?: boolean;
70
+ }): react_jsx_runtime.JSX.Element;
71
+ declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenu$1.Separator>): react_jsx_runtime.JSX.Element;
72
+ declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
73
+ declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenu$1.Sub>): react_jsx_runtime.JSX.Element;
74
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenu$1.SubTrigger> & {
75
+ inset?: boolean;
76
+ }): react_jsx_runtime.JSX.Element;
77
+ declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenu$1.SubContent>): react_jsx_runtime.JSX.Element;
78
+
79
+ declare function Input({ className, type, ...props }: React.ComponentProps<"input">): react_jsx_runtime.JSX.Element;
80
+
81
+ declare const Toaster: ({ ...props }: ToasterProps) => react_jsx_runtime.JSX.Element;
82
+
83
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardElevated, CardFooter, CardHeader, CardTitle, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, Toaster, badgeVariants, buttonVariants };
@@ -0,0 +1,481 @@
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
+ } from "../../chunk-SYI3IKIC.js";
23
+ import {
24
+ __objRest,
25
+ __spreadProps,
26
+ __spreadValues,
27
+ cn
28
+ } from "../../chunk-JBTDRVZ7.js";
29
+
30
+ // src/components/ui/avatar.tsx
31
+ import { Avatar as AvatarPrimitive } from "radix-ui";
32
+ import { jsx } from "react/jsx-runtime";
33
+ function Avatar(_a) {
34
+ var _b = _a, {
35
+ className,
36
+ size = "default"
37
+ } = _b, props = __objRest(_b, [
38
+ "className",
39
+ "size"
40
+ ]);
41
+ return /* @__PURE__ */ jsx(
42
+ AvatarPrimitive.Root,
43
+ __spreadValues({
44
+ "data-slot": "avatar",
45
+ "data-size": size,
46
+ className: cn(
47
+ "group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6 focus-visible:ring-accent/25 focus-visible:ring-[2px] focus-visible:outline-none",
48
+ className
49
+ )
50
+ }, props)
51
+ );
52
+ }
53
+ function AvatarImage(_a) {
54
+ var _b = _a, {
55
+ className
56
+ } = _b, props = __objRest(_b, [
57
+ "className"
58
+ ]);
59
+ return /* @__PURE__ */ jsx(
60
+ AvatarPrimitive.Image,
61
+ __spreadValues({
62
+ "data-slot": "avatar-image",
63
+ className: cn("aspect-square size-full", className)
64
+ }, props)
65
+ );
66
+ }
67
+ function AvatarFallback(_a) {
68
+ var _b = _a, {
69
+ className
70
+ } = _b, props = __objRest(_b, [
71
+ "className"
72
+ ]);
73
+ return /* @__PURE__ */ jsx(
74
+ AvatarPrimitive.Fallback,
75
+ __spreadValues({
76
+ "data-slot": "avatar-fallback",
77
+ className: cn(
78
+ "bg-accent/15 text-accent flex size-full items-center justify-center rounded-full font-medium text-xs group-data-[size=sm]/avatar:text-[10px]",
79
+ className
80
+ )
81
+ }, props)
82
+ );
83
+ }
84
+ function AvatarBadge(_a) {
85
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
86
+ return /* @__PURE__ */ jsx(
87
+ "span",
88
+ __spreadValues({
89
+ "data-slot": "avatar-badge",
90
+ className: cn(
91
+ "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",
92
+ "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
93
+ "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
94
+ "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
95
+ className
96
+ )
97
+ }, props)
98
+ );
99
+ }
100
+ function AvatarGroup(_a) {
101
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
102
+ return /* @__PURE__ */ jsx(
103
+ "div",
104
+ __spreadValues({
105
+ "data-slot": "avatar-group",
106
+ className: cn(
107
+ "*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2",
108
+ className
109
+ )
110
+ }, props)
111
+ );
112
+ }
113
+ function AvatarGroupCount(_a) {
114
+ var _b = _a, {
115
+ className
116
+ } = _b, props = __objRest(_b, [
117
+ "className"
118
+ ]);
119
+ return /* @__PURE__ */ jsx(
120
+ "div",
121
+ __spreadValues({
122
+ "data-slot": "avatar-group-count",
123
+ className: cn(
124
+ "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",
125
+ className
126
+ )
127
+ }, props)
128
+ );
129
+ }
130
+
131
+ // src/components/ui/card.tsx
132
+ import { jsx as jsx2 } from "react/jsx-runtime";
133
+ function Card(_a) {
134
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
135
+ return /* @__PURE__ */ jsx2(
136
+ "div",
137
+ __spreadValues({
138
+ "data-slot": "card",
139
+ className: cn(
140
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border border-border-subtle py-6 transition-colors duration-150",
141
+ className
142
+ )
143
+ }, props)
144
+ );
145
+ }
146
+ function CardElevated(_a) {
147
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
148
+ return /* @__PURE__ */ jsx2(
149
+ "div",
150
+ __spreadValues({
151
+ "data-slot": "card",
152
+ className: cn(
153
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border border-border-subtle py-6 shadow-sm dark:bg-card-elevated transition-colors duration-150",
154
+ className
155
+ )
156
+ }, props)
157
+ );
158
+ }
159
+ function CardHeader(_a) {
160
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
161
+ return /* @__PURE__ */ jsx2(
162
+ "div",
163
+ __spreadValues({
164
+ "data-slot": "card-header",
165
+ className: cn(
166
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
167
+ className
168
+ )
169
+ }, props)
170
+ );
171
+ }
172
+ function CardTitle(_a) {
173
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
174
+ return /* @__PURE__ */ jsx2(
175
+ "div",
176
+ __spreadValues({
177
+ "data-slot": "card-title",
178
+ className: cn("leading-none font-semibold", className)
179
+ }, props)
180
+ );
181
+ }
182
+ function CardDescription(_a) {
183
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
184
+ return /* @__PURE__ */ jsx2(
185
+ "div",
186
+ __spreadValues({
187
+ "data-slot": "card-description",
188
+ className: cn("text-muted-foreground text-sm", className)
189
+ }, props)
190
+ );
191
+ }
192
+ function CardAction(_a) {
193
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
194
+ return /* @__PURE__ */ jsx2(
195
+ "div",
196
+ __spreadValues({
197
+ "data-slot": "card-action",
198
+ className: cn(
199
+ "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
200
+ className
201
+ )
202
+ }, props)
203
+ );
204
+ }
205
+ function CardContent(_a) {
206
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
207
+ return /* @__PURE__ */ jsx2(
208
+ "div",
209
+ __spreadValues({
210
+ "data-slot": "card-content",
211
+ className: cn("px-6", className)
212
+ }, props)
213
+ );
214
+ }
215
+ function CardFooter(_a) {
216
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
217
+ return /* @__PURE__ */ jsx2(
218
+ "div",
219
+ __spreadValues({
220
+ "data-slot": "card-footer",
221
+ className: cn("flex items-center px-6 [.border-t]:pt-6", className)
222
+ }, props)
223
+ );
224
+ }
225
+
226
+ // src/components/ui/dialog.tsx
227
+ import { XIcon } from "lucide-react";
228
+ import { Dialog as DialogPrimitive } from "radix-ui";
229
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
230
+ function Dialog(_a) {
231
+ var props = __objRest(_a, []);
232
+ return /* @__PURE__ */ jsx3(DialogPrimitive.Root, __spreadValues({ "data-slot": "dialog" }, props));
233
+ }
234
+ function DialogTrigger(_a) {
235
+ var props = __objRest(_a, []);
236
+ return /* @__PURE__ */ jsx3(DialogPrimitive.Trigger, __spreadValues({ "data-slot": "dialog-trigger" }, props));
237
+ }
238
+ function DialogPortal(_a) {
239
+ var props = __objRest(_a, []);
240
+ return /* @__PURE__ */ jsx3(DialogPrimitive.Portal, __spreadValues({ "data-slot": "dialog-portal" }, props));
241
+ }
242
+ function DialogClose(_a) {
243
+ var props = __objRest(_a, []);
244
+ return /* @__PURE__ */ jsx3(DialogPrimitive.Close, __spreadValues({ "data-slot": "dialog-close" }, props));
245
+ }
246
+ function DialogOverlay(_a) {
247
+ var _b = _a, {
248
+ className
249
+ } = _b, props = __objRest(_b, [
250
+ "className"
251
+ ]);
252
+ return /* @__PURE__ */ jsx3(
253
+ DialogPrimitive.Overlay,
254
+ __spreadValues({
255
+ "data-slot": "dialog-overlay",
256
+ className: cn(
257
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/60 backdrop-blur-sm",
258
+ className
259
+ )
260
+ }, props)
261
+ );
262
+ }
263
+ function DialogContent(_a) {
264
+ var _b = _a, {
265
+ className,
266
+ children,
267
+ showCloseButton = true
268
+ } = _b, props = __objRest(_b, [
269
+ "className",
270
+ "children",
271
+ "showCloseButton"
272
+ ]);
273
+ return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
274
+ /* @__PURE__ */ jsx3(DialogOverlay, {}),
275
+ /* @__PURE__ */ jsxs(
276
+ DialogPrimitive.Content,
277
+ __spreadProps(__spreadValues({
278
+ "data-slot": "dialog-content",
279
+ className: cn(
280
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=open]:duration-200 data-[state=closed]:duration-150 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-subtle p-6 outline-none sm:max-w-lg",
281
+ className
282
+ )
283
+ }, props), {
284
+ children: [
285
+ children,
286
+ showCloseButton && /* @__PURE__ */ jsxs(
287
+ DialogPrimitive.Close,
288
+ {
289
+ "data-slot": "dialog-close",
290
+ className: "absolute top-4 right-4 rounded-sm text-muted-foreground hover:text-foreground transition-colors focus-visible:ring-accent/25 focus-visible:ring-[2px] focus-visible:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
291
+ children: [
292
+ /* @__PURE__ */ jsx3(XIcon, {}),
293
+ /* @__PURE__ */ jsx3("span", { className: "sr-only", children: "Close" })
294
+ ]
295
+ }
296
+ )
297
+ ]
298
+ })
299
+ )
300
+ ] });
301
+ }
302
+ function DialogHeader(_a) {
303
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
304
+ return /* @__PURE__ */ jsx3(
305
+ "div",
306
+ __spreadValues({
307
+ "data-slot": "dialog-header",
308
+ className: cn("flex flex-col gap-2 text-center sm:text-left", className)
309
+ }, props)
310
+ );
311
+ }
312
+ function DialogFooter(_a) {
313
+ var _b = _a, {
314
+ className,
315
+ showCloseButton = false,
316
+ children
317
+ } = _b, props = __objRest(_b, [
318
+ "className",
319
+ "showCloseButton",
320
+ "children"
321
+ ]);
322
+ return /* @__PURE__ */ jsxs(
323
+ "div",
324
+ __spreadProps(__spreadValues({
325
+ "data-slot": "dialog-footer",
326
+ className: cn(
327
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
328
+ className
329
+ )
330
+ }, props), {
331
+ children: [
332
+ children,
333
+ showCloseButton && /* @__PURE__ */ jsx3(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx3(Button, { variant: "outline", children: "Close" }) })
334
+ ]
335
+ })
336
+ );
337
+ }
338
+ function DialogTitle(_a) {
339
+ var _b = _a, {
340
+ className
341
+ } = _b, props = __objRest(_b, [
342
+ "className"
343
+ ]);
344
+ return /* @__PURE__ */ jsx3(
345
+ DialogPrimitive.Title,
346
+ __spreadValues({
347
+ "data-slot": "dialog-title",
348
+ className: cn("text-lg leading-none font-semibold", className)
349
+ }, props)
350
+ );
351
+ }
352
+ function DialogDescription(_a) {
353
+ var _b = _a, {
354
+ className
355
+ } = _b, props = __objRest(_b, [
356
+ "className"
357
+ ]);
358
+ return /* @__PURE__ */ jsx3(
359
+ DialogPrimitive.Description,
360
+ __spreadValues({
361
+ "data-slot": "dialog-description",
362
+ className: cn("text-muted-foreground text-sm", className)
363
+ }, props)
364
+ );
365
+ }
366
+
367
+ // src/components/ui/input.tsx
368
+ import { jsx as jsx4 } from "react/jsx-runtime";
369
+ function Input(_a) {
370
+ var _b = _a, { className, type } = _b, props = __objRest(_b, ["className", "type"]);
371
+ return /* @__PURE__ */ jsx4(
372
+ "input",
373
+ __spreadValues({
374
+ type,
375
+ "data-slot": "input",
376
+ className: cn(
377
+ "file:text-foreground placeholder:text-muted-foreground/60 selection:bg-primary selection:text-primary-foreground dark:bg-surface-subtle border-border-subtle h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base transition-colors duration-150 outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
378
+ "focus-visible:border-accent focus-visible:ring-accent/25 focus-visible:ring-[2px]",
379
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
380
+ className
381
+ )
382
+ }, props)
383
+ );
384
+ }
385
+
386
+ // src/components/ui/sonner.tsx
387
+ import {
388
+ CircleCheckIcon,
389
+ InfoIcon,
390
+ Loader2Icon,
391
+ OctagonXIcon,
392
+ TriangleAlertIcon
393
+ } from "lucide-react";
394
+ import { useTheme } from "next-themes";
395
+ import { Toaster as Sonner } from "sonner";
396
+ import { jsx as jsx5 } from "react/jsx-runtime";
397
+ var Toaster = (_a) => {
398
+ var props = __objRest(_a, []);
399
+ const { theme = "system" } = useTheme();
400
+ return /* @__PURE__ */ jsx5(
401
+ Sonner,
402
+ __spreadValues({
403
+ theme,
404
+ className: "toaster group font-sans",
405
+ position: "bottom-right",
406
+ duration: 4e3,
407
+ icons: {
408
+ success: /* @__PURE__ */ jsx5(CircleCheckIcon, { className: "size-4" }),
409
+ info: /* @__PURE__ */ jsx5(InfoIcon, { className: "size-4" }),
410
+ warning: /* @__PURE__ */ jsx5(TriangleAlertIcon, { className: "size-4" }),
411
+ error: /* @__PURE__ */ jsx5(OctagonXIcon, { className: "size-4" }),
412
+ loading: /* @__PURE__ */ jsx5(Loader2Icon, { className: "size-4 animate-spin" })
413
+ },
414
+ style: {
415
+ "--normal-bg": "var(--card)",
416
+ "--normal-text": "var(--card-foreground)",
417
+ "--normal-border": "var(--border-subtle)",
418
+ "--success-bg": "var(--card)",
419
+ "--success-text": "var(--card-foreground)",
420
+ "--success-border": "var(--border-subtle)",
421
+ "--error-bg": "var(--card)",
422
+ "--error-text": "var(--destructive)",
423
+ "--error-border": "var(--border-subtle)",
424
+ "--info-bg": "var(--card)",
425
+ "--info-text": "var(--card-foreground)",
426
+ "--info-border": "var(--border-subtle)",
427
+ "--warning-bg": "var(--card)",
428
+ "--warning-text": "var(--card-foreground)",
429
+ "--warning-border": "var(--border-subtle)",
430
+ "--border-radius": "var(--radius-md-value)"
431
+ }
432
+ }, props)
433
+ );
434
+ };
435
+ export {
436
+ Avatar,
437
+ AvatarBadge,
438
+ AvatarFallback,
439
+ AvatarGroup,
440
+ AvatarGroupCount,
441
+ AvatarImage,
442
+ Badge,
443
+ Button,
444
+ Card,
445
+ CardAction,
446
+ CardContent,
447
+ CardDescription,
448
+ CardElevated,
449
+ CardFooter,
450
+ CardHeader,
451
+ CardTitle,
452
+ Dialog,
453
+ DialogClose,
454
+ DialogContent,
455
+ DialogDescription,
456
+ DialogFooter,
457
+ DialogHeader,
458
+ DialogOverlay,
459
+ DialogPortal,
460
+ DialogTitle,
461
+ DialogTrigger,
462
+ DropdownMenu,
463
+ DropdownMenuCheckboxItem,
464
+ DropdownMenuContent,
465
+ DropdownMenuGroup,
466
+ DropdownMenuItem,
467
+ DropdownMenuLabel,
468
+ DropdownMenuPortal,
469
+ DropdownMenuRadioGroup,
470
+ DropdownMenuRadioItem,
471
+ DropdownMenuSeparator,
472
+ DropdownMenuShortcut,
473
+ DropdownMenuSub,
474
+ DropdownMenuSubContent,
475
+ DropdownMenuSubTrigger,
476
+ DropdownMenuTrigger,
477
+ Input,
478
+ Toaster,
479
+ badgeVariants,
480
+ buttonVariants
481
+ };
@@ -0,0 +1,5 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare function cn(...inputs: ClassValue[]): string;
4
+
5
+ export { cn };
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "../chunk-JBTDRVZ7.js";
5
+ export {
6
+ cn
7
+ };