@epam/ai-dial-ui-kit 0.16.0-dev.21 → 0.16.0-dev.22

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.
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),u=require("./editor-BH6_A1k2.cjs"),d=require("@monaco-editor/react");function f(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,a.get?a:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const m=f(d),b=({value:e,onChange:o,onValidateJSON:t,options:a,currentTheme:n,themesConfig:i=u.EDITOR_THEMES_CONFIG})=>{function s(r){r?.editor?.defineTheme(n,i[n]),r.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}=m;return c.jsx(l,{beforeMount:s,height:"100%",defaultLanguage:"json",value:e,onChange:o,theme:n,onValidate:t,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},...a??{}}})};exports.DialJsonEditor=b;
@@ -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-_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
+ "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-DMVYJhUR.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-_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;
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-DMVYJhUR.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");require("./editor-BH6_A1k2.cjs");const N=require("./lazy-DMVYJhUR.cjs");require("@monaco-editor/react");const m=require("./Switch-DAaAOaIu.cjs"),b=require("./MarkdownEditor-Dav_pp0T.cjs"),g=({value:o,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-eAV7SaKu.cjs")).then(s=>{S(()=>s.DialJsonEditor)})},[t]);const h=n.useCallback(s=>{l?.(s)},[l]),E=n.useCallback(s=>{x?.(s)},[x]),r=!!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||r)&&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,r&&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)})})]})]}),r&&t?e.jsx("div",{className:"border border-primary rounded",style:{height:`${c}px`},children:f&&e.jsx(f,{value:o,onChange:h,onValidateJSON:E,currentTheme:u})}):e.jsx(b.DialMarkdownEditor,{value:o,onChange:h,height:c,preview:j,showDragbar:w,theme:u})]})})})};exports.DialMarkdownEditorContainer=g;
@@ -1,27 +1,29 @@
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 { DialSwitch as b } from "../Switch/Switch.js";
4
- import { EditorThemes as v } from "../../types/editor.js";
3
+ import "../../constants/editor.js";
4
+ import { EditorThemes as b } from "../../types/editor.js";
5
+ import "@monaco-editor/react";
6
+ import { DialSwitch as v } from "../Switch/Switch.js";
5
7
  import { DialMarkdownEditor as y } from "./MarkdownEditor.js";
6
8
  import { DialLabel as j } from "../Label/Label.js";
7
- const B = ({
9
+ const q = ({
8
10
  value: s,
9
11
  onChangeValue: l,
10
- label: t,
12
+ label: i,
11
13
  headerContent: d,
12
14
  switcherLabel: a,
13
15
  height: c = 300,
14
- theme: m = v.dark,
16
+ theme: m = b.dark,
15
17
  onValidateJSON: f,
16
18
  preview: C = "edit",
17
19
  showDragbar: N = !0
18
20
  }) => {
19
- const w = J(), [n, D] = u(!1), [p, E] = u(null);
21
+ const w = J(), [t, D] = u(!1), [p, E] = u(null);
20
22
  S(() => {
21
- n && typeof window < "u" && import("../JsonEditor/JsonEditor.js").then((o) => {
23
+ t && typeof window < "u" && import("../JsonEditor/JsonEditor.js").then((o) => {
22
24
  E(() => o.DialJsonEditor);
23
25
  });
24
- }, [n]);
26
+ }, [t]);
25
27
  const h = x(
26
28
  (o) => {
27
29
  l?.(o);
@@ -32,16 +34,16 @@ const B = ({
32
34
  f?.(o);
33
35
  },
34
36
  [f]
35
- ), i = !!a;
37
+ ), n = !!a;
36
38
  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: [
37
- (t || d || i) && /* @__PURE__ */ r("div", { className: "flex justify-between items-center mb-2", children: [
38
- t && /* @__PURE__ */ e(j, { label: t }),
39
+ (i || d || n) && /* @__PURE__ */ r("div", { className: "flex justify-between items-center mb-2", children: [
40
+ i && /* @__PURE__ */ e(j, { label: i }),
39
41
  /* @__PURE__ */ r("div", { className: "flex items-center gap-2 flex-1 justify-end", children: [
40
42
  d,
41
- i && /* @__PURE__ */ e("label", { className: "flex items-center gap-2 cursor-pointer", children: /* @__PURE__ */ e(
42
- b,
43
+ n && /* @__PURE__ */ e("label", { className: "flex items-center gap-2 cursor-pointer", children: /* @__PURE__ */ e(
44
+ v,
43
45
  {
44
- isOn: n,
46
+ isOn: t,
45
47
  label: a,
46
48
  switchId: w,
47
49
  onChange: (o) => D(o)
@@ -49,7 +51,7 @@ const B = ({
49
51
  ) })
50
52
  ] })
51
53
  ] }),
52
- i && n ? /* @__PURE__ */ e(
54
+ n && t ? /* @__PURE__ */ e(
53
55
  "div",
54
56
  {
55
57
  className: "border border-primary rounded",
@@ -78,5 +80,5 @@ const B = ({
78
80
  ] }) }) });
79
81
  };
80
82
  export {
81
- B as DialMarkdownEditorContainer
83
+ q as DialMarkdownEditorContainer
82
84
  };
@@ -0,0 +1,147 @@
1
+ import { jsx as d } from "react/jsx-runtime";
2
+ import { IconArrowsHorizontal as O } from "@tabler/icons-react";
3
+ import { useState as T, useRef as a, useEffect as Y, useCallback as U } from "react";
4
+ import { DIAL_KIT_ICON_STROKE as $ } from "../constants/icon.js";
5
+ import { Tooltip as j } from "../Tooltip/Tooltip.js";
6
+ import { DIAL_ICON_SIZE as q } from "../../../constants/icon.js";
7
+ import { DIAL_KIT_CLASS as B } from "../../../constants/public-class-names.js";
8
+ import { TooltipPlacement as b } from "../../../types/tooltip.js";
9
+ import { mergeClasses as L } from "../../../utils/merge-classes.js";
10
+ const G = 16, V = 1e3, Z = 4, h = (r) => r == null ? !1 : (r.closest("[dir]")?.getAttribute("dir") ?? r.ownerDocument.defaultView?.getComputedStyle(r).direction) === "rtl", se = ({
11
+ width: r,
12
+ minWidth: o,
13
+ maxWidth: s,
14
+ defaultWidth: R,
15
+ onWidthChange: f,
16
+ label: w,
17
+ tooltip: z,
18
+ keyboardStep: g = G,
19
+ className: S
20
+ }) => {
21
+ const [y, D] = T(!1), [I, m] = T(!1), [k, A] = T(!1), c = a(null), C = a(null), p = a({ x: 0, y: 0 }), l = a(null), u = a(void 0), i = a(void 0);
22
+ Y(
23
+ () => () => {
24
+ clearTimeout(u.current), i.current != null && cancelAnimationFrame(i.current);
25
+ },
26
+ []
27
+ );
28
+ const P = U(
29
+ (e) => {
30
+ const t = Number.isFinite(e) ? e : o;
31
+ return Math.round(Math.min(s, Math.max(o, t)));
32
+ },
33
+ [s, o]
34
+ ), E = (e) => {
35
+ C.current?.style.setProperty(
36
+ "transform",
37
+ `translate(${e.clientX}px, ${e.clientY}px) translate(-50%, -50%)`
38
+ ), A(!0);
39
+ }, x = (e) => {
40
+ p.current = { x: e.clientX, y: e.clientY }, clearTimeout(u.current), u.current = setTimeout(() => m(!0), V);
41
+ }, M = (e) => {
42
+ E(e), x(e);
43
+ }, H = () => {
44
+ A(!1), clearTimeout(u.current), m(!1);
45
+ }, K = (e) => {
46
+ e.button === 0 && (e.currentTarget.setPointerCapture(e.pointerId), l.current = { x: e.clientX, width: r }, D(!0));
47
+ }, N = (e) => {
48
+ E(e);
49
+ const t = l.current;
50
+ if (t == null) {
51
+ Math.hypot(
52
+ e.clientX - p.current.x,
53
+ e.clientY - p.current.y
54
+ ) > Z && (m(!1), x(e));
55
+ return;
56
+ }
57
+ const n = h(c.current) ? -1 : 1, F = P(t.width + (e.clientX - t.x) * n);
58
+ i.current != null && cancelAnimationFrame(i.current), i.current = requestAnimationFrame(() => f(F));
59
+ }, _ = (e) => {
60
+ l.current != null && (l.current = null, D(!1), e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId));
61
+ }, X = (e) => {
62
+ const t = h(c.current) ? -1 : 1;
63
+ let n;
64
+ switch (e.key) {
65
+ case "ArrowRight":
66
+ n = r + g * t;
67
+ break;
68
+ case "ArrowLeft":
69
+ n = r - g * t;
70
+ break;
71
+ case "Home":
72
+ n = o;
73
+ break;
74
+ case "End":
75
+ n = s;
76
+ break;
77
+ default:
78
+ return;
79
+ }
80
+ e.preventDefault(), f(P(n));
81
+ }, v = () => {
82
+ R != null && f(P(R));
83
+ };
84
+ return (
85
+ /* A focusable separator is the ARIA window-splitter widget, so it is interactive. */
86
+ /* @__PURE__ */ d(
87
+ "div",
88
+ {
89
+ ref: c,
90
+ role: "separator",
91
+ "aria-orientation": "vertical",
92
+ "aria-label": w,
93
+ "aria-valuenow": r,
94
+ "aria-valuemin": o,
95
+ "aria-valuemax": s,
96
+ tabIndex: 0,
97
+ className: L(
98
+ "absolute inset-y-0 end-0 -me-1 w-2 touch-none select-none",
99
+ "dial-resize-handle",
100
+ k && "dial-resize-handle-cursor-ready",
101
+ I && "dial-resize-handle-hover",
102
+ y && "dial-resize-handle-dragging",
103
+ S,
104
+ B.resizeHandle
105
+ ),
106
+ onPointerEnter: M,
107
+ onPointerLeave: H,
108
+ onPointerDown: K,
109
+ onPointerMove: N,
110
+ onPointerUp: _,
111
+ onPointerCancel: _,
112
+ onKeyDown: X,
113
+ onDoubleClick: v,
114
+ children: /* @__PURE__ */ d(
115
+ j,
116
+ {
117
+ tooltip: z,
118
+ open: I && !y,
119
+ placement: h(c.current) ? b.Left : b.Right,
120
+ asChild: !0,
121
+ children: /* @__PURE__ */ d(
122
+ "span",
123
+ {
124
+ ref: C,
125
+ "aria-hidden": "true",
126
+ className: L(
127
+ "pointer-events-none fixed top-0 left-0 z-tooltip hidden text-secondary",
128
+ "dial-resize-handle-arrow"
129
+ ),
130
+ children: /* @__PURE__ */ d(
131
+ O,
132
+ {
133
+ size: q.LG,
134
+ stroke: $
135
+ }
136
+ )
137
+ }
138
+ )
139
+ }
140
+ )
141
+ }
142
+ )
143
+ );
144
+ };
145
+ export {
146
+ se as ResizeHandle
147
+ };
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.16.0-dev.21",
3
- "generatedAt": "2026-10-20T14:10:43.721Z",
2
+ "version": "0.16.0-dev.22",
3
+ "generatedAt": "2026-10-20T15:37:27.298Z",
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",
@@ -4974,6 +4974,73 @@
4974
4974
  ],
4975
4975
  "sourceFile": "components/New/ResizableContainer/ResizableContainer.tsx"
4976
4976
  },
4977
+ {
4978
+ "name": "ResizeHandle",
4979
+ "category": "Components_2_0",
4980
+ "generation": "2.0",
4981
+ "description": "A vertical separator on the inline-end edge of a panel that resizes the panel\nby pointer or keyboard.\naliases: Splitter|ColumnResizer|DragHandle|Divider\nDesign system 2.0\n\nThe component is controlled: it reports every width through `onWidthChange`\nand the host applies it to the panel. It is a focusable `separator` — the\nwindow-splitter pattern — so the arrow keys move it by `keyboardStep`, `Home`\nand `End` jump to the bounds, and a double click resets it to `defaultWidth`.\nDrag and keys follow the writing direction, so a panel at the inline start\ngrows as the pointer moves towards the inline end, in RTL as well.\n\nIt is positioned absolutely against its nearest positioned ancestor, over the\npanel's inline-end edge, and draws a thin line. The accent line and the hint\nappear once the pointer has rested on the handle, and a themed arrow follows\nthe pointer instead of the native cursor. Hide it on screens too narrow to\ndrag on by wrapping it, e.g. in `hidden desktop:block`.",
4982
+ "props": [
4983
+ {
4984
+ "name": "width",
4985
+ "type": "number",
4986
+ "required": true,
4987
+ "description": "Current width of the panel in px."
4988
+ },
4989
+ {
4990
+ "name": "minWidth",
4991
+ "type": "number",
4992
+ "required": true,
4993
+ "description": "Smallest width in px."
4994
+ },
4995
+ {
4996
+ "name": "maxWidth",
4997
+ "type": "number",
4998
+ "required": true,
4999
+ "description": "Largest width in px."
5000
+ },
5001
+ {
5002
+ "name": "defaultWidth",
5003
+ "type": "number",
5004
+ "required": false,
5005
+ "description": "Width a double click resets to."
5006
+ },
5007
+ {
5008
+ "name": "onWidthChange",
5009
+ "type": "(width: number) => void",
5010
+ "required": true,
5011
+ "description": "Called with the next, limited width."
5012
+ },
5013
+ {
5014
+ "name": "label",
5015
+ "type": "string",
5016
+ "required": true,
5017
+ "description": "Accessible name of the separator."
5018
+ },
5019
+ {
5020
+ "name": "tooltip",
5021
+ "type": "ReactNode",
5022
+ "required": false,
5023
+ "description": "Hint shown beside the pointer once it rests on the handle."
5024
+ },
5025
+ {
5026
+ "name": "keyboardStep",
5027
+ "type": "number",
5028
+ "required": false,
5029
+ "defaultValue": "DEFAULT_KEYBOARD_STEP",
5030
+ "description": "Width change of one arrow key press in px."
5031
+ },
5032
+ {
5033
+ "name": "className",
5034
+ "type": "string",
5035
+ "required": false,
5036
+ "description": "Additional CSS classes for the handle."
5037
+ }
5038
+ ],
5039
+ "examples": [
5040
+ "<div className=\"relative\" style={{ width }}>\n <Sidebar />\n <ResizeHandle\n width={width}\n minWidth={280}\n maxWidth={640}\n defaultWidth={400}\n onWidthChange={setWidth}\n label=\"Resize sidebar\"\n tooltip=\"Drag to resize\"\n />\n</div>"
5041
+ ],
5042
+ "sourceFile": "components/New/ResizeHandle/ResizeHandle.tsx"
5043
+ },
4977
5044
  {
4978
5045
  "name": "ConditionalResizableContainer",
4979
5046
  "category": "Components_2_0",
@@ -11678,7 +11745,7 @@
11678
11745
  {
11679
11746
  "name": "DIAL_KIT_CLASS",
11680
11747
  "sourceFile": "constants/public-class-names.ts",
11681
- "signature": "DIAL_KIT_CLASS = {\n /* ── Feedback and status ───────────────────────────────────────────────── */\n /** The `role=\"status\"` root of a `Spinner`. */\n spinner: 'dial-kit-spinner',\n /**\n * The outermost element of a `ProgressBar`: the box wrapping its label,\n * track and readout — or the track itself, which is the root when the bar\n * has neither.\n */\n progressBar: 'dial-kit-progress-bar',\n /** The root of a `Skeleton`, wrapping its avatar and text rows. */\n skeleton: 'dial-kit-skeleton',\n /**\n * The `Notification` surface. Present on every wrapper too — the toast and\n * section-message variants of error, info, success, warning, loading and\n * general all render this component.\n */\n notification: 'dial-kit-notification',\n /** The empty-state root of `NoDataContent`. */\n noDataContent: 'dial-kit-no-data-content',\n /** The `role=\"status\"` panel of a `TransferQueue`: header, rows and aggregate bar. */\n transferQueue: 'dial-kit-transfer-queue',\n\n /* ── Text ──────────────────────────────────────────────────────────────── */\n /** The text element of a `Highlight`, which renders the matched query. */\n highlight: 'dial-kit-highlight',\n /** The caption line under a field, rendered by `CaptionText`. */\n captionText: 'dial-kit-caption-text',\n /**\n * A caption in its error variant — what `ErrorText` renders. Additive to\n * `captionText`, since one component draws both.\n */\n errorText: 'dial-kit-error-text',\n /** The `Label` root, which wraps the `label` element and its info button. */\n label: 'dial-kit-label',\n\n /* ── Containers ────────────────────────────────────────────────────────── */\n /** The `article` element of a `CardShell`. */\n cardShell: 'dial-kit-card-shell',\n /** The `aside` element of a `CollapsibleSidebar`. */\n collapsibleSidebar: 'dial-kit-collapsible-sidebar',\n /** The content box inside a `ResizableContainer`'s resize frame. */\n resizableContainer: 'dial-kit-resizable-container',\n /**\n * The `role=\"dialog\"` panel of a `Popup`. Its backdrop is reached through\n * `overlayClassName`.\n */\n popup: 'dial-kit-popup',\n /** The `role=\"dialog\"` panel of a `BottomSheet`. */\n bottomSheet: 'dial-kit-bottom-sheet',\n /**\n * The backdrop of a `BottomSheet`: the portalled, scroll-locking layer on\n * `z-popup` that holds the panel.\n */\n bottomSheetOverlay: 'dial-kit-bottom-sheet-overlay',\n /** The `role=\"dialog\"` panel of a `SideDrawer`, open or closed. */\n sideDrawer: 'dial-kit-side-drawer',\n /** The `Popup` panel of a `ConfirmationPopup`, additive to `popup`. */\n confirmationPopup: 'dial-kit-confirmation-popup',\n /** The root of an `Accordion`. */\n accordion: 'dial-kit-accordion',\n /** The breadcrumb root of a `FolderPath`. */\n folderPath: 'dial-kit-folder-path',\n /** The `nav` element of a `Breadcrumbs` trail. */\n breadcrumbs: 'dial-kit-breadcrumbs',\n /**\n * One segment of a `Breadcrumbs` trail: the link, button or plain span that\n * draws the label — not the `li`, which also holds the separator after it.\n */\n breadcrumbsItem: 'dial-kit-breadcrumbs-item',\n\n /* ── Menus and overlays ────────────────────────────────────────────────── */\n /**\n * The trigger wrapper of a `Dropdown`. Its floating panel is reached through\n * `listClassName`.\n */\n dropdown: 'dial-kit-dropdown',\n /**\n * The `role=\"none\"` item list inside a dropdown overlay — the box that holds\n * the rows and owns their vertical padding. Present in both generations, and\n * on a submenu's own list. It is *not* the floating panel.\n */\n dropdownList: 'dial-kit-dropdown-list',\n /** The search row above the item list of a `searchable` `Dropdown`. */\n dropdownSearch: 'dial-kit-dropdown-search',\n /**\n * One row of a floating overlay: a dropdown item, a `Select` option, a\n * submenu trigger, or a submenu child. It sits on the element that draws the\n * row box — so on the wrapper, not the inner button, for a row that has a\n * `rightControl` beside it.\n */\n menuItem: 'dial-kit-menuitem',\n /**\n * The trailing check of a chosen `MenuItemMark.Check` row. Decorative, like\n * the glyph itself — the row's `aria-checked` / `aria-selected` carries the\n * state.\n */\n menuItemCheck: 'dial-kit-menuitem-check',\n /** The primary icon of a `DialDropdownIcon` trigger. */\n dropdownIcon: 'dial-kit-dropdown-icon',\n /**\n * The caret badge of a `DialDropdownIcon` trigger — the round plate the\n * chevron sits on. Absent when `showCaret` is `false`.\n */\n dropdownIconCaret: 'dial-kit-dropdown-icon-caret',\n /** The bubble of a `Tooltip`, rendered by `TooltipContent` into a portal. */\n tooltip: 'dial-kit-tooltip',\n /** The panel of an `InteractiveTooltip` — the one whose content takes focus. */\n interactiveTooltip: 'dial-kit-interactive-tooltip',\n /** The text element of an `EllipsisTooltip`, which is also its trigger. */\n ellipsisTooltip: 'dial-kit-ellipsis-tooltip',\n\n /* ── Fields ────────────────────────────────────────────────────────────── */\n /** The `Search` field, additive to the `dial-kit-input` its `Input` carries. */\n search: 'dial-kit-search',\n /** The `PasswordInput` field, additive to `dial-kit-input`. */\n passwordInput: 'dial-kit-password-input',\n /** The `NumberInput` field, additive to `dial-kit-input`. */\n numberInput: 'dial-kit-number-input',\n /** The `TagInput` field, additive to `dial-kit-input`. */\n tagInput: 'dial-kit-tag-input',\n /** The `AutocompleteTagInput` field, additive to `dial-kit-input`. */\n autocompleteTagInput: 'dial-kit-autocomplete-tag-input',\n /** The root of a `Select`, wrapping its label, field and caption. */\n select: 'dial-kit-select',\n /** The trigger button of an `InlineSelect`. */\n inlineSelect: 'dial-kit-inline-select',\n /** The root of a `Calendar`, wrapping its label and date field. */\n calendar: 'dial-kit-calendar',\n /** The root of a `SchemaRenderer`, wrapping its top-level sections or fields. */\n schemaRenderer: 'dial-kit-schema-renderer',\n /**\n * The card of one collapsible `SchemaRenderer` section, at any depth: a\n * top-level property, a nested object or array, an array item, or a\n * key-value entry holding an object.\n */\n schemaRendererSection: 'dial-kit-schema-renderer-section',\n /** The drop area of a `FileDropzone`. */\n fileDropzone: 'dial-kit-file-dropzone',\n /**\n * The root of a `FileIcon`, wrapping the file or folder glyph (or\n * its spinner while loading) and the shared badge.\n */\n fileIcon: 'dial-kit-file-icon',\n /** The row of a `FileName`: its type icon, the name and any details. */\n fileName: 'dial-kit-file-name',\n /** The `FileName` row of a `FolderName`, additive to `fileName`. */\n folderName: 'dial-kit-folder-name',\n /**\n * The `role=\"img\"` badge of a `SharedEntityIndicator` — standalone, or the\n * shared badge a `FileIcon` draws over its glyph.\n */\n sharedEntityIndicator: 'dial-kit-shared-entity-indicator',\n /** The root of a `Badge`: the label box, with its icon when it has one. */\n badge: 'dial-kit-badge',\n /** The root of an `Avatar`: the image, or the initials box that replaces it. */\n avatar: 'dial-kit-avatar',\n /** The root row of an `EntityIdentity`: its icon, type label, name and version. */\n entityIdentity: 'dial-kit-entity-identity',\n\n /* ── Controls ──────────────────────────────────────────────────────────── */\n /** The row of a `Switch`: the control and its label. */\n switch: 'dial-kit-switch',\n /** The row of a `Checkbox`: the box and its label. */\n checkbox: 'dial-kit-checkbox',\n /** The decorative box a `CheckboxBox` draws, in a checkbox or a menu row. */\n checkboxBox: 'dial-kit-checkbox-box',\n /** The row of a `Radio`: the circle and its label. */\n radio: 'dial-kit-radio',\n /** The root of a `RadioGroup`, wrapping its label and its radios. */\n radioGroup: 'dial-kit-radio-group',\n /**\n * The root of a `RadioGroupPopupField`, wrapping its label and the collapsed\n * field that opens the group.\n */\n radioGroupPopupField: 'dial-kit-radio-group-popup-field',\n /** The `role=\"radiogroup\"` track of a `SegmentedControl`. */\n segmentedControl: 'dial-kit-segmented-control',\n /** One segment of a `SegmentedControl`. */\n segmentedControlItem: 'dial-kit-segmented-control-item',\n /**\n * The outermost element of a `Tabs`: the box wrapping its heading and tab\n * list — or the `role=\"tablist\"` itself, which is the root when the tabs\n * carry no `sectionLabel`.\n */\n tabs: 'dial-kit-tabs',\n /**\n * The `role=\"tablist\"` holding the tabs, in either orientation. Additive to\n * `tabs` when there is no heading above it, since one element is then both.\n */\n tabList: 'dial-kit-tab-list',\n /**\n * One tab inside `Tabs`, in either orientation. The selected tab of a\n * horizontal row keeps its own `dial-kit-tab-selected-underline`.\n */\n tab: 'dial-kit-tab',\n /**\n * The selected tab, additive to `tab`. A horizontal row draws its selection\n * with `dial-kit-tab-selected-underline`, which carries the gradient rule;\n * this one carries no declarations and marks the selected tab in either\n * orientation.\n */\n tabSelected: 'dial-kit-tab-selected',\n /** The `sectionLabel` heading above a `Tabs`. Absent when there is none. */\n tabsSectionLabel: 'dial-kit-tabs-section-label',\n /**\n * The `role=\"group\"` row of a `FilterChips`. Its chips are `Tag` pills, so\n * they carry `dial-kit-tag` and have no entry of their own.\n */\n filterChips: 'dial-kit-filter-chips',\n /** A `Tag` pill, wherever it is rendered — including a `TagInput`'s rows. */\n tag: 'dial-kit-tag',\n /**\n * A `ToggleIconButton`, additive to the `dial-kit-base-icon-button` it\n * already carries.\n */\n toggleIconButton: 'dial-kit-toggle-icon-button',\n /** A `CloseButton`, additive to `dial-kit-base-icon-button`. */\n closeButton: 'dial-kit-close-button',\n /** An `InfoButton`, additive to `dial-kit-base-icon-button`. */\n infoButton: 'dial-kit-info-button',\n /**\n * The wrapper of a `ButtonDropdown` — its trigger carries\n * `dial-kit-base-button`.\n */\n buttonDropdown: 'dial-kit-button-dropdown',\n} as const"
11748
+ "signature": "DIAL_KIT_CLASS = {\n /* ── Feedback and status ───────────────────────────────────────────────── */\n /** The `role=\"status\"` root of a `Spinner`. */\n spinner: 'dial-kit-spinner',\n /**\n * The outermost element of a `ProgressBar`: the box wrapping its label,\n * track and readout — or the track itself, which is the root when the bar\n * has neither.\n */\n progressBar: 'dial-kit-progress-bar',\n /** The root of a `Skeleton`, wrapping its avatar and text rows. */\n skeleton: 'dial-kit-skeleton',\n /**\n * The `Notification` surface. Present on every wrapper too — the toast and\n * section-message variants of error, info, success, warning, loading and\n * general all render this component.\n */\n notification: 'dial-kit-notification',\n /** The empty-state root of `NoDataContent`. */\n noDataContent: 'dial-kit-no-data-content',\n /** The `role=\"status\"` panel of a `TransferQueue`: header, rows and aggregate bar. */\n transferQueue: 'dial-kit-transfer-queue',\n\n /* ── Text ──────────────────────────────────────────────────────────────── */\n /** The text element of a `Highlight`, which renders the matched query. */\n highlight: 'dial-kit-highlight',\n /** The caption line under a field, rendered by `CaptionText`. */\n captionText: 'dial-kit-caption-text',\n /**\n * A caption in its error variant — what `ErrorText` renders. Additive to\n * `captionText`, since one component draws both.\n */\n errorText: 'dial-kit-error-text',\n /** The `Label` root, which wraps the `label` element and its info button. */\n label: 'dial-kit-label',\n\n /* ── Containers ────────────────────────────────────────────────────────── */\n /** The `article` element of a `CardShell`. */\n cardShell: 'dial-kit-card-shell',\n /** The `aside` element of a `CollapsibleSidebar`. */\n collapsibleSidebar: 'dial-kit-collapsible-sidebar',\n /** The content box inside a `ResizableContainer`'s resize frame. */\n resizableContainer: 'dial-kit-resizable-container',\n /** The `role=\"separator\"` element of a `ResizeHandle`. */\n resizeHandle: 'dial-kit-resize-handle',\n /**\n * The `role=\"dialog\"` panel of a `Popup`. Its backdrop is reached through\n * `overlayClassName`.\n */\n popup: 'dial-kit-popup',\n /** The `role=\"dialog\"` panel of a `BottomSheet`. */\n bottomSheet: 'dial-kit-bottom-sheet',\n /**\n * The backdrop of a `BottomSheet`: the portalled, scroll-locking layer on\n * `z-popup` that holds the panel.\n */\n bottomSheetOverlay: 'dial-kit-bottom-sheet-overlay',\n /** The `role=\"dialog\"` panel of a `SideDrawer`, open or closed. */\n sideDrawer: 'dial-kit-side-drawer',\n /** The `Popup` panel of a `ConfirmationPopup`, additive to `popup`. */\n confirmationPopup: 'dial-kit-confirmation-popup',\n /** The root of an `Accordion`. */\n accordion: 'dial-kit-accordion',\n /** The breadcrumb root of a `FolderPath`. */\n folderPath: 'dial-kit-folder-path',\n /** The `nav` element of a `Breadcrumbs` trail. */\n breadcrumbs: 'dial-kit-breadcrumbs',\n /**\n * One segment of a `Breadcrumbs` trail: the link, button or plain span that\n * draws the label — not the `li`, which also holds the separator after it.\n */\n breadcrumbsItem: 'dial-kit-breadcrumbs-item',\n\n /* ── Menus and overlays ────────────────────────────────────────────────── */\n /**\n * The trigger wrapper of a `Dropdown`. Its floating panel is reached through\n * `listClassName`.\n */\n dropdown: 'dial-kit-dropdown',\n /**\n * The `role=\"none\"` item list inside a dropdown overlay — the box that holds\n * the rows and owns their vertical padding. Present in both generations, and\n * on a submenu's own list. It is *not* the floating panel.\n */\n dropdownList: 'dial-kit-dropdown-list',\n /** The search row above the item list of a `searchable` `Dropdown`. */\n dropdownSearch: 'dial-kit-dropdown-search',\n /**\n * One row of a floating overlay: a dropdown item, a `Select` option, a\n * submenu trigger, or a submenu child. It sits on the element that draws the\n * row box — so on the wrapper, not the inner button, for a row that has a\n * `rightControl` beside it.\n */\n menuItem: 'dial-kit-menuitem',\n /**\n * The trailing check of a chosen `MenuItemMark.Check` row. Decorative, like\n * the glyph itself — the row's `aria-checked` / `aria-selected` carries the\n * state.\n */\n menuItemCheck: 'dial-kit-menuitem-check',\n /** The primary icon of a `DialDropdownIcon` trigger. */\n dropdownIcon: 'dial-kit-dropdown-icon',\n /**\n * The caret badge of a `DialDropdownIcon` trigger — the round plate the\n * chevron sits on. Absent when `showCaret` is `false`.\n */\n dropdownIconCaret: 'dial-kit-dropdown-icon-caret',\n /** The bubble of a `Tooltip`, rendered by `TooltipContent` into a portal. */\n tooltip: 'dial-kit-tooltip',\n /** The panel of an `InteractiveTooltip` — the one whose content takes focus. */\n interactiveTooltip: 'dial-kit-interactive-tooltip',\n /** The text element of an `EllipsisTooltip`, which is also its trigger. */\n ellipsisTooltip: 'dial-kit-ellipsis-tooltip',\n\n /* ── Fields ────────────────────────────────────────────────────────────── */\n /** The `Search` field, additive to the `dial-kit-input` its `Input` carries. */\n search: 'dial-kit-search',\n /** The `PasswordInput` field, additive to `dial-kit-input`. */\n passwordInput: 'dial-kit-password-input',\n /** The `NumberInput` field, additive to `dial-kit-input`. */\n numberInput: 'dial-kit-number-input',\n /** The `TagInput` field, additive to `dial-kit-input`. */\n tagInput: 'dial-kit-tag-input',\n /** The `AutocompleteTagInput` field, additive to `dial-kit-input`. */\n autocompleteTagInput: 'dial-kit-autocomplete-tag-input',\n /** The root of a `Select`, wrapping its label, field and caption. */\n select: 'dial-kit-select',\n /** The trigger button of an `InlineSelect`. */\n inlineSelect: 'dial-kit-inline-select',\n /** The root of a `Calendar`, wrapping its label and date field. */\n calendar: 'dial-kit-calendar',\n /** The root of a `SchemaRenderer`, wrapping its top-level sections or fields. */\n schemaRenderer: 'dial-kit-schema-renderer',\n /**\n * The card of one collapsible `SchemaRenderer` section, at any depth: a\n * top-level property, a nested object or array, an array item, or a\n * key-value entry holding an object.\n */\n schemaRendererSection: 'dial-kit-schema-renderer-section',\n /** The drop area of a `FileDropzone`. */\n fileDropzone: 'dial-kit-file-dropzone',\n /**\n * The root of a `FileIcon`, wrapping the file or folder glyph (or\n * its spinner while loading) and the shared badge.\n */\n fileIcon: 'dial-kit-file-icon',\n /** The row of a `FileName`: its type icon, the name and any details. */\n fileName: 'dial-kit-file-name',\n /** The `FileName` row of a `FolderName`, additive to `fileName`. */\n folderName: 'dial-kit-folder-name',\n /**\n * The `role=\"img\"` badge of a `SharedEntityIndicator` — standalone, or the\n * shared badge a `FileIcon` draws over its glyph.\n */\n sharedEntityIndicator: 'dial-kit-shared-entity-indicator',\n /** The root of a `Badge`: the label box, with its icon when it has one. */\n badge: 'dial-kit-badge',\n /** The root of an `Avatar`: the image, or the initials box that replaces it. */\n avatar: 'dial-kit-avatar',\n /** The root row of an `EntityIdentity`: its icon, type label, name and version. */\n entityIdentity: 'dial-kit-entity-identity',\n\n /* ── Controls ──────────────────────────────────────────────────────────── */\n /** The row of a `Switch`: the control and its label. */\n switch: 'dial-kit-switch',\n /** The row of a `Checkbox`: the box and its label. */\n checkbox: 'dial-kit-checkbox',\n /** The decorative box a `CheckboxBox` draws, in a checkbox or a menu row. */\n checkboxBox: 'dial-kit-checkbox-box',\n /** The row of a `Radio`: the circle and its label. */\n radio: 'dial-kit-radio',\n /** The root of a `RadioGroup`, wrapping its label and its radios. */\n radioGroup: 'dial-kit-radio-group',\n /**\n * The root of a `RadioGroupPopupField`, wrapping its label and the collapsed\n * field that opens the group.\n */\n radioGroupPopupField: 'dial-kit-radio-group-popup-field',\n /** The `role=\"radiogroup\"` track of a `SegmentedControl`. */\n segmentedControl: 'dial-kit-segmented-control',\n /** One segment of a `SegmentedControl`. */\n segmentedControlItem: 'dial-kit-segmented-control-item',\n /**\n * The outermost element of a `Tabs`: the box wrapping its heading and tab\n * list — or the `role=\"tablist\"` itself, which is the root when the tabs\n * carry no `sectionLabel`.\n */\n tabs: 'dial-kit-tabs',\n /**\n * The `role=\"tablist\"` holding the tabs, in either orientation. Additive to\n * `tabs` when there is no heading above it, since one element is then both.\n */\n tabList: 'dial-kit-tab-list',\n /**\n * One tab inside `Tabs`, in either orientation. The selected tab of a\n * horizontal row keeps its own `dial-kit-tab-selected-underline`.\n */\n tab: 'dial-kit-tab',\n /**\n * The selected tab, additive to `tab`. A horizontal row draws its selection\n * with `dial-kit-tab-selected-underline`, which carries the gradient rule;\n * this one carries no declarations and marks the selected tab in either\n * orientation.\n */\n tabSelected: 'dial-kit-tab-selected',\n /** The `sectionLabel` heading above a `Tabs`. Absent when there is none. */\n tabsSectionLabel: 'dial-kit-tabs-section-label',\n /**\n * The `role=\"group\"` row of a `FilterChips`. Its chips are `Tag` pills, so\n * they carry `dial-kit-tag` and have no entry of their own.\n */\n filterChips: 'dial-kit-filter-chips',\n /** A `Tag` pill, wherever it is rendered — including a `TagInput`'s rows. */\n tag: 'dial-kit-tag',\n /**\n * A `ToggleIconButton`, additive to the `dial-kit-base-icon-button` it\n * already carries.\n */\n toggleIconButton: 'dial-kit-toggle-icon-button',\n /** A `CloseButton`, additive to `dial-kit-base-icon-button`. */\n closeButton: 'dial-kit-close-button',\n /** An `InfoButton`, additive to `dial-kit-base-icon-button`. */\n infoButton: 'dial-kit-info-button',\n /**\n * The wrapper of a `ButtonDropdown` — its trigger carries\n * `dial-kit-base-button`.\n */\n buttonDropdown: 'dial-kit-button-dropdown',\n} as const"
11682
11749
  }
11683
11750
  ]
11684
11751
  }
@@ -39,6 +39,8 @@ const i = {
39
39
  collapsibleSidebar: "dial-kit-collapsible-sidebar",
40
40
  /** The content box inside a `ResizableContainer`'s resize frame. */
41
41
  resizableContainer: "dial-kit-resizable-container",
42
+ /** The `role="separator"` element of a `ResizeHandle`. */
43
+ resizeHandle: "dial-kit-resize-handle",
42
44
  /**
43
45
  * The `role="dialog"` panel of a `Popup`. Its backdrop is reached through
44
46
  * `overlayClassName`.