@epam/ai-dial-chat-shared 1.2.0-dev.12 → 1.2.0-dev.120
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/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 +209 -10
- package/index.js +59 -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}.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}.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. */
|
|
@@ -276,6 +338,8 @@ export declare interface ConversationTransferJob {
|
|
|
276
338
|
* {@link ConversationTransferJobStatus.Warning}.
|
|
277
339
|
*/
|
|
278
340
|
warningCode?: ConversationTransferWarningCode;
|
|
341
|
+
/** Untranslated names of skipped attachments, when available for this warning. */
|
|
342
|
+
warningNames?: string[];
|
|
279
343
|
}
|
|
280
344
|
|
|
281
345
|
/** Lifecycle status of a queued export/import job. */
|
|
@@ -1176,6 +1240,9 @@ export declare const generateUUID: () => string;
|
|
|
1176
1240
|
/** Classifies a MIME type into an `AttachmentType` by prefix (`image/*` / `audio/*`), defaulting to `File`. */
|
|
1177
1241
|
export declare const getAttachmentTypeFromMime: (mimeType: string | undefined) => AttachmentType;
|
|
1178
1242
|
|
|
1243
|
+
/** Lowercases a MIME type and strips its parameters, e.g. `'Application/JSON; charset=utf-8'` -> `'application/json'`. */
|
|
1244
|
+
export declare const getBaseMimeType: (mimeType: string) => string;
|
|
1245
|
+
|
|
1179
1246
|
/** Returns the file extension (without a leading dot) for a fenced-code-block language identifier, defaulting to `txt`. */
|
|
1180
1247
|
export declare const getFileExtensionForLanguage: (language: string) => string;
|
|
1181
1248
|
|
|
@@ -1192,6 +1259,24 @@ export declare const getParentFolderPath: (path: string) => string;
|
|
|
1192
1259
|
/** Returns the UTF-8 byte length of `str`. */
|
|
1193
1260
|
export declare const getUtf8ByteLength: (str: string) => number;
|
|
1194
1261
|
|
|
1262
|
+
/** A single attachment handed to a grouped visualizer inside `SEND_GROUPED_VISUALIZE_DATA`. */
|
|
1263
|
+
export declare interface GroupedAttachmentItem {
|
|
1264
|
+
/** Absolute URL of the attachment, resolved by the host before sending. */
|
|
1265
|
+
url: string;
|
|
1266
|
+
/** The attachment's own MIME type. */
|
|
1267
|
+
mimeType: string;
|
|
1268
|
+
/** Presentation layout plus the opaque per-attachment payload. */
|
|
1269
|
+
visualizerData: CustomVisualizerData;
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
/** Payload of a `SEND_GROUPED_VISUALIZE_DATA` request: every claimed attachment plus the shared presentation layout. */
|
|
1273
|
+
export declare interface GroupedAttachmentsData {
|
|
1274
|
+
/** One item per claimed attachment, in the message's attachment order. */
|
|
1275
|
+
attachments: GroupedAttachmentItem[];
|
|
1276
|
+
/** Presentation layout hints shared by every item. */
|
|
1277
|
+
layout: CustomVisualizerDataLayout;
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1195
1280
|
/** Minimal hast shapes this plugin reads and writes. */
|
|
1196
1281
|
declare interface HastNode {
|
|
1197
1282
|
type: string;
|
|
@@ -1245,6 +1330,9 @@ export declare const isAudioTranscriptionSupported: (types?: string[]) => boolea
|
|
|
1245
1330
|
/** Returns true when any path segment starts with a dot (hidden file or folder). */
|
|
1246
1331
|
export declare const isHiddenPath: (path: string) => boolean;
|
|
1247
1332
|
|
|
1333
|
+
/** Whether a selected skill lacks explicitly confirmed support. */
|
|
1334
|
+
export declare const isSkillSelectionUnsupported: (skillUrl: string | null | undefined, isSkillsSupported: boolean | undefined) => boolean;
|
|
1335
|
+
|
|
1248
1336
|
/** Returns `true` when `msg` is a `StatusMessage`. */
|
|
1249
1337
|
export declare const isStatusMessage: (msg: Message | StatusMessage) => msg is StatusMessage;
|
|
1250
1338
|
|
|
@@ -1285,7 +1373,7 @@ export declare interface ItemHeaderProps {
|
|
|
1285
1373
|
shouldTruncateTitle?: boolean;
|
|
1286
1374
|
}
|
|
1287
1375
|
|
|
1288
|
-
export declare const MARKDOWN_EDITOR_MAX_HEIGHT_CLASS_NAME = "[&_.w-md-editor]:max-h-[var(--resizable-field-max-height,70vh)]";
|
|
1376
|
+
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
1377
|
|
|
1290
1378
|
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
1379
|
|
|
@@ -1487,9 +1575,7 @@ export declare interface MarkdownRendererProps {
|
|
|
1487
1575
|
export declare const MarkdownTable: FC<MarkdownTableProps>;
|
|
1488
1576
|
|
|
1489
1577
|
export declare interface MarkdownTableActionLabels {
|
|
1490
|
-
|
|
1491
|
-
copyTxtLabel?: string;
|
|
1492
|
-
copyMarkdownLabel?: string;
|
|
1578
|
+
copyLabel?: string;
|
|
1493
1579
|
copiedLabel?: string;
|
|
1494
1580
|
downloadCsvLabel?: string;
|
|
1495
1581
|
openInCanvasLabel?: string;
|
|
@@ -1515,19 +1601,16 @@ export declare interface MarkdownTableColors {
|
|
|
1515
1601
|
fade?: string;
|
|
1516
1602
|
/** Divider color between rows. Defaults to `--stroke-tertiary`. */
|
|
1517
1603
|
rowDivider?: string;
|
|
1518
|
-
/** Background of even-indexed body rows. Defaults to `--bg-layer-base`. */
|
|
1519
|
-
rowZebraBackground?: string;
|
|
1520
1604
|
/** Background of a body row on hover. Defaults to `--bg-control-accent-alpha-hover`. */
|
|
1521
1605
|
rowHoverBackground?: string;
|
|
1522
1606
|
}
|
|
1523
1607
|
|
|
1524
1608
|
export declare enum MarkdownTableCopyFormat {
|
|
1525
1609
|
Csv = "csv",
|
|
1526
|
-
Txt = "txt",
|
|
1527
1610
|
Markdown = "markdown"
|
|
1528
1611
|
}
|
|
1529
1612
|
|
|
1530
|
-
/** A table
|
|
1613
|
+
/** A table action rendered as an icon button. */
|
|
1531
1614
|
export declare interface MarkdownTableHeaderAction {
|
|
1532
1615
|
/** Stable accessible name and tooltip text. */
|
|
1533
1616
|
label: string;
|
|
@@ -1578,13 +1661,20 @@ export declare interface MarkdownWithPlaceholdersProps {
|
|
|
1578
1661
|
headingClassName?: string;
|
|
1579
1662
|
}
|
|
1580
1663
|
|
|
1581
|
-
/** Renders assistant message content as formatted markdown. */
|
|
1664
|
+
/** Renders assistant message content as formatted markdown, or as escaped plain text when `isPlainText` is set. */
|
|
1582
1665
|
export declare const MDMessageViewer: FC<MDMessageViewerProps>;
|
|
1583
1666
|
|
|
1584
1667
|
/** Props for the {@link MDMessageViewer} markdown renderer. */
|
|
1585
1668
|
declare interface MDMessageViewerProps {
|
|
1586
1669
|
/** Raw markdown string to render. */
|
|
1587
1670
|
content: string;
|
|
1671
|
+
/**
|
|
1672
|
+
* Renders `content` verbatim as escaped plain text instead of running the
|
|
1673
|
+
* Markdown pipeline — the conversation's `plain_text` response format.
|
|
1674
|
+
* Markdown-only props (`components`, `urlTransform`, the code-block and
|
|
1675
|
+
* table labels) do not apply while it is set. Defaults to `false`.
|
|
1676
|
+
*/
|
|
1677
|
+
isPlainText?: boolean;
|
|
1588
1678
|
/** Enables gradual reveal for appended streaming content. */
|
|
1589
1679
|
isStreaming?: boolean;
|
|
1590
1680
|
/**
|
|
@@ -1753,6 +1843,21 @@ export declare interface MessageState {
|
|
|
1753
1843
|
tool_execution_history?: ToolExecutionHistoryMessage[];
|
|
1754
1844
|
}
|
|
1755
1845
|
|
|
1846
|
+
/**
|
|
1847
|
+
* Maps non-canonical MIME type spellings to the canonical type they denote.
|
|
1848
|
+
*
|
|
1849
|
+
* Deployments declare their `inputAttachmentTypes` by hand, while DIAL Core
|
|
1850
|
+
* stores the content type a browser or an upload client reported, so the two
|
|
1851
|
+
* sides routinely disagree on which of several equivalent spellings to use for
|
|
1852
|
+
* the same format (`text/json` vs `application/json`). Resolving both through
|
|
1853
|
+
* this map before comparing them keeps a declared type matching the files it
|
|
1854
|
+
* is meant to describe.
|
|
1855
|
+
*
|
|
1856
|
+
* Only aliases for one and the same format belong here — never a pair of
|
|
1857
|
+
* distinct formats that happen to share an extension.
|
|
1858
|
+
*/
|
|
1859
|
+
export declare const MIME_TYPE_ALIASES: Record<string, string>;
|
|
1860
|
+
|
|
1756
1861
|
/** MIME type prefix shared by all audio content types. */
|
|
1757
1862
|
export declare const MIME_TYPE_AUDIO_PREFIX = "audio/";
|
|
1758
1863
|
|
|
@@ -1822,6 +1927,14 @@ export declare const MOBILE_MAX_WIDTH_PX: number;
|
|
|
1822
1927
|
/** `matchMedia` query matching the mobile/tablet band (up to 1279px). */
|
|
1823
1928
|
export declare const MOBILE_MEDIA_QUERY = "(max-width: 1279px)";
|
|
1824
1929
|
|
|
1930
|
+
/**
|
|
1931
|
+
* Returns the canonical spelling of a MIME type: parameters stripped, lowercased,
|
|
1932
|
+
* and known aliases resolved through `MIME_TYPE_ALIASES` (`'text/json'` ->
|
|
1933
|
+
* `'application/json'`). Wildcards and unrecognized types are returned unchanged
|
|
1934
|
+
* apart from that normalization.
|
|
1935
|
+
*/
|
|
1936
|
+
export declare const normalizeMimeType: (mimeType: string) => string;
|
|
1937
|
+
|
|
1825
1938
|
/**
|
|
1826
1939
|
* Repairs persisted `html_tag` annotations created by older normalizers that
|
|
1827
1940
|
* defaulted every non-HTML source to PDF. An explicit, recognized file
|
|
@@ -1917,6 +2030,44 @@ export declare interface PdfBBoxSelector {
|
|
|
1917
2030
|
/** Returns a deterministic colour-pair for the given display name. */
|
|
1918
2031
|
export declare const pickAvatarColor: (name: string) => AvatarColorEntry;
|
|
1919
2032
|
|
|
2033
|
+
/**
|
|
2034
|
+
* Renders message text as plain text: no Markdown pipeline, no raw HTML, no
|
|
2035
|
+
* syntax highlighting. The text is a React text child, so it is escaped by
|
|
2036
|
+
* construction — a table, a heading, or `**bold**` reaches the reader exactly
|
|
2037
|
+
* as the model emitted it, which is what a conversation's `plain_text`
|
|
2038
|
+
* response format promises.
|
|
2039
|
+
*
|
|
2040
|
+
* Lives beside {@link MarkdownRenderer} because it is the other half of the
|
|
2041
|
+
* same choice: both render an assistant message body, and both are selected
|
|
2042
|
+
* by `MDMessageViewer` from the conversation's response format.
|
|
2043
|
+
*/
|
|
2044
|
+
export declare const PlainTextRenderer: FC<PlainTextRendererProps>;
|
|
2045
|
+
|
|
2046
|
+
/** Props for {@link PlainTextRenderer}. */
|
|
2047
|
+
export declare interface PlainTextRendererProps {
|
|
2048
|
+
/** Message text. Rendered verbatim — never parsed as Markdown or HTML. */
|
|
2049
|
+
content: string;
|
|
2050
|
+
/** Classes applied to the renderer root. */
|
|
2051
|
+
containerClassName?: string;
|
|
2052
|
+
/** When true, appended content is revealed gradually for smoother streaming updates. */
|
|
2053
|
+
isStreaming?: boolean;
|
|
2054
|
+
/** Reveal speed used while `isStreaming` is true. Defaults to 120 characters per second. */
|
|
2055
|
+
streamCharactersPerSecond?: number;
|
|
2056
|
+
/**
|
|
2057
|
+
* Typography classes. Only `p` is read — the single paragraph the renderer
|
|
2058
|
+
* emits — so the same object a Markdown message is styled with keeps both
|
|
2059
|
+
* formats on one type scale.
|
|
2060
|
+
*/
|
|
2061
|
+
classNames?: Pick<MarkdownRendererClassNames, 'p'>;
|
|
2062
|
+
/**
|
|
2063
|
+
* Label shown with a shimmer animation while `isStreaming` is true and no
|
|
2064
|
+
* content has arrived yet. Defaults to `'Thinking'`.
|
|
2065
|
+
*/
|
|
2066
|
+
thinkingLabel?: string;
|
|
2067
|
+
/** Color overrides applied as CSS custom properties. */
|
|
2068
|
+
colors?: Pick<MarkdownRendererColors, 'thinkingPrimary' | 'thinkingSecondary'>;
|
|
2069
|
+
}
|
|
2070
|
+
|
|
1920
2071
|
/**
|
|
1921
2072
|
* Selector that targets a character range inside a single shape on one PPTX
|
|
1922
2073
|
* slide. Confirmed against captured DIAL Core responses: unlike
|
|
@@ -2265,6 +2416,37 @@ export declare interface TextCharacterRangeSelector {
|
|
|
2265
2416
|
end: number;
|
|
2266
2417
|
}
|
|
2267
2418
|
|
|
2419
|
+
/** Asynchronous rewriting callback supplied by the consuming host. */
|
|
2420
|
+
export declare type TextRefinementCallback = (value: string, signal: AbortSignal) => Promise<string>;
|
|
2421
|
+
|
|
2422
|
+
/** Controls and feedback for a single field. */
|
|
2423
|
+
export declare interface TextRefinementResult {
|
|
2424
|
+
/** Current field-local feedback state. */
|
|
2425
|
+
state: TextRefinementState;
|
|
2426
|
+
/** Whether this field has a request in progress. */
|
|
2427
|
+
isPending: boolean;
|
|
2428
|
+
/** Whether the current value can be refined. */
|
|
2429
|
+
canRefine: boolean;
|
|
2430
|
+
/** Whether an original baseline can be restored. */
|
|
2431
|
+
canUndo: boolean;
|
|
2432
|
+
/** Refines the latest committed value; duplicate activation is ignored. */
|
|
2433
|
+
refine: () => Promise<void>;
|
|
2434
|
+
/** Restores the baseline from before the first successful refinement. */
|
|
2435
|
+
undo: () => void;
|
|
2436
|
+
/** Cancels work and clears feedback and Undo without modifying the value. */
|
|
2437
|
+
reset: () => void;
|
|
2438
|
+
}
|
|
2439
|
+
|
|
2440
|
+
/** Field-local refinement feedback state. */
|
|
2441
|
+
export declare enum TextRefinementState {
|
|
2442
|
+
Idle = "idle",
|
|
2443
|
+
Pending = "pending",
|
|
2444
|
+
Success = "success",
|
|
2445
|
+
Error = "error",
|
|
2446
|
+
Restored = "restored",
|
|
2447
|
+
Unchanged = "unchanged"
|
|
2448
|
+
}
|
|
2449
|
+
|
|
2268
2450
|
/** A single selectable UI theme. */
|
|
2269
2451
|
export declare interface Theme {
|
|
2270
2452
|
/** Unique theme identifier (e.g. `'dark'`, `'light'`). */
|
|
@@ -2502,4 +2684,21 @@ export declare interface UserProfile {
|
|
|
2502
2684
|
isAdmin: boolean;
|
|
2503
2685
|
}
|
|
2504
2686
|
|
|
2687
|
+
/** Preserves an author's draft and Undo baseline across asynchronous controlled updates. */
|
|
2688
|
+
export declare const useTextRefinement: (options: UseTextRefinementOptions) => TextRefinementResult;
|
|
2689
|
+
|
|
2690
|
+
/** Controlled value and lifecycle inputs for one refinable field. */
|
|
2691
|
+
export declare interface UseTextRefinementOptions {
|
|
2692
|
+
/** Current controlled field value. */
|
|
2693
|
+
value: string;
|
|
2694
|
+
/** Host rewriting callback. Omission disables refinement and clears its state. */
|
|
2695
|
+
onRefine?: TextRefinementCallback;
|
|
2696
|
+
/** Publishes a successful result or the original Undo baseline. */
|
|
2697
|
+
onChange: (value: string) => void;
|
|
2698
|
+
/** Disables refinement and cancels active work when true. Defaults to false. */
|
|
2699
|
+
disabled?: boolean;
|
|
2700
|
+
/** Draft identity; changing it resets state even when text is equal. */
|
|
2701
|
+
resetKey?: unknown;
|
|
2702
|
+
}
|
|
2703
|
+
|
|
2505
2704
|
export { }
|