@dowel-ui/react 0.2.0 → 0.3.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 +10 -4
- package/dist/components/ai-agent-plan/ai-agent-plan.d.ts +50 -0
- package/dist/components/ai-agent-plan/ai-agent-plan.d.ts.map +1 -0
- package/dist/components/ai-agent-plan/ai-agent-plan.js +156 -0
- package/dist/components/ai-agent-plan/ai-agent-plan.js.map +1 -0
- package/dist/components/ai-agent-plan/index.d.ts +2 -0
- package/dist/components/ai-agent-plan/index.js +2 -0
- package/dist/components/ai-agent-plan/meta.js +17 -0
- package/dist/components/ai-agent-plan/meta.js.map +1 -0
- package/dist/components/ai-agent-status/ai-agent-status.d.ts +1 -1
- package/dist/components/ai-approval-request/ai-approval-request.d.ts +67 -0
- package/dist/components/ai-approval-request/ai-approval-request.d.ts.map +1 -0
- package/dist/components/ai-approval-request/ai-approval-request.js +218 -0
- package/dist/components/ai-approval-request/ai-approval-request.js.map +1 -0
- package/dist/components/ai-approval-request/index.d.ts +2 -0
- package/dist/components/ai-approval-request/index.js +2 -0
- package/dist/components/ai-approval-request/meta.js +17 -0
- package/dist/components/ai-approval-request/meta.js.map +1 -0
- package/dist/components/ai-response/ai-response.d.ts.map +1 -1
- package/dist/components/ai-response/ai-response.js +1 -0
- package/dist/components/ai-response/ai-response.js.map +1 -1
- package/dist/components/ai-structured-output/ai-structured-output.d.ts.map +1 -1
- package/dist/components/ai-structured-output/ai-structured-output.js +13 -2
- package/dist/components/ai-structured-output/ai-structured-output.js.map +1 -1
- package/dist/components/ai-tool/ai-tool.d.ts +1 -1
- package/dist/components/alert/alert.d.ts +1 -1
- package/dist/components/badge/badge.d.ts +1 -1
- package/dist/components/button/button.d.ts +1 -1
- package/dist/components/file-upload/file-upload.d.ts +46 -0
- package/dist/components/file-upload/file-upload.d.ts.map +1 -0
- package/dist/components/file-upload/file-upload.js +204 -0
- package/dist/components/file-upload/file-upload.js.map +1 -0
- package/dist/components/file-upload/index.d.ts +3 -0
- package/dist/components/file-upload/index.js +3 -0
- package/dist/components/file-upload/meta.js +17 -0
- package/dist/components/file-upload/meta.js.map +1 -0
- package/dist/components/file-upload/upload-queue.d.ts +87 -0
- package/dist/components/file-upload/upload-queue.d.ts.map +1 -0
- package/dist/components/file-upload/upload-queue.js +249 -0
- package/dist/components/file-upload/upload-queue.js.map +1 -0
- package/dist/components/progress/progress.d.ts +1 -1
- package/dist/components/progress/progress.js +1 -0
- package/dist/components/progress/progress.js.map +1 -1
- package/dist/components/spinner/spinner.js +1 -0
- package/dist/components/spinner/spinner.js.map +1 -1
- package/dist/components/tags-input/index.d.ts +2 -0
- package/dist/components/tags-input/index.js +2 -0
- package/dist/components/tags-input/meta.js +17 -0
- package/dist/components/tags-input/meta.js.map +1 -0
- package/dist/components/tags-input/tags-input.d.ts +47 -0
- package/dist/components/tags-input/tags-input.d.ts.map +1 -0
- package/dist/components/tags-input/tags-input.js +182 -0
- package/dist/components/tags-input/tags-input.js.map +1 -0
- package/dist/components/toast/toast.d.ts +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.js +6 -1
- package/dist/registry/components.d.ts.map +1 -1
- package/dist/registry/components.js +58 -50
- package/dist/registry/components.js.map +1 -1
- package/package.json +4 -4
- package/src/components/ai-agent-plan/ai-agent-plan.tsx +0 -0
- package/src/components/ai-agent-plan/index.ts +10 -0
- package/src/components/ai-agent-plan/meta.ts +19 -0
- package/src/components/ai-approval-request/ai-approval-request.tsx +368 -0
- package/src/components/ai-approval-request/index.ts +7 -0
- package/src/components/ai-approval-request/meta.ts +21 -0
- package/src/components/ai-response/ai-response.tsx +1 -0
- package/src/components/ai-structured-output/ai-structured-output.tsx +25 -1
- package/src/components/file-upload/file-upload.tsx +322 -0
- package/src/components/file-upload/index.ts +20 -0
- package/src/components/file-upload/meta.ts +21 -0
- package/src/components/file-upload/upload-queue.ts +337 -0
- package/src/components/progress/progress.tsx +3 -0
- package/src/components/spinner/spinner.tsx +5 -0
- package/src/components/tags-input/index.ts +1 -0
- package/src/components/tags-input/meta.ts +23 -0
- package/src/components/tags-input/tags-input.tsx +300 -0
- package/src/index.ts +4 -0
- package/src/registry/components.ts +8 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { disabledStyles, focusRing } from "../../lib/styles.js";
|
|
3
|
+
import { cn } from "../../lib/utils.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { useId, useRef, useState } from "react";
|
|
6
|
+
//#region src/components/tags-input/tags-input.tsx
|
|
7
|
+
/** Splits pasted or typed text on any delimiter, dropping empty fragments. */
|
|
8
|
+
function splitOn(text, delimiters) {
|
|
9
|
+
if (delimiters.length === 0) return [text];
|
|
10
|
+
const pattern = new RegExp(`[${delimiters.map((d) => `\\${d}`).join("")}]`);
|
|
11
|
+
return text.split(pattern).map((part) => part.trim()).filter((part) => part.length > 0);
|
|
12
|
+
}
|
|
13
|
+
function TagsInput({ className, value, onValueChange, label, delimiters = [",", ";"], validate, allowDuplicates = false, max, placeholder, disabled = false, inputProps, ...props }) {
|
|
14
|
+
const [draft, setDraft] = useState("");
|
|
15
|
+
const [announcement, setAnnouncement] = useState("");
|
|
16
|
+
const inputRef = useRef(null);
|
|
17
|
+
const labelId = useId();
|
|
18
|
+
const inputId = useId();
|
|
19
|
+
const hintId = useId();
|
|
20
|
+
const atLimit = max !== void 0 && value.length >= max;
|
|
21
|
+
function reasonFor(tag) {
|
|
22
|
+
if (!validate) return null;
|
|
23
|
+
const result = validate(tag, value);
|
|
24
|
+
return result === true ? null : result;
|
|
25
|
+
}
|
|
26
|
+
/** Adds tags, reporting anything refused rather than dropping it in silence. */
|
|
27
|
+
function commit(candidates) {
|
|
28
|
+
const accepted = [];
|
|
29
|
+
const refused = [];
|
|
30
|
+
for (const candidate of candidates.flatMap((part) => splitOn(part, delimiters))) {
|
|
31
|
+
const tag = candidate.trim();
|
|
32
|
+
if (tag.length === 0) continue;
|
|
33
|
+
if (!allowDuplicates && [...value, ...accepted].includes(tag)) {
|
|
34
|
+
refused.push(`${tag} is already added`);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (max !== void 0 && value.length + accepted.length >= max) {
|
|
38
|
+
refused.push(`${tag} not added, limit of ${String(max)} reached`);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
accepted.push(tag);
|
|
42
|
+
}
|
|
43
|
+
if (accepted.length > 0) onValueChange([...value, ...accepted]);
|
|
44
|
+
const parts = [];
|
|
45
|
+
if (accepted.length > 0) {
|
|
46
|
+
const invalid = accepted.filter((tag) => reasonFor(tag) !== null);
|
|
47
|
+
parts.push(`Added ${accepted.join(", ")}`);
|
|
48
|
+
if (invalid.length > 0) parts.push(`${String(invalid.length)} need attention`);
|
|
49
|
+
}
|
|
50
|
+
parts.push(...refused);
|
|
51
|
+
setAnnouncement(parts.join(". "));
|
|
52
|
+
}
|
|
53
|
+
function removeAt(index) {
|
|
54
|
+
const removed = value[index];
|
|
55
|
+
onValueChange(value.filter((_, position) => position !== index));
|
|
56
|
+
setAnnouncement(removed === void 0 ? "" : `Removed ${removed}`);
|
|
57
|
+
inputRef.current?.focus();
|
|
58
|
+
}
|
|
59
|
+
function handleKeyDown(event) {
|
|
60
|
+
if (event.key === "Enter") {
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
if (draft.trim().length > 0) {
|
|
63
|
+
commit([draft]);
|
|
64
|
+
setDraft("");
|
|
65
|
+
}
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (delimiters.includes(event.key)) {
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
if (draft.trim().length > 0) {
|
|
71
|
+
commit([draft]);
|
|
72
|
+
setDraft("");
|
|
73
|
+
}
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (event.key === "Backspace" && draft.length === 0 && value.length > 0) {
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
removeAt(value.length - 1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function handlePaste(event) {
|
|
82
|
+
const parts = splitOn(event.clipboardData.getData("text"), delimiters);
|
|
83
|
+
if (parts.length <= 1) return;
|
|
84
|
+
event.preventDefault();
|
|
85
|
+
commit(parts);
|
|
86
|
+
setDraft("");
|
|
87
|
+
}
|
|
88
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
89
|
+
"data-slot": "tags-input",
|
|
90
|
+
className: cn("flex flex-col gap-1.5", className),
|
|
91
|
+
...props,
|
|
92
|
+
children: [
|
|
93
|
+
/* @__PURE__ */ jsx("label", {
|
|
94
|
+
id: labelId,
|
|
95
|
+
htmlFor: inputId,
|
|
96
|
+
className: "w-fit text-sm font-medium",
|
|
97
|
+
children: label
|
|
98
|
+
}),
|
|
99
|
+
/* @__PURE__ */ jsxs("div", {
|
|
100
|
+
role: "group",
|
|
101
|
+
"aria-labelledby": labelId,
|
|
102
|
+
"data-disabled": disabled || void 0,
|
|
103
|
+
className: cn("flex min-h-10 w-full flex-wrap items-center gap-1.5 rounded-md border border-input bg-background px-2 py-1.5", "focus-within:ring-2 focus-within:ring-ring/55", disabled && "pointer-events-none opacity-55"),
|
|
104
|
+
children: [value.length > 0 ? /* @__PURE__ */ jsx("ul", {
|
|
105
|
+
className: "contents",
|
|
106
|
+
children: value.map((tag, index) => {
|
|
107
|
+
const reason = reasonFor(tag);
|
|
108
|
+
return /* @__PURE__ */ jsxs("li", {
|
|
109
|
+
"data-slot": "tags-input-tag",
|
|
110
|
+
"data-invalid": reason !== null || void 0,
|
|
111
|
+
className: cn("inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium", reason === null ? "border-transparent bg-secondary text-secondary-foreground" : "border-destructive/40 bg-destructive/10 text-destructive"),
|
|
112
|
+
children: [
|
|
113
|
+
tag,
|
|
114
|
+
reason === null ? null : /* @__PURE__ */ jsxs("span", {
|
|
115
|
+
className: "sr-only",
|
|
116
|
+
children: [", invalid: ", reason]
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ jsx("button", {
|
|
119
|
+
type: "button",
|
|
120
|
+
"data-slot": "tags-input-remove",
|
|
121
|
+
disabled,
|
|
122
|
+
"aria-label": `Remove ${tag}`,
|
|
123
|
+
onClick: () => {
|
|
124
|
+
removeAt(index);
|
|
125
|
+
},
|
|
126
|
+
className: cn("-mr-0.5 grid size-4 place-items-center rounded-full", "transition-colors hover:bg-foreground/10", focusRing, disabledStyles),
|
|
127
|
+
children: /* @__PURE__ */ jsx("svg", {
|
|
128
|
+
viewBox: "0 0 24 24",
|
|
129
|
+
"aria-hidden": "true",
|
|
130
|
+
className: "size-2.5",
|
|
131
|
+
children: /* @__PURE__ */ jsx("path", {
|
|
132
|
+
d: "M6 6l12 12M18 6L6 18",
|
|
133
|
+
stroke: "currentColor",
|
|
134
|
+
strokeWidth: "3",
|
|
135
|
+
strokeLinecap: "round"
|
|
136
|
+
})
|
|
137
|
+
})
|
|
138
|
+
})
|
|
139
|
+
]
|
|
140
|
+
}, `${tag}-${String(index)}`);
|
|
141
|
+
})
|
|
142
|
+
}) : null, /* @__PURE__ */ jsx("input", {
|
|
143
|
+
ref: inputRef,
|
|
144
|
+
type: "text",
|
|
145
|
+
id: inputId,
|
|
146
|
+
"data-slot": "tags-input-field",
|
|
147
|
+
value: draft,
|
|
148
|
+
disabled,
|
|
149
|
+
placeholder: value.length === 0 ? placeholder : void 0,
|
|
150
|
+
"aria-describedby": hintId,
|
|
151
|
+
onChange: (event) => {
|
|
152
|
+
setDraft(event.target.value);
|
|
153
|
+
},
|
|
154
|
+
onKeyDown: handleKeyDown,
|
|
155
|
+
onPaste: handlePaste,
|
|
156
|
+
onBlur: () => {
|
|
157
|
+
if (draft.trim().length > 0) {
|
|
158
|
+
commit([draft]);
|
|
159
|
+
setDraft("");
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
className: cn("min-w-24 flex-1 self-stretch bg-transparent text-sm outline-none", "placeholder:text-muted-foreground"),
|
|
163
|
+
...inputProps
|
|
164
|
+
})]
|
|
165
|
+
}),
|
|
166
|
+
/* @__PURE__ */ jsx("span", {
|
|
167
|
+
id: hintId,
|
|
168
|
+
className: "text-xs text-muted-foreground",
|
|
169
|
+
children: atLimit ? `Limit of ${String(max ?? 0)} reached` : `Press Enter${delimiters.length > 0 ? ` or ${delimiters.join(" ")}` : ""} to add`
|
|
170
|
+
}),
|
|
171
|
+
/* @__PURE__ */ jsx("span", {
|
|
172
|
+
"aria-live": "polite",
|
|
173
|
+
className: "sr-only",
|
|
174
|
+
children: announcement
|
|
175
|
+
})
|
|
176
|
+
]
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
//#endregion
|
|
180
|
+
export { TagsInput };
|
|
181
|
+
|
|
182
|
+
//# sourceMappingURL=tags-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags-input.js","names":[],"sources":["../../../src/components/tags-input/tags-input.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n useId,\n useRef,\n useState,\n type ClipboardEvent,\n type ComponentPropsWithRef,\n type KeyboardEvent,\n} from \"react\";\n\nimport { disabledStyles, focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * A field whose value is a list of short strings: invited emails, allowed\n * domains, labels, stop sequences.\n *\n * The behaviour that makes this worth shipping is what happens to input that\n * fails validation. Every implementation surveyed either refuses to create the\n * token, or creates it and silently throws it away — and both leave the reader\n * staring at a field that did not do what they asked, with nothing to correct.\n * Here an invalid entry becomes a token like any other, marked invalid and\n * carrying its reason, so it can be seen, read out, and fixed by removing it.\n * `value` holds every token including the invalid ones; the consumer runs the\n * same `validate` to decide whether the field is submittable.\n *\n * Deliberately no suggestion list. A token field with an anchored listbox is a\n * multi-select combobox, and this library already has 544 lines of hand-rolled\n * combobox ARIA. A second copy of that would be the expensive kind of\n * duplication — the kind that drifts. When multi-select is wanted, it belongs in\n * Combobox.\n */\n\n/** Returns `true` for a valid tag, or a reason it is not. */\nexport type TagValidator = (tag: string, existing: string[]) => true | string;\n\nexport interface TagsInputProps extends Omit<\n ComponentPropsWithRef<\"div\">,\n \"onChange\" | \"children\"\n> {\n value: string[];\n onValueChange: (tags: string[]) => void;\n /** Names the field. Required — an unlabelled list of tokens is unreadable. */\n label: string;\n /** Characters that commit the token being typed, besides Enter. */\n delimiters?: string[];\n /**\n * Decides whether a tag is acceptable. An invalid tag is still added, marked,\n * and given its reason, rather than being refused or dropped.\n */\n validate?: TagValidator;\n /** Rejects a tag already present. Rejections are announced, never silent. */\n allowDuplicates?: boolean;\n /** Refuses further tags once reached, and says so. */\n max?: number;\n placeholder?: string;\n disabled?: boolean;\n inputProps?: Omit<ComponentPropsWithRef<\"input\">, \"value\" | \"onChange\" | \"disabled\">;\n}\n\n/** Splits pasted or typed text on any delimiter, dropping empty fragments. */\nfunction splitOn(text: string, delimiters: string[]): string[] {\n if (delimiters.length === 0) return [text];\n const pattern = new RegExp(`[${delimiters.map((d) => `\\\\${d}`).join(\"\")}]`);\n return text\n .split(pattern)\n .map((part) => part.trim())\n .filter((part) => part.length > 0);\n}\n\nexport function TagsInput({\n className,\n value,\n onValueChange,\n label,\n delimiters = [\",\", \";\"],\n validate,\n allowDuplicates = false,\n max,\n placeholder,\n disabled = false,\n inputProps,\n ...props\n}: TagsInputProps) {\n const [draft, setDraft] = useState(\"\");\n const [announcement, setAnnouncement] = useState(\"\");\n const inputRef = useRef<HTMLInputElement | null>(null);\n const labelId = useId();\n const inputId = useId();\n const hintId = useId();\n\n const atLimit = max !== undefined && value.length >= max;\n\n function reasonFor(tag: string): string | null {\n if (!validate) return null;\n const result = validate(tag, value);\n return result === true ? null : result;\n }\n\n /** Adds tags, reporting anything refused rather than dropping it in silence. */\n function commit(candidates: string[]) {\n const accepted: string[] = [];\n const refused: string[] = [];\n\n // Split defensively rather than trusting the caller. A draft can arrive\n // holding a delimiter from autofill, an IME commit, or a programmatic set,\n // and a token with a comma inside it is never what was meant.\n for (const candidate of candidates.flatMap((part) => splitOn(part, delimiters))) {\n const tag = candidate.trim();\n if (tag.length === 0) continue;\n\n if (!allowDuplicates && [...value, ...accepted].includes(tag)) {\n refused.push(`${tag} is already added`);\n continue;\n }\n if (max !== undefined && value.length + accepted.length >= max) {\n refused.push(`${tag} not added, limit of ${String(max)} reached`);\n continue;\n }\n // An invalid tag is still added. It is the reader's text and they need to\n // see it to fix it; refusing silently is how these fields lose input.\n accepted.push(tag);\n }\n\n if (accepted.length > 0) onValueChange([...value, ...accepted]);\n\n const parts: string[] = [];\n if (accepted.length > 0) {\n const invalid = accepted.filter((tag) => reasonFor(tag) !== null);\n parts.push(`Added ${accepted.join(\", \")}`);\n if (invalid.length > 0) parts.push(`${String(invalid.length)} need attention`);\n }\n parts.push(...refused);\n setAnnouncement(parts.join(\". \"));\n }\n\n function removeAt(index: number) {\n const removed = value[index];\n onValueChange(value.filter((_, position) => position !== index));\n setAnnouncement(removed === undefined ? \"\" : `Removed ${removed}`);\n inputRef.current?.focus();\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLInputElement>) {\n if (event.key === \"Enter\") {\n // Never let a token commit submit the form as well.\n event.preventDefault();\n if (draft.trim().length > 0) {\n commit([draft]);\n setDraft(\"\");\n }\n return;\n }\n\n if (delimiters.includes(event.key)) {\n event.preventDefault();\n if (draft.trim().length > 0) {\n commit([draft]);\n setDraft(\"\");\n }\n return;\n }\n\n // Backspace on an empty field removes the last token — the expected\n // shortcut, and the only way to correct without reaching for the mouse.\n if (event.key === \"Backspace\" && draft.length === 0 && value.length > 0) {\n event.preventDefault();\n removeAt(value.length - 1);\n }\n }\n\n function handlePaste(event: ClipboardEvent<HTMLInputElement>) {\n const text = event.clipboardData.getData(\"text\");\n const parts = splitOn(text, delimiters);\n // Only intercept a paste that actually contains several tags; a single\n // value should behave like an ordinary paste and stay editable.\n if (parts.length <= 1) return;\n\n event.preventDefault();\n commit(parts);\n setDraft(\"\");\n }\n\n return (\n <div data-slot=\"tags-input\" className={cn(\"flex flex-col gap-1.5\", className)} {...props}>\n <label id={labelId} htmlFor={inputId} className=\"w-fit text-sm font-medium\">\n {label}\n </label>\n\n {/* A group rather than a listbox: these are committed values, not options\n being chosen from, and calling it a listbox would promise navigation\n semantics that do not exist here. */}\n <div\n role=\"group\"\n aria-labelledby={labelId}\n data-disabled={disabled || undefined}\n className={cn(\n \"flex min-h-10 w-full flex-wrap items-center gap-1.5 rounded-md border border-input bg-background px-2 py-1.5\",\n \"focus-within:ring-2 focus-within:ring-ring/55\",\n disabled && \"pointer-events-none opacity-55\",\n )}\n >\n {value.length > 0 ? (\n <ul className=\"contents\">\n {value.map((tag, index) => {\n const reason = reasonFor(tag);\n return (\n <li\n key={`${tag}-${String(index)}`}\n data-slot=\"tags-input-tag\"\n data-invalid={reason !== null || undefined}\n className={cn(\n \"inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium\",\n reason === null\n ? \"border-transparent bg-secondary text-secondary-foreground\"\n : \"border-destructive/40 bg-destructive/10 text-destructive\",\n )}\n >\n {tag}\n {/* The reason travels with the token, so it is announced when\n the token is, rather than as a detached error elsewhere. */}\n {reason === null ? null : (\n <span className=\"sr-only\">, invalid: {reason}</span>\n )}\n <button\n type=\"button\"\n data-slot=\"tags-input-remove\"\n disabled={disabled}\n aria-label={`Remove ${tag}`}\n onClick={() => {\n removeAt(index);\n }}\n className={cn(\n \"-mr-0.5 grid size-4 place-items-center rounded-full\",\n \"transition-colors hover:bg-foreground/10\",\n focusRing,\n disabledStyles,\n )}\n >\n <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" className=\"size-2.5\">\n <path\n d=\"M6 6l12 12M18 6L6 18\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </li>\n );\n })}\n </ul>\n ) : null}\n\n <input\n ref={inputRef}\n type=\"text\"\n id={inputId}\n data-slot=\"tags-input-field\"\n value={draft}\n disabled={disabled}\n placeholder={value.length === 0 ? placeholder : undefined}\n aria-describedby={hintId}\n onChange={(event) => {\n setDraft(event.target.value);\n }}\n onKeyDown={handleKeyDown}\n onPaste={handlePaste}\n onBlur={() => {\n // Committing on blur stops a typed-but-uncommitted value being lost\n // when the reader tabs away thinking they are done.\n if (draft.trim().length > 0) {\n commit([draft]);\n setDraft(\"\");\n }\n }}\n className={cn(\n \"min-w-24 flex-1 self-stretch bg-transparent text-sm outline-none\",\n \"placeholder:text-muted-foreground\",\n )}\n {...inputProps}\n />\n </div>\n\n <span id={hintId} className=\"text-xs text-muted-foreground\">\n {atLimit\n ? `Limit of ${String(max ?? 0)} reached`\n : `Press Enter${delimiters.length > 0 ? ` or ${delimiters.join(\" \")}` : \"\"} to add`}\n </span>\n\n {/* Additions, removals and refusals all land here. A refusal that is only\n visible as \"nothing happened\" is the failure this component exists to\n avoid. */}\n <span aria-live=\"polite\" className=\"sr-only\">\n {announcement}\n </span>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { ComponentPropsWithRef } from "react";
|
|
|
12
12
|
* toast list from anywhere on the page.
|
|
13
13
|
*/
|
|
14
14
|
declare const toastVariants: (props?: ({
|
|
15
|
-
variant?: "
|
|
15
|
+
variant?: "default" | "destructive" | "success" | "warning" | "info" | null | undefined;
|
|
16
16
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
17
17
|
declare const ToastProvider: import("react").FC<Toast.ToastProviderProps>;
|
|
18
18
|
interface ToastProps extends ComponentPropsWithRef<typeof Toast.Root>, VariantProps<typeof toastVariants> {}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,8 +4,12 @@ import { ActivityContent, ActivityDescription, ActivityFeed, ActivityIndicator,
|
|
|
4
4
|
import "./components/activity-feed/index.js";
|
|
5
5
|
import { ActionLedger, ActionLedgerEntry, ActionLedgerEntryProps, ActionLedgerList, ActionLedgerPayload, ActionLedgerProps, ActionLedgerSelectionSummary, ActionLedgerToolbar, ActionStatus, LedgerAction, Reversibility, ledgerEntryVariants } from "./components/ai-action-ledger/ai-action-ledger.js";
|
|
6
6
|
import "./components/ai-action-ledger/index.js";
|
|
7
|
+
import { AgentPlan, AgentPlanProps, AgentPlanStep, AgentPlanStepProps, AgentPlanSteps, AgentPlanSummary, PlanStep, StepStatus } from "./components/ai-agent-plan/ai-agent-plan.js";
|
|
8
|
+
import "./components/ai-agent-plan/index.js";
|
|
7
9
|
import { AgentState, AgentStatus, AgentStatusProps, agentStatusVariants } from "./components/ai-agent-status/ai-agent-status.js";
|
|
8
10
|
import "./components/ai-agent-status/index.js";
|
|
11
|
+
import { ApprovalDecision, ApprovalField, ApprovalRequest, ApprovalRequestProps, ApprovalScope } from "./components/ai-approval-request/ai-approval-request.js";
|
|
12
|
+
import "./components/ai-approval-request/index.js";
|
|
9
13
|
import { Conversation, ConversationMessages, ConversationProps, ConversationScrollButton, ConversationScrollButtonProps, ConversationStatus, ConversationStatusProps } from "./components/ai-conversation/ai-conversation.js";
|
|
10
14
|
import "./components/ai-conversation/index.js";
|
|
11
15
|
import { InlineCompletion, InlineCompletionProps } from "./components/ai-inline-completion/ai-inline-completion.js";
|
|
@@ -62,6 +66,9 @@ import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMe
|
|
|
62
66
|
import "./components/dropdown-menu/index.js";
|
|
63
67
|
import { EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateProps, EmptyStateTitle, emptyStateVariants } from "./components/empty-state/empty-state.js";
|
|
64
68
|
import "./components/empty-state/index.js";
|
|
69
|
+
import { QueuedFile, UploadContext, UploadFn, UploadQueueOptions, UploadStatus, formatBytes, matchesAccept, useUploadQueue, xhrUpload } from "./components/file-upload/upload-queue.js";
|
|
70
|
+
import { FileUpload, FileUploadItem, FileUploadItemProps, FileUploadList, FileUploadListProps, FileUploadProps, FileUploadStatus } from "./components/file-upload/file-upload.js";
|
|
71
|
+
import "./components/file-upload/index.js";
|
|
65
72
|
import { Form, FormControl, FormControlProps, FormDescription, FormField, FormFieldProps, FormLabel, FormLabelProps, FormMessage, FormMessageProps, FormProps } from "./components/form/form.js";
|
|
66
73
|
import "./components/form/index.js";
|
|
67
74
|
import { Input, InputProps, inputVariants } from "./components/input/input.js";
|
|
@@ -98,6 +105,8 @@ import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, Tabl
|
|
|
98
105
|
import "./components/table/index.js";
|
|
99
106
|
import { Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsTrigger, TabsTriggerProps, tabsListVariants, tabsTriggerVariants } from "./components/tabs/tabs.js";
|
|
100
107
|
import "./components/tabs/index.js";
|
|
108
|
+
import { TagValidator, TagsInput, TagsInputProps } from "./components/tags-input/tags-input.js";
|
|
109
|
+
import "./components/tags-input/index.js";
|
|
101
110
|
import { Toast, ToastAction, ToastClose, ToastDescription, ToastPosition, ToastProps, ToastProvider, ToastTitle, Toaster, ToasterProps, toastVariants } from "./components/toast/toast.js";
|
|
102
111
|
import { DEFAULT_TOAST_DURATION, TOAST_LIMIT, ToastAction as ToastAction$1, ToastOptions, ToastPromiseMessages, ToastRecord, ToastVariant, toast, useToasts } from "./components/toast/toast-store.js";
|
|
103
112
|
import "./components/toast/index.js";
|
|
@@ -106,4 +115,4 @@ import "./components/tooltip/index.js";
|
|
|
106
115
|
import { cn } from "./lib/utils.js";
|
|
107
116
|
import { disabledStyles, focusRing, focusRingInset, iconSlot, invalidStyles } from "./lib/styles.js";
|
|
108
117
|
import { COMPONENT_CATEGORIES, COMPONENT_STATUSES, ComponentCategory, ComponentMeta, ComponentStatus, defineMeta } from "./registry/schema.js";
|
|
109
|
-
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, AccordionTrigger, type AccordionTriggerProps, ActionLedger, ActionLedgerEntry, type ActionLedgerEntryProps, ActionLedgerList, ActionLedgerPayload, type ActionLedgerProps, ActionLedgerSelectionSummary, ActionLedgerToolbar, type ActionStatus, ActivityContent, ActivityDescription, ActivityFeed, ActivityIndicator, type ActivityIndicatorProps, ActivityItem, type ActivityItemProps, ActivityTime, type ActivityTimeProps, ActivityTitle, type AgentState, AgentStatus, type AgentStatusProps, Alert, AlertDescription, type AlertLive, type AlertProps, AlertTitle, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Button, type ButtonProps, COMPONENT_CATEGORIES, COMPONENT_STATUSES, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CardTitleProps, Checkbox, type CheckboxProps, CodeBlock, type CodeBlockProps, Combobox, ComboboxContent, type ComboboxContentProps, ComboboxEmpty, ComboboxInput, type ComboboxInputProps, ComboboxItem, type ComboboxItemProps, ComboboxList, type ComboboxProps, ComboboxTrigger, type ComboboxTriggerProps, Command, CommandDialog, type CommandDialogProps, CommandEmpty, CommandGroup, type CommandGroupProps, CommandInput, type CommandInputProps, CommandItem, type CommandItemProps, CommandList, type CommandProps, CommandSeparator, CommandShortcut, ComponentCategory, ComponentMeta, ComponentStatus, Conversation, ConversationMessages, type ConversationProps, ConversationScrollButton, type ConversationScrollButtonProps, ConversationStatus, type ConversationStatusProps, CopyButton, type CopyButtonProps, DEFAULT_TOAST_DURATION, DataTable, DataTableColumnHeader, type DataTableColumnHeaderProps, DataTablePagination, type DataTablePaginationProps, type DataTableProps, DataTableViewOptions, type DataTableViewOptionsProps, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, Dialog, DialogClose, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, DialogHeader, DialogOverlay, type DialogOverlayProps, DialogPortal, DialogTitle, type DialogTitleProps, DialogTrigger, Drawer, DrawerBody, DrawerCancel, DrawerClose, DrawerContent, type DrawerContentProps, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, type DrawerProps, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, type DropdownMenuSubTriggerProps, DropdownMenuTrigger, EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, type EmptyStateProps, EmptyStateTitle, type FieldChange, type FieldState, Form, FormControl, type FormControlProps, FormDescription, FormField, type FormFieldProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, type FormProps, type HideableTable, InlineCitation, type InlineCitationProps, InlineCompletion, type InlineCompletionProps, Input, type InputProps, Label, type LabelProps, type LedgerAction, Message, MessageActions, MessageAvatar, type MessageAvatarProps, MessageBody, type MessageBodyProps, MessageFooter, type MessageProps, type MessageRole, Meter, MeterLegend, type MeterProps, type MeterSegment, type MeterTone, MeterValue, MetricDelta, type MetricDeltaProps, type MetricPolarity, type ModelOption, ModelSelector, type ModelSelectorProps, type OutputField, type PaginatedTable, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, type PopoverContentProps, PopoverTrigger, Progress, type ProgressProps, PromptInput, PromptInputCounter, type PromptInputCounterProps, type PromptInputProps, PromptInputSubmit, type PromptInputSubmitProps, PromptInputTextarea, type PromptInputTextareaProps, PromptInputToolbar, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, Reasoning, ReasoningContent, type ReasoningProps, ReasoningTrigger, type ReasoningTriggerProps, RecordDiff, type RecordDiffProps, RecordDiffSummary, RecordDiffTable, type RecordDiffTableProps, type RecordField, Response, ResponseCaret, type ResponseProps, type Reversibility, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, type SelectItemProps, SelectLabel, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, type SeparatorProps, Sheet, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, type SliderProps, type SortableColumn, Source, type SourceProps, Sources, SourcesContent, type SourcesProps, SourcesTrigger, type SourcesTriggerProps, Spinner, type SpinnerProps, StructuredConfidence, StructuredField, StructuredFieldError, type StructuredFieldProps, StructuredOutput, type StructuredOutputProps, Switch, type SwitchProps, TOAST_LIMIT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, TabsTrigger, type TabsTriggerProps, ThinkingIndicator, type ThinkingIndicatorProps, Toast, ToastAction, type ToastAction$1 as ToastActionOptions, ToastClose, ToastDescription, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastProps, ToastProvider, type ToastRecord, ToastTitle, type ToastVariant, Toaster, type ToasterProps, TokenCount, type TokenCountProps, TokenUsage, type TokenUsageProps, Tool, ToolContent, ToolHeader, type ToolHeaderProps, ToolPayload, type ToolPayloadProps, type ToolProps, ToolSection, type ToolSectionProps, type ToolStatus, Tooltip, TooltipContent, type TooltipContentProps, type TooltipProps, TooltipProvider, TooltipTrigger, agentStatusVariants, alertVariants, avatarVariants, badgeVariants, buttonVariants, cn, defaultComboboxFilter, defaultCommandFilter, defineMeta, deltaVariants, diffRecords, disabledStyles, emptyStateVariants, focusRing, focusRingInset, iconSlot, inputVariants, invalidStyles, ledgerEntryVariants, messageBodyVariants, messageVariants, progressVariants, selectTriggerVariants, sheetVariants, spinnerVariants, tabsListVariants, tabsTriggerVariants, toast, toastVariants, toolVariants, useToasts };
|
|
118
|
+
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, AccordionTrigger, type AccordionTriggerProps, ActionLedger, ActionLedgerEntry, type ActionLedgerEntryProps, ActionLedgerList, ActionLedgerPayload, type ActionLedgerProps, ActionLedgerSelectionSummary, ActionLedgerToolbar, type ActionStatus, ActivityContent, ActivityDescription, ActivityFeed, ActivityIndicator, type ActivityIndicatorProps, ActivityItem, type ActivityItemProps, ActivityTime, type ActivityTimeProps, ActivityTitle, AgentPlan, type AgentPlanProps, AgentPlanStep, type AgentPlanStepProps, AgentPlanSteps, AgentPlanSummary, type AgentState, AgentStatus, type AgentStatusProps, Alert, AlertDescription, type AlertLive, type AlertProps, AlertTitle, type ApprovalDecision, type ApprovalField, ApprovalRequest, type ApprovalRequestProps, type ApprovalScope, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, Badge, type BadgeProps, Button, type ButtonProps, COMPONENT_CATEGORIES, COMPONENT_STATUSES, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type CardTitleProps, Checkbox, type CheckboxProps, CodeBlock, type CodeBlockProps, Combobox, ComboboxContent, type ComboboxContentProps, ComboboxEmpty, ComboboxInput, type ComboboxInputProps, ComboboxItem, type ComboboxItemProps, ComboboxList, type ComboboxProps, ComboboxTrigger, type ComboboxTriggerProps, Command, CommandDialog, type CommandDialogProps, CommandEmpty, CommandGroup, type CommandGroupProps, CommandInput, type CommandInputProps, CommandItem, type CommandItemProps, CommandList, type CommandProps, CommandSeparator, CommandShortcut, ComponentCategory, ComponentMeta, ComponentStatus, Conversation, ConversationMessages, type ConversationProps, ConversationScrollButton, type ConversationScrollButtonProps, ConversationStatus, type ConversationStatusProps, CopyButton, type CopyButtonProps, DEFAULT_TOAST_DURATION, DataTable, DataTableColumnHeader, type DataTableColumnHeaderProps, DataTablePagination, type DataTablePaginationProps, type DataTableProps, DataTableViewOptions, type DataTableViewOptionsProps, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, Dialog, DialogClose, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, DialogHeader, DialogOverlay, type DialogOverlayProps, DialogPortal, DialogTitle, type DialogTitleProps, DialogTrigger, Drawer, DrawerBody, DrawerCancel, DrawerClose, DrawerContent, type DrawerContentProps, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, type DrawerProps, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, type DropdownMenuSubTriggerProps, DropdownMenuTrigger, EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, type EmptyStateProps, EmptyStateTitle, type FieldChange, type FieldState, FileUpload, FileUploadItem, type FileUploadItemProps, FileUploadList, type FileUploadListProps, type FileUploadProps, FileUploadStatus, Form, FormControl, type FormControlProps, FormDescription, FormField, type FormFieldProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, type FormProps, type HideableTable, InlineCitation, type InlineCitationProps, InlineCompletion, type InlineCompletionProps, Input, type InputProps, Label, type LabelProps, type LedgerAction, Message, MessageActions, MessageAvatar, type MessageAvatarProps, MessageBody, type MessageBodyProps, MessageFooter, type MessageProps, type MessageRole, Meter, MeterLegend, type MeterProps, type MeterSegment, type MeterTone, MeterValue, MetricDelta, type MetricDeltaProps, type MetricPolarity, type ModelOption, ModelSelector, type ModelSelectorProps, type OutputField, type PaginatedTable, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, type PlanStep, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, type PopoverContentProps, PopoverTrigger, Progress, type ProgressProps, PromptInput, PromptInputCounter, type PromptInputCounterProps, type PromptInputProps, PromptInputSubmit, type PromptInputSubmitProps, PromptInputTextarea, type PromptInputTextareaProps, PromptInputToolbar, type QueuedFile, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, Reasoning, ReasoningContent, type ReasoningProps, ReasoningTrigger, type ReasoningTriggerProps, RecordDiff, type RecordDiffProps, RecordDiffSummary, RecordDiffTable, type RecordDiffTableProps, type RecordField, Response, ResponseCaret, type ResponseProps, type Reversibility, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, type SelectItemProps, SelectLabel, SelectSeparator, SelectTrigger, type SelectTriggerProps, SelectValue, Separator, type SeparatorProps, Sheet, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, type SliderProps, type SortableColumn, Source, type SourceProps, Sources, SourcesContent, type SourcesProps, SourcesTrigger, type SourcesTriggerProps, Spinner, type SpinnerProps, type StepStatus, StructuredConfidence, StructuredField, StructuredFieldError, type StructuredFieldProps, StructuredOutput, type StructuredOutputProps, Switch, type SwitchProps, TOAST_LIMIT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, TabsTrigger, type TabsTriggerProps, type TagValidator, TagsInput, type TagsInputProps, ThinkingIndicator, type ThinkingIndicatorProps, Toast, ToastAction, type ToastAction$1 as ToastActionOptions, ToastClose, ToastDescription, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastProps, ToastProvider, type ToastRecord, ToastTitle, type ToastVariant, Toaster, type ToasterProps, TokenCount, type TokenCountProps, TokenUsage, type TokenUsageProps, Tool, ToolContent, ToolHeader, type ToolHeaderProps, ToolPayload, type ToolPayloadProps, type ToolProps, ToolSection, type ToolSectionProps, type ToolStatus, Tooltip, TooltipContent, type TooltipContentProps, type TooltipProps, TooltipProvider, TooltipTrigger, type UploadContext, type UploadFn, type UploadQueueOptions, type UploadStatus, agentStatusVariants, alertVariants, avatarVariants, badgeVariants, buttonVariants, cn, defaultComboboxFilter, defaultCommandFilter, defineMeta, deltaVariants, diffRecords, disabledStyles, emptyStateVariants, focusRing, focusRingInset, formatBytes, iconSlot, inputVariants, invalidStyles, ledgerEntryVariants, matchesAccept, messageBodyVariants, messageVariants, progressVariants, selectTriggerVariants, sheetVariants, spinnerVariants, tabsListVariants, tabsTriggerVariants, toast, toastVariants, toolVariants, useToasts, useUploadQueue, xhrUpload };
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,9 @@ import { ActivityContent, ActivityDescription, ActivityFeed, ActivityIndicator,
|
|
|
5
5
|
import { ActionLedger, ActionLedgerEntry, ActionLedgerList, ActionLedgerPayload, ActionLedgerSelectionSummary, ActionLedgerToolbar, ledgerEntryVariants } from "./components/ai-action-ledger/ai-action-ledger.js";
|
|
6
6
|
import { InlineCompletion } from "./components/ai-inline-completion/ai-inline-completion.js";
|
|
7
7
|
import { StructuredConfidence, StructuredField, StructuredFieldError, StructuredOutput } from "./components/ai-structured-output/ai-structured-output.js";
|
|
8
|
+
import { AgentPlan, AgentPlanStep, AgentPlanSteps, AgentPlanSummary } from "./components/ai-agent-plan/ai-agent-plan.js";
|
|
8
9
|
import { AgentStatus, agentStatusVariants } from "./components/ai-agent-status/ai-agent-status.js";
|
|
10
|
+
import { ApprovalRequest } from "./components/ai-approval-request/ai-approval-request.js";
|
|
9
11
|
import { Conversation, ConversationMessages, ConversationScrollButton, ConversationStatus } from "./components/ai-conversation/ai-conversation.js";
|
|
10
12
|
import { Message, MessageActions, MessageAvatar, MessageBody, MessageFooter, messageBodyVariants, messageVariants } from "./components/ai-message/ai-message.js";
|
|
11
13
|
import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, selectTriggerVariants } from "./components/select/select.js";
|
|
@@ -35,6 +37,8 @@ import { Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, Pop
|
|
|
35
37
|
import { DatePicker, DateRangePicker } from "./components/date-picker/date-picker.js";
|
|
36
38
|
import { Drawer, DrawerBody, DrawerCancel, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from "./components/drawer/drawer.js";
|
|
37
39
|
import { EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, emptyStateVariants } from "./components/empty-state/empty-state.js";
|
|
40
|
+
import { formatBytes, matchesAccept, useUploadQueue, xhrUpload } from "./components/file-upload/upload-queue.js";
|
|
41
|
+
import { FileUpload, FileUploadItem, FileUploadList, FileUploadStatus } from "./components/file-upload/file-upload.js";
|
|
38
42
|
import { Form, FormControl, FormDescription, FormField, FormLabel, FormMessage } from "./components/form/form.js";
|
|
39
43
|
import { Input, inputVariants } from "./components/input/input.js";
|
|
40
44
|
import { Label } from "./components/label/label.js";
|
|
@@ -50,8 +54,9 @@ import { Skeleton } from "./components/skeleton/skeleton.js";
|
|
|
50
54
|
import { Slider } from "./components/slider/slider.js";
|
|
51
55
|
import { Switch } from "./components/switch/switch.js";
|
|
52
56
|
import { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants } from "./components/tabs/tabs.js";
|
|
57
|
+
import { TagsInput } from "./components/tags-input/tags-input.js";
|
|
53
58
|
import { DEFAULT_TOAST_DURATION, TOAST_LIMIT, toast, useToasts } from "./components/toast/toast-store.js";
|
|
54
59
|
import { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, Toaster, toastVariants } from "./components/toast/toast.js";
|
|
55
60
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./components/tooltip/tooltip.js";
|
|
56
61
|
import { COMPONENT_CATEGORIES, COMPONENT_STATUSES, defineMeta } from "./registry/schema.js";
|
|
57
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionLedger, ActionLedgerEntry, ActionLedgerList, ActionLedgerPayload, ActionLedgerSelectionSummary, ActionLedgerToolbar, ActivityContent, ActivityDescription, ActivityFeed, ActivityIndicator, ActivityItem, ActivityTime, ActivityTitle, AgentStatus, Alert, AlertDescription, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Button, COMPONENT_CATEGORIES, COMPONENT_STATUSES, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Conversation, ConversationMessages, ConversationScrollButton, ConversationStatus, CopyButton, DEFAULT_TOAST_DURATION, DataTable, DataTableColumnHeader, DataTablePagination, DataTableViewOptions, DatePicker, DateRangePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerCancel, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, Form, FormControl, FormDescription, FormField, FormLabel, FormMessage, InlineCitation, InlineCompletion, Input, Label, Message, MessageActions, MessageAvatar, MessageBody, MessageFooter, Meter, MeterLegend, MeterValue, MetricDelta, ModelSelector, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverTrigger, Progress, PromptInput, PromptInputCounter, PromptInputSubmit, PromptInputTextarea, PromptInputToolbar, RadioGroup, RadioGroupItem, Reasoning, ReasoningContent, ReasoningTrigger, RecordDiff, RecordDiffSummary, RecordDiffTable, Response, ResponseCaret, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Source, Sources, SourcesContent, SourcesTrigger, Spinner, StructuredConfidence, StructuredField, StructuredFieldError, StructuredOutput, Switch, TOAST_LIMIT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, ThinkingIndicator, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, Toaster, TokenCount, TokenUsage, Tool, ToolContent, ToolHeader, ToolPayload, ToolSection, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, agentStatusVariants, alertVariants, avatarVariants, badgeVariants, buttonVariants, cn, defaultComboboxFilter, defaultCommandFilter, defineMeta, deltaVariants, diffRecords, disabledStyles, emptyStateVariants, focusRing, focusRingInset, iconSlot, inputVariants, invalidStyles, ledgerEntryVariants, messageBodyVariants, messageVariants, progressVariants, selectTriggerVariants, sheetVariants, spinnerVariants, tabsListVariants, tabsTriggerVariants, toast, toastVariants, toolVariants, useToasts };
|
|
62
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionLedger, ActionLedgerEntry, ActionLedgerList, ActionLedgerPayload, ActionLedgerSelectionSummary, ActionLedgerToolbar, ActivityContent, ActivityDescription, ActivityFeed, ActivityIndicator, ActivityItem, ActivityTime, ActivityTitle, AgentPlan, AgentPlanStep, AgentPlanSteps, AgentPlanSummary, AgentStatus, Alert, AlertDescription, AlertTitle, ApprovalRequest, Avatar, AvatarFallback, AvatarImage, Badge, Button, COMPONENT_CATEGORIES, COMPONENT_STATUSES, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Conversation, ConversationMessages, ConversationScrollButton, ConversationStatus, CopyButton, DEFAULT_TOAST_DURATION, DataTable, DataTableColumnHeader, DataTablePagination, DataTableViewOptions, DatePicker, DateRangePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerBody, DrawerCancel, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, FileUpload, FileUploadItem, FileUploadList, FileUploadStatus, Form, FormControl, FormDescription, FormField, FormLabel, FormMessage, InlineCitation, InlineCompletion, Input, Label, Message, MessageActions, MessageAvatar, MessageBody, MessageFooter, Meter, MeterLegend, MeterValue, MetricDelta, ModelSelector, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverTrigger, Progress, PromptInput, PromptInputCounter, PromptInputSubmit, PromptInputTextarea, PromptInputToolbar, RadioGroup, RadioGroupItem, Reasoning, ReasoningContent, ReasoningTrigger, RecordDiff, RecordDiffSummary, RecordDiffTable, Response, ResponseCaret, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Source, Sources, SourcesContent, SourcesTrigger, Spinner, StructuredConfidence, StructuredField, StructuredFieldError, StructuredOutput, Switch, TOAST_LIMIT, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagsInput, ThinkingIndicator, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, Toaster, TokenCount, TokenUsage, Tool, ToolContent, ToolHeader, ToolPayload, ToolSection, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, agentStatusVariants, alertVariants, avatarVariants, badgeVariants, buttonVariants, cn, defaultComboboxFilter, defaultCommandFilter, defineMeta, deltaVariants, diffRecords, disabledStyles, emptyStateVariants, focusRing, focusRingInset, formatBytes, iconSlot, inputVariants, invalidStyles, ledgerEntryVariants, matchesAccept, messageBodyVariants, messageVariants, progressVariants, selectTriggerVariants, sheetVariants, spinnerVariants, tabsListVariants, tabsTriggerVariants, toast, toastVariants, toolVariants, useToasts, useUploadQueue, xhrUpload };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","names":[],"sources":["../../src/registry/components.ts"],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"components.d.ts","names":[],"sources":["../../src/registry/components.ts"],"mappings":";;;;;;;;;;;;;;cAsEa,gBAAgB"}
|
|
@@ -2,55 +2,59 @@ import { COMPONENT_CATEGORIES, COMPONENT_STATUSES } from "./schema.js";
|
|
|
2
2
|
import { meta } from "../components/accordion/meta.js";
|
|
3
3
|
import { meta as meta$1 } from "../components/activity-feed/meta.js";
|
|
4
4
|
import { meta as meta$2 } from "../components/ai-action-ledger/meta.js";
|
|
5
|
-
import { meta as meta$3 } from "../components/ai-agent-
|
|
6
|
-
import { meta as meta$4 } from "../components/ai-
|
|
7
|
-
import { meta as meta$5 } from "../components/ai-
|
|
8
|
-
import { meta as meta$6 } from "../components/ai-
|
|
9
|
-
import { meta as meta$7 } from "../components/ai-
|
|
10
|
-
import { meta as meta$8 } from "../components/ai-
|
|
11
|
-
import { meta as meta$9 } from "../components/ai-
|
|
12
|
-
import { meta as meta$10 } from "../components/ai-
|
|
13
|
-
import { meta as meta$11 } from "../components/ai-
|
|
14
|
-
import { meta as meta$12 } from "../components/ai-
|
|
15
|
-
import { meta as meta$13 } from "../components/ai-
|
|
16
|
-
import { meta as meta$14 } from "../components/ai-
|
|
17
|
-
import { meta as meta$15 } from "../components/
|
|
18
|
-
import { meta as meta$16 } from "../components/
|
|
19
|
-
import { meta as meta$17 } from "../components/
|
|
20
|
-
import { meta as meta$18 } from "../components/
|
|
21
|
-
import { meta as meta$19 } from "../components/
|
|
22
|
-
import { meta as meta$20 } from "../components/
|
|
23
|
-
import { meta as meta$21 } from "../components/
|
|
24
|
-
import { meta as meta$22 } from "../components/
|
|
25
|
-
import { meta as meta$23 } from "../components/
|
|
26
|
-
import { meta as meta$24 } from "../components/
|
|
27
|
-
import { meta as meta$25 } from "../components/
|
|
28
|
-
import { meta as meta$26 } from "../components/
|
|
29
|
-
import { meta as meta$27 } from "../components/
|
|
30
|
-
import { meta as meta$28 } from "../components/
|
|
31
|
-
import { meta as meta$29 } from "../components/
|
|
32
|
-
import { meta as meta$30 } from "../components/
|
|
33
|
-
import { meta as meta$31 } from "../components/
|
|
34
|
-
import { meta as meta$32 } from "../components/
|
|
35
|
-
import { meta as meta$33 } from "../components/
|
|
36
|
-
import { meta as meta$34 } from "../components/
|
|
37
|
-
import { meta as meta$35 } from "../components/
|
|
38
|
-
import { meta as meta$36 } from "../components/
|
|
39
|
-
import { meta as meta$37 } from "../components/
|
|
40
|
-
import { meta as meta$38 } from "../components/
|
|
41
|
-
import { meta as meta$39 } from "../components/
|
|
42
|
-
import { meta as meta$40 } from "../components/
|
|
43
|
-
import { meta as meta$41 } from "../components/
|
|
44
|
-
import { meta as meta$42 } from "../components/
|
|
45
|
-
import { meta as meta$43 } from "../components/
|
|
46
|
-
import { meta as meta$44 } from "../components/
|
|
47
|
-
import { meta as meta$45 } from "../components/
|
|
48
|
-
import { meta as meta$46 } from "../components/
|
|
49
|
-
import { meta as meta$47 } from "../components/
|
|
50
|
-
import { meta as meta$48 } from "../components/
|
|
51
|
-
import { meta as meta$49 } from "../components/
|
|
52
|
-
import { meta as meta$50 } from "../components/
|
|
53
|
-
import { meta as meta$51 } from "../components/
|
|
5
|
+
import { meta as meta$3 } from "../components/ai-agent-plan/meta.js";
|
|
6
|
+
import { meta as meta$4 } from "../components/ai-agent-status/meta.js";
|
|
7
|
+
import { meta as meta$5 } from "../components/ai-approval-request/meta.js";
|
|
8
|
+
import { meta as meta$6 } from "../components/ai-conversation/meta.js";
|
|
9
|
+
import { meta as meta$7 } from "../components/ai-inline-completion/meta.js";
|
|
10
|
+
import { meta as meta$8 } from "../components/ai-message/meta.js";
|
|
11
|
+
import { meta as meta$9 } from "../components/ai-model-selector/meta.js";
|
|
12
|
+
import { meta as meta$10 } from "../components/ai-prompt-input/meta.js";
|
|
13
|
+
import { meta as meta$11 } from "../components/ai-reasoning/meta.js";
|
|
14
|
+
import { meta as meta$12 } from "../components/ai-response/meta.js";
|
|
15
|
+
import { meta as meta$13 } from "../components/ai-sources/meta.js";
|
|
16
|
+
import { meta as meta$14 } from "../components/ai-structured-output/meta.js";
|
|
17
|
+
import { meta as meta$15 } from "../components/ai-token-usage/meta.js";
|
|
18
|
+
import { meta as meta$16 } from "../components/ai-tool/meta.js";
|
|
19
|
+
import { meta as meta$17 } from "../components/alert/meta.js";
|
|
20
|
+
import { meta as meta$18 } from "../components/avatar/meta.js";
|
|
21
|
+
import { meta as meta$19 } from "../components/badge/meta.js";
|
|
22
|
+
import { meta as meta$20 } from "../components/button/meta.js";
|
|
23
|
+
import { meta as meta$21 } from "../components/calendar/meta.js";
|
|
24
|
+
import { meta as meta$22 } from "../components/card/meta.js";
|
|
25
|
+
import { meta as meta$23 } from "../components/checkbox/meta.js";
|
|
26
|
+
import { meta as meta$24 } from "../components/code-block/meta.js";
|
|
27
|
+
import { meta as meta$25 } from "../components/combobox/meta.js";
|
|
28
|
+
import { meta as meta$26 } from "../components/command/meta.js";
|
|
29
|
+
import { meta as meta$27 } from "../components/data-table/meta.js";
|
|
30
|
+
import { meta as meta$28 } from "../components/date-picker/meta.js";
|
|
31
|
+
import { meta as meta$29 } from "../components/dialog/meta.js";
|
|
32
|
+
import { meta as meta$30 } from "../components/drawer/meta.js";
|
|
33
|
+
import { meta as meta$31 } from "../components/dropdown-menu/meta.js";
|
|
34
|
+
import { meta as meta$32 } from "../components/empty-state/meta.js";
|
|
35
|
+
import { meta as meta$33 } from "../components/file-upload/meta.js";
|
|
36
|
+
import { meta as meta$34 } from "../components/form/meta.js";
|
|
37
|
+
import { meta as meta$35 } from "../components/input/meta.js";
|
|
38
|
+
import { meta as meta$36 } from "../components/label/meta.js";
|
|
39
|
+
import { meta as meta$37 } from "../components/meter/meta.js";
|
|
40
|
+
import { meta as meta$38 } from "../components/metric-delta/meta.js";
|
|
41
|
+
import { meta as meta$39 } from "../components/pagination/meta.js";
|
|
42
|
+
import { meta as meta$40 } from "../components/popover/meta.js";
|
|
43
|
+
import { meta as meta$41 } from "../components/progress/meta.js";
|
|
44
|
+
import { meta as meta$42 } from "../components/radio-group/meta.js";
|
|
45
|
+
import { meta as meta$43 } from "../components/record-diff/meta.js";
|
|
46
|
+
import { meta as meta$44 } from "../components/select/meta.js";
|
|
47
|
+
import { meta as meta$45 } from "../components/separator/meta.js";
|
|
48
|
+
import { meta as meta$46 } from "../components/sheet/meta.js";
|
|
49
|
+
import { meta as meta$47 } from "../components/skeleton/meta.js";
|
|
50
|
+
import { meta as meta$48 } from "../components/slider/meta.js";
|
|
51
|
+
import { meta as meta$49 } from "../components/spinner/meta.js";
|
|
52
|
+
import { meta as meta$50 } from "../components/switch/meta.js";
|
|
53
|
+
import { meta as meta$51 } from "../components/table/meta.js";
|
|
54
|
+
import { meta as meta$52 } from "../components/tabs/meta.js";
|
|
55
|
+
import { meta as meta$53 } from "../components/tags-input/meta.js";
|
|
56
|
+
import { meta as meta$54 } from "../components/toast/meta.js";
|
|
57
|
+
import { meta as meta$55 } from "../components/tooltip/meta.js";
|
|
54
58
|
import { blockMetas } from "./blocks.js";
|
|
55
59
|
//#region src/registry/components.ts
|
|
56
60
|
/**
|
|
@@ -116,7 +120,11 @@ const componentMetas = [
|
|
|
116
120
|
meta$48,
|
|
117
121
|
meta$49,
|
|
118
122
|
meta$50,
|
|
119
|
-
meta$51
|
|
123
|
+
meta$51,
|
|
124
|
+
meta$52,
|
|
125
|
+
meta$53,
|
|
126
|
+
meta$54,
|
|
127
|
+
meta$55
|
|
120
128
|
];
|
|
121
129
|
//#endregion
|
|
122
130
|
export { COMPONENT_CATEGORIES, COMPONENT_STATUSES, blockMetas, componentMetas };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","names":["accordionMeta","activityFeedMeta","aiActionLedgerMeta","aiAgentStatusMeta","aiConversationMeta","aiInlineCompletionMeta","aiMessageMeta","aiModelSelectorMeta","aiPromptInputMeta","aiReasoningMeta","aiResponseMeta","aiSourcesMeta","aiStructuredOutputMeta","aiTokenUsageMeta","aiToolMeta","alertMeta","avatarMeta","badgeMeta","buttonMeta","calendarMeta","cardMeta","checkboxMeta","codeBlockMeta","comboboxMeta","commandMeta","dataTableMeta","datePickerMeta","dialogMeta","drawerMeta","dropdownMenuMeta","emptyStateMeta","formMeta","inputMeta","labelMeta","meterMeta","metricDeltaMeta","paginationMeta","popoverMeta","progressMeta","radioGroupMeta","recordDiffMeta","selectMeta","separatorMeta","sheetMeta","skeletonMeta","sliderMeta","spinnerMeta","switchMeta","tableMeta","tabsMeta","toastMeta","tooltipMeta"],"sources":["../../src/registry/components.ts"],"sourcesContent":["import type { ComponentMeta } from \"./schema\";\n\nimport { meta as accordionMeta } from \"@/components/accordion/meta\";\nimport { meta as activityFeedMeta } from \"@/components/activity-feed/meta\";\nimport { meta as aiActionLedgerMeta } from \"@/components/ai-action-ledger/meta\";\nimport { meta as aiAgentStatusMeta } from \"@/components/ai-agent-status/meta\";\nimport { meta as aiConversationMeta } from \"@/components/ai-conversation/meta\";\nimport { meta as aiInlineCompletionMeta } from \"@/components/ai-inline-completion/meta\";\nimport { meta as aiMessageMeta } from \"@/components/ai-message/meta\";\nimport { meta as aiModelSelectorMeta } from \"@/components/ai-model-selector/meta\";\nimport { meta as aiPromptInputMeta } from \"@/components/ai-prompt-input/meta\";\nimport { meta as aiReasoningMeta } from \"@/components/ai-reasoning/meta\";\nimport { meta as aiResponseMeta } from \"@/components/ai-response/meta\";\nimport { meta as aiSourcesMeta } from \"@/components/ai-sources/meta\";\nimport { meta as aiStructuredOutputMeta } from \"@/components/ai-structured-output/meta\";\nimport { meta as aiTokenUsageMeta } from \"@/components/ai-token-usage/meta\";\nimport { meta as aiToolMeta } from \"@/components/ai-tool/meta\";\nimport { meta as alertMeta } from \"@/components/alert/meta\";\nimport { meta as avatarMeta } from \"@/components/avatar/meta\";\nimport { meta as badgeMeta } from \"@/components/badge/meta\";\nimport { meta as buttonMeta } from \"@/components/button/meta\";\nimport { meta as calendarMeta } from \"@/components/calendar/meta\";\nimport { meta as cardMeta } from \"@/components/card/meta\";\nimport { meta as checkboxMeta } from \"@/components/checkbox/meta\";\nimport { meta as codeBlockMeta } from \"@/components/code-block/meta\";\nimport { meta as comboboxMeta } from \"@/components/combobox/meta\";\nimport { meta as commandMeta } from \"@/components/command/meta\";\nimport { meta as dataTableMeta } from \"@/components/data-table/meta\";\nimport { meta as datePickerMeta } from \"@/components/date-picker/meta\";\nimport { meta as dialogMeta } from \"@/components/dialog/meta\";\nimport { meta as drawerMeta } from \"@/components/drawer/meta\";\nimport { meta as dropdownMenuMeta } from \"@/components/dropdown-menu/meta\";\nimport { meta as emptyStateMeta } from \"@/components/empty-state/meta\";\nimport { meta as formMeta } from \"@/components/form/meta\";\nimport { meta as inputMeta } from \"@/components/input/meta\";\nimport { meta as labelMeta } from \"@/components/label/meta\";\nimport { meta as meterMeta } from \"@/components/meter/meta\";\nimport { meta as metricDeltaMeta } from \"@/components/metric-delta/meta\";\nimport { meta as paginationMeta } from \"@/components/pagination/meta\";\nimport { meta as popoverMeta } from \"@/components/popover/meta\";\nimport { meta as progressMeta } from \"@/components/progress/meta\";\nimport { meta as radioGroupMeta } from \"@/components/radio-group/meta\";\nimport { meta as recordDiffMeta } from \"@/components/record-diff/meta\";\nimport { meta as selectMeta } from \"@/components/select/meta\";\nimport { meta as separatorMeta } from \"@/components/separator/meta\";\nimport { meta as sheetMeta } from \"@/components/sheet/meta\";\nimport { meta as skeletonMeta } from \"@/components/skeleton/meta\";\nimport { meta as sliderMeta } from \"@/components/slider/meta\";\nimport { meta as spinnerMeta } from \"@/components/spinner/meta\";\nimport { meta as switchMeta } from \"@/components/switch/meta\";\nimport { meta as tableMeta } from \"@/components/table/meta\";\nimport { meta as tabsMeta } from \"@/components/tabs/meta\";\nimport { meta as toastMeta } from \"@/components/toast/meta\";\nimport { meta as tooltipMeta } from \"@/components/tooltip/meta\";\n\n/**\n * Every component in the registry.\n *\n * An explicit list rather than a glob: the registry build runs in plain Node,\n * where bundler-only globbing is unavailable, and a static list is also what\n * lets the bundle tree-shake. `meta.test.ts` fails if a component directory\n * exists that is missing from here, so it cannot silently fall out of date.\n *\n * Identifiers carry a `Meta` suffix because component names include reserved\n * words — `switch` cannot be a binding name.\n */\nexport const componentMetas: ComponentMeta[] = [\n accordionMeta,\n activityFeedMeta,\n aiActionLedgerMeta,\n aiAgentStatusMeta,\n aiConversationMeta,\n aiInlineCompletionMeta,\n aiMessageMeta,\n aiModelSelectorMeta,\n aiPromptInputMeta,\n aiReasoningMeta,\n aiResponseMeta,\n aiSourcesMeta,\n aiStructuredOutputMeta,\n aiTokenUsageMeta,\n aiToolMeta,\n alertMeta,\n avatarMeta,\n badgeMeta,\n buttonMeta,\n calendarMeta,\n cardMeta,\n checkboxMeta,\n codeBlockMeta,\n comboboxMeta,\n commandMeta,\n dataTableMeta,\n datePickerMeta,\n dialogMeta,\n drawerMeta,\n dropdownMenuMeta,\n emptyStateMeta,\n formMeta,\n inputMeta,\n labelMeta,\n meterMeta,\n metricDeltaMeta,\n paginationMeta,\n popoverMeta,\n progressMeta,\n radioGroupMeta,\n recordDiffMeta,\n selectMeta,\n separatorMeta,\n sheetMeta,\n skeletonMeta,\n sliderMeta,\n spinnerMeta,\n switchMeta,\n tableMeta,\n tabsMeta,\n toastMeta,\n tooltipMeta,\n];\n\n// This file is the `@dowel-ui/react/registry` entry point, so the block barrel is\n// re-exported here — the registry build reads both through one import.\nexport { blockMetas } from \"./blocks\";\nexport { COMPONENT_CATEGORIES, COMPONENT_STATUSES } from \"./schema\";\nexport type { ComponentCategory, ComponentMeta, ComponentStatus } from \"./schema\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.js","names":["accordionMeta","activityFeedMeta","aiActionLedgerMeta","aiAgentPlanMeta","aiAgentStatusMeta","aiApprovalRequestMeta","aiConversationMeta","aiInlineCompletionMeta","aiMessageMeta","aiModelSelectorMeta","aiPromptInputMeta","aiReasoningMeta","aiResponseMeta","aiSourcesMeta","aiStructuredOutputMeta","aiTokenUsageMeta","aiToolMeta","alertMeta","avatarMeta","badgeMeta","buttonMeta","calendarMeta","cardMeta","checkboxMeta","codeBlockMeta","comboboxMeta","commandMeta","dataTableMeta","datePickerMeta","dialogMeta","drawerMeta","dropdownMenuMeta","emptyStateMeta","fileUploadMeta","formMeta","inputMeta","labelMeta","meterMeta","metricDeltaMeta","paginationMeta","popoverMeta","progressMeta","radioGroupMeta","recordDiffMeta","selectMeta","separatorMeta","sheetMeta","skeletonMeta","sliderMeta","spinnerMeta","switchMeta","tableMeta","tabsMeta","tagsInputMeta","toastMeta","tooltipMeta"],"sources":["../../src/registry/components.ts"],"sourcesContent":["import type { ComponentMeta } from \"./schema\";\n\nimport { meta as accordionMeta } from \"@/components/accordion/meta\";\nimport { meta as activityFeedMeta } from \"@/components/activity-feed/meta\";\nimport { meta as aiActionLedgerMeta } from \"@/components/ai-action-ledger/meta\";\nimport { meta as aiAgentPlanMeta } from \"@/components/ai-agent-plan/meta\";\nimport { meta as aiAgentStatusMeta } from \"@/components/ai-agent-status/meta\";\nimport { meta as aiApprovalRequestMeta } from \"@/components/ai-approval-request/meta\";\nimport { meta as aiConversationMeta } from \"@/components/ai-conversation/meta\";\nimport { meta as aiInlineCompletionMeta } from \"@/components/ai-inline-completion/meta\";\nimport { meta as aiMessageMeta } from \"@/components/ai-message/meta\";\nimport { meta as aiModelSelectorMeta } from \"@/components/ai-model-selector/meta\";\nimport { meta as aiPromptInputMeta } from \"@/components/ai-prompt-input/meta\";\nimport { meta as aiReasoningMeta } from \"@/components/ai-reasoning/meta\";\nimport { meta as aiResponseMeta } from \"@/components/ai-response/meta\";\nimport { meta as aiSourcesMeta } from \"@/components/ai-sources/meta\";\nimport { meta as aiStructuredOutputMeta } from \"@/components/ai-structured-output/meta\";\nimport { meta as aiTokenUsageMeta } from \"@/components/ai-token-usage/meta\";\nimport { meta as aiToolMeta } from \"@/components/ai-tool/meta\";\nimport { meta as alertMeta } from \"@/components/alert/meta\";\nimport { meta as avatarMeta } from \"@/components/avatar/meta\";\nimport { meta as badgeMeta } from \"@/components/badge/meta\";\nimport { meta as buttonMeta } from \"@/components/button/meta\";\nimport { meta as calendarMeta } from \"@/components/calendar/meta\";\nimport { meta as cardMeta } from \"@/components/card/meta\";\nimport { meta as checkboxMeta } from \"@/components/checkbox/meta\";\nimport { meta as codeBlockMeta } from \"@/components/code-block/meta\";\nimport { meta as comboboxMeta } from \"@/components/combobox/meta\";\nimport { meta as commandMeta } from \"@/components/command/meta\";\nimport { meta as dataTableMeta } from \"@/components/data-table/meta\";\nimport { meta as datePickerMeta } from \"@/components/date-picker/meta\";\nimport { meta as dialogMeta } from \"@/components/dialog/meta\";\nimport { meta as drawerMeta } from \"@/components/drawer/meta\";\nimport { meta as dropdownMenuMeta } from \"@/components/dropdown-menu/meta\";\nimport { meta as emptyStateMeta } from \"@/components/empty-state/meta\";\nimport { meta as fileUploadMeta } from \"@/components/file-upload/meta\";\nimport { meta as formMeta } from \"@/components/form/meta\";\nimport { meta as inputMeta } from \"@/components/input/meta\";\nimport { meta as labelMeta } from \"@/components/label/meta\";\nimport { meta as meterMeta } from \"@/components/meter/meta\";\nimport { meta as metricDeltaMeta } from \"@/components/metric-delta/meta\";\nimport { meta as paginationMeta } from \"@/components/pagination/meta\";\nimport { meta as popoverMeta } from \"@/components/popover/meta\";\nimport { meta as progressMeta } from \"@/components/progress/meta\";\nimport { meta as radioGroupMeta } from \"@/components/radio-group/meta\";\nimport { meta as recordDiffMeta } from \"@/components/record-diff/meta\";\nimport { meta as selectMeta } from \"@/components/select/meta\";\nimport { meta as separatorMeta } from \"@/components/separator/meta\";\nimport { meta as sheetMeta } from \"@/components/sheet/meta\";\nimport { meta as skeletonMeta } from \"@/components/skeleton/meta\";\nimport { meta as sliderMeta } from \"@/components/slider/meta\";\nimport { meta as spinnerMeta } from \"@/components/spinner/meta\";\nimport { meta as switchMeta } from \"@/components/switch/meta\";\nimport { meta as tableMeta } from \"@/components/table/meta\";\nimport { meta as tabsMeta } from \"@/components/tabs/meta\";\nimport { meta as tagsInputMeta } from \"@/components/tags-input/meta\";\nimport { meta as toastMeta } from \"@/components/toast/meta\";\nimport { meta as tooltipMeta } from \"@/components/tooltip/meta\";\n\n/**\n * Every component in the registry.\n *\n * An explicit list rather than a glob: the registry build runs in plain Node,\n * where bundler-only globbing is unavailable, and a static list is also what\n * lets the bundle tree-shake. `meta.test.ts` fails if a component directory\n * exists that is missing from here, so it cannot silently fall out of date.\n *\n * Identifiers carry a `Meta` suffix because component names include reserved\n * words — `switch` cannot be a binding name.\n */\nexport const componentMetas: ComponentMeta[] = [\n accordionMeta,\n activityFeedMeta,\n aiActionLedgerMeta,\n aiAgentPlanMeta,\n aiAgentStatusMeta,\n aiApprovalRequestMeta,\n aiConversationMeta,\n aiInlineCompletionMeta,\n aiMessageMeta,\n aiModelSelectorMeta,\n aiPromptInputMeta,\n aiReasoningMeta,\n aiResponseMeta,\n aiSourcesMeta,\n aiStructuredOutputMeta,\n aiTokenUsageMeta,\n aiToolMeta,\n alertMeta,\n avatarMeta,\n badgeMeta,\n buttonMeta,\n calendarMeta,\n cardMeta,\n checkboxMeta,\n codeBlockMeta,\n comboboxMeta,\n commandMeta,\n dataTableMeta,\n datePickerMeta,\n dialogMeta,\n drawerMeta,\n dropdownMenuMeta,\n emptyStateMeta,\n fileUploadMeta,\n formMeta,\n inputMeta,\n labelMeta,\n meterMeta,\n metricDeltaMeta,\n paginationMeta,\n popoverMeta,\n progressMeta,\n radioGroupMeta,\n recordDiffMeta,\n selectMeta,\n separatorMeta,\n sheetMeta,\n skeletonMeta,\n sliderMeta,\n spinnerMeta,\n switchMeta,\n tableMeta,\n tabsMeta,\n tagsInputMeta,\n toastMeta,\n tooltipMeta,\n];\n\n// This file is the `@dowel-ui/react/registry` entry point, so the block barrel is\n// re-exported here — the registry build reads both through one import.\nexport { blockMetas } from \"./blocks\";\nexport { COMPONENT_CATEGORIES, COMPONENT_STATUSES } from \"./schema\";\nexport type { ComponentCategory, ComponentMeta, ComponentStatus } from \"./schema\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEA,MAAa,iBAAkC;CAC7CA;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;AACF"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dowel-ui/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "Source-first React components for SaaS and AI products —
|
|
5
|
+
"description": "Source-first React components for SaaS and AI products — 56 accessible components you install as code you own, not as a dependency.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"react",
|
|
8
8
|
"ui",
|
|
@@ -93,8 +93,8 @@
|
|
|
93
93
|
"vite": "8.2.2",
|
|
94
94
|
"vitest": "4.1.10",
|
|
95
95
|
"zod": "4.5.4",
|
|
96
|
-
"@dowel-ui/
|
|
97
|
-
"@dowel-ui/
|
|
96
|
+
"@dowel-ui/themes": "0.3.0",
|
|
97
|
+
"@dowel-ui/config": "0.3.0"
|
|
98
98
|
},
|
|
99
99
|
"scripts": {
|
|
100
100
|
"build": "tsdown",
|
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { defineMeta } from "@/registry/schema";
|
|
2
|
+
|
|
3
|
+
export const meta = defineMeta({
|
|
4
|
+
name: "ai-agent-plan",
|
|
5
|
+
title: "AI Agent Plan",
|
|
6
|
+
description: "What an agent intends to do — including when it changes its mind mid-run.",
|
|
7
|
+
category: "ai",
|
|
8
|
+
status: "stable",
|
|
9
|
+
dependencies: [],
|
|
10
|
+
registryDependencies: [],
|
|
11
|
+
files: ["ai-agent-plan.tsx"],
|
|
12
|
+
a11y:
|
|
13
|
+
"An ordered list, because a plan is a sequence and the order carries meaning an unordered " +
|
|
14
|
+
'list would discard. The running step carries aria-current="step", which marks the reader\'s ' +
|
|
15
|
+
"place without moving focus and fighting anyone reading ahead. Every status is stated in text " +
|
|
16
|
+
"as well as drawn, and the markers are aria-hidden so the status is not heard twice per step. " +
|
|
17
|
+
"The live region reports structural revisions only — announcing every status transition would " +
|
|
18
|
+
"talk over the reader continuously on a plan of any length.",
|
|
19
|
+
});
|