@schemavaults/ui 0.34.0 → 0.35.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/README.md +1 -1
- 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/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
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ SchemaVaults React.js UI component library package. [Here's the @schemavaults/ui
|
|
|
6
6
|
|
|
7
7
|
## Usage
|
|
8
8
|
|
|
9
|
-
### Ensure that globals.css is imported from @schemavaults/theme
|
|
9
|
+
### Ensure that globals.css is imported from [@schemavaults/theme](https://github.com/schemavaults/theme)
|
|
10
10
|
|
|
11
11
|
```javascript
|
|
12
12
|
import "@schemavaults/theme/globals.css"
|
|
@@ -134,5 +134,7 @@ export * from "./toggle";
|
|
|
134
134
|
export type * from "./toggle";
|
|
135
135
|
export * from "./chip";
|
|
136
136
|
export type * from "./chip";
|
|
137
|
+
export * from "./tags-input";
|
|
138
|
+
export type * from "./tags-input";
|
|
137
139
|
export * from "./number-ticker";
|
|
138
140
|
export type * from "./number-ticker";
|
|
@@ -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,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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"}
|