@epam/ai-dial-ui-kit 0.16.0-dev.39 → 0.16.0-dev.41

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,87 @@
1
+ import { jsxs as o, jsx as t } from "react/jsx-runtime";
2
+ import { useId as y } from "react";
3
+ import { mergeClasses as e } from "../../../utils/merge-classes.js";
4
+ import { DIAL_KIT_CLASS as S } from "../../../constants/public-class-names.js";
5
+ import { FormSectionVariant as i } from "../../../types/form-section.js";
6
+ const N = {
7
+ [i.Row]: {
8
+ header: "gap-2",
9
+ title: "dial-small-semi-text",
10
+ description: "dial-small-text"
11
+ },
12
+ [i.Caption]: {
13
+ header: "gap-4",
14
+ title: "dial-caption-lead-semi-text",
15
+ description: "dial-tiny-text"
16
+ },
17
+ [i.Setting]: {
18
+ header: "gap-4",
19
+ title: "dial-tiny-semi-text",
20
+ description: "dial-tiny-text"
21
+ }
22
+ }, b = ({
23
+ title: d,
24
+ action: l,
25
+ description: s,
26
+ variant: m = i.Row,
27
+ headingLevel: c = 3,
28
+ children: r,
29
+ className: p,
30
+ titleClassName: x,
31
+ descriptionClassName: h,
32
+ contentClassName: f
33
+ }) => {
34
+ const n = y(), a = N[m], g = `h${c}`;
35
+ return /* @__PURE__ */ o(
36
+ "section",
37
+ {
38
+ "aria-labelledby": n,
39
+ className: e(
40
+ "flex flex-col gap-3",
41
+ p,
42
+ S.formSection
43
+ ),
44
+ children: [
45
+ /* @__PURE__ */ o(
46
+ "div",
47
+ {
48
+ className: e(
49
+ "flex items-center justify-between",
50
+ a.header
51
+ ),
52
+ children: [
53
+ /* @__PURE__ */ t(
54
+ g,
55
+ {
56
+ id: n,
57
+ className: e(
58
+ "min-w-0 text-primary",
59
+ a.title,
60
+ x
61
+ ),
62
+ children: d
63
+ }
64
+ ),
65
+ l != null && /* @__PURE__ */ t("div", { className: "shrink-0", children: l })
66
+ ]
67
+ }
68
+ ),
69
+ s != null && /* @__PURE__ */ t(
70
+ "p",
71
+ {
72
+ className: e(
73
+ "text-secondary",
74
+ a.description,
75
+ h
76
+ ),
77
+ children: s
78
+ }
79
+ ),
80
+ r != null && /* @__PURE__ */ t("div", { className: e("relative", f), children: r })
81
+ ]
82
+ }
83
+ );
84
+ };
85
+ export {
86
+ b as FormSection
87
+ };
@@ -1,49 +1,55 @@
1
- import { jsx as s, jsxs as I } from "react/jsx-runtime";
2
- import { useRef as j, useId as R, useCallback as _ } from "react";
3
- import { mergeClasses as l } from "../../../utils/merge-classes.js";
1
+ import { jsx as t, jsxs as I, Fragment as O } from "react/jsx-runtime";
2
+ import { IconExclamationCircle as z, IconAlertTriangle as H } from "@tabler/icons-react";
3
+ import { useRef as R, useId as V, useCallback as j } from "react";
4
+ import { mergeClasses as n } from "../../../utils/merge-classes.js";
4
5
  import { DIAL_KIT_CLASS as a } from "../../../constants/public-class-names.js";
5
- import { TabOrientation as u } from "../../../types/tab.js";
6
- const z = {
7
- [u.Horizontal]: { next: "ArrowRight", previous: "ArrowLeft" },
8
- [u.Vertical]: { next: "ArrowDown", previous: "ArrowUp" }
9
- }, M = ({
10
- tabs: n,
6
+ import { DIAL_ICON_SIZE as E } from "../../../constants/icon.js";
7
+ import { DIAL_KIT_ICON_STROKE as _ } from "../constants/icon.js";
8
+ import { TabOrientation as m, TabStatus as x } from "../../../types/tab.js";
9
+ const M = {
10
+ [x.Error]: "Error",
11
+ [x.Warning]: "Warning"
12
+ }, U = {
13
+ [m.Horizontal]: { next: "ArrowRight", previous: "ArrowLeft" },
14
+ [m.Vertical]: { next: "ArrowDown", previous: "ArrowUp" }
15
+ }, P = ({
16
+ tabs: s,
11
17
  activeTabId: c,
12
18
  onTabChange: f,
13
- orientation: m = u.Horizontal,
19
+ orientation: h = m.Horizontal,
14
20
  sectionLabel: d,
15
- ariaLabel: k,
21
+ ariaLabel: A,
16
22
  className: v,
17
23
  tabListClassName: D,
18
- tabClassName: S,
19
- sectionLabelClassName: H
24
+ tabClassName: L,
25
+ sectionLabelClassName: T
20
26
  }) => {
21
- const w = j({}), A = R(), i = m === u.Vertical, h = n.find((e) => e.id === c), K = h && !h.disabled ? h.id : n.find((e) => !e.disabled)?.id, V = _(
27
+ const N = R({}), S = V(), i = h === m.Vertical, y = s.find((e) => e.id === c), K = y && !y.disabled ? y.id : s.find((e) => !e.disabled)?.id, C = j(
22
28
  (e) => {
23
- const { next: t, previous: r } = z[m];
24
- if (![t, r, "Home", "End"].includes(e.key) || n.length === 0)
29
+ const { next: r, previous: l } = U[h];
30
+ if (![r, l, "Home", "End"].includes(e.key) || s.length === 0)
25
31
  return;
26
- const o = n.filter((g) => !g.disabled);
32
+ const o = s.filter((k) => !k.disabled);
27
33
  if (o.length === 0) return;
28
- const p = Math.max(
29
- o.findIndex((g) => g.id === c),
34
+ const u = Math.max(
35
+ o.findIndex((k) => k.id === c),
30
36
  0
31
37
  ), b = o.length - 1;
32
- let x = p;
33
- e.key === t ? x = p === b ? 0 : p + 1 : e.key === r ? x = p === 0 ? b : p - 1 : e.key === "Home" ? x = 0 : x = b, e.preventDefault();
34
- const y = o[x];
35
- w.current[y.id]?.focus(), y.id !== c && f(y.id);
38
+ let p = u;
39
+ e.key === r ? p = u === b ? 0 : u + 1 : e.key === l ? p = u === 0 ? b : u - 1 : e.key === "Home" ? p = 0 : p = b, e.preventDefault();
40
+ const g = o[p];
41
+ N.current[g.id]?.focus(), g.id !== c && f(g.id);
36
42
  },
37
- [n, c, f, m]
38
- ), N = /* @__PURE__ */ s(
43
+ [s, c, f, h]
44
+ ), w = /* @__PURE__ */ t(
39
45
  "div",
40
46
  {
41
47
  role: "tablist",
42
48
  "aria-orientation": i ? "vertical" : void 0,
43
- "aria-label": k,
44
- "aria-labelledby": !k && d ? A : void 0,
45
- onKeyDown: V,
46
- className: l(
49
+ "aria-label": A,
50
+ "aria-labelledby": !A && d ? S : void 0,
51
+ onKeyDown: C,
52
+ className: n(
47
53
  i ? "flex flex-col gap-1 px-2" : "flex justify-start gap-1",
48
54
  // Without a heading the list is the root, so it takes the caller's
49
55
  // classes — and the root kit class below — itself.
@@ -52,62 +58,89 @@ const z = {
52
58
  a.tabList,
53
59
  !d && a.tabs
54
60
  ),
55
- children: n.map((e) => {
56
- const t = c === e.id, r = !!e.disabled;
61
+ children: s.map((e) => {
62
+ const r = c === e.id, l = !!e.disabled;
57
63
  return /* @__PURE__ */ I(
58
64
  "button",
59
65
  {
60
66
  ref: (o) => {
61
- w.current[e.id] = o;
67
+ N.current[e.id] = o;
62
68
  },
63
69
  type: "button",
64
70
  role: "tab",
65
- "aria-selected": t,
66
- disabled: r,
71
+ "aria-selected": r,
72
+ disabled: l,
67
73
  tabIndex: e.id === K ? 0 : -1,
68
74
  onClick: () => f(e.id),
69
- className: l(
75
+ className: n(
70
76
  "dial-kit-enhanced-target flex items-center gap-2 text-start",
71
77
  "transition-colors motion-reduce:transition-none",
72
78
  "focus-visible:outline focus-visible:outline-focus",
73
79
  i ? [
74
80
  "h-11 w-full rounded-lg px-3 desktop:h-10",
75
81
  "focus-visible:-outline-offset-1",
76
- t ? "dial-small-semi-text" : "dial-small-text text-secondary"
82
+ r ? "dial-small-semi-text" : "dial-small-text text-secondary"
77
83
  ] : [
78
84
  "dial-small-paragraph-semi-text border-b-2 border-transparent px-3 py-2",
79
85
  "focus-visible:outline-offset-2"
80
86
  ],
81
- r && (i ? "cursor-not-allowed text-control-disable-primary" : "cursor-not-allowed border-control-disable-primary text-control-disable-primary"),
82
- !r && (i ? t ? "bg-control-accent-alpha text-accent hover:bg-control-accent-alpha-hover" : "hover:bg-control-accent-alpha-hover" : t ? "dial-kit-tab-selected-underline text-primary" : "border-transparent text-secondary"),
83
- S,
87
+ l && (i ? "cursor-not-allowed text-control-disable-primary" : "cursor-not-allowed border-control-disable-primary text-control-disable-primary"),
88
+ !l && (i ? r ? "bg-control-accent-alpha text-accent hover:bg-control-accent-alpha-hover" : "hover:bg-control-accent-alpha-hover" : r ? "dial-kit-tab-selected-underline text-primary" : "border-transparent text-secondary"),
89
+ L,
84
90
  a.tab,
85
- t && a.tabSelected
91
+ r && a.tabSelected
86
92
  ),
87
93
  children: [
88
94
  e.icon && // The label names the tab, so the icon beside it is decorative —
89
95
  // and a Tabler icon is a bare `<svg>` that would otherwise be
90
96
  // announced as an unnamed graphic.
91
- /* @__PURE__ */ s("span", { "aria-hidden": "true", className: "flex shrink-0", children: e.icon }),
92
- /* @__PURE__ */ s(
97
+ /* @__PURE__ */ t("span", { "aria-hidden": "true", className: "flex shrink-0", children: e.icon }),
98
+ /* @__PURE__ */ t(
93
99
  "span",
94
100
  {
95
- className: l(
96
- i && !t && !r && "text-primary"
101
+ className: n(
102
+ i && !r && !l && "text-primary"
97
103
  ),
98
104
  children: e.label
99
105
  }
100
106
  ),
101
- e.count != null && /* @__PURE__ */ s(
107
+ e.status && /* @__PURE__ */ I(O, { children: [
108
+ /* @__PURE__ */ t(
109
+ "span",
110
+ {
111
+ "aria-hidden": "true",
112
+ className: n(
113
+ "flex shrink-0",
114
+ e.status === x.Error ? "text-error" : "text-warning",
115
+ i && e.count == null && "ms-auto"
116
+ ),
117
+ children: e.status === x.Error ? /* @__PURE__ */ t(
118
+ z,
119
+ {
120
+ size: E.SM,
121
+ stroke: _
122
+ }
123
+ ) : /* @__PURE__ */ t(
124
+ H,
125
+ {
126
+ size: E.SM,
127
+ stroke: _
128
+ }
129
+ )
130
+ }
131
+ ),
132
+ /* @__PURE__ */ t("span", { className: "sr-only", children: e.statusLabel ?? M[e.status] })
133
+ ] }),
134
+ e.count != null && /* @__PURE__ */ t(
102
135
  "span",
103
136
  {
104
- className: l(
137
+ className: n(
105
138
  "dial-tiny-semi-text rounded-full px-1.5 py-0.5",
106
139
  // In a rail the badge belongs at the far end of the row, not
107
140
  // hanging off the label.
108
141
  i && "ms-auto",
109
- r && "bg-layer-sunken text-control-disable-primary",
110
- !r && (t ? "bg-control-accent-alpha text-accent" : "bg-layer-sunken text-secondary")
142
+ l && "bg-layer-sunken text-control-disable-primary",
143
+ !l && (r ? "bg-control-accent-alpha text-accent" : "bg-layer-sunken text-secondary")
111
144
  ),
112
145
  children: e.count
113
146
  }
@@ -122,26 +155,26 @@ const z = {
122
155
  return d ? /* @__PURE__ */ I(
123
156
  "div",
124
157
  {
125
- className: l(
158
+ className: n(
126
159
  "flex flex-col gap-3",
127
160
  v,
128
161
  a.tabs
129
162
  ),
130
163
  children: [
131
- /* @__PURE__ */ s(
164
+ /* @__PURE__ */ t(
132
165
  "div",
133
166
  {
134
- className: l(
167
+ className: n(
135
168
  "flex h-16 shrink-0 items-center",
136
169
  i ? "px-4" : "px-3"
137
170
  ),
138
- children: /* @__PURE__ */ s(
171
+ children: /* @__PURE__ */ t(
139
172
  "span",
140
173
  {
141
- id: A,
142
- className: l(
174
+ id: S,
175
+ className: n(
143
176
  "dial-h1-text text-primary",
144
- H,
177
+ T,
145
178
  a.tabsSectionLabel
146
179
  ),
147
180
  children: d
@@ -149,11 +182,11 @@ const z = {
149
182
  )
150
183
  }
151
184
  ),
152
- N
185
+ w
153
186
  ]
154
187
  }
155
- ) : N;
188
+ ) : w;
156
189
  };
157
190
  export {
158
- M as Tabs
191
+ P as Tabs
159
192
  };
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.16.0-dev.39",
3
- "generatedAt": "2026-10-23T16:09:19.048Z",
2
+ "version": "0.16.0-dev.41",
3
+ "generatedAt": "2026-10-24T18:43:00.141Z",
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",
@@ -3093,7 +3093,7 @@
3093
3093
  "name": "Tabs",
3094
3094
  "category": "Components_2_0",
3095
3095
  "generation": "2.0",
3096
- "description": "A row or rail of tabs, marking the active one and showing optional icons and count badges.\naliases: TabRow|TabNavigation|TabBar|VerticalTabs|SettingsNav|SideNav\nDesign system 2.0\n\nFollows the ARIA tabs pattern with automatic activation: only the active tab is\nin the tab order, and the arrow keys move both focus and selection. `Home` and\n`End` jump to the first and last tab, and the arrows wrap around the ends.\nTabs marked `disabled` are greyed out, cannot be clicked, and are skipped by\nkeyboard navigation.\n\n`TabOrientation.Horizontal` draws the default row: the active tab takes a\ngradient underline, and `ArrowLeft` / `ArrowRight` move along it.\n`TabOrientation.Vertical` draws the settings-page rail instead — full-width\nrows with the active one on a tinted pill rather than an underline, driven by\n`ArrowUp` / `ArrowDown`. The rail is the shape to reach for when the tabs\nlabel whole pages of a settings surface; the row, when they filter one.\n\n`className` lands on whichever element is outermost: the heading wrapper when\n`sectionLabel` is set, the `role=\"tablist\"` itself when it is not.\n\nThe component renders the tabs only; the panels stay with the consumer.",
3096
+ "description": "A row or rail of tabs, marking the active one and showing optional icons and count badges.\naliases: TabRow|TabNavigation|TabBar|VerticalTabs|SettingsNav|SideNav\nDesign system 2.0\n\nFollows the ARIA tabs pattern with automatic activation: only the active tab is\nin the tab order, and the arrow keys move both focus and selection. `Home` and\n`End` jump to the first and last tab, and the arrows wrap around the ends.\nTabs marked `disabled` are greyed out, cannot be clicked, and are skipped by\nkeyboard navigation.\n\n`TabOrientation.Horizontal` draws the default row: the active tab takes a\ngradient underline, and `ArrowLeft` / `ArrowRight` move along it.\n`TabOrientation.Vertical` draws the settings-page rail instead — full-width\nrows with the active one on a tinted pill rather than an underline, driven by\n`ArrowUp` / `ArrowDown`. The rail is the shape to reach for when the tabs\nlabel whole pages of a settings surface; the row, when they filter one.\n\nA tab with a `status` (`TabStatus.Error` or `TabStatus.Warning`) draws a\ncoloured icon after its label, and the status text joins the tab's accessible\nname so the state reaches assistive tech as well as sighted users.\n\n`className` lands on whichever element is outermost: the heading wrapper when\n`sectionLabel` is set, the `role=\"tablist\"` itself when it is not.\n\nThe component renders the tabs only; the panels stay with the consumer.",
3097
3097
  "props": [
3098
3098
  {
3099
3099
  "name": "tabs",
@@ -5283,6 +5283,80 @@
5283
5283
  ],
5284
5284
  "sourceFile": "components/New/StateScreen/StateScreen.tsx"
5285
5285
  },
5286
+ {
5287
+ "name": "FormSection",
5288
+ "category": "Components_2_0",
5289
+ "generation": "2.0",
5290
+ "description": "A titled section of a form or a builder column: a heading with an optional\naction at its end, an optional description and the section's content.\naliases: SectionRow|FieldSection|SettingsSection|FormGroup|SectionHeader\nDesign system 2.0\n\nThe root is a `section` named by its heading, so each section is a region a\nscreen reader can jump to. `headingLevel` picks the heading element so the\nsection fits the outline of the page it is mounted in; the variant only sets\nthe type scale. The action sits at the inline end of the heading row and\nnever shrinks; the content is rendered as given, with no field styling of its\nown. For a collapsible group, use `Accordion`; for a single labelled control,\nthe control's own `label`.",
5291
+ "props": [
5292
+ {
5293
+ "name": "title",
5294
+ "type": "ReactNode",
5295
+ "required": true,
5296
+ "description": "Heading of the section; also names the `section` landmark."
5297
+ },
5298
+ {
5299
+ "name": "action",
5300
+ "type": "ReactNode",
5301
+ "required": false,
5302
+ "description": "Control at the end of the heading row."
5303
+ },
5304
+ {
5305
+ "name": "description",
5306
+ "type": "ReactNode",
5307
+ "required": false,
5308
+ "description": "Optional line under the heading."
5309
+ },
5310
+ {
5311
+ "name": "variant",
5312
+ "type": "FormSectionVariant",
5313
+ "required": false,
5314
+ "defaultValue": "FormSectionVariant.Row",
5315
+ "description": "Type scale of the heading and description. Defaults to `FormSectionVariant.Row`."
5316
+ },
5317
+ {
5318
+ "name": "headingLevel",
5319
+ "type": "FormSectionHeadingLevel",
5320
+ "required": false,
5321
+ "defaultValue": "3",
5322
+ "description": "Level of the heading element. Defaults to `3`."
5323
+ },
5324
+ {
5325
+ "name": "children",
5326
+ "type": "ReactNode",
5327
+ "required": false,
5328
+ "description": "The section's fields or values."
5329
+ },
5330
+ {
5331
+ "name": "className",
5332
+ "type": "string",
5333
+ "required": false,
5334
+ "description": "Additional CSS classes for the container."
5335
+ },
5336
+ {
5337
+ "name": "titleClassName",
5338
+ "type": "string",
5339
+ "required": false,
5340
+ "description": "Additional CSS classes for the heading."
5341
+ },
5342
+ {
5343
+ "name": "descriptionClassName",
5344
+ "type": "string",
5345
+ "required": false,
5346
+ "description": "Additional CSS classes for the description."
5347
+ },
5348
+ {
5349
+ "name": "contentClassName",
5350
+ "type": "string",
5351
+ "required": false,
5352
+ "description": "Additional CSS classes for the content wrapper."
5353
+ }
5354
+ ],
5355
+ "examples": [
5356
+ "<FormSection\n title=\"Model\"\n variant={FormSectionVariant.Caption}\n action={<GhostButton label=\"Change\" onClick={openPicker} />}\n description=\"The model that answers in this application.\"\n>\n <SelectedEntityCard entityId={modelId} />\n</FormSection>"
5357
+ ],
5358
+ "sourceFile": "components/New/FormSection/FormSection.tsx"
5359
+ },
5286
5360
  {
5287
5361
  "name": "TransferQueue",
5288
5362
  "category": "Components_2_0",
@@ -10074,6 +10148,22 @@
10074
10148
  ],
10075
10149
  "sourceFile": "types/tab.ts"
10076
10150
  },
10151
+ {
10152
+ "name": "TabStatus",
10153
+ "kind": "enum",
10154
+ "members": [
10155
+ {
10156
+ "name": "Error",
10157
+ "value": "'error'"
10158
+ },
10159
+ {
10160
+ "name": "Warning",
10161
+ "value": "'warning'"
10162
+ }
10163
+ ],
10164
+ "sourceFile": "types/tab.ts",
10165
+ "description": "Validation state a tab can flag on itself, e.g. a form section with problems."
10166
+ },
10077
10167
  {
10078
10168
  "name": "TabView",
10079
10169
  "kind": "enum",
@@ -11250,6 +11340,14 @@
11250
11340
  {
11251
11341
  "name": "disabled?",
11252
11342
  "value": "boolean"
11343
+ },
11344
+ {
11345
+ "name": "status?",
11346
+ "value": "TabStatus"
11347
+ },
11348
+ {
11349
+ "name": "statusLabel?",
11350
+ "value": "string"
11253
11351
  }
11254
11352
  ],
11255
11353
  "sourceFile": "components/New/Tabs/Tabs.tsx",
@@ -11586,6 +11684,35 @@
11586
11684
  ],
11587
11685
  "sourceFile": "types/tooltip.ts"
11588
11686
  },
11687
+ {
11688
+ "name": "FormSectionHeadingLevel",
11689
+ "kind": "type",
11690
+ "sourceFile": "components/New/FormSection/FormSection.tsx",
11691
+ "typeBody": "2 | 3 | 4 | 5 | 6"
11692
+ },
11693
+ {
11694
+ "name": "FormSectionVariant",
11695
+ "kind": "enum",
11696
+ "members": [
11697
+ {
11698
+ "name": "Row",
11699
+ "value": "'row'",
11700
+ "comment": "A field of a form: small semibold heading, small description, an 8px header gap."
11701
+ },
11702
+ {
11703
+ "name": "Caption",
11704
+ "value": "'caption'",
11705
+ "comment": "A titled group of a builder column: caption-lead heading, tiny description."
11706
+ },
11707
+ {
11708
+ "name": "Setting",
11709
+ "value": "'setting'",
11710
+ "comment": "One setting inside a group: tiny semibold heading, tiny description."
11711
+ }
11712
+ ],
11713
+ "sourceFile": "types/form-section.ts",
11714
+ "description": "How a `FormSection` sets its heading, description and content."
11715
+ },
11589
11716
  {
11590
11717
  "name": "TransferQueueItem",
11591
11718
  "kind": "interface",
@@ -11934,7 +12061,7 @@
11934
12061
  {
11935
12062
  "name": "DIAL_KIT_CLASS",
11936
12063
  "sourceFile": "constants/public-class-names.ts",
11937
- "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 `section` root of a `StateScreen`. */\n stateScreen: 'dial-kit-state-screen',\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 /** The bordered card of a `SelectedEntityCard`, not the wrapper that also holds its error. */\n selectedEntityCard: 'dial-kit-selected-entity-card',\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"
12064
+ "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 `section` root of a `StateScreen`. */\n stateScreen: 'dial-kit-state-screen',\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 /** The bordered card of a `SelectedEntityCard`, not the wrapper that also holds its error. */\n selectedEntityCard: 'dial-kit-selected-entity-card',\n /** The `section` root of a `FormSection`: its heading row, description and content. */\n formSection: 'dial-kit-form-section',\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"
11938
12065
  }
11939
12066
  ]
11940
12067
  }
@@ -159,6 +159,8 @@ const i = {
159
159
  entityIdentity: "dial-kit-entity-identity",
160
160
  /** The bordered card of a `SelectedEntityCard`, not the wrapper that also holds its error. */
161
161
  selectedEntityCard: "dial-kit-selected-entity-card",
162
+ /** The `section` root of a `FormSection`: its heading row, description and content. */
163
+ formSection: "dial-kit-form-section",
162
164
  /* ── Controls ──────────────────────────────────────────────────────────── */
163
165
  /** The row of a `Switch`: the control and its label. */
164
166
  switch: "dial-kit-switch",