@usefragments/ui 1.3.2 → 1.4.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 +3 -1
- package/dist/assets/ui.css +1261 -849
- package/dist/chart.cjs +60 -24
- package/dist/chart.js +38 -24
- package/dist/codeblock.cjs +14 -6
- package/dist/codeblock.js +14 -6
- package/dist/colorpicker.cjs +56 -9
- package/dist/colorpicker.js +34 -9
- package/dist/components/Badge/Badge.module.scss.cjs +23 -16
- package/dist/components/Badge/Badge.module.scss.js +23 -16
- package/dist/components/Badge/index.cjs +8 -1
- package/dist/components/Badge/index.d.ts +3 -0
- package/dist/components/Badge/index.d.ts.map +1 -1
- package/dist/components/Badge/index.js +8 -1
- package/dist/components/Button/Button.module.scss.cjs +16 -13
- package/dist/components/Button/Button.module.scss.js +16 -13
- package/dist/components/Button/index.d.ts +2 -1
- package/dist/components/Button/index.d.ts.map +1 -1
- package/dist/components/Chart/index.d.ts +3 -0
- package/dist/components/Chart/index.d.ts.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +21 -21
- package/dist/components/CodeBlock/CodeBlock.module.scss.js +21 -21
- package/dist/components/CodeBlock/index.d.ts.map +1 -1
- package/dist/components/ColorPicker/index.d.ts +4 -0
- package/dist/components/ColorPicker/index.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.module.scss.cjs +23 -23
- package/dist/components/Combobox/Combobox.module.scss.js +23 -23
- package/dist/components/Command/Command.module.scss.cjs +11 -11
- package/dist/components/Command/Command.module.scss.js +11 -11
- package/dist/components/ConversationList/ConversationList.module.scss.cjs +13 -10
- package/dist/components/ConversationList/ConversationList.module.scss.js +14 -11
- package/dist/components/ConversationList/index.cjs +26 -22
- package/dist/components/ConversationList/index.d.ts +5 -1
- package/dist/components/ConversationList/index.d.ts.map +1 -1
- package/dist/components/ConversationList/index.js +27 -23
- package/dist/components/DataTable/DataTable.module.scss.cjs +35 -35
- package/dist/components/DataTable/DataTable.module.scss.js +35 -35
- package/dist/components/DataTable/index.d.ts +4 -1
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DatePicker/index.d.ts +3 -0
- package/dist/components/DatePicker/index.d.ts.map +1 -1
- package/dist/components/Editor/index.d.ts +4 -1
- package/dist/components/Editor/index.d.ts.map +1 -1
- package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
- package/dist/components/Listbox/Listbox.module.scss.js +8 -8
- package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
- package/dist/components/Markdown/Markdown.module.scss.js +1 -1
- package/dist/components/Markdown/index.d.ts +16 -0
- package/dist/components/Markdown/index.d.ts.map +1 -1
- package/dist/components/Menu/Menu.module.scss.cjs +14 -14
- package/dist/components/Menu/Menu.module.scss.js +14 -14
- package/dist/components/Message/Message.module.scss.cjs +23 -20
- package/dist/components/Message/Message.module.scss.js +24 -21
- package/dist/components/Message/index.cjs +5 -1
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +5 -1
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
- package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
- package/dist/components/Pagination/Pagination.module.scss.cjs +7 -7
- package/dist/components/Pagination/Pagination.module.scss.js +7 -7
- package/dist/components/Prompt/Prompt.module.scss.cjs +52 -22
- package/dist/components/Prompt/Prompt.module.scss.js +52 -22
- package/dist/components/Prompt/index.cjs +197 -2
- package/dist/components/Prompt/index.d.ts +98 -3
- package/dist/components/Prompt/index.d.ts.map +1 -1
- package/dist/components/Prompt/index.js +198 -3
- package/dist/components/Select/Select.module.scss.cjs +29 -17
- package/dist/components/Select/Select.module.scss.js +30 -18
- package/dist/components/Select/index.cjs +45 -8
- package/dist/components/Select/index.d.ts +17 -2
- package/dist/components/Select/index.d.ts.map +1 -1
- package/dist/components/Select/index.js +45 -8
- package/dist/components/Sidebar/Sidebar.module.scss.cjs +45 -42
- package/dist/components/Sidebar/Sidebar.module.scss.js +45 -42
- package/dist/components/Sidebar/index.cjs +2 -0
- package/dist/components/Sidebar/index.d.ts +6 -1
- package/dist/components/Sidebar/index.d.ts.map +1 -1
- package/dist/components/Sidebar/index.js +2 -0
- package/dist/components/Text/Text.module.scss.cjs +63 -51
- package/dist/components/Text/Text.module.scss.js +63 -51
- package/dist/components/Text/index.d.ts +4 -2
- package/dist/components/Text/index.d.ts.map +1 -1
- package/dist/data-table.cjs +210 -28
- package/dist/data-table.js +189 -29
- package/dist/datepicker.cjs +63 -14
- package/dist/datepicker.js +41 -14
- package/dist/editor.cjs +67 -16
- package/dist/editor.js +45 -16
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/markdown.cjs +63 -19
- package/dist/markdown.js +41 -19
- package/fragments.json +1 -1
- package/package.json +2 -2
- package/src/components/Badge/Badge.contract.json +28 -5
- package/src/components/Badge/Badge.module.scss +21 -0
- package/src/components/Badge/index.tsx +10 -1
- package/src/components/Button/Button.contract.json +9 -3
- package/src/components/Button/Button.module.scss +34 -0
- package/src/components/Button/index.tsx +11 -1
- package/src/components/Chart/Chart.contract.json +7 -0
- package/src/components/Chart/index.tsx +44 -27
- package/src/components/CodeBlock/CodeBlock.contract.json +7 -0
- package/src/components/CodeBlock/CodeBlock.module.scss +7 -2
- package/src/components/CodeBlock/index.tsx +38 -6
- package/src/components/ColorPicker/ColorPicker.contract.json +9 -1
- package/src/components/ColorPicker/index.tsx +42 -12
- package/src/components/Combobox/Combobox.module.scss +4 -13
- package/src/components/ConversationList/ConversationList.contract.json +16 -1
- package/src/components/ConversationList/ConversationList.module.scss +12 -0
- package/src/components/ConversationList/index.tsx +40 -26
- package/src/components/DataTable/DataTable.contract.json +8 -1
- package/src/components/DataTable/DataTable.module.scss +5 -0
- package/src/components/DataTable/index.tsx +282 -51
- package/src/components/DatePicker/DatePicker.contract.json +8 -1
- package/src/components/DatePicker/index.tsx +51 -22
- package/src/components/Editor/Editor.contract.json +19 -1
- package/src/components/Editor/index.tsx +67 -23
- package/src/components/Listbox/Listbox.module.scss +3 -11
- package/src/components/Markdown/Markdown.contract.json +15 -1
- package/src/components/Markdown/Markdown.module.scss +18 -1
- package/src/components/Markdown/index.tsx +58 -24
- package/src/components/Menu/Menu.module.scss +12 -2
- package/src/components/Message/Message.contract.json +3 -0
- package/src/components/Message/Message.module.scss +33 -4
- package/src/components/Message/index.tsx +7 -1
- package/src/components/Pagination/Pagination.contract.json +1 -0
- package/src/components/Pagination/Pagination.module.scss +5 -4
- package/src/components/Prompt/Prompt.contract.json +40 -1
- package/src/components/Prompt/Prompt.module.scss +351 -4
- package/src/components/Prompt/index.tsx +324 -0
- package/src/components/Select/Select.contract.json +11 -1
- package/src/components/Select/Select.module.scss +80 -13
- package/src/components/Select/index.tsx +73 -7
- package/src/components/Sidebar/Sidebar.contract.json +1 -0
- package/src/components/Sidebar/Sidebar.module.scss +10 -0
- package/src/components/Sidebar/index.tsx +7 -0
- package/src/components/Text/Text.contract.json +7 -4
- package/src/components/Text/Text.module.scss +18 -0
- package/src/components/Text/index.tsx +4 -2
- package/src/index.ts +1 -0
- package/src/tokens/_mixins.scss +39 -4
- package/src/tokens/_variables.scss +30 -0
|
@@ -5,6 +5,7 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
|
5
5
|
const React = require("react");
|
|
6
6
|
const Prompt_module = require("./Prompt.module.scss.cjs");
|
|
7
7
|
const index = require("../Loading/index.cjs");
|
|
8
|
+
const index$1 = require("../Select/index.cjs");
|
|
8
9
|
function _interopNamespaceDefault(e) {
|
|
9
10
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
10
11
|
if (e) {
|
|
@@ -22,6 +23,34 @@ function _interopNamespaceDefault(e) {
|
|
|
22
23
|
return Object.freeze(n);
|
|
23
24
|
}
|
|
24
25
|
const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
|
|
26
|
+
function PlusIcon() {
|
|
27
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28
|
+
"svg",
|
|
29
|
+
{
|
|
30
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
31
|
+
width: "16",
|
|
32
|
+
height: "16",
|
|
33
|
+
viewBox: "0 0 256 256",
|
|
34
|
+
fill: "currentColor",
|
|
35
|
+
"aria-hidden": "true",
|
|
36
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z" })
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
function CloseIcon() {
|
|
41
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
42
|
+
"svg",
|
|
43
|
+
{
|
|
44
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
45
|
+
width: "16",
|
|
46
|
+
height: "16",
|
|
47
|
+
viewBox: "0 0 256 256",
|
|
48
|
+
fill: "currentColor",
|
|
49
|
+
"aria-hidden": "true",
|
|
50
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z" })
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
25
54
|
function ArrowUpIcon() {
|
|
26
55
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27
56
|
"svg",
|
|
@@ -73,10 +102,15 @@ function PromptRoot({
|
|
|
73
102
|
autoResize = true,
|
|
74
103
|
submitOnEnter = true,
|
|
75
104
|
variant = "default",
|
|
105
|
+
appearance = "panel",
|
|
106
|
+
onFiles,
|
|
107
|
+
accept,
|
|
76
108
|
className,
|
|
77
109
|
...htmlProps
|
|
78
110
|
}) {
|
|
79
111
|
const textareaRef = React__namespace.useRef(null);
|
|
112
|
+
const [dragging, setDragging] = React__namespace.useState(false);
|
|
113
|
+
const dragDepth = React__namespace.useRef(0);
|
|
80
114
|
const [value, setValue] = useControllableState(
|
|
81
115
|
controlledValue,
|
|
82
116
|
defaultValue,
|
|
@@ -86,6 +120,13 @@ function PromptRoot({
|
|
|
86
120
|
if (disabled || loading || !value.trim()) return;
|
|
87
121
|
onSubmit == null ? void 0 : onSubmit(value);
|
|
88
122
|
}, [disabled, loading, value, onSubmit]);
|
|
123
|
+
const acceptFiles = React__namespace.useCallback(
|
|
124
|
+
(files) => {
|
|
125
|
+
if (!onFiles || disabled || loading || files.length === 0) return;
|
|
126
|
+
onFiles(files);
|
|
127
|
+
},
|
|
128
|
+
[onFiles, disabled, loading]
|
|
129
|
+
);
|
|
89
130
|
const contextValue = {
|
|
90
131
|
value,
|
|
91
132
|
setValue,
|
|
@@ -97,12 +138,39 @@ function PromptRoot({
|
|
|
97
138
|
autoResize,
|
|
98
139
|
submitOnEnter,
|
|
99
140
|
handleSubmit,
|
|
100
|
-
textareaRef
|
|
141
|
+
textareaRef,
|
|
142
|
+
accept,
|
|
143
|
+
onFiles: onFiles ? acceptFiles : void 0
|
|
101
144
|
};
|
|
145
|
+
const dropHandlers = onFiles ? {
|
|
146
|
+
onDragEnter: (event) => {
|
|
147
|
+
if (!event.dataTransfer.types.includes("Files")) return;
|
|
148
|
+
dragDepth.current += 1;
|
|
149
|
+
setDragging(true);
|
|
150
|
+
},
|
|
151
|
+
onDragOver: (event) => {
|
|
152
|
+
if (!event.dataTransfer.types.includes("Files")) return;
|
|
153
|
+
event.preventDefault();
|
|
154
|
+
event.dataTransfer.dropEffect = "copy";
|
|
155
|
+
},
|
|
156
|
+
onDragLeave: () => {
|
|
157
|
+
dragDepth.current = Math.max(0, dragDepth.current - 1);
|
|
158
|
+
if (dragDepth.current === 0) setDragging(false);
|
|
159
|
+
},
|
|
160
|
+
onDrop: (event) => {
|
|
161
|
+
if (!event.dataTransfer.types.includes("Files")) return;
|
|
162
|
+
event.preventDefault();
|
|
163
|
+
dragDepth.current = 0;
|
|
164
|
+
setDragging(false);
|
|
165
|
+
acceptFiles(Array.from(event.dataTransfer.files));
|
|
166
|
+
}
|
|
167
|
+
} : null;
|
|
102
168
|
const classes = [
|
|
103
169
|
Prompt_module.default.prompt,
|
|
104
170
|
variant === "fixed" && Prompt_module.default.fixed,
|
|
105
171
|
variant === "sticky" && Prompt_module.default.sticky,
|
|
172
|
+
appearance === "seamless" && Prompt_module.default.seamless,
|
|
173
|
+
dragging && Prompt_module.default.dragging,
|
|
106
174
|
disabled && Prompt_module.default.disabled,
|
|
107
175
|
loading && Prompt_module.default.loading,
|
|
108
176
|
className
|
|
@@ -111,10 +179,13 @@ function PromptRoot({
|
|
|
111
179
|
"div",
|
|
112
180
|
{
|
|
113
181
|
...htmlProps,
|
|
182
|
+
...dropHandlers,
|
|
114
183
|
className: classes,
|
|
115
184
|
"data-disabled": disabled || void 0,
|
|
116
185
|
"data-loading": loading || void 0,
|
|
117
186
|
"data-variant": variant,
|
|
187
|
+
"data-appearance": appearance,
|
|
188
|
+
"data-dragging": dragging || void 0,
|
|
118
189
|
children
|
|
119
190
|
}
|
|
120
191
|
) });
|
|
@@ -124,6 +195,7 @@ function PromptTextarea({
|
|
|
124
195
|
className,
|
|
125
196
|
onChange,
|
|
126
197
|
onKeyDown,
|
|
198
|
+
onPaste,
|
|
127
199
|
"aria-label": ariaLabel,
|
|
128
200
|
...htmlProps
|
|
129
201
|
}) {
|
|
@@ -138,7 +210,8 @@ function PromptTextarea({
|
|
|
138
210
|
autoResize,
|
|
139
211
|
submitOnEnter,
|
|
140
212
|
handleSubmit,
|
|
141
|
-
textareaRef
|
|
213
|
+
textareaRef,
|
|
214
|
+
onFiles
|
|
142
215
|
} = usePromptContext();
|
|
143
216
|
const lineHeight = 1.5;
|
|
144
217
|
const padding = 12;
|
|
@@ -169,6 +242,20 @@ function PromptTextarea({
|
|
|
169
242
|
handleSubmit();
|
|
170
243
|
}
|
|
171
244
|
};
|
|
245
|
+
const handlePaste = (e) => {
|
|
246
|
+
onPaste == null ? void 0 : onPaste(e);
|
|
247
|
+
if (e.defaultPrevented || !onFiles) return;
|
|
248
|
+
const files = Array.from(e.clipboardData.files);
|
|
249
|
+
if (files.length === 0) return;
|
|
250
|
+
e.preventDefault();
|
|
251
|
+
onFiles(
|
|
252
|
+
files.map(
|
|
253
|
+
(file, index2) => file.name && file.name !== "image.png" ? file : new File([file], `pasted-${index2 + 1}.${file.type.split("/")[1] || "png"}`, {
|
|
254
|
+
type: file.type
|
|
255
|
+
})
|
|
256
|
+
)
|
|
257
|
+
);
|
|
258
|
+
};
|
|
172
259
|
const classes = [Prompt_module.default.textarea, className].filter(Boolean).join(" ");
|
|
173
260
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
174
261
|
"textarea",
|
|
@@ -179,6 +266,7 @@ function PromptTextarea({
|
|
|
179
266
|
value,
|
|
180
267
|
onChange: handleChange,
|
|
181
268
|
onKeyDown: handleKeyDown,
|
|
269
|
+
onPaste: handlePaste,
|
|
182
270
|
placeholder: overridePlaceholder ?? placeholder,
|
|
183
271
|
disabled: disabled || loading,
|
|
184
272
|
rows: minRows,
|
|
@@ -259,6 +347,107 @@ function PromptModeButton({
|
|
|
259
347
|
}
|
|
260
348
|
);
|
|
261
349
|
}
|
|
350
|
+
function formatSize(bytes) {
|
|
351
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
352
|
+
const kb = bytes / 1024;
|
|
353
|
+
if (kb < 1024) return `${Math.round(kb)} KB`;
|
|
354
|
+
return `${(kb / 1024).toFixed(kb / 1024 < 10 ? 1 : 0)} MB`;
|
|
355
|
+
}
|
|
356
|
+
function PromptAttachments({ items, onRemove, className }) {
|
|
357
|
+
if (items.length === 0) return null;
|
|
358
|
+
const classes = [Prompt_module.default.attachments, className].filter(Boolean).join(" ");
|
|
359
|
+
return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: classes, "aria-label": "Attachments", children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: Prompt_module.default.attachment, children: [
|
|
360
|
+
item.previewUrl ? (
|
|
361
|
+
// Decorative: the filename beside it is the accessible name, and a
|
|
362
|
+
// thumbnail of a screenshot has no description worth inventing.
|
|
363
|
+
/* @__PURE__ */ jsxRuntime.jsx("img", { src: item.previewUrl, alt: "", className: Prompt_module.default.attachmentThumb })
|
|
364
|
+
) : null,
|
|
365
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: Prompt_module.default.attachmentName, title: item.name, children: item.name }),
|
|
366
|
+
item.size != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: Prompt_module.default.attachmentSize, children: formatSize(item.size) }),
|
|
367
|
+
onRemove && /* @__PURE__ */ jsxRuntime.jsx(
|
|
368
|
+
"button",
|
|
369
|
+
{
|
|
370
|
+
type: "button",
|
|
371
|
+
className: Prompt_module.default.attachmentRemove,
|
|
372
|
+
onClick: () => onRemove(item.id),
|
|
373
|
+
"aria-label": `Remove ${item.name}`,
|
|
374
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(CloseIcon, {})
|
|
375
|
+
}
|
|
376
|
+
)
|
|
377
|
+
] }, item.id)) });
|
|
378
|
+
}
|
|
379
|
+
function PromptAttach({
|
|
380
|
+
"aria-label": ariaLabel = "Attach files",
|
|
381
|
+
children,
|
|
382
|
+
accept: acceptOverride,
|
|
383
|
+
multiple = true,
|
|
384
|
+
disabled: buttonDisabled,
|
|
385
|
+
className
|
|
386
|
+
}) {
|
|
387
|
+
const { disabled, loading, accept, onFiles } = usePromptContext();
|
|
388
|
+
const inputRef = React__namespace.useRef(null);
|
|
389
|
+
const isDisabled = disabled || loading || buttonDisabled || !onFiles;
|
|
390
|
+
const classes = [Prompt_module.default.attach, className].filter(Boolean).join(" ");
|
|
391
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
392
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
393
|
+
"button",
|
|
394
|
+
{
|
|
395
|
+
type: "button",
|
|
396
|
+
className: classes,
|
|
397
|
+
onClick: () => {
|
|
398
|
+
var _a;
|
|
399
|
+
return (_a = inputRef.current) == null ? void 0 : _a.click();
|
|
400
|
+
},
|
|
401
|
+
disabled: isDisabled,
|
|
402
|
+
"aria-label": ariaLabel,
|
|
403
|
+
children: children ?? /* @__PURE__ */ jsxRuntime.jsx(PlusIcon, {})
|
|
404
|
+
}
|
|
405
|
+
),
|
|
406
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
407
|
+
"input",
|
|
408
|
+
{
|
|
409
|
+
ref: inputRef,
|
|
410
|
+
type: "file",
|
|
411
|
+
hidden: true,
|
|
412
|
+
accept: acceptOverride ?? accept,
|
|
413
|
+
multiple,
|
|
414
|
+
onChange: (event) => {
|
|
415
|
+
const files = Array.from(event.target.files ?? []);
|
|
416
|
+
event.target.value = "";
|
|
417
|
+
onFiles == null ? void 0 : onFiles(files);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
)
|
|
421
|
+
] });
|
|
422
|
+
}
|
|
423
|
+
function PromptSelect({
|
|
424
|
+
icon,
|
|
425
|
+
"aria-label": ariaLabel,
|
|
426
|
+
options,
|
|
427
|
+
children,
|
|
428
|
+
placeholder,
|
|
429
|
+
disabled: selectDisabled,
|
|
430
|
+
className,
|
|
431
|
+
...selectProps
|
|
432
|
+
}) {
|
|
433
|
+
const { disabled, loading } = usePromptContext();
|
|
434
|
+
const classes = [Prompt_module.default.select, className].filter(Boolean).join(" ");
|
|
435
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
436
|
+
index$1.Select,
|
|
437
|
+
{
|
|
438
|
+
...selectProps,
|
|
439
|
+
size: "sm",
|
|
440
|
+
variant: "ghost",
|
|
441
|
+
options,
|
|
442
|
+
placeholder,
|
|
443
|
+
disabled: disabled || loading || selectDisabled,
|
|
444
|
+
children: [
|
|
445
|
+
/* @__PURE__ */ jsxRuntime.jsx(index$1.Select.Trigger, { className: classes, icon, "aria-label": ariaLabel }),
|
|
446
|
+
/* @__PURE__ */ jsxRuntime.jsx(index$1.Select.Content, { children })
|
|
447
|
+
]
|
|
448
|
+
}
|
|
449
|
+
);
|
|
450
|
+
}
|
|
262
451
|
function PromptUsage({ children, className }) {
|
|
263
452
|
const classes = [Prompt_module.default.usage, className].filter(Boolean).join(" ");
|
|
264
453
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes, children });
|
|
@@ -305,15 +494,21 @@ const Prompt = Object.assign(PromptRoot, {
|
|
|
305
494
|
Info: PromptInfo,
|
|
306
495
|
ActionButton: PromptActionButton,
|
|
307
496
|
ModeButton: PromptModeButton,
|
|
497
|
+
Select: PromptSelect,
|
|
498
|
+
Attach: PromptAttach,
|
|
499
|
+
Attachments: PromptAttachments,
|
|
308
500
|
Usage: PromptUsage,
|
|
309
501
|
Submit: PromptSubmit
|
|
310
502
|
});
|
|
311
503
|
exports.Prompt = Prompt;
|
|
312
504
|
exports.PromptActionButton = PromptActionButton;
|
|
313
505
|
exports.PromptActions = PromptActions;
|
|
506
|
+
exports.PromptAttach = PromptAttach;
|
|
507
|
+
exports.PromptAttachments = PromptAttachments;
|
|
314
508
|
exports.PromptInfo = PromptInfo;
|
|
315
509
|
exports.PromptModeButton = PromptModeButton;
|
|
316
510
|
exports.PromptRoot = PromptRoot;
|
|
511
|
+
exports.PromptSelect = PromptSelect;
|
|
317
512
|
exports.PromptSubmit = PromptSubmit;
|
|
318
513
|
exports.PromptTab = PromptTab;
|
|
319
514
|
exports.PromptTabs = PromptTabs;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { type SelectOption, type SelectValue } from '../Select';
|
|
2
3
|
export type PromptVariant = 'default' | 'fixed' | 'sticky';
|
|
4
|
+
export type PromptAppearance = 'panel' | 'seamless';
|
|
3
5
|
export interface PromptProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onSubmit' | 'defaultValue'> {
|
|
4
6
|
children: React.ReactNode;
|
|
5
7
|
/** Controlled input value */
|
|
@@ -24,8 +26,19 @@ export interface PromptProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
24
26
|
autoResize?: boolean;
|
|
25
27
|
/** Submit on Enter key (Shift+Enter for newline) */
|
|
26
28
|
submitOnEnter?: boolean;
|
|
29
|
+
/** Files added to the prompt, by any of the three routes people actually
|
|
30
|
+
* use: the attach button, a paste, or a drop anywhere on the card. Providing
|
|
31
|
+
* it is what turns all three on. */
|
|
32
|
+
onFiles?: (files: File[]) => void;
|
|
33
|
+
/** `accept` for the attach button's picker, e.g. `"image/*"`. */
|
|
34
|
+
accept?: string;
|
|
27
35
|
/** Visual variant - "fixed" for bottom-fixed elevated prompt */
|
|
28
36
|
variant?: PromptVariant;
|
|
37
|
+
/** How the card is divided up. `panel` keeps the toolbar as a filled footer
|
|
38
|
+
* under a rule; `seamless` makes the whole card one writing surface with the
|
|
39
|
+
* controls floating on it — the shape most agent composers use.
|
|
40
|
+
* @default "panel" */
|
|
41
|
+
appearance?: PromptAppearance;
|
|
29
42
|
}
|
|
30
43
|
export interface PromptTextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'defaultValue' | 'onChange' | 'rows' | 'disabled' | 'children'> {
|
|
31
44
|
/** Override placeholder from context */
|
|
@@ -34,6 +47,8 @@ export interface PromptTextareaProps extends Omit<React.TextareaHTMLAttributes<H
|
|
|
34
47
|
onChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
|
|
35
48
|
/** Composed with internal submit-on-enter logic */
|
|
36
49
|
onKeyDown?: React.KeyboardEventHandler<HTMLTextAreaElement>;
|
|
50
|
+
/** Composed with the prompt's paste-to-attach behaviour */
|
|
51
|
+
onPaste?: React.ClipboardEventHandler<HTMLTextAreaElement>;
|
|
37
52
|
}
|
|
38
53
|
export interface PromptToolbarProps {
|
|
39
54
|
children: React.ReactNode;
|
|
@@ -79,6 +94,55 @@ export interface PromptModeButtonProps {
|
|
|
79
94
|
disabled?: boolean;
|
|
80
95
|
className?: string;
|
|
81
96
|
}
|
|
97
|
+
/** One thing attached to the prompt, as the strip needs to render it. */
|
|
98
|
+
export interface PromptAttachment {
|
|
99
|
+
id: string;
|
|
100
|
+
name: string;
|
|
101
|
+
/** Size in bytes. Shown beside the name when known. */
|
|
102
|
+
size?: number;
|
|
103
|
+
/** Object URL or data URI. An image gets a thumbnail instead of an icon. */
|
|
104
|
+
previewUrl?: string;
|
|
105
|
+
}
|
|
106
|
+
export interface PromptAttachmentsProps {
|
|
107
|
+
items: PromptAttachment[];
|
|
108
|
+
/** Omit to render the strip read-only. */
|
|
109
|
+
onRemove?: (id: string) => void;
|
|
110
|
+
className?: string;
|
|
111
|
+
}
|
|
112
|
+
export interface PromptAttachProps {
|
|
113
|
+
/** Accessible name.
|
|
114
|
+
* @default "Attach files" */
|
|
115
|
+
'aria-label'?: string;
|
|
116
|
+
/** Custom glyph. Defaults to a plus. */
|
|
117
|
+
children?: React.ReactNode;
|
|
118
|
+
/** Overrides the prompt's own `accept` for this control. */
|
|
119
|
+
accept?: string;
|
|
120
|
+
/** @default true */
|
|
121
|
+
multiple?: boolean;
|
|
122
|
+
disabled?: boolean;
|
|
123
|
+
className?: string;
|
|
124
|
+
}
|
|
125
|
+
export interface PromptSelectProps {
|
|
126
|
+
/** Leading glyph — says what the choice is about, so the visible text can be
|
|
127
|
+
* the choice itself. */
|
|
128
|
+
icon?: React.ReactNode;
|
|
129
|
+
/** Accessible name. The trigger shows the current choice, not this. */
|
|
130
|
+
'aria-label': string;
|
|
131
|
+
/** Controlled value */
|
|
132
|
+
value?: SelectValue | null;
|
|
133
|
+
/** Default value for uncontrolled usage */
|
|
134
|
+
defaultValue?: SelectValue;
|
|
135
|
+
/** Called when the choice changes */
|
|
136
|
+
onValueChange?: (value: SelectValue | null) => void;
|
|
137
|
+
/** The choices. Omit and pass `Select.Item` children for richer options. */
|
|
138
|
+
options?: SelectOption[];
|
|
139
|
+
children?: React.ReactNode;
|
|
140
|
+
/** Shown before anything is chosen */
|
|
141
|
+
placeholder?: string;
|
|
142
|
+
/** Disabled independently of the prompt's own disabled state */
|
|
143
|
+
disabled?: boolean;
|
|
144
|
+
className?: string;
|
|
145
|
+
}
|
|
82
146
|
export interface PromptUsageProps {
|
|
83
147
|
children: React.ReactNode;
|
|
84
148
|
className?: string;
|
|
@@ -102,10 +166,14 @@ interface PromptContextValue {
|
|
|
102
166
|
submitOnEnter: boolean;
|
|
103
167
|
handleSubmit: () => void;
|
|
104
168
|
textareaRef: React.RefObject<HTMLTextAreaElement | null>;
|
|
169
|
+
accept?: string;
|
|
170
|
+
/** Undefined when the consumer has not opted into files at all, which is how
|
|
171
|
+
* Attach knows to disable itself and the root knows not to accept drops. */
|
|
172
|
+
onFiles?: (files: File[]) => void;
|
|
105
173
|
}
|
|
106
174
|
declare function usePromptContext(): PromptContextValue;
|
|
107
|
-
declare function PromptRoot({ children, value: controlledValue, defaultValue, onChange, onSubmit, placeholder, disabled, loading, minRows, maxRows, autoResize, submitOnEnter, variant, className, ...htmlProps }: PromptProps): import("react/jsx-runtime").JSX.Element;
|
|
108
|
-
declare function PromptTextarea({ placeholder: overridePlaceholder, className, onChange, onKeyDown, 'aria-label': ariaLabel, ...htmlProps }: PromptTextareaProps): import("react/jsx-runtime").JSX.Element;
|
|
175
|
+
declare function PromptRoot({ children, value: controlledValue, defaultValue, onChange, onSubmit, placeholder, disabled, loading, minRows, maxRows, autoResize, submitOnEnter, variant, appearance, onFiles, accept, className, ...htmlProps }: PromptProps): import("react/jsx-runtime").JSX.Element;
|
|
176
|
+
declare function PromptTextarea({ placeholder: overridePlaceholder, className, onChange, onKeyDown, onPaste, 'aria-label': ariaLabel, ...htmlProps }: PromptTextareaProps): import("react/jsx-runtime").JSX.Element;
|
|
109
177
|
declare function PromptToolbar({ children, className }: PromptToolbarProps): import("react/jsx-runtime").JSX.Element;
|
|
110
178
|
declare function PromptTabs({ children, className }: PromptTabsProps): import("react/jsx-runtime").JSX.Element;
|
|
111
179
|
declare function PromptTab({ children, active, onClick, className }: PromptTabProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -113,6 +181,30 @@ declare function PromptActions({ children, className }: PromptActionsProps): imp
|
|
|
113
181
|
declare function PromptInfo({ children, className }: PromptInfoProps): import("react/jsx-runtime").JSX.Element;
|
|
114
182
|
declare function PromptActionButton({ children, 'aria-label': ariaLabel, onClick, disabled: buttonDisabled, className, }: PromptActionButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
115
183
|
declare function PromptModeButton({ children, onClick, active, disabled: buttonDisabled, className, }: PromptModeButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
184
|
+
/**
|
|
185
|
+
* What is going with the message. Renders above the textarea rather than under
|
|
186
|
+
* the toolbar, because these are part of what you are sending and not a
|
|
187
|
+
* setting on the sending.
|
|
188
|
+
*/
|
|
189
|
+
declare function PromptAttachments({ items, onRemove, className }: PromptAttachmentsProps): import("react/jsx-runtime").JSX.Element | null;
|
|
190
|
+
/**
|
|
191
|
+
* The attach control. Does nothing on its own — it opens a picker and hands
|
|
192
|
+
* the result to the prompt's `onFiles`, the same callback that paste and drop
|
|
193
|
+
* go through, so a consumer writes one handler for all three.
|
|
194
|
+
*/
|
|
195
|
+
declare function PromptAttach({ 'aria-label': ariaLabel, children, accept: acceptOverride, multiple, disabled: buttonDisabled, className, }: PromptAttachProps): import("react/jsx-runtime").JSX.Element;
|
|
196
|
+
/**
|
|
197
|
+
* A choice that scopes the submission — model, agent, tone, which project this
|
|
198
|
+
* runs against. `ModeButton` covers a setting you toggle; this covers one you
|
|
199
|
+
* pick from a list, which every non-trivial composer ends up needing.
|
|
200
|
+
*
|
|
201
|
+
* It is a `Select` throughout, in its ghost variant, so the popup, keyboard
|
|
202
|
+
* handling and selection state are the same ones the rest of the library uses.
|
|
203
|
+
* The trigger shows the current choice rather than a field label, because in a
|
|
204
|
+
* toolbar the choice is the only part worth the width — what kind of choice it
|
|
205
|
+
* is comes from the icon and the accessible name.
|
|
206
|
+
*/
|
|
207
|
+
declare function PromptSelect({ icon, 'aria-label': ariaLabel, options, children, placeholder, disabled: selectDisabled, className, ...selectProps }: PromptSelectProps): import("react/jsx-runtime").JSX.Element;
|
|
116
208
|
declare function PromptUsage({ children, className }: PromptUsageProps): import("react/jsx-runtime").JSX.Element;
|
|
117
209
|
declare function PromptSubmit({ children, 'aria-label': ariaLabel, className, }: PromptSubmitProps): import("react/jsx-runtime").JSX.Element;
|
|
118
210
|
export declare const Prompt: typeof PromptRoot & {
|
|
@@ -124,9 +216,12 @@ export declare const Prompt: typeof PromptRoot & {
|
|
|
124
216
|
Info: typeof PromptInfo;
|
|
125
217
|
ActionButton: typeof PromptActionButton;
|
|
126
218
|
ModeButton: typeof PromptModeButton;
|
|
219
|
+
Select: typeof PromptSelect;
|
|
220
|
+
Attach: typeof PromptAttach;
|
|
221
|
+
Attachments: typeof PromptAttachments;
|
|
127
222
|
Usage: typeof PromptUsage;
|
|
128
223
|
Submit: typeof PromptSubmit;
|
|
129
224
|
};
|
|
130
|
-
export { PromptRoot, PromptTextarea, PromptToolbar, PromptTabs, PromptTab, PromptActions, PromptInfo, PromptActionButton, PromptModeButton, PromptUsage, PromptSubmit, };
|
|
225
|
+
export { PromptRoot, PromptTextarea, PromptToolbar, PromptTabs, PromptTab, PromptActions, PromptInfo, PromptActionButton, PromptModeButton, PromptSelect, PromptAttach, PromptAttachments, PromptUsage, PromptSubmit, };
|
|
131
226
|
export { usePromptContext };
|
|
132
227
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Prompt/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Prompt/index.tsx"],"names":[],"mappings":"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"}
|