@crewlethq/ui 0.60.0 → 0.62.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 +8 -0
- package/dist/Combobox/index.js +1 -1
- package/dist/PrincipalPicker/index.js +2 -2
- package/dist/Prose/Prose.d.ts +5 -2
- package/dist/Prose/index.js +1 -1
- package/dist/{Prose-BTXNFT2Q.css → Prose-OMV2T6NT.css} +19 -2
- package/dist/RichEditor/index.js +1 -1
- package/dist/SendButton/SendButton.d.ts +25 -11
- package/dist/SendButton/index.d.ts +1 -0
- package/dist/SendButton/index.js +1 -1
- package/dist/SendButton-L4UX54XS.css +173 -0
- package/dist/ThinkingIndicator/ThinkingIndicator.d.ts +37 -0
- package/dist/ThinkingIndicator/index.d.ts +3 -0
- package/dist/ThinkingIndicator/index.js +3 -0
- package/dist/ThinkingIndicator-QJMX2TXC.css +122 -0
- package/dist/ValueField/ValueField.d.ts +117 -0
- package/dist/ValueField/index.d.ts +10 -0
- package/dist/ValueField/index.js +15 -0
- package/dist/ValueField/references.d.ts +66 -0
- package/dist/ValueField-EIBD6RYS.css +13 -0
- package/dist/{chunk-V57TGM2L.js → chunk-5MN2HISF.js} +1 -1
- package/dist/{chunk-JCSA3XVH.js → chunk-DVVP27OD.js} +1 -1
- package/dist/chunk-E2MIUNUU.js +19 -0
- package/dist/{chunk-RPHQNXE5.js → chunk-IOZFPFQS.js} +1 -1
- package/dist/chunk-OD3Z6QKN.js +237 -0
- package/dist/chunk-PBR5C5MX.js +33 -0
- package/dist/{chunk-VC2M2E7N.js → chunk-PK2P2QH6.js} +4 -3
- package/dist/generated/index.d.ts +2 -0
- package/dist/generated/index.js +15 -13
- package/dist/index.js +15 -13
- package/dist/styles.css +337 -3
- package/package.json +3 -3
- package/dist/chunk-XN5L5E5D.js +0 -27
- package/dist/{Editor-EQBOZPXS.js → Editor-DM7X24B7.js} +1 -1
- /package/dist/{chunk-DJV2FVD2.js → chunk-UOTNQV6D.js} +0 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Completing a `${NAME}` reference from a list of stored entry names.
|
|
3
|
+
*
|
|
4
|
+
* A value field takes either a value or a reference to one, and the reference
|
|
5
|
+
* has to be typed exactly: a name off by a character resolves to nothing,
|
|
6
|
+
* which reads as configured on every surface while whatever it feeds refuses
|
|
7
|
+
* every use. These helpers are what lets a field offer the names it knows
|
|
8
|
+
* rather than leaving the reader to copy one across from another screen.
|
|
9
|
+
*/
|
|
10
|
+
/** The shape of a reference's name: a letter or underscore, then letters, digits and underscores. */
|
|
11
|
+
export declare const REFERENCE_NAME_PATTERN = "[A-Za-z_][A-Za-z0-9_]*";
|
|
12
|
+
/**
|
|
13
|
+
* Whether a value is exactly one `${NAME}` reference, trimmed first.
|
|
14
|
+
*
|
|
15
|
+
* This is the default a [ValueField] asks when deciding whether a secret's
|
|
16
|
+
* value is a name (readable) or a credential (masked). A product whose
|
|
17
|
+
* reference grammar is stricter passes its own predicate as `isReference`.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isWholeReference(value: string): boolean;
|
|
20
|
+
/** Where a reference is being typed, and what has been typed of it. */
|
|
21
|
+
export interface ReferenceQuery {
|
|
22
|
+
/** Index of the `$` that opens it. */
|
|
23
|
+
start: number;
|
|
24
|
+
/** What follows the `$`, with any `{` stripped. */
|
|
25
|
+
query: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The `${...}` under the caret, or null.
|
|
29
|
+
*
|
|
30
|
+
* IT SCANS BACK FROM THE CARET rather than matching the whole value, because
|
|
31
|
+
* a field can hold a reference among other text and the one being edited is
|
|
32
|
+
* the one being completed. The scan stops at whitespace and at a `}`: the
|
|
33
|
+
* first because no name contains one, the second because a reference that is
|
|
34
|
+
* already closed is finished, and offering to complete it again would replace
|
|
35
|
+
* a name somebody had chosen.
|
|
36
|
+
*/
|
|
37
|
+
export declare function referenceAt(value: string, caret: number): ReferenceQuery | null;
|
|
38
|
+
/**
|
|
39
|
+
* The names ordered by how closely they match what has been typed.
|
|
40
|
+
*
|
|
41
|
+
* Three tiers, in the order somebody means them: a name that STARTS with the
|
|
42
|
+
* query, then one that CONTAINS it, then one whose letters appear in order.
|
|
43
|
+
* Case is ignored, because a name is upper snake case and nobody holds shift
|
|
44
|
+
* to filter a list. An empty query keeps every name in the order given: the
|
|
45
|
+
* point of typing `$` alone is to see what there is.
|
|
46
|
+
*/
|
|
47
|
+
export declare function rankReferences(names: readonly string[], query: string): string[];
|
|
48
|
+
/**
|
|
49
|
+
* The value with the chosen name written in as a whole `${NAME}`, and where
|
|
50
|
+
* the caret goes.
|
|
51
|
+
*
|
|
52
|
+
* CLOSED BRACES, always, and the caret lands after them: a reference resolves
|
|
53
|
+
* only when it is whole, and a half-written one is a literal that reaches its
|
|
54
|
+
* destination as the characters somebody typed.
|
|
55
|
+
*/
|
|
56
|
+
export declare function completeReference(value: string, caret: number, at: ReferenceQuery, name: string): {
|
|
57
|
+
value: string;
|
|
58
|
+
caret: number;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* The scheme a value already carries, `https://`, `http://` or empty.
|
|
62
|
+
*
|
|
63
|
+
* Matched without regard to case, because a pasted address is whatever the
|
|
64
|
+
* address bar had.
|
|
65
|
+
*/
|
|
66
|
+
export declare function urlSchemeOf(value: string): '' | 'https://' | 'http://';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* ValueField: a labelled value with the control its kind needs.
|
|
3
|
+
*
|
|
4
|
+
* The row is FormField's and every control is the package's own; what is
|
|
5
|
+
* drawn here is the mark a label may carry, such as a third party's logo,
|
|
6
|
+
* set on the label's line ahead of its words.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
.crewlet-value-field__label {
|
|
10
|
+
display: inline-flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: var(--spacing-1);
|
|
13
|
+
}
|
|
@@ -9,7 +9,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
9
9
|
var engine = null;
|
|
10
10
|
var loading = null;
|
|
11
11
|
function loadEngine() {
|
|
12
|
-
loading ??= import('./Editor-
|
|
12
|
+
loading ??= import('./Editor-DM7X24B7.js').then(
|
|
13
13
|
(module) => {
|
|
14
14
|
engine = module.Editor;
|
|
15
15
|
return engine;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
2
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
+
import './ThinkingIndicator-QJMX2TXC.css';
|
|
4
|
+
import { ProductMark } from '@crewlethq/icons/product-mark';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
function ThinkingIndicator({ status, label = "Thinking", className, ...rest }) {
|
|
8
|
+
return /* @__PURE__ */ jsxs("div", { ...rest, className: cx("crewlet-thinking", className), children: [
|
|
9
|
+
/* @__PURE__ */ jsx(ProductMark, { product: "assistant", size: "md", className: "crewlet-thinking__mark" }),
|
|
10
|
+
status === void 0 || status === "" ? null : (
|
|
11
|
+
// Keyed by its words, so a new step's line fades in rather than
|
|
12
|
+
// swapping in place mid shimmer.
|
|
13
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-thinking__status", "aria-hidden": "true", children: status }, status)
|
|
14
|
+
),
|
|
15
|
+
/* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx("span", { role: "status", children: label }) })
|
|
16
|
+
] });
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { ThinkingIndicator };
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { Select } from './chunk-XQZ6EWOE.js';
|
|
2
|
+
import { Combobox } from './chunk-PK2P2QH6.js';
|
|
3
|
+
import { FormField, Textarea, InputAffix } from './chunk-TLIJG4TP.js';
|
|
4
|
+
import './Input-GMOWHZRG.css';
|
|
5
|
+
import './VisuallyHidden-AOEXU5EB.css';
|
|
6
|
+
import './HitArea-QUOS6ZDJ.css';
|
|
7
|
+
import './Combobox-GBCWXWEB.css';
|
|
8
|
+
import './Select-F526HLNR.css';
|
|
9
|
+
import './ValueField-EIBD6RYS.css';
|
|
10
|
+
import { useId, useRef, useState } from 'react';
|
|
11
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
12
|
+
|
|
13
|
+
// src/ValueField/references.ts
|
|
14
|
+
var REFERENCE_NAME_PATTERN = "[A-Za-z_][A-Za-z0-9_]*";
|
|
15
|
+
var WHOLE_REFERENCE = new RegExp(`^\\$\\{${REFERENCE_NAME_PATTERN}\\}$`);
|
|
16
|
+
function isWholeReference(value) {
|
|
17
|
+
return WHOLE_REFERENCE.test(value.trim());
|
|
18
|
+
}
|
|
19
|
+
function referenceAt(value, caret) {
|
|
20
|
+
const head = value.slice(0, caret);
|
|
21
|
+
for (let i = head.length - 1; i >= 0; i--) {
|
|
22
|
+
const ch = head.charAt(i);
|
|
23
|
+
if (ch === "$") {
|
|
24
|
+
const rest = head.slice(i + 1);
|
|
25
|
+
const name = rest.startsWith("{") ? rest.slice(1) : rest;
|
|
26
|
+
if (!/^[A-Za-z0-9_]*$/.test(name)) return null;
|
|
27
|
+
return { start: i, query: name };
|
|
28
|
+
}
|
|
29
|
+
if (/\s/.test(ch) || ch === "}") return null;
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
function rankReferences(names, query) {
|
|
34
|
+
const q = query.toLowerCase();
|
|
35
|
+
if (q === "") return [...names];
|
|
36
|
+
const scored = [];
|
|
37
|
+
names.forEach((name, index) => {
|
|
38
|
+
const lower = name.toLowerCase();
|
|
39
|
+
if (lower.startsWith(q)) scored.push({ name, tier: 0, index });
|
|
40
|
+
else if (lower.includes(q)) scored.push({ name, tier: 1, index });
|
|
41
|
+
else if (isSubsequence(lower, q)) scored.push({ name, tier: 2, index });
|
|
42
|
+
});
|
|
43
|
+
return scored.sort((a, b) => a.tier - b.tier || a.index - b.index).map((s) => s.name);
|
|
44
|
+
}
|
|
45
|
+
function isSubsequence(s, q) {
|
|
46
|
+
let at = 0;
|
|
47
|
+
for (const ch of q) {
|
|
48
|
+
at = s.indexOf(ch, at);
|
|
49
|
+
if (at < 0) return false;
|
|
50
|
+
at += 1;
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
function completeReference(value, caret, at, name) {
|
|
55
|
+
const written = "${" + name + "}";
|
|
56
|
+
const head = value.slice(0, at.start);
|
|
57
|
+
const tail = value.slice(caret).replace(/^\}/, "");
|
|
58
|
+
return { value: head + written + tail, caret: head.length + written.length };
|
|
59
|
+
}
|
|
60
|
+
function urlSchemeOf(value) {
|
|
61
|
+
const lower = value.toLowerCase();
|
|
62
|
+
if (lower.startsWith("https://")) return "https://";
|
|
63
|
+
if (lower.startsWith("http://")) return "http://";
|
|
64
|
+
return "";
|
|
65
|
+
}
|
|
66
|
+
var DEFAULT_LABELS = {
|
|
67
|
+
references: "Secrets",
|
|
68
|
+
choose: "Choose one"
|
|
69
|
+
};
|
|
70
|
+
function ValueField({
|
|
71
|
+
label,
|
|
72
|
+
mark,
|
|
73
|
+
kind = "text",
|
|
74
|
+
value,
|
|
75
|
+
onChange,
|
|
76
|
+
help,
|
|
77
|
+
error,
|
|
78
|
+
placeholder,
|
|
79
|
+
choices,
|
|
80
|
+
disabled,
|
|
81
|
+
required,
|
|
82
|
+
markRequired,
|
|
83
|
+
autoFocus,
|
|
84
|
+
references,
|
|
85
|
+
onReferencesNeeded,
|
|
86
|
+
isReference = isWholeReference,
|
|
87
|
+
rows = 3,
|
|
88
|
+
helperOnFocus,
|
|
89
|
+
labels,
|
|
90
|
+
className
|
|
91
|
+
}) {
|
|
92
|
+
const words = { ...DEFAULT_LABELS, ...labels };
|
|
93
|
+
const id = useId();
|
|
94
|
+
const affixId = `${id}-affix`;
|
|
95
|
+
const picker = kind === "choice" || kind === "handle";
|
|
96
|
+
const reference = isReference(value);
|
|
97
|
+
const masked = kind === "secret" && !reference;
|
|
98
|
+
const tight = kind === "url" || kind === "id" || kind === "email";
|
|
99
|
+
const own = kind === "url" ? urlSchemeOf(value) : "";
|
|
100
|
+
const referenceBase = own === "" && value.trimStart().startsWith("$");
|
|
101
|
+
const affix = kind === "url" && own !== "http://" && !referenceBase ? "https://" : "";
|
|
102
|
+
const shown = affix ? value.slice(own.length) : value;
|
|
103
|
+
const box = useRef(null);
|
|
104
|
+
const [typing, setTyping] = useState(null);
|
|
105
|
+
const offered = typing && references?.length ? rankReferences(references, typing.query) : [];
|
|
106
|
+
function reconsider(text, caretAt) {
|
|
107
|
+
if (affix) return;
|
|
108
|
+
const caret = masked || caretAt === null ? text.length : caretAt;
|
|
109
|
+
const next = referenceAt(text, caret);
|
|
110
|
+
if (next && !typing) onReferencesNeeded?.();
|
|
111
|
+
setTyping(next);
|
|
112
|
+
}
|
|
113
|
+
function reconsiderFrom(input) {
|
|
114
|
+
reconsider(input.value, masked ? null : input.selectionStart);
|
|
115
|
+
}
|
|
116
|
+
function choose(name) {
|
|
117
|
+
const input = box.current;
|
|
118
|
+
if (!input || !typing) return;
|
|
119
|
+
const caret = masked ? input.value.length : input.selectionStart ?? input.value.length;
|
|
120
|
+
const next = completeReference(input.value, caret, typing, name);
|
|
121
|
+
setTyping(null);
|
|
122
|
+
onChange(next.value);
|
|
123
|
+
queueMicrotask(() => {
|
|
124
|
+
input.setSelectionRange(next.caret, next.caret);
|
|
125
|
+
input.focus();
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
function changed(raw) {
|
|
129
|
+
const typed = tight ? raw.replace(/\s+/g, "") : raw;
|
|
130
|
+
let next = typed;
|
|
131
|
+
if (affix) {
|
|
132
|
+
const carried = urlSchemeOf(typed);
|
|
133
|
+
const escapes = carried === "http://" || own === "" && typed.trimStart().startsWith("$");
|
|
134
|
+
next = escapes ? typed : affix + typed.slice(carried.length);
|
|
135
|
+
}
|
|
136
|
+
onChange(next);
|
|
137
|
+
return next;
|
|
138
|
+
}
|
|
139
|
+
const options = picker ? choiceOptions(choices, value) : [];
|
|
140
|
+
const chosen = picker ? choices?.find((choice) => choice.value === value) : void 0;
|
|
141
|
+
const helper = chosen?.hint && help ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
142
|
+
help,
|
|
143
|
+
" ",
|
|
144
|
+
chosen.hint
|
|
145
|
+
] }) : chosen?.hint ?? help;
|
|
146
|
+
return /* @__PURE__ */ jsx(
|
|
147
|
+
FormField,
|
|
148
|
+
{
|
|
149
|
+
htmlFor: id,
|
|
150
|
+
className,
|
|
151
|
+
label: mark ? /* @__PURE__ */ jsxs("span", { className: "crewlet-value-field__label", children: [
|
|
152
|
+
mark,
|
|
153
|
+
label
|
|
154
|
+
] }) : label,
|
|
155
|
+
optional: required === false,
|
|
156
|
+
requiredNews: required === true && markRequired === true,
|
|
157
|
+
helper,
|
|
158
|
+
helperOnFocus,
|
|
159
|
+
error,
|
|
160
|
+
describedBy: affix ? affixId : void 0,
|
|
161
|
+
children: (field) => picker ? /* @__PURE__ */ jsx(
|
|
162
|
+
Select,
|
|
163
|
+
{
|
|
164
|
+
id: field.id,
|
|
165
|
+
value,
|
|
166
|
+
onChange: (next) => onChange(String(next)),
|
|
167
|
+
options,
|
|
168
|
+
placeholder: words.choose,
|
|
169
|
+
disabled: disabled === true,
|
|
170
|
+
autoFocus,
|
|
171
|
+
error: field.invalid,
|
|
172
|
+
required: required === true,
|
|
173
|
+
"aria-describedby": field.describedBy
|
|
174
|
+
}
|
|
175
|
+
) : kind === "multiline" ? /* @__PURE__ */ jsx(
|
|
176
|
+
Textarea,
|
|
177
|
+
{
|
|
178
|
+
id: field.id,
|
|
179
|
+
rows,
|
|
180
|
+
value,
|
|
181
|
+
placeholder,
|
|
182
|
+
disabled,
|
|
183
|
+
autoComplete: "off",
|
|
184
|
+
spellCheck: true,
|
|
185
|
+
autoFocus,
|
|
186
|
+
"aria-describedby": field.describedBy,
|
|
187
|
+
"aria-required": required === true || void 0,
|
|
188
|
+
error: field.invalid,
|
|
189
|
+
onChange: (event) => onChange(event.target.value)
|
|
190
|
+
}
|
|
191
|
+
) : /* @__PURE__ */ jsx(
|
|
192
|
+
Combobox,
|
|
193
|
+
{
|
|
194
|
+
id: field.id,
|
|
195
|
+
ref: box,
|
|
196
|
+
appearance: reference ? "reference" : "default",
|
|
197
|
+
type: masked ? "password" : "text",
|
|
198
|
+
inputMode: kind === "email" ? "email" : kind === "url" ? "url" : void 0,
|
|
199
|
+
value: shown,
|
|
200
|
+
placeholder,
|
|
201
|
+
disabled,
|
|
202
|
+
autoFocus,
|
|
203
|
+
error: field.invalid,
|
|
204
|
+
"aria-describedby": field.describedBy,
|
|
205
|
+
"aria-required": required === true || void 0,
|
|
206
|
+
leading: affix ? /* @__PURE__ */ jsx(InputAffix, { text: affix, id: affixId }) : void 0,
|
|
207
|
+
label: words.references,
|
|
208
|
+
mono: true,
|
|
209
|
+
tabCommits: true,
|
|
210
|
+
options: offered.map((name) => ({ value: name })),
|
|
211
|
+
onCommit: (option) => choose(option.value),
|
|
212
|
+
open: offered.length > 0,
|
|
213
|
+
onOpenChange: (open) => {
|
|
214
|
+
if (!open) setTyping(null);
|
|
215
|
+
},
|
|
216
|
+
onValueChange: (raw) => {
|
|
217
|
+
const next = changed(raw);
|
|
218
|
+
reconsider(next, box.current?.selectionStart ?? null);
|
|
219
|
+
},
|
|
220
|
+
onKeyUp: (event) => reconsiderFrom(event.currentTarget),
|
|
221
|
+
onClick: (event) => reconsiderFrom(event.currentTarget),
|
|
222
|
+
onBlur: () => setTyping(null)
|
|
223
|
+
}
|
|
224
|
+
)
|
|
225
|
+
}
|
|
226
|
+
);
|
|
227
|
+
}
|
|
228
|
+
function choiceOptions(choices, value) {
|
|
229
|
+
const all = choices ?? [];
|
|
230
|
+
const rows = all.map((choice) => ({ value: choice.value, label: choice.label, description: choice.hint }));
|
|
231
|
+
if (value !== "" && !all.some((choice) => choice.value === value)) {
|
|
232
|
+
return [{ value, label: value }, ...rows];
|
|
233
|
+
}
|
|
234
|
+
return rows;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export { REFERENCE_NAME_PATTERN, ValueField, completeReference, isWholeReference, rankReferences, referenceAt, urlSchemeOf };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { IconButton } from './chunk-2XWFWNDT.js';
|
|
2
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
+
import './SendButton-L4UX54XS.css';
|
|
4
|
+
import { forwardRef } from 'react';
|
|
5
|
+
import { ArrowUpGlyph, SquareGlyph } from '@crewlethq/icons/glyphs';
|
|
6
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var SEND_BUTTON_LABELS = { send: "Send", stop: "Stop" };
|
|
9
|
+
var SendButton = forwardRef(function SendButton2({ mode, onPress, disabledReason, labels: overrides, className, title, ...rest }, ref) {
|
|
10
|
+
const labels = overrides ? { ...SEND_BUTTON_LABELS, ...overrides } : SEND_BUTTON_LABELS;
|
|
11
|
+
const stopping = mode === "stop";
|
|
12
|
+
const name = stopping ? labels.stop : labels.send;
|
|
13
|
+
return /* @__PURE__ */ jsx(
|
|
14
|
+
IconButton,
|
|
15
|
+
{
|
|
16
|
+
...rest,
|
|
17
|
+
ref,
|
|
18
|
+
size: "md",
|
|
19
|
+
variant: stopping ? "secondary" : "primary",
|
|
20
|
+
label: name,
|
|
21
|
+
title: disabledReason ?? title ?? name,
|
|
22
|
+
icon: /* @__PURE__ */ jsxs("span", { className: "crewlet-send-button__glyphs", "aria-hidden": "true", children: [
|
|
23
|
+
/* @__PURE__ */ jsx(ArrowUpGlyph, { className: "crewlet-send-button__glyph crewlet-send-button__glyph--send" }),
|
|
24
|
+
/* @__PURE__ */ jsx(SquareGlyph, { filled: true, className: "crewlet-send-button__glyph crewlet-send-button__glyph--stop" })
|
|
25
|
+
] }),
|
|
26
|
+
disabledReason,
|
|
27
|
+
className: cx("crewlet-send-button", `crewlet-send-button--${mode}`, className),
|
|
28
|
+
onClick: onPress
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
export { SEND_BUTTON_LABELS, SendButton };
|
|
@@ -160,6 +160,7 @@ var Combobox = forwardRef(function Combobox2({
|
|
|
160
160
|
] })
|
|
161
161
|
] });
|
|
162
162
|
}
|
|
163
|
+
const announcesRole = rest.type !== "password" || lists;
|
|
163
164
|
return /* @__PURE__ */ jsxs("div", { className: cx("crewlet-combobox", containerClassName), ref: listbox.anchorRef, children: [
|
|
164
165
|
/* @__PURE__ */ jsx(
|
|
165
166
|
Input,
|
|
@@ -169,9 +170,9 @@ var Combobox = forwardRef(function Combobox2({
|
|
|
169
170
|
id: fieldId,
|
|
170
171
|
className,
|
|
171
172
|
value,
|
|
172
|
-
role: "combobox",
|
|
173
|
-
"aria-autocomplete": "list",
|
|
174
|
-
"aria-expanded": lists,
|
|
173
|
+
role: announcesRole ? "combobox" : void 0,
|
|
174
|
+
"aria-autocomplete": announcesRole ? "list" : void 0,
|
|
175
|
+
"aria-expanded": announcesRole ? lists : void 0,
|
|
175
176
|
"aria-controls": lists ? listbox.listId : void 0,
|
|
176
177
|
"aria-activedescendant": lists && offered.length > 0 ? listbox.optionId(listbox.active) : void 0,
|
|
177
178
|
autoComplete: "off",
|
|
@@ -207,6 +207,7 @@ export * from '../ThemeGallery/index.js';
|
|
|
207
207
|
export * from '../ThemeSwatch/index.js';
|
|
208
208
|
export * from '../ThemeSwitcher/index.js';
|
|
209
209
|
export * from '../ThemeToggle/index.js';
|
|
210
|
+
export * from '../ThinkingIndicator/index.js';
|
|
210
211
|
export * from '../TileGrid/index.js';
|
|
211
212
|
export * from '../TimeRangePicker/index.js';
|
|
212
213
|
export * from '../TimeWindowPicker/index.js';
|
|
@@ -218,6 +219,7 @@ export * from '../Tree/index.js';
|
|
|
218
219
|
export * from '../TreeCanvas/index.js';
|
|
219
220
|
export * from '../TreeGrid/index.js';
|
|
220
221
|
export * from '../TypeSpecimen/index.js';
|
|
222
|
+
export * from '../ValueField/index.js';
|
|
221
223
|
export * from '../VersionCompare/index.js';
|
|
222
224
|
export * from '../VersionTimeline/index.js';
|
|
223
225
|
export * from '../VisuallyHidden/index.js';
|
package/dist/generated/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import '../chunk-
|
|
1
|
+
import '../chunk-UOTNQV6D.js';
|
|
2
|
+
export { VersionTimeline } from '../chunk-TUNEMQXF.js';
|
|
2
3
|
export { WidgetFrame } from '../chunk-3DMPZZQ6.js';
|
|
3
4
|
export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from '../chunk-FEJANUZK.js';
|
|
4
5
|
export { TreeCanvas } from '../chunk-5NJ4BIUA.js';
|
|
5
6
|
export { TypeSpecimen } from '../chunk-JKAFEFFC.js';
|
|
6
7
|
export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-NL72YZWF.js';
|
|
7
|
-
export {
|
|
8
|
+
export { REFERENCE_NAME_PATTERN, ValueField, completeReference, isWholeReference, rankReferences, referenceAt, urlSchemeOf } from '../chunk-OD3Z6QKN.js';
|
|
8
9
|
export { DensitySwitcher, ThemeSwitcher } from '../chunk-53NTMTRM.js';
|
|
9
10
|
export { ThemeToggle } from '../chunk-RLFPBRN4.js';
|
|
10
11
|
export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
|
|
12
|
+
export { ThinkingIndicator } from '../chunk-E2MIUNUU.js';
|
|
11
13
|
export { TileGrid } from '../chunk-Q6CQMS6R.js';
|
|
12
14
|
export { TIME_RANGE_CUSTOM, TIME_RANGE_PICKER_LABELS, TimeRangePicker, timeRangeFieldKey, timeRangeProblem } from '../chunk-LND6XSXN.js';
|
|
13
15
|
export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-SG2375ZY.js';
|
|
@@ -32,16 +34,16 @@ import '../chunk-73GUXYYE.js';
|
|
|
32
34
|
export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-W2Q5DZJB.js';
|
|
33
35
|
export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
|
|
34
36
|
export { SelectionBar } from '../chunk-6Z4JZHRB.js';
|
|
35
|
-
export { SEND_BUTTON_LABELS, SendButton } from '../chunk-
|
|
36
|
-
export { SettingsTable, SettingsTableRow } from '../chunk-4RKTZSEW.js';
|
|
37
|
+
export { SEND_BUTTON_LABELS, SendButton } from '../chunk-PBR5C5MX.js';
|
|
37
38
|
export { SetupWizard } from '../chunk-T4THNJ6E.js';
|
|
39
|
+
export { SettingsTable, SettingsTableRow } from '../chunk-4RKTZSEW.js';
|
|
38
40
|
export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from '../chunk-B5ZHJWAZ.js';
|
|
39
41
|
export { Select } from '../chunk-XQZ6EWOE.js';
|
|
40
42
|
export { ReviewList } from '../chunk-OJ2QULVH.js';
|
|
43
|
+
export { RichEditor, preloadRichEditor } from '../chunk-5MN2HISF.js';
|
|
44
|
+
export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
|
|
41
45
|
export { canonicalMarkdown, roundTripMarkdown } from '../chunk-SWD4QBL6.js';
|
|
42
46
|
import '../chunk-QH6VYJ3X.js';
|
|
43
|
-
export { RichEditor, preloadRichEditor } from '../chunk-V57TGM2L.js';
|
|
44
|
-
export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
|
|
45
47
|
export { RUN_STATES, RunChip } from '../chunk-75QASA62.js';
|
|
46
48
|
export { STEP_STATES, STEP_STATE_LABELS, StepList, StepStateMark, Stepper, stepDetailPieces } from '../chunk-Z4EKUMZW.js';
|
|
47
49
|
export { FRAME_HELLO_TIMEOUT_MS, FRAME_LOAD_GRACE_MS, SandboxedFrame, SandboxedFrameNotice, SandboxedFramePlaceholder } from '../chunk-WR7UDG7U.js';
|
|
@@ -56,14 +58,14 @@ export { Text } from '../chunk-QP2P6GDQ.js';
|
|
|
56
58
|
export { RESULT_TABLE_CARD_LABELS, RESULT_TABLE_COLLAPSED_ROWS, RESULT_TABLE_MAX_ROWS, ResultTableCard } from '../chunk-OM6CPZB7.js';
|
|
57
59
|
export { Table } from '../chunk-5DJMFRSZ.js';
|
|
58
60
|
export { PresenceStack } from '../chunk-FGRJXZUU.js';
|
|
61
|
+
export { PricingCard } from '../chunk-U3ILLCR2.js';
|
|
59
62
|
export { PresenterView, formatStopwatch } from '../chunk-P5S2SPTK.js';
|
|
60
63
|
export { SLIDE_NAV_LABELS, SlideNav } from '../chunk-DEAFAK3U.js';
|
|
61
64
|
export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-RMEBFYL7.js';
|
|
62
|
-
export {
|
|
63
|
-
export { PrincipalPicker } from '../chunk-RPHQNXE5.js';
|
|
65
|
+
export { PrincipalPicker } from '../chunk-IOZFPFQS.js';
|
|
64
66
|
export { PropertyList } from '../chunk-VBYRA3W6.js';
|
|
65
67
|
export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, ProposalCard } from '../chunk-PFXUEEHT.js';
|
|
66
|
-
export { Prose } from '../chunk-
|
|
68
|
+
export { Prose } from '../chunk-DVVP27OD.js';
|
|
67
69
|
export { PageNote } from '../chunk-CV4NES3P.js';
|
|
68
70
|
export { PEEK_RAIL_LABELS, PEEK_RAIL_MAX_WIDTH, PEEK_RAIL_MIN_WIDTH, PEEK_RAIL_WIDTH, PeekHost, PeekNeighbours, PeekRail, isPlainPress, peekClickHandler, peekRowActivation, usePeekNeighbours, usePeekOrder, usePeekStep } from '../chunk-VBO2GYWX.js';
|
|
69
71
|
export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-EFIURN3U.js';
|
|
@@ -96,8 +98,8 @@ export { AutoGrid, Inline, Spacer, Stack } from '../chunk-ZAC7SKUN.js';
|
|
|
96
98
|
export { Link } from '../chunk-HOP3J622.js';
|
|
97
99
|
export { LinkInterstitial, openExternal } from '../chunk-EQHJTGLY.js';
|
|
98
100
|
import '../chunk-FFMCMSJB.js';
|
|
99
|
-
export { ImageUpload } from '../chunk-PPVWWJIB.js';
|
|
100
101
|
export { IconTile } from '../chunk-3LI4TRUR.js';
|
|
102
|
+
export { ImageUpload } from '../chunk-PPVWWJIB.js';
|
|
101
103
|
export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from '../chunk-5KEVSZ4K.js';
|
|
102
104
|
export { IndicatorAnchor } from '../chunk-27MJPU7G.js';
|
|
103
105
|
export { INLINE_EDITOR_LABELS, InlineEditor } from '../chunk-46VE5TVS.js';
|
|
@@ -111,9 +113,9 @@ export { IDLE_AFTER_MS, useFullscreen, useIdle } from '../chunk-W5XCNEZC.js';
|
|
|
111
113
|
export { Highlight, highlightRanges, highlightTerms } from '../chunk-H6VKCIWV.js';
|
|
112
114
|
import '../chunk-MICRGE3J.js';
|
|
113
115
|
export { EntityChip } from '../chunk-OSKJZNBT.js';
|
|
114
|
-
export { ErrorBoundary } from '../chunk-ZEPUKRO7.js';
|
|
115
116
|
export { EntityList } from '../chunk-OB5N3FV2.js';
|
|
116
117
|
export { StatusCard } from '../chunk-WW4E5EUS.js';
|
|
118
|
+
export { ErrorBoundary } from '../chunk-ZEPUKRO7.js';
|
|
117
119
|
export { Eyebrow } from '../chunk-RK4XPHVG.js';
|
|
118
120
|
export { FactList } from '../chunk-HACEB6L4.js';
|
|
119
121
|
export { FileDrop, FilePickButton, droppedFiles, pickedFiles } from '../chunk-2JHGPXYG.js';
|
|
@@ -147,7 +149,7 @@ export { ColorSwatch } from '../chunk-KA2GAB3N.js';
|
|
|
147
149
|
export { CopyButton, Copyable } from '../chunk-IOTN23FZ.js';
|
|
148
150
|
export { useClipboard, writeClipboard } from '../chunk-STJ7QBC3.js';
|
|
149
151
|
export { useOutcome } from '../chunk-DTIW4CHZ.js';
|
|
150
|
-
export { Combobox } from '../chunk-
|
|
152
|
+
export { Combobox } from '../chunk-PK2P2QH6.js';
|
|
151
153
|
export { CommandPalette } from '../chunk-I74C4TM6.js';
|
|
152
154
|
export { ConfirmModal, Modal } from '../chunk-KVWZDCTQ.js';
|
|
153
155
|
export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from '../chunk-7KHM2FZH.js';
|
|
@@ -221,6 +223,7 @@ export { ARTIFACT_KINDS, ArtifactKindGlyph } from '../chunk-RSKW25Y5.js';
|
|
|
221
223
|
export { ACCESS_DENIED_REASONS, AccessDeniedCard } from '../chunk-QTMUKRTN.js';
|
|
222
224
|
export { EmptyState } from '../chunk-PPUR46MK.js';
|
|
223
225
|
export { Accordion, AccordionItem } from '../chunk-K4U2VDOJ.js';
|
|
226
|
+
export { ADD_PILL_MS, AddPill } from '../chunk-QC2DEQCN.js';
|
|
224
227
|
export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-5UPWU6ZJ.js';
|
|
225
228
|
export { Timeline, TimelineItem } from '../chunk-Z6X3F4H6.js';
|
|
226
229
|
export { Section } from '../chunk-JQ7IFSF6.js';
|
|
@@ -234,7 +237,6 @@ export { CHARACTER_COUNT_LABELS, CHARACTER_COUNT_NEAR, CharacterCount, character
|
|
|
234
237
|
export { DisclosureAnatomy } from '../chunk-ZYO2QFU6.js';
|
|
235
238
|
export { Count } from '../chunk-5KRRJNQO.js';
|
|
236
239
|
export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from '../chunk-PQADV6P6.js';
|
|
237
|
-
export { ADD_PILL_MS, AddPill } from '../chunk-QC2DEQCN.js';
|
|
238
240
|
export { Announcer, announce, useAnnouncer } from '../chunk-2G355KDJ.js';
|
|
239
241
|
export { APP_SHELL_ASIDE_WIDTH, AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, readStoredWidth, useAppShell, useStoredWidth } from '../chunk-7SRSPU4O.js';
|
|
240
242
|
export { useMediaMatch } from '../chunk-RTPQDNW3.js';
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import './chunk-
|
|
1
|
+
import './chunk-UOTNQV6D.js';
|
|
2
|
+
export { VersionTimeline } from './chunk-TUNEMQXF.js';
|
|
2
3
|
export { WidgetFrame } from './chunk-3DMPZZQ6.js';
|
|
3
4
|
export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from './chunk-FEJANUZK.js';
|
|
4
5
|
export { TreeCanvas } from './chunk-5NJ4BIUA.js';
|
|
5
6
|
export { TypeSpecimen } from './chunk-JKAFEFFC.js';
|
|
6
7
|
export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from './chunk-NL72YZWF.js';
|
|
7
|
-
export {
|
|
8
|
+
export { REFERENCE_NAME_PATTERN, ValueField, completeReference, isWholeReference, rankReferences, referenceAt, urlSchemeOf } from './chunk-OD3Z6QKN.js';
|
|
8
9
|
export { DensitySwitcher, ThemeSwitcher } from './chunk-53NTMTRM.js';
|
|
9
10
|
export { ThemeToggle } from './chunk-RLFPBRN4.js';
|
|
10
11
|
export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from './chunk-Z24ZUSTX.js';
|
|
12
|
+
export { ThinkingIndicator } from './chunk-E2MIUNUU.js';
|
|
11
13
|
export { TileGrid } from './chunk-Q6CQMS6R.js';
|
|
12
14
|
export { TIME_RANGE_CUSTOM, TIME_RANGE_PICKER_LABELS, TimeRangePicker, timeRangeFieldKey, timeRangeProblem } from './chunk-LND6XSXN.js';
|
|
13
15
|
export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-SG2375ZY.js';
|
|
@@ -32,16 +34,16 @@ import './chunk-73GUXYYE.js';
|
|
|
32
34
|
export { SLIDE_COMPARE_LABELS, SlideCompare } from './chunk-W2Q5DZJB.js';
|
|
33
35
|
export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
|
|
34
36
|
export { SelectionBar } from './chunk-6Z4JZHRB.js';
|
|
35
|
-
export { SEND_BUTTON_LABELS, SendButton } from './chunk-
|
|
36
|
-
export { SettingsTable, SettingsTableRow } from './chunk-4RKTZSEW.js';
|
|
37
|
+
export { SEND_BUTTON_LABELS, SendButton } from './chunk-PBR5C5MX.js';
|
|
37
38
|
export { SetupWizard } from './chunk-T4THNJ6E.js';
|
|
39
|
+
export { SettingsTable, SettingsTableRow } from './chunk-4RKTZSEW.js';
|
|
38
40
|
export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from './chunk-B5ZHJWAZ.js';
|
|
39
41
|
export { Select } from './chunk-XQZ6EWOE.js';
|
|
40
42
|
export { ReviewList } from './chunk-OJ2QULVH.js';
|
|
43
|
+
export { RichEditor, preloadRichEditor } from './chunk-5MN2HISF.js';
|
|
44
|
+
export { RICH_EDITOR_LABELS, richEditorLabels } from './chunk-CSQTDGTS.js';
|
|
41
45
|
export { canonicalMarkdown, roundTripMarkdown } from './chunk-SWD4QBL6.js';
|
|
42
46
|
import './chunk-QH6VYJ3X.js';
|
|
43
|
-
export { RichEditor, preloadRichEditor } from './chunk-V57TGM2L.js';
|
|
44
|
-
export { RICH_EDITOR_LABELS, richEditorLabels } from './chunk-CSQTDGTS.js';
|
|
45
47
|
export { RUN_STATES, RunChip } from './chunk-75QASA62.js';
|
|
46
48
|
export { STEP_STATES, STEP_STATE_LABELS, StepList, StepStateMark, Stepper, stepDetailPieces } from './chunk-Z4EKUMZW.js';
|
|
47
49
|
export { FRAME_HELLO_TIMEOUT_MS, FRAME_LOAD_GRACE_MS, SandboxedFrame, SandboxedFrameNotice, SandboxedFramePlaceholder } from './chunk-WR7UDG7U.js';
|
|
@@ -56,14 +58,14 @@ export { Text } from './chunk-QP2P6GDQ.js';
|
|
|
56
58
|
export { RESULT_TABLE_CARD_LABELS, RESULT_TABLE_COLLAPSED_ROWS, RESULT_TABLE_MAX_ROWS, ResultTableCard } from './chunk-OM6CPZB7.js';
|
|
57
59
|
export { Table } from './chunk-5DJMFRSZ.js';
|
|
58
60
|
export { PresenceStack } from './chunk-FGRJXZUU.js';
|
|
61
|
+
export { PricingCard } from './chunk-U3ILLCR2.js';
|
|
59
62
|
export { PresenterView, formatStopwatch } from './chunk-P5S2SPTK.js';
|
|
60
63
|
export { SLIDE_NAV_LABELS, SlideNav } from './chunk-DEAFAK3U.js';
|
|
61
64
|
export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from './chunk-RMEBFYL7.js';
|
|
62
|
-
export {
|
|
63
|
-
export { PrincipalPicker } from './chunk-RPHQNXE5.js';
|
|
65
|
+
export { PrincipalPicker } from './chunk-IOZFPFQS.js';
|
|
64
66
|
export { PropertyList } from './chunk-VBYRA3W6.js';
|
|
65
67
|
export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, ProposalCard } from './chunk-PFXUEEHT.js';
|
|
66
|
-
export { Prose } from './chunk-
|
|
68
|
+
export { Prose } from './chunk-DVVP27OD.js';
|
|
67
69
|
export { PageNote } from './chunk-CV4NES3P.js';
|
|
68
70
|
export { PEEK_RAIL_LABELS, PEEK_RAIL_MAX_WIDTH, PEEK_RAIL_MIN_WIDTH, PEEK_RAIL_WIDTH, PeekHost, PeekNeighbours, PeekRail, isPlainPress, peekClickHandler, peekRowActivation, usePeekNeighbours, usePeekOrder, usePeekStep } from './chunk-VBO2GYWX.js';
|
|
69
71
|
export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from './chunk-EFIURN3U.js';
|
|
@@ -96,8 +98,8 @@ export { AutoGrid, Inline, Spacer, Stack } from './chunk-ZAC7SKUN.js';
|
|
|
96
98
|
export { Link } from './chunk-HOP3J622.js';
|
|
97
99
|
export { LinkInterstitial, openExternal } from './chunk-EQHJTGLY.js';
|
|
98
100
|
import './chunk-FFMCMSJB.js';
|
|
99
|
-
export { ImageUpload } from './chunk-PPVWWJIB.js';
|
|
100
101
|
export { IconTile } from './chunk-3LI4TRUR.js';
|
|
102
|
+
export { ImageUpload } from './chunk-PPVWWJIB.js';
|
|
101
103
|
export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from './chunk-5KEVSZ4K.js';
|
|
102
104
|
export { IndicatorAnchor } from './chunk-27MJPU7G.js';
|
|
103
105
|
export { INLINE_EDITOR_LABELS, InlineEditor } from './chunk-46VE5TVS.js';
|
|
@@ -111,9 +113,9 @@ export { IDLE_AFTER_MS, useFullscreen, useIdle } from './chunk-W5XCNEZC.js';
|
|
|
111
113
|
export { Highlight, highlightRanges, highlightTerms } from './chunk-H6VKCIWV.js';
|
|
112
114
|
import './chunk-MICRGE3J.js';
|
|
113
115
|
export { EntityChip } from './chunk-OSKJZNBT.js';
|
|
114
|
-
export { ErrorBoundary } from './chunk-ZEPUKRO7.js';
|
|
115
116
|
export { EntityList } from './chunk-OB5N3FV2.js';
|
|
116
117
|
export { StatusCard } from './chunk-WW4E5EUS.js';
|
|
118
|
+
export { ErrorBoundary } from './chunk-ZEPUKRO7.js';
|
|
117
119
|
export { Eyebrow } from './chunk-RK4XPHVG.js';
|
|
118
120
|
export { FactList } from './chunk-HACEB6L4.js';
|
|
119
121
|
export { FileDrop, FilePickButton, droppedFiles, pickedFiles } from './chunk-2JHGPXYG.js';
|
|
@@ -147,7 +149,7 @@ export { ColorSwatch } from './chunk-KA2GAB3N.js';
|
|
|
147
149
|
export { CopyButton, Copyable } from './chunk-IOTN23FZ.js';
|
|
148
150
|
export { useClipboard, writeClipboard } from './chunk-STJ7QBC3.js';
|
|
149
151
|
export { useOutcome } from './chunk-DTIW4CHZ.js';
|
|
150
|
-
export { Combobox } from './chunk-
|
|
152
|
+
export { Combobox } from './chunk-PK2P2QH6.js';
|
|
151
153
|
export { CommandPalette } from './chunk-I74C4TM6.js';
|
|
152
154
|
export { ConfirmModal, Modal } from './chunk-KVWZDCTQ.js';
|
|
153
155
|
export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
@@ -221,6 +223,7 @@ export { ARTIFACT_KINDS, ArtifactKindGlyph } from './chunk-RSKW25Y5.js';
|
|
|
221
223
|
export { ACCESS_DENIED_REASONS, AccessDeniedCard } from './chunk-QTMUKRTN.js';
|
|
222
224
|
export { EmptyState } from './chunk-PPUR46MK.js';
|
|
223
225
|
export { Accordion, AccordionItem } from './chunk-K4U2VDOJ.js';
|
|
226
|
+
export { ADD_PILL_MS, AddPill } from './chunk-QC2DEQCN.js';
|
|
224
227
|
export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from './chunk-5UPWU6ZJ.js';
|
|
225
228
|
export { Timeline, TimelineItem } from './chunk-Z6X3F4H6.js';
|
|
226
229
|
export { Section } from './chunk-JQ7IFSF6.js';
|
|
@@ -234,7 +237,6 @@ export { CHARACTER_COUNT_LABELS, CHARACTER_COUNT_NEAR, CharacterCount, character
|
|
|
234
237
|
export { DisclosureAnatomy } from './chunk-ZYO2QFU6.js';
|
|
235
238
|
export { Count } from './chunk-5KRRJNQO.js';
|
|
236
239
|
export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from './chunk-PQADV6P6.js';
|
|
237
|
-
export { ADD_PILL_MS, AddPill } from './chunk-QC2DEQCN.js';
|
|
238
240
|
export { Announcer, announce, useAnnouncer } from './chunk-2G355KDJ.js';
|
|
239
241
|
export { APP_SHELL_ASIDE_WIDTH, AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, readStoredWidth, useAppShell, useStoredWidth } from './chunk-7SRSPU4O.js';
|
|
240
242
|
export { useMediaMatch } from './chunk-RTPQDNW3.js';
|