@epam/ai-dial-chat-shared 1.2.0-dev.14 → 1.2.0-dev.142
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/components/MarkdownRenderer/CodeBlock/CodeBlock.js +64 -63
- package/components/MarkdownRenderer/CodeBlock/CodeBlock.module.scss.js +6 -6
- package/components/MarkdownRenderer/MDMessageViewer.js +23 -17
- package/components/MarkdownRenderer/MarkdownRenderer.js +88 -90
- package/components/MarkdownRenderer/Math/MarkdownMathBlock.js +19 -18
- package/components/MarkdownRenderer/PlainTextRenderer.js +21 -0
- package/components/MarkdownRenderer/Table/MarkdownTable.js +74 -56
- package/components/MarkdownRenderer/Table/MarkdownTable.module.scss.js +11 -11
- package/components/MarkdownRenderer/Table/table-serialization.js +23 -3
- package/components/MarkdownRenderer/Table/useMarkdownTableActions/useMarkdownTableActions.js +48 -62
- package/components/MarkdownRenderer/ThinkingShimmer.js +14 -0
- package/components/TextRefinementField/TextRefinementField.js +84 -0
- package/constants/mime-types.js +49 -2
- package/constants/public-class-names.js +10 -0
- package/constants/resizable-fields.js +1 -1
- package/file-manager/DialFileManagerShell/DialFileManagerShell.js +160 -159
- package/file-manager/FileManagerAttachModal/FileManagerAttachModal.js +23 -22
- package/file-manager/UploadProgressModal/UploadProgressModal.js +26 -32
- package/file-manager.d.ts +10 -6
- package/hooks/useTextRefinement.js +66 -0
- package/index.css +2 -2
- package/index.d.ts +258 -10
- package/index.js +60 -56
- package/markdown.d.ts +61 -8
- package/markdown.js +13 -11
- package/package.json +3 -3
- package/types/attachment.js +1 -1
- package/utils/file-download.js +6 -6
- package/utils/is-skill-selection-unsupported.js +4 -0
- package/utils/latex.js +5 -3
- package/utils/merge-class.js +5 -4
- package/utils/mime-type.js +10 -6
package/file-manager.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ import { DialUploadFileItem } from '@epam/ai-dial-react-file-manager';
|
|
|
11
11
|
import { FC } from 'react';
|
|
12
12
|
import { FileManagerColumnKey } from '@epam/ai-dial-react-file-manager';
|
|
13
13
|
import { FileManagerGridRow } from '@epam/ai-dial-react-file-manager';
|
|
14
|
+
import { FileTreeOptions } from '@epam/ai-dial-react-file-manager';
|
|
14
15
|
import { ReactNode } from 'react';
|
|
15
|
-
import { ToolbarOptions } from '@epam/ai-dial-react-file-manager';
|
|
16
16
|
|
|
17
17
|
/** Result returned by the file-manager attach modal when the user confirms a selection. */
|
|
18
18
|
declare interface AttachResult {
|
|
@@ -174,8 +174,8 @@ export declare interface DialFileManagerShellProps {
|
|
|
174
174
|
labels: DialFileManagerShellLabels;
|
|
175
175
|
/** Currently active tab. */
|
|
176
176
|
activeTab: DialFileManagerTabs;
|
|
177
|
-
/**
|
|
178
|
-
tabs:
|
|
177
|
+
/** Filter chips scoping the tree and the grid, rendered above the folder tree. */
|
|
178
|
+
tabs: FileTreeOptions['tabs'];
|
|
179
179
|
/** Called when the user switches tabs. */
|
|
180
180
|
onTabChange: (tab: DialFileManagerTabs) => void;
|
|
181
181
|
/** Set of currently selected file/folder virtual paths. */
|
|
@@ -190,8 +190,10 @@ export declare interface DialFileManagerShellProps {
|
|
|
190
190
|
autoSelectUploadedItems?: boolean;
|
|
191
191
|
/** MIME type filters for selectable files. */
|
|
192
192
|
allowedFileTypes?: DialFileAcceptType[];
|
|
193
|
-
/** Maximum file size in bytes for selectable files. */
|
|
193
|
+
/** Maximum file size in bytes for selectable files, and — reused as the ui-kit's own `maxFileSize` — the maximum size accepted for a newly-uploaded file. */
|
|
194
194
|
maxSelectableFileSize?: number;
|
|
195
|
+
/** Pre-translated message shown by the ui-kit when a newly-selected file exceeds `maxSelectableFileSize`. Omit to leave upload-size validation unrestricted regardless of `maxSelectableFileSize`. */
|
|
196
|
+
oversizedUploadMessage?: string;
|
|
195
197
|
/** Custom row-selectability predicate, forwarded to the grid's row selection. */
|
|
196
198
|
isRowSelectable?: (node: {
|
|
197
199
|
data?: FileManagerSelectableNode | null;
|
|
@@ -261,8 +263,8 @@ export declare interface FileManagerAttachModalProps {
|
|
|
261
263
|
isAnyOperationInProgress: boolean;
|
|
262
264
|
/** Currently active tab. */
|
|
263
265
|
activeTab: DialFileManagerTabs;
|
|
264
|
-
/**
|
|
265
|
-
tabs:
|
|
266
|
+
/** Filter chips scoping the tree and the grid, rendered above the folder tree. */
|
|
267
|
+
tabs: FileTreeOptions['tabs'];
|
|
266
268
|
/**
|
|
267
269
|
* Called when the user switches tabs.
|
|
268
270
|
* The host is responsible for resetting `selectedPaths` to an empty set.
|
|
@@ -316,6 +318,8 @@ export declare interface FileManagerAttachModalProps {
|
|
|
316
318
|
allowedFileTypes?: DialFileAcceptType[];
|
|
317
319
|
/** Whether to auto-select items immediately after upload. Defaults to `false`. */
|
|
318
320
|
autoSelectUploadedItems?: boolean;
|
|
321
|
+
/** Pre-translated message shown by the ui-kit when a newly-selected file exceeds `maxSelectableFileSize`. Omit to leave upload-size validation unrestricted regardless of `maxSelectableFileSize`. */
|
|
322
|
+
oversizedUploadMessage?: string;
|
|
319
323
|
}
|
|
320
324
|
|
|
321
325
|
/**
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { useCallback as e, useLayoutEffect as t, useRef as n, useState as r } from "react";
|
|
2
|
+
//#region src/hooks/useTextRefinement.ts
|
|
3
|
+
var i = /* @__PURE__ */ function(e) {
|
|
4
|
+
return e.Idle = "idle", e.Pending = "pending", e.Success = "success", e.Error = "error", e.Restored = "restored", e.Unchanged = "unchanged", e;
|
|
5
|
+
}({}), a = (i) => {
|
|
6
|
+
let [a, o] = r("idle"), [s, c] = r(!1), l = n(i), u = n(!1), d = n({
|
|
7
|
+
value: i.value,
|
|
8
|
+
resetKey: i.resetKey,
|
|
9
|
+
generation: 0,
|
|
10
|
+
controller: void 0,
|
|
11
|
+
baseline: void 0,
|
|
12
|
+
expected: void 0
|
|
13
|
+
}), f = e(() => {
|
|
14
|
+
let e = d.current;
|
|
15
|
+
e.generation++, e.controller?.abort(), e.controller = void 0, e.baseline = void 0, e.expected = void 0;
|
|
16
|
+
}, []), p = e(() => {
|
|
17
|
+
f(), u.current && (o("idle"), c(!1));
|
|
18
|
+
}, [f]);
|
|
19
|
+
t(() => (u.current = !0, () => {
|
|
20
|
+
u.current = !1, f();
|
|
21
|
+
}), [f]), t(() => {
|
|
22
|
+
let e = l.current, t = d.current;
|
|
23
|
+
l.current = i;
|
|
24
|
+
let n = t.value !== i.value, r = n && t.expected === i.value;
|
|
25
|
+
t.resetKey !== i.resetKey || e.onRefine && !i.onRefine || !e.disabled && i.disabled || n && !r ? p() : r && (t.expected = void 0), t.value = i.value, t.resetKey = i.resetKey;
|
|
26
|
+
});
|
|
27
|
+
let m = e(async () => {
|
|
28
|
+
let e = l.current, t = d.current;
|
|
29
|
+
if (!u.current || !e.onRefine || e.disabled || !e.value.trim() || t.controller || t.expected !== void 0) return;
|
|
30
|
+
let n = new AbortController();
|
|
31
|
+
t.controller = n;
|
|
32
|
+
let r = ++t.generation, i = e.value, a = () => u.current && r === t.generation && !n.signal.aborted && l.current.value === i;
|
|
33
|
+
o("pending");
|
|
34
|
+
try {
|
|
35
|
+
let r = await e.onRefine(i, n.signal);
|
|
36
|
+
if (!a()) return;
|
|
37
|
+
if (typeof r != "string" || !r.trim()) throw Error("Empty refinement");
|
|
38
|
+
if (r === i) {
|
|
39
|
+
o("unchanged");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
t.baseline ??= i, t.expected = r, c(!0), o("success"), l.current.onChange(r);
|
|
43
|
+
} catch (e) {
|
|
44
|
+
if (!a()) return;
|
|
45
|
+
typeof e == "object" && e && "name" in e && e.name === "AbortError" ? o("idle") : o("error");
|
|
46
|
+
} finally {
|
|
47
|
+
r === t.generation && (t.controller = void 0);
|
|
48
|
+
}
|
|
49
|
+
}, []), h = e(() => {
|
|
50
|
+
let e = d.current;
|
|
51
|
+
if (!u.current || l.current.disabled || e.controller || e.baseline === void 0) return;
|
|
52
|
+
let t = e.baseline;
|
|
53
|
+
e.baseline = void 0, e.expected = t, c(!1), o("restored"), l.current.onChange(t);
|
|
54
|
+
}, []);
|
|
55
|
+
return {
|
|
56
|
+
state: a,
|
|
57
|
+
isPending: a === "pending",
|
|
58
|
+
canRefine: !!(i.onRefine && !i.disabled && i.value.trim() && a !== "pending"),
|
|
59
|
+
canUndo: s,
|
|
60
|
+
refine: m,
|
|
61
|
+
undo: h,
|
|
62
|
+
reset: p
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
//#endregion
|
|
66
|
+
export { i as TextRefinementState, a as useTextRefinement };
|
package/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
._agentIconBadge_1ger8_1{background:var(--di-icon-bg,var(--bg-layer-sunken,#eef1f7))}._badge_1ko75_1{background:var(--ia-bg,var(--bg-visual-green-1,#cde8e5))}._initials_1ko75_5{color:var(--ia-fg,var(--text-visual-green-2,#0d6e72))}._title_11w3i_1{color:var(--ih-title-color,var(--text-primary,#161b2d))}._count_11w3i_5{color:var(--ih-count-color,var(--text-secondary,#57647a))}._container_spugt_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._containerLight_spugt_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._header_spugt_10{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._languageLabel_spugt_15{color:var(--cm-code-block-language,var(--text-secondary,#57647a))}._copiedIcon_spugt_19{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_spugt_23 .token.table,._scrollContainer_spugt_23 .token.table-header-row,._scrollContainer_spugt_23 .token.table-line,._scrollContainer_spugt_23 .token.table-data-rows{display:inline}._scrollContainer_spugt_23{scrollbar-width:thin;scrollbar-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_spugt_23::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_spugt_23::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_spugt_23::-webkit-scrollbar-thumb{background-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}@keyframes _cm-shimmer_1g29w_1{0%{background-position:200%}to{background-position:-200%}}._thinking_1g29w_9{background:linear-gradient(270deg, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 0%, var(--cm-thinking-secondary,var(--text-secondary,#57647a)) 40%, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 80%);color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite _cm-shimmer_1g29w_1}._h6_1g29w_18{color:var(--cm-h6-text,var(--text-secondary,#57647a))}._codeInline_1g29w_22{background:var(--cm-code-inline-bg,var(--bg-layer-raised,#fcfcfc));color:var(--cm-code-inline-text,var(--text-primary,#161b2d))}._secondaryBorder_1g29w_27{border-color:var(--cm-markdown-border,var(--stroke-secondary,#d1dbea))}._blockquote_1g29w_31{border-color:var(--cm-blockquote-border,var(--stroke-primary,#57647a));color:var(--cm-blockquote-text,var(--text-secondary,#57647a))}._link_1g29w_36{color:var(--cm-link-text,var(--text-accent,#1d4ed8))}._link_1g29w_36:focus-visible{outline-color:var(--cm-link-focus,var(--stroke-focus-black,#161b2d))}._scrollContainer_1f433_1{scrollbar-width:thin;scrollbar-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_1f433_1::-webkit-scrollbar{height:4px}._scrollContainer_1f433_1::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_1f433_1::-webkit-scrollbar-thumb{background-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._scrollContainer_1f433_1:focus-visible{outline:1px solid var(--cm-math-focus,var(--stroke-focus-black,#161b2d));outline-offset:2px}._mathContent_1f433_24{width:max-content;min-width:100%;display:block}._tableContainer_187t3_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._tableContainerLight_187t3_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._copiedIcon_187t3_10{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_187t3_14{scrollbar-width:thin;scrollbar-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_187t3_14::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_187t3_14::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_187t3_14::-webkit-scrollbar-thumb{background-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._tableHeaderCell_187t3_30{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));color:var(--cm-table-header-text,var(--text-secondary,#57647a))}._sectionRow_187t3_35 td{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc))}tbody ._row_187t3_39:nth-child(2n) td{background:var(--cm-table-row-zebra-bg,var(--bg-layer-base,#f5f7fa))}._rowDivider_187t3_43{border-block-end:.5px solid var(--cm-table-row-divider,var(--stroke-tertiary,#e0e6f0))}tbody ._row_187t3_39:hover td{background:var(--cm-table-row-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._tableScrollFadeEnd_187t3_53{-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}[dir=rtl] ._tableScrollFadeEnd_187t3_53{-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableScrollFadeStart_187t3_61{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}[dir=rtl] ._tableScrollFadeStart_187t3_61{-webkit-mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);-webkit-mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}._tableScrollFadeBoth_187t3_69{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableHeader_1qvg8_1{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._label_12p89_1{color:var(--pes-label-color,var(--text-primary,#161b2d))}._row_1csuq_1{border-color:var(--rs-border,var(--stroke-tertiary,#e0e6f0));background:var(--rs-bg,var(--bg-layer-sunken,#eef1f7))}._versionTag_1csuq_7{border-color:var(--rs-version-tag-border,var(--stroke-tertiary,#e0e6f0))!important;background:var(--rs-version-tag-bg,var(--bg-control-accent-alpha,#2764d90f))!important;color:var(--rs-version-tag-text,var(--text-accent,#1d4ed8))!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip:auto;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-bottom-0{bottom:0}.-bottom-0\.5{bottom:-.125rem}.-left-0{left:0}.-left-0\.5{left:-.125rem}.end-0{inset-inline-end:0}.left-0{left:0}.left-full{left:100%}.right-0{right:0}.right-full{right:100%}.top-0{top:0}.top-1\/2{top:50%}.top-8{top:2rem}.top-\[-2px\]{top:-2px}.top-\[-6px\]{top:-6px}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.z-\[-1\]{z-index:-1}.z-\[2\]{z-index:2}.z-\[52\]{z-index:52}.z-\[53\]{z-index:53}.z-\[54\]{z-index:54}.z-\[55\]{z-index:55}.-m-px{margin:-1px}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-\[-2px\]{margin-top:-2px;margin-bottom:-2px}.-ml-6{margin-left:-1.5rem}.-mr-2{margin-right:-.5rem}.-mr-px{margin-right:-1px}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-\[2px\]{margin-bottom:2px}.me-1{margin-inline-end:.25rem}.me-1\.5{margin-inline-end:.375rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-6{margin-left:1.5rem}.ml-\[26px\]{margin-left:26px}.ml-\[28px\]{margin-left:28px}.ml-\[44px\]{margin-left:44px}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.ms-auto{margin-inline-start:auto}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-5{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-6{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.size-0{width:0;height:0}.size-10{width:2.5rem;height:2.5rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-5{width:1.25rem;height:1.25rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-9{width:2.25rem;height:2.25rem}.size-\[16px\]{width:16px;height:16px}.size-\[18px\]{width:18px;height:18px}.size-\[20px\]{width:20px;height:20px}.size-\[24px\]{width:24px;height:24px}.size-\[38px\]{width:38px;height:38px}.size-\[40px\]{width:40px;height:40px}.size-\[48px\]{width:48px;height:48px}.size-\[4px\]{width:4px;height:4px}.size-\[8px\]{width:8px;height:8px}.size-auto{width:auto;height:auto}.size-full{width:100%;height:100%}.size-px{width:1px;height:1px}.\!h-10{height:2.5rem!important}.\!h-5{height:1.25rem!important}.\!h-6{height:1.5rem!important}.\!h-9{height:2.25rem!important}.\!h-\[min\(800px\,100dvh\)\]{height:min(800px,100dvh)!important}.\!h-auto{height:auto!important}.\!h-fit{height:fit-content!important}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[120px\]{height:120px}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[24px\]{height:24px}.h-\[26px\]{height:26px}.h-\[32px\]{height:32px}.h-\[34px\]{height:34px}.h-\[38px\]{height:38px}.h-\[40px\]{height:40px}.h-\[60px\]{height:60px}.h-\[8px\]{height:8px}.h-auto{height:auto}.h-full{height:100%}.\!max-h-full{max-height:100%!important}.max-h-\[344px\]{max-height:344px}.max-h-\[352px\]{max-height:352px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.min-h-2{min-height:.5rem}.min-h-4{min-height:1rem}.min-h-\[248px\]{min-height:248px}.min-h-\[24px\]{min-height:24px}.min-h-\[25px\]{min-height:25px}.min-h-\[38px\]{min-height:38px}.min-h-\[40px\]{min-height:40px}.min-h-\[42px\]{min-height:42px}.\!w-\[400px\]{width:400px!important}.w-0{width:0}.w-0\.5{width:.125rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-2\/5{width:40%}.w-8{width:2rem}.w-\[120px\]{width:120px}.w-\[22px\]{width:22px}.w-\[248px\]{width:248px}.w-\[24px\]{width:24px}.w-\[260px\]{width:260px}.w-\[32px\]{width:32px}.w-\[36px\]{width:36px}.w-\[40px\]{width:40px}.w-\[44px\]{width:44px}.w-\[600px\]{width:600px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-8{min-width:2rem}.min-w-\[100px\]{min-width:100px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.min-w-\[24px\]{min-width:24px}.min-w-\[5ch\]{min-width:5ch}.min-w-full{min-width:100%}.\!max-w-\[var\(--reference-width\)\]{max-width:var(--reference-width)!important}.max-w-96{max-width:24rem}.max-w-\[200px\]{max-width:200px}.max-w-\[280px\]{max-width:280px}.max-w-\[30\%\]{max-width:30%}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[376px\]{max-width:376px}.max-w-\[428px\]{max-width:428px}.max-w-\[45\%\]{max-width:45%}.max-w-\[51\%\]{max-width:51%}.max-w-\[600px\]{max-width:600px}.max-w-full{max-width:100%}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-auto{flex-basis:auto}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.\!cursor-default{cursor:default!important}.\!cursor-not-allowed{cursor:not-allowed!important}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.select-none{-webkit-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-8{gap:2rem}.gap-\[2px\]{gap:2px}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px * var(--tw-divide-x-reverse));border-left-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}.divide-tertiary>:not([hidden])~:not([hidden]){border-color:var(--stroke-tertiary,#e0e6f0)}.self-start{align-self:flex-start}.self-center{align-self:center}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.\!truncate{text-overflow:ellipsis!important;white-space:nowrap!important;overflow:hidden!important}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.text-clip{text-overflow:clip}.\!whitespace-normal{white-space:normal!important}.whitespace-normal{white-space:normal}.\!whitespace-nowrap{white-space:nowrap!important}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded{border-radius:4px!important}.rounded{border-radius:4px}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[120px\]{border-radius:120px}.rounded-\[14px\]{border-radius:14px}.rounded-\[20px\]{border-radius:20px}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[8px\]{border-radius:8px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.\!rounded-r-none{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-b{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.rounded-e{border-start-end-radius:4px;border-end-end-radius:4px}.rounded-l{border-top-left-radius:4px;border-bottom-left-radius:4px}.rounded-r{border-top-right-radius:4px;border-bottom-right-radius:4px}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-s{border-start-start-radius:4px;border-end-start-radius:4px}.rounded-t{border-top-left-radius:4px;border-top-right-radius:4px}.rounded-bl{border-bottom-left-radius:4px}.rounded-br{border-bottom-right-radius:4px}.rounded-ee{border-end-end-radius:4px}.rounded-es{border-end-start-radius:4px}.rounded-se{border-start-end-radius:4px}.rounded-ss{border-start-start-radius:4px}.rounded-tl{border-top-left-radius:4px}.rounded-tr{border-top-right-radius:4px}.\!border-0{border-width:0!important}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-b-2{border-bottom-width:2px}.border-e{border-inline-end-width:1px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0}.border-s{border-inline-start-width:1px}.border-s-2{border-inline-start-width:2px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.\!border-none{border-style:none!important}.border-none{border-style:none}.\!border-error{border-color:var(--stroke-error,#ae2f2f)!important}.\!border-primary{border-color:var(--stroke-primary,#57647a)!important}.\!border-transparent{border-color:#0000!important}.border-accent{border-color:var(--stroke-accent,#1d4ed8)}.border-control-disable-primary{border-color:var(--stroke-control-disable-primary,#848e9c)}.border-default{border-color:var(--stroke-default,#b2c2dd)}.border-error{border-color:var(--stroke-error,#ae2f2f)}.border-info{border-color:var(--stroke-info,#1d4ed8)}.border-primary{border-color:var(--stroke-primary,#57647a)}.border-secondary{border-color:var(--stroke-secondary,#d1dbea)}.border-success{border-color:var(--stroke-success,#007274)}.border-tertiary{border-color:var(--stroke-tertiary,#e0e6f0)}.border-transparent{border-color:#0000}.border-warning{border-color:var(--stroke-warning,#eec840)}.border-l-transparent{border-left-color:#0000}.border-t-accent{border-top-color:var(--stroke-accent,#1d4ed8)}.\!bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)!important}.bg-backdrop{background-color:var(--bg-backdrop,#161b2d4d)}.bg-control-accent{background-color:var(--bg-control-accent,#1d4ed8)}.bg-control-accent-alpha{background-color:var(--bg-control-accent-alpha,#2764d90f)}.bg-control-accent-alpha-hover{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}.bg-control-disable-primary{background-color:var(--bg-control-disable-primary,#dce0e8)}.bg-control-disable-secondary{background-color:var(--bg-control-disable-secondary,#acb3c3)}.bg-control-error{background-color:var(--bg-control-error,#ae2f2f)}.bg-control-inverted{background-color:var(--bg-control-inverted,#57647a)}.bg-control-neutral{background-color:var(--bg-control-neutral,#fcfcfc)}.bg-control-neutral-active{background-color:var(--bg-control-neutral-active,#d1dbea)}.bg-control-neutral-default{background-color:var(--bg-control-neutral-default,#acb3c3)}.bg-error{background-color:var(--bg-error,#f3d6d8)}.bg-info{background-color:var(--bg-info,#e1eaf9)}.bg-layer-base{background-color:var(--bg-layer-base,#f5f7fa)}.bg-layer-raised{background-color:var(--bg-layer-raised,#fcfcfc)}.bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)}.bg-success{background-color:var(--bg-success,#dbf1eb)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--bg-warning,#faf0cf)}.bg-repeat{background-repeat:repeat}.fill-control-inverted{fill:var(--bg-control-inverted,#57647a)}.stroke-primary{stroke:var(--stroke-primary,#57647a)}.object-contain{-o-object-fit:contain;object-fit:contain}.\!p-0{padding:0!important}.\!p-1{padding:.25rem!important}.\!p-\[9px\]{padding:9px!important}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-\[3px\]{padding:3px}.p-\[6px\]{padding:6px}.p-px{padding:1px}.\!py-\[1px\]{padding-top:1px!important;padding-bottom:1px!important}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.\!pl-\[7px\]{padding-left:7px!important}.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-\[7px\]{padding-left:7px}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-7{padding-right:1.75rem}.pr-\[7px\]{padding-right:7px}.ps-10{padding-inline-start:2.5rem}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-\[2em\]{padding-inline-start:2em}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-start{text-align:start}.text-end{text-align:end}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.\!text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.\!text-accent{color:var(--text-accent,#1d4ed8)!important}.text-\[var\(--bg-layer-0\,_\#000000\)\]{color:var(--bg-layer-0,#000)}.text-accent{color:var(--text-accent,#1d4ed8)}.text-control-disable-primary{color:var(--text-control-disable-primary,var(--text-control-disable-alpha,#848e9c))}.text-control-inverted{color:var(--text-control-inverted,#fcfcfc)}.text-control-permanent{color:var(--text-control-permanent,#fcfcfc)}.text-error{color:var(--text-error,#ae2f2f)}.text-info{color:var(--text-info,#1d4ed8)}.text-primary{color:var(--text-primary,#161b2d)}.text-secondary{color:var(--text-secondary,#57647a)}.text-success{color:var(--text-success,#007274)}.text-tertiary{color:var(--text-tertiary,#848e9c)}.text-transparent{color:#0000}.text-violet-1{color:var(--text-visual-violet-1,#7c3aed)}.text-warning{color:var(--text-warning,#7f6300)}.text-warning-icon{color:var(--text-warning-icon,#eec840)}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 8px 44px 0 var(--shadow-lg,#2764d914);--tw-shadow-colored:0 8px 44px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 8px 24px 0 var(--shadow-md,#2764d90f);--tw-shadow-colored:0 8px 24px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 4px 0 var(--shadow-xs-1,#2764d933), 0 1px 2px 0 var(--shadow-xs-2,#161b2d08);--tw-shadow-colored:0 1px 4px 0 var(--tw-shadow-color), 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-width:1px;outline-style:solid}.outline-offset-0{outline-offset:0px}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[transform\,box-shadow\]{transition-property:transform,box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[width\]{transition-property:width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[text-wrap\:balance\]{text-wrap:balance}.\[text-wrap\:pretty\]{text-wrap:pretty}.\[writing-mode\:tb-rl\]{writing-mode:tb-rl}.placeholder\:text-secondary::placeholder{color:var(--text-secondary,#57647a)}.before\:inline-block:before{content:var(--tw-content);display:inline-block}.before\:h-\[18px\]:before{content:var(--tw-content);height:18px}.before\:w-\[18px\]:before{content:var(--tw-content);width:18px}.before\:rounded:before{content:var(--tw-content);border-radius:4px}.before\:border:before{content:var(--tw-content);border-width:1px}.before\:content-\[\"\"\]:before{--tw-content:"";content:var(--tw-content)}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.focus-within\:border-accent-focus:focus-within{border-color:var(--stroke-accent-focus,#6785fb)}.hover\:-translate-y-\[3px\]:hover{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:\!border-transparent:hover{border-color:#0000!important}.hover\:border-accent:hover{border-color:var(--stroke-accent,#1d4ed8)}.hover\:border-accent-alpha:hover{border-color:var(--stroke-accent-alpha,#2764d933)}.hover\:border-error:hover{border-color:var(--stroke-error,#ae2f2f)}.hover\:bg-control-accent-alpha-hover:hover{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}.hover\:bg-control-accent-hover:hover{background-color:var(--bg-control-accent-hover,#5976e9)}.hover\:bg-control-neutral-hover-strong:hover{background-color:var(--bg-control-neutral-hover-strong,#848e9c)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent:hover{color:var(--text-accent,#1d4ed8)}.hover\:text-control-accent-hover:hover{color:var(--text-control-accent-hover,var(--text-control-blue-hover,#5976e9))}.hover\:text-primary:hover{color:var(--text-primary,#161b2d)}.hover\:decoration-current:hover{text-decoration-color:currentColor}.hover\:shadow-lg:hover{--tw-shadow:0 8px 44px 0 var(--shadow-lg,#2764d914);--tw-shadow-colored:0 8px 44px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus-visible\:relative:focus-visible{position:relative}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-none:focus-visible{border-style:none}.focus-visible\:border-focus:focus-visible{border-color:var(--stroke-focus-black,var(--stroke-focus,#161b2d))}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:outline:focus-visible{outline-width:1px;outline-style:solid}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-focus:focus-visible{outline-color:var(--stroke-focus-black,var(--stroke-focus,#161b2d))}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.active\:bg-control-accent-alpha-active:active{background-color:var(--bg-control-accent-alpha-active,#2764d933)}.active\:text-control-accent-active:active{color:var(--text-control-accent-active,var(--text-control-blue-active,#6785fb))}.enabled\:text-secondary:enabled{color:var(--text-secondary,#57647a)}.enabled\:hover\:bg-control-accent-alpha-hover:hover:enabled{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}.enabled\:hover\:text-control-accent-hover:hover:enabled{color:var(--text-control-accent-hover,var(--text-control-blue-hover,#5976e9))}.enabled\:active\:bg-control-accent-alpha-active:active:enabled{background-color:var(--bg-control-accent-alpha-active,#2764d933)}.enabled\:active\:text-control-accent-active:active:enabled{color:var(--text-control-accent-active,var(--text-control-blue-active,#6785fb))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-control-disable-primary:disabled{color:var(--text-control-disable-primary,var(--text-control-disable-alpha,#848e9c))}.disabled\:opacity-75:disabled{opacity:.75}.disabled\:hover\:cursor-default:hover:disabled{cursor:default}.group\/grid-row:hover .group-hover\/grid-row\:pointer-events-auto{pointer-events:auto}.group\/item:hover .group-hover\/item\:visible,.group:hover .group-hover\:visible{visibility:visible}.group\/grid-row:hover .group-hover\/grid-row\:bg-control-accent-alpha-hover,.group\/item:hover .group-hover\/item\:bg-control-accent-alpha-hover{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}.group:hover .group-hover\:text-primary{color:var(--text-primary,#161b2d)}.group\/grid-row:hover .group-hover\/grid-row\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.peer:focus-visible~.peer-focus-visible\:outline{outline-width:1px;outline-style:solid}.peer:focus-visible~.peer-focus-visible\:outline-offset-2{outline-offset:2px}.peer:focus-visible~.peer-focus-visible\:outline-focus{outline-color:var(--stroke-focus-black,var(--stroke-focus,#161b2d))}.has-\[\[data-menu-item-row\]\:focus-visible\]\:outline:has([data-menu-item-row]:focus-visible){outline-width:1px;outline-style:solid}.has-\[\[data-menu-item-row\]\:focus-visible\]\:outline-focus:has([data-menu-item-row]:focus-visible){outline-color:var(--stroke-focus-black,var(--stroke-focus,#161b2d))}.aria-expanded\:bg-control-accent-alpha-hover[aria-expanded=true]{background-color:var(--bg-control-accent-alpha-hover,#2764d924)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}.motion-reduce\:hover\:translate-y-0:hover{--tw-translate-y:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}}@media (width>=640px){.sm\:inline{display:inline}}@media (width>=768px){.md\:\!h-\[800px\]{height:800px!important}.md\:h-auto{height:auto}.md\:min-h-\[266px\]{min-height:266px}.md\:max-w-\[1200px\]{max-width:1200px}.md\:max-w-\[400px\]{max-width:400px}.md\:max-w-\[800px\]{max-width:800px}.md\:p-4{padding:1rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (width<=1279px){.mobile\:\!w-full{width:100%!important}}@media (width>=1280px){.desktop\:\!max-h-\[693px\]{max-height:693px!important}.desktop\:p-4{padding:1rem}}.rtl\:scale-x-\[-1\]:where([dir=rtl],[dir=rtl] *){--tw-scale-x:-1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>div\]\:\!border-0>div{border-width:0!important}.\[\&_\.w-md-editor\]\:max-h-\[var\(--resizable-field-max-height\,70vh\)\] .w-md-editor{max-height:var(--resizable-field-max-height,70vh)}.\[\&_\.wmde-markdown\>ol\]\:list-decimal .wmde-markdown>ol{list-style-type:decimal}.\[\&_\.wmde-markdown_ul\]\:list-disc .wmde-markdown ul{list-style-type:disc}.\[\&_\.wmde-markdown_ul_ul\]\:list-\[circle\] .wmde-markdown ul ul{list-style-type:circle}.\[\&_\.wmde-markdown_ul_ul_ul\]\:list-\[square\] .wmde-markdown ul ul ul{list-style-type:square}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}
|
|
2
|
-
/*$vite$:1
|
|
1
|
+
._agentIconBadge_1ger8_1{background:var(--di-icon-bg,var(--bg-layer-sunken,#eef1f7))}._badge_1ko75_1{background:var(--ia-bg,var(--bg-visual-green-1,#cde8e5))}._initials_1ko75_5{color:var(--ia-fg,var(--text-visual-green-2,#0d6e72))}._title_11w3i_1{color:var(--ih-title-color,var(--text-primary,#161b2d))}._count_11w3i_5{color:var(--ih-count-color,var(--text-secondary,#57647a))}._container_sqe5k_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._containerLight_sqe5k_6{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc))}._header_sqe5k_10{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._languageLabel_sqe5k_15{color:var(--cm-code-block-language,var(--text-secondary,#57647a))}._copiedIcon_sqe5k_19{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_sqe5k_23 .token.table,._scrollContainer_sqe5k_23 .token.table-header-row,._scrollContainer_sqe5k_23 .token.table-line,._scrollContainer_sqe5k_23 .token.table-data-rows{display:inline}._scrollContainer_sqe5k_23{scrollbar-width:thin;scrollbar-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_sqe5k_23::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_sqe5k_23::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_sqe5k_23::-webkit-scrollbar-thumb{background-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}@keyframes _cm-shimmer_1g29w_1{0%{background-position:200%}to{background-position:-200%}}._thinking_1g29w_9{background:linear-gradient(270deg, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 0%, var(--cm-thinking-secondary,var(--text-secondary,#57647a)) 40%, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 80%);color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite _cm-shimmer_1g29w_1}._h6_1g29w_18{color:var(--cm-h6-text,var(--text-secondary,#57647a))}._codeInline_1g29w_22{background:var(--cm-code-inline-bg,var(--bg-layer-raised,#fcfcfc));color:var(--cm-code-inline-text,var(--text-primary,#161b2d))}._secondaryBorder_1g29w_27{border-color:var(--cm-markdown-border,var(--stroke-secondary,#d1dbea))}._blockquote_1g29w_31{border-color:var(--cm-blockquote-border,var(--stroke-primary,#57647a));color:var(--cm-blockquote-text,var(--text-secondary,#57647a))}._link_1g29w_36{color:var(--cm-link-text,var(--text-accent,#1d4ed8))}._link_1g29w_36:focus-visible{outline-color:var(--cm-link-focus,var(--stroke-focus-black,#161b2d))}._scrollContainer_1f433_1{scrollbar-width:thin;scrollbar-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_1f433_1::-webkit-scrollbar{height:4px}._scrollContainer_1f433_1::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_1f433_1::-webkit-scrollbar-thumb{background-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._scrollContainer_1f433_1:focus-visible{outline:1px solid var(--cm-math-focus,var(--stroke-focus-black,#161b2d));outline-offset:2px}._mathContent_1f433_24{width:max-content;min-width:100%;display:block}._tableContainer_1fwnj_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._tableContainerLight_1fwnj_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._copiedIcon_1fwnj_10{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_1fwnj_14{scrollbar-width:thin;scrollbar-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_1fwnj_14::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_1fwnj_14::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_1fwnj_14::-webkit-scrollbar-thumb{background-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._tableHeaderCell_1fwnj_30{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));height:3rem;color:var(--cm-table-header-text,var(--text-secondary,#57647a))}._sectionRow_1fwnj_37 td{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc))}._rowDivider_1fwnj_41{border-block-end:.5px solid var(--cm-table-row-divider,var(--stroke-tertiary,#e0e6f0))}tbody ._row_1fwnj_41:hover td{background:var(--cm-table-row-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._tableScrollFadeEnd_1fwnj_51{-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}[dir=rtl] ._tableScrollFadeEnd_1fwnj_51{-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableScrollFadeStart_1fwnj_59{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}[dir=rtl] ._tableScrollFadeStart_1fwnj_59{-webkit-mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);-webkit-mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}._tableScrollFadeBoth_1fwnj_67{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableHeader_1qvg8_1{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._label_12p89_1{color:var(--pes-label-color,var(--text-primary,#161b2d))}._row_1csuq_1{border-color:var(--rs-border,var(--stroke-tertiary,#e0e6f0));background:var(--rs-bg,var(--bg-layer-sunken,#eef1f7))}._versionTag_1csuq_7{border-color:var(--rs-version-tag-border,var(--stroke-tertiary,#e0e6f0))!important;background:var(--rs-version-tag-bg,var(--bg-control-accent-alpha,#2764d90f))!important;color:var(--rs-version-tag-text,var(--text-accent,#1d4ed8))!important}
|
|
2
|
+
/*$vite$:1*/.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.end-0{inset-inline-end:0}.end-2{inset-inline-end:.5rem}.top-0{top:0}.top-2{top:.5rem}.top-\[-6px\]{top:-6px}.z-10{z-index:10}.z-\[2\]{z-index:2}.z-\[52\]{z-index:52}.mx-0{margin-left:0;margin-right:0}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.me-1{margin-inline-end:.25rem}.me-1\.5{margin-inline-end:.375rem}.ms-auto{margin-inline-start:auto}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-full{height:100%;width:100%}.\!h-\[min\(800px\2c 100dvh\)\]{height:min(800px,100dvh)!important}.\!h-fit{height:-moz-fit-content!important;height:fit-content!important}.h-0{height:0}.h-\[24px\]{height:24px}.h-full{height:100%}.\!max-h-full{max-height:100%!important}.max-h-\[344px\]{max-height:344px}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.\!w-\[400px\]{width:400px!important}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-96{max-width:24rem}.max-w-\[30\%\]{max-width:30%}.max-w-\[45\%\]{max-width:45%}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:4px}.rounded-2xl{border-radius:1rem}.rounded-\[14px\]{border-radius:14px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-s-2{border-inline-start-width:2px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-tertiary{border-color:var(--stroke-tertiary,#e0e6f0)}.\!bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)!important}.bg-backdrop{background-color:var(--bg-backdrop,#161b2d4d)}.bg-layer-raised{background-color:var(--bg-layer-raised,#fcfcfc)}.bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)}.object-contain{-o-object-fit:contain;object-fit:contain}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-\[7px\]{padding-bottom:7px;padding-top:7px}.ps-4{padding-inline-start:1rem}.ps-\[2em\]{padding-inline-start:2em}.pt-1{padding-top:.25rem}.text-center{text-align:center}.text-start{text-align:start}.text-end{text-align:end}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.uppercase{text-transform:uppercase}.italic{font-style:italic}.text-secondary{color:var(--text-secondary,#57647a)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-chat-button{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-chat-button{--tw-shadow:0 2px 12px 0 var(--shadow-xs-1,#2764d933),0 2px 6px 0 var(--shadow-xs-2,#161b2d08);--tw-shadow-colored:0 2px 12px 0 var(--tw-shadow-color),0 2px 6px 0 var(--tw-shadow-color)}.shadow-xs{--tw-shadow:0 1px 4px 0 var(--shadow-xs-1,#2764d933),0 1px 2px 0 var(--shadow-xs-2,#161b2d08);--tw-shadow-colored:0 1px 4px 0 var(--tw-shadow-color),0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid;outline-width:1px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.\[overflow\:clip\]{overflow:clip}.\[text-wrap\:balance\]{text-wrap:balance}.\[text-wrap\:pretty\]{text-wrap:pretty}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.focus-within\:opacity-100:focus-within{opacity:1}.hover\:decoration-current:hover{text-decoration-color:currentColor}.focus-visible\:outline:focus-visible{outline-style:solid;outline-width:1px}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.group\/table:hover .group-hover\/table\:opacity-100{opacity:1}@media (max-width:1279px){.mobile\:\!w-full{width:100%!important}}@media (min-width:1280px){.desktop\:\!max-h-\[693px\]{max-height:693px!important}.desktop\:p-4{padding:1rem}}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:max-h-\[var\(--resizable-field-max-height\2c 70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){max-height:var(--resizable-field-max-height,70vh)}.\[\&_\.wmde-markdown\>ol\]\:list-decimal .wmde-markdown>ol{list-style-type:decimal}.\[\&_\.wmde-markdown_ul\]\:list-disc .wmde-markdown ul{list-style-type:disc}.\[\&_\.wmde-markdown_ul_ul\]\:list-\[circle\] .wmde-markdown ul ul{list-style-type:circle}.\[\&_\.wmde-markdown_ul_ul_ul\]\:list-\[square\] .wmde-markdown ul ul ul{list-style-type:square}
|
package/index.d.ts
CHANGED
|
@@ -70,6 +70,53 @@ export declare interface AnnotationTarget {
|
|
|
70
70
|
selector?: AnnotationSelector;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
/**
|
|
74
|
+
* A single application → grouped visualizer mapping from the
|
|
75
|
+
* `APPLICATION_VISUALIZERS` registry. Field semantics are fixed by
|
|
76
|
+
* already-deployed visualizer applications and operator configurations
|
|
77
|
+
* carried over from legacy Chat 0.x, which is why `contentType` is optional
|
|
78
|
+
* here while `CustomVisualizer.contentType` is required.
|
|
79
|
+
*/
|
|
80
|
+
export declare interface ApplicationVisualizer {
|
|
81
|
+
/**
|
|
82
|
+
* The postMessage protocol namespace, NOT a display label. Every message
|
|
83
|
+
* exchanged with the iframe is prefixed `${title}/…`, and the iframe-side
|
|
84
|
+
* visualizer application must be constructed with this identical string
|
|
85
|
+
* as its `appName`. A mismatch is a silent failure — the iframe loads but
|
|
86
|
+
* never receives data. Also used as the inline frame's header text.
|
|
87
|
+
*/
|
|
88
|
+
title: string;
|
|
89
|
+
/** Human-readable description of the visualizer. Accepted for operator-configuration parity; not consumed by host logic. */
|
|
90
|
+
description?: string;
|
|
91
|
+
/** Icon URL or identifier for the visualizer. Accepted for operator-configuration parity; not consumed by host logic. */
|
|
92
|
+
icon?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Comma-separated list of MIME types this entry claims (e.g.
|
|
95
|
+
* `'application/vnd.plotly.v1+json'` or
|
|
96
|
+
* `'application/vnd.plotly.v1+json, application/vnd.vega.v5+json'`).
|
|
97
|
+
* Stored verbatim; splitting happens at lookup time. When omitted, the
|
|
98
|
+
* entry claims every attachment that carries a URL.
|
|
99
|
+
*/
|
|
100
|
+
contentType?: string;
|
|
101
|
+
/** Absolute HTTP(S) URL of the visualizer iframe. */
|
|
102
|
+
url: string;
|
|
103
|
+
/** Milliseconds to wait for a `send()` request's `/RESPONSE` before rejecting. Defaults to `10000`. Does NOT bound the initial handshake. */
|
|
104
|
+
requestTimeout?: number;
|
|
105
|
+
/** Suggested initial width of the visualizer surface in pixels. Forwarded as-is in `CustomVisualizerDataLayout`. */
|
|
106
|
+
width?: number;
|
|
107
|
+
/** Suggested initial height of the visualizer surface in pixels. Forwarded as-is in `CustomVisualizerDataLayout`, and used by the host to size the inline frame. */
|
|
108
|
+
height?: number;
|
|
109
|
+
/** Suggested height on mobile viewports in pixels. Forwarded as-is in `CustomVisualizerDataLayout`, and used by the host to size the inline frame on mobile. */
|
|
110
|
+
mobileHeight?: number;
|
|
111
|
+
/** Whether the host should pass auth info to the visualizer. Accepted for operator-configuration parity; inert, because 1.0 auth is server-side and the browser holds no access token. */
|
|
112
|
+
passAuthInfo?: boolean;
|
|
113
|
+
/** Whether the host should pass an explicit access token. Accepted for operator-configuration parity; inert, because 1.0 auth is server-side and the browser holds no access token. */
|
|
114
|
+
passExplicitToken?: boolean;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/** The `APPLICATION_VISUALIZERS` registry: application id → grouped visualizer entry. */
|
|
118
|
+
export declare type ApplicationVisualizerRegistry = Record<string, ApplicationVisualizer>;
|
|
119
|
+
|
|
73
120
|
/** Attachment selected locally by the user before it is sent to the backend. */
|
|
74
121
|
export declare interface Attachment extends DisplayAttachment {
|
|
75
122
|
/** The underlying browser `File` object selected by the user. */
|
|
@@ -93,7 +140,9 @@ export declare enum AttachmentErrorReason {
|
|
|
93
140
|
/** Upload failed because the device was offline. */
|
|
94
141
|
Network = "network",
|
|
95
142
|
/** File MIME type is not in the deployment's inputAttachmentTypes list. */
|
|
96
|
-
UnsupportedType = "unsupported-type"
|
|
143
|
+
UnsupportedType = "unsupported-type",
|
|
144
|
+
/** File size exceeds the configured maximum attachment size. */
|
|
145
|
+
FileTooLarge = "file-too-large"
|
|
97
146
|
}
|
|
98
147
|
|
|
99
148
|
/** A file attachment referenced by a citation — same shape as `MessageAttachment` but scoped to annotations. */
|
|
@@ -174,6 +223,19 @@ export declare enum CatalogEntityType {
|
|
|
174
223
|
Prompt = "PROMPT"
|
|
175
224
|
}
|
|
176
225
|
|
|
226
|
+
export declare const CHAT_SHARED_CLASS: {
|
|
227
|
+
/** The bordered container of a fenced code block. */
|
|
228
|
+
readonly codeBlock: "dial-chat-shared-code-block";
|
|
229
|
+
/** The code block's sticky header, holding the language label and actions. */
|
|
230
|
+
readonly codeBlockHeader: "dial-chat-shared-code-block-header";
|
|
231
|
+
/** The bordered container of a Markdown table. */
|
|
232
|
+
readonly table: "dial-chat-shared-table";
|
|
233
|
+
/** The scrolling box around a Markdown table, which owns its overflow. */
|
|
234
|
+
readonly tableScroll: "dial-chat-shared-table-scroll";
|
|
235
|
+
/** The scrolling box around a display-math block. */
|
|
236
|
+
readonly mathBlock: "dial-chat-shared-math-block";
|
|
237
|
+
};
|
|
238
|
+
|
|
177
239
|
/** Color theme for syntax highlighting. */
|
|
178
240
|
export declare enum CodeBlockTheme {
|
|
179
241
|
/** Dark syntax-highlighting theme. */
|
|
@@ -222,6 +284,8 @@ export declare interface Conversation {
|
|
|
222
284
|
assistantModelId: string;
|
|
223
285
|
/** Response format used when rendering messages. */
|
|
224
286
|
responseFormat?: ResponseFormat;
|
|
287
|
+
/** Open, feature-keyed container for conversation-level view state. This change owns only the `annotations` key; any other key is opaque and preserved as-is. */
|
|
288
|
+
customViewState?: Record<string, unknown>;
|
|
225
289
|
}
|
|
226
290
|
|
|
227
291
|
/** Metadata returned by the DIAL file/conversation listing API for a single resource node. */
|
|
@@ -276,6 +340,8 @@ export declare interface ConversationTransferJob {
|
|
|
276
340
|
* {@link ConversationTransferJobStatus.Warning}.
|
|
277
341
|
*/
|
|
278
342
|
warningCode?: ConversationTransferWarningCode;
|
|
343
|
+
/** Untranslated names of skipped attachments, when available for this warning. */
|
|
344
|
+
warningNames?: string[];
|
|
279
345
|
}
|
|
280
346
|
|
|
281
347
|
/** Lifecycle status of a queued export/import job. */
|
|
@@ -1176,6 +1242,9 @@ export declare const generateUUID: () => string;
|
|
|
1176
1242
|
/** Classifies a MIME type into an `AttachmentType` by prefix (`image/*` / `audio/*`), defaulting to `File`. */
|
|
1177
1243
|
export declare const getAttachmentTypeFromMime: (mimeType: string | undefined) => AttachmentType;
|
|
1178
1244
|
|
|
1245
|
+
/** Lowercases a MIME type and strips its parameters, e.g. `'Application/JSON; charset=utf-8'` -> `'application/json'`. */
|
|
1246
|
+
export declare const getBaseMimeType: (mimeType: string) => string;
|
|
1247
|
+
|
|
1179
1248
|
/** Returns the file extension (without a leading dot) for a fenced-code-block language identifier, defaulting to `txt`. */
|
|
1180
1249
|
export declare const getFileExtensionForLanguage: (language: string) => string;
|
|
1181
1250
|
|
|
@@ -1192,6 +1261,24 @@ export declare const getParentFolderPath: (path: string) => string;
|
|
|
1192
1261
|
/** Returns the UTF-8 byte length of `str`. */
|
|
1193
1262
|
export declare const getUtf8ByteLength: (str: string) => number;
|
|
1194
1263
|
|
|
1264
|
+
/** A single attachment handed to a grouped visualizer inside `SEND_GROUPED_VISUALIZE_DATA`. */
|
|
1265
|
+
export declare interface GroupedAttachmentItem {
|
|
1266
|
+
/** Absolute URL of the attachment, resolved by the host before sending. */
|
|
1267
|
+
url: string;
|
|
1268
|
+
/** The attachment's own MIME type. */
|
|
1269
|
+
mimeType: string;
|
|
1270
|
+
/** Presentation layout plus the opaque per-attachment payload. */
|
|
1271
|
+
visualizerData: CustomVisualizerData;
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
/** Payload of a `SEND_GROUPED_VISUALIZE_DATA` request: every claimed attachment plus the shared presentation layout. */
|
|
1275
|
+
export declare interface GroupedAttachmentsData {
|
|
1276
|
+
/** One item per claimed attachment, in the message's attachment order. */
|
|
1277
|
+
attachments: GroupedAttachmentItem[];
|
|
1278
|
+
/** Presentation layout hints shared by every item. */
|
|
1279
|
+
layout: CustomVisualizerDataLayout;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1195
1282
|
/** Minimal hast shapes this plugin reads and writes. */
|
|
1196
1283
|
declare interface HastNode {
|
|
1197
1284
|
type: string;
|
|
@@ -1245,6 +1332,9 @@ export declare const isAudioTranscriptionSupported: (types?: string[]) => boolea
|
|
|
1245
1332
|
/** Returns true when any path segment starts with a dot (hidden file or folder). */
|
|
1246
1333
|
export declare const isHiddenPath: (path: string) => boolean;
|
|
1247
1334
|
|
|
1335
|
+
/** Whether a selected skill lacks explicitly confirmed support. */
|
|
1336
|
+
export declare const isSkillSelectionUnsupported: (skillUrl: string | null | undefined, isSkillsSupported: boolean | undefined) => boolean;
|
|
1337
|
+
|
|
1248
1338
|
/** Returns `true` when `msg` is a `StatusMessage`. */
|
|
1249
1339
|
export declare const isStatusMessage: (msg: Message | StatusMessage) => msg is StatusMessage;
|
|
1250
1340
|
|
|
@@ -1285,7 +1375,7 @@ export declare interface ItemHeaderProps {
|
|
|
1285
1375
|
shouldTruncateTitle?: boolean;
|
|
1286
1376
|
}
|
|
1287
1377
|
|
|
1288
|
-
export declare const MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME = "[&_.w-md-editor]:max-h-[var(--resizable-field-max-height,70vh)]";
|
|
1378
|
+
export declare const MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME = "[&_.w-md-editor:not(.w-md-editor-fullscreen)]:max-h-[var(--resizable-field-max-height,70vh)]";
|
|
1289
1379
|
|
|
1290
1380
|
export declare const MARKDOWN_EDITOR_PREVIEW_LIST_CLASS_NAME = "[&_.wmde-markdown>ol]:list-decimal [&_.wmde-markdown_ul]:list-disc [&_.wmde-markdown_ul_ul]:list-[circle] [&_.wmde-markdown_ul_ul_ul]:list-[square]";
|
|
1291
1381
|
|
|
@@ -1487,9 +1577,7 @@ export declare interface MarkdownRendererProps {
|
|
|
1487
1577
|
export declare const MarkdownTable: FC<MarkdownTableProps>;
|
|
1488
1578
|
|
|
1489
1579
|
export declare interface MarkdownTableActionLabels {
|
|
1490
|
-
|
|
1491
|
-
copyTxtLabel?: string;
|
|
1492
|
-
copyMarkdownLabel?: string;
|
|
1580
|
+
copyLabel?: string;
|
|
1493
1581
|
copiedLabel?: string;
|
|
1494
1582
|
downloadCsvLabel?: string;
|
|
1495
1583
|
openInCanvasLabel?: string;
|
|
@@ -1515,19 +1603,16 @@ export declare interface MarkdownTableColors {
|
|
|
1515
1603
|
fade?: string;
|
|
1516
1604
|
/** Divider color between rows. Defaults to `--stroke-tertiary`. */
|
|
1517
1605
|
rowDivider?: string;
|
|
1518
|
-
/** Background of even-indexed body rows. Defaults to `--bg-layer-base`. */
|
|
1519
|
-
rowZebraBackground?: string;
|
|
1520
1606
|
/** Background of a body row on hover. Defaults to `--bg-control-accent-alpha-hover`. */
|
|
1521
1607
|
rowHoverBackground?: string;
|
|
1522
1608
|
}
|
|
1523
1609
|
|
|
1524
1610
|
export declare enum MarkdownTableCopyFormat {
|
|
1525
1611
|
Csv = "csv",
|
|
1526
|
-
Txt = "txt",
|
|
1527
1612
|
Markdown = "markdown"
|
|
1528
1613
|
}
|
|
1529
1614
|
|
|
1530
|
-
/** A table
|
|
1615
|
+
/** A table action rendered as an icon button. */
|
|
1531
1616
|
export declare interface MarkdownTableHeaderAction {
|
|
1532
1617
|
/** Stable accessible name and tooltip text. */
|
|
1533
1618
|
label: string;
|
|
@@ -1578,13 +1663,20 @@ export declare interface MarkdownWithPlaceholdersProps {
|
|
|
1578
1663
|
headingClassName?: string;
|
|
1579
1664
|
}
|
|
1580
1665
|
|
|
1581
|
-
/** Renders assistant message content as formatted markdown. */
|
|
1666
|
+
/** Renders assistant message content as formatted markdown, or as escaped plain text when `isPlainText` is set. */
|
|
1582
1667
|
export declare const MDMessageViewer: FC<MDMessageViewerProps>;
|
|
1583
1668
|
|
|
1584
1669
|
/** Props for the {@link MDMessageViewer} markdown renderer. */
|
|
1585
1670
|
declare interface MDMessageViewerProps {
|
|
1586
1671
|
/** Raw markdown string to render. */
|
|
1587
1672
|
content: string;
|
|
1673
|
+
/**
|
|
1674
|
+
* Renders `content` verbatim as escaped plain text instead of running the
|
|
1675
|
+
* Markdown pipeline — the conversation's `plain_text` response format.
|
|
1676
|
+
* Markdown-only props (`components`, `urlTransform`, the code-block and
|
|
1677
|
+
* table labels) do not apply while it is set. Defaults to `false`.
|
|
1678
|
+
*/
|
|
1679
|
+
isPlainText?: boolean;
|
|
1588
1680
|
/** Enables gradual reveal for appended streaming content. */
|
|
1589
1681
|
isStreaming?: boolean;
|
|
1590
1682
|
/**
|
|
@@ -1753,6 +1845,21 @@ export declare interface MessageState {
|
|
|
1753
1845
|
tool_execution_history?: ToolExecutionHistoryMessage[];
|
|
1754
1846
|
}
|
|
1755
1847
|
|
|
1848
|
+
/**
|
|
1849
|
+
* Maps non-canonical MIME type spellings to the canonical type they denote.
|
|
1850
|
+
*
|
|
1851
|
+
* Deployments declare their `inputAttachmentTypes` by hand, while DIAL Core
|
|
1852
|
+
* stores the content type a browser or an upload client reported, so the two
|
|
1853
|
+
* sides routinely disagree on which of several equivalent spellings to use for
|
|
1854
|
+
* the same format (`text/json` vs `application/json`). Resolving both through
|
|
1855
|
+
* this map before comparing them keeps a declared type matching the files it
|
|
1856
|
+
* is meant to describe.
|
|
1857
|
+
*
|
|
1858
|
+
* Only aliases for one and the same format belong here — never a pair of
|
|
1859
|
+
* distinct formats that happen to share an extension.
|
|
1860
|
+
*/
|
|
1861
|
+
export declare const MIME_TYPE_ALIASES: Record<string, string>;
|
|
1862
|
+
|
|
1756
1863
|
/** MIME type prefix shared by all audio content types. */
|
|
1757
1864
|
export declare const MIME_TYPE_AUDIO_PREFIX = "audio/";
|
|
1758
1865
|
|
|
@@ -1822,6 +1929,14 @@ export declare const MOBILE_MAX_WIDTH_PX: number;
|
|
|
1822
1929
|
/** `matchMedia` query matching the mobile/tablet band (up to 1279px). */
|
|
1823
1930
|
export declare const MOBILE_MEDIA_QUERY = "(max-width: 1279px)";
|
|
1824
1931
|
|
|
1932
|
+
/**
|
|
1933
|
+
* Returns the canonical spelling of a MIME type: parameters stripped, lowercased,
|
|
1934
|
+
* and known aliases resolved through `MIME_TYPE_ALIASES` (`'text/json'` ->
|
|
1935
|
+
* `'application/json'`). Wildcards and unrecognized types are returned unchanged
|
|
1936
|
+
* apart from that normalization.
|
|
1937
|
+
*/
|
|
1938
|
+
export declare const normalizeMimeType: (mimeType: string) => string;
|
|
1939
|
+
|
|
1825
1940
|
/**
|
|
1826
1941
|
* Repairs persisted `html_tag` annotations created by older normalizers that
|
|
1827
1942
|
* defaulted every non-HTML source to PDF. An explicit, recognized file
|
|
@@ -1917,6 +2032,44 @@ export declare interface PdfBBoxSelector {
|
|
|
1917
2032
|
/** Returns a deterministic colour-pair for the given display name. */
|
|
1918
2033
|
export declare const pickAvatarColor: (name: string) => AvatarColorEntry;
|
|
1919
2034
|
|
|
2035
|
+
/**
|
|
2036
|
+
* Renders message text as plain text: no Markdown pipeline, no raw HTML, no
|
|
2037
|
+
* syntax highlighting. The text is a React text child, so it is escaped by
|
|
2038
|
+
* construction — a table, a heading, or `**bold**` reaches the reader exactly
|
|
2039
|
+
* as the model emitted it, which is what a conversation's `plain_text`
|
|
2040
|
+
* response format promises.
|
|
2041
|
+
*
|
|
2042
|
+
* Lives beside {@link MarkdownRenderer} because it is the other half of the
|
|
2043
|
+
* same choice: both render an assistant message body, and both are selected
|
|
2044
|
+
* by `MDMessageViewer` from the conversation's response format.
|
|
2045
|
+
*/
|
|
2046
|
+
export declare const PlainTextRenderer: FC<PlainTextRendererProps>;
|
|
2047
|
+
|
|
2048
|
+
/** Props for {@link PlainTextRenderer}. */
|
|
2049
|
+
export declare interface PlainTextRendererProps {
|
|
2050
|
+
/** Message text. Rendered verbatim — never parsed as Markdown or HTML. */
|
|
2051
|
+
content: string;
|
|
2052
|
+
/** Classes applied to the renderer root. */
|
|
2053
|
+
containerClassName?: string;
|
|
2054
|
+
/** When true, appended content is revealed gradually for smoother streaming updates. */
|
|
2055
|
+
isStreaming?: boolean;
|
|
2056
|
+
/** Reveal speed used while `isStreaming` is true. Defaults to 120 characters per second. */
|
|
2057
|
+
streamCharactersPerSecond?: number;
|
|
2058
|
+
/**
|
|
2059
|
+
* Typography classes. Only `p` is read — the single paragraph the renderer
|
|
2060
|
+
* emits — so the same object a Markdown message is styled with keeps both
|
|
2061
|
+
* formats on one type scale.
|
|
2062
|
+
*/
|
|
2063
|
+
classNames?: Pick<MarkdownRendererClassNames, 'p'>;
|
|
2064
|
+
/**
|
|
2065
|
+
* Label shown with a shimmer animation while `isStreaming` is true and no
|
|
2066
|
+
* content has arrived yet. Defaults to `'Thinking'`.
|
|
2067
|
+
*/
|
|
2068
|
+
thinkingLabel?: string;
|
|
2069
|
+
/** Color overrides applied as CSS custom properties. */
|
|
2070
|
+
colors?: Pick<MarkdownRendererColors, 'thinkingPrimary' | 'thinkingSecondary'>;
|
|
2071
|
+
}
|
|
2072
|
+
|
|
1920
2073
|
/**
|
|
1921
2074
|
* Selector that targets a character range inside a single shape on one PPTX
|
|
1922
2075
|
* slide. Confirmed against captured DIAL Core responses: unlike
|
|
@@ -2265,6 +2418,84 @@ export declare interface TextCharacterRangeSelector {
|
|
|
2265
2418
|
end: number;
|
|
2266
2419
|
}
|
|
2267
2420
|
|
|
2421
|
+
/** Asynchronous rewriting callback supplied by the consuming host. */
|
|
2422
|
+
export declare type TextRefinementCallback = (value: string, signal: AbortSignal) => Promise<string>;
|
|
2423
|
+
|
|
2424
|
+
/** Label row with Refine/Undo actions and live feedback around one refinable field. */
|
|
2425
|
+
export declare const TextRefinementField: FC<TextRefinementFieldProps>;
|
|
2426
|
+
|
|
2427
|
+
/** Props for `TextRefinementField`. */
|
|
2428
|
+
export declare interface TextRefinementFieldProps {
|
|
2429
|
+
/** When false, renders `children` alone — no label row, actions, or feedback. */
|
|
2430
|
+
isEnabled: boolean;
|
|
2431
|
+
/** Id of the labelled control; also the prefix for the label and error ids. */
|
|
2432
|
+
fieldId: string;
|
|
2433
|
+
/** Visible field label; names the group. */
|
|
2434
|
+
label: string;
|
|
2435
|
+
/** Class applied to the `<label>`, after the kit `Label` defaults. */
|
|
2436
|
+
labelClassName?: string;
|
|
2437
|
+
/** Marks the label as required. */
|
|
2438
|
+
required?: boolean;
|
|
2439
|
+
/** Action, status, and error copy. */
|
|
2440
|
+
labels?: TextRefinementLabels;
|
|
2441
|
+
/** The field's `useTextRefinement` result. */
|
|
2442
|
+
refinement: TextRefinementResult;
|
|
2443
|
+
/** Disables both actions. */
|
|
2444
|
+
disabled: boolean;
|
|
2445
|
+
/** Class applied to the status message and the error message. */
|
|
2446
|
+
feedbackClassName?: string;
|
|
2447
|
+
/** Class applied to the error message, after `feedbackClassName`. */
|
|
2448
|
+
errorClassName?: string;
|
|
2449
|
+
/** The refinable control, whose id must equal `fieldId`. */
|
|
2450
|
+
children: ReactNode;
|
|
2451
|
+
}
|
|
2452
|
+
|
|
2453
|
+
/** Translatable copy for `TextRefinementField`; every key has an English default. */
|
|
2454
|
+
export declare interface TextRefinementLabels {
|
|
2455
|
+
/** Refinement copy. Defaults to 'Refine with AI'. */
|
|
2456
|
+
refineWithAiLabel?: string;
|
|
2457
|
+
/** Refinement copy. Defaults to 'Undo'. */
|
|
2458
|
+
refineUndoLabel?: string;
|
|
2459
|
+
/** Refinement copy. Defaults to 'Could not refine this text. Please try again.'. */
|
|
2460
|
+
refineErrorLabel?: string;
|
|
2461
|
+
/** Refinement copy. Defaults to 'Refining text'. */
|
|
2462
|
+
refinePendingAriaLabel?: string;
|
|
2463
|
+
/** Refinement copy. Defaults to 'Text refined. Undo is available.'. */
|
|
2464
|
+
refineSuccessAriaLabel?: string;
|
|
2465
|
+
/** Refinement copy. Defaults to 'Original text restored.'. */
|
|
2466
|
+
refineUndoAriaLabel?: string;
|
|
2467
|
+
/** Refinement copy. Defaults to 'No changes were needed.'. */
|
|
2468
|
+
refineUnchangedAriaLabel?: string;
|
|
2469
|
+
}
|
|
2470
|
+
|
|
2471
|
+
/** Controls and feedback for a single field. */
|
|
2472
|
+
export declare interface TextRefinementResult {
|
|
2473
|
+
/** Current field-local feedback state. */
|
|
2474
|
+
state: TextRefinementState;
|
|
2475
|
+
/** Whether this field has a request in progress. */
|
|
2476
|
+
isPending: boolean;
|
|
2477
|
+
/** Whether the current value can be refined. */
|
|
2478
|
+
canRefine: boolean;
|
|
2479
|
+
/** Whether an original baseline can be restored. */
|
|
2480
|
+
canUndo: boolean;
|
|
2481
|
+
/** Refines the latest committed value; duplicate activation is ignored. */
|
|
2482
|
+
refine: () => Promise<void>;
|
|
2483
|
+
/** Restores the baseline from before the first successful refinement. */
|
|
2484
|
+
undo: () => void;
|
|
2485
|
+
/** Cancels work and clears feedback and Undo without modifying the value. */
|
|
2486
|
+
reset: () => void;
|
|
2487
|
+
}
|
|
2488
|
+
|
|
2489
|
+
/** Field-local refinement feedback state. */
|
|
2490
|
+
export declare enum TextRefinementState {
|
|
2491
|
+
Idle = "idle",
|
|
2492
|
+
Pending = "pending",
|
|
2493
|
+
Success = "success",
|
|
2494
|
+
Error = "error",
|
|
2495
|
+
Restored = "restored",
|
|
2496
|
+
Unchanged = "unchanged"
|
|
2497
|
+
}
|
|
2498
|
+
|
|
2268
2499
|
/** A single selectable UI theme. */
|
|
2269
2500
|
export declare interface Theme {
|
|
2270
2501
|
/** Unique theme identifier (e.g. `'dark'`, `'light'`). */
|
|
@@ -2502,4 +2733,21 @@ export declare interface UserProfile {
|
|
|
2502
2733
|
isAdmin: boolean;
|
|
2503
2734
|
}
|
|
2504
2735
|
|
|
2736
|
+
/** Preserves an author's draft and Undo baseline across asynchronous controlled updates. */
|
|
2737
|
+
export declare const useTextRefinement: (options: UseTextRefinementOptions) => TextRefinementResult;
|
|
2738
|
+
|
|
2739
|
+
/** Controlled value and lifecycle inputs for one refinable field. */
|
|
2740
|
+
export declare interface UseTextRefinementOptions {
|
|
2741
|
+
/** Current controlled field value. */
|
|
2742
|
+
value: string;
|
|
2743
|
+
/** Host rewriting callback. Omission disables refinement and clears its state. */
|
|
2744
|
+
onRefine?: TextRefinementCallback;
|
|
2745
|
+
/** Publishes a successful result or the original Undo baseline. */
|
|
2746
|
+
onChange: (value: string) => void;
|
|
2747
|
+
/** Disables refinement and cancels active work when true. Defaults to false. */
|
|
2748
|
+
disabled?: boolean;
|
|
2749
|
+
/** Draft identity; changing it resets state even when text is equal. */
|
|
2750
|
+
resetKey?: unknown;
|
|
2751
|
+
}
|
|
2752
|
+
|
|
2505
2753
|
export { }
|