@godxjp/ui 8.0.0 → 8.1.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.
@@ -0,0 +1,137 @@
1
+ import { Select, SelectTrigger, SelectValue, SelectContent, SelectGroup, SelectItem } from './chunk-G2WYOCDL.js';
2
+ import { Inline } from './chunk-TILFZBTE.js';
3
+ import { Input } from './chunk-VOHTRR5X.js';
4
+ import { cn } from './chunk-U7N2A7A3.js';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
+ import * as React2 from 'react';
7
+ import { EyeOff, Eye, Minus } from 'lucide-react';
8
+ import { OTPInput, OTPInputContext } from 'input-otp';
9
+
10
+ function CountryOptionLabel({
11
+ country,
12
+ showCode = false,
13
+ className
14
+ }) {
15
+ const code = country.value ?? country.code ?? "";
16
+ const text = country.nativeName != null && country.nativeName !== "" ? `${country.name} (${country.nativeName})` : country.name;
17
+ return /* @__PURE__ */ jsxs(Inline, { gap: "xs", className: cn("items-center", className), children: [
18
+ country.flagSvgPath != null && country.flagSvgPath !== "" && /* @__PURE__ */ jsx(
19
+ "img",
20
+ {
21
+ src: country.flagSvgPath,
22
+ alt: "",
23
+ className: "h-3 w-5 shrink-0 rounded-sm object-cover",
24
+ "aria-hidden": "true"
25
+ }
26
+ ),
27
+ /* @__PURE__ */ jsxs("span", { className: "truncate", children: [
28
+ text,
29
+ showCode && code !== "" && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
30
+ " \xB7 ",
31
+ code
32
+ ] })
33
+ ] })
34
+ ] });
35
+ }
36
+ function CountrySelect({
37
+ id,
38
+ name,
39
+ options,
40
+ defaultValue,
41
+ required = false,
42
+ allowEmpty = false,
43
+ emptyLabel = "\u2014",
44
+ placeholder,
45
+ invalid = false
46
+ }) {
47
+ const emptyValue = "0";
48
+ const resolvedDefault = defaultValue && defaultValue !== "" ? defaultValue : emptyValue;
49
+ return /* @__PURE__ */ jsxs(
50
+ Select,
51
+ {
52
+ name,
53
+ defaultValue: allowEmpty ? resolvedDefault : defaultValue ?? options[0]?.value,
54
+ children: [
55
+ /* @__PURE__ */ jsx(SelectTrigger, { id, className: "w-full", "aria-invalid": invalid, "aria-required": required, children: /* @__PURE__ */ jsx(SelectValue, { placeholder }) }),
56
+ /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsxs(SelectGroup, { children: [
57
+ allowEmpty && /* @__PURE__ */ jsx(SelectItem, { value: emptyValue, children: emptyLabel }),
58
+ options.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.value ?? "", children: /* @__PURE__ */ jsx(CountryOptionLabel, { country: option }) }, option.value))
59
+ ] }) })
60
+ ]
61
+ }
62
+ );
63
+ }
64
+ var PasswordInput = React2.forwardRef(
65
+ ({ className, ...props }, ref) => {
66
+ const [visible, setVisible] = React2.useState(false);
67
+ return /* @__PURE__ */ jsxs("div", { className: "ui-password-input", "data-slot": "password-input", children: [
68
+ /* @__PURE__ */ jsx(
69
+ Input,
70
+ {
71
+ ref,
72
+ type: visible ? "text" : "password",
73
+ className: cn("ui-password-input-field", className),
74
+ ...props
75
+ }
76
+ ),
77
+ /* @__PURE__ */ jsx(
78
+ "button",
79
+ {
80
+ type: "button",
81
+ className: "ui-password-input-toggle",
82
+ onClick: () => setVisible((v) => !v),
83
+ "aria-label": visible ? "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u96A0\u3059" : "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8868\u793A",
84
+ tabIndex: -1,
85
+ children: visible ? /* @__PURE__ */ jsx(EyeOff, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx(Eye, { "aria-hidden": "true" })
86
+ }
87
+ )
88
+ ] });
89
+ }
90
+ );
91
+ PasswordInput.displayName = "PasswordInput";
92
+ var InputOTP = React2.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
93
+ OTPInput,
94
+ {
95
+ ref,
96
+ "data-slot": "input-otp",
97
+ containerClassName: cn("ui-otp-container", containerClassName),
98
+ className: cn("ui-otp-input", className),
99
+ ...props
100
+ }
101
+ ));
102
+ InputOTP.displayName = "InputOTP";
103
+ var InputOTPGroup = React2.forwardRef(
104
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
105
+ "div",
106
+ {
107
+ ref,
108
+ "data-slot": "input-otp-group",
109
+ className: cn("ui-otp-group", className),
110
+ ...props
111
+ }
112
+ )
113
+ );
114
+ InputOTPGroup.displayName = "InputOTPGroup";
115
+ var InputOTPSlot = React2.forwardRef(({ index, className, ...props }, ref) => {
116
+ const context = React2.useContext(OTPInputContext);
117
+ const slot = context.slots[index] ?? { char: null, hasFakeCaret: false, isActive: false };
118
+ return /* @__PURE__ */ jsxs(
119
+ "div",
120
+ {
121
+ ref,
122
+ "data-slot": "input-otp-slot",
123
+ "data-active": slot.isActive || void 0,
124
+ className: cn("ui-otp-slot", className),
125
+ ...props,
126
+ children: [
127
+ slot.char,
128
+ slot.hasFakeCaret ? /* @__PURE__ */ jsx("div", { className: "ui-otp-caret-wrapper", "aria-hidden": "true", children: /* @__PURE__ */ jsx("div", { className: "ui-otp-caret" }) }) : null
129
+ ]
130
+ }
131
+ );
132
+ });
133
+ InputOTPSlot.displayName = "InputOTPSlot";
134
+ var InputOTPSeparator = React2.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, { className: "ui-otp-separator-icon", "aria-hidden": "true" }) }));
135
+ InputOTPSeparator.displayName = "InputOTPSeparator";
136
+
137
+ export { CountryOptionLabel, CountrySelect, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, PasswordInput };
@@ -0,0 +1,61 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import * as React from 'react';
3
+ import { Drawer as Drawer$1 } from 'vaul';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+
6
+ function Drawer({
7
+ shouldScaleBackground = true,
8
+ ...props
9
+ }) {
10
+ return /* @__PURE__ */ jsx(Drawer$1.Root, { shouldScaleBackground, ...props });
11
+ }
12
+ Drawer.displayName = "Drawer";
13
+ var DrawerTrigger = Drawer$1.Trigger;
14
+ var DrawerClose = Drawer$1.Close;
15
+ var DrawerPortal = Drawer$1.Portal;
16
+ var DrawerOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
17
+ Drawer$1.Overlay,
18
+ {
19
+ ref,
20
+ "data-slot": "drawer-overlay",
21
+ className: cn("ui-drawer-overlay", className),
22
+ ...props
23
+ }
24
+ ));
25
+ DrawerOverlay.displayName = "DrawerOverlay";
26
+ var DrawerContent = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DrawerPortal, { children: [
27
+ /* @__PURE__ */ jsx(DrawerOverlay, {}),
28
+ /* @__PURE__ */ jsxs(
29
+ Drawer$1.Content,
30
+ {
31
+ ref,
32
+ "data-slot": "drawer-content",
33
+ className: cn("ui-drawer-content", className),
34
+ ...props,
35
+ children: [
36
+ /* @__PURE__ */ jsx("div", { className: "ui-drawer-handle", "aria-hidden": "true" }),
37
+ children
38
+ ]
39
+ }
40
+ )
41
+ ] }));
42
+ DrawerContent.displayName = "DrawerContent";
43
+ function DrawerHeader({ className, ...props }) {
44
+ return /* @__PURE__ */ jsx("div", { "data-slot": "drawer-header", className: cn("ui-drawer-header", className), ...props });
45
+ }
46
+ function DrawerFooter({ className, ...props }) {
47
+ return /* @__PURE__ */ jsx("div", { "data-slot": "drawer-footer", className: cn("ui-drawer-footer", className), ...props });
48
+ }
49
+ var DrawerTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Drawer$1.Title, { ref, className: cn("ui-drawer-title", className), ...props }));
50
+ DrawerTitle.displayName = "DrawerTitle";
51
+ var DrawerDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
52
+ Drawer$1.Description,
53
+ {
54
+ ref,
55
+ className: cn("ui-drawer-description", className),
56
+ ...props
57
+ }
58
+ ));
59
+ DrawerDescription.displayName = "DrawerDescription";
60
+
61
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger };
@@ -1,21 +1,21 @@
1
1
  import '../../chunk-HKD6ERY7.js';
2
- export { AlertMutationFeedback, ButtonRefetch, DataState, InfiniteQueryState, MutationFeedback, PrefetchLink, QueryRefetchButton, flattenItemPages } from '../../chunk-N43OKOFT.js';
3
2
  export { toast, useToast } from '../../chunk-B3WX53JQ.js';
4
3
  export { SkeletonCard, SkeletonDetail, SkeletonRows, SkeletonStat, SkeletonTable } from '../../chunk-AINW5WYN.js';
5
- export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-TMDGV4CN.js';
6
4
  export { Toaster } from '../../chunk-TO7URV7U.js';
7
5
  export { PageContainer, Stack } from '../../chunk-WTVLZVBA.js';
8
6
  import '../../chunk-FRU44GA2.js';
9
7
  import '../../chunk-32WO3YLB.js';
8
+ export { AlertMutationFeedback, ButtonRefetch, DataState, InfiniteQueryState, MutationFeedback, PrefetchLink, QueryRefetchButton, flattenItemPages } from '../../chunk-N43OKOFT.js';
9
+ export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-TMDGV4CN.js';
10
10
  export { FilterBar, FilterGroup, PageHeader, Toolbar, ToolbarGroup } from '../../chunk-4R7RQDXI.js';
11
- import '../../chunk-TO33OY4L.js';
12
11
  export { Pagination } from '../../chunk-SKIRU7GC.js';
13
12
  export { Steps } from '../../chunk-OJZ6C2HM.js';
14
13
  export { Tabs, TabsContent, TabsList, TabsTrigger } from '../../chunk-V3N266PT.js';
14
+ import '../../chunk-TO33OY4L.js';
15
15
  export { TreeSelect } from '../../chunk-A22MCA3X.js';
16
- export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-Z6HNY2PL.js';
17
- export { formatBytes, formatCurrency, formatDateLong, formatDateTime, formatRelative, humanError, shortId } from '../../chunk-4R7QL3MW.js';
16
+ export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-SMWKD2HG.js';
18
17
  export { AlertDialog, Dialog, DialogConfirm, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '../../chunk-P4HFJQID.js';
18
+ export { formatBytes, formatCurrency, formatDateLong, formatDateTime, formatRelative, humanError, shortId } from '../../chunk-4R7QL3MW.js';
19
19
  import '../../chunk-G2WYOCDL.js';
20
20
  import '../../chunk-CRERCLIZ.js';
21
21
  export { SearchInput, Transfer, useDebouncedValue, useTimeoutFlag } from '../../chunk-NG23LVTM.js';
@@ -10,6 +10,8 @@ import { ReactNode } from 'react';
10
10
  export { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from './popover.js';
11
11
  export { ScrollArea, ScrollBar } from './scroll-area.js';
12
12
  import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
13
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
14
+ import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
13
15
  import 'class-variance-authority/types';
14
16
  import 'class-variance-authority';
15
17
  import '@radix-ui/react-avatar';
@@ -58,4 +60,13 @@ declare const Collapsible: React.ForwardRefExoticComponent<CollapsiblePrimitive.
58
60
  declare const CollapsibleTrigger: React.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleTriggerProps & React.RefAttributes<HTMLButtonElement>>;
59
61
  declare const CollapsibleContent: React.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleContentProps & React.RefAttributes<HTMLDivElement>>;
60
62
 
61
- export { Collapsible, CollapsibleContent, CollapsibleTrigger, Progress, type ProgressProps, type ProgressTone, Timeline, type TimelineItem, type TimelineProps, TreeList, type TreeListItem, type TreeListProps };
63
+ declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
64
+ declare const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
65
+ declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
66
+ declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
67
+
68
+ declare const HoverCard: React.FC<HoverCardPrimitive.HoverCardProps>;
69
+ declare const HoverCardTrigger: React.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>;
70
+ declare const HoverCardContent: React.ForwardRefExoticComponent<Omit<HoverCardPrimitive.HoverCardContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
71
+
72
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Collapsible, CollapsibleContent, CollapsibleTrigger, HoverCard, HoverCardContent, HoverCardTrigger, Progress, type ProgressProps, type ProgressTone, Timeline, type TimelineItem, type TimelineProps, TreeList, type TreeListItem, type TreeListProps };
@@ -12,9 +12,12 @@ import '../../chunk-M4PZNAMV.js';
12
12
  import '../../chunk-IBK5D2Q6.js';
13
13
  import '../../chunk-RLGHEV4A.js';
14
14
  import '../../chunk-FXFJF4YA.js';
15
- import '../../chunk-U7N2A7A3.js';
16
- import { jsxs, jsx } from 'react/jsx-runtime';
17
- import { ChevronRight, Package, Plane, CheckCircle2 } from 'lucide-react';
15
+ import { cn } from '../../chunk-U7N2A7A3.js';
16
+ import { jsx, jsxs } from 'react/jsx-runtime';
17
+ import { ChevronDown, ChevronRight, Package, Plane, CheckCircle2 } from 'lucide-react';
18
+ import * as React from 'react';
19
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
20
+ import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
18
21
 
19
22
  function Progress({ value, label, tone = "success" }) {
20
23
  const boundedValue = Math.max(0, Math.min(100, value));
@@ -73,5 +76,55 @@ function Timeline({ items }) {
73
76
  ] }, index);
74
77
  }) });
75
78
  }
79
+ var Accordion = AccordionPrimitive.Root;
80
+ var AccordionItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
81
+ AccordionPrimitive.Item,
82
+ {
83
+ ref,
84
+ "data-slot": "accordion-item",
85
+ className: cn("ui-accordion-item", className),
86
+ ...props
87
+ }
88
+ ));
89
+ AccordionItem.displayName = "AccordionItem";
90
+ var AccordionTrigger = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "ui-accordion-header", children: /* @__PURE__ */ jsxs(
91
+ AccordionPrimitive.Trigger,
92
+ {
93
+ ref,
94
+ "data-slot": "accordion-trigger",
95
+ className: cn("ui-accordion-trigger", className),
96
+ ...props,
97
+ children: [
98
+ children,
99
+ /* @__PURE__ */ jsx(ChevronDown, { className: "ui-accordion-chevron", "aria-hidden": "true" })
100
+ ]
101
+ }
102
+ ) }));
103
+ AccordionTrigger.displayName = "AccordionTrigger";
104
+ var AccordionContent = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
105
+ AccordionPrimitive.Content,
106
+ {
107
+ ref,
108
+ "data-slot": "accordion-content",
109
+ className: cn("ui-accordion-content", className),
110
+ ...props,
111
+ children: /* @__PURE__ */ jsx("div", { className: "ui-accordion-content-inner", children })
112
+ }
113
+ ));
114
+ AccordionContent.displayName = "AccordionContent";
115
+ var HoverCard = HoverCardPrimitive.Root;
116
+ var HoverCardTrigger = HoverCardPrimitive.Trigger;
117
+ var HoverCardContent = React.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(HoverCardPrimitive.Portal, { children: /* @__PURE__ */ jsx(
118
+ HoverCardPrimitive.Content,
119
+ {
120
+ ref,
121
+ "data-slot": "hover-card-content",
122
+ align,
123
+ sideOffset,
124
+ className: cn("ui-hover-card-content", className),
125
+ ...props
126
+ }
127
+ ) }));
128
+ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
76
129
 
77
- export { Progress, Timeline, TreeList };
130
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, HoverCard, HoverCardContent, HoverCardTrigger, Progress, Timeline, TreeList };
@@ -1,4 +1,5 @@
1
- export { Input, InputProps } from './input.js';
1
+ import { Input } from './input.js';
2
+ export { InputProps } from './input.js';
2
3
  export { Label } from './label.js';
3
4
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from './select.js';
4
5
  export { C as Checkbox, a as CheckboxGroup } from '../../checkbox-ChRsR7Nk.js';
@@ -22,7 +23,8 @@ export { Cascader, TreeFieldNames, TreeOption } from './cascader.js';
22
23
  export { SHOW_ALL, SHOW_CHILD, SHOW_PARENT, TreeSelect } from './tree-select.js';
23
24
  export { Transfer } from './transfer.js';
24
25
  export { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from './command.js';
25
- import 'react';
26
+ import * as React from 'react';
27
+ import * as input_otp from 'input-otp';
26
28
  import 'class-variance-authority/types';
27
29
  import '@radix-ui/react-label';
28
30
  import 'class-variance-authority';
@@ -55,4 +57,40 @@ declare function CountrySelect({ id, name, options, defaultValue, required, allo
55
57
  */
56
58
  declare function SearchSelect({ value, onValueChange, options: staticOptions, loadOptions, renderOption, selectedLabel, placeholder, searchPlaceholder, emptyMessage, loadingMessage, clearLabel, clearable, disabled, name, id, className, "data-testid": dataTestId, }: SearchSelectProp): react_jsx_runtime.JSX.Element;
57
59
 
58
- export { CountryOptionLabel, CountryOptionLabelProp, CountrySelect, CountrySelectProp as CountrySelectProps, SearchSelect, SearchSelectProp as SearchSelectProps };
60
+ type PasswordInputProps = Omit<React.ComponentPropsWithoutRef<typeof Input>, "type">;
61
+ declare const PasswordInput: React.ForwardRefExoticComponent<PasswordInputProps & React.RefAttributes<HTMLInputElement>>;
62
+
63
+ declare const InputOTP: React.ForwardRefExoticComponent<(Omit<Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "maxLength" | "textAlign" | "onComplete" | "pushPasswordManagerStrategy" | "pasteTransformer" | "containerClassName" | "noScriptCSSFallback"> & {
64
+ value?: string;
65
+ onChange?: (newValue: string) => unknown;
66
+ maxLength: number;
67
+ textAlign?: "left" | "center" | "right";
68
+ onComplete?: (...args: any[]) => unknown;
69
+ pushPasswordManagerStrategy?: "increase-width" | "none";
70
+ pasteTransformer?: (pasted: string) => string;
71
+ containerClassName?: string;
72
+ noScriptCSSFallback?: string | null;
73
+ } & {
74
+ render: (props: input_otp.RenderProps) => React.ReactNode;
75
+ children?: never;
76
+ } & React.RefAttributes<HTMLInputElement>, "ref"> | Omit<Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "maxLength" | "textAlign" | "onComplete" | "pushPasswordManagerStrategy" | "pasteTransformer" | "containerClassName" | "noScriptCSSFallback"> & {
77
+ value?: string;
78
+ onChange?: (newValue: string) => unknown;
79
+ maxLength: number;
80
+ textAlign?: "left" | "center" | "right";
81
+ onComplete?: (...args: any[]) => unknown;
82
+ pushPasswordManagerStrategy?: "increase-width" | "none";
83
+ pasteTransformer?: (pasted: string) => string;
84
+ containerClassName?: string;
85
+ noScriptCSSFallback?: string | null;
86
+ } & {
87
+ render?: never;
88
+ children: React.ReactNode;
89
+ } & React.RefAttributes<HTMLInputElement>, "ref">) & React.RefAttributes<HTMLInputElement>>;
90
+ declare const InputOTPGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
91
+ declare const InputOTPSlot: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
92
+ index: number;
93
+ } & React.RefAttributes<HTMLDivElement>>;
94
+ declare const InputOTPSeparator: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
95
+
96
+ export { CountryOptionLabel, CountryOptionLabelProp, CountrySelect, CountrySelectProp as CountrySelectProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, PasswordInput, type PasswordInputProps, SearchSelect, SearchSelectProp as SearchSelectProps };
@@ -1,4 +1,4 @@
1
- export { CountryOptionLabel, CountrySelect } from '../../chunk-XMBCNMJI.js';
1
+ export { CountryOptionLabel, CountrySelect, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, PasswordInput } from '../../chunk-KKMQLQ7F.js';
2
2
  export { Toggle, ToggleGroup, ToggleGroupItem } from '../../chunk-FYM3MJSK.js';
3
3
  export { Radio, RadioGroupOptions as RadioGroup, RadioGroupRoot, RadioItem } from '../../chunk-25RYBC5T.js';
4
4
  export { Switch } from '../../chunk-R2W2FX5Q.js';
@@ -10,9 +10,9 @@ export { DateRangePicker } from '../../chunk-WN52SCGE.js';
10
10
  export { Autocomplete } from '../../chunk-XDUZ7JJL.js';
11
11
  export { Calendar } from '../../chunk-IOGU3ZWF.js';
12
12
  export { SHOW_ALL, SHOW_CHILD, SHOW_PARENT, TreeSelect } from '../../chunk-A22MCA3X.js';
13
- export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-Z6HNY2PL.js';
14
- import '../../chunk-4R7QL3MW.js';
13
+ export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-SMWKD2HG.js';
15
14
  import '../../chunk-P4HFJQID.js';
15
+ import '../../chunk-4R7QL3MW.js';
16
16
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from '../../chunk-G2WYOCDL.js';
17
17
  export { Slider } from '../../chunk-CRERCLIZ.js';
18
18
  export { SearchInput, Transfer } from '../../chunk-NG23LVTM.js';
@@ -1,6 +1,6 @@
1
- export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-Z6HNY2PL.js';
2
- import '../../chunk-4R7QL3MW.js';
1
+ export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-SMWKD2HG.js';
3
2
  import '../../chunk-P4HFJQID.js';
3
+ import '../../chunk-4R7QL3MW.js';
4
4
  import '../../chunk-CRERCLIZ.js';
5
5
  import '../../chunk-VOHTRR5X.js';
6
6
  import '../../chunk-M4PZNAMV.js';
@@ -7,8 +7,10 @@ export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, A
7
7
  import * as react_jsx_runtime from 'react/jsx-runtime';
8
8
  import * as React from 'react';
9
9
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
10
+ import * as vaul from 'vaul';
11
+ import { Drawer as Drawer$1 } from 'vaul';
12
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
10
13
  export { A as AlertActionsProp, A as AlertActionsProps, a as AlertContentProp, a as AlertContentProps, b as AlertDescriptionProp, b as AlertDescriptionProps, c as AlertDialogProp, c as AlertDialogProps, d as AlertProp, d as AlertProps, e as AlertQueryErrorProp, e as AlertQueryErrorProps, f as AlertTitleProp, f as AlertTitleProps, D as DialogConfirmProp, D as DialogConfirmProps } from '../../feedback.prop-BR5JOpPl.js';
11
- import '@radix-ui/react-dialog';
12
14
  import '@radix-ui/react-alert-dialog';
13
15
  import '../../shared.prop-BsNSXeqD.js';
14
16
  import '../../content.prop-DrV_zDy-.js';
@@ -26,4 +28,18 @@ declare function Tooltip({ delayDuration, ...props }: React.ComponentProps<typeo
26
28
  declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
27
29
  declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
28
30
 
29
- export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
31
+ declare function Drawer({ shouldScaleBackground, ...props }: React.ComponentProps<typeof Drawer$1.Root>): react_jsx_runtime.JSX.Element;
32
+ declare namespace Drawer {
33
+ var displayName: string;
34
+ }
35
+ declare const DrawerTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
36
+ declare const DrawerClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
37
+ declare const DrawerPortal: typeof vaul.Portal;
38
+ declare const DrawerOverlay: React.ForwardRefExoticComponent<Omit<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
39
+ declare const DrawerContent: React.ForwardRefExoticComponent<Omit<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
40
+ declare function DrawerHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
41
+ declare function DrawerFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
42
+ declare const DrawerTitle: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
43
+ declare const DrawerDescription: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
44
+
45
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
@@ -1,12 +1,12 @@
1
- import '../../chunk-2H65B4JA.js';
1
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from '../../chunk-WFUIE252.js';
2
2
  export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger } from '../../chunk-BHV2FUOA.js';
3
3
  export { toast, useToast } from '../../chunk-B3WX53JQ.js';
4
4
  export { Skeleton, SkeletonCard, SkeletonDetail, SkeletonRows, SkeletonStat, SkeletonTable } from '../../chunk-AINW5WYN.js';
5
- export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-TMDGV4CN.js';
6
5
  export { Toaster } from '../../chunk-TO7URV7U.js';
7
6
  export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../chunk-32WO3YLB.js';
8
- import '../../chunk-4R7QL3MW.js';
7
+ export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-TMDGV4CN.js';
9
8
  export { AlertDialog, Dialog, DialogAction, DialogCancel, DialogClose, DialogConfirm, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from '../../chunk-P4HFJQID.js';
9
+ import '../../chunk-4R7QL3MW.js';
10
10
  import '../../chunk-TILFZBTE.js';
11
11
  import '../../chunk-VOHTRR5X.js';
12
12
  import '../../chunk-M4PZNAMV.js';
@@ -1,8 +1,8 @@
1
1
  export { DateFormatPicker, FilterBar, FilterGroup, LocalePicker, PageHeader, TimeFormatPicker, TimezonePicker, Toolbar, ToolbarGroup } from '../../chunk-4R7RQDXI.js';
2
- export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from '../../chunk-TO33OY4L.js';
3
2
  export { Pagination } from '../../chunk-SKIRU7GC.js';
4
3
  export { Steps } from '../../chunk-OJZ6C2HM.js';
5
4
  export { Tabs, TabsContent, TabsList, TabsTrigger } from '../../chunk-V3N266PT.js';
5
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from '../../chunk-TO33OY4L.js';
6
6
  import '../../chunk-G2WYOCDL.js';
7
7
  import '../../chunk-6QXQQAOQ.js';
8
8
  import '../../chunk-HTEL5DQI.js';
@@ -12,15 +12,15 @@ export { DateRangePicker } from '../../chunk-WN52SCGE.js';
12
12
  export { Autocomplete } from '../../chunk-XDUZ7JJL.js';
13
13
  export { Calendar } from '../../chunk-IOGU3ZWF.js';
14
14
  export { Skeleton } from '../../chunk-AINW5WYN.js';
15
- export { Alert, AlertActions, AlertBase, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-TMDGV4CN.js';
16
15
  export { Toaster } from '../../chunk-TO7URV7U.js';
17
16
  export { AspectRatio } from '../../chunk-FRU44GA2.js';
18
- export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from '../../chunk-TO33OY4L.js';
17
+ export { Alert, AlertActions, AlertBase, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-TMDGV4CN.js';
19
18
  export { Pagination } from '../../chunk-SKIRU7GC.js';
20
19
  export { Tabs, TabsContent, TabsList, TabsTrigger } from '../../chunk-V3N266PT.js';
21
- export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-Z6HNY2PL.js';
22
- import '../../chunk-4R7QL3MW.js';
20
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from '../../chunk-TO33OY4L.js';
21
+ export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-SMWKD2HG.js';
23
22
  export { AlertDialog, Dialog, DialogAction, DialogCancel, DialogClose, DialogConfirm, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger } from '../../chunk-P4HFJQID.js';
23
+ import '../../chunk-4R7QL3MW.js';
24
24
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from '../../chunk-G2WYOCDL.js';
25
25
  export { Slider } from '../../chunk-CRERCLIZ.js';
26
26
  export { Checkbox } from '../../chunk-O24Z3ULJ.js';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import './chunk-2H65B4JA.js';
1
+ import './chunk-WFUIE252.js';
2
2
  import './chunk-BHV2FUOA.js';
3
- import './chunk-XMBCNMJI.js';
3
+ import './chunk-KKMQLQ7F.js';
4
4
  import './chunk-FYM3MJSK.js';
5
5
  import './chunk-25RYBC5T.js';
6
6
  import './chunk-R2W2FX5Q.js';
@@ -13,23 +13,23 @@ import './chunk-XDUZ7JJL.js';
13
13
  import './chunk-IOGU3ZWF.js';
14
14
  export { FormFieldControl, FormRoot, useZodForm } from './chunk-7WRZG2IG.js';
15
15
  import './chunk-HKD6ERY7.js';
16
- export { AlertMutationFeedback, ButtonRefetch, DataState, InfiniteQueryState, MutationFeedback, PrefetchLink, QueryRefetchButton, flattenItemPages } from './chunk-N43OKOFT.js';
17
16
  export { toast, useToast } from './chunk-B3WX53JQ.js';
18
17
  export { SkeletonCard, SkeletonDetail, SkeletonRows, SkeletonStat, SkeletonTable } from './chunk-AINW5WYN.js';
19
- export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from './chunk-TMDGV4CN.js';
20
18
  export { Toaster } from './chunk-TO7URV7U.js';
21
19
  export { PageContainer, Stack } from './chunk-WTVLZVBA.js';
22
20
  import './chunk-FRU44GA2.js';
23
21
  import './chunk-32WO3YLB.js';
22
+ export { AlertMutationFeedback, ButtonRefetch, DataState, InfiniteQueryState, MutationFeedback, PrefetchLink, QueryRefetchButton, flattenItemPages } from './chunk-N43OKOFT.js';
23
+ export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from './chunk-TMDGV4CN.js';
24
24
  export { FilterBar, FilterGroup, PageHeader, Toolbar, ToolbarGroup } from './chunk-4R7RQDXI.js';
25
- import './chunk-TO33OY4L.js';
26
25
  export { Pagination } from './chunk-SKIRU7GC.js';
27
26
  export { Steps } from './chunk-OJZ6C2HM.js';
28
27
  export { Tabs, TabsContent, TabsList, TabsTrigger } from './chunk-V3N266PT.js';
28
+ import './chunk-TO33OY4L.js';
29
29
  export { TreeSelect } from './chunk-A22MCA3X.js';
30
- export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from './chunk-Z6HNY2PL.js';
31
- export { formatBytes, formatCurrency, formatDateLong, formatDateTime, formatRelative, humanError, shortId } from './chunk-4R7QL3MW.js';
30
+ export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from './chunk-SMWKD2HG.js';
32
31
  export { AlertDialog, Dialog, DialogConfirm, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from './chunk-P4HFJQID.js';
32
+ export { formatBytes, formatCurrency, formatDateLong, formatDateTime, formatRelative, humanError, shortId } from './chunk-4R7QL3MW.js';
33
33
  import './chunk-G2WYOCDL.js';
34
34
  import './chunk-CRERCLIZ.js';
35
35
  export { SearchInput, Transfer, useDebouncedValue, useTimeoutFlag } from './chunk-NG23LVTM.js';
@@ -1,3 +1,3 @@
1
- import '../chunk-ZT5UEUBO.js';
2
1
  import '../chunk-B775Y6BE.js';
2
+ import '../chunk-ZT5UEUBO.js';
3
3
  export { COMPONENT_PROP_REGISTRY, PROP_ALIASES_FORBIDDEN, VOCABULARY_REGISTRY } from '../chunk-C5H655GK.js';
@@ -570,3 +570,34 @@
570
570
  }
571
571
  }
572
572
  }
573
+
574
+ /* PasswordInput */
575
+ .ui-password-input { position: relative; display: block; }
576
+ .ui-password-input-field { padding-right: 2.5rem; }
577
+ .ui-password-input-toggle {
578
+ position: absolute; inset-block: 0; inset-inline-end: 0; display: inline-flex;
579
+ align-items: center; justify-content: center; width: 2.5rem;
580
+ color: hsl(var(--muted-foreground)); background: transparent; border: 0; cursor: pointer;
581
+ }
582
+ .ui-password-input-toggle:hover { color: hsl(var(--foreground)); }
583
+ .ui-password-input-toggle svg { width: 1rem; height: 1rem; }
584
+
585
+ /* InputOTP */
586
+ .ui-otp-container { display: flex; align-items: center; gap: var(--space-2); }
587
+ .ui-otp-input:disabled { cursor: not-allowed; }
588
+ .ui-otp-group { display: flex; align-items: center; }
589
+ .ui-otp-slot {
590
+ position: relative; display: flex; width: 2.25rem; height: 2.25rem;
591
+ align-items: center; justify-content: center; font-size: 0.875rem;
592
+ border: 1px solid hsl(var(--border)); border-inline-start-width: 0;
593
+ background: hsl(var(--background)); transition: box-shadow 0.15s ease;
594
+ }
595
+ .ui-otp-group .ui-otp-slot:first-child {
596
+ border-inline-start-width: 1px; border-start-start-radius: var(--radius-md); border-end-start-radius: var(--radius-md);
597
+ }
598
+ .ui-otp-group .ui-otp-slot:last-child { border-start-end-radius: var(--radius-md); border-end-end-radius: var(--radius-md); }
599
+ .ui-otp-slot[data-active="true"] { z-index: 1; box-shadow: 0 0 0 2px hsl(var(--ring)); }
600
+ .ui-otp-caret-wrapper { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
601
+ .ui-otp-caret { width: 1px; height: 1rem; background: hsl(var(--foreground)); animation: ui-otp-blink 1s step-end infinite; }
602
+ @keyframes ui-otp-blink { 50% { opacity: 0; } }
603
+ .ui-otp-separator-icon { width: 1rem; height: 1rem; color: hsl(var(--muted-foreground)); }
@@ -186,3 +186,28 @@
186
186
  }
187
187
 
188
188
  }
189
+
190
+ /* Accordion */
191
+ .ui-accordion-item { border-bottom: 1px solid hsl(var(--border)); }
192
+ .ui-accordion-header { display: flex; }
193
+ .ui-accordion-trigger {
194
+ display: flex; flex: 1; align-items: center; justify-content: space-between;
195
+ gap: var(--space-2); padding-block: var(--space-4); font-weight: 500; text-align: left;
196
+ transition: color 0.15s ease;
197
+ }
198
+ .ui-accordion-trigger:hover { text-decoration: underline; }
199
+ .ui-accordion-chevron {
200
+ width: 1rem; height: 1rem; color: hsl(var(--muted-foreground));
201
+ transition: transform 0.2s ease; flex-shrink: 0;
202
+ }
203
+ .ui-accordion-trigger[data-state="open"] .ui-accordion-chevron { transform: rotate(180deg); }
204
+ .ui-accordion-content { overflow: hidden; font-size: 0.875rem; }
205
+ .ui-accordion-content-inner { padding-bottom: var(--space-4); }
206
+
207
+ /* HoverCard */
208
+ .ui-hover-card-content {
209
+ z-index: 50; width: 16rem; border-radius: var(--radius-md);
210
+ border: 1px solid hsl(var(--border)); background: hsl(var(--popover));
211
+ color: hsl(var(--popover-foreground)); padding: var(--space-4);
212
+ box-shadow: var(--shadow-md); outline: none;
213
+ }
@@ -0,0 +1,17 @@
1
+
2
+ /* Drawer (bottom-sheet, vaul) */
3
+ .ui-drawer-overlay { position: fixed; inset: 0; z-index: 50; background: hsl(var(--overlay, 0 0% 0% / 0.4)); }
4
+ .ui-drawer-content {
5
+ position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 50;
6
+ display: flex; flex-direction: column; max-height: 82vh;
7
+ border-start-start-radius: var(--radius-lg); border-start-end-radius: var(--radius-lg);
8
+ border: 1px solid hsl(var(--border)); background: hsl(var(--background));
9
+ }
10
+ .ui-drawer-handle {
11
+ margin: var(--space-3) auto; height: 0.375rem; width: 6rem; flex-shrink: 0;
12
+ border-radius: 9999px; background: hsl(var(--muted));
13
+ }
14
+ .ui-drawer-header { display: grid; gap: var(--space-1); padding: var(--space-4); text-align: center; }
15
+ .ui-drawer-footer { display: flex; flex-direction: column; gap: var(--space-2); margin-top: auto; padding: var(--space-4); }
16
+ .ui-drawer-title { font-weight: 600; line-height: 1.2; }
17
+ .ui-drawer-description { font-size: 0.875rem; color: hsl(var(--muted-foreground)); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@godxjp/ui",
3
- "version": "8.0.0",
3
+ "version": "8.1.0",
4
4
  "type": "module",
5
5
  "description": "@godxjp/ui — shared React UI framework (shadcn + Radix + Tailwind v4).",
6
6
  "files": [
@@ -262,6 +262,7 @@
262
262
  "dependencies": {
263
263
  "@date-fns/tz": "^1.5.0",
264
264
  "@fontsource/m-plus-2": "^5.2.9",
265
+ "@radix-ui/react-accordion": "^1.2.12",
265
266
  "@radix-ui/react-alert-dialog": "^1.1.15",
266
267
  "@radix-ui/react-aspect-ratio": "^1.1.8",
267
268
  "@radix-ui/react-avatar": "^1.1.11",
@@ -270,6 +271,7 @@
270
271
  "@radix-ui/react-context": "^1.1.2",
271
272
  "@radix-ui/react-dialog": "^1.1.15",
272
273
  "@radix-ui/react-dropdown-menu": "^2.1.16",
274
+ "@radix-ui/react-hover-card": "^1.1.15",
273
275
  "@radix-ui/react-label": "^2.1.8",
274
276
  "@radix-ui/react-popover": "^1.1.15",
275
277
  "@radix-ui/react-radio-group": "^1.3.8",
@@ -287,11 +289,13 @@
287
289
  "clsx": "^2.1.1",
288
290
  "cmdk": "^1.1.1",
289
291
  "date-fns": "^4.1.0",
292
+ "input-otp": "^1.4.2",
290
293
  "lucide-react": "^1.14.0",
291
294
  "react-day-picker": "^10.0.1",
292
295
  "sonner": "^2.0.7",
293
296
  "tailwind-merge": "^3.5.0",
294
- "tailwindcss-animate": "^1.0.7"
297
+ "tailwindcss-animate": "^1.0.7",
298
+ "vaul": "^1.1.2"
295
299
  },
296
300
  "devDependencies": {
297
301
  "@eslint/js": "^9.39.4",
@@ -1 +0,0 @@
1
-
@@ -1,61 +0,0 @@
1
- import { Select, SelectTrigger, SelectValue, SelectContent, SelectGroup, SelectItem } from './chunk-G2WYOCDL.js';
2
- import { Inline } from './chunk-TILFZBTE.js';
3
- import { cn } from './chunk-U7N2A7A3.js';
4
- import { jsxs, jsx } from 'react/jsx-runtime';
5
-
6
- function CountryOptionLabel({
7
- country,
8
- showCode = false,
9
- className
10
- }) {
11
- const code = country.value ?? country.code ?? "";
12
- const text = country.nativeName != null && country.nativeName !== "" ? `${country.name} (${country.nativeName})` : country.name;
13
- return /* @__PURE__ */ jsxs(Inline, { gap: "xs", className: cn("items-center", className), children: [
14
- country.flagSvgPath != null && country.flagSvgPath !== "" && /* @__PURE__ */ jsx(
15
- "img",
16
- {
17
- src: country.flagSvgPath,
18
- alt: "",
19
- className: "h-3 w-5 shrink-0 rounded-sm object-cover",
20
- "aria-hidden": "true"
21
- }
22
- ),
23
- /* @__PURE__ */ jsxs("span", { className: "truncate", children: [
24
- text,
25
- showCode && code !== "" && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
26
- " \xB7 ",
27
- code
28
- ] })
29
- ] })
30
- ] });
31
- }
32
- function CountrySelect({
33
- id,
34
- name,
35
- options,
36
- defaultValue,
37
- required = false,
38
- allowEmpty = false,
39
- emptyLabel = "\u2014",
40
- placeholder,
41
- invalid = false
42
- }) {
43
- const emptyValue = "0";
44
- const resolvedDefault = defaultValue && defaultValue !== "" ? defaultValue : emptyValue;
45
- return /* @__PURE__ */ jsxs(
46
- Select,
47
- {
48
- name,
49
- defaultValue: allowEmpty ? resolvedDefault : defaultValue ?? options[0]?.value,
50
- children: [
51
- /* @__PURE__ */ jsx(SelectTrigger, { id, className: "w-full", "aria-invalid": invalid, "aria-required": required, children: /* @__PURE__ */ jsx(SelectValue, { placeholder }) }),
52
- /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsxs(SelectGroup, { children: [
53
- allowEmpty && /* @__PURE__ */ jsx(SelectItem, { value: emptyValue, children: emptyLabel }),
54
- options.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.value ?? "", children: /* @__PURE__ */ jsx(CountryOptionLabel, { country: option }) }, option.value))
55
- ] }) })
56
- ]
57
- }
58
- );
59
- }
60
-
61
- export { CountryOptionLabel, CountrySelect };
@@ -1,5 +1,5 @@
1
- import { formatBytes } from './chunk-4R7QL3MW.js';
2
1
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from './chunk-P4HFJQID.js';
2
+ import { formatBytes } from './chunk-4R7QL3MW.js';
3
3
  import { Slider } from './chunk-CRERCLIZ.js';
4
4
  import { Button } from './chunk-M4PZNAMV.js';
5
5
  import { controlIconClass } from './chunk-IBK5D2Q6.js';