@schemavaults/ui 0.97.1 → 0.98.4
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/components/ui/combobox/combobox.d.ts +15 -1
- package/dist/components/ui/combobox/combobox.js +2 -2
- package/dist/components/ui/combobox/combobox.js.map +1 -1
- package/dist/components/ui/date-picker/date-picker.d.ts +9 -0
- package/dist/components/ui/date-picker/date-picker.js +2 -2
- package/dist/components/ui/date-picker/date-picker.js.map +1 -1
- package/dist/components/ui/date-range-picker/date-range-picker.d.ts +9 -0
- package/dist/components/ui/date-range-picker/date-range-picker.js +2 -2
- package/dist/components/ui/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/ui/dropzone/dropzone-variants.d.ts +18 -0
- package/dist/components/ui/dropzone/dropzone-variants.js +32 -0
- package/dist/components/ui/dropzone/dropzone-variants.js.map +1 -0
- package/dist/components/ui/dropzone/dropzone.d.ts +77 -0
- package/dist/components/ui/dropzone/dropzone.js +247 -0
- package/dist/components/ui/dropzone/dropzone.js.map +1 -0
- package/dist/components/ui/dropzone/index.d.ts +4 -0
- package/dist/components/ui/dropzone/index.js +3 -0
- package/dist/components/ui/dropzone/index.js.map +1 -0
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.js +1 -0
- package/dist/components/ui/index.js.map +1 -1
- package/dist/components/ui/multi-select/multi-select.d.ts +15 -1
- package/dist/components/ui/multi-select/multi-select.js +2 -2
- package/dist/components/ui/multi-select/multi-select.js.map +1 -1
- package/dist/components/ui/time-picker/time-picker.d.ts +14 -0
- package/dist/components/ui/time-picker/time-picker.js +2 -2
- package/dist/components/ui/time-picker/time-picker.js.map +1 -1
- package/package.json +1 -1
|
@@ -30,9 +30,23 @@ export interface ComboboxProps extends Omit<ButtonHTMLAttributes<HTMLButtonEleme
|
|
|
30
30
|
clearable?: boolean;
|
|
31
31
|
disabled?: boolean;
|
|
32
32
|
align?: "start" | "center" | "end";
|
|
33
|
+
/**
|
|
34
|
+
* Render the dropdown as a modal popover. Defaults to `true`, matching the
|
|
35
|
+
* behaviour of Radix `Select`.
|
|
36
|
+
*
|
|
37
|
+
* A modal popover installs its own scroll lock as the innermost layer, which
|
|
38
|
+
* is what makes the option list wheel/trackpad-scrollable while the
|
|
39
|
+
* `Combobox` sits inside a modal `Dialog`. With `modal={false}` the
|
|
40
|
+
* dialog's `react-remove-scroll` shard swallows wheel events over the
|
|
41
|
+
* portalled content, so it can only be scrolled with the keyboard.
|
|
42
|
+
*
|
|
43
|
+
* While open, a modal popover locks page scroll and the first outside click
|
|
44
|
+
* only dismisses it.
|
|
45
|
+
*/
|
|
46
|
+
modal?: boolean;
|
|
33
47
|
ref?: Ref<HTMLButtonElement>;
|
|
34
48
|
}
|
|
35
|
-
export declare function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyMessage, variant, size, fullWidth, contentClassName, triggerClassName, className, clearable, disabled, align, ref, ...buttonProps }: ComboboxProps): ReactElement;
|
|
49
|
+
export declare function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyMessage, variant, size, fullWidth, contentClassName, triggerClassName, className, clearable, disabled, align, modal, ref, ...buttonProps }: ComboboxProps): ReactElement;
|
|
36
50
|
export declare namespace Combobox {
|
|
37
51
|
var displayName: string;
|
|
38
52
|
}
|
|
@@ -39,7 +39,7 @@ export const comboboxTriggerVariants = cva("inline-flex items-center justify-bet
|
|
|
39
39
|
fullWidth: false,
|
|
40
40
|
},
|
|
41
41
|
});
|
|
42
|
-
export function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder = "Select an option...", searchPlaceholder = "Search...", emptyMessage = "No results found.", variant, size, fullWidth, contentClassName, triggerClassName, className, clearable = false, disabled = false, align = "start", ref, ...buttonProps }) {
|
|
42
|
+
export function Combobox({ options, value: controlledValue, defaultValue, onValueChange, placeholder = "Select an option...", searchPlaceholder = "Search...", emptyMessage = "No results found.", variant, size, fullWidth, contentClassName, triggerClassName, className, clearable = false, disabled = false, align = "start", modal = true, ref, ...buttonProps }) {
|
|
43
43
|
const reactId = useId();
|
|
44
44
|
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
45
45
|
const [open, setOpen] = useState(false);
|
|
@@ -63,7 +63,7 @@ export function Combobox({ options, value: controlledValue, defaultValue, onValu
|
|
|
63
63
|
setOpen(false);
|
|
64
64
|
}, [commitValue]);
|
|
65
65
|
const showClear = clearable && !disabled && selectedOption !== undefined;
|
|
66
|
-
return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { ref: ref, type: "button", role: "combobox", "aria-expanded": open, "aria-controls": `${reactId}-listbox`, "data-placeholder": selectedOption === undefined ? "true" : "false", disabled: disabled, className: cn(comboboxTriggerVariants({ variant, size, fullWidth }), triggerClassName, className), ...buttonProps, children: [_jsx("span", { className: "flex min-w-0 flex-1 items-center gap-2 truncate text-left", children: selectedOption ? (_jsxs(_Fragment, { children: [selectedOption.icon ? (_jsx("span", { className: "inline-flex shrink-0 items-center", "aria-hidden": "true", children: selectedOption.icon })) : null, _jsx("span", { className: "truncate", children: selectedOption.label })] })) : (_jsx("span", { className: "truncate", children: placeholder })) }), _jsx(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50", "aria-hidden": "true" })] }) }), _jsx(PopoverContent, { align: align, className: cn("w-[var(--radix-popover-trigger-width)] min-w-[12rem] p-0", contentClassName), children: _jsxs(Command, { id: `${reactId}-listbox`, children: [_jsx(CommandInput, { placeholder: searchPlaceholder }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: emptyMessage }), showClear ? (_jsxs(_Fragment, { children: [_jsx(CommandGroup, { children: _jsxs(CommandItem, { value: "__combobox_clear__", keywords: ["clear", "reset", "none"], onSelect: () => {
|
|
66
|
+
return (_jsxs(Popover, { modal: modal, open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { ref: ref, type: "button", role: "combobox", "aria-expanded": open, "aria-controls": `${reactId}-listbox`, "data-placeholder": selectedOption === undefined ? "true" : "false", disabled: disabled, className: cn(comboboxTriggerVariants({ variant, size, fullWidth }), triggerClassName, className), ...buttonProps, children: [_jsx("span", { className: "flex min-w-0 flex-1 items-center gap-2 truncate text-left", children: selectedOption ? (_jsxs(_Fragment, { children: [selectedOption.icon ? (_jsx("span", { className: "inline-flex shrink-0 items-center", "aria-hidden": "true", children: selectedOption.icon })) : null, _jsx("span", { className: "truncate", children: selectedOption.label })] })) : (_jsx("span", { className: "truncate", children: placeholder })) }), _jsx(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50", "aria-hidden": "true" })] }) }), _jsx(PopoverContent, { align: align, className: cn("w-[var(--radix-popover-trigger-width)] min-w-[12rem] p-0", contentClassName), children: _jsxs(Command, { id: `${reactId}-listbox`, children: [_jsx(CommandInput, { placeholder: searchPlaceholder }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: emptyMessage }), showClear ? (_jsxs(_Fragment, { children: [_jsx(CommandGroup, { children: _jsxs(CommandItem, { value: "__combobox_clear__", keywords: ["clear", "reset", "none"], onSelect: () => {
|
|
67
67
|
handleClear();
|
|
68
68
|
}, className: "cursor-pointer gap-2 text-muted-foreground", children: [_jsx(X, { className: "h-4 w-4 shrink-0", "aria-hidden": "true" }), _jsx("span", { children: "Clear selection" })] }) }), _jsx(CommandSeparator, {})] })) : null, _jsx(CommandGroup, { children: options.map((option) => {
|
|
69
69
|
const isSelected = option.value === selectedValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox/combobox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,WAAW,EACX,KAAK,EACL,OAAO,EACP,QAAQ,GAKT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,SAAS;IACT,OAAO;CAC6B,CAAC;AAGvC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI;IACJ,SAAS;IACT,IAAI;CACgC,CAAC;AAGvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CACxC,6UAA6U,EAC7U;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,gFAAgF;YAClF,OAAO,EACL,iFAAiF;YACnF,KAAK,EACH,uFAAuF;SAC9C;QAC7C,IAAI,EAAE;YACJ,EAAE,EAAE,oBAAoB;YACxB,OAAO,EAAE,mBAAmB;YAC5B,EAAE,EAAE,qBAAqB;SACe;QAC1C,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,KAAK;KACjB;CACF,CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox/combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,15 @@ export interface DatePickerProps extends Pick<CalendarSingleProps, "size" | "wee
|
|
|
17
17
|
formatDate?: (date: Date) => string;
|
|
18
18
|
/** Alignment of the popover relative to the trigger. Defaults to "start". */
|
|
19
19
|
align?: "start" | "center" | "end";
|
|
20
|
+
/**
|
|
21
|
+
* Render the calendar as a modal popover. Defaults to `false`.
|
|
22
|
+
*
|
|
23
|
+
* The calendar grid has no scrollable region, so unlike `MultiSelect`,
|
|
24
|
+
* `Combobox`, and `TimePicker` it is unaffected by the wheel-scroll lock a
|
|
25
|
+
* modal `Dialog` applies to portalled content. Pass `modal` if you still
|
|
26
|
+
* want the popover to lock page scroll and trap focus while open.
|
|
27
|
+
*/
|
|
28
|
+
modal?: boolean;
|
|
20
29
|
/** Controlled popover open state. */
|
|
21
30
|
open?: boolean;
|
|
22
31
|
/** Called when the popover open state changes. */
|
|
@@ -19,7 +19,7 @@ function defaultFormatDate(locale, date) {
|
|
|
19
19
|
* controlled (`value`/`open`) and uncontrolled (`defaultValue`) usage.
|
|
20
20
|
*/
|
|
21
21
|
function DatePicker(props) {
|
|
22
|
-
const { value, defaultValue, onValueChange, placeholder = "Pick a date", disabled, disabledDates, formatDate, align = "start", open, onOpenChange, id, className, size, weekStartsOn, fromDate, toDate, showOutsideDays, fixedWeeks, locale, } = props;
|
|
22
|
+
const { value, defaultValue, onValueChange, placeholder = "Pick a date", disabled, disabledDates, formatDate, align = "start", modal = false, open, onOpenChange, id, className, size, weekStartsOn, fromDate, toDate, showOutsideDays, fixedWeeks, locale, } = props;
|
|
23
23
|
const [internalOpen, setInternalOpen] = useState(false);
|
|
24
24
|
const [internalSelected, setInternalSelected] = useState(defaultValue);
|
|
25
25
|
const isOpenControlled = open !== undefined;
|
|
@@ -32,7 +32,7 @@ function DatePicker(props) {
|
|
|
32
32
|
const isValueControlled = value !== undefined;
|
|
33
33
|
const selected = isValueControlled ? value : internalSelected;
|
|
34
34
|
const format = formatDate ?? ((date) => defaultFormatDate(locale, date));
|
|
35
|
-
return (_jsxs(Popover, { open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn("w-60 justify-start gap-2 font-normal", className), children: [_jsx(CalendarDays, { className: "size-4 opacity-70" }), selected ? (format(selected)) : (_jsx("span", { className: "text-muted-foreground", children: placeholder }))] }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: align, children: _jsx(Calendar, { mode: "single", size: size, weekStartsOn: weekStartsOn, fromDate: fromDate, toDate: toDate, showOutsideDays: showOutsideDays, fixedWeeks: fixedWeeks, locale: locale, disabled: disabledDates, selected: selected, defaultMonth: selected, onSelect: (date) => {
|
|
35
|
+
return (_jsxs(Popover, { modal: modal, open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn("w-60 justify-start gap-2 font-normal", className), children: [_jsx(CalendarDays, { className: "size-4 opacity-70" }), selected ? (format(selected)) : (_jsx("span", { className: "text-muted-foreground", children: placeholder }))] }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: align, children: _jsx(Calendar, { mode: "single", size: size, weekStartsOn: weekStartsOn, fromDate: fromDate, toDate: toDate, showOutsideDays: showOutsideDays, fixedWeeks: fixedWeeks, locale: locale, disabled: disabledDates, selected: selected, defaultMonth: selected, onSelect: (date) => {
|
|
36
36
|
if (!isValueControlled)
|
|
37
37
|
setInternalSelected(date);
|
|
38
38
|
onValueChange?.(date);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/date-picker/date-picker.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAA4B,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/date-picker/date-picker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,15 @@ export interface DateRangePickerProps extends Pick<CalendarRangeProps, "size" |
|
|
|
17
17
|
formatDate?: (date: Date) => string;
|
|
18
18
|
/** Alignment of the popover relative to the trigger. Defaults to "start". */
|
|
19
19
|
align?: "start" | "center" | "end";
|
|
20
|
+
/**
|
|
21
|
+
* Render the calendar as a modal popover. Defaults to `false`.
|
|
22
|
+
*
|
|
23
|
+
* The calendar grid has no scrollable region, so unlike `MultiSelect`,
|
|
24
|
+
* `Combobox`, and `TimePicker` it is unaffected by the wheel-scroll lock a
|
|
25
|
+
* modal `Dialog` applies to portalled content. Pass `modal` if you still
|
|
26
|
+
* want the popover to lock page scroll and trap focus while open.
|
|
27
|
+
*/
|
|
28
|
+
modal?: boolean;
|
|
20
29
|
/** Controlled popover open state. */
|
|
21
30
|
open?: boolean;
|
|
22
31
|
/** Called when the popover open state changes. */
|
|
@@ -20,7 +20,7 @@ function defaultFormatDate(locale, date) {
|
|
|
20
20
|
* controlled (`value`/`open`) and uncontrolled (`defaultValue`) usage.
|
|
21
21
|
*/
|
|
22
22
|
function DateRangePicker(props) {
|
|
23
|
-
const { value, defaultValue, onValueChange, placeholder = "Pick a date range", disabled, disabledDates, formatDate, align = "start", open, onOpenChange, id, className, size, weekStartsOn, fromDate, toDate, showOutsideDays, fixedWeeks, locale, } = props;
|
|
23
|
+
const { value, defaultValue, onValueChange, placeholder = "Pick a date range", disabled, disabledDates, formatDate, align = "start", modal = false, open, onOpenChange, id, className, size, weekStartsOn, fromDate, toDate, showOutsideDays, fixedWeeks, locale, } = props;
|
|
24
24
|
const [internalOpen, setInternalOpen] = useState(false);
|
|
25
25
|
const [internalSelected, setInternalSelected] = useState(defaultValue);
|
|
26
26
|
const isOpenControlled = open !== undefined;
|
|
@@ -42,7 +42,7 @@ function DateRangePicker(props) {
|
|
|
42
42
|
}
|
|
43
43
|
return `${format(selected.from)} – ${format(selected.to)}`;
|
|
44
44
|
}
|
|
45
|
-
return (_jsxs(Popover, { open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn("w-72 justify-start gap-2 font-normal", className), children: [_jsx(CalendarDays, { className: "size-4 opacity-70" }), renderLabel()] }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: align, children: _jsx(Calendar, { mode: "range", size: size, weekStartsOn: weekStartsOn, fromDate: fromDate, toDate: toDate, showOutsideDays: showOutsideDays, fixedWeeks: fixedWeeks, locale: locale, disabled: disabledDates, selected: selected, defaultMonth: selected?.from, onSelect: (range) => {
|
|
45
|
+
return (_jsxs(Popover, { modal: modal, open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn("w-72 justify-start gap-2 font-normal", className), children: [_jsx(CalendarDays, { className: "size-4 opacity-70" }), renderLabel()] }) }), _jsx(PopoverContent, { className: "w-auto p-0", align: align, children: _jsx(Calendar, { mode: "range", size: size, weekStartsOn: weekStartsOn, fromDate: fromDate, toDate: toDate, showOutsideDays: showOutsideDays, fixedWeeks: fixedWeeks, locale: locale, disabled: disabledDates, selected: selected, defaultMonth: selected?.from, onSelect: (range) => {
|
|
46
46
|
if (!isValueControlled)
|
|
47
47
|
setInternalSelected(range);
|
|
48
48
|
onValueChange?.(range);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/date-range-picker/date-range-picker.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,QAAQ,GAGT,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"date-range-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/date-range-picker/date-range-picker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const dropzoneVariantIds: readonly ["default", "outline", "ghost"];
|
|
2
|
+
export type DropzoneVariant = (typeof dropzoneVariantIds)[number];
|
|
3
|
+
export declare const dropzoneSizeIds: readonly ["sm", "default", "lg"];
|
|
4
|
+
export type DropzoneSize = (typeof dropzoneSizeIds)[number];
|
|
5
|
+
/**
|
|
6
|
+
* Interaction / validation state applied via `data-state`. `idle` is the
|
|
7
|
+
* default resting state, `active` is applied while a drag is hovering over
|
|
8
|
+
* the drop target, `error` when the most recent drop was rejected, and
|
|
9
|
+
* `disabled` when the dropzone is not accepting input.
|
|
10
|
+
*/
|
|
11
|
+
export declare const dropzoneStateIds: readonly ["idle", "active", "error", "disabled"];
|
|
12
|
+
export type DropzoneState = (typeof dropzoneStateIds)[number];
|
|
13
|
+
/**
|
|
14
|
+
* Reason a file was rejected by the dropzone during validation. Attached to
|
|
15
|
+
* every entry in the `rejected` array passed to `onDrop` / `onFilesRejected`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const dropzoneRejectionReasonIds: readonly ["file-too-large", "file-invalid-type", "too-many-files"];
|
|
18
|
+
export type DropzoneRejectionReason = (typeof dropzoneRejectionReasonIds)[number];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const dropzoneVariantIds = [
|
|
2
|
+
"default",
|
|
3
|
+
"outline",
|
|
4
|
+
"ghost",
|
|
5
|
+
];
|
|
6
|
+
export const dropzoneSizeIds = [
|
|
7
|
+
"sm",
|
|
8
|
+
"default",
|
|
9
|
+
"lg",
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Interaction / validation state applied via `data-state`. `idle` is the
|
|
13
|
+
* default resting state, `active` is applied while a drag is hovering over
|
|
14
|
+
* the drop target, `error` when the most recent drop was rejected, and
|
|
15
|
+
* `disabled` when the dropzone is not accepting input.
|
|
16
|
+
*/
|
|
17
|
+
export const dropzoneStateIds = [
|
|
18
|
+
"idle",
|
|
19
|
+
"active",
|
|
20
|
+
"error",
|
|
21
|
+
"disabled",
|
|
22
|
+
];
|
|
23
|
+
/**
|
|
24
|
+
* Reason a file was rejected by the dropzone during validation. Attached to
|
|
25
|
+
* every entry in the `rejected` array passed to `onDrop` / `onFilesRejected`.
|
|
26
|
+
*/
|
|
27
|
+
export const dropzoneRejectionReasonIds = [
|
|
28
|
+
"file-too-large",
|
|
29
|
+
"file-invalid-type",
|
|
30
|
+
"too-many-files",
|
|
31
|
+
];
|
|
32
|
+
//# sourceMappingURL=dropzone-variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropzone-variants.js","sourceRoot":"","sources":["../../../../src/components/ui/dropzone/dropzone-variants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,SAAS;IACT,OAAO;CAC6B,CAAC;AAGvC,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI;IACJ,SAAS;IACT,IAAI;CACgC,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;CAC0B,CAAC;AAGvC;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;CACoB,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
import { type HTMLAttributes, type ReactElement, type ReactNode, type Ref } from "react";
|
|
3
|
+
import { type DropzoneRejectionReason, type DropzoneSize, type DropzoneState, type DropzoneVariant, dropzoneRejectionReasonIds, dropzoneSizeIds, dropzoneStateIds, dropzoneVariantIds } from "./dropzone-variants";
|
|
4
|
+
declare const dropzoneVariants: (props?: ({
|
|
5
|
+
variant?: "default" | "outline" | "ghost" | null | undefined;
|
|
6
|
+
size?: "sm" | "default" | "lg" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
export interface DropzoneRejection {
|
|
9
|
+
file: File;
|
|
10
|
+
reason: DropzoneRejectionReason;
|
|
11
|
+
message: string;
|
|
12
|
+
}
|
|
13
|
+
export interface DropzoneRenderState {
|
|
14
|
+
state: DropzoneState;
|
|
15
|
+
isDragActive: boolean;
|
|
16
|
+
disabled: boolean;
|
|
17
|
+
openPicker: () => void;
|
|
18
|
+
}
|
|
19
|
+
export interface DropzoneProps extends Omit<HTMLAttributes<HTMLDivElement>, "onDrop" | "onDragEnter" | "onDragLeave" | "onDragOver" | "children">, VariantProps<typeof dropzoneVariants> {
|
|
20
|
+
/**
|
|
21
|
+
* MIME types and/or file extensions the dropzone accepts, forwarded to the
|
|
22
|
+
* hidden `<input type="file">` and used to validate dropped files.
|
|
23
|
+
*
|
|
24
|
+
* Accepts the same syntax as the native `accept` attribute — e.g.
|
|
25
|
+
* `"image/*,.pdf"`, or an array like `["image/png", "image/jpeg", ".webp"]`.
|
|
26
|
+
*/
|
|
27
|
+
accept?: string | readonly string[];
|
|
28
|
+
/** Allow selecting more than one file at once. Defaults to `false`. */
|
|
29
|
+
multiple?: boolean;
|
|
30
|
+
/** Maximum number of files that may be accepted per drop. */
|
|
31
|
+
maxFiles?: number;
|
|
32
|
+
/** Maximum accepted file size, in bytes. */
|
|
33
|
+
maxSize?: number;
|
|
34
|
+
/** When true, the dropzone stops responding to drag / click / keyboard. */
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
/** Text label shown inside the dropzone by the default content renderer. */
|
|
37
|
+
label?: ReactNode;
|
|
38
|
+
/** Secondary hint text shown under the label. */
|
|
39
|
+
hint?: ReactNode;
|
|
40
|
+
/** Icon rendered above the label. Pass `null` to hide the icon entirely. */
|
|
41
|
+
icon?: ReactNode | null;
|
|
42
|
+
/**
|
|
43
|
+
* Fires with the fully-validated result of a drop or picker selection.
|
|
44
|
+
* Prefer this over `onFilesAccepted` / `onFilesRejected` when both sides of
|
|
45
|
+
* the result matter (e.g. surfacing per-file error toasts).
|
|
46
|
+
*/
|
|
47
|
+
onDrop?: (accepted: File[], rejected: DropzoneRejection[]) => void;
|
|
48
|
+
/** Fires with just the files that passed validation. */
|
|
49
|
+
onFilesAccepted?: (files: File[]) => void;
|
|
50
|
+
/** Fires with just the files that failed validation. */
|
|
51
|
+
onFilesRejected?: (rejections: DropzoneRejection[]) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Optional render prop that fully replaces the default content
|
|
54
|
+
* (icon + label + hint). Receives the resolved interaction state.
|
|
55
|
+
*/
|
|
56
|
+
render?: (state: DropzoneRenderState) => ReactNode;
|
|
57
|
+
/**
|
|
58
|
+
* Optional label describing the field for assistive tech. Falls back to
|
|
59
|
+
* `label` when the label is a string, otherwise a generic description.
|
|
60
|
+
*/
|
|
61
|
+
ariaLabel?: string;
|
|
62
|
+
/** Ref forwarded to the outer div. */
|
|
63
|
+
ref?: Ref<HTMLDivElement>;
|
|
64
|
+
/** Ref forwarded to the hidden `<input type="file">`. */
|
|
65
|
+
inputRef?: Ref<HTMLInputElement>;
|
|
66
|
+
/** Overrides the auto-generated id on the hidden `<input type="file">`. */
|
|
67
|
+
inputId?: string;
|
|
68
|
+
/** Additional class names for the hidden `<input type="file">`. */
|
|
69
|
+
inputClassName?: string;
|
|
70
|
+
}
|
|
71
|
+
declare function Dropzone({ ref, inputRef, inputId, inputClassName, className, variant, size, accept, multiple, maxFiles, maxSize, disabled, label, hint, icon, onDrop, onFilesAccepted, onFilesRejected, render, ariaLabel, onClick, onKeyDown, ...props }: DropzoneProps): ReactElement;
|
|
72
|
+
declare namespace Dropzone {
|
|
73
|
+
var displayName: string;
|
|
74
|
+
}
|
|
75
|
+
export { Dropzone, dropzoneVariants, dropzoneVariantIds, dropzoneSizeIds, dropzoneStateIds, dropzoneRejectionReasonIds, };
|
|
76
|
+
export type { DropzoneVariant, DropzoneSize, DropzoneState, DropzoneRejectionReason, };
|
|
77
|
+
export default Dropzone;
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { UploadCloud } from "lucide-react";
|
|
5
|
+
import { useCallback, useId, useMemo, useRef, useState, } from "react";
|
|
6
|
+
import { cn } from "../../../lib/utils";
|
|
7
|
+
import { dropzoneRejectionReasonIds, dropzoneSizeIds, dropzoneStateIds, dropzoneVariantIds, } from "./dropzone-variants";
|
|
8
|
+
const dropzoneVariants = cva("group relative flex w-full cursor-pointer select-none flex-col items-center justify-center gap-2 rounded-lg border text-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background aria-disabled:pointer-events-none aria-disabled:cursor-not-allowed aria-disabled:opacity-60", {
|
|
9
|
+
variants: {
|
|
10
|
+
variant: {
|
|
11
|
+
default: "border-dashed border-input bg-muted/30 text-muted-foreground hover:bg-muted/50 data-[state=active]:border-primary data-[state=active]:bg-primary/10 data-[state=active]:text-primary data-[state=error]:border-destructive data-[state=error]:bg-destructive/10 data-[state=error]:text-destructive",
|
|
12
|
+
outline: "border-solid border-input bg-background text-foreground hover:bg-accent hover:text-accent-foreground data-[state=active]:border-primary data-[state=active]:bg-primary/5 data-[state=active]:text-primary data-[state=error]:border-destructive data-[state=error]:bg-destructive/5 data-[state=error]:text-destructive",
|
|
13
|
+
ghost: "border-transparent bg-transparent text-muted-foreground hover:bg-muted/40 hover:text-foreground data-[state=active]:bg-primary/10 data-[state=active]:text-primary data-[state=error]:bg-destructive/10 data-[state=error]:text-destructive",
|
|
14
|
+
},
|
|
15
|
+
size: {
|
|
16
|
+
sm: "min-h-[6rem] p-3 text-xs [&_svg]:size-5",
|
|
17
|
+
default: "min-h-[9rem] p-6 text-sm [&_svg]:size-8",
|
|
18
|
+
lg: "min-h-[12rem] p-8 text-base [&_svg]:size-10",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
variant: "default",
|
|
23
|
+
size: "default",
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
function normalizeAccept(accept) {
|
|
27
|
+
if (accept === undefined)
|
|
28
|
+
return { attr: undefined, entries: [] };
|
|
29
|
+
const raw = Array.isArray(accept) ? accept : String(accept).split(",");
|
|
30
|
+
const entries = raw
|
|
31
|
+
.map((entry) => entry.trim().toLowerCase())
|
|
32
|
+
.filter((entry) => entry.length > 0);
|
|
33
|
+
if (entries.length === 0)
|
|
34
|
+
return { attr: undefined, entries: [] };
|
|
35
|
+
return { attr: entries.join(","), entries };
|
|
36
|
+
}
|
|
37
|
+
function matchesAcceptEntry(file, entry) {
|
|
38
|
+
if (entry.startsWith(".")) {
|
|
39
|
+
return file.name.toLowerCase().endsWith(entry);
|
|
40
|
+
}
|
|
41
|
+
const fileType = (file.type || "").toLowerCase();
|
|
42
|
+
if (!fileType)
|
|
43
|
+
return false;
|
|
44
|
+
if (entry.endsWith("/*")) {
|
|
45
|
+
const prefix = entry.slice(0, entry.length - 1);
|
|
46
|
+
return fileType.startsWith(prefix);
|
|
47
|
+
}
|
|
48
|
+
return fileType === entry;
|
|
49
|
+
}
|
|
50
|
+
function isFileAccepted(file, acceptEntries) {
|
|
51
|
+
if (acceptEntries.length === 0)
|
|
52
|
+
return true;
|
|
53
|
+
return acceptEntries.some((entry) => matchesAcceptEntry(file, entry));
|
|
54
|
+
}
|
|
55
|
+
function formatBytes(bytes) {
|
|
56
|
+
if (!Number.isFinite(bytes) || bytes < 0)
|
|
57
|
+
return `${bytes} bytes`;
|
|
58
|
+
const units = ["B", "KB", "MB", "GB", "TB"];
|
|
59
|
+
let value = bytes;
|
|
60
|
+
let unitIndex = 0;
|
|
61
|
+
while (value >= 1024 && unitIndex < units.length - 1) {
|
|
62
|
+
value = value / 1024;
|
|
63
|
+
unitIndex += 1;
|
|
64
|
+
}
|
|
65
|
+
const rounded = value >= 10 || unitIndex === 0 ? Math.round(value) : Math.round(value * 10) / 10;
|
|
66
|
+
return `${rounded} ${units[unitIndex]}`;
|
|
67
|
+
}
|
|
68
|
+
function defaultHint(multiple, acceptEntries, maxSize) {
|
|
69
|
+
const parts = [];
|
|
70
|
+
parts.push(multiple ? "Drop files here or click to browse" : "Drop a file here or click to browse");
|
|
71
|
+
if (acceptEntries.length > 0) {
|
|
72
|
+
parts.push(`Accepts ${acceptEntries.join(", ")}`);
|
|
73
|
+
}
|
|
74
|
+
if (maxSize !== undefined) {
|
|
75
|
+
parts.push(`Up to ${formatBytes(maxSize)}${multiple ? " each" : ""}`);
|
|
76
|
+
}
|
|
77
|
+
return parts.join(" · ");
|
|
78
|
+
}
|
|
79
|
+
function Dropzone({ ref, inputRef, inputId, inputClassName, className, variant, size, accept, multiple = false, maxFiles, maxSize, disabled = false, label, hint, icon, onDrop, onFilesAccepted, onFilesRejected, render, ariaLabel, onClick, onKeyDown, ...props }) {
|
|
80
|
+
const generatedId = useId();
|
|
81
|
+
const resolvedInputId = inputId ?? `${generatedId}-dropzone-input`;
|
|
82
|
+
const internalInputRef = useRef(null);
|
|
83
|
+
const [isDragActive, setIsDragActive] = useState(false);
|
|
84
|
+
const [hasError, setHasError] = useState(false);
|
|
85
|
+
// Some browsers fire dragenter/dragleave on descendants as the pointer moves
|
|
86
|
+
// across the dropzone; a counter is the standard fix so we don't flicker.
|
|
87
|
+
const dragDepthRef = useRef(0);
|
|
88
|
+
const { attr: acceptAttr, entries: acceptEntries } = useMemo(() => normalizeAccept(accept), [accept]);
|
|
89
|
+
const setInputRef = useCallback((node) => {
|
|
90
|
+
internalInputRef.current = node;
|
|
91
|
+
if (typeof inputRef === "function") {
|
|
92
|
+
inputRef(node);
|
|
93
|
+
}
|
|
94
|
+
else if (inputRef && typeof inputRef === "object") {
|
|
95
|
+
inputRef.current = node;
|
|
96
|
+
}
|
|
97
|
+
}, [inputRef]);
|
|
98
|
+
const openPicker = useCallback(() => {
|
|
99
|
+
if (disabled)
|
|
100
|
+
return;
|
|
101
|
+
const input = internalInputRef.current;
|
|
102
|
+
if (!input)
|
|
103
|
+
return;
|
|
104
|
+
// Reset the value first so re-selecting the same file still fires change.
|
|
105
|
+
input.value = "";
|
|
106
|
+
input.click();
|
|
107
|
+
}, [disabled]);
|
|
108
|
+
const processFiles = useCallback((fileList) => {
|
|
109
|
+
if (disabled)
|
|
110
|
+
return;
|
|
111
|
+
const source = fileList ? Array.from(fileList) : [];
|
|
112
|
+
if (source.length === 0)
|
|
113
|
+
return;
|
|
114
|
+
const accepted = [];
|
|
115
|
+
const rejected = [];
|
|
116
|
+
const overCapacity = [];
|
|
117
|
+
let capacityRemaining = multiple
|
|
118
|
+
? (maxFiles ?? Number.POSITIVE_INFINITY)
|
|
119
|
+
: 1;
|
|
120
|
+
for (const file of source) {
|
|
121
|
+
if (capacityRemaining <= 0) {
|
|
122
|
+
overCapacity.push(file);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (maxSize !== undefined && file.size > maxSize) {
|
|
126
|
+
rejected.push({
|
|
127
|
+
file,
|
|
128
|
+
reason: "file-too-large",
|
|
129
|
+
message: `File is larger than ${formatBytes(maxSize)}`,
|
|
130
|
+
});
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
if (!isFileAccepted(file, acceptEntries)) {
|
|
134
|
+
rejected.push({
|
|
135
|
+
file,
|
|
136
|
+
reason: "file-invalid-type",
|
|
137
|
+
message: acceptEntries.length > 0
|
|
138
|
+
? `File type not accepted (expected ${acceptEntries.join(", ")})`
|
|
139
|
+
: "File type not accepted",
|
|
140
|
+
});
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
accepted.push(file);
|
|
144
|
+
capacityRemaining -= 1;
|
|
145
|
+
}
|
|
146
|
+
for (const file of overCapacity) {
|
|
147
|
+
rejected.push({
|
|
148
|
+
file,
|
|
149
|
+
reason: "too-many-files",
|
|
150
|
+
message: multiple
|
|
151
|
+
? maxFiles !== undefined
|
|
152
|
+
? `Only ${maxFiles} file${maxFiles === 1 ? "" : "s"} can be uploaded at once`
|
|
153
|
+
: "Too many files"
|
|
154
|
+
: "Only one file can be uploaded",
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
setHasError(accepted.length === 0 && rejected.length > 0);
|
|
158
|
+
onDrop?.(accepted, rejected);
|
|
159
|
+
if (accepted.length > 0)
|
|
160
|
+
onFilesAccepted?.(accepted);
|
|
161
|
+
if (rejected.length > 0)
|
|
162
|
+
onFilesRejected?.(rejected);
|
|
163
|
+
}, [acceptEntries, disabled, maxFiles, maxSize, multiple, onDrop, onFilesAccepted, onFilesRejected]);
|
|
164
|
+
const handleDragEnter = useCallback((event) => {
|
|
165
|
+
if (disabled)
|
|
166
|
+
return;
|
|
167
|
+
event.preventDefault();
|
|
168
|
+
event.stopPropagation();
|
|
169
|
+
dragDepthRef.current += 1;
|
|
170
|
+
if (event.dataTransfer?.types?.includes("Files")) {
|
|
171
|
+
setIsDragActive(true);
|
|
172
|
+
setHasError(false);
|
|
173
|
+
}
|
|
174
|
+
}, [disabled]);
|
|
175
|
+
const handleDragOver = useCallback((event) => {
|
|
176
|
+
if (disabled)
|
|
177
|
+
return;
|
|
178
|
+
event.preventDefault();
|
|
179
|
+
event.stopPropagation();
|
|
180
|
+
if (event.dataTransfer) {
|
|
181
|
+
event.dataTransfer.dropEffect = "copy";
|
|
182
|
+
}
|
|
183
|
+
}, [disabled]);
|
|
184
|
+
const handleDragLeave = useCallback((event) => {
|
|
185
|
+
if (disabled)
|
|
186
|
+
return;
|
|
187
|
+
event.preventDefault();
|
|
188
|
+
event.stopPropagation();
|
|
189
|
+
dragDepthRef.current = Math.max(0, dragDepthRef.current - 1);
|
|
190
|
+
if (dragDepthRef.current === 0)
|
|
191
|
+
setIsDragActive(false);
|
|
192
|
+
}, [disabled]);
|
|
193
|
+
const handleDrop = useCallback((event) => {
|
|
194
|
+
if (disabled)
|
|
195
|
+
return;
|
|
196
|
+
event.preventDefault();
|
|
197
|
+
event.stopPropagation();
|
|
198
|
+
dragDepthRef.current = 0;
|
|
199
|
+
setIsDragActive(false);
|
|
200
|
+
const files = event.dataTransfer?.files ?? null;
|
|
201
|
+
processFiles(files);
|
|
202
|
+
}, [disabled, processFiles]);
|
|
203
|
+
const handleInputChange = useCallback((event) => {
|
|
204
|
+
processFiles(event.target.files);
|
|
205
|
+
}, [processFiles]);
|
|
206
|
+
const handleClick = useCallback((event) => {
|
|
207
|
+
onClick?.(event);
|
|
208
|
+
if (event.defaultPrevented)
|
|
209
|
+
return;
|
|
210
|
+
if (disabled)
|
|
211
|
+
return;
|
|
212
|
+
openPicker();
|
|
213
|
+
}, [disabled, onClick, openPicker]);
|
|
214
|
+
const handleKeyDown = useCallback((event) => {
|
|
215
|
+
onKeyDown?.(event);
|
|
216
|
+
if (event.defaultPrevented)
|
|
217
|
+
return;
|
|
218
|
+
if (disabled)
|
|
219
|
+
return;
|
|
220
|
+
if (event.key === "Enter" || event.key === " " || event.key === "Spacebar") {
|
|
221
|
+
event.preventDefault();
|
|
222
|
+
openPicker();
|
|
223
|
+
}
|
|
224
|
+
}, [disabled, onKeyDown, openPicker]);
|
|
225
|
+
const state = disabled
|
|
226
|
+
? "disabled"
|
|
227
|
+
: isDragActive
|
|
228
|
+
? "active"
|
|
229
|
+
: hasError
|
|
230
|
+
? "error"
|
|
231
|
+
: "idle";
|
|
232
|
+
const resolvedLabel = label ?? (multiple ? "Drop files to upload" : "Drop a file to upload");
|
|
233
|
+
const resolvedHint = hint ?? defaultHint(multiple, acceptEntries, maxSize);
|
|
234
|
+
const resolvedIcon = icon === undefined ? _jsx(UploadCloud, { "aria-hidden": "true" }) : icon;
|
|
235
|
+
const resolvedAriaLabel = ariaLabel ?? (typeof resolvedLabel === "string" ? resolvedLabel : "File dropzone");
|
|
236
|
+
const renderState = {
|
|
237
|
+
state,
|
|
238
|
+
isDragActive,
|
|
239
|
+
disabled,
|
|
240
|
+
openPicker,
|
|
241
|
+
};
|
|
242
|
+
return (_jsxs("div", { ref: ref, "data-slot": "dropzone", "data-state": state, "data-variant": variant ?? "default", "data-size": size ?? "default", role: "button", tabIndex: disabled ? -1 : 0, "aria-disabled": disabled || undefined, "aria-label": resolvedAriaLabel, "aria-describedby": typeof resolvedHint === "string" ? `${resolvedInputId}-hint` : undefined, onClick: handleClick, onKeyDown: handleKeyDown, onDragEnter: handleDragEnter, onDragOver: handleDragOver, onDragLeave: handleDragLeave, onDrop: handleDrop, className: cn(dropzoneVariants({ variant, size }), className), ...props, children: [render ? (render(renderState)) : (_jsxs(_Fragment, { children: [resolvedIcon !== null ? (_jsx("span", { "data-slot": "dropzone-icon", className: "flex items-center justify-center text-current transition-transform group-data-[state=active]:scale-110", children: resolvedIcon })) : null, _jsx("span", { "data-slot": "dropzone-label", className: "font-medium text-foreground group-data-[state=active]:text-primary group-data-[state=error]:text-destructive group-data-[state=disabled]:text-muted-foreground", children: resolvedLabel }), resolvedHint ? (_jsx("span", { id: typeof resolvedHint === "string" ? `${resolvedInputId}-hint` : undefined, "data-slot": "dropzone-hint", className: "text-xs text-muted-foreground", children: resolvedHint })) : null] })), _jsx("input", { ref: setInputRef, id: resolvedInputId, type: "file", accept: acceptAttr, multiple: multiple, disabled: disabled, onChange: handleInputChange, tabIndex: -1, "aria-hidden": "true", className: cn("sr-only", inputClassName) })] }));
|
|
243
|
+
}
|
|
244
|
+
Dropzone.displayName = "Dropzone";
|
|
245
|
+
export { Dropzone, dropzoneVariants, dropzoneVariantIds, dropzoneSizeIds, dropzoneStateIds, dropzoneRejectionReasonIds, };
|
|
246
|
+
export default Dropzone;
|
|
247
|
+
//# sourceMappingURL=dropzone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropzone.js","sourceRoot":"","sources":["../../../../src/components/ui/dropzone/dropzone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Dropzone, Dropzone as default } from "./dropzone";
|
|
2
|
+
export type { DropzoneProps, DropzoneRejection, DropzoneRenderState, } from "./dropzone";
|
|
3
|
+
export { dropzoneVariants, dropzoneVariantIds, dropzoneSizeIds, dropzoneStateIds, dropzoneRejectionReasonIds, } from "./dropzone";
|
|
4
|
+
export type { DropzoneVariant, DropzoneSize, DropzoneState, DropzoneRejectionReason, } from "./dropzone";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/dropzone/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AAM3D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,YAAY,CAAC"}
|
|
@@ -30,6 +30,8 @@ export * from "./secure-password-creation-input";
|
|
|
30
30
|
export type * from "./secure-password-creation-input";
|
|
31
31
|
export * from "./file-input";
|
|
32
32
|
export type * from "./file-input";
|
|
33
|
+
export * from "./dropzone";
|
|
34
|
+
export type * from "./dropzone";
|
|
33
35
|
export * from "./label";
|
|
34
36
|
export type * from "./label";
|
|
35
37
|
export * from "./toast";
|
|
@@ -14,6 +14,7 @@ export * from "./password-input";
|
|
|
14
14
|
export * from "./otp-input";
|
|
15
15
|
export * from "./secure-password-creation-input";
|
|
16
16
|
export * from "./file-input";
|
|
17
|
+
export * from "./dropzone";
|
|
17
18
|
export * from "./label";
|
|
18
19
|
export * from "./toast";
|
|
19
20
|
export * from "./toaster";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,9 +40,23 @@ export interface MultiSelectProps extends Omit<ButtonHTMLAttributes<HTMLButtonEl
|
|
|
40
40
|
/** Close the popover after each selection. Defaults to false (multi-pick mode). */
|
|
41
41
|
closeOnSelect?: boolean;
|
|
42
42
|
align?: "start" | "center" | "end";
|
|
43
|
+
/**
|
|
44
|
+
* Render the dropdown as a modal popover. Defaults to `true`, matching the
|
|
45
|
+
* behaviour of Radix `Select`.
|
|
46
|
+
*
|
|
47
|
+
* A modal popover installs its own scroll lock as the innermost layer, which
|
|
48
|
+
* is what makes the option list wheel/trackpad-scrollable while the
|
|
49
|
+
* `MultiSelect` sits inside a modal `Dialog`. With `modal={false}` the
|
|
50
|
+
* dialog's `react-remove-scroll` shard swallows wheel events over the
|
|
51
|
+
* portalled list, so it can only be scrolled with the keyboard.
|
|
52
|
+
*
|
|
53
|
+
* While open, a modal popover locks page scroll and the first outside click
|
|
54
|
+
* only dismisses it — standard combobox semantics.
|
|
55
|
+
*/
|
|
56
|
+
modal?: boolean;
|
|
43
57
|
ref?: Ref<HTMLButtonElement>;
|
|
44
58
|
}
|
|
45
|
-
export declare function MultiSelect({ options, value: controlledValue, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyMessage, variant, size, fullWidth, contentClassName, triggerClassName, badgeClassName, badgeVariant, className, maxDisplay, maxSelected, clearable, disabled, closeOnSelect, align, ref, ...buttonProps }: MultiSelectProps): ReactElement;
|
|
59
|
+
export declare function MultiSelect({ options, value: controlledValue, defaultValue, onValueChange, placeholder, searchPlaceholder, emptyMessage, variant, size, fullWidth, contentClassName, triggerClassName, badgeClassName, badgeVariant, className, maxDisplay, maxSelected, clearable, disabled, closeOnSelect, align, modal, ref, ...buttonProps }: MultiSelectProps): ReactElement;
|
|
46
60
|
export declare namespace MultiSelect {
|
|
47
61
|
var displayName: string;
|
|
48
62
|
}
|
|
@@ -56,7 +56,7 @@ function arraysHaveSameValues(a, b) {
|
|
|
56
56
|
}
|
|
57
57
|
return true;
|
|
58
58
|
}
|
|
59
|
-
export function MultiSelect({ options, value: controlledValue, defaultValue, onValueChange, placeholder = "Select options...", searchPlaceholder = "Search...", emptyMessage = "No results found.", variant, size, fullWidth, contentClassName, triggerClassName, badgeClassName, badgeVariant = "secondary", className, maxDisplay, maxSelected, clearable = false, disabled = false, closeOnSelect = false, align = "start", ref, ...buttonProps }) {
|
|
59
|
+
export function MultiSelect({ options, value: controlledValue, defaultValue, onValueChange, placeholder = "Select options...", searchPlaceholder = "Search...", emptyMessage = "No results found.", variant, size, fullWidth, contentClassName, triggerClassName, badgeClassName, badgeVariant = "secondary", className, maxDisplay, maxSelected, clearable = false, disabled = false, closeOnSelect = false, align = "start", modal = true, ref, ...buttonProps }) {
|
|
60
60
|
const reactId = useId();
|
|
61
61
|
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? []);
|
|
62
62
|
const [open, setOpen] = useState(false);
|
|
@@ -117,7 +117,7 @@ export function MultiSelect({ options, value: controlledValue, defaultValue, onV
|
|
|
117
117
|
const showClearControl = clearable && !disabled && selectedValues.length > 0;
|
|
118
118
|
const isLimitReached = maxSelected !== undefined && selectedValues.length >= maxSelected;
|
|
119
119
|
const hasSelection = selectedValues.length > 0;
|
|
120
|
-
return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { ref: ref, type: "button", role: "combobox", "aria-expanded": open, "aria-haspopup": "listbox", "aria-controls": `${reactId}-listbox`, "data-placeholder": hasSelection ? "false" : "true", disabled: disabled, className: cn(multiSelectTriggerVariants({ variant, size, fullWidth }), triggerClassName, className), ...buttonProps, children: [_jsx("span", { className: "flex min-w-0 flex-1 flex-wrap items-center gap-1 text-left", children: hasSelection ? (_jsxs(_Fragment, { children: [visibleSelected.map((option) => (_jsxs(Badge, { variant: badgeVariant, className: cn("max-w-full gap-1 pr-1", badgeClassName), children: [option.icon ? (_jsx("span", { className: "inline-flex shrink-0 items-center", "aria-hidden": "true", children: option.icon })) : null, _jsx("span", { className: "truncate", children: option.label }), !disabled ? (_jsx("span", { role: "button", tabIndex: -1, "aria-label": `Remove ${option.label}`, onClick: (event) => handleRemoveBadge(event, option.value), onPointerDown: (event) => {
|
|
120
|
+
return (_jsxs(Popover, { modal: modal, open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("button", { ref: ref, type: "button", role: "combobox", "aria-expanded": open, "aria-haspopup": "listbox", "aria-controls": `${reactId}-listbox`, "data-placeholder": hasSelection ? "false" : "true", disabled: disabled, className: cn(multiSelectTriggerVariants({ variant, size, fullWidth }), triggerClassName, className), ...buttonProps, children: [_jsx("span", { className: "flex min-w-0 flex-1 flex-wrap items-center gap-1 text-left", children: hasSelection ? (_jsxs(_Fragment, { children: [visibleSelected.map((option) => (_jsxs(Badge, { variant: badgeVariant, className: cn("max-w-full gap-1 pr-1", badgeClassName), children: [option.icon ? (_jsx("span", { className: "inline-flex shrink-0 items-center", "aria-hidden": "true", children: option.icon })) : null, _jsx("span", { className: "truncate", children: option.label }), !disabled ? (_jsx("span", { role: "button", tabIndex: -1, "aria-label": `Remove ${option.label}`, onClick: (event) => handleRemoveBadge(event, option.value), onPointerDown: (event) => {
|
|
121
121
|
event.stopPropagation();
|
|
122
122
|
}, onKeyDown: (event) => {
|
|
123
123
|
if (event.key === "Enter" || event.key === " ") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-select.js","sourceRoot":"","sources":["../../../../src/components/ui/multi-select/multi-select.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,WAAW,EACX,KAAK,EACL,OAAO,EACP,QAAQ,GAMT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS;IACT,SAAS;IACT,OAAO;CAC6B,CAAC;AAGvC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI;IACJ,SAAS;IACT,IAAI;CACgC,CAAC;AAGvC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,SAAS;IACT,WAAW;IACX,SAAS;IACT,aAAa;CACuB,CAAC;AAIvC,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAC3C,kVAAkV,EAClV;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,gFAAgF;YAClF,OAAO,EACL,iFAAiF;YACnF,KAAK,EACH,uFAAuF;SAC3C;QAChD,IAAI,EAAE;YACJ,EAAE,EAAE,2BAA2B;YAC/B,OAAO,EAAE,8BAA8B;YACvC,EAAE,EAAE,8BAA8B;SACS;QAC7C,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,EAAE;SACV;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,KAAK;KACjB;CACF,CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-select.js","sourceRoot":"","sources":["../../../../src/components/ui/multi-select/multi-select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,20 @@ export interface TimePickerProps extends VariantProps<typeof triggerVariants> {
|
|
|
38
38
|
formatValue?: (value: TimeValue) => string;
|
|
39
39
|
/** Alignment of the popover relative to the trigger. Defaults to "start". */
|
|
40
40
|
align?: "start" | "center" | "end";
|
|
41
|
+
/**
|
|
42
|
+
* Render the panel as a modal popover. Defaults to `true`, matching the
|
|
43
|
+
* behaviour of Radix `Select`.
|
|
44
|
+
*
|
|
45
|
+
* A modal popover installs its own scroll lock as the innermost layer, which
|
|
46
|
+
* is what keeps the hour/minute/second columns wheel/trackpad-scrollable
|
|
47
|
+
* while the `TimePicker` sits inside a modal `Dialog`. With `modal={false}` the
|
|
48
|
+
* dialog's `react-remove-scroll` shard swallows wheel events over the
|
|
49
|
+
* portalled content, so it can only be scrolled with the keyboard.
|
|
50
|
+
*
|
|
51
|
+
* While open, a modal popover locks page scroll and the first outside click
|
|
52
|
+
* only dismisses it.
|
|
53
|
+
*/
|
|
54
|
+
modal?: boolean;
|
|
41
55
|
/** Controlled popover open state. */
|
|
42
56
|
open?: boolean;
|
|
43
57
|
/** Called when the popover open state changes. */
|
|
@@ -78,7 +78,7 @@ function TimeColumn({ label, items, active, onSelect, formatItem, size, }) {
|
|
|
78
78
|
* `DateRangePicker`.
|
|
79
79
|
*/
|
|
80
80
|
function TimePicker(props) {
|
|
81
|
-
const { value, defaultValue, onValueChange, placeholder = "Pick a time", disabled, format = "24h", showSeconds = false, minuteStep = 1, secondStep = 1, formatValue, align = "start", open, onOpenChange, id, className, size, } = props;
|
|
81
|
+
const { value, defaultValue, onValueChange, placeholder = "Pick a time", disabled, format = "24h", showSeconds = false, minuteStep = 1, secondStep = 1, formatValue, align = "start", modal = true, open, onOpenChange, id, className, size, } = props;
|
|
82
82
|
const resolvedSize = size ?? "default";
|
|
83
83
|
const [internalOpen, setInternalOpen] = useState(false);
|
|
84
84
|
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
@@ -145,7 +145,7 @@ function TimePicker(props) {
|
|
|
145
145
|
: selected
|
|
146
146
|
? defaultFormatValue(selected, format, showSeconds)
|
|
147
147
|
: undefined;
|
|
148
|
-
return (_jsxs(Popover, { open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn(triggerVariants({ size: resolvedSize }), triggerSizeClasses[resolvedSize], className), children: [_jsx(Clock, { className: "size-4 opacity-70" }), display ? (display) : (_jsx("span", { className: "text-muted-foreground", children: placeholder }))] }) }), _jsxs(PopoverContent, { className: "w-auto p-3", align: align, children: [_jsxs("div", { className: "flex items-start gap-2", children: [_jsx(TimeColumn, { label: "Hour", items: hourItems, active: activeHourDisplay, onSelect: handleHour, formatItem: pad, size: resolvedSize }), _jsx(TimeColumn, { label: "Min", items: minuteItems, active: activeMinute, onSelect: handleMinute, formatItem: pad, size: resolvedSize }), showSeconds ? (_jsx(TimeColumn, { label: "Sec", items: secondItems, active: activeSecond, onSelect: handleSecond, formatItem: pad, size: resolvedSize })) : null, format12 ? (_jsxs("div", { className: "flex flex-col items-stretch", children: [_jsx("div", { className: "px-2 pb-1 text-[10px] uppercase tracking-wider text-muted-foreground text-center", "aria-hidden": "true", children: "AM/PM" }), _jsx("div", { className: cn("flex flex-col gap-1 rounded-md border border-border bg-muted/30 p-1", panelHeightClasses[resolvedSize]), role: "radiogroup", "aria-label": "AM/PM", children: ["AM", "PM"].map((period) => {
|
|
148
|
+
return (_jsxs(Popover, { modal: modal, open: isOpen, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { id: id, type: "button", variant: "outline", disabled: disabled, className: cn(triggerVariants({ size: resolvedSize }), triggerSizeClasses[resolvedSize], className), children: [_jsx(Clock, { className: "size-4 opacity-70" }), display ? (display) : (_jsx("span", { className: "text-muted-foreground", children: placeholder }))] }) }), _jsxs(PopoverContent, { className: "w-auto p-3", align: align, children: [_jsxs("div", { className: "flex items-start gap-2", children: [_jsx(TimeColumn, { label: "Hour", items: hourItems, active: activeHourDisplay, onSelect: handleHour, formatItem: pad, size: resolvedSize }), _jsx(TimeColumn, { label: "Min", items: minuteItems, active: activeMinute, onSelect: handleMinute, formatItem: pad, size: resolvedSize }), showSeconds ? (_jsx(TimeColumn, { label: "Sec", items: secondItems, active: activeSecond, onSelect: handleSecond, formatItem: pad, size: resolvedSize })) : null, format12 ? (_jsxs("div", { className: "flex flex-col items-stretch", children: [_jsx("div", { className: "px-2 pb-1 text-[10px] uppercase tracking-wider text-muted-foreground text-center", "aria-hidden": "true", children: "AM/PM" }), _jsx("div", { className: cn("flex flex-col gap-1 rounded-md border border-border bg-muted/30 p-1", panelHeightClasses[resolvedSize]), role: "radiogroup", "aria-label": "AM/PM", children: ["AM", "PM"].map((period) => {
|
|
149
149
|
const isActive = isPm ? period === "PM" : period === "AM";
|
|
150
150
|
return (_jsx("button", { type: "button", role: "radio", "aria-checked": isActive, onClick: () => handlePeriod(period), className: cn("w-12 rounded-sm font-medium transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "hover:bg-accent hover:text-accent-foreground", cellSizeClasses[resolvedSize], isActive &&
|
|
151
151
|
"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground"), children: period }, period));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/time-picker/time-picker.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAA6B,CAAC;AAGrF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,CAA6B,CAAC;AAY9E,MAAM,kBAAkB,GAAG;IACzB,EAAE,EAAE,kBAAkB;IACtB,OAAO,EAAE,WAAW;IACpB,EAAE,EAAE,qBAAqB;CAC0B,CAAC;AAEtD,MAAM,eAAe,GAAG;IACtB,EAAE,EAAE,aAAa;IACjB,OAAO,EAAE,aAAa;IACtB,EAAE,EAAE,eAAe;CACgC,CAAC;AAEtD,MAAM,kBAAkB,GAAG;IACzB,EAAE,EAAE,MAAM;IACV,OAAO,EAAE,MAAM;IACf,EAAE,EAAE,MAAM;CACyC,CAAC;AAEtD,MAAM,eAAe,GAAG,GAAG,CACzB,8CAA8C,EAC9C;IACE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,MAAM;YACf,EAAE,EAAE,MAAM;SACgC;KAC7C;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;CACrC,CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"time-picker.js","sourceRoot":"","sources":["../../../../src/components/ui/time-picker/time-picker.tsx"],"names":[],"mappings":"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"}
|