@epam/ai-dial-ui-kit 0.16.0-dev.18 → 0.16.0-dev.19
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/dist/CHANGELOG.md +4 -0
- package/dist/JsonEditor-Bxui5wJH.cjs +1 -0
- package/dist/{MarkdownEditor-Cp-KX6-T.cjs → MarkdownEditor-BKtFs714.cjs} +1 -1
- package/dist/{MarkdownEditor-Dav_pp0T.cjs → MarkdownEditor-Bapd1ycU.cjs} +1 -1
- package/dist/MarkdownEditorContainer-DLPODjar.cjs +1 -0
- package/dist/components/MarkdownEditor/MarkdownEditorContainer.js +16 -18
- package/dist/components/New/TransferQueue/TransferQueue.js +66 -71
- package/dist/components/New/TransferQueue/TransferQueueHeader.js +30 -38
- package/dist/components-manifest.json +4 -4
- package/dist/dial-ui-kit.cjs +3 -3
- package/dist/editors.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/lazy-_W6FYhKg.cjs +1 -0
- package/dist/src/components/New/TransferQueue/TransferQueue.d.ts +9 -5
- package/dist/src/components/New/TransferQueue/TransferQueueHeader.d.ts +1 -3
- package/package.json +1 -1
- package/dist/JsonEditor-eAV7SaKu.cjs +0 -1
- package/dist/MarkdownEditorContainer-D8YTX8EM.cjs +0 -1
- package/dist/editor-BH6_A1k2.cjs +0 -1
- package/dist/lazy-DMVYJhUR.cjs +0 -1
package/dist/CHANGELOG.md
CHANGED
|
@@ -28,6 +28,10 @@ Versions match the git tags on the `development` branch.
|
|
|
28
28
|
|
|
29
29
|
### Changed
|
|
30
30
|
|
|
31
|
+
- **`shadow-sm` and `shadow-md` — the design's two-layer Shadow SM and Shadow MD** — `--shadow-sm` was one `0 8px 10px 0` layer at 8% accent; it is now `4px 9px 16px 1px` at 6% accent (`--shadow-sm-2`, `#2764D90F`) plus a `0 -2px 4px 2px` halo at 4% accent (`--shadow-sm-1`, `#2764D90A`). No kit component uses `shadow-sm`; the kit ships the utility for the host's side panels. `--shadow-md` was one layer, `0 8px 24px 0` at 6% accent, soft enough that the `TransferQueue` panel barely lifted off the page. It is now the design's Shadow MD: `0 10px 30px 9px` at 6% accent (`--shadow-md-2`, `#2764D90F`) plus a tight `0 0 8px 2px` halo at 4% accent (`--shadow-md-1`, `#2764D90A`). Everything on `shadow-md` follows: `TransferQueue`, `CardShell`, the `Calendar` popover and `CollapsibleSidebar`. A host that themed either old token through `--shadow-sm` / `--shadow-md` keeps its colour on the drop layer; the `-1` / `-2` variables theme each layer. Reported on the upload queue in ai-dial-chat.
|
|
32
|
+
|
|
33
|
+
- **`TransferQueue` (2.0) — no failed-item count in the header, and no close confirmation once nothing is running** — the header showed a red badge with the number of failed items next to the title; it is gone, and each failed row still carries its own error icon and reason. Closing asked for confirmation whenever an item was in progress or had failed; it now asks only while an item is in progress, since a failed one has nothing left to lose. With rows both running and failed, the confirmation still uses `closeConfirmDescriptionMixed`. `labels.closeConfirmDescriptionFailed` is no longer shown and is deprecated; passing it is harmless. Reported on the upload queue in ai-dial-chat.
|
|
34
|
+
|
|
31
35
|
- **`Popup`, `ConfirmationPopup` (2.0) — the title is Heading 3** — the popup title was set in `dial-h1-text` (20/28 semibold); the design sets every popup title in Heading 3, `dial-h3-text` (16/24 semibold). `ConfirmationPopup` renders through `Popup` and changes with it. A caller's `titleClassName` still merges on top, so a host that needs the larger title can pass `dial-h1-text` back. Reported on the file manager's Information popup in ai-dial-chat.
|
|
32
36
|
|
|
33
37
|
- **`Popup` (2.0) — footer buttons split the row evenly on mobile** — below the `mobile` breakpoint (768px), where the popup fills the screen, the trailing `mainButtons` group now spans the footer and each of its buttons takes an equal share, so a Cancel/Confirm pair renders 50/50 and a single button fills the row. `additionalButtons` in the trailing group stretch with it; with `additionalButtonsOnLeft` they keep their natural width. Desktop is unchanged, a caller's `className` on a button still merges on top, and a custom `footer` node is not touched. The props are unchanged. Reported on the mobile dialogs in ai-dial-chat.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),a=require("./lazy-_W6FYhKg.cjs"),c=require("@monaco-editor/react");function g(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,t.get?t:{enumerable:!0,get:()=>e[r]})}}return o.default=e,Object.freeze(o)}const f=g(c),b={[a.EditorThemes.dark]:{base:"vs-dark",inherit:!1,rules:[{token:"string.key.json",foreground:"#37BABC"},{token:"string.value.json",foreground:"#5C8DEA"},{token:"number",foreground:"#D97C27"},{token:"keyword.json",foreground:"#F4CE46"},{token:"delimiter",foreground:"#EEF1F7"},{token:"delimiter.bracket.json",foreground:"#A972FF"},{token:"delimiter.parenthesis",foreground:"#A972FF"}],colors:{"editor.foreground":"#F76464","editor.background":"#161B2D","editorCursor.foreground":"#EEF1F7","editor.selectionBackground":"#5C8DEA2B","editorLineNumber.foreground":"#242C42","scrollbarSlider.background":"#242C42","scrollbarSlider.hoverBackground":"#242C42","scrollbarSlider.activeBackground":"#242C42"}},[a.EditorThemes.light]:{base:"vs",inherit:!1,rules:[{token:"string.key.json",foreground:"#009D9F"},{token:"string.value.json",foreground:"#2764D9"},{token:"number",foreground:"#B25500"},{token:"keyword.json",foreground:"#3F3D25"},{token:"delimiter",foreground:"#161B2D"},{token:"delimiter.bracket.json",foreground:"#7E39EC"},{token:"delimiter.parenthesis",foreground:"#7E39EC"}],colors:{"editor.foreground":"#AE2F2F","editor.background":"#EEF1F7","editorCursor.foreground":"#161B2D","editor.selectionBackground":"#5C8DEA2B","editorLineNumber.foreground":"#242C42","scrollbarSlider.background":"#242C42","scrollbarSlider.hoverBackground":"#242C42","scrollbarSlider.activeBackground":"#242C42"}}},k=({value:e,onChange:o,onValidateJSON:r,options:t,currentTheme:n,themesConfig:s=b})=>{function d(i){i?.editor?.defineTheme(n,s[n]),i.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,enableSchemaRequest:!1,schemas:[{uri:"http://custom-schema/object-required.json",fileMatch:["*"],schema:{type:"object",description:"Top-level value must be an object",additionalProperties:!0}}]})}const{Editor:l}=f;return u.jsx(l,{beforeMount:d,height:"100%",defaultLanguage:"json",value:e,onChange:o,theme:n,onValidate:r,options:{minimap:{enabled:!1},formatOnType:!0,formatOnPaste:!0,selectOnLineNumbers:!1,automaticLayout:!0,scrollBeyondLastLine:!1,wordWrap:"on",smoothScrolling:!0,overviewRulerLanes:0,scrollbar:{horizontal:"hidden",verticalScrollbarSize:4,verticalSliderSize:4},...t??{}}})};exports.DialJsonEditor=k;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),b=require("react"),O=require("@uiw/react-md-editor"),_=require("./lazy-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),b=require("react"),O=require("@uiw/react-md-editor"),_=require("./lazy-_W6FYhKg.cjs"),k=require("./merge-classes-BEJXjzkx.cjs"),o=require("@tabler/icons-react"),p=require("./icon-DhjrDQ8I.cjs"),f=require("./icon-CrGVkVpG.cjs");function E(n){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const r in n)if(r!=="default"){const c=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(i,r,c.get?c:{enumerable:!0,get:()=>n[r]})}}return i.default=n,Object.freeze(i)}const h=E(O),L=f.DIAL_ICON_SIZE.SM,t={size:L,stroke:p.DIAL_KIT_ICON_STROKE},s=(n,i)=>({...n,icon:i}),M=()=>{const{bold:n,code:i,divider:r,group:c,heading1:a,heading2:d,heading3:u,italic:l,link:m,orderedListCommand:I,quote:g,strikethrough:x,table:j,unorderedListCommand:C}=h;return[s(n,e.jsx(o.IconBold,{...t})),s(l,e.jsx(o.IconItalic,{...t})),s(x,e.jsx(o.IconStrikethrough,{...t})),r,c([a,d,u],{name:"heading",groupName:"heading",icon:e.jsx(o.IconTextSize,{...t}),buttonProps:{"aria-label":"Text style",title:"Text style"}}),r,s(C,e.jsx(o.IconList,{...t})),s(I,e.jsx(o.IconListNumbers,{...t})),r,s(g,e.jsx(o.IconQuote,{...t})),s(m,e.jsx(o.IconLink,{...t})),s(i,e.jsx(o.IconCode,{...t})),r,s(j,e.jsx(o.IconTable,{...t}))]},S=()=>{const{codeEdit:n,codeLive:i,codePreview:r,divider:c,fullscreen:a}=h;return[s(n,e.jsx(o.IconPencil,{...t})),s(i,e.jsx(o.IconLayoutColumns,{...t})),s(r,e.jsx(o.IconEye,{...t})),c,s(a,e.jsx(o.IconMaximize,{...t}))]},T=({value:n,onChange:i,height:r=300,theme:c=_.EditorThemes.light,className:a,placeholder:d,defaultPreview:u="edit",id:l,ariaLabel:m,showDragbar:I=!0})=>{const g=b.useMemo(()=>M(),[]),x=b.useMemo(()=>S(),[]);return e.jsx("div",{"data-color-mode":c,className:k.mergeClasses("dial-kit-markdown-editor",a),children:e.jsx(O,{value:n,onChange:j=>i?.(j||""),height:r,preview:u,visibleDragbar:I,commands:g,extraCommands:x,textareaProps:{placeholder:d,id:l,"aria-label":m}})})};exports.MarkdownEditor=T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),m=require("@uiw/react-md-editor"),u=require("./lazy-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),m=require("@uiw/react-md-editor"),u=require("./lazy-_W6FYhKg.cjs"),x=require("./merge-classes-BEJXjzkx.cjs"),g=({value:r,onChange:s,height:o=300,preview:i="edit",theme:a=u.EditorThemes.dark,className:n,placeholder:t,showDragbar:d=!0})=>{const l=t!==void 0&&!r;return e.jsxs("div",{"data-color-mode":a,className:x.mergeClasses("relative",n),children:[e.jsx(m,{value:r,onChange:c=>s?.(c||""),height:o,preview:i,visibleDragbar:d}),l&&e.jsx("div",{className:"pointer-events-none absolute left-0 top-8 px-2 dial-small-text text-secondary opacity-40",children:t})]})};exports.DialMarkdownEditor=g;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("react"),m=require("./Switch-DAaAOaIu.cjs"),N=require("./lazy-_W6FYhKg.cjs"),b=require("./MarkdownEditor-Bapd1ycU.cjs"),g=({value:r,onChangeValue:l,label:i,headerContent:a,switcherLabel:d,height:c=300,theme:u=N.EditorThemes.dark,onValidateJSON:x,preview:j="edit",showDragbar:w=!0})=>{const C=n.useId(),[t,p]=n.useState(!1),[f,S]=n.useState(null);n.useEffect(()=>{t&&typeof window<"u"&&Promise.resolve().then(()=>require("./JsonEditor-Bxui5wJH.cjs")).then(s=>{S(()=>s.DialJsonEditor)})},[t]);const h=n.useCallback(s=>{l?.(s)},[l]),E=n.useCallback(s=>{x?.(s)},[x]),o=!!d;return e.jsx("div",{className:"size-full flex flex-col",children:e.jsx("div",{className:"flex flex-col gap-8",children:e.jsxs("div",{children:[(i||a||o)&&e.jsxs("div",{className:"flex justify-between items-center mb-2",children:[i&&e.jsx(m.DialLabel,{label:i}),e.jsxs("div",{className:"flex items-center gap-2 flex-1 justify-end",children:[a,o&&e.jsx("label",{className:"flex items-center gap-2 cursor-pointer",children:e.jsx(m.DialSwitch,{isOn:t,label:d,switchId:C,onChange:s=>p(s)})})]})]}),o&&t?e.jsx("div",{className:"border border-primary rounded",style:{height:`${c}px`},children:f&&e.jsx(f,{value:r,onChange:h,onValidateJSON:E,currentTheme:u})}):e.jsx(b.DialMarkdownEditor,{value:r,onChange:h,height:c,preview:j,showDragbar:w,theme:u})]})})})};exports.DialMarkdownEditorContainer=g;
|
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
import { jsx as e, jsxs as r } from "react/jsx-runtime";
|
|
2
2
|
import { useId as J, useState as u, useEffect as S, useCallback as x } from "react";
|
|
3
|
-
import "
|
|
4
|
-
import { EditorThemes as
|
|
5
|
-
import "@monaco-editor/react";
|
|
6
|
-
import { DialSwitch as v } from "../Switch/Switch.js";
|
|
3
|
+
import { DialSwitch as b } from "../Switch/Switch.js";
|
|
4
|
+
import { EditorThemes as v } from "../../types/editor.js";
|
|
7
5
|
import { DialMarkdownEditor as y } from "./MarkdownEditor.js";
|
|
8
6
|
import { DialLabel as j } from "../Label/Label.js";
|
|
9
|
-
const
|
|
7
|
+
const B = ({
|
|
10
8
|
value: s,
|
|
11
9
|
onChangeValue: l,
|
|
12
|
-
label:
|
|
10
|
+
label: t,
|
|
13
11
|
headerContent: d,
|
|
14
12
|
switcherLabel: a,
|
|
15
13
|
height: c = 300,
|
|
16
|
-
theme: m =
|
|
14
|
+
theme: m = v.dark,
|
|
17
15
|
onValidateJSON: f,
|
|
18
16
|
preview: C = "edit",
|
|
19
17
|
showDragbar: N = !0
|
|
20
18
|
}) => {
|
|
21
|
-
const w = J(), [
|
|
19
|
+
const w = J(), [n, D] = u(!1), [p, E] = u(null);
|
|
22
20
|
S(() => {
|
|
23
|
-
|
|
21
|
+
n && typeof window < "u" && import("../JsonEditor/JsonEditor.js").then((o) => {
|
|
24
22
|
E(() => o.DialJsonEditor);
|
|
25
23
|
});
|
|
26
|
-
}, [
|
|
24
|
+
}, [n]);
|
|
27
25
|
const h = x(
|
|
28
26
|
(o) => {
|
|
29
27
|
l?.(o);
|
|
@@ -34,16 +32,16 @@ const q = ({
|
|
|
34
32
|
f?.(o);
|
|
35
33
|
},
|
|
36
34
|
[f]
|
|
37
|
-
),
|
|
35
|
+
), i = !!a;
|
|
38
36
|
return /* @__PURE__ */ e("div", { className: "size-full flex flex-col", children: /* @__PURE__ */ e("div", { className: "flex flex-col gap-8", children: /* @__PURE__ */ r("div", { children: [
|
|
39
|
-
(
|
|
40
|
-
|
|
37
|
+
(t || d || i) && /* @__PURE__ */ r("div", { className: "flex justify-between items-center mb-2", children: [
|
|
38
|
+
t && /* @__PURE__ */ e(j, { label: t }),
|
|
41
39
|
/* @__PURE__ */ r("div", { className: "flex items-center gap-2 flex-1 justify-end", children: [
|
|
42
40
|
d,
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
i && /* @__PURE__ */ e("label", { className: "flex items-center gap-2 cursor-pointer", children: /* @__PURE__ */ e(
|
|
42
|
+
b,
|
|
45
43
|
{
|
|
46
|
-
isOn:
|
|
44
|
+
isOn: n,
|
|
47
45
|
label: a,
|
|
48
46
|
switchId: w,
|
|
49
47
|
onChange: (o) => D(o)
|
|
@@ -51,7 +49,7 @@ const q = ({
|
|
|
51
49
|
) })
|
|
52
50
|
] })
|
|
53
51
|
] }),
|
|
54
|
-
|
|
52
|
+
i && n ? /* @__PURE__ */ e(
|
|
55
53
|
"div",
|
|
56
54
|
{
|
|
57
55
|
className: "border border-primary rounded",
|
|
@@ -80,5 +78,5 @@ const q = ({
|
|
|
80
78
|
] }) }) });
|
|
81
79
|
};
|
|
82
80
|
export {
|
|
83
|
-
|
|
81
|
+
B as DialMarkdownEditorContainer
|
|
84
82
|
};
|
|
@@ -1,118 +1,113 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { ConfirmationPopup as
|
|
1
|
+
import { jsxs as _, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { useState as g, useId as b, useCallback as f, useEffect as Q } from "react";
|
|
3
|
+
import { ConfirmationPopup as w } from "../ConfirmationPopup/ConfirmationPopup.js";
|
|
4
4
|
import { ProgressBar as U } from "../../ProgressBar/ProgressBar.js";
|
|
5
|
-
import { DIAL_KIT_CLASS as
|
|
6
|
-
import { ConfirmationPopupVariant as
|
|
7
|
-
import { ElementSize as
|
|
8
|
-
import { TransferQueueItemStatus as
|
|
9
|
-
import { mergeClasses as
|
|
10
|
-
import { DEFAULT_TRANSFER_QUEUE_LABELS as
|
|
11
|
-
import { TransferQueueHeader as
|
|
12
|
-
import { TransferQueueRow as
|
|
13
|
-
const
|
|
5
|
+
import { DIAL_KIT_CLASS as D } from "../../../constants/public-class-names.js";
|
|
6
|
+
import { ConfirmationPopupVariant as F } from "../../../types/confirmation-popup.js";
|
|
7
|
+
import { ElementSize as R } from "../../../types/size.js";
|
|
8
|
+
import { TransferQueueItemStatus as t } from "../../../types/transfer-queue.js";
|
|
9
|
+
import { mergeClasses as C } from "../../../utils/merge-classes.js";
|
|
10
|
+
import { DEFAULT_TRANSFER_QUEUE_LABELS as N, TRANSFER_QUEUE_AUTO_CLOSE_DELAY_MS as O } from "./constants.js";
|
|
11
|
+
import { TransferQueueHeader as y } from "./TransferQueueHeader.js";
|
|
12
|
+
import { TransferQueueRow as M } from "./TransferQueueRow.js";
|
|
13
|
+
const j = (n) => Math.round(
|
|
14
14
|
n.reduce(
|
|
15
|
-
(e,
|
|
15
|
+
(e, o) => e + (o.percent ?? (o.status === t.InProgress ? 0 : 100)),
|
|
16
16
|
0
|
|
17
17
|
) / n.length
|
|
18
|
-
),
|
|
18
|
+
), q = (n, e) => n ? e.closeConfirmDescriptionMixed : e.closeConfirmDescriptionInProgress, $ = ({
|
|
19
19
|
title: n,
|
|
20
20
|
items: e,
|
|
21
|
-
onClose:
|
|
22
|
-
onCancelItem:
|
|
23
|
-
labels:
|
|
24
|
-
autoCloseDelay:
|
|
25
|
-
className:
|
|
26
|
-
bodyClassName:
|
|
21
|
+
onClose: o,
|
|
22
|
+
onCancelItem: h,
|
|
23
|
+
labels: T,
|
|
24
|
+
autoCloseDelay: l = O,
|
|
25
|
+
className: E,
|
|
26
|
+
bodyClassName: S
|
|
27
27
|
}) => {
|
|
28
|
-
const [
|
|
29
|
-
(
|
|
30
|
-
).length,
|
|
31
|
-
(
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
}, [
|
|
35
|
-
|
|
36
|
-
}, [
|
|
37
|
-
|
|
28
|
+
const [i, v] = g(!1), [x, c] = g(!1), m = b(), s = { ...N, ...T }, p = e.filter(
|
|
29
|
+
(r) => r.status === t.InProgress
|
|
30
|
+
).length, u = p > 0, I = e.some(
|
|
31
|
+
(r) => r.status === t.Failed
|
|
32
|
+
), d = e.length > 0 && e.every((r) => r.status === t.Success), L = f(() => {
|
|
33
|
+
u ? c(!0) : o();
|
|
34
|
+
}, [u, o]), P = f(() => {
|
|
35
|
+
c(!1), o();
|
|
36
|
+
}, [o]), A = f(() => {
|
|
37
|
+
v((r) => !r);
|
|
38
38
|
}, []);
|
|
39
|
-
return
|
|
40
|
-
if (!
|
|
41
|
-
const
|
|
42
|
-
return () => clearTimeout(
|
|
43
|
-
}, [
|
|
39
|
+
return Q(() => {
|
|
40
|
+
if (!d || l <= 0) return;
|
|
41
|
+
const r = setTimeout(o, l);
|
|
42
|
+
return () => clearTimeout(r);
|
|
43
|
+
}, [d, l, o]), e.length === 0 ? null : /* @__PURE__ */ _(
|
|
44
44
|
"div",
|
|
45
45
|
{
|
|
46
46
|
role: "status",
|
|
47
47
|
"aria-live": "polite",
|
|
48
|
-
className:
|
|
48
|
+
className: C(
|
|
49
49
|
"w-[370px] max-w-[calc(100vw-2rem)] rounded-xl bg-layer-raised shadow-md",
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
E,
|
|
51
|
+
D.transferQueue
|
|
52
52
|
),
|
|
53
53
|
children: [
|
|
54
|
-
/* @__PURE__ */
|
|
55
|
-
|
|
54
|
+
/* @__PURE__ */ a(
|
|
55
|
+
y,
|
|
56
56
|
{
|
|
57
57
|
title: n,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
itemsId: p,
|
|
58
|
+
isCollapsed: i,
|
|
59
|
+
itemsId: m,
|
|
61
60
|
labels: s,
|
|
62
|
-
onToggleCollapse:
|
|
63
|
-
onClose:
|
|
61
|
+
onToggleCollapse: A,
|
|
62
|
+
onClose: L
|
|
64
63
|
}
|
|
65
64
|
),
|
|
66
|
-
|
|
65
|
+
i && u && /*
|
|
67
66
|
* Only while collapsed: expanded, every running row already shows its
|
|
68
67
|
* own spinner, so an aggregate bar would restate what is on screen.
|
|
69
68
|
*/
|
|
70
|
-
/* @__PURE__ */
|
|
69
|
+
/* @__PURE__ */ a(
|
|
71
70
|
U,
|
|
72
71
|
{
|
|
73
|
-
value:
|
|
74
|
-
size:
|
|
72
|
+
value: j(e),
|
|
73
|
+
size: R.Small,
|
|
75
74
|
"aria-label": s.queueProgressAriaLabel,
|
|
76
75
|
"aria-valuetext": s.queueProgressValueText(
|
|
77
|
-
e.length -
|
|
76
|
+
e.length - p,
|
|
78
77
|
e.length
|
|
79
78
|
)
|
|
80
79
|
}
|
|
81
80
|
),
|
|
82
|
-
!
|
|
81
|
+
!i && /* @__PURE__ */ a(
|
|
83
82
|
"div",
|
|
84
83
|
{
|
|
85
|
-
id:
|
|
86
|
-
className:
|
|
84
|
+
id: m,
|
|
85
|
+
className: C(
|
|
87
86
|
"flex max-h-[40vh] flex-col overflow-y-auto py-1",
|
|
88
|
-
|
|
87
|
+
S
|
|
89
88
|
),
|
|
90
|
-
children: e.map((
|
|
91
|
-
|
|
89
|
+
children: e.map((r) => /* @__PURE__ */ a(
|
|
90
|
+
M,
|
|
92
91
|
{
|
|
93
|
-
item:
|
|
92
|
+
item: r,
|
|
94
93
|
labels: s,
|
|
95
|
-
onCancel:
|
|
94
|
+
onCancel: h
|
|
96
95
|
},
|
|
97
|
-
|
|
96
|
+
r.id
|
|
98
97
|
))
|
|
99
98
|
}
|
|
100
99
|
),
|
|
101
|
-
/* @__PURE__ */
|
|
102
|
-
|
|
100
|
+
/* @__PURE__ */ a(
|
|
101
|
+
w,
|
|
103
102
|
{
|
|
104
|
-
open:
|
|
103
|
+
open: x,
|
|
105
104
|
header: s.closeConfirmHeader,
|
|
106
|
-
description:
|
|
107
|
-
a,
|
|
108
|
-
u,
|
|
109
|
-
s
|
|
110
|
-
),
|
|
105
|
+
description: q(I, s),
|
|
111
106
|
confirmLabel: s.closeConfirmLabel,
|
|
112
107
|
cancelLabel: s.closeCancelLabel,
|
|
113
|
-
variant:
|
|
114
|
-
onConfirm:
|
|
115
|
-
onClose: () =>
|
|
108
|
+
variant: F.Danger,
|
|
109
|
+
onConfirm: P,
|
|
110
|
+
onClose: () => c(!1)
|
|
116
111
|
}
|
|
117
112
|
)
|
|
118
113
|
]
|
|
@@ -120,5 +115,5 @@ const q = (n) => Math.round(
|
|
|
120
115
|
);
|
|
121
116
|
};
|
|
122
117
|
export {
|
|
123
|
-
|
|
118
|
+
$ as TransferQueue
|
|
124
119
|
};
|
|
@@ -1,71 +1,63 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { IconChevronUp as
|
|
3
|
-
import { GhostIconButton as
|
|
4
|
-
import { DIAL_KIT_ICON_STROKE as
|
|
5
|
-
import { DIAL_ICON_SIZE as
|
|
6
|
-
import { ElementSize as
|
|
7
|
-
import { STATUS_SLOT_CLASS as
|
|
8
|
-
const
|
|
9
|
-
title:
|
|
10
|
-
failedCount: n,
|
|
1
|
+
import { jsxs as o, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { IconChevronUp as S, IconChevronDown as f, IconX as h } from "@tabler/icons-react";
|
|
3
|
+
import { GhostIconButton as i } from "../IconButton/IconButtonWrappers.js";
|
|
4
|
+
import { DIAL_KIT_ICON_STROKE as t } from "../constants/icon.js";
|
|
5
|
+
import { DIAL_ICON_SIZE as n } from "../../../constants/icon.js";
|
|
6
|
+
import { ElementSize as s } from "../../../types/size.js";
|
|
7
|
+
import { STATUS_SLOT_CLASS as m } from "./constants.js";
|
|
8
|
+
const y = ({
|
|
9
|
+
title: c,
|
|
11
10
|
isCollapsed: r,
|
|
12
|
-
itemsId:
|
|
11
|
+
itemsId: l,
|
|
13
12
|
labels: a,
|
|
14
13
|
onToggleCollapse: d,
|
|
15
|
-
onClose:
|
|
14
|
+
onClose: p
|
|
16
15
|
}) => {
|
|
17
|
-
const
|
|
18
|
-
return /* @__PURE__ */
|
|
19
|
-
/* @__PURE__ */
|
|
20
|
-
|
|
21
|
-
n > 0 && /*
|
|
22
|
-
* On the filled --bg-control-error swatch, so it takes the on-control
|
|
23
|
-
* token; --text-tertiary would contrast at under 2:1 over that fill.
|
|
24
|
-
*/
|
|
25
|
-
/* @__PURE__ */ e("span", { className: "dial-small-paragraph-semi-text inline-flex h-4 min-w-4 shrink-0 items-center justify-center rounded-full bg-control-error px-1 text-control-permanent", children: n })
|
|
26
|
-
] }),
|
|
27
|
-
/* @__PURE__ */ i("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
16
|
+
const x = r ? S : f;
|
|
17
|
+
return /* @__PURE__ */ o("div", { className: "mx-4 flex items-center justify-between border-b border-tertiary py-3", children: [
|
|
18
|
+
/* @__PURE__ */ e("span", { className: "dial-small-paragraph-semi-text min-w-0 truncate text-primary", children: c }),
|
|
19
|
+
/* @__PURE__ */ o("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
28
20
|
/* @__PURE__ */ e(
|
|
29
|
-
|
|
21
|
+
i,
|
|
30
22
|
{
|
|
31
23
|
"aria-label": r ? a.expandAriaLabel : a.collapseAriaLabel,
|
|
32
24
|
"aria-expanded": !r,
|
|
33
|
-
"aria-controls":
|
|
34
|
-
size:
|
|
25
|
+
"aria-controls": l,
|
|
26
|
+
size: s.Small,
|
|
35
27
|
icon: /* @__PURE__ */ e(
|
|
36
|
-
|
|
28
|
+
x,
|
|
37
29
|
{
|
|
38
|
-
size:
|
|
39
|
-
stroke:
|
|
30
|
+
size: n.SM,
|
|
31
|
+
stroke: t,
|
|
40
32
|
className: "text-secondary",
|
|
41
33
|
"aria-hidden": !0
|
|
42
34
|
}
|
|
43
35
|
),
|
|
44
36
|
onClick: d,
|
|
45
|
-
className:
|
|
37
|
+
className: m
|
|
46
38
|
}
|
|
47
39
|
),
|
|
48
40
|
/* @__PURE__ */ e(
|
|
49
|
-
|
|
41
|
+
i,
|
|
50
42
|
{
|
|
51
43
|
"aria-label": a.closeAriaLabel,
|
|
52
|
-
size:
|
|
44
|
+
size: s.Small,
|
|
53
45
|
icon: /* @__PURE__ */ e(
|
|
54
|
-
|
|
46
|
+
h,
|
|
55
47
|
{
|
|
56
|
-
size:
|
|
57
|
-
stroke:
|
|
48
|
+
size: n.SM,
|
|
49
|
+
stroke: t,
|
|
58
50
|
className: "text-secondary",
|
|
59
51
|
"aria-hidden": !0
|
|
60
52
|
}
|
|
61
53
|
),
|
|
62
|
-
onClick:
|
|
63
|
-
className:
|
|
54
|
+
onClick: p,
|
|
55
|
+
className: m
|
|
64
56
|
}
|
|
65
57
|
)
|
|
66
58
|
] })
|
|
67
59
|
] });
|
|
68
60
|
};
|
|
69
61
|
export {
|
|
70
|
-
|
|
62
|
+
y as TransferQueueHeader
|
|
71
63
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.16.0-dev.
|
|
3
|
-
"generatedAt": "2026-10-
|
|
2
|
+
"version": "0.16.0-dev.19",
|
|
3
|
+
"generatedAt": "2026-10-20T08:49:00.539Z",
|
|
4
4
|
"kit": {
|
|
5
5
|
"name": "@epam/ai-dial-ui-kit",
|
|
6
6
|
"description": "A modern UI kit for building AI DIAL interfaces with React",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"setupNotes": "## Next.js Integration\n1. Install the package. React is the only peer you have to supply — everything\n the kit renders with, it installs itself.\n\n``` bash\nnpm install @epam/ai-dial-ui-kit\nnpm install react react-dom\n```\n\nAdd the editor packages only if you use the `@epam/ai-dial-ui-kit/editors`\nsubpath. They are optional peers, so `npm install` stays quiet without them, and\nthe kit only reaches for them when a `Lazy*` editor actually mounts:\n\n``` bash\nnpm install monaco-editor @monaco-editor/react @uiw/react-md-editor\n```\n\n2. Import style in the root layout of the project:\n\n```tsx\n// app/layout.tsx\nimport \"@epam/ai-dial-ui-kit/styles.css\";\n```\n\n3. Usage example\n\n```tsx\n// app/page.tsx\n\"use client\";\nimport { DialPrimaryButton } from \"@epam/ai-dial-ui-kit\";\n\nexport default function Home() {\n return (\n <div className=\"w-full h-full flex flex-col gap-3 items-center justify-center\">\n <h1>Test library</h1>\n <DialPrimaryButton onClick={() => alert('Hello AI DIAL!')} />\n </div>\n );\n}\n```\nSee \"🎨 Theming & Customization\" section in README."
|
|
18
18
|
},
|
|
19
19
|
"styles": "# Typography CSS Utility Classes\n\n## Design-system-compliant classes (`dial-*-text`)\n\nUse these by default. They follow the design system type scale.\n\n| Class | Design name | Weight | Size / Line-height |\n| --------------------------------- | --------------------------- | -------- | ----------------------------------- |\n| `.dial-display1-text` | Display 1 | semibold | 32px / 48px |\n| `.dial-display2-text` | Display 2 | semibold | 28px / 40px |\n| `.dial-display3-text` | Display 3 | semibold | 22px / 32px |\n| `.dial-h1-text` | Heading 1 | semibold | 20px / 28px |\n| `.dial-h2-text` | Heading 2 | semibold | 18px / 26px |\n| `.dial-h3-text` | Heading 3 | semibold | 16px / 24px |\n| `.dial-body-text` | Body Text | normal | 16px / 24px |\n| `.dial-body-semi-text` | Body Text (Semi Bold) | semibold | 16px / 24px |\n| `.dial-body-paragraph-text` | Body Paragraph | normal | 16px / 26px |\n| `.dial-body-paragraph-semi-text` | Body Paragraph (Semi Bold) | semibold | 16px / 26px |\n| `.dial-small-text` | Small Text | normal | 14px / 20px |\n| `.dial-small-semi-text` | Small Text (Semi Bold) | semibold | 14px / 20px |\n| `.dial-small-paragraph-text` | Small Paragraph | normal | 14px / 24px |\n| `.dial-small-paragraph-semi-text` | Small Paragraph (Semi Bold) | semibold | 14px / 24px |\n| `.dial-tiny-text` | Tiny Text | normal | 12px / 16px |\n| `.dial-tiny-lead-text` | Tiny Text Lead | normal | 12px / 16px (+0.03em, uppercase) |\n| `.dial-tiny-semi-text` | Tiny Text (Semi Bold) | semibold | 12px / 16px |\n| `.dial-tiny-lead-semi-text` | Tiny Text Lead (Semi Bold) | semibold | 12px / 16px (+0.03em, uppercase) |\n| `.dial-caption-text` | Caption | normal | 10px / 12px |\n| `.dial-caption-lead-semi-text` | Caption Lead (Semi Bold) | semibold | 10px / 12px (+0.06em, uppercase) |\n| `.dial-code-text` | Code | normal | 14px / 20px (Fira Code / monospace) |\n| `.dial-italic-text` | Italic | normal | 18px / 22px (serif, italic) |\n| `.dial-small-italic-text` | Small Italic | normal | 14px / 20px (serif, italic) |\n| `.dial-tiny-italic-text` | Tiny Italic | normal | 12px / 16px (serif, italic) |\n| `.dial-caption-italic-text` | Caption Italic | normal | 10px / 12px (serif, italic) |\n\nThe three `*-lead-*` classes apply `text-transform: uppercase` themselves — pass them the sentence-case string, not a pre-uppercased one, so the accessible name stays readable.\n\n`.dial-code-text` resolves its family through `var(--theme-font-mono, var(--font-fira-code, 'Fira Code'))` before falling back to the system monospace stack. The kit ships no font file; the host provides the face.\n\nThe `*-italic-text` classes use a serif italic face and are intended for mathematical and formula symbols. Their line-heights follow the corresponding typography size; the default 18px variant uses a fixed 22px line-height to keep standalone symbols vertically aligned without changing their container's height.\n\n## Legacy classes (avoid in new code)\n\nClasses like `dial-h1`, `dial-h2`, `dial-body`, `dial-small*`, `dial-tiny*`, `dial-caption` are legacy. They can be used in legacy projects if user explicidly specify they need legacy typography.\n\n## Raw SCSS source\n",
|
|
20
|
-
"theming": "# Theming & CSS Variable Tokens\n\nAI DIAL UI Kit uses CSS custom properties (variables) for theming.\nDark and light themes are switched by setting different values for these variables on `:root` or a theme wrapper element.\n\n## Usage in Tailwind\n\nThe Tailwind config maps CSS variables to utility classes.\nUse these classes in your components:\n\n```tsx\n// Backgrounds\n<div className=\"bg-layer-0\" /> // darkest background\n<div className=\"bg-layer-1\" /> // main content area\n<div className=\"bg-layer-2\" /> // elevated panels\n\n// Text\n<span className=\"text-primary\" /> // main text color\n<span className=\"text-secondary\" /> // muted text\n<span className=\"text-error\" /> // error state\n\n// Borders\n<div className=\"border border-primary\" /> // standard border\n<div className=\"border border-error\" /> // error border\n```\n\n## Override CSS Variables\n\n```css\n:root {\n --bg-layer-0: #000000;\n --bg-layer-1: #0c101d;\n --bg-layer-2: #161b2d;\n --bg-layer-3: #1d2439;\n --text-primary: #eef1f7;\n --text-secondary: #9fa6bd;\n --text-error: #f76464;\n --stroke-primary: #696e7c;\n --controls-bg-accent-primary: #3664e2;\n /* ... see src/styles/theme.scss for full list */\n}\n```\n\n## Overlay stacking\n\nPortalled overlays stack on a ladder driven by one variable, `--z-overlay`\n(default `52`): `z-popup` (base — `Popup` backdrop), `z-floating` (+1 —\n`Dropdown`/`Select` overlays, submenus, `Calendar`), `z-interactive-tooltip`\n(+2 — `InteractiveTooltip`), `z-tooltip` (+3 — `Tooltip`). To lift every\noverlay above a host's own sticky header or modal, set the base once on `:root`\n(or in a `ThemeScope` class) — the steps move together, so their order is kept:\n\n```css\n:root {\n --z-overlay: 1000;\n}\n```\n\nDo not override `[role='menu']` or hardcode `z-[53]` in a host. To move one\noverlay only, pass a `z-*` utility through its class prop (`listClassName`,\n`overlayClassName`, `contentClassName`, `panelClassName`) — `mergeClasses`\nreplaces the layer's step with it.\n\n## Token Reference\n\n\n### backgroundsColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-base` | `var(--bg-layer-base)` | `#f5f7fa` |\n| `error` | `var(--bg-error)` | `#f3d6d8` |\n| `warning` | `var(--bg-warning)` | `#faf0cf` |\n| `info` | `var(--bg-info)` | `#e1eaf9` |\n| `success` | `var(--bg-success)` | `#dbf1eb` |\n| `gradient-1` | `var(--bg-gradient-1)` | `#1d4ed8` |\n| `gradient-2` | `var(--bg-gradient-2)` | `#885df2` |\n| `blue` | `var(--bg-visual-blue)` | `#d6edf9` |\n| `green-1` | `var(--bg-visual-green-1)` | `#cde8e5` |\n| `green-2` | `var(--bg-visual-green-2)` | `#d1f0dc` |\n| `brown` | `var(--bg-visual-brown)` | `#fde8d8` |\n| `red` | `var(--bg-visual-red)` | `#fce7f3` |\n\n### borderColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `primary` | `var(--stroke-primary)` | `#57647a` |\n| `secondary` | `var(--stroke-secondary)` | `#d1dbea` |\n| `tertiary` | `var(--stroke-tertiary)` | `#e0e6f0` |\n| `error` | `var(--stroke-error)` | `#ae2f2f` |\n| `warning` | `var(--stroke-warning)` | `#eec840` |\n| `info` | `var(--stroke-info)` | `#1d4ed8` |\n| `accent` | `var(--stroke-accent)` | `#1d4ed8` |\n| `success` | `var(--stroke-success)` | `#007274` |\n| `default` | `var(--stroke-default)` | `#b2c2dd` |\n| `gradient-1` | `var(--stroke-gradient-1)` | `#5976e9` |\n| `gradient-2` | `var(--stroke-gradient-2)` | `#885df2` |\n| `focus` | `var(--stroke-focus)` | `#161b2d` |\n\n### textColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `primary` | `var(--text-primary)` | `#161b2d` |\n| `secondary` | `var(--text-secondary)` | `#57647a` |\n| `tertiary` | `var(--text-tertiary)` | `#848e9c` |\n| `accent` | `var(--text-accent)` | `#1d4ed8` |\n| `error` | `var(--text-error)` | `#ae2f2f` |\n| `warning` | `var(--text-warning)` | `#7f6300` |\n| `warning-icon` | `var(--text-warning-icon)` | `#eec840` |\n| `info` | `var(--text-info)` | `#1d4ed8` |\n| `success` | `var(--text-success)` | `#007274` |\n| `blue` | `var(--text-visual-blue)` | `#1189c8` |\n| `green-1` | `var(--text-visual-green-1)` | `#059669` |\n| `green-2` | `var(--text-visual-green-2)` | `#0d6e72` |\n| `green-3` | `var(--text-visual-green-3)` | `#065f46` |\n| `brown-1` | `var(--text-visual-brown-1)` | `#d36817` |\n| `brown-2` | `var(--text-visual-brown-2)` | `#b45309` |\n| `red` | `var(--text-visual-red)` | `#9d174d` |\n| `violet-1` | `var(--text-visual-violet-1)` | `#7c3aed` |\n| `violet-2` | `var(--text-visual-violet-2)` | `#3730b7` |\n\n### placeholderColor\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `primary` | `var(--text-primary)` | `#161b2d` |\n\n### backgroundsColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-0` | `var(--bg-layer-0)` | `#fcfcfc` |\n| `layer-1` | `var(--bg-layer-1)` | `#e0e6f0` |\n| `layer-2` | `var(--bg-layer-2)` | `#eef1f7` |\n| `layer-3` | `var(--bg-layer-3)` | `#fcfcfc` |\n| `layer-4` | `var(--bg-layer-4)` | `#d1dbea` |\n| `blackout` | `var(--bg-blackout)` | `#0c101d4d` |\n| `neutral` | `var(--bg-neutral)` | `#fcfcfc` |\n| `accent-primary` | `var(--bg-accent-primary)` | `#5c8dea` |\n| `accent-secondary` | `var(--bg-accent-secondary)` | `#37babc` |\n| `red-400` | `var(--bg-red-400)` | `#f76464` |\n| `controls-error` | `var(--controls-bg-error)` | `#ae2f2f` |\n| `controls-disable` | `var(--controls-bg-disable)` | `#d1dbea` |\n\n### borderColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-primary` | `var(--stroke-accent-primary)` | `#124ace` |\n| `accent-secondary` | `var(--stroke-accent-secondary)` | `#007274` |\n| `controls-accent` | `var(--controls-bg-accent)` | `#5c8dea` |\n| `hover` | `var(--stroke-hover)` | `#eef1f7` |\n| `red-900` | `var(--red-900)` | `#402027` |\n\n### textColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-primary` | `var(--text-accent-primary)` | `#7da4ff` |\n| `accent-secondary` | `var(--text-accent-secondary)` | `#37babc` |\n| `accent-tertiary` | `var(--text-accent-tertiary)` | `#a972ff` |\n| `controls-permanent` | `var(--controls-text-permanent)` | `#fcfcfc` |\n| `controls-neutral` | `var(--controls-text-neutral)` | `#161b2d` |\n\n### shadowColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `
|
|
20
|
+
"theming": "# Theming & CSS Variable Tokens\n\nAI DIAL UI Kit uses CSS custom properties (variables) for theming.\nDark and light themes are switched by setting different values for these variables on `:root` or a theme wrapper element.\n\n## Usage in Tailwind\n\nThe Tailwind config maps CSS variables to utility classes.\nUse these classes in your components:\n\n```tsx\n// Backgrounds\n<div className=\"bg-layer-0\" /> // darkest background\n<div className=\"bg-layer-1\" /> // main content area\n<div className=\"bg-layer-2\" /> // elevated panels\n\n// Text\n<span className=\"text-primary\" /> // main text color\n<span className=\"text-secondary\" /> // muted text\n<span className=\"text-error\" /> // error state\n\n// Borders\n<div className=\"border border-primary\" /> // standard border\n<div className=\"border border-error\" /> // error border\n```\n\n## Override CSS Variables\n\n```css\n:root {\n --bg-layer-0: #000000;\n --bg-layer-1: #0c101d;\n --bg-layer-2: #161b2d;\n --bg-layer-3: #1d2439;\n --text-primary: #eef1f7;\n --text-secondary: #9fa6bd;\n --text-error: #f76464;\n --stroke-primary: #696e7c;\n --controls-bg-accent-primary: #3664e2;\n /* ... see src/styles/theme.scss for full list */\n}\n```\n\n## Overlay stacking\n\nPortalled overlays stack on a ladder driven by one variable, `--z-overlay`\n(default `52`): `z-popup` (base — `Popup` backdrop), `z-floating` (+1 —\n`Dropdown`/`Select` overlays, submenus, `Calendar`), `z-interactive-tooltip`\n(+2 — `InteractiveTooltip`), `z-tooltip` (+3 — `Tooltip`). To lift every\noverlay above a host's own sticky header or modal, set the base once on `:root`\n(or in a `ThemeScope` class) — the steps move together, so their order is kept:\n\n```css\n:root {\n --z-overlay: 1000;\n}\n```\n\nDo not override `[role='menu']` or hardcode `z-[53]` in a host. To move one\noverlay only, pass a `z-*` utility through its class prop (`listClassName`,\n`overlayClassName`, `contentClassName`, `panelClassName`) — `mergeClasses`\nreplaces the layer's step with it.\n\n## Token Reference\n\n\n### backgroundsColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-base` | `var(--bg-layer-base)` | `#f5f7fa` |\n| `error` | `var(--bg-error)` | `#f3d6d8` |\n| `warning` | `var(--bg-warning)` | `#faf0cf` |\n| `info` | `var(--bg-info)` | `#e1eaf9` |\n| `success` | `var(--bg-success)` | `#dbf1eb` |\n| `gradient-1` | `var(--bg-gradient-1)` | `#1d4ed8` |\n| `gradient-2` | `var(--bg-gradient-2)` | `#885df2` |\n| `blue` | `var(--bg-visual-blue)` | `#d6edf9` |\n| `green-1` | `var(--bg-visual-green-1)` | `#cde8e5` |\n| `green-2` | `var(--bg-visual-green-2)` | `#d1f0dc` |\n| `brown` | `var(--bg-visual-brown)` | `#fde8d8` |\n| `red` | `var(--bg-visual-red)` | `#fce7f3` |\n\n### borderColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `primary` | `var(--stroke-primary)` | `#57647a` |\n| `secondary` | `var(--stroke-secondary)` | `#d1dbea` |\n| `tertiary` | `var(--stroke-tertiary)` | `#e0e6f0` |\n| `error` | `var(--stroke-error)` | `#ae2f2f` |\n| `warning` | `var(--stroke-warning)` | `#eec840` |\n| `info` | `var(--stroke-info)` | `#1d4ed8` |\n| `accent` | `var(--stroke-accent)` | `#1d4ed8` |\n| `success` | `var(--stroke-success)` | `#007274` |\n| `default` | `var(--stroke-default)` | `#b2c2dd` |\n| `gradient-1` | `var(--stroke-gradient-1)` | `#5976e9` |\n| `gradient-2` | `var(--stroke-gradient-2)` | `#885df2` |\n| `focus` | `var(--stroke-focus)` | `#161b2d` |\n\n### textColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `primary` | `var(--text-primary)` | `#161b2d` |\n| `secondary` | `var(--text-secondary)` | `#57647a` |\n| `tertiary` | `var(--text-tertiary)` | `#848e9c` |\n| `accent` | `var(--text-accent)` | `#1d4ed8` |\n| `error` | `var(--text-error)` | `#ae2f2f` |\n| `warning` | `var(--text-warning)` | `#7f6300` |\n| `warning-icon` | `var(--text-warning-icon)` | `#eec840` |\n| `info` | `var(--text-info)` | `#1d4ed8` |\n| `success` | `var(--text-success)` | `#007274` |\n| `blue` | `var(--text-visual-blue)` | `#1189c8` |\n| `green-1` | `var(--text-visual-green-1)` | `#059669` |\n| `green-2` | `var(--text-visual-green-2)` | `#0d6e72` |\n| `green-3` | `var(--text-visual-green-3)` | `#065f46` |\n| `brown-1` | `var(--text-visual-brown-1)` | `#d36817` |\n| `brown-2` | `var(--text-visual-brown-2)` | `#b45309` |\n| `red` | `var(--text-visual-red)` | `#9d174d` |\n| `violet-1` | `var(--text-visual-violet-1)` | `#7c3aed` |\n| `violet-2` | `var(--text-visual-violet-2)` | `#3730b7` |\n\n### placeholderColor\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `primary` | `var(--text-primary)` | `#161b2d` |\n\n### backgroundsColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-0` | `var(--bg-layer-0)` | `#fcfcfc` |\n| `layer-1` | `var(--bg-layer-1)` | `#e0e6f0` |\n| `layer-2` | `var(--bg-layer-2)` | `#eef1f7` |\n| `layer-3` | `var(--bg-layer-3)` | `#fcfcfc` |\n| `layer-4` | `var(--bg-layer-4)` | `#d1dbea` |\n| `blackout` | `var(--bg-blackout)` | `#0c101d4d` |\n| `neutral` | `var(--bg-neutral)` | `#fcfcfc` |\n| `accent-primary` | `var(--bg-accent-primary)` | `#5c8dea` |\n| `accent-secondary` | `var(--bg-accent-secondary)` | `#37babc` |\n| `red-400` | `var(--bg-red-400)` | `#f76464` |\n| `controls-error` | `var(--controls-bg-error)` | `#ae2f2f` |\n| `controls-disable` | `var(--controls-bg-disable)` | `#d1dbea` |\n\n### borderColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-primary` | `var(--stroke-accent-primary)` | `#124ace` |\n| `accent-secondary` | `var(--stroke-accent-secondary)` | `#007274` |\n| `controls-accent` | `var(--controls-bg-accent)` | `#5c8dea` |\n| `hover` | `var(--stroke-hover)` | `#eef1f7` |\n| `red-900` | `var(--red-900)` | `#402027` |\n\n### textColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-primary` | `var(--text-accent-primary)` | `#7da4ff` |\n| `accent-secondary` | `var(--text-accent-secondary)` | `#37babc` |\n| `accent-tertiary` | `var(--text-accent-tertiary)` | `#a972ff` |\n| `controls-permanent` | `var(--controls-text-permanent)` | `#fcfcfc` |\n| `controls-neutral` | `var(--controls-text-neutral)` | `#161b2d` |\n\n### shadowColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `lg` | `var(--shadow-lg)` | `#2764d914` |",
|
|
21
21
|
"components": [
|
|
22
22
|
{
|
|
23
23
|
"name": "Spinner",
|
|
@@ -5045,7 +5045,7 @@
|
|
|
5045
5045
|
"name": "TransferQueue",
|
|
5046
5046
|
"category": "Components_2_0",
|
|
5047
5047
|
"generation": "2.0",
|
|
5048
|
-
"description": "A floating panel listing the files of an upload, download, import or export\nwith a live status per row.\naliases: UploadQueue|ImportQueue|ExportQueue|UploadProgress|ProgressToast\nDesign system 2.0\n\nEach row shows the file's `FileIcon` and name, and a trailing status: a\nspinner (with a cancel control on hover or focus) while in progress, a check\non success, a warning or error icon whose reason is both its tooltip and its\naccessible name, or \"Canceled\". The header carries the host's title
|
|
5048
|
+
"description": "A floating panel listing the files of an upload, download, import or export\nwith a live status per row.\naliases: UploadQueue|ImportQueue|ExportQueue|UploadProgress|ProgressToast\nDesign system 2.0\n\nEach row shows the file's `FileIcon` and name, and a trailing status: a\nspinner (with a cancel control on hover or focus) while in progress, a check\non success, a warning or error icon whose reason is both its tooltip and its\naccessible name, or \"Canceled\". The header carries the host's title and the\ncollapse and close controls. Collapsed while work runs,\nthe rows are replaced by one aggregate `ProgressBar`.\n\nClosing while an item is in progress asks for confirmation first; a queue\nwhose items have all settled, failed ones included, closes straight away. Once every item has succeeded the queue closes itself after\n`autoCloseDelay`; a warned or canceled row keeps it open so it can be read.\n\nThe root is a polite `role=\"status\"` live region. Positioning is left to\nthe host — wrap it in a fixed container at the screen corner.",
|
|
5049
5049
|
"props": [
|
|
5050
5050
|
{
|
|
5051
5051
|
"name": "title",
|