@kenshinx/ui 1.2.0 → 1.5.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/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { ClassValue } from 'clsx';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import * as React from 'react';
4
+ import * as class_variance_authority from 'class-variance-authority';
4
5
  import { VariantProps } from 'class-variance-authority';
5
6
  import * as LabelPrimitive from '@radix-ui/react-label';
6
7
  import * as react_jsx_runtime from 'react/jsx-runtime';
@@ -10,6 +11,14 @@ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
10
11
  import * as SelectPrimitive from '@radix-ui/react-select';
11
12
  import { ToasterProps } from 'sonner';
12
13
  export { toast } from 'sonner';
14
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
15
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
16
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
17
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
18
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
19
+ import * as _radix_ui_react_slot from '@radix-ui/react-slot';
20
+ import * as react_hook_form from 'react-hook-form';
21
+ import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
13
22
 
14
23
  /**
15
24
  * Utility function to merge Tailwind CSS classes with clsx
@@ -92,4 +101,100 @@ interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<
92
101
  }
93
102
  declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLDivElement>>;
94
103
 
95
- export { Alert, AlertDescription, AlertTitle, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Input, type InputProps, Label, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Switch, Textarea, type TextareaProps, Toaster, alertVariants, badgeVariants, buttonVariants, cn };
104
+ declare const DropdownMenu: React.FC<DropdownMenuPrimitive.DropdownMenuProps>;
105
+ declare const DropdownMenuTrigger: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React.RefAttributes<HTMLButtonElement>>;
106
+ declare const DropdownMenuGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
107
+ declare const DropdownMenuPortal: React.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
108
+ declare const DropdownMenuSub: React.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
109
+ declare const DropdownMenuRadioGroup: React.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
110
+ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
111
+ inset?: boolean;
112
+ } & React.RefAttributes<HTMLDivElement>>;
113
+ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
114
+ declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
115
+ declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
116
+ inset?: boolean;
117
+ } & React.RefAttributes<HTMLDivElement>>;
118
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
119
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
120
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
121
+ inset?: boolean;
122
+ } & React.RefAttributes<HTMLDivElement>>;
123
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
124
+ declare const DropdownMenuShortcut: {
125
+ ({ className, ...props }: React.HTMLAttributes<globalThis.HTMLSpanElement>): react_jsx_runtime.JSX.Element;
126
+ displayName: string;
127
+ };
128
+
129
+ declare const Tabs: React.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>>;
130
+ declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
131
+ declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
132
+ declare const TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
133
+
134
+ declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
135
+ declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
136
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
137
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
138
+
139
+ declare const Popover: React.FC<PopoverPrimitive.PopoverProps>;
140
+ declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React.RefAttributes<HTMLButtonElement>>;
141
+ declare const PopoverContent: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
142
+
143
+ declare const Sheet: React.FC<DialogPrimitive.DialogProps>;
144
+ declare const SheetTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
145
+ declare const SheetClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
146
+ declare const SheetPortal: React.FC<DialogPrimitive.DialogPortalProps>;
147
+ declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
148
+ declare const sheetVariants: (props?: ({
149
+ side?: "top" | "right" | "bottom" | "left" | null | undefined;
150
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
151
+ interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
152
+ }
153
+ declare const SheetContent: React.ForwardRefExoticComponent<SheetContentProps & React.RefAttributes<HTMLDivElement>>;
154
+ declare const SheetHeader: {
155
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
156
+ displayName: string;
157
+ };
158
+ declare const SheetFooter: {
159
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
160
+ displayName: string;
161
+ };
162
+ declare const SheetTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
163
+ declare const SheetDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
164
+
165
+ declare const Avatar: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
166
+ declare const AvatarImage: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarImageProps & React.RefAttributes<HTMLImageElement>, "ref"> & React.RefAttributes<HTMLImageElement>>;
167
+ declare const AvatarFallback: React.ForwardRefExoticComponent<Omit<AvatarPrimitive.AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
168
+
169
+ declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
170
+
171
+ declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & React.RefAttributes<HTMLTableElement>>;
172
+ declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
173
+ declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
174
+ declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
175
+ declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & React.RefAttributes<HTMLTableRowElement>>;
176
+ declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
177
+ declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & React.RefAttributes<HTMLTableCellElement>>;
178
+ declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
179
+
180
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
181
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime.JSX.Element;
182
+ declare const useFormField: () => {
183
+ invalid: boolean;
184
+ isDirty: boolean;
185
+ isTouched: boolean;
186
+ isValidating: boolean;
187
+ error?: react_hook_form.FieldError;
188
+ id: string;
189
+ name: string;
190
+ formItemId: string;
191
+ formDescriptionId: string;
192
+ formMessageId: string;
193
+ };
194
+ declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
195
+ declare const FormLabel: React.ForwardRefExoticComponent<Omit<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & class_variance_authority.VariantProps<(props?: class_variance_authority_types.ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
196
+ declare const FormControl: React.ForwardRefExoticComponent<Omit<_radix_ui_react_slot.SlotProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
197
+ declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
198
+ declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
199
+
200
+ export { Alert, AlertDescription, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, 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, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Input, type InputProps, Label, Popover, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alertVariants, badgeVariants, buttonVariants, cn, useFormField };
package/dist/index.js CHANGED
@@ -1,18 +1,24 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { twMerge } from 'tailwind-merge';
3
- import * as React9 from 'react';
3
+ import * as React19 from 'react';
4
4
  import { useState, useEffect } from 'react';
5
5
  import { Slot } from '@radix-ui/react-slot';
6
6
  import { cva } from 'class-variance-authority';
7
7
  import { jsx, jsxs } from 'react/jsx-runtime';
8
8
  import * as LabelPrimitive from '@radix-ui/react-label';
9
9
  import * as DialogPrimitive from '@radix-ui/react-dialog';
10
- import { X, Check, ChevronDown, ChevronUp } from 'lucide-react';
10
+ import { X, Check, ChevronDown, ChevronUp, ChevronRight, Circle } from 'lucide-react';
11
11
  import * as SwitchPrimitives from '@radix-ui/react-switch';
12
12
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
13
13
  import * as SelectPrimitive from '@radix-ui/react-select';
14
14
  import { Toaster as Toaster$1 } from 'sonner';
15
15
  export { toast } from 'sonner';
16
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
17
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
18
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
19
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
20
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
21
+ import { useFormContext, useFormState, FormProvider, Controller } from 'react-hook-form';
16
22
 
17
23
  // src/lib/utils.ts
18
24
  function cn(...inputs) {
@@ -43,7 +49,7 @@ var buttonVariants = cva(
43
49
  }
44
50
  }
45
51
  );
46
- var Button = React9.forwardRef(
52
+ var Button = React19.forwardRef(
47
53
  ({ className, variant, size, asChild = false, ...props }, ref) => {
48
54
  const Comp = asChild ? Slot : "button";
49
55
  return /* @__PURE__ */ jsx(
@@ -57,7 +63,7 @@ var Button = React9.forwardRef(
57
63
  }
58
64
  );
59
65
  Button.displayName = "Button";
60
- var Input = React9.forwardRef(
66
+ var Input = React19.forwardRef(
61
67
  ({ className, type, ...props }, ref) => {
62
68
  return /* @__PURE__ */ jsx(
63
69
  "input",
@@ -77,7 +83,7 @@ Input.displayName = "Input";
77
83
  var labelVariants = cva(
78
84
  "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
79
85
  );
80
- var Label = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
86
+ var Label = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
81
87
  LabelPrimitive.Root,
82
88
  {
83
89
  ref,
@@ -86,7 +92,7 @@ var Label = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
86
92
  }
87
93
  ));
88
94
  Label.displayName = LabelPrimitive.Root.displayName;
89
- var Card = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
95
+ var Card = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
90
96
  "div",
91
97
  {
92
98
  ref,
@@ -98,7 +104,7 @@ var Card = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ j
98
104
  }
99
105
  ));
100
106
  Card.displayName = "Card";
101
- var CardHeader = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
107
+ var CardHeader = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
102
108
  "div",
103
109
  {
104
110
  ref,
@@ -107,7 +113,7 @@ var CardHeader = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE_
107
113
  }
108
114
  ));
109
115
  CardHeader.displayName = "CardHeader";
110
- var CardTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
116
+ var CardTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
111
117
  "h3",
112
118
  {
113
119
  ref,
@@ -119,7 +125,7 @@ var CardTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__
119
125
  }
120
126
  ));
121
127
  CardTitle.displayName = "CardTitle";
122
- var CardDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
128
+ var CardDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
123
129
  "p",
124
130
  {
125
131
  ref,
@@ -128,9 +134,9 @@ var CardDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__
128
134
  }
129
135
  ));
130
136
  CardDescription.displayName = "CardDescription";
131
- var CardContent = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
137
+ var CardContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
132
138
  CardContent.displayName = "CardContent";
133
- var CardFooter = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
139
+ var CardFooter = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
134
140
  "div",
135
141
  {
136
142
  ref,
@@ -143,7 +149,7 @@ var Dialog = DialogPrimitive.Root;
143
149
  var DialogTrigger = DialogPrimitive.Trigger;
144
150
  var DialogPortal = DialogPrimitive.Portal;
145
151
  var DialogClose = DialogPrimitive.Close;
146
- var DialogOverlay = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
152
+ var DialogOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
147
153
  DialogPrimitive.Overlay,
148
154
  {
149
155
  ref,
@@ -155,7 +161,7 @@ var DialogOverlay = React9.forwardRef(({ className, ...props }, ref) => /* @__PU
155
161
  }
156
162
  ));
157
163
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
158
- var DialogContent = React9.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
164
+ var DialogContent = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
159
165
  /* @__PURE__ */ jsx(DialogOverlay, {}),
160
166
  /* @__PURE__ */ jsxs(
161
167
  DialogPrimitive.Content,
@@ -205,7 +211,7 @@ var DialogFooter = ({
205
211
  }
206
212
  );
207
213
  DialogFooter.displayName = "DialogFooter";
208
- var DialogTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
214
+ var DialogTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
209
215
  DialogPrimitive.Title,
210
216
  {
211
217
  ref,
@@ -217,7 +223,7 @@ var DialogTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE
217
223
  }
218
224
  ));
219
225
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
220
- var DialogDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
226
+ var DialogDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
221
227
  DialogPrimitive.Description,
222
228
  {
223
229
  ref,
@@ -226,7 +232,7 @@ var DialogDescription = React9.forwardRef(({ className, ...props }, ref) => /* @
226
232
  }
227
233
  ));
228
234
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
229
- var Switch = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
235
+ var Switch = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
230
236
  SwitchPrimitives.Root,
231
237
  {
232
238
  className: cn(
@@ -246,7 +252,7 @@ var Switch = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
246
252
  }
247
253
  ));
248
254
  Switch.displayName = SwitchPrimitives.Root.displayName;
249
- var Checkbox = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
255
+ var Checkbox = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
250
256
  CheckboxPrimitive.Root,
251
257
  {
252
258
  ref,
@@ -265,7 +271,7 @@ var Checkbox = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__
265
271
  }
266
272
  ));
267
273
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
268
- var Textarea = React9.forwardRef(
274
+ var Textarea = React19.forwardRef(
269
275
  ({ className, ...props }, ref) => {
270
276
  return /* @__PURE__ */ jsx(
271
277
  "textarea",
@@ -284,7 +290,7 @@ Textarea.displayName = "Textarea";
284
290
  var Select = SelectPrimitive.Root;
285
291
  var SelectGroup = SelectPrimitive.Group;
286
292
  var SelectValue = SelectPrimitive.Value;
287
- var SelectTrigger = React9.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
293
+ var SelectTrigger = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
288
294
  SelectPrimitive.Trigger,
289
295
  {
290
296
  ref,
@@ -300,7 +306,7 @@ var SelectTrigger = React9.forwardRef(({ className, children, ...props }, ref) =
300
306
  }
301
307
  ));
302
308
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
303
- var SelectScrollUpButton = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
309
+ var SelectScrollUpButton = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
304
310
  SelectPrimitive.ScrollUpButton,
305
311
  {
306
312
  ref,
@@ -313,7 +319,7 @@ var SelectScrollUpButton = React9.forwardRef(({ className, ...props }, ref) => /
313
319
  }
314
320
  ));
315
321
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
316
- var SelectScrollDownButton = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
322
+ var SelectScrollDownButton = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
317
323
  SelectPrimitive.ScrollDownButton,
318
324
  {
319
325
  ref,
@@ -326,7 +332,7 @@ var SelectScrollDownButton = React9.forwardRef(({ className, ...props }, ref) =>
326
332
  }
327
333
  ));
328
334
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
329
- var SelectContent = React9.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
335
+ var SelectContent = React19.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
330
336
  SelectPrimitive.Content,
331
337
  {
332
338
  ref,
@@ -354,7 +360,7 @@ var SelectContent = React9.forwardRef(({ className, children, position = "popper
354
360
  }
355
361
  ) }));
356
362
  SelectContent.displayName = SelectPrimitive.Content.displayName;
357
- var SelectLabel = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
363
+ var SelectLabel = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
358
364
  SelectPrimitive.Label,
359
365
  {
360
366
  ref,
@@ -363,7 +369,7 @@ var SelectLabel = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE
363
369
  }
364
370
  ));
365
371
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
366
- var SelectItem = React9.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
372
+ var SelectItem = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
367
373
  SelectPrimitive.Item,
368
374
  {
369
375
  ref,
@@ -379,7 +385,7 @@ var SelectItem = React9.forwardRef(({ className, children, ...props }, ref) => /
379
385
  }
380
386
  ));
381
387
  SelectItem.displayName = SelectPrimitive.Item.displayName;
382
- var SelectSeparator = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
388
+ var SelectSeparator = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
383
389
  SelectPrimitive.Separator,
384
390
  {
385
391
  ref,
@@ -449,7 +455,7 @@ var alertVariants = cva(
449
455
  }
450
456
  }
451
457
  );
452
- var Alert = React9.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
458
+ var Alert = React19.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
453
459
  "div",
454
460
  {
455
461
  ref,
@@ -459,7 +465,7 @@ var Alert = React9.forwardRef(({ className, variant, ...props }, ref) => /* @__P
459
465
  }
460
466
  ));
461
467
  Alert.displayName = "Alert";
462
- var AlertTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
468
+ var AlertTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
463
469
  "h5",
464
470
  {
465
471
  ref,
@@ -468,7 +474,7 @@ var AlertTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE_
468
474
  }
469
475
  ));
470
476
  AlertTitle.displayName = "AlertTitle";
471
- var AlertDescription = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
477
+ var AlertDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
472
478
  "div",
473
479
  {
474
480
  ref,
@@ -493,7 +499,7 @@ var badgeVariants = cva(
493
499
  }
494
500
  }
495
501
  );
496
- var Badge = React9.forwardRef(
502
+ var Badge = React19.forwardRef(
497
503
  ({ className, variant, asChild = false, ...props }, ref) => {
498
504
  const Comp = asChild ? Slot : "div";
499
505
  return /* @__PURE__ */ jsx(
@@ -507,5 +513,513 @@ var Badge = React9.forwardRef(
507
513
  }
508
514
  );
509
515
  Badge.displayName = "Badge";
516
+ var DropdownMenu = DropdownMenuPrimitive.Root;
517
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
518
+ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
519
+ var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
520
+ var DropdownMenuSub = DropdownMenuPrimitive.Sub;
521
+ var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
522
+ var DropdownMenuSubTrigger = React19.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
523
+ DropdownMenuPrimitive.SubTrigger,
524
+ {
525
+ ref,
526
+ className: cn(
527
+ "focus:bg-accent data-[state=open]:bg-accent flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
528
+ inset && "pl-8",
529
+ className
530
+ ),
531
+ ...props,
532
+ children: [
533
+ children,
534
+ /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto" })
535
+ ]
536
+ }
537
+ ));
538
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
539
+ var DropdownMenuSubContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
540
+ DropdownMenuPrimitive.SubContent,
541
+ {
542
+ ref,
543
+ className: cn(
544
+ "bg-popover text-popover-foreground 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-lg",
545
+ className
546
+ ),
547
+ ...props
548
+ }
549
+ ));
550
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
551
+ var DropdownMenuContent = React19.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
552
+ DropdownMenuPrimitive.Content,
553
+ {
554
+ ref,
555
+ sideOffset,
556
+ className: cn(
557
+ "bg-popover text-popover-foreground 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-md",
558
+ className
559
+ ),
560
+ ...props
561
+ }
562
+ ) }));
563
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
564
+ var DropdownMenuItem = React19.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
565
+ DropdownMenuPrimitive.Item,
566
+ {
567
+ ref,
568
+ className: cn(
569
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
570
+ inset && "pl-8",
571
+ className
572
+ ),
573
+ ...props
574
+ }
575
+ ));
576
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
577
+ var DropdownMenuCheckboxItem = React19.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
578
+ DropdownMenuPrimitive.CheckboxItem,
579
+ {
580
+ ref,
581
+ className: cn(
582
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
583
+ className
584
+ ),
585
+ checked,
586
+ ...props,
587
+ children: [
588
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
589
+ children
590
+ ]
591
+ }
592
+ ));
593
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
594
+ var DropdownMenuRadioItem = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
595
+ DropdownMenuPrimitive.RadioItem,
596
+ {
597
+ ref,
598
+ className: cn(
599
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
600
+ className
601
+ ),
602
+ ...props,
603
+ children: [
604
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
605
+ children
606
+ ]
607
+ }
608
+ ));
609
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
610
+ var DropdownMenuLabel = React19.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
611
+ DropdownMenuPrimitive.Label,
612
+ {
613
+ ref,
614
+ className: cn(
615
+ "px-2 py-1.5 text-sm font-semibold",
616
+ inset && "pl-8",
617
+ className
618
+ ),
619
+ ...props
620
+ }
621
+ ));
622
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
623
+ var DropdownMenuSeparator = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
624
+ DropdownMenuPrimitive.Separator,
625
+ {
626
+ ref,
627
+ className: cn("bg-muted -mx-1 my-1 h-px", className),
628
+ ...props
629
+ }
630
+ ));
631
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
632
+ var DropdownMenuShortcut = ({
633
+ className,
634
+ ...props
635
+ }) => {
636
+ return /* @__PURE__ */ jsx(
637
+ "span",
638
+ {
639
+ className: cn("ml-auto text-xs tracking-widest opacity-60", className),
640
+ ...props
641
+ }
642
+ );
643
+ };
644
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
645
+ var Tabs = TabsPrimitive.Root;
646
+ var TabsList = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
647
+ TabsPrimitive.List,
648
+ {
649
+ ref,
650
+ className: cn(
651
+ "bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",
652
+ className
653
+ ),
654
+ ...props
655
+ }
656
+ ));
657
+ TabsList.displayName = TabsPrimitive.List.displayName;
658
+ var TabsTrigger = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
659
+ TabsPrimitive.Trigger,
660
+ {
661
+ ref,
662
+ className: cn(
663
+ "ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm",
664
+ className
665
+ ),
666
+ ...props
667
+ }
668
+ ));
669
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
670
+ var TabsContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
671
+ TabsPrimitive.Content,
672
+ {
673
+ ref,
674
+ className: cn(
675
+ "ring-offset-background focus-visible:ring-ring mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
676
+ className
677
+ ),
678
+ ...props
679
+ }
680
+ ));
681
+ TabsContent.displayName = TabsPrimitive.Content.displayName;
682
+ var TooltipProvider = TooltipPrimitive.Provider;
683
+ var Tooltip = TooltipPrimitive.Root;
684
+ var TooltipTrigger = TooltipPrimitive.Trigger;
685
+ var TooltipContent = React19.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
686
+ TooltipPrimitive.Content,
687
+ {
688
+ ref,
689
+ sideOffset,
690
+ className: cn(
691
+ "bg-popover text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-md border px-3 py-1.5 text-sm shadow-md",
692
+ className
693
+ ),
694
+ ...props
695
+ }
696
+ ));
697
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
698
+ var Popover = PopoverPrimitive.Root;
699
+ var PopoverTrigger = PopoverPrimitive.Trigger;
700
+ var PopoverContent = React19.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
701
+ PopoverPrimitive.Content,
702
+ {
703
+ ref,
704
+ align,
705
+ sideOffset,
706
+ className: cn(
707
+ "bg-popover text-popover-foreground 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",
708
+ className
709
+ ),
710
+ ...props
711
+ }
712
+ ) }));
713
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
714
+ var Sheet = DialogPrimitive.Root;
715
+ var SheetTrigger = DialogPrimitive.Trigger;
716
+ var SheetClose = DialogPrimitive.Close;
717
+ var SheetPortal = DialogPrimitive.Portal;
718
+ var SheetOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
719
+ DialogPrimitive.Overlay,
720
+ {
721
+ className: cn(
722
+ "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/80",
723
+ className
724
+ ),
725
+ ...props,
726
+ ref
727
+ }
728
+ ));
729
+ SheetOverlay.displayName = DialogPrimitive.Overlay.displayName;
730
+ var sheetVariants = cva(
731
+ "bg-background fixed z-50 gap-4 p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
732
+ {
733
+ variants: {
734
+ side: {
735
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
736
+ bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
737
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
738
+ right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
739
+ }
740
+ },
741
+ defaultVariants: {
742
+ side: "right"
743
+ }
744
+ }
745
+ );
746
+ var SheetContent = React19.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
747
+ /* @__PURE__ */ jsx(SheetOverlay, {}),
748
+ /* @__PURE__ */ jsxs(
749
+ DialogPrimitive.Content,
750
+ {
751
+ ref,
752
+ className: cn(sheetVariants({ side }), className),
753
+ ...props,
754
+ children: [
755
+ children,
756
+ /* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none", children: [
757
+ /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
758
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
759
+ ] })
760
+ ]
761
+ }
762
+ )
763
+ ] }));
764
+ SheetContent.displayName = DialogPrimitive.Content.displayName;
765
+ var SheetHeader = ({
766
+ className,
767
+ ...props
768
+ }) => /* @__PURE__ */ jsx(
769
+ "div",
770
+ {
771
+ className: cn(
772
+ "flex flex-col space-y-2 text-center sm:text-left",
773
+ className
774
+ ),
775
+ ...props
776
+ }
777
+ );
778
+ SheetHeader.displayName = "SheetHeader";
779
+ var SheetFooter = ({
780
+ className,
781
+ ...props
782
+ }) => /* @__PURE__ */ jsx(
783
+ "div",
784
+ {
785
+ className: cn(
786
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
787
+ className
788
+ ),
789
+ ...props
790
+ }
791
+ );
792
+ SheetFooter.displayName = "SheetFooter";
793
+ var SheetTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
794
+ DialogPrimitive.Title,
795
+ {
796
+ ref,
797
+ className: cn("text-foreground text-lg font-semibold", className),
798
+ ...props
799
+ }
800
+ ));
801
+ SheetTitle.displayName = DialogPrimitive.Title.displayName;
802
+ var SheetDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
803
+ DialogPrimitive.Description,
804
+ {
805
+ ref,
806
+ className: cn("text-muted-foreground text-sm", className),
807
+ ...props
808
+ }
809
+ ));
810
+ SheetDescription.displayName = DialogPrimitive.Description.displayName;
811
+ var Avatar = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
812
+ AvatarPrimitive.Root,
813
+ {
814
+ ref,
815
+ className: cn(
816
+ "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
817
+ className
818
+ ),
819
+ ...props
820
+ }
821
+ ));
822
+ Avatar.displayName = AvatarPrimitive.Root.displayName;
823
+ var AvatarImage = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
824
+ AvatarPrimitive.Image,
825
+ {
826
+ ref,
827
+ className: cn("aspect-square h-full w-full", className),
828
+ ...props
829
+ }
830
+ ));
831
+ AvatarImage.displayName = AvatarPrimitive.Image.displayName;
832
+ var AvatarFallback = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
833
+ AvatarPrimitive.Fallback,
834
+ {
835
+ ref,
836
+ className: cn(
837
+ "bg-muted flex h-full w-full items-center justify-center rounded-full",
838
+ className
839
+ ),
840
+ ...props
841
+ }
842
+ ));
843
+ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
844
+ function Skeleton({
845
+ className,
846
+ ...props
847
+ }) {
848
+ return /* @__PURE__ */ jsx(
849
+ "div",
850
+ {
851
+ className: cn("bg-muted animate-pulse rounded-md", className),
852
+ ...props
853
+ }
854
+ );
855
+ }
856
+ var Table = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
857
+ "table",
858
+ {
859
+ ref,
860
+ className: cn("w-full caption-bottom text-sm", className),
861
+ ...props
862
+ }
863
+ ) }));
864
+ Table.displayName = "Table";
865
+ var TableHeader = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
866
+ TableHeader.displayName = "TableHeader";
867
+ var TableBody = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
868
+ "tbody",
869
+ {
870
+ ref,
871
+ className: cn("[&_tr:last-child]:border-0", className),
872
+ ...props
873
+ }
874
+ ));
875
+ TableBody.displayName = "TableBody";
876
+ var TableFooter = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
877
+ "tfoot",
878
+ {
879
+ ref,
880
+ className: cn(
881
+ "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
882
+ className
883
+ ),
884
+ ...props
885
+ }
886
+ ));
887
+ TableFooter.displayName = "TableFooter";
888
+ var TableRow = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
889
+ "tr",
890
+ {
891
+ ref,
892
+ className: cn(
893
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
894
+ className
895
+ ),
896
+ ...props
897
+ }
898
+ ));
899
+ TableRow.displayName = "TableRow";
900
+ var TableHead = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
901
+ "th",
902
+ {
903
+ ref,
904
+ className: cn(
905
+ "text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0",
906
+ className
907
+ ),
908
+ ...props
909
+ }
910
+ ));
911
+ TableHead.displayName = "TableHead";
912
+ var TableCell = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
913
+ "td",
914
+ {
915
+ ref,
916
+ className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className),
917
+ ...props
918
+ }
919
+ ));
920
+ TableCell.displayName = "TableCell";
921
+ var TableCaption = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
922
+ "caption",
923
+ {
924
+ ref,
925
+ className: cn("text-muted-foreground mt-4 text-sm", className),
926
+ ...props
927
+ }
928
+ ));
929
+ TableCaption.displayName = "TableCaption";
930
+ var Form = FormProvider;
931
+ var FormFieldContext = React19.createContext(
932
+ {}
933
+ );
934
+ var FormField = ({
935
+ ...props
936
+ }) => {
937
+ return /* @__PURE__ */ jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx(Controller, { ...props }) });
938
+ };
939
+ var useFormField = () => {
940
+ const fieldContext = React19.useContext(FormFieldContext);
941
+ const itemContext = React19.useContext(FormItemContext);
942
+ const { getFieldState } = useFormContext();
943
+ const formState = useFormState({ name: fieldContext.name });
944
+ const fieldState = getFieldState(fieldContext.name, formState);
945
+ if (!fieldContext) {
946
+ throw new Error("useFormField should be used within <FormField>");
947
+ }
948
+ const { id } = itemContext;
949
+ return {
950
+ id,
951
+ name: fieldContext.name,
952
+ formItemId: `${id}-form-item`,
953
+ formDescriptionId: `${id}-form-item-description`,
954
+ formMessageId: `${id}-form-item-message`,
955
+ ...fieldState
956
+ };
957
+ };
958
+ var FormItemContext = React19.createContext(
959
+ {}
960
+ );
961
+ var FormItem = React19.forwardRef(({ className, ...props }, ref) => {
962
+ const id = React19.useId();
963
+ return /* @__PURE__ */ jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-2", className), ...props }) });
964
+ });
965
+ FormItem.displayName = "FormItem";
966
+ var FormLabel = React19.forwardRef(({ className, ...props }, ref) => {
967
+ const { error, formItemId } = useFormField();
968
+ return /* @__PURE__ */ jsx(
969
+ Label,
970
+ {
971
+ ref,
972
+ className: cn(error && "text-destructive", className),
973
+ htmlFor: formItemId,
974
+ ...props
975
+ }
976
+ );
977
+ });
978
+ FormLabel.displayName = "FormLabel";
979
+ var FormControl = React19.forwardRef(({ ...props }, ref) => {
980
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
981
+ return /* @__PURE__ */ jsx(
982
+ Slot,
983
+ {
984
+ ref,
985
+ id: formItemId,
986
+ "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
987
+ "aria-invalid": !!error,
988
+ ...props
989
+ }
990
+ );
991
+ });
992
+ FormControl.displayName = "FormControl";
993
+ var FormDescription = React19.forwardRef(({ className, ...props }, ref) => {
994
+ const { formDescriptionId } = useFormField();
995
+ return /* @__PURE__ */ jsx(
996
+ "p",
997
+ {
998
+ ref,
999
+ id: formDescriptionId,
1000
+ className: cn("text-muted-foreground text-sm", className),
1001
+ ...props
1002
+ }
1003
+ );
1004
+ });
1005
+ FormDescription.displayName = "FormDescription";
1006
+ var FormMessage = React19.forwardRef(({ className, children, ...props }, ref) => {
1007
+ const { error, formMessageId } = useFormField();
1008
+ const body = error ? String(error?.message ?? "") : children;
1009
+ if (!body) {
1010
+ return null;
1011
+ }
1012
+ return /* @__PURE__ */ jsx(
1013
+ "p",
1014
+ {
1015
+ ref,
1016
+ id: formMessageId,
1017
+ className: cn("text-destructive text-sm font-medium", className),
1018
+ ...props,
1019
+ children: body
1020
+ }
1021
+ );
1022
+ });
1023
+ FormMessage.displayName = "FormMessage";
510
1024
 
511
- export { Alert, AlertDescription, AlertTitle, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Input, Label, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Switch, Textarea, Toaster, alertVariants, badgeVariants, buttonVariants, cn };
1025
+ export { Alert, AlertDescription, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, 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, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Input, Label, Popover, PopoverContent, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alertVariants, badgeVariants, buttonVariants, cn, useFormField };
package/dist/styles.css CHANGED
@@ -83,7 +83,7 @@
83
83
  --secondary-foreground: 218 13% 84%;
84
84
 
85
85
  /* Muted */
86
- --muted: 270 18% 18%;
86
+ --muted: 270 18% 24%;
87
87
  --muted-foreground: 218 10% 65%;
88
88
 
89
89
  /* Accent */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenshinx/ui",
3
- "version": "1.2.0",
3
+ "version": "1.5.0",
4
4
  "description": "Personal React UI component library based on shadcn/ui patterns",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -33,12 +33,17 @@
33
33
  "clean": "rm -rf dist"
34
34
  },
35
35
  "dependencies": {
36
+ "@radix-ui/react-avatar": "^1.1.11",
36
37
  "@radix-ui/react-checkbox": "^1.1.3",
37
38
  "@radix-ui/react-dialog": "^1.1.4",
39
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
38
40
  "@radix-ui/react-label": "^2.1.1",
41
+ "@radix-ui/react-popover": "^1.1.15",
39
42
  "@radix-ui/react-select": "^2.1.5",
40
43
  "@radix-ui/react-slot": "^1.1.0",
41
44
  "@radix-ui/react-switch": "^1.1.2",
45
+ "@radix-ui/react-tabs": "^1.1.13",
46
+ "@radix-ui/react-tooltip": "^1.2.8",
42
47
  "class-variance-authority": "^0.7.1",
43
48
  "clsx": "^2.1.1",
44
49
  "lucide-react": "^0.469.0",
@@ -49,12 +54,29 @@
49
54
  "peerDependencies": {
50
55
  "react": "^18.0.0 || ^19.0.0",
51
56
  "react-dom": "^18.0.0 || ^19.0.0",
52
- "tailwindcss": "^3.4.0"
57
+ "tailwindcss": "^3.4.0",
58
+ "react-hook-form": "^7.0.0",
59
+ "@hookform/resolvers": "^3.0.0",
60
+ "zod": "^3.0.0"
61
+ },
62
+ "peerDependenciesMeta": {
63
+ "react-hook-form": {
64
+ "optional": true
65
+ },
66
+ "@hookform/resolvers": {
67
+ "optional": true
68
+ },
69
+ "zod": {
70
+ "optional": true
71
+ }
53
72
  },
54
73
  "devDependencies": {
55
74
  "@eslint/js": "^9.0.0",
75
+ "@hookform/resolvers": "^3.9.0",
56
76
  "@types/react": "^18.3.0",
57
77
  "@types/react-dom": "^18.3.0",
78
+ "react-hook-form": "^7.54.0",
79
+ "zod": "^3.24.0",
58
80
  "@typescript-eslint/eslint-plugin": "^8.0.0",
59
81
  "@typescript-eslint/parser": "^8.0.0",
60
82
  "eslint": "^9.0.0",