@epam/ai-dial-ui-kit 0.16.0-dev.43 → 0.16.0-dev.45

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.
@@ -1,105 +1,113 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { themeBalham as Ne, colorSchemeDark as Ie, colorSchemeLight as Te } from "../../../node_modules/ag-grid-community/dist/package/main.esm.js";
3
- import { AgGridReact as De } from "../../../node_modules/ag-grid-react/dist/package/index.esm.js";
4
- import { IconZoomCancel as Ge } from "@tabler/icons-react";
5
- import { useState as Ae, useRef as b, useId as be, useCallback as s, useMemo as m, useEffect as g } from "react";
6
- import { useIsMobileScreen as Le } from "../../../hooks/use-is-mobile-screen.js";
7
- import { useIsTabletScreen as we } from "../../../hooks/use-is-tablet-screen.js";
8
- import { GridSelectionMode as X } from "../../../models/selection-mode.js";
9
- import { DropdownTrigger as Oe } from "../../../types/dropdown.js";
10
- import { GridColorScheme as Y } from "../../../types/grid.js";
11
- import { debounceFn as ye } from "../../../utils/debounce.js";
12
- import { baseColumnComparator as ve, omitUndefined as ke } from "../../../utils/grid-comparators.js";
13
- import { registerAgGridModulesOnce as xe } from "../../../utils/grid-registration.js";
14
- import { mergeClasses as ee } from "../../../utils/merge-classes.js";
15
- import { Dropdown as He } from "../Dropdown/Dropdown.js";
16
- import { EllipsisTooltip as We } from "../EllipsisTooltip/EllipsisTooltip.js";
17
- import { NoDataContent as ze } from "../NoDataContent/NoDataContent.js";
18
- import { SelectionCell as Pe } from "./components/SelectionCell.js";
19
- import { SelectionHeader as Fe } from "./components/SelectionHeader.js";
20
- import { GRID_THEME_PARAMS as L, SelectionEventSourceType as S, GRID_ROW_SELECT_CLASS as Ue, GRID_HEADER_SELECT_CLASS as Me, ROW_HEIGHT as re, GRID_WITHOUT_HEADER_BORDERS_CLASS as Be, GRID_SELECTION_VISIBLE_CLASS as Ve, GRID_WITH_SELECTION_CLASS as je, GRID_ROOT_CLASS as Je } from "./constants.js";
21
- import { SELECTION_COL_DEF as Ze } from "./renderers/constants.js";
22
- const $e = "dial-kit-grid-selection", qe = 150, Ke = 100, Rr = ({
2
+ import { themeBalham as Ae, colorSchemeDark as De, colorSchemeLight as Ge } from "../../../node_modules/ag-grid-community/dist/package/main.esm.js";
3
+ import { AgGridReact as Le } from "../../../node_modules/ag-grid-react/dist/package/index.esm.js";
4
+ import { IconZoomCancel as be } from "@tabler/icons-react";
5
+ import { useState as we, useRef as b, useId as Oe, useCallback as s, useMemo as m, useEffect as g } from "react";
6
+ import { useIsMobileScreen as ye } from "../../../hooks/use-is-mobile-screen.js";
7
+ import { useIsTabletScreen as ve } from "../../../hooks/use-is-tablet-screen.js";
8
+ import { GridSelectionMode as Y } from "../../../models/selection-mode.js";
9
+ import { DropdownTrigger as He } from "../../../types/dropdown.js";
10
+ import { GridAppearance as ee, GridColorScheme as re } from "../../../types/grid.js";
11
+ import { debounceFn as ke } from "../../../utils/debounce.js";
12
+ import { baseColumnComparator as xe, omitUndefined as We } from "../../../utils/grid-comparators.js";
13
+ import { registerAgGridModulesOnce as ze } from "../../../utils/grid-registration.js";
14
+ import { mergeClasses as te } from "../../../utils/merge-classes.js";
15
+ import { Dropdown as Pe } from "../Dropdown/Dropdown.js";
16
+ import { EllipsisTooltip as Fe } from "../EllipsisTooltip/EllipsisTooltip.js";
17
+ import { NoDataContent as Ue } from "../NoDataContent/NoDataContent.js";
18
+ import { SelectionCell as Be } from "./components/SelectionCell.js";
19
+ import { SelectionHeader as Me } from "./components/SelectionHeader.js";
20
+ import { GRID_THEME_PARAMS as w, SelectionEventSourceType as S, GRID_ROW_SELECT_CLASS as Ve, GRID_HEADER_SELECT_CLASS as je, ROW_HEIGHT as oe, GRID_CHAT_CLASS as Je, GRID_WITHOUT_HEADER_BORDERS_CLASS as Ze, GRID_SELECTION_VISIBLE_CLASS as $e, GRID_WITH_SELECTION_CLASS as qe, GRID_ROOT_CLASS as Ke } from "./constants.js";
21
+ import { SELECTION_COL_DEF as Qe } from "./renderers/constants.js";
22
+ const Xe = "dial-kit-grid-selection", Ye = 150, er = 100, Nr = ({
23
23
  columnDefs: _,
24
24
  rowData: c,
25
- additionalGridOptions: w,
25
+ additionalGridOptions: O,
26
26
  getContextMenuItems: N,
27
- className: te,
28
- ariaLabel: oe = "Data grid",
27
+ className: ne,
28
+ ariaLabel: ie = "Data grid",
29
29
  wrapCustomCellRenderers: I = !0,
30
30
  disabledRowIds: p,
31
31
  selectedRowIds: l,
32
- onSelectionChange: O,
33
- onGridApiChange: ne,
34
- getRowId: y,
35
- alternateOddRowColors: v = !1,
32
+ onSelectionChange: y,
33
+ onGridApiChange: se,
34
+ getRowId: v,
35
+ alternateOddRowColors: H = !1,
36
36
  filterPlaceholder: k = "Enter value",
37
37
  emptyStateIcon: x,
38
- emptyStateTitle: H = "No results found",
39
- emptyStateDescription: W = "Sorry, we couldn't find any results for your search.",
40
- loading: z = !1,
41
- wrapperBorder: P = !0,
42
- withoutHeaderBorders: ie = !1,
43
- allowDisabledContextMenu: F = !1,
38
+ emptyStateTitle: W = "No results found",
39
+ emptyStateDescription: z = "Sorry, we couldn't find any results for your search.",
40
+ loading: P = !1,
41
+ wrapperBorder: F = !0,
42
+ withoutHeaderBorders: ae = !1,
43
+ allowDisabledContextMenu: U = !1,
44
44
  selectionMode: n,
45
- selectRowLabel: U,
45
+ selectRowLabel: B,
46
46
  selectAllLabel: M = "Select all rows",
47
- colorScheme: T = Y.Light
47
+ colorScheme: T = re.Light,
48
+ appearance: le = ee.Default
48
49
  }) => {
49
- xe();
50
- const [t, se] = Ae(), ae = Le(), le = we(), D = b(/* @__PURE__ */ new Set()), B = b(
50
+ ze();
51
+ const [t, ce] = we(), de = ye(), ue = ve(), A = b(/* @__PURE__ */ new Set()), V = b(
51
52
  void 0
52
- ), V = `dial-kit-grid-selection-${be()}`, d = b({
53
- getRowId: y,
53
+ ), j = `dial-kit-grid-selection-${Oe()}`, d = b({
54
+ getRowId: v,
54
55
  getContextMenuItems: N,
55
- onSelectionChange: O,
56
- selectRowLabel: U,
56
+ onSelectionChange: y,
57
+ selectRowLabel: B,
57
58
  wrapCustomCellRenderers: I
58
59
  });
59
60
  d.current = {
60
- getRowId: y,
61
+ getRowId: v,
61
62
  getContextMenuItems: N,
62
- onSelectionChange: O,
63
- selectRowLabel: U,
63
+ onSelectionChange: y,
64
+ selectRowLabel: B,
64
65
  wrapCustomCellRenderers: I
65
66
  };
66
67
  const a = s((e) => {
67
68
  const r = d.current.getRowId;
68
69
  return r ? r(e) : String(e.id ?? JSON.stringify(e));
69
- }, []), j = !!N, J = !!I, ce = m(
70
- () => Ne.withPart(
71
- T === Y.Dark ? Ie : Te
70
+ }, []), J = !!N, Z = !!I, D = le === ee.Chat, me = m(
71
+ () => Ae.withPart(
72
+ T === re.Dark ? De : Ge
72
73
  ).withParams({
73
- ...L,
74
+ ...w,
74
75
  // The shared params pin `browserColorScheme` to light and are applied
75
76
  // after the part, so the chosen scheme is set again here.
76
77
  browserColorScheme: T,
77
- oddRowBackgroundColor: v ? L.oddRowBackgroundColor : L.backgroundColor,
78
- wrapperBorder: P
78
+ oddRowBackgroundColor: H ? w.oddRowBackgroundColor : w.backgroundColor,
79
+ // The Chat table is a borderless card whose row dividers stop at the
80
+ // cell padding, so `styles/grid.scss` draws them instead. Its header
81
+ // and row cells take 12px on each side, not Balham's 8px.
82
+ ...D ? {
83
+ wrapperBorder: !1,
84
+ rowBorder: !1,
85
+ cellHorizontalPadding: 12
86
+ } : { wrapperBorder: F }
79
87
  }),
80
- [v, T, P]
81
- ), de = s((e) => {
88
+ [H, T, F, D]
89
+ ), fe = s((e) => {
82
90
  e.api.sizeColumnsToFit();
83
- }, []), ue = ae || le || (l?.size ?? 0) > 0, u = s(
91
+ }, []), Se = de || ue || (l?.size ?? 0) > 0, u = s(
84
92
  (e) => !!e && !!p?.has(a(e)),
85
93
  [p, a]
86
94
  ), C = s(
87
- (e, r, i) => j ? /* @__PURE__ */ o(
88
- He,
95
+ (e, r, i) => J ? /* @__PURE__ */ o(
96
+ Pe,
89
97
  {
90
- trigger: [Oe.ContextMenu],
98
+ trigger: [He.ContextMenu],
91
99
  items: e.data ? d.current.getContextMenuItems?.(e.data) ?? [] : [],
92
100
  anchorToMouse: !0,
93
101
  matchReferenceWidth: !0,
94
- className: ee(
102
+ className: te(
95
103
  "size-full",
96
104
  i && "cursor-not-allowed opacity-75"
97
105
  ),
98
- disabled: i && !F,
106
+ disabled: i && !U,
99
107
  children: /* @__PURE__ */ o("span", { className: "block min-w-0 max-w-full flex-1", children: r })
100
108
  }
101
109
  ) : r,
102
- [j, F]
110
+ [J, U]
103
111
  ), G = s(
104
112
  (e) => {
105
113
  if (!e.data) return null;
@@ -107,7 +115,7 @@ const $e = "dial-kit-grid-selection", qe = 150, Ke = 100, Rr = ({
107
115
  return C(
108
116
  e,
109
117
  /* @__PURE__ */ o(
110
- We,
118
+ Fe,
111
119
  {
112
120
  text: e.value == null ? "" : String(e.value),
113
121
  className: "max-w-full dial-small-text text-primary",
@@ -121,32 +129,32 @@ const $e = "dial-kit-grid-selection", qe = 150, Ke = 100, Rr = ({
121
129
  ), h = s(
122
130
  (e) => e === S.API || e === S.ROW_DATA_CHANGED,
123
131
  []
124
- ), me = m(
125
- () => ye((e) => {
126
- const i = (e.selectedNodes ?? []).map((K) => K.data), f = new Set(i.map(a));
127
- D.current = f, B.current = e.source, !h(e.source) && d.current.onSelectionChange?.(f, i);
128
- }, Ke),
132
+ ), pe = m(
133
+ () => ke((e) => {
134
+ const i = (e.selectedNodes ?? []).map((Q) => Q.data), f = new Set(i.map(a));
135
+ A.current = f, V.current = e.source, !h(e.source) && d.current.onSelectionChange?.(f, i);
136
+ }, er),
129
137
  [h, a]
130
- ), A = m(() => {
138
+ ), L = m(() => {
131
139
  if (n)
132
140
  return {
133
- ...Ze,
134
- colId: $e,
141
+ ...Qe,
142
+ colId: Xe,
135
143
  headerName: "",
136
- headerClass: Me,
137
- cellClass: Ue,
138
- headerComponent: n === X.MULTIPLE ? Fe : void 0,
144
+ headerClass: je,
145
+ cellClass: Ve,
146
+ headerComponent: n === Y.MULTIPLE ? Me : void 0,
139
147
  headerComponentParams: { label: M },
140
148
  cellRenderer: (e) => {
141
149
  if (!e.data) return null;
142
150
  const r = a(e.data);
143
151
  return /* @__PURE__ */ o(
144
- Pe,
152
+ Be,
145
153
  {
146
154
  params: e,
147
155
  mode: n,
148
156
  rowId: r,
149
- radioName: V,
157
+ radioName: j,
150
158
  label: d.current.selectRowLabel?.(e.data) ?? "Select row",
151
159
  disabled: p?.has(r)
152
160
  }
@@ -158,8 +166,8 @@ const $e = "dial-kit-grid-selection", qe = 150, Ke = 100, Rr = ({
158
166
  M,
159
167
  a,
160
168
  p,
161
- V
162
- ]), Z = s(
169
+ j
170
+ ]), $ = s(
163
171
  (e) => {
164
172
  if (!e.cellRenderer)
165
173
  return { ...e, cellRenderer: G };
@@ -168,21 +176,21 @@ const $e = "dial-kit-grid-selection", qe = 150, Ke = 100, Rr = ({
168
176
  return e;
169
177
  const f = e.cellRenderer;
170
178
  return { ...e, cellRenderer: (E) => {
171
- const ge = u(E.data), Q = typeof f == "function" ? f : void 0, _e = Q ? /* @__PURE__ */ o(Q, { ...E }) : G(E);
172
- return C(E, _e, ge);
179
+ const Ie = u(E.data), X = typeof f == "function" ? f : void 0, Te = X ? /* @__PURE__ */ o(X, { ...E }) : G(E);
180
+ return C(E, Te, Ie);
173
181
  } };
174
182
  },
175
183
  [u, G, C]
176
- ), fe = m(() => {
177
- const e = J ? (_ ?? []).map(Z) : _ ?? [];
178
- return A ? [A, ...e] : e;
179
- }, [_, J, Z, A]), {
180
- defaultColDef: $,
184
+ ), Ce = m(() => {
185
+ const e = Z ? (_ ?? []).map($) : _ ?? [];
186
+ return L ? [L, ...e] : e;
187
+ }, [_, Z, $, L]), {
188
+ defaultColDef: q,
181
189
  rowSelection: R,
182
- ...Se
183
- } = w ?? {}, pe = m(
190
+ ...he
191
+ } = O ?? {}, Re = m(
184
192
  () => ({
185
- minWidth: qe,
193
+ minWidth: Ye,
186
194
  resizable: !0,
187
195
  sortable: !0,
188
196
  floatingFilter: !0,
@@ -191,52 +199,52 @@ const $e = "dial-kit-grid-selection", qe = 150, Ke = 100, Rr = ({
191
199
  filterPlaceholder: k,
192
200
  buttons: ["reset"]
193
201
  },
194
- comparator: ve,
195
- ...ke($)
202
+ comparator: xe,
203
+ ...We(q)
196
204
  }),
197
- [k, $]
198
- ), Ce = (e) => {
199
- e.api.sizeColumnsToFit(), se(e.api), w?.onGridReady?.(e), ne?.(e.api);
205
+ [k, q]
206
+ ), Ee = (e) => {
207
+ e.api.sizeColumnsToFit(), ce(e.api), O?.onGridReady?.(e), se?.(e.api);
200
208
  };
201
209
  g(() => {
202
210
  t && c && t.setGridOption("rowData", c);
203
211
  }, [t, c]);
204
- const he = s(
212
+ const ge = s(
205
213
  () => /* @__PURE__ */ o(
206
- ze,
214
+ Ue,
207
215
  {
208
216
  live: !0,
209
- title: H,
210
- description: W,
211
- icon: x ?? /* @__PURE__ */ o(Ge, { size: 100, stroke: 0.5, "aria-hidden": "true" })
217
+ title: W,
218
+ description: z,
219
+ icon: x ?? /* @__PURE__ */ o(be, { size: 100, stroke: 0.5, "aria-hidden": "true" })
212
220
  }
213
221
  ),
214
- [H, W, x]
215
- ), q = typeof R == "object" ? R : void 0, Re = m(() => n ? {
222
+ [W, z, x]
223
+ ), K = typeof R == "object" ? R : void 0, _e = m(() => n ? {
216
224
  isRowSelectable: (e) => !u(e.data),
217
225
  /*
218
226
  Merged, not replaced, the way `defaultColDef` is: a consumer reaching
219
227
  for `isRowSelectable` alone would otherwise hand ag-Grid a whole new
220
228
  object and lose the three settings below with it.
221
229
  */
222
- ...q,
230
+ ...K,
223
231
  /*
224
232
  `selectionMode` owns the mode, because it also decides whether the
225
233
  selection column draws checkboxes or radios.
226
234
  */
227
- mode: n === X.SINGLE ? "singleRow" : "multiRow",
235
+ mode: n === Y.SINGLE ? "singleRow" : "multiRow",
228
236
  // The controls live in this component's own selection column, so
229
237
  // ag-Grid's inputs are switched off and only its behaviour is used.
230
238
  checkboxes: !1,
231
239
  headerCheckbox: !1
232
240
  } : R, [
233
241
  R,
234
- q,
242
+ K,
235
243
  u,
236
244
  n
237
245
  ]);
238
246
  g(() => {
239
- t && c && D.current.size && D.current.forEach((e) => {
247
+ t && c && A.current.size && A.current.forEach((e) => {
240
248
  const r = t.getRowNode(e);
241
249
  r && !r.isSelected() && r.setSelected(!0, !1, S.API);
242
250
  });
@@ -246,13 +254,13 @@ const $e = "dial-kit-grid-selection", qe = 150, Ke = 100, Rr = ({
246
254
  r && !r.isSelected() && r.setSelected(!0, !1, S.API);
247
255
  }));
248
256
  }, [t, l]);
249
- const Ee = s(
257
+ const Ne = s(
250
258
  (e) => e.data ? a(e.data) : "",
251
259
  [a]
252
260
  );
253
261
  return g(() => {
254
262
  const e = h(
255
- B.current
263
+ V.current
256
264
  );
257
265
  if (t && l?.size && e) {
258
266
  const r = Array.from(l)[0];
@@ -264,45 +272,46 @@ const $e = "dial-kit-grid-selection", qe = 150, Ke = 100, Rr = ({
264
272
  }, [t, h, l]), /* @__PURE__ */ o(
265
273
  "div",
266
274
  {
267
- className: ee(
268
- Je,
275
+ className: te(
276
+ Ke,
269
277
  "size-full",
270
- n && je,
271
- n && ue && Ve,
272
- ie && Be,
273
- te
278
+ n && qe,
279
+ n && Se && $e,
280
+ ae && Ze,
281
+ D && Je,
282
+ ne
274
283
  ),
275
284
  role: "region",
276
- "aria-label": oe,
277
- "aria-busy": z,
285
+ "aria-label": ie,
286
+ "aria-busy": P,
278
287
  children: /* @__PURE__ */ o("div", { className: "h-full overflow-x-auto", children: /* @__PURE__ */ o(
279
- De,
288
+ Le,
280
289
  {
281
290
  rowModelType: "clientSide",
282
- headerHeight: re,
283
- rowHeight: re,
291
+ headerHeight: oe,
292
+ rowHeight: oe,
284
293
  cellSelection: !1,
285
- theme: ce,
294
+ theme: me,
286
295
  autoSizeStrategy: { type: "fitGridWidth" },
287
- columnDefs: fe,
288
- defaultColDef: pe,
289
- onGridSizeChanged: de,
290
- onGridReady: Ce,
291
- loading: z,
296
+ columnDefs: Ce,
297
+ defaultColDef: Re,
298
+ onGridSizeChanged: fe,
299
+ onGridReady: Ee,
300
+ loading: P,
292
301
  suppressCellFocus: !0,
293
302
  suppressDragLeaveHidesColumns: !0,
294
- noRowsOverlayComponent: he,
303
+ noRowsOverlayComponent: ge,
295
304
  rowData: c,
296
- rowSelection: Re,
297
- onSelectionChanged: me,
298
- getRowId: Ee,
299
- ...Se
305
+ rowSelection: _e,
306
+ onSelectionChanged: pe,
307
+ getRowId: Ne,
308
+ ...he
300
309
  }
301
310
  ) })
302
311
  }
303
312
  );
304
313
  };
305
314
  export {
306
- $e as GRID_SELECTION_COLUMN_ID,
307
- Rr as Grid
315
+ Xe as GRID_SELECTION_COLUMN_ID,
316
+ Nr as Grid
308
317
  };
@@ -1,4 +1,4 @@
1
- const a = "dial-kit-grid", t = "dial-kit-grid-with-selection", d = "dial-kit-grid-without-header-borders", i = "dial-kit-grid-row-select", l = "dial-kit-grid-header-select", n = "dial-kit-grid-selection-visible", c = "dial-kit-grid-align-right", C = 40, o = "0.5px solid var(--stroke-tertiary, #E0E6F0)", s = {
1
+ const a = "dial-kit-grid", t = "dial-kit-grid-with-selection", d = "dial-kit-grid-chat", i = "dial-kit-grid-without-header-borders", l = "dial-kit-grid-row-select", n = "dial-kit-grid-header-select", c = "dial-kit-grid-selection-visible", C = "dial-kit-grid-align-right", s = 40, o = "0.5px solid var(--stroke-tertiary, #E0E6F0)", _ = {
2
2
  accentColor: "var(--bg-control-accent, #1D4ED8)",
3
3
  backgroundColor: "var(--bg-layer-raised, #FCFCFC)",
4
4
  oddRowBackgroundColor: "var(--bg-layer-sunken, #EEF1F7)",
@@ -43,14 +43,15 @@ const a = "dial-kit-grid", t = "dial-kit-grid-with-selection", d = "dial-kit-gri
43
43
  };
44
44
  var e = /* @__PURE__ */ ((r) => (r.API = "api", r.ROW_DATA_CHANGED = "rowDataChanged", r.CHECKBOX_SELECTED = "checkboxSelected", r))(e || {});
45
45
  export {
46
- c as GRID_ALIGN_RIGHT_CLASS,
47
- l as GRID_HEADER_SELECT_CLASS,
46
+ C as GRID_ALIGN_RIGHT_CLASS,
47
+ d as GRID_CHAT_CLASS,
48
+ n as GRID_HEADER_SELECT_CLASS,
48
49
  a as GRID_ROOT_CLASS,
49
- i as GRID_ROW_SELECT_CLASS,
50
- n as GRID_SELECTION_VISIBLE_CLASS,
51
- s as GRID_THEME_PARAMS,
52
- d as GRID_WITHOUT_HEADER_BORDERS_CLASS,
50
+ l as GRID_ROW_SELECT_CLASS,
51
+ c as GRID_SELECTION_VISIBLE_CLASS,
52
+ _ as GRID_THEME_PARAMS,
53
+ i as GRID_WITHOUT_HEADER_BORDERS_CLASS,
53
54
  t as GRID_WITH_SELECTION_CLASS,
54
- C as ROW_HEIGHT,
55
+ s as ROW_HEIGHT,
55
56
  e as SelectionEventSourceType
56
57
  };
@@ -1,5 +1,5 @@
1
1
  import { PopupSize as e } from "../../../types/popup.js";
2
- const o = "z-popup flex items-center justify-center bg-backdrop md:p-4 gap-5 p-6", a = "relative flex w-full max-h-full flex-col rounded-xl bg-layer-raised md:h-auto", t = "flex flex-row items-center justify-between px-6 py-4", s = "flex-1 min-w-0 mr-3 truncate dial-h3-text text-primary", l = "border-b border-tertiary", r = "flex flex-row items-center gap-2 px-6 py-4", m = "border-t border-tertiary", i = "flex shrink-0 flex-row items-center gap-2", x = "ml-auto mobile:flex-1", n = "mobile:flex-1", u = {
2
+ const o = "z-popup flex items-center justify-center bg-backdrop md:p-4 gap-5 p-6", a = "relative flex w-full max-h-full flex-col rounded-xl bg-layer-raised md:h-auto", t = "flex flex-row items-center justify-between px-6 py-4", s = "flex-1 min-w-0 mr-3 truncate dial-h2-text text-primary", l = "border-b border-tertiary", r = "flex flex-row items-center gap-2 px-6 py-4", m = "border-t border-tertiary", i = "flex shrink-0 flex-row items-center gap-2", x = "ml-auto mobile:flex-1", n = "mobile:flex-1", u = {
3
3
  [e.Sm]: "max-w-full md:max-w-[400px]",
4
4
  [e.Md]: "max-w-full md:max-w-[800px]",
5
5
  [e.Lg]: "max-w-full md:max-w-[1200px]"
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.16.0-dev.43",
3
- "generatedAt": "2026-10-24T19:06:23.562Z",
2
+ "version": "0.16.0-dev.45",
3
+ "generatedAt": "2026-10-24T22:21:11.671Z",
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| `lg` | `var(--shadow-lg)` | `#2764d914` |",
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| `xs` | `var(--shadow-xs-1)` | `#2764d933` |\n| `lg` | `var(--shadow-lg)` | `#2764d914` |",
21
21
  "components": [
22
22
  {
23
23
  "name": "Spinner",
@@ -5585,6 +5585,13 @@
5585
5585
  "required": false,
5586
5586
  "defaultValue": "GridColorScheme.Light",
5587
5587
  "description": "AG Grid color scheme. `dark` paints native controls dark."
5588
+ },
5589
+ {
5590
+ "name": "appearance",
5591
+ "type": "GridAppearance",
5592
+ "required": false,
5593
+ "defaultValue": "GridAppearance.Default",
5594
+ "description": "Visual treatment; `chat` draws the borderless \"Chat table\"."
5588
5595
  }
5589
5596
  ],
5590
5597
  "examples": [
@@ -11847,6 +11854,22 @@
11847
11854
  "sourceFile": "types/transfer-queue.ts",
11848
11855
  "description": "Lifecycle status of one item in a `TransferQueue`."
11849
11856
  },
11857
+ {
11858
+ "name": "GridAppearance",
11859
+ "kind": "enum",
11860
+ "members": [
11861
+ {
11862
+ "name": "Default",
11863
+ "value": "'default'"
11864
+ },
11865
+ {
11866
+ "name": "Chat",
11867
+ "value": "'chat'"
11868
+ }
11869
+ ],
11870
+ "sourceFile": "types/grid.ts",
11871
+ "description": "Visual treatment of `Grid`. `Default` is the framed data grid. `Chat` is the\n\"Chat table\" of the design: a borderless card with a 12px corner and the MD\nshadow, 12px of cell padding on both sides, row dividers inset by that\npadding, and rounded hover and selected rows."
11872
+ },
11850
11873
  {
11851
11874
  "name": "GridColorScheme",
11852
11875
  "kind": "enum",