@schemavaults/ui 0.34.1 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/combobox/combobox.d.ts +38 -0
- package/dist/components/ui/combobox/combobox.js +80 -0
- package/dist/components/ui/combobox/combobox.js.map +1 -0
- package/dist/components/ui/combobox/index.d.ts +3 -0
- package/dist/components/ui/combobox/index.js +3 -0
- package/dist/components/ui/combobox/index.js.map +1 -0
- package/dist/components/ui/index.d.ts +4 -0
- package/dist/components/ui/index.js +2 -0
- package/dist/components/ui/index.js.map +1 -1
- package/dist/components/ui/tags-input/index.d.ts +4 -0
- package/dist/components/ui/tags-input/index.js +3 -0
- package/dist/components/ui/tags-input/index.js.map +1 -0
- package/dist/components/ui/tags-input/tags-input-variants.d.ts +2 -0
- package/dist/components/ui/tags-input/tags-input-variants.js +2 -0
- package/dist/components/ui/tags-input/tags-input-variants.js.map +1 -0
- package/dist/components/ui/tags-input/tags-input.d.ts +67 -0
- package/dist/components/ui/tags-input/tags-input.js +148 -0
- package/dist/components/ui/tags-input/tags-input.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type Ref, type ReactElement, type ReactNode } from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
export declare const comboboxVariantIds: readonly ["default", "outline", "ghost"];
|
|
4
|
+
export type ComboboxVariantId = (typeof comboboxVariantIds)[number];
|
|
5
|
+
export declare const comboboxSizeIds: readonly ["sm", "default", "lg"];
|
|
6
|
+
export type ComboboxSizeId = (typeof comboboxSizeIds)[number];
|
|
7
|
+
export declare const comboboxTriggerVariants: (props?: ({
|
|
8
|
+
variant?: "default" | "ghost" | "outline" | null | undefined;
|
|
9
|
+
size?: "sm" | "default" | "lg" | null | undefined;
|
|
10
|
+
fullWidth?: boolean | null | undefined;
|
|
11
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
12
|
+
export interface ComboboxOption {
|
|
13
|
+
value: string;
|
|
14
|
+
label: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
keywords?: readonly string[];
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
icon?: ReactNode;
|
|
19
|
+
}
|
|
20
|
+
export interface ComboboxProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "value" | "onChange">, VariantProps<typeof comboboxTriggerVariants> {
|
|
21
|
+
options: readonly ComboboxOption[];
|
|
22
|
+
value?: string;
|
|
23
|
+
defaultValue?: string;
|
|
24
|
+
onValueChange?: (value: string) => void;
|
|
25
|
+
placeholder?: ReactNode;
|
|
26
|
+
searchPlaceholder?: string;
|
|
27
|
+
emptyMessage?: ReactNode;
|
|
28
|
+
contentClassName?: string;
|
|
29
|
+
triggerClassName?: string;
|
|
30
|
+
clearable?: boolean;
|
|
31
|
+
disabled?: boolean;
|
|
32
|
+
align?: "start" | "center" | "end";
|
|
33
|
+
ref?: Ref<HTMLButtonElement>;
|
|
34
|
+
}
|
|
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;
|
|
36
|
+
export declare namespace Combobox {
|
|
37
|
+
var displayName: string;
|
|
38
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useId, useMemo, useState, } from "react";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
import { Check, ChevronsUpDown, X } from "lucide-react";
|
|
6
|
+
import { cn } from "../../../lib/utils";
|
|
7
|
+
import { Popover, PopoverContent, PopoverTrigger, } from "../../ui/popover";
|
|
8
|
+
import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, } from "../../ui/command";
|
|
9
|
+
export const comboboxVariantIds = [
|
|
10
|
+
"default",
|
|
11
|
+
"outline",
|
|
12
|
+
"ghost",
|
|
13
|
+
];
|
|
14
|
+
export const comboboxSizeIds = [
|
|
15
|
+
"sm",
|
|
16
|
+
"default",
|
|
17
|
+
"lg",
|
|
18
|
+
];
|
|
19
|
+
export const comboboxTriggerVariants = cva("inline-flex items-center justify-between gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[placeholder=true]:text-muted-foreground", {
|
|
20
|
+
variants: {
|
|
21
|
+
variant: {
|
|
22
|
+
default: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
23
|
+
outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground",
|
|
24
|
+
ghost: "border border-transparent bg-transparent hover:bg-accent hover:text-accent-foreground",
|
|
25
|
+
},
|
|
26
|
+
size: {
|
|
27
|
+
sm: "h-8 px-2.5 text-xs",
|
|
28
|
+
default: "h-10 px-3 text-sm",
|
|
29
|
+
lg: "h-11 px-4 text-base",
|
|
30
|
+
},
|
|
31
|
+
fullWidth: {
|
|
32
|
+
true: "w-full",
|
|
33
|
+
false: "",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
defaultVariants: {
|
|
37
|
+
variant: "default",
|
|
38
|
+
size: "default",
|
|
39
|
+
fullWidth: false,
|
|
40
|
+
},
|
|
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 }) {
|
|
43
|
+
const reactId = useId();
|
|
44
|
+
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
45
|
+
const [open, setOpen] = useState(false);
|
|
46
|
+
const isControlled = controlledValue !== undefined;
|
|
47
|
+
const selectedValue = isControlled ? controlledValue : uncontrolledValue;
|
|
48
|
+
const selectedOption = useMemo(() => selectedValue !== undefined && selectedValue !== ""
|
|
49
|
+
? options.find((option) => option.value === selectedValue)
|
|
50
|
+
: undefined, [options, selectedValue]);
|
|
51
|
+
const commitValue = useCallback((next) => {
|
|
52
|
+
if (!isControlled) {
|
|
53
|
+
setUncontrolledValue(next);
|
|
54
|
+
}
|
|
55
|
+
onValueChange?.(next);
|
|
56
|
+
}, [isControlled, onValueChange]);
|
|
57
|
+
const handleSelect = useCallback((next) => {
|
|
58
|
+
commitValue(next);
|
|
59
|
+
setOpen(false);
|
|
60
|
+
}, [commitValue]);
|
|
61
|
+
const handleClear = useCallback(() => {
|
|
62
|
+
commitValue("");
|
|
63
|
+
setOpen(false);
|
|
64
|
+
}, [commitValue]);
|
|
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: () => {
|
|
67
|
+
handleClear();
|
|
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
|
+
const isSelected = option.value === selectedValue;
|
|
70
|
+
const keywords = [
|
|
71
|
+
option.label,
|
|
72
|
+
...(option.keywords ?? []),
|
|
73
|
+
];
|
|
74
|
+
return (_jsxs(CommandItem, { value: option.value, keywords: keywords, disabled: option.disabled, onSelect: (currentValue) => {
|
|
75
|
+
handleSelect(currentValue === selectedValue ? "" : currentValue);
|
|
76
|
+
}, className: "cursor-pointer gap-2", children: [_jsx(Check, { className: cn("h-4 w-4 shrink-0", isSelected ? "opacity-100" : "opacity-0"), "aria-hidden": "true" }), option.icon ? (_jsx("span", { className: "inline-flex shrink-0 items-center", "aria-hidden": "true", children: option.icon })) : null, _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("span", { className: "truncate", children: option.label }), option.description ? (_jsx("span", { className: "truncate text-xs text-muted-foreground", children: option.description })) : null] })] }, option.value));
|
|
77
|
+
}) })] })] }) })] }));
|
|
78
|
+
}
|
|
79
|
+
Combobox.displayName = "Combobox";
|
|
80
|
+
//# sourceMappingURL=combobox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox/combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/combobox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,GAChB,MAAM,YAAY,CAAC;AAOpB,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -50,6 +50,8 @@ export * from "./popover";
|
|
|
50
50
|
export type * from "./popover";
|
|
51
51
|
export * from "./command";
|
|
52
52
|
export type * from "./command";
|
|
53
|
+
export * from "./combobox";
|
|
54
|
+
export type * from "./combobox";
|
|
53
55
|
export * from "./table";
|
|
54
56
|
export type * from "./table";
|
|
55
57
|
export * from "./datatable";
|
|
@@ -134,5 +136,7 @@ export * from "./toggle";
|
|
|
134
136
|
export type * from "./toggle";
|
|
135
137
|
export * from "./chip";
|
|
136
138
|
export type * from "./chip";
|
|
139
|
+
export * from "./tags-input";
|
|
140
|
+
export type * from "./tags-input";
|
|
137
141
|
export * from "./number-ticker";
|
|
138
142
|
export type * from "./number-ticker";
|
|
@@ -24,6 +24,7 @@ export * from "./navigation-menu";
|
|
|
24
24
|
export * from "./dialog";
|
|
25
25
|
export * from "./popover";
|
|
26
26
|
export * from "./command";
|
|
27
|
+
export * from "./combobox";
|
|
27
28
|
export * from "./table";
|
|
28
29
|
export * from "./datatable";
|
|
29
30
|
export * from "./checkbox";
|
|
@@ -66,5 +67,6 @@ export * from "./segmented-control";
|
|
|
66
67
|
export * from "./marquee";
|
|
67
68
|
export * from "./toggle";
|
|
68
69
|
export * from "./chip";
|
|
70
|
+
export * from "./tags-input";
|
|
69
71
|
export * from "./number-ticker";
|
|
70
72
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,mBAAmB,CAAC;AAGlC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC;AAGxB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,kCAAkC,CAAC;AAGjD,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAExB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,aAAa,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,WAAW,CAAC;AAG1B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,2BAA2B,CAAC;AAG1C,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,OAAO,CAAC;AAGtB,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,mBAAmB,CAAC;AAGlC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC;AAGxB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,kCAAkC,CAAC;AAGjD,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAExB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,aAAa,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,WAAW,CAAC;AAG1B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,2BAA2B,CAAC;AAG1C,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,OAAO,CAAC;AAGtB,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,cAAc,CAAC;AAG7B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { TagsInput, TagsInput as default, tagsInputContainerVariants, } from "./tags-input";
|
|
2
|
+
export type { TagsInputProps, TagsInputHandle, TagsInputValidator, } from "./tags-input";
|
|
3
|
+
export { tagsInputSizeIds } from "./tags-input-variants";
|
|
4
|
+
export type { TagsInputSize } from "./tags-input-variants";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/tags-input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,IAAI,OAAO,EACpB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags-input-variants.js","sourceRoot":"","sources":["../../../../src/components/ui/tags-input/tags-input-variants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAsC,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type InputHTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
import { type ChipVariant } from "../../ui/chip/chip-variants";
|
|
3
|
+
import { tagsInputSizeIds, type TagsInputSize } from "./tags-input-variants";
|
|
4
|
+
declare const tagsInputContainerVariants: (props?: ({
|
|
5
|
+
size?: "sm" | "default" | "lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export type TagsInputValidator = (tag: string, existing: readonly string[]) => boolean;
|
|
8
|
+
export interface TagsInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "size" | "onChange"> {
|
|
9
|
+
/** Controlled list of tags. Provide alongside `onValueChange`. */
|
|
10
|
+
value?: readonly string[];
|
|
11
|
+
/** Initial tags for uncontrolled usage. */
|
|
12
|
+
defaultValue?: readonly string[];
|
|
13
|
+
/** Fires whenever the tag list changes (add or remove). */
|
|
14
|
+
onValueChange?: (tags: string[]) => void;
|
|
15
|
+
/** Fires when a tag is added — runs after `onValueChange`. */
|
|
16
|
+
onTagAdd?: (tag: string) => void;
|
|
17
|
+
/** Fires when a tag is removed — runs after `onValueChange`. */
|
|
18
|
+
onTagRemove?: (tag: string) => void;
|
|
19
|
+
/** Visual size of the input shell and chips. */
|
|
20
|
+
size?: TagsInputSize;
|
|
21
|
+
/** Visual variant applied to each chip — see `ChipVariant`. */
|
|
22
|
+
chipVariant?: ChipVariant;
|
|
23
|
+
/** Optional leading slot rendered inside each chip (typically an icon). */
|
|
24
|
+
chipLeading?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Keys that commit the current draft as a tag.
|
|
27
|
+
* Defaults to `["Enter", ","]`.
|
|
28
|
+
*/
|
|
29
|
+
delimiters?: readonly string[];
|
|
30
|
+
/** Maximum number of tags allowed. Further additions are ignored. */
|
|
31
|
+
maxTags?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Whether duplicate tags are permitted. Comparison is case-insensitive
|
|
34
|
+
* and trim-aware. Defaults to `false`.
|
|
35
|
+
*/
|
|
36
|
+
allowDuplicates?: boolean;
|
|
37
|
+
/** Trim whitespace around tags before adding. Defaults to `true`. */
|
|
38
|
+
trim?: boolean;
|
|
39
|
+
/** When true, dims the field and disables interaction. */
|
|
40
|
+
disabled?: boolean;
|
|
41
|
+
/** Renders the field in an error state and sets `aria-invalid`. */
|
|
42
|
+
invalid?: boolean;
|
|
43
|
+
/** Optional accessible label applied to the underlying input. */
|
|
44
|
+
ariaLabel?: string;
|
|
45
|
+
/** Custom validator — return `false` to reject a tag before it's added. */
|
|
46
|
+
validate?: TagsInputValidator;
|
|
47
|
+
/** Class merged onto the wrapper element. */
|
|
48
|
+
className?: string;
|
|
49
|
+
/** Class merged onto the underlying `<input>`. */
|
|
50
|
+
inputClassName?: string;
|
|
51
|
+
/** Render-prop override for the chip element. */
|
|
52
|
+
renderTag?: (args: {
|
|
53
|
+
tag: string;
|
|
54
|
+
index: number;
|
|
55
|
+
remove: () => void;
|
|
56
|
+
}) => ReactNode;
|
|
57
|
+
}
|
|
58
|
+
export interface TagsInputHandle {
|
|
59
|
+
/** Imperative focus on the underlying input. */
|
|
60
|
+
focus: () => void;
|
|
61
|
+
/** Programmatically clear all tags (also clears the draft). */
|
|
62
|
+
clear: () => void;
|
|
63
|
+
}
|
|
64
|
+
export declare const TagsInput: import("react").ForwardRefExoticComponent<TagsInputProps & import("react").RefAttributes<TagsInputHandle>>;
|
|
65
|
+
export { tagsInputContainerVariants, tagsInputSizeIds };
|
|
66
|
+
export type { TagsInputSize };
|
|
67
|
+
export default TagsInput;
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useCallback, useId, useImperativeHandle, useMemo, useRef, useState, } from "react";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
import { cn } from "../../../lib/utils";
|
|
6
|
+
import { Chip } from "../../ui/chip/chip";
|
|
7
|
+
import { tagsInputSizeIds } from "./tags-input-variants";
|
|
8
|
+
const tagsInputContainerVariants = cva("group/tags-input flex w-full flex-wrap items-center gap-1.5 rounded-md border border-input bg-background text-sm ring-offset-background transition-[border-color,box-shadow] focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 has-[input:focus-visible]:outline-none data-[disabled=true]:cursor-not-allowed data-[disabled=true]:opacity-50 data-[invalid=true]:border-destructive data-[invalid=true]:focus-within:ring-destructive", {
|
|
9
|
+
variants: {
|
|
10
|
+
size: {
|
|
11
|
+
sm: "min-h-8 p-1 [&_input]:h-6 [&_input]:text-xs",
|
|
12
|
+
default: "min-h-10 p-1.5 [&_input]:h-7 [&_input]:text-sm",
|
|
13
|
+
lg: "min-h-12 p-2 [&_input]:h-8 [&_input]:text-base",
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
size: "default",
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
const sizeToChipSize = {
|
|
21
|
+
sm: "sm",
|
|
22
|
+
default: "default",
|
|
23
|
+
lg: "lg",
|
|
24
|
+
};
|
|
25
|
+
function defaultValidator(tag, existing) {
|
|
26
|
+
if (tag.length === 0)
|
|
27
|
+
return false;
|
|
28
|
+
const lower = tag.toLowerCase();
|
|
29
|
+
return !existing.some((t) => t.toLowerCase() === lower);
|
|
30
|
+
}
|
|
31
|
+
function TagsInputImpl({ value, defaultValue, onValueChange, onTagAdd, onTagRemove, size = "default", chipVariant = "secondary", chipLeading, delimiters = ["Enter", ","], maxTags, allowDuplicates = false, trim = true, disabled = false, invalid = false, placeholder, ariaLabel, validate, className, inputClassName, renderTag, id, name, onKeyDown, onPaste, onFocus, onBlur, ...inputProps }, forwardedRef) {
|
|
32
|
+
const isControlled = value !== undefined;
|
|
33
|
+
const [internalTags, setInternalTags] = useState(() => defaultValue ? [...defaultValue] : []);
|
|
34
|
+
const tags = isControlled ? value : internalTags;
|
|
35
|
+
const [draft, setDraft] = useState("");
|
|
36
|
+
const inputRef = useRef(null);
|
|
37
|
+
const reactId = useId();
|
|
38
|
+
const inputId = id ?? `tags-input-${reactId}`;
|
|
39
|
+
const commitTags = useCallback((next) => {
|
|
40
|
+
if (!isControlled)
|
|
41
|
+
setInternalTags(next);
|
|
42
|
+
onValueChange?.(next);
|
|
43
|
+
}, [isControlled, onValueChange]);
|
|
44
|
+
useImperativeHandle(forwardedRef, () => ({
|
|
45
|
+
focus: () => inputRef.current?.focus(),
|
|
46
|
+
clear: () => {
|
|
47
|
+
commitTags([]);
|
|
48
|
+
setDraft("");
|
|
49
|
+
},
|
|
50
|
+
}), [commitTags]);
|
|
51
|
+
const isAcceptable = useCallback((candidate, existing) => {
|
|
52
|
+
if (candidate.length === 0)
|
|
53
|
+
return false;
|
|
54
|
+
if (!allowDuplicates && !defaultValidator(candidate, existing)) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
if (validate && !validate(candidate, existing)) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
61
|
+
}, [allowDuplicates, validate]);
|
|
62
|
+
const addTags = useCallback((rawCandidates) => {
|
|
63
|
+
if (disabled)
|
|
64
|
+
return;
|
|
65
|
+
const cleaned = rawCandidates
|
|
66
|
+
.map((c) => (trim ? c.trim() : c))
|
|
67
|
+
.filter((c) => c.length > 0);
|
|
68
|
+
if (cleaned.length === 0)
|
|
69
|
+
return;
|
|
70
|
+
const next = [...tags];
|
|
71
|
+
const added = [];
|
|
72
|
+
for (const candidate of cleaned) {
|
|
73
|
+
if (maxTags !== undefined && next.length >= maxTags)
|
|
74
|
+
break;
|
|
75
|
+
if (!isAcceptable(candidate, next))
|
|
76
|
+
continue;
|
|
77
|
+
next.push(candidate);
|
|
78
|
+
added.push(candidate);
|
|
79
|
+
}
|
|
80
|
+
if (added.length === 0)
|
|
81
|
+
return;
|
|
82
|
+
commitTags(next);
|
|
83
|
+
for (const tag of added)
|
|
84
|
+
onTagAdd?.(tag);
|
|
85
|
+
}, [commitTags, disabled, isAcceptable, maxTags, onTagAdd, tags, trim]);
|
|
86
|
+
const removeTagAt = useCallback((index) => {
|
|
87
|
+
if (disabled)
|
|
88
|
+
return;
|
|
89
|
+
if (index < 0 || index >= tags.length)
|
|
90
|
+
return;
|
|
91
|
+
const removed = tags[index];
|
|
92
|
+
const next = tags.filter((_, i) => i !== index);
|
|
93
|
+
commitTags(next);
|
|
94
|
+
onTagRemove?.(removed);
|
|
95
|
+
}, [commitTags, disabled, onTagRemove, tags]);
|
|
96
|
+
const delimiterSet = useMemo(() => new Set(delimiters), [delimiters]);
|
|
97
|
+
const hasCommaDelimiter = useMemo(() => delimiters.includes(","), [delimiters]);
|
|
98
|
+
const splitOnDelimiters = useCallback((raw) => {
|
|
99
|
+
if (!hasCommaDelimiter && !delimiters.includes(";"))
|
|
100
|
+
return [raw];
|
|
101
|
+
const pattern = delimiters.includes(";") ? /[,;\n]/ : /[,\n]/;
|
|
102
|
+
return raw.split(pattern);
|
|
103
|
+
}, [delimiters, hasCommaDelimiter]);
|
|
104
|
+
const handleKeyDown = (event) => {
|
|
105
|
+
onKeyDown?.(event);
|
|
106
|
+
if (event.defaultPrevented || disabled)
|
|
107
|
+
return;
|
|
108
|
+
if (delimiterSet.has(event.key)) {
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
const candidate = trim ? draft.trim() : draft;
|
|
111
|
+
if (candidate.length === 0)
|
|
112
|
+
return;
|
|
113
|
+
addTags([candidate]);
|
|
114
|
+
setDraft("");
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (event.key === "Backspace" && draft.length === 0 && tags.length > 0) {
|
|
118
|
+
event.preventDefault();
|
|
119
|
+
removeTagAt(tags.length - 1);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
const handlePaste = (event) => {
|
|
123
|
+
onPaste?.(event);
|
|
124
|
+
if (event.defaultPrevented || disabled)
|
|
125
|
+
return;
|
|
126
|
+
if (!hasCommaDelimiter && !delimiters.includes(";"))
|
|
127
|
+
return;
|
|
128
|
+
const pasted = event.clipboardData.getData("text");
|
|
129
|
+
if (!/[,;\n]/.test(pasted))
|
|
130
|
+
return;
|
|
131
|
+
event.preventDefault();
|
|
132
|
+
const parts = splitOnDelimiters(pasted);
|
|
133
|
+
addTags(parts);
|
|
134
|
+
setDraft("");
|
|
135
|
+
};
|
|
136
|
+
return (_jsxs("div", { "data-slot": "tags-input", "data-disabled": disabled || undefined, "data-invalid": invalid || undefined, "aria-disabled": disabled || undefined, role: "group", className: cn(tagsInputContainerVariants({ size }), className), children: [tags.map((tag, index) => {
|
|
137
|
+
const remove = () => removeTagAt(index);
|
|
138
|
+
if (renderTag) {
|
|
139
|
+
return (_jsx("span", { "data-slot": "tags-input-tag", children: renderTag({ tag, index, remove }) }, `${tag}-${index}`));
|
|
140
|
+
}
|
|
141
|
+
return (_jsx(Chip, { size: sizeToChipSize[size], variant: chipVariant, removable: !disabled, onRemove: remove, disabled: disabled, leading: chipLeading, "data-slot": "tags-input-tag", removeLabel: `Remove ${tag}`, children: tag }, `${tag}-${index}`));
|
|
142
|
+
}), _jsx("input", { ...inputProps, ref: inputRef, id: inputId, name: name, type: "text", disabled: disabled, "aria-label": ariaLabel, "aria-invalid": invalid || undefined, value: draft, onChange: (e) => setDraft(e.target.value), onKeyDown: handleKeyDown, onPaste: handlePaste, onFocus: onFocus, onBlur: onBlur, placeholder: tags.length === 0 ? placeholder : undefined, className: cn("min-w-24 flex-1 bg-transparent px-2 outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed", inputClassName) })] }));
|
|
143
|
+
}
|
|
144
|
+
export const TagsInput = forwardRef(TagsInputImpl);
|
|
145
|
+
TagsInput.displayName = "TagsInput";
|
|
146
|
+
export { tagsInputContainerVariants, tagsInputSizeIds };
|
|
147
|
+
export default TagsInput;
|
|
148
|
+
//# sourceMappingURL=tags-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags-input.js","sourceRoot":"","sources":["../../../../src/components/ui/tags-input/tags-input.tsx"],"names":[],"mappings":"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"}
|