@epam/ai-dial-ui-kit 0.15.0-dev.9 → 0.15.0

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.
Files changed (250) hide show
  1. package/README.md +55 -2
  2. package/dist/CHANGELOG.md +84 -0
  3. package/dist/DateCellRenderer-BdUMSg-E.cjs +1 -0
  4. package/dist/{DateCellRenderer-Bu40QyHE.cjs → DateCellRenderer-CZNa4jVJ.cjs} +30 -30
  5. package/dist/IconButton-DHOFapLo.cjs +1 -0
  6. package/dist/{JsonEditor-qv1Z0dLX.cjs → JsonEditor-Bxui5wJH.cjs} +1 -1
  7. package/dist/{MarkdownEditor-DHn2pYOJ.cjs → MarkdownEditor-BKtFs714.cjs} +1 -1
  8. package/dist/MarkdownEditor-Bapd1ycU.cjs +1 -0
  9. package/dist/MarkdownEditorContainer-B5aHwoYF.cjs +1 -0
  10. package/dist/{Switch-CUKClcEz.cjs → Switch-DE6MrcqJ.cjs} +1 -1
  11. package/dist/components/Button/constants.js +9 -8
  12. package/dist/components/Dropdown/Dropdown.js +2 -2
  13. package/dist/components/Dropdown/DropdownSubMenuItem.js +1 -1
  14. package/dist/components/Dropdown/constants.js +7 -7
  15. package/dist/components/DropdownIcon/DropdownIcon.js +4 -4
  16. package/dist/components/FileManager/FileManager.js +373 -372
  17. package/dist/components/FileManager/FileManagerProvider.js +266 -264
  18. package/dist/components/FileManager/hooks/use-grid-context-menu.js +59 -59
  19. package/dist/components/MarkdownEditor/MarkdownEditor.js +23 -21
  20. package/dist/components/MarkdownEditor/MarkdownEditorContainer.js +27 -25
  21. package/dist/components/New/Accordion/Accordion.js +86 -72
  22. package/dist/components/New/AutocompleteTagInput/AutocompleteTagInput.js +214 -0
  23. package/dist/components/New/AutocompleteTagInput/utils.js +11 -0
  24. package/dist/components/New/Avatar/Avatar.js +70 -0
  25. package/dist/components/New/Badge/Badge.js +45 -0
  26. package/dist/components/New/BottomSheet/BottomSheet.js +128 -0
  27. package/dist/components/New/Breadcrumbs/Breadcrumbs.js +159 -0
  28. package/dist/components/New/Breadcrumbs/constants.js +41 -0
  29. package/dist/components/New/Button/Button.js +32 -32
  30. package/dist/components/New/Button/ButtonWrappers.js +103 -37
  31. package/dist/components/New/Button/constants.js +3 -0
  32. package/dist/components/New/Button/utils.js +18 -8
  33. package/dist/components/New/ButtonDropdown/ButtonDropdown.js +27 -18
  34. package/dist/components/New/Calendar/Calendar.js +6 -6
  35. package/dist/components/New/Calendar/constants.js +5 -5
  36. package/dist/components/New/CaptionText/CaptionText.js +3 -3
  37. package/dist/components/New/CardShell/CardShell.js +2 -2
  38. package/dist/components/New/Checkbox/Checkbox.js +2 -2
  39. package/dist/components/New/Checkbox/CheckboxBox.js +2 -2
  40. package/dist/components/New/CloseButton/CloseButton.js +1 -1
  41. package/dist/components/New/CollapsibleSidebar/CollapsibleSidebar.js +2 -2
  42. package/dist/components/New/ConfirmationPopup/ConfirmationPopup.js +21 -25
  43. package/dist/components/New/ConfirmationPopup/constants.js +8 -11
  44. package/dist/components/New/Dropdown/Dropdown.js +99 -98
  45. package/dist/components/New/Dropdown/DropdownSubMenuItem.js +17 -17
  46. package/dist/components/New/Dropdown/constants.js +22 -17
  47. package/dist/components/New/EllipsisTooltip/EllipsisTooltip.js +2 -2
  48. package/dist/components/New/EntityIdentity/EntityIdentity.js +135 -0
  49. package/dist/components/New/FileDropzone/FileDropzone.js +2 -2
  50. package/dist/components/New/FileIcon/FileIcon.js +55 -0
  51. package/dist/components/New/FileIcon/constants.js +134 -0
  52. package/dist/components/New/FileIcon/icons/FileGlyph.js +150 -0
  53. package/dist/components/New/FileIcon/icons/FolderGlyph.js +50 -0
  54. package/dist/components/New/FileName/FileName.js +78 -0
  55. package/dist/components/New/FilterChips/FilterChips.js +2 -2
  56. package/dist/components/New/FolderName/FolderName.js +16 -0
  57. package/dist/components/New/FolderPath/FolderPath.js +1 -1
  58. package/dist/components/New/Grid/constants.js +14 -5
  59. package/dist/components/New/Highlight/Highlight.js +2 -2
  60. package/dist/components/New/IconButton/IconButton.js +30 -28
  61. package/dist/components/New/InfoButton/InfoButton.js +2 -2
  62. package/dist/components/New/InlineSelect/InlineSelect.js +75 -59
  63. package/dist/components/New/InteractiveTooltip/InteractiveTooltip.js +70 -66
  64. package/dist/components/New/InteractiveTooltip/constants.js +2 -2
  65. package/dist/components/New/Label/Label.js +2 -2
  66. package/dist/components/New/MarkdownEditor/MarkdownEditor.js +29 -27
  67. package/dist/components/New/MenuItem/MenuItem.js +2 -2
  68. package/dist/components/New/MenuItem/constants.js +1 -1
  69. package/dist/components/New/NoDataContent/NoDataContent.js +2 -2
  70. package/dist/components/New/Notification/Notification.js +37 -35
  71. package/dist/components/New/NumberInput/NumberInput.js +2 -2
  72. package/dist/components/New/PasswordInput/PasswordInput.js +2 -2
  73. package/dist/components/New/Popup/Popup.js +59 -57
  74. package/dist/components/New/Popup/constants.js +3 -3
  75. package/dist/components/New/Radio/Radio.js +2 -2
  76. package/dist/components/New/RadioGroup/RadioGroup.js +2 -2
  77. package/dist/components/New/RadioGroupPopupField/RadioGroupPopupField.js +2 -2
  78. package/dist/components/New/ResizableContainer/ResizableContainer.js +2 -2
  79. package/dist/components/New/SchemaRenderer/SchemaRenderer.js +164 -0
  80. package/dist/components/New/SchemaRenderer/components/SchemaAnyOfEditor.js +65 -0
  81. package/dist/components/New/SchemaRenderer/components/SchemaArrayEditor.js +109 -0
  82. package/dist/components/New/SchemaRenderer/components/SchemaField.js +83 -0
  83. package/dist/components/New/SchemaRenderer/components/SchemaFieldContent.js +72 -0
  84. package/dist/components/New/SchemaRenderer/components/SchemaJsonEditor.js +41 -0
  85. package/dist/components/New/SchemaRenderer/components/SchemaKeyValueEditor.js +250 -0
  86. package/dist/components/New/SchemaRenderer/components/SchemaObjectEditor.js +36 -0
  87. package/dist/components/New/SchemaRenderer/components/SchemaOneOfEditor.js +163 -0
  88. package/dist/components/New/SchemaRenderer/components/SchemaPrimitiveField.js +150 -0
  89. package/dist/components/New/SchemaRenderer/components/SchemaSection.js +135 -0
  90. package/dist/components/New/SchemaRenderer/context.js +17 -0
  91. package/dist/components/New/Search/Search.js +2 -2
  92. package/dist/components/New/SegmentedControl/SegmentedControl.js +4 -4
  93. package/dist/components/New/Select/CollapsedSelectTags.js +127 -0
  94. package/dist/components/New/Select/MultiSelectTags.js +18 -15
  95. package/dist/components/New/Select/Select.js +184 -173
  96. package/dist/components/New/Select/constants.js +23 -20
  97. package/dist/components/New/SharedEntityIndicator/SharedEntityIndicator.js +34 -0
  98. package/dist/components/New/SideDrawer/SideDrawer.js +148 -0
  99. package/dist/components/New/Slider/Slider.js +184 -91
  100. package/dist/components/New/Slider/utils.js +20 -0
  101. package/dist/components/New/Switch/Switch.js +2 -2
  102. package/dist/components/New/Tabs/Tabs.js +124 -66
  103. package/dist/components/New/Tag/Tag.js +2 -2
  104. package/dist/components/New/TagInput/TagInput.js +5 -3
  105. package/dist/components/New/Textarea/Textarea.js +21 -20
  106. package/dist/components/New/ToggleIconButton/ToggleIconButton.js +2 -2
  107. package/dist/components/New/Tooltip/TooltipContent.js +2 -2
  108. package/dist/components/New/Tooltip/constants.js +1 -1
  109. package/dist/components/New/TransferQueue/TransferQueue.js +124 -0
  110. package/dist/components/New/TransferQueue/TransferQueueHeader.js +71 -0
  111. package/dist/components/New/TransferQueue/TransferQueueRow.js +119 -0
  112. package/dist/components/New/TransferQueue/constants.js +24 -0
  113. package/dist/components/New/constants/overlay.js +17 -9
  114. package/dist/components/Popup/constants.js +8 -8
  115. package/dist/components/ProgressBar/ProgressBar.js +6 -6
  116. package/dist/components/SchemaRenderer/SchemaRenderer.js +16 -15
  117. package/dist/components/SchemaRenderer/components/SchemaAnyOfEditor.js +2 -2
  118. package/dist/components/SchemaRenderer/components/SchemaArrayEditor.js +1 -1
  119. package/dist/components/SchemaRenderer/components/SchemaField.js +23 -23
  120. package/dist/components/SchemaRenderer/components/SchemaFieldContent.js +19 -19
  121. package/dist/components/SchemaRenderer/components/SchemaKeyValueEditor.js +2 -2
  122. package/dist/components/SchemaRenderer/components/SchemaObjectEditor.js +1 -1
  123. package/dist/components/SchemaRenderer/components/SchemaOneOfEditor.js +13 -13
  124. package/dist/components/SchemaRenderer/components/SchemaPrimitiveField.js +5 -5
  125. package/dist/components/Skeleton/Skeleton.js +2 -2
  126. package/dist/components/Spinner/Spinner.js +2 -2
  127. package/dist/components/Tooltip/TooltipContent.js +11 -11
  128. package/dist/components-manifest.json +1826 -109
  129. package/dist/constants/public-class-names.js +64 -3
  130. package/dist/{components/SchemaRenderer/types.js → constants/schema-renderer.js} +2 -7
  131. package/dist/dial-ui-kit.cjs +2 -2
  132. package/dist/dial-ui-kit.js +357 -311
  133. package/dist/editors.cjs +1 -1
  134. package/dist/file-manager.cjs +1 -1
  135. package/dist/grid.cjs +1 -1
  136. package/dist/index.css +2 -2
  137. package/dist/lazy-_W6FYhKg.cjs +1 -0
  138. package/dist/merge-classes-BEJXjzkx.cjs +1 -0
  139. package/dist/migration-guides/0.15.0/legacy-theme-variable-fallbacks-removal.md +69 -0
  140. package/dist/migration-guides/0.15.0/slider-redesign.md +110 -0
  141. package/dist/migration-guides/README.md +2 -0
  142. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +419 -399
  143. package/dist/src/components/FileManager/FileManager.d.ts +2 -0
  144. package/dist/src/components/FileManager/FileManagerContext.d.ts +1 -0
  145. package/dist/src/components/FileManager/hooks/use-grid-context-menu.d.ts +2 -1
  146. package/dist/src/components/MarkdownEditor/MarkdownEditor.d.ts +2 -0
  147. package/dist/src/components/MarkdownEditor/MarkdownEditorContainer.d.ts +2 -0
  148. package/dist/src/components/New/Accordion/Accordion.d.ts +6 -1
  149. package/dist/src/components/New/AutocompleteTagInput/AutocompleteTagInput.d.ts +108 -0
  150. package/dist/src/components/New/AutocompleteTagInput/utils.d.ts +17 -0
  151. package/dist/src/components/New/AutocompleteTagInput/utils.spec.d.ts +1 -0
  152. package/dist/src/components/New/Avatar/Avatar.d.ts +55 -0
  153. package/dist/src/components/New/Badge/Badge.d.ts +47 -0
  154. package/dist/src/components/New/BottomSheet/BottomSheet.d.ts +84 -0
  155. package/dist/src/components/New/Breadcrumbs/Breadcrumbs.d.ts +94 -0
  156. package/dist/src/components/New/Breadcrumbs/constants.d.ts +60 -0
  157. package/dist/src/components/New/Button/Button.d.ts +4 -1
  158. package/dist/src/components/New/Button/ButtonWrappers.d.ts +21 -0
  159. package/dist/src/components/New/Button/utils.d.ts +15 -0
  160. package/dist/src/components/New/ButtonDropdown/ButtonDropdown.d.ts +4 -0
  161. package/dist/src/components/New/Calendar/constants.d.ts +1 -1
  162. package/dist/src/components/New/ConfirmationPopup/constants.d.ts +0 -1
  163. package/dist/src/components/New/Dropdown/Dropdown.d.ts +9 -1
  164. package/dist/src/components/New/Dropdown/constants.d.ts +3 -0
  165. package/dist/src/components/New/EntityIdentity/EntityIdentity.d.ts +85 -0
  166. package/dist/src/components/New/FileIcon/FileIcon.d.ts +61 -0
  167. package/dist/src/components/New/FileIcon/constants.d.ts +16 -0
  168. package/dist/src/components/New/FileIcon/icons/FileGlyph.d.ts +18 -0
  169. package/dist/src/components/New/FileIcon/icons/FolderGlyph.d.ts +17 -0
  170. package/dist/src/components/New/FileName/FileName.d.ts +79 -0
  171. package/dist/src/components/New/FolderName/FolderName.d.ts +37 -0
  172. package/dist/src/components/New/Grid/constants.d.ts +6 -4
  173. package/dist/src/components/New/InlineSelect/InlineSelect.d.ts +16 -1
  174. package/dist/src/components/New/InteractiveTooltip/InteractiveTooltip.d.ts +13 -2
  175. package/dist/src/components/New/InteractiveTooltip/constants.d.ts +5 -4
  176. package/dist/src/components/New/MarkdownEditor/MarkdownEditor.d.ts +3 -0
  177. package/dist/src/components/New/Notification/Notification.d.ts +18 -0
  178. package/dist/src/components/New/Popup/Popup.d.ts +8 -1
  179. package/dist/src/components/New/Popup/constants.d.ts +1 -1
  180. package/dist/src/components/New/SchemaRenderer/SchemaRenderer.d.ts +38 -0
  181. package/dist/src/components/New/SchemaRenderer/components/SchemaAnyOfEditor.d.ts +37 -0
  182. package/dist/src/components/New/SchemaRenderer/components/SchemaArrayEditor.d.ts +35 -0
  183. package/dist/src/components/New/SchemaRenderer/components/SchemaField.d.ts +33 -0
  184. package/dist/src/components/New/SchemaRenderer/components/SchemaFieldContent.d.ts +30 -0
  185. package/dist/src/components/New/SchemaRenderer/components/SchemaJsonEditor.d.ts +29 -0
  186. package/dist/src/components/New/SchemaRenderer/components/SchemaKeyValueEditor.d.ts +37 -0
  187. package/dist/src/components/New/SchemaRenderer/components/SchemaObjectEditor.d.ts +32 -0
  188. package/dist/src/components/New/SchemaRenderer/components/SchemaOneOfEditor.d.ts +39 -0
  189. package/dist/src/components/New/SchemaRenderer/components/SchemaPrimitiveField.d.ts +38 -0
  190. package/dist/src/components/New/SchemaRenderer/components/SchemaSection.d.ts +39 -0
  191. package/dist/src/components/New/SchemaRenderer/context.d.ts +8 -0
  192. package/dist/src/components/New/SchemaRenderer/types.d.ts +76 -0
  193. package/dist/src/components/New/Select/CollapsedSelectTags.d.ts +22 -0
  194. package/dist/src/components/New/Select/MultiSelectTags.d.ts +5 -0
  195. package/dist/src/components/New/Select/Select.d.ts +9 -0
  196. package/dist/src/components/New/Select/constants.d.ts +3 -2
  197. package/dist/src/components/New/SharedEntityIndicator/SharedEntityIndicator.d.ts +35 -0
  198. package/dist/src/components/New/SideDrawer/SideDrawer.d.ts +100 -0
  199. package/dist/src/components/New/Slider/Slider.d.ts +29 -1
  200. package/dist/src/components/New/Slider/utils.d.ts +14 -0
  201. package/dist/src/components/New/Slider/utils.spec.d.ts +1 -0
  202. package/dist/src/components/New/Tabs/Tabs.d.ts +54 -6
  203. package/dist/src/components/New/Tooltip/constants.d.ts +5 -3
  204. package/dist/src/components/New/TransferQueue/TransferQueue.d.ts +139 -0
  205. package/dist/src/components/New/TransferQueue/TransferQueueHeader.d.ts +16 -0
  206. package/dist/src/components/New/TransferQueue/TransferQueueRow.d.ts +10 -0
  207. package/dist/src/components/New/TransferQueue/constants.d.ts +6 -0
  208. package/dist/src/components/New/constants/overlay.d.ts +13 -0
  209. package/dist/src/components/Popup/constants.d.ts +1 -1
  210. package/dist/src/components/SchemaRenderer/types.d.ts +5 -93
  211. package/dist/src/components/SchemaRenderer/utils.d.ts +1 -17
  212. package/dist/src/constants/public-class-names.d.ts +64 -3
  213. package/dist/src/constants/schema-renderer.d.ts +2 -0
  214. package/dist/src/index.d.ts +37 -3
  215. package/dist/src/models/json-schema.d.ts +71 -0
  216. package/dist/src/types/accordion.d.ts +7 -0
  217. package/dist/src/types/avatar.d.ts +7 -0
  218. package/dist/src/types/badge.d.ts +16 -0
  219. package/dist/src/types/breadcrumbs.d.ts +9 -0
  220. package/dist/src/types/button.d.ts +1 -0
  221. package/dist/src/types/entity-type.d.ts +9 -0
  222. package/dist/src/types/json-schema.d.ts +22 -0
  223. package/dist/src/types/tooltip.d.ts +4 -0
  224. package/dist/src/types/transfer-queue.d.ts +10 -0
  225. package/dist/src/utils/__tests__/avatar.spec.d.ts +1 -0
  226. package/dist/src/utils/avatar.d.ts +12 -0
  227. package/dist/src/utils/json-schema.d.ts +23 -0
  228. package/dist/src/utils/sub-menu-floating.d.ts +7 -4
  229. package/dist/types/accordion.js +4 -0
  230. package/dist/types/avatar.js +4 -0
  231. package/dist/types/badge.js +5 -0
  232. package/dist/types/breadcrumbs.js +4 -0
  233. package/dist/types/button.js +3 -3
  234. package/dist/types/entity-type.js +4 -0
  235. package/dist/types/json-schema.js +7 -0
  236. package/dist/types/tooltip.js +3 -2
  237. package/dist/types/transfer-queue.js +4 -0
  238. package/dist/use-file-manager-tabs-Bzzwwcgk.cjs +3 -0
  239. package/dist/utils/avatar.js +22 -0
  240. package/dist/{components/SchemaRenderer/utils.js → utils/json-schema.js} +22 -20
  241. package/dist/utils/merge-classes.js +12 -5
  242. package/dist/utils/sub-menu-floating.js +99 -54
  243. package/package.json +4 -9
  244. package/dist/DateCellRenderer-C3e61i75.cjs +0 -1
  245. package/dist/IconButton-DWqoaBWf.cjs +0 -1
  246. package/dist/MarkdownEditor-jQ8nDJfx.cjs +0 -1
  247. package/dist/MarkdownEditorContainer-Bzcnoemw.cjs +0 -1
  248. package/dist/lazy-tfN4sKhq.cjs +0 -1
  249. package/dist/merge-classes-Dipy1Ih1.cjs +0 -1
  250. package/dist/use-file-manager-tabs-9DWkp9IJ.cjs +0 -3
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.15.0-dev.9",
3
- "generatedAt": "2026-09-18T14:40:00.960Z",
2
+ "version": "0.15.0",
3
+ "generatedAt": "2026-10-08T15:16:08.527Z",
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 tailwind.config.js for full list */\n}\n```\n\n## Token Reference\n\n\n### backgroundsColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-sunken` | `var(--bg-layer-sunken)` | `#EEF1F7` |\n| `layer-base` | `var(--bg-layer-base)` | `#F5F7FA` |\n| `layer-raised` | `var(--bg-layer-raised)` | `#FCFCFC` |\n| `gradient-1` | `var(--bg-gradient-1)` | `#1D4ED8` |\n| `gradient-1-hover` | `var(--bg-gradient-1-hover)` | `#6785FB` |\n| `gradient-1-active` | `var(--bg-gradient-1-active)` | `#1D4ED8` |\n| `gradient-2` | `var(--bg-gradient-2)` | `#885DF2` |\n| `gradient-2-hover` | `var(--bg-gradient-2-hover)` | `#885DF2` |\n| `gradient-2-active` | `var(--bg-gradient-2-active)` | `#7C3AED` |\n| `control-accent-alpha` | `var(--bg-control-accent-alpha)` | `#2764D90F` |\n| `control-accent-alpha-hover` | `var(--bg-control-accent-alpha-hover)` | `#2764D924` |\n| `control-accent-alpha-active` | `var(--bg-control-accent-alpha-active)` | `#2764D933` |\n| `control-accent` | `var(--bg-control-accent)` | `#1D4ED8` |\n| `control-accent-hover` | `var(--bg-control-accent-hover)` | `#5976E9` |\n| `control-neutral` | `var(--bg-control-neutral)` | `#FCFCFC` |\n| `control-neutral-hover-strong` | `var(--bg-control-neutral-hover-strong)` | `#848E9C` |\n| `control-neutral-active` | `var(--bg-control-neutral-active)` | `#D1DBEA` |\n| `control-neutral-default` | `var(--bg-control-neutral-default)` | `#ACB3C3` |\n| `control-inverted` | `var(--bg-control-inverted)` | `#57647A` |\n| `control-error` | `var(--bg-control-error)` | `#AE2F2F` |\n| `control-error-hover` | `var(--bg-control-error-hover)` | `#BF3939` |\n| `control-error-active` | `var(--bg-control-error-active)` | `#CC4545` |\n| `control-error-alpha-hover` | `var(--bg-control-error-alpha-hover)` | `#F764641A` |\n| `control-error-alpha-active` | `var(--bg-control-error-alpha-active)` | `#F7646433` |\n| `control-disable-primary` | `var(--bg-control-disable-primary)` | `#DCE0E8` |\n| `control-disable-secondary` | `var(--bg-control-disable-secondary)` | `#ACB3C3` |\n| `green-1` | `var(--bg-visual-green-1)` | `#CDE8E5` |\n| `green-2` | `var(--bg-visual-green-2)` | `#D1F0DC` |\n| `violet-1` | `var(--bg-visual-violet-1)` | `#DDE3F9` |\n| `violet-2` | `var(--bg-visual-violet-2)` | `#F1E9FF` |\n\n### shadowColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `xs-1` | `var(--shadow-xs-1)` | `#2764D933` |\n| `xs-2` | `var(--shadow-xs-2)` | `#161B2D08` |\n\n### borderColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-alpha` | `var(--stroke-accent-alpha)` | `#2764D933` |\n| `gradient-1` | `var(--stroke-gradient-1)` | `#5976E9` |\n| `gradient-2` | `var(--stroke-gradient-2)` | `#885DF2` |\n| `accent-focus` | `var(--stroke-accent-focus)` | `#6785FB` |\n| `error-alpha` | `var(--stroke-error-alpha)` | `#AE2F2F73` |\n| `control-disable-primary` | `var(--stroke-control-disable-primary)` | `#848E9C` |\n\n### textColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `warning-icon` | `var(--text-warning-icon)` | `#EEC840` |\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| `violet-1` | `var(--text-visual-violet-1)` | `#7C3AED` |\n| `violet-2` | `var(--text-visual-violet-2)` | `#3730B7` |\n| `control-permanent` | `var(--text-control-permanent)` | `#FCFCFC` |\n| `control-inverted` | `var(--text-control-inverted)` | `#FCFCFC` |\n| `control-disable-primary` | `var(--text-control-disable-primary)` | `#848E9C` |\n| `control-disable-secondary` | `var(--text-control-disable-secondary)` | `#DCE0E8` |\n| `control-accent-hover` | `var(--text-control-accent-hover)` | `#5976E9` |\n| `control-accent-active` | `var(--text-control-accent-active)` | `#6785FB` |\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| `accent-primary-alpha` | `var(--bg-accent-primary-alpha)` | `#7DA4FF26` |\n| `accent-secondary-alpha` | `var(--bg-accent-secondary-alpha)` | `#37BABC2E` |\n| `accent-tertiary-alpha` | `var(--bg-accent-tertiary-alpha)` | `#A972FF2E` |\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-accent-primary` | `var(--controls-bg-accent-primary)` | `#124ACE` |\n| `controls-accent-primary-hover` | `var(--controls-bg-accent-primary-hover)` | `#2656D9` |\n| `controls-accent-primary-active` | `var(--controls-bg-accent-primary-active)` | `#3664E2` |\n| `controls-accent-primary-alpha-active` | `var(--controls-bg-accent-primary-alpha-active)` | `#7DA4FF5C` |\n| `controls-accent-secondary-alpha-active` | `var(--controls-bg-accent-secondary-alpha-active)` | `#37BABC5C` |\n| `controls-accent-tertiary-alpha-active` | `var(--controls-bg-accent-tertiary-alpha-active)` | `#A972FF5C` |\n| `controls-error` | `var(--controls-bg-error)` | `#AE2F2F` |\n| `controls-error-hover` | `var(--controls-bg-error-hover)` | `#BF3939` |\n| `controls-error-active` | `var(--controls-bg-error-active)` | `#CC4545` |\n| `controls-error-alpha-active` | `var(--controls-bg-error-alpha-active)` | `#F764645C` |\n| `controls-disable-accent` | `var(--controls-bg-disable-accent)` | `#7C8293` |\n| `controls-disable` | `var(--controls-bg-disable)` | `#D1DBEA` |\n| `controls-neutral-hover` | `var(--controls-bg-neutral-hover)` | `#D1DBEA` |\n| `controls-neutral-active` | `var(--controls-bg-neutral-active)` | `#9FA6BD` |\n| `controls-accent-success-alpha-hover` | `var(--controls-bg-accent-success-alpha-hover)` | `#37BABC2E` |\n| `controls-accent-success-alpha-active` | `var(--controls-bg-accent-success-alpha-active)` | `#37BABC5C` |\n| `controls-enable-primary` | `var(--controls-enable-primary)` | `#FCFCFC` |\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| `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-accent-disable` | `var(--controls-text-accent-disable)` | `#D1DBEA` |\n| `controls-primary-disable` | `var(--controls-text-primary-disable)` | `#696E7C` |\n| `controls-secondary-disable` | `var(--controls-text-secondary-disable)` | `#9FA6BD` |\n| `controls-neutral` | `var(--controls-text-neutral)` | `#161B2D` |\n| `controls-accent-primary-hover` | `var(--controls-text-accent-primary-hover)` | `#3664E2` |\n| `controls-accent-primary-active` | `var(--controls-text-accent-primary-active)` | `#7DA4FF` |",
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 tailwind.config.js 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-sunken` | `var(--bg-layer-sunken)` | `#EEF1F7` |\n| `layer-base` | `var(--bg-layer-base)` | `#F5F7FA` |\n| `layer-raised` | `var(--bg-layer-raised)` | `#FCFCFC` |\n| `gradient-1` | `var(--bg-gradient-1)` | `#1D4ED8` |\n| `gradient-1-hover` | `var(--bg-gradient-1-hover)` | `#6785FB` |\n| `gradient-1-active` | `var(--bg-gradient-1-active)` | `#1D4ED8` |\n| `gradient-2` | `var(--bg-gradient-2)` | `#885DF2` |\n| `gradient-2-hover` | `var(--bg-gradient-2-hover)` | `#885DF2` |\n| `gradient-2-active` | `var(--bg-gradient-2-active)` | `#7C3AED` |\n| `control-accent-alpha` | `var(--bg-control-accent-alpha)` | `#2764D90F` |\n| `control-accent-alpha-hover` | `var(--bg-control-accent-alpha-hover)` | `#2764D924` |\n| `control-accent-alpha-hover-subtle` | `var(--bg-control-accent-alpha-hover-subtle)` | `#2764D90A` |\n| `control-accent-alpha-active` | `var(--bg-control-accent-alpha-active)` | `#2764D933` |\n| `control-accent-alpha-active-subtle` | `var(--bg-control-accent-alpha-active-subtle)` | `#2764D914` |\n| `control-accent` | `var(--bg-control-accent)` | `#1D4ED8` |\n| `control-accent-muted` | `var(--bg-control-accent-muted)` | `#E1EAF9` |\n| `control-accent-hover` | `var(--bg-control-accent-hover)` | `#5976E9` |\n| `control-neutral` | `var(--bg-control-neutral)` | `#FCFCFC` |\n| `control-neutral-hover-strong` | `var(--bg-control-neutral-hover-strong)` | `#848E9C` |\n| `control-neutral-hover-muted` | `var(--bg-control-neutral-hover-muted)` | `#E0E6F0` |\n| `control-neutral-active` | `var(--bg-control-neutral-active)` | `#D1DBEA` |\n| `control-neutral-default` | `var(--bg-control-neutral-default)` | `#ACB3C3` |\n| `control-inverted` | `var(--bg-control-inverted)` | `#57647A` |\n| `control-error` | `var(--bg-control-error)` | `#AE2F2F` |\n| `control-error-hover` | `var(--bg-control-error-hover)` | `#BF3939` |\n| `control-error-active` | `var(--bg-control-error-active)` | `#CC4545` |\n| `control-error-alpha` | `var(--bg-control-error-alpha)` | `#F764641A` |\n| `control-error-alpha-hover` | `var(--bg-control-error-alpha-hover)` | `#F7646426` |\n| `control-error-alpha-active` | `var(--bg-control-error-alpha-active)` | `#F7646433` |\n| `control-disable-primary` | `var(--bg-control-disable-primary)` | `#DCE0E8` |\n| `control-disable-secondary` | `var(--bg-control-disable-secondary)` | `#ACB3C3` |\n| `green-1` | `var(--bg-visual-green-1)` | `#CDE8E5` |\n| `green-2` | `var(--bg-visual-green-2)` | `#D1F0DC` |\n| `violet-1` | `var(--bg-visual-violet-1)` | `#DDE3F9` |\n| `violet-2` | `var(--bg-visual-violet-2)` | `#F1E9FF` |\n\n### shadowColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `xs-1` | `var(--shadow-xs-1)` | `#2764D933` |\n| `xs-2` | `var(--shadow-xs-2)` | `#161B2D08` |\n\n### borderColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-alpha` | `var(--stroke-accent-alpha)` | `#2764D933` |\n| `gradient-1` | `var(--stroke-gradient-1)` | `#5976E9` |\n| `gradient-2` | `var(--stroke-gradient-2)` | `#885DF2` |\n| `accent-focus` | `var(--stroke-accent-focus)` | `#6785FB` |\n| `error-alpha` | `var(--stroke-error-alpha)` | `#AE2F2F73` |\n| `control-disable-primary` | `var(--stroke-control-disable-primary)` | `#848E9C` |\n\n### textColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `warning-icon` | `var(--text-warning-icon)` | `#EEC840` |\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| `violet-1` | `var(--text-visual-violet-1)` | `#7C3AED` |\n| `violet-2` | `var(--text-visual-violet-2)` | `#3730B7` |\n| `control-permanent` | `var(--text-control-permanent)` | `#FCFCFC` |\n| `control-inverted` | `var(--text-control-inverted)` | `#FCFCFC` |\n| `control-disable-primary` | `var(--text-control-disable-primary)` | `#848E9C` |\n| `control-disable-secondary` | `var(--text-control-disable-secondary)` | `#DCE0E8` |\n| `control-accent-hover` | `var(--text-control-accent-hover)` | `#5976E9` |\n| `control-accent-active` | `var(--text-control-accent-active)` | `#6785FB` |\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| `accent-primary-alpha` | `var(--bg-accent-primary-alpha)` | `#7DA4FF26` |\n| `accent-secondary-alpha` | `var(--bg-accent-secondary-alpha)` | `#37BABC2E` |\n| `accent-tertiary-alpha` | `var(--bg-accent-tertiary-alpha)` | `#A972FF2E` |\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-accent-primary` | `var(--controls-bg-accent-primary)` | `#124ACE` |\n| `controls-accent-primary-hover` | `var(--controls-bg-accent-primary-hover)` | `#2656D9` |\n| `controls-accent-primary-active` | `var(--controls-bg-accent-primary-active)` | `#3664E2` |\n| `controls-accent-primary-alpha-active` | `var(--controls-bg-accent-primary-alpha-active)` | `#7DA4FF5C` |\n| `controls-accent-secondary-alpha-active` | `var(--controls-bg-accent-secondary-alpha-active)` | `#37BABC5C` |\n| `controls-accent-tertiary-alpha-active` | `var(--controls-bg-accent-tertiary-alpha-active)` | `#A972FF5C` |\n| `controls-error` | `var(--controls-bg-error)` | `#AE2F2F` |\n| `controls-error-hover` | `var(--controls-bg-error-hover)` | `#BF3939` |\n| `controls-error-active` | `var(--controls-bg-error-active)` | `#CC4545` |\n| `controls-error-alpha-active` | `var(--controls-bg-error-alpha-active)` | `#F764645C` |\n| `controls-disable-accent` | `var(--controls-bg-disable-accent)` | `#7C8293` |\n| `controls-disable` | `var(--controls-bg-disable)` | `#D1DBEA` |\n| `controls-neutral-hover` | `var(--controls-bg-neutral-hover)` | `#D1DBEA` |\n| `controls-neutral-active` | `var(--controls-bg-neutral-active)` | `#9FA6BD` |\n| `controls-accent-success-alpha-hover` | `var(--controls-bg-accent-success-alpha-hover)` | `#37BABC2E` |\n| `controls-accent-success-alpha-active` | `var(--controls-bg-accent-success-alpha-active)` | `#37BABC5C` |\n| `controls-enable-primary` | `var(--controls-enable-primary)` | `#FCFCFC` |\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| `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-accent-disable` | `var(--controls-text-accent-disable)` | `#D1DBEA` |\n| `controls-primary-disable` | `var(--controls-text-primary-disable)` | `#696E7C` |\n| `controls-secondary-disable` | `var(--controls-text-secondary-disable)` | `#9FA6BD` |\n| `controls-neutral` | `var(--controls-text-neutral)` | `#161B2D` |\n| `controls-accent-primary-hover` | `var(--controls-text-accent-primary-hover)` | `#3664E2` |\n| `controls-accent-primary-active` | `var(--controls-text-accent-primary-active)` | `#7DA4FF` |",
21
21
  "components": [
22
22
  {
23
23
  "name": "Spinner",
@@ -180,6 +180,17 @@
180
180
  ],
181
181
  "sourceFile": "components/Skeleton/Skeleton.tsx"
182
182
  },
183
+ {
184
+ "name": "SchemaRenderer",
185
+ "category": "Name",
186
+ "generation": "2.0",
187
+ "description": "Renders a JSON Schema as a form, with collapsible sections, required-field\nvalidation and default values.\naliases: SchemaRenderer|JsonSchemaForm|SchemaForm\nDesign system 2.0\n\nBuilt only from 2.0 controls: `Input`, `NumberInput`, `PasswordInput`,\n`Select`, `Switch` and `RadioGroup`. A value the schema does not describe —\na key absent from `properties`, or an object with no fixed properties — is\nedited as raw JSON in a monospace `Textarea`.",
188
+ "props": [],
189
+ "examples": [
190
+ "<SchemaRenderer\n schema={mySchema}\n onChange={(v) => console.log(v)}\n onDefaultValues={(defaults) => console.log(defaults)}\n/>"
191
+ ],
192
+ "sourceFile": "components/New/SchemaRenderer/SchemaRenderer.tsx"
193
+ },
183
194
  {
184
195
  "name": "Notification",
185
196
  "category": "Components_2_0",
@@ -212,6 +223,12 @@
212
223
  "required": true,
213
224
  "description": "Message text to display inside the alert"
214
225
  },
226
+ {
227
+ "name": "action",
228
+ "type": "ReactNode",
229
+ "required": false,
230
+ "description": "Optional control (typically a small `Button`) rendered at the inline end, after the text and before the close button; the caller supplies its accessible name"
231
+ },
215
232
  {
216
233
  "name": "closable",
217
234
  "type": "boolean",
@@ -247,7 +264,7 @@
247
264
  }
248
265
  ],
249
266
  "examples": [
250
- "<Notification\n variant={NotificationVariant.Info}\n message=\"This is an info alert.\"\n/>\n\n<Notification\n variant={NotificationVariant.Success}\n title=\"Saved\"\n message=\"Changes saved successfully.\"\n/>\n\n<Notification\n variant={NotificationVariant.Error}\n closable\n message=\"Something went wrong.\"\n onClose={(e) => console.log('closed', e)}\n/>\n\n<Notification\n variant={NotificationVariant.Loading}\n title=\"Processing\"\n message=\"Please wait...\"\n/>\n\n<Notification\n variant={NotificationVariant.General}\n type={NotificationType.SectionMessage}\n title=\"Title\"\n message=\"Description text example\"\n/>"
267
+ "<Notification\n variant={NotificationVariant.Info}\n message=\"This is an info alert.\"\n/>\n\n<Notification\n variant={NotificationVariant.Success}\n title=\"Saved\"\n message=\"Changes saved successfully.\"\n/>\n\n<Notification\n variant={NotificationVariant.Error}\n closable\n message=\"Something went wrong.\"\n onClose={(e) => console.log('closed', e)}\n/>\n\n<Notification\n variant={NotificationVariant.Loading}\n title=\"Processing\"\n message=\"Please wait...\"\n/>\n\n<Notification\n variant={NotificationVariant.General}\n type={NotificationType.SectionMessage}\n title=\"Title\"\n message=\"Description text example\"\n/>\n\n<Notification\n variant={NotificationVariant.Error}\n type={NotificationType.SectionMessage}\n title=\"Couldn't finish this response\"\n message=\"Something went wrong. Try again in a moment.\"\n action={\n <Button\n variant={ButtonVariant.Neutral}\n appearance={ButtonAppearance.Outlined}\n size={ElementSize.Small}\n label=\"Try again\"\n onClick={handleRetry}\n />\n }\n/>"
251
268
  ],
252
269
  "sourceFile": "components/New/Notification/Notification.tsx"
253
270
  },
@@ -556,6 +573,71 @@
556
573
  ],
557
574
  "sourceFile": "components/New/FolderPath/FolderPath.tsx"
558
575
  },
576
+ {
577
+ "name": "Breadcrumbs",
578
+ "category": "Components_2_0",
579
+ "generation": "2.0",
580
+ "description": "A navigation trail: where the user is, and every level they can step back to.\naliases: Breadcrumb|NavigationPath|BreadcrumbTrail\nDesign system 2.0\n\nThe last item is the current page — drawn semibold and primary, and never a\ncontrol, since a link to the page you are already on does nothing. Every\nearlier item with an `href` or an `onClick` is a link; one with neither is\ndrawn as plain text, which is how a read-only location path is built.\n\nThe trail never wraps. Segments truncate instead, each revealing its full\nlabel in a tooltip only once it is actually clipped, and a trail longer than\n`maxVisibleItems` collapses its middle behind an ellipsis menu — the root and\nthe current page, the two segments that carry the most meaning, always stay\non screen.\n\na11y: an `<ol>` inside a named `<nav>`, with `aria-current=\"page\"` on the last\nsegment. Separators are decorative and hidden from assistive tech, so the\ntrail is announced as a list of links rather than a string of chevrons.\n\nThe trail is drawn at `dial-small-text` by default; `size` switches it to\n`dial-h2-text` for a trail that doubles as the page heading, where the\ntoken's own semibold weight applies to every segment.\n\nLabels are the caller's to translate; the two accessible names default to\nEnglish and take an override.",
581
+ "props": [
582
+ {
583
+ "name": "items",
584
+ "type": "BreadcrumbsItem[]",
585
+ "required": true,
586
+ "description": "The trail, outermost first; the last entry is the current page"
587
+ },
588
+ {
589
+ "name": "maxVisibleItems",
590
+ "type": "number",
591
+ "required": false,
592
+ "defaultValue": "DEFAULT_MAX_VISIBLE_ITEMS",
593
+ "description": "Segments drawn before the middle collapses behind an ellipsis menu"
594
+ },
595
+ {
596
+ "name": "size",
597
+ "type": "BreadcrumbsSize",
598
+ "required": false,
599
+ "defaultValue": "BreadcrumbsSize.Small",
600
+ "description": "The trail's type scale: `dial-small-text` or `dial-h2-text`"
601
+ },
602
+ {
603
+ "name": "separator",
604
+ "type": "ReactNode",
605
+ "required": false,
606
+ "defaultValue": "defaultSeparator",
607
+ "description": "Node drawn between two segments; defaults to a right chevron"
608
+ },
609
+ {
610
+ "name": "ariaLabel",
611
+ "type": "string",
612
+ "required": false,
613
+ "defaultValue": "'Breadcrumb'",
614
+ "description": "Accessible name for the `<nav>`"
615
+ },
616
+ {
617
+ "name": "overflowAriaLabel",
618
+ "type": "string",
619
+ "required": false,
620
+ "defaultValue": "'Show hidden path segments'",
621
+ "description": "Accessible name for the ellipsis button"
622
+ },
623
+ {
624
+ "name": "className",
625
+ "type": "string",
626
+ "required": false,
627
+ "description": "Additional CSS classes for the `<nav>`"
628
+ },
629
+ {
630
+ "name": "itemClassName",
631
+ "type": "string",
632
+ "required": false,
633
+ "description": "Additional CSS classes applied to every segment"
634
+ }
635
+ ],
636
+ "examples": [
637
+ "<Breadcrumbs\n ariaLabel={t('File path')}\n items={[\n { label: t('My files'), onClick: () => open('/') },\n { label: 'DK Test', onClick: () => open('/DK Test') },\n { label: 'DK Test with nested' },\n ]}\n/>"
638
+ ],
639
+ "sourceFile": "components/New/Breadcrumbs/Breadcrumbs.tsx"
640
+ },
559
641
  {
560
642
  "name": "DangerButton",
561
643
  "category": "Components_2_0",
@@ -623,6 +705,17 @@
623
705
  ],
624
706
  "sourceFile": "components/New/Button/ButtonWrappers.tsx"
625
707
  },
708
+ {
709
+ "name": "StarterButton",
710
+ "category": "Components_2_0",
711
+ "generation": "2.0",
712
+ "description": "A Starter Button component — a conversation starter: an outlined neutral\npill whose icons are stroked with the accent gradient\nDesign system 2.0\n\n`iconBefore` defaults to a sparkles icon; pass `null` for a label-only pill.\n\nAn SVG stroke cannot take a CSS gradient, so the button renders its own\n`linearGradient` with a per-instance id and hands it to its icons through\nthe `--dial-kit-starter-icon-stroke` custom property. Any icon that strokes\nwith `currentColor`, as Tabler icons do, picks it up.",
713
+ "props": [],
714
+ "examples": [
715
+ "<StarterButton\n label=\"Summarize this document\"\n onClick={handleClick}\n/>"
716
+ ],
717
+ "sourceFile": "components/New/Button/ButtonWrappers.tsx"
718
+ },
626
719
  {
627
720
  "name": "DangerIconButton",
628
721
  "category": "Components_2_0",
@@ -732,7 +825,7 @@
732
825
  "name": "tooltipProps",
733
826
  "type": "ButtonTooltipProps",
734
827
  "required": false,
735
- "description": "Props of the 2.0 wrapping the button"
828
+ "description": "Props of the 2.0 wrapping the button.\nA disabled button with a visible tooltip is marked `aria-disabled` rather\nthan natively `disabled`, so it stays focusable and hoverable and the\ntooltip can still explain why it is unavailable; its click does nothing."
736
829
  },
737
830
  {
738
831
  "name": "href",
@@ -839,6 +932,12 @@
839
932
  "type": "DropdownItem[]",
840
933
  "required": true,
841
934
  "description": "DropdownItems with actions"
935
+ },
936
+ {
937
+ "name": "dropdownProps",
938
+ "type": "Pick<DropdownProps, 'listClassName' | 'matchReferenceWidth'>",
939
+ "required": false,
940
+ "description": "`listClassName` and `matchReferenceWidth` forwarded to the menu `Dropdown`"
842
941
  }
843
942
  ],
844
943
  "examples": [
@@ -908,6 +1007,13 @@
908
1007
  "type": "string",
909
1008
  "required": false,
910
1009
  "description": "Accessible name for the underlying textarea"
1010
+ },
1011
+ {
1012
+ "name": "showDragbar",
1013
+ "type": "boolean",
1014
+ "required": false,
1015
+ "defaultValue": "true",
1016
+ "description": "Whether to show the bottom drag bar that resizes the editor height"
911
1017
  }
912
1018
  ],
913
1019
  "examples": [
@@ -974,10 +1080,35 @@
974
1080
  "type": "string",
975
1081
  "required": false
976
1082
  },
1083
+ {
1084
+ "name": "listStyle",
1085
+ "type": "CSSProperties",
1086
+ "required": false
1087
+ },
977
1088
  {
978
1089
  "name": "ariaLabel",
979
1090
  "type": "string",
980
1091
  "required": false
1092
+ },
1093
+ {
1094
+ "name": "triggerClassName",
1095
+ "type": "string",
1096
+ "required": false
1097
+ },
1098
+ {
1099
+ "name": "triggerLabelClassName",
1100
+ "type": "string",
1101
+ "required": false
1102
+ },
1103
+ {
1104
+ "name": "open",
1105
+ "type": "boolean",
1106
+ "required": false
1107
+ },
1108
+ {
1109
+ "name": "onOpenChange",
1110
+ "type": "(open: boolean) => void",
1111
+ "required": false
981
1112
  }
982
1113
  ],
983
1114
  "examples": [
@@ -1006,6 +1137,11 @@
1006
1137
  "type": "boolean",
1007
1138
  "required": false,
1008
1139
  "defaultValue": "false"
1140
+ },
1141
+ {
1142
+ "name": "labelClassName",
1143
+ "type": "string",
1144
+ "required": false
1009
1145
  }
1010
1146
  ],
1011
1147
  "examples": [],
@@ -1132,6 +1268,13 @@
1132
1268
  "defaultValue": "'Select all'",
1133
1269
  "description": "Label for the \"Select All\" checkbox."
1134
1270
  },
1271
+ {
1272
+ "name": "collapseTagOverflow",
1273
+ "type": "boolean",
1274
+ "required": false,
1275
+ "defaultValue": "false",
1276
+ "description": "Keep a multi-select's tags on one row, folding those that do not fit into a `+N` counter by the width available; the hover panel lists them and removes them."
1277
+ },
1135
1278
  {
1136
1279
  "name": "selectedOptionMark",
1137
1280
  "type": "| MenuItemMark.Tint\n | MenuItemMark.Check\n | MenuItemMark.Highlight",
@@ -1285,6 +1428,12 @@
1285
1428
  "type": "(\n event: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>,\n val: string,\n ) => void",
1286
1429
  "required": false,
1287
1430
  "description": "Called with the value whose tag was removed; when omitted the tags are not removable"
1431
+ },
1432
+ {
1433
+ "name": "tagClassName",
1434
+ "type": "string",
1435
+ "required": false,
1436
+ "description": "Additional classes for every tag"
1288
1437
  }
1289
1438
  ],
1290
1439
  "examples": [],
@@ -1619,6 +1768,12 @@
1619
1768
  "required": false,
1620
1769
  "description": "Additional CSS classes applied to the overlay"
1621
1770
  },
1771
+ {
1772
+ "name": "overlayStyle",
1773
+ "type": "CSSProperties",
1774
+ "required": false,
1775
+ "description": "Inline styles merged over Floating UI's own overlay styles (`position`, `inset`, `overflow: auto`)"
1776
+ },
1622
1777
  {
1623
1778
  "name": "titleClassName",
1624
1779
  "type": "string",
@@ -2005,6 +2160,12 @@
2005
2160
  "required": false,
2006
2161
  "description": "Additional CSS classes applied to the floating overlay"
2007
2162
  },
2163
+ {
2164
+ "name": "listStyle",
2165
+ "type": "CSSProperties",
2166
+ "required": false,
2167
+ "description": "Inline style applied to the floating overlay, under the dropdown's own positioning styles"
2168
+ },
2008
2169
  {
2009
2170
  "name": "outsidePressIgnoreRef",
2010
2171
  "type": "RefObject<HTMLElement | null>",
@@ -2199,7 +2360,7 @@
2199
2360
  "name": "Accordion",
2200
2361
  "category": "Components_2_0",
2201
2362
  "generation": "2.0",
2202
- "description": "A collapsible panel that toggles its content when the header is clicked.\naliases: Collapse|Disclosure|ExpandablePanel\nDesign system 2.0\n\nWorks as a controlled component when `expanded` is provided, otherwise it manages\nits own state from `defaultExpanded`. The header shows a caret that rotates when\nexpanded, a title, and an optional description stacked beneath it.\n\nThe revealed content is a labelled `region`, so assistive tech announces it by the\nheader it belongs to. `nonCollapsible` renders the header as static text instead of\na permanently disabled button, which keeps a decorative panel out of the tab order.",
2363
+ "description": "A collapsible panel that toggles its content when the header is clicked.\naliases: Collapse|Disclosure|ExpandablePanel\nDesign system 2.0\n\nWorks as a controlled component when `expanded` is provided, otherwise it manages\nits own state from `defaultExpanded`. The header shows a caret that rotates when\nexpanded, a title, and an optional description stacked beneath it.\n\nThe revealed content is a labelled `region`, so assistive tech announces it by the\nheader it belongs to. It stays mounted while collapsed so it can slide open and shut,\nand is `inert` then, out of both the tab order and the accessibility tree. `nonCollapsible` renders the header as static text instead of\na permanently disabled button, which keeps a decorative panel out of the tab order.",
2203
2364
  "props": [
2204
2365
  {
2205
2366
  "name": "title",
@@ -2256,6 +2417,13 @@
2256
2417
  "required": false,
2257
2418
  "description": "Fired when the header is clicked. Receives the next expanded state."
2258
2419
  },
2420
+ {
2421
+ "name": "caretPosition",
2422
+ "type": "AccordionCaretPosition",
2423
+ "required": false,
2424
+ "defaultValue": "AccordionCaretPosition.End",
2425
+ "description": "Where the header draws its caret: before or after the title."
2426
+ },
2259
2427
  {
2260
2428
  "name": "className",
2261
2429
  "type": "string",
@@ -2854,7 +3022,7 @@
2854
3022
  "name": "Tabs",
2855
3023
  "category": "Components_2_0",
2856
3024
  "generation": "2.0",
2857
- "description": "A horizontal row of tabs, underlining the active one and showing optional count badges.\naliases: TabRow|TabNavigation|TabBar\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\nThe component renders the tabs only; the panels stay with the consumer.",
3025
+ "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.",
2858
3026
  "props": [
2859
3027
  {
2860
3028
  "name": "tabs",
@@ -2874,6 +3042,19 @@
2874
3042
  "required": true,
2875
3043
  "description": "Fired with the tab's `id` when the user selects a tab."
2876
3044
  },
3045
+ {
3046
+ "name": "orientation",
3047
+ "type": "TabOrientation",
3048
+ "required": false,
3049
+ "defaultValue": "TabOrientation.Horizontal",
3050
+ "description": "Layout direction of the tab list."
3051
+ },
3052
+ {
3053
+ "name": "sectionLabel",
3054
+ "type": "string",
3055
+ "required": false,
3056
+ "description": "Heading rendered above the tabs, which also names the tab list."
3057
+ },
2877
3058
  {
2878
3059
  "name": "ariaLabel",
2879
3060
  "type": "string",
@@ -2884,17 +3065,30 @@
2884
3065
  "name": "className",
2885
3066
  "type": "string",
2886
3067
  "required": false,
2887
- "description": "Additional CSS classes for the tab list container."
3068
+ "description": "Additional CSS classes for the root element."
3069
+ },
3070
+ {
3071
+ "name": "tabListClassName",
3072
+ "type": "string",
3073
+ "required": false,
3074
+ "description": "Additional CSS classes for the `role=\"tablist\"`."
2888
3075
  },
2889
3076
  {
2890
3077
  "name": "tabClassName",
2891
3078
  "type": "string",
2892
3079
  "required": false,
2893
3080
  "description": "Additional CSS classes applied to every tab."
3081
+ },
3082
+ {
3083
+ "name": "sectionLabelClassName",
3084
+ "type": "string",
3085
+ "required": false,
3086
+ "description": "Additional CSS classes for the `sectionLabel` heading."
2894
3087
  }
2895
3088
  ],
2896
3089
  "examples": [
2897
- "<Tabs\n ariaLabel=\"Conversation views\"\n tabs={[\n { id: 'all', label: 'All', count: 12 },\n { id: 'shared', label: 'Shared with me' },\n ]}\n activeTabId={activeTabId}\n onTabChange={setActiveTabId}\n/>"
3090
+ "<Tabs\n ariaLabel=\"Conversation views\"\n tabs={[\n { id: 'all', label: 'All', count: 12 },\n { id: 'shared', label: 'Shared with me' },\n ]}\n activeTabId={activeTabId}\n onTabChange={setActiveTabId}\n/>",
3091
+ "<Tabs\norientation={TabOrientation.Vertical}\nsectionLabel={t('Settings')}\nclassName=\"w-[240px] shrink-0 border-e border-e-tertiary\"\ntabs={[\n{ id: 'preferences', label: t('Preferences'), icon: <IconSettings size={18} /> },\n{ id: 'usage', label: t('Usage'), icon: <IconChartBar size={18} /> },\n]}\nactiveTabId={activeTabId}\nonTabChange={setActiveTabId}\n/>"
2898
3092
  ],
2899
3093
  "sourceFile": "components/New/Tabs/Tabs.tsx"
2900
3094
  },
@@ -3050,156 +3244,1024 @@
3050
3244
  "sourceFile": "components/New/FileDropzone/FileDropzone.tsx"
3051
3245
  },
3052
3246
  {
3053
- "name": "Tag",
3247
+ "name": "FileIcon",
3054
3248
  "category": "Components_2_0",
3055
3249
  "generation": "2.0",
3056
- "description": "A compact label element used for selections, filters, or categories.\naliases: Chip|Pill\nDesign system 2.0\n\nThe tag has one height — the 32px pill of the 2.0 design. There is no `size`\nprop: a tag sizes itself, and a caller that needs a different height is\nusually reaching for a button.\n\nThe label truncates rather than wrapping, and carries a native `title` so the\nfull text stays reachable when it does.\n\nA tag with `onClick` becomes a `role=\"button\"` operable with Enter and Space.\nIts remove control is a real nested `<button>`, so keep the two roles apart in\nthe caller: a clickable tag that is also closable gives a screen reader two\nactions with no way to tell which one it landed on.\n\nNo tag draws a rim; the two appearances are told apart by their fill.\n`TagAppearance.Selectable` is the filter chip of the 2.0 design: no fill\nat all until it is selected, one hover tint shared by both states, a semibold\nlabel once selected, and the state carried on `aria-pressed` rather than by\nthe tint alone. Give it an `onClick` — a selectable tag that cannot be\nactivated is a colour and nothing else.\n\nSelecting one therefore changes its width by the difference between the\nregular and semibold label. In a wrapping filter row that is what the design\nasks for; if a fixed width matters, give the chip one.",
3250
+ "description": "The icon of a file or folder row in a file manager: a file-type glyph picked\nby extension, or a folder, with an optional shared badge and loading state.\naliases: FileTypeIcon|EntityIcon\nDesign system 2.0\n\nThe root is a `role=\"img\"` whose name says what the item is, and that it is\nshared — the badge itself is drawn inside the image, so its tooltip is a\npointer-only hint and never the only place the state is conveyed. While\n`loading`, the root drops the role and holds a `Spinner`, which announces\nitself as a status. Pass `decorative` when the row already names the item.",
3057
3251
  "props": [
3058
3252
  {
3059
- "name": "label",
3060
- "type": "string",
3253
+ "name": "type",
3254
+ "type": "DialItemType",
3061
3255
  "required": true,
3062
- "description": "Text content displayed inside the tag."
3256
+ "description": "Whether the item is a file or a folder"
3063
3257
  },
3064
3258
  {
3065
- "name": "icon",
3066
- "type": "ReactNode",
3067
- "required": false,
3068
- "description": "Icon rendered before the label."
3259
+ "name": "name",
3260
+ "type": "string",
3261
+ "required": true,
3262
+ "description": "Item name; a file's extension is read from it"
3069
3263
  },
3070
3264
  {
3071
- "name": "appearance",
3072
- "type": "TagAppearance",
3265
+ "name": "fileExtension",
3266
+ "type": "string",
3073
3267
  "required": false,
3074
- "defaultValue": "TagAppearance.Outlined",
3075
- "description": "`outlined` is the filled chip on the raised\nlayer; `selectable` is the unfilled filter chip that tints and turns semibold when selected."
3268
+ "description": "Extension overriding the one in `name`"
3076
3269
  },
3077
3270
  {
3078
- "name": "selected",
3271
+ "name": "shared",
3079
3272
  "type": "boolean",
3080
3273
  "required": false,
3081
3274
  "defaultValue": "false",
3082
- "description": "Applies the accent-tinted selected styling."
3275
+ "description": "Draws the shared badge"
3083
3276
  },
3084
3277
  {
3085
- "name": "disabled",
3278
+ "name": "loading",
3086
3279
  "type": "boolean",
3087
3280
  "required": false,
3088
3281
  "defaultValue": "false",
3089
- "description": "Stops the tag responding: no click handling, no remove control. The design defines no disabled tag, so the colours stay put."
3282
+ "description": "Replaces the glyph with a spinner"
3090
3283
  },
3091
3284
  {
3092
- "name": "closable",
3285
+ "name": "size",
3286
+ "type": "number",
3287
+ "required": false,
3288
+ "defaultValue": "DIAL_ICON_SIZE.MD",
3289
+ "description": "Glyph size in px"
3290
+ },
3291
+ {
3292
+ "name": "className",
3293
+ "type": "string",
3294
+ "required": false,
3295
+ "description": "Additional CSS classes for the root element"
3296
+ },
3297
+ {
3298
+ "name": "decorative",
3093
3299
  "type": "boolean",
3094
3300
  "required": false,
3095
3301
  "defaultValue": "false",
3096
- "description": "Renders the remove button. Needs `onRemove` to appear."
3302
+ "description": "Hides the icon from assistive technology"
3097
3303
  },
3098
3304
  {
3099
- "name": "removeLabel",
3305
+ "name": "label",
3100
3306
  "type": "string",
3101
3307
  "required": false,
3102
- "description": "Accessible name of the remove button; defaults to `Remove <label>`."
3308
+ "description": "Accessible name, overriding the generated one"
3103
3309
  },
3104
3310
  {
3105
- "name": "onRemove",
3106
- "type": "(event: MouseEvent<HTMLButtonElement>) => void",
3311
+ "name": "loadingLabel",
3312
+ "type": "string",
3107
3313
  "required": false,
3108
- "description": "Called when the remove button is clicked. The click does not bubble to `onClick`."
3314
+ "defaultValue": "'Loading'",
3315
+ "description": "Accessible name of the spinner"
3316
+ },
3317
+ {
3318
+ "name": "sharedIndicatorClassName",
3319
+ "type": "string",
3320
+ "required": false,
3321
+ "description": "Additional CSS classes for the shared badge"
3322
+ },
3323
+ {
3324
+ "name": "sharedIndicatorTooltip",
3325
+ "type": "ReactNode",
3326
+ "required": false,
3327
+ "description": "Tooltip shown over the shared badge"
3109
3328
  }
3110
3329
  ],
3111
3330
  "examples": [
3112
- "<Tag label=\"TypeScript\" />\n<Tag label=\"TypeScript\" closable onRemove={() => remove('TypeScript')} />\n<Tag label=\"Drafts\" selected onClick={() => toggle('Drafts')} />\n<Tag\n label=\"Drafts\"\n appearance={TagAppearance.Selectable}\n selected={isSelected}\n onClick={() => toggle('Drafts')}\n/>"
3331
+ "<FileIcon name=\"report.pdf\" type={DialItemType.File} shared />\n<FileIcon name=\"Projects\" type={DialItemType.Folder} loading />"
3113
3332
  ],
3114
- "sourceFile": "components/New/Tag/Tag.tsx"
3333
+ "sourceFile": "components/New/FileIcon/FileIcon.tsx"
3115
3334
  },
3116
3335
  {
3117
- "name": "TagInput",
3336
+ "name": "FileName",
3118
3337
  "category": "Components_2_0",
3119
3338
  "generation": "2.0",
3120
- "description": "A tag input field: type a value and commit it with Enter or comma.\naliases: MultiTag|TagField|ChipInput\nDesign system 2.0\n\nThe field is an , so it carries the 2.0 field styling, sizes,\nlabel, caption and error states, and the tags render as s in its\ncontent slot. The field grows as tags wrap, unless `collapseTagOverflow` keeps\nthem on one line behind a `+N` chip.\n\nWorks controlled (`value` + `onChange`) or uncontrolled (`defaultValue`).\nDuplicate tags are ignored. Backspace on an empty input removes the last tag.",
3339
+ "description": "A file or folder name with its type icon, truncated with a tooltip when it\ndoes not fit.\naliases: FileDisplay|NameDisplay\nDesign system 2.0\n\nThe visible name already says what the item is, so the icon is decorative;\nthe shared state, which only the badge shows, is announced by a\nvisually-hidden `sharedLabel` after the name instead.\n\nWhile `loading` the icon is swapped for a `Spinner`, which is left in the\naccessibility tree so the busy state is announced.\n\nWith `details` the text switches to two lines — the name, then the metadata.",
3121
3340
  "props": [
3122
3341
  {
3123
- "name": "id",
3342
+ "name": "name",
3124
3343
  "type": "string",
3125
- "required": false,
3126
- "description": "The id of the text input, linked to the label."
3344
+ "required": true,
3345
+ "description": "Full item name, with or without an extension"
3127
3346
  },
3128
3347
  {
3129
- "name": "value",
3130
- "type": "string[]",
3348
+ "name": "type",
3349
+ "type": "DialItemType",
3131
3350
  "required": false,
3132
- "description": "Controlled tag list."
3351
+ "defaultValue": "DialItemType.File",
3352
+ "description": "Whether the item is a file or a folder"
3133
3353
  },
3134
3354
  {
3135
- "name": "defaultValue",
3136
- "type": "string[]",
3355
+ "name": "fileExtension",
3356
+ "type": "string",
3137
3357
  "required": false,
3138
- "description": "Initial tag list when uncontrolled."
3358
+ "description": "Extension overriding the one in `name`"
3139
3359
  },
3140
3360
  {
3141
- "name": "size",
3142
- "type": "ElementSize",
3361
+ "name": "shared",
3362
+ "type": "boolean",
3143
3363
  "required": false,
3144
- "defaultValue": "ElementSize.Standard",
3145
- "description": "Field height: standard is 40px, small is 24px."
3364
+ "defaultValue": "false",
3365
+ "description": "Draws the shared badge on the icon"
3146
3366
  },
3147
3367
  {
3148
- "name": "labelProps",
3149
- "type": "LabelProps",
3368
+ "name": "loading",
3369
+ "type": "boolean",
3150
3370
  "required": false,
3151
- "description": "Props of the rendered above the field."
3371
+ "defaultValue": "false",
3372
+ "description": "Replaces the icon with a spinner"
3152
3373
  },
3153
3374
  {
3154
- "name": "placeholder",
3375
+ "name": "loadingLabel",
3155
3376
  "type": "string",
3156
3377
  "required": false,
3157
- "description": "Placeholder shown while there are no tags."
3378
+ "description": "Accessible name of the spinner"
3158
3379
  },
3159
3380
  {
3160
- "name": "caption",
3161
- "type": "string",
3381
+ "name": "iconSize",
3382
+ "type": "number",
3162
3383
  "required": false,
3163
- "description": "Helper text rendered below the field when there is no `error`."
3384
+ "description": "Icon size in px"
3164
3385
  },
3165
3386
  {
3166
- "name": "error",
3167
- "type": "string",
3387
+ "name": "details",
3388
+ "type": "ReactNode",
3168
3389
  "required": false,
3169
- "description": "Error message rendered below the field (pass `invalid` too for error styling)."
3390
+ "description": "Metadata under the name"
3170
3391
  },
3171
3392
  {
3172
- "name": "invalid",
3393
+ "name": "isInvalidName",
3173
3394
  "type": "boolean",
3174
3395
  "required": false,
3175
- "description": "Applies the field's error styling."
3396
+ "defaultValue": "false",
3397
+ "description": "Mutes the name, marking it as invalid"
3176
3398
  },
3177
3399
  {
3178
- "name": "disabled",
3179
- "type": "boolean",
3400
+ "name": "className",
3401
+ "type": "string",
3180
3402
  "required": false,
3181
- "defaultValue": "false",
3182
- "description": "Disables typing and tag removal."
3403
+ "description": "Additional CSS classes for the root element"
3183
3404
  },
3184
3405
  {
3185
- "name": "readOnly",
3186
- "type": "boolean",
3406
+ "name": "nameClassName",
3407
+ "type": "string",
3187
3408
  "required": false,
3188
- "defaultValue": "false",
3189
- "description": "Shows the tags without allowing new ones or removal."
3409
+ "description": "Additional CSS classes for the name text"
3410
+ },
3411
+ {
3412
+ "name": "sharedIndicatorClassName",
3413
+ "type": "string",
3414
+ "required": false,
3415
+ "description": "Additional CSS classes for the shared badge"
3416
+ },
3417
+ {
3418
+ "name": "sharedIndicatorTooltip",
3419
+ "type": "ReactNode",
3420
+ "required": false,
3421
+ "description": "Tooltip shown over the shared badge"
3422
+ },
3423
+ {
3424
+ "name": "sharedLabel",
3425
+ "type": "string",
3426
+ "required": false,
3427
+ "defaultValue": "'Shared'",
3428
+ "description": "Screen-reader text announcing the shared state"
3429
+ },
3430
+ {
3431
+ "name": "hideTooltip",
3432
+ "type": "boolean",
3433
+ "required": false,
3434
+ "defaultValue": "false",
3435
+ "description": "Suppresses the full-name tooltip"
3436
+ },
3437
+ {
3438
+ "name": "tooltipContent",
3439
+ "type": "ReactNode",
3440
+ "required": false,
3441
+ "description": "Shown instead of the full name while truncated"
3442
+ }
3443
+ ],
3444
+ "examples": [
3445
+ "<FileName name=\"Document.pdf\" shared />\n<FileName\n name=\"Document.pdf\"\n details={<span className=\"dial-tiny-text text-secondary\">24 KB · Jul 20</span>}\n/>"
3446
+ ],
3447
+ "sourceFile": "components/New/FileName/FileName.tsx"
3448
+ },
3449
+ {
3450
+ "name": "FolderName",
3451
+ "category": "Components_2_0",
3452
+ "generation": "2.0",
3453
+ "description": "A folder name with the folder icon, truncated with a tooltip when it does\nnot fit.\naliases: FolderDisplay|DirectoryName\nDesign system 2.0\n\nA `FileName` fixed to `DialItemType.Folder`, so it shares every behaviour of\nit — decorative icon, visually-hidden shared label, `details` line and the\n`loading` spinner. Its root carries `dial-kit-folder-name` on top of\n`dial-kit-file-name`.",
3454
+ "props": [],
3455
+ "examples": [
3456
+ "<FolderName name=\"Organization\" shared />\n<FolderName name=\"Uploads\" loading />"
3457
+ ],
3458
+ "sourceFile": "components/New/FolderName/FolderName.tsx"
3459
+ },
3460
+ {
3461
+ "name": "SharedEntityIndicator",
3462
+ "category": "Components_2_0",
3463
+ "generation": "2.0",
3464
+ "description": "A small arrow badge marking an entity as shared.\naliases: SharedIcon|AccessIndicator\nDesign system 2.0\n\nA `role=\"img\"` named by `label`, so it can stand on its own. Placed inside a\nlarger `role=\"img\"` — as `FileIcon` does — its name is folded into the\nparent's, which is why `FileIcon` names the shared state itself. The tooltip\nis a pointer-only hint: the badge is not focusable, and the tooltip never\nreaches assistive technology, so `label` is what carries the meaning.",
3465
+ "props": [
3466
+ {
3467
+ "name": "label",
3468
+ "type": "string",
3469
+ "required": false,
3470
+ "defaultValue": "'Shared'",
3471
+ "description": "Accessible name of the badge"
3472
+ },
3473
+ {
3474
+ "name": "tooltip",
3475
+ "type": "ReactNode",
3476
+ "required": false,
3477
+ "description": "Tooltip shown while the badge is hovered"
3478
+ },
3479
+ {
3480
+ "name": "size",
3481
+ "type": "number",
3482
+ "required": false,
3483
+ "defaultValue": "12",
3484
+ "description": "Arrow size in px"
3485
+ },
3486
+ {
3487
+ "name": "className",
3488
+ "type": "string",
3489
+ "required": false,
3490
+ "description": "Additional CSS classes for the badge"
3491
+ }
3492
+ ],
3493
+ "examples": [
3494
+ "<SharedEntityIndicator />\n<SharedEntityIndicator tooltip=\"Shared with 3 people\" className=\"absolute -bottom-0.5 -left-0.5\" />"
3495
+ ],
3496
+ "sourceFile": "components/New/SharedEntityIndicator/SharedEntityIndicator.tsx"
3497
+ },
3498
+ {
3499
+ "name": "BottomSheet",
3500
+ "category": "Components_2_0",
3501
+ "generation": "2.0",
3502
+ "description": "A panel that slides up from the bottom edge over a dimmed page — the mobile\ncounterpart of `Popup`.\naliases: ActionSheet|Drawer|MobileSheet|BottomDrawer\nDesign system 2.0\n\nIt is a modal dialog: focus moves into it on open and stays there, returns\nto where it came from on close, and the page behind it does not scroll.\nEscape, the close button and a press on the backdrop all call `onClose`;\nthe sheet itself stays controlled by `open`.\n\nWith a `title` the header shows it centred, a close button at the end and,\nwhen `onBack` is set, a back button at the start for a sheet that drills\ninto pages of its own; the title also names the dialog. Without one there is\nno header, and `ariaLabel` names the sheet instead. The body scrolls once\nthe content is taller than 85% of the viewport.",
3503
+ "props": [
3504
+ {
3505
+ "name": "open",
3506
+ "type": "boolean",
3507
+ "required": true,
3508
+ "description": "Whether the sheet is shown"
3509
+ },
3510
+ {
3511
+ "name": "onClose",
3512
+ "type": "() => void",
3513
+ "required": true,
3514
+ "description": "Called when the sheet asks to close"
3515
+ },
3516
+ {
3517
+ "name": "title",
3518
+ "type": "string",
3519
+ "required": false,
3520
+ "description": "Title of the header; without it the sheet has no header"
3521
+ },
3522
+ {
3523
+ "name": "ariaLabel",
3524
+ "type": "string",
3525
+ "required": false,
3526
+ "description": "Accessible name when there is no `title`"
3527
+ },
3528
+ {
3529
+ "name": "onBack",
3530
+ "type": "() => void",
3531
+ "required": false,
3532
+ "description": "Shows a back button at the start of the header"
3533
+ },
3534
+ {
3535
+ "name": "backAriaLabel",
3536
+ "type": "string",
3537
+ "required": false,
3538
+ "defaultValue": "'Back'",
3539
+ "description": "Accessible name of the back button"
3540
+ },
3541
+ {
3542
+ "name": "closeAriaLabel",
3543
+ "type": "string",
3544
+ "required": false,
3545
+ "defaultValue": "'Close'",
3546
+ "description": "Accessible name of the close button"
3547
+ },
3548
+ {
3549
+ "name": "closeOnOutsideClick",
3550
+ "type": "boolean",
3551
+ "required": false,
3552
+ "defaultValue": "true",
3553
+ "description": "Whether a press on the backdrop closes the sheet"
3554
+ },
3555
+ {
3556
+ "name": "children",
3557
+ "type": "ReactNode",
3558
+ "required": false,
3559
+ "description": "Content of the sheet"
3560
+ },
3561
+ {
3562
+ "name": "className",
3563
+ "type": "string",
3564
+ "required": false,
3565
+ "description": "Additional CSS classes for the sheet panel"
3566
+ },
3567
+ {
3568
+ "name": "overlayClassName",
3569
+ "type": "string",
3570
+ "required": false,
3571
+ "description": "Additional CSS classes for the backdrop"
3572
+ },
3573
+ {
3574
+ "name": "headerClassName",
3575
+ "type": "string",
3576
+ "required": false,
3577
+ "description": "Additional CSS classes for the header row"
3578
+ },
3579
+ {
3580
+ "name": "style",
3581
+ "type": "CSSProperties",
3582
+ "required": false,
3583
+ "description": "Inline style for the panel, e.g. custom properties"
3584
+ },
3585
+ {
3586
+ "name": "overlayStyle",
3587
+ "type": "CSSProperties",
3588
+ "required": false,
3589
+ "description": "Inline style for the backdrop"
3590
+ },
3591
+ {
3592
+ "name": "bodyClassName",
3593
+ "type": "string",
3594
+ "required": false,
3595
+ "description": "Additional CSS classes for the scrolling body"
3596
+ },
3597
+ {
3598
+ "name": "titleClassName",
3599
+ "type": "string",
3600
+ "required": false,
3601
+ "description": "Type-scale class for the title"
3602
+ },
3603
+ {
3604
+ "name": "portalId",
3605
+ "type": "string",
3606
+ "required": false,
3607
+ "description": "Id of the element to portal into"
3608
+ }
3609
+ ],
3610
+ "examples": [
3611
+ "<BottomSheet open={isOpen} title=\"Select model\" onClose={() => setIsOpen(false)}>\n <ModelList />\n</BottomSheet>"
3612
+ ],
3613
+ "sourceFile": "components/New/BottomSheet/BottomSheet.tsx"
3614
+ },
3615
+ {
3616
+ "name": "Badge",
3617
+ "category": "Components_2_0",
3618
+ "generation": "2.0",
3619
+ "description": "A short, static label: a topic, a category, or a status that is not a\ncontrol.\naliases: Label|StatusLabel|Pill|Chip\nDesign system 2.0\n\nUnlike `Tag`, a badge never responds to the pointer and never removes\nitself — reach for `Tag` when the label is something to select, filter by or\ndismiss. The badge is 24px tall and does not wrap; a long label keeps its\nwidth, so give the badge a `max-w-*` and a truncating `textClassName` where\nthat matters.\n\n`BadgeVariant.Outlined` is the neutral label, bordered on the sunken layer.\n`BadgeVariant.Filled` is a pill in one of the theme's visual colours, for\nlabels that are told apart by colour — so pair the colour with text that\nsays the same thing, since colour alone does not reach every reader. The\nfilled variant's type scale is a lead style, which uppercases itself: pass\nthe label in sentence case.",
3620
+ "props": [
3621
+ {
3622
+ "name": "label",
3623
+ "type": "string",
3624
+ "required": true,
3625
+ "description": "Text of the badge"
3626
+ },
3627
+ {
3628
+ "name": "variant",
3629
+ "type": "BadgeVariant",
3630
+ "required": false,
3631
+ "defaultValue": "BadgeVariant.Outlined",
3632
+ "description": "How the badge is drawn"
3633
+ },
3634
+ {
3635
+ "name": "color",
3636
+ "type": "BadgeColor",
3637
+ "required": false,
3638
+ "defaultValue": "BadgeColor.Blue",
3639
+ "description": "Visual colour of a filled badge"
3640
+ },
3641
+ {
3642
+ "name": "icon",
3643
+ "type": "ReactNode",
3644
+ "required": false,
3645
+ "description": "Decorative icon before the label"
3646
+ },
3647
+ {
3648
+ "name": "textClassName",
3649
+ "type": "string",
3650
+ "required": false,
3651
+ "description": "Type-scale class for the label, replacing the variant's own"
3652
+ }
3653
+ ],
3654
+ "examples": [
3655
+ "<Badge label=\"Translation\" />\n<Badge label=\"Featured\" variant={BadgeVariant.Filled} color={BadgeColor.Green} />"
3656
+ ],
3657
+ "sourceFile": "components/New/Badge/Badge.tsx"
3658
+ },
3659
+ {
3660
+ "name": "Avatar",
3661
+ "category": "Components_2_0",
3662
+ "generation": "2.0",
3663
+ "description": "A person's or an entity's picture, or its initials on a colour picked from\nits name.\naliases: UserAvatar|InitialsAvatar|ProfilePicture\nDesign system 2.0\n\nThe same name always gets the same colour, drawn from the theme's visual\ntokens, so a list of avatars stays stable between renders and sessions. An\nimage that is missing or fails to load falls back to the initials; a new\n`src` tries the image again.\n\nAn avatar with an `alt` is a `role=\"img\"` named by it, whether it shows the\nimage or the initials. Without one it is decorative and hidden from\nassistive technology, which is right when a visible name sits beside it.",
3664
+ "props": [
3665
+ {
3666
+ "name": "name",
3667
+ "type": "string",
3668
+ "required": true,
3669
+ "description": "Display name the initials and the colour are derived from"
3670
+ },
3671
+ {
3672
+ "name": "initials",
3673
+ "type": "string",
3674
+ "required": false,
3675
+ "description": "Initials to show instead of the ones derived from `name`"
3676
+ },
3677
+ {
3678
+ "name": "src",
3679
+ "type": "string",
3680
+ "required": false,
3681
+ "description": "Image URL; the initials show while it is missing or broken"
3682
+ },
3683
+ {
3684
+ "name": "alt",
3685
+ "type": "string",
3686
+ "required": false,
3687
+ "defaultValue": "''",
3688
+ "description": "Accessible name; empty makes the avatar decorative"
3689
+ },
3690
+ {
3691
+ "name": "size",
3692
+ "type": "number",
3693
+ "required": false,
3694
+ "defaultValue": "32",
3695
+ "description": "Width and height in px"
3696
+ },
3697
+ {
3698
+ "name": "shape",
3699
+ "type": "AvatarShape",
3700
+ "required": false,
3701
+ "defaultValue": "AvatarShape.Circle",
3702
+ "description": "Outline of the avatar"
3703
+ },
3704
+ {
3705
+ "name": "className",
3706
+ "type": "string",
3707
+ "required": false,
3708
+ "description": "Additional CSS classes for the avatar"
3709
+ },
3710
+ {
3711
+ "name": "textClassName",
3712
+ "type": "string",
3713
+ "required": false,
3714
+ "description": "Type-scale class for the initials, replacing the size-derived font size"
3715
+ },
3716
+ {
3717
+ "name": "onImageError",
3718
+ "type": "(event: SyntheticEvent<HTMLImageElement>) => void",
3719
+ "required": false,
3720
+ "description": "Called when the image fails to load"
3721
+ }
3722
+ ],
3723
+ "examples": [
3724
+ "<Avatar name=\"Ada Lovelace\" src={photoUrl} alt=\"Ada Lovelace\" />\n<Avatar name=\"Summarizer\" shape={AvatarShape.Square} size={36} />"
3725
+ ],
3726
+ "sourceFile": "components/New/Avatar/Avatar.tsx"
3727
+ },
3728
+ {
3729
+ "name": "EntityIdentity",
3730
+ "category": "Components_2_0",
3731
+ "generation": "2.0",
3732
+ "description": "The identity block of a DIAL entity: its icon, a coloured type label, the\nname and the version, with an optional featured chip.\naliases: EntityHeader|ModelHeader|AppIdentity\nDesign system 2.0\n\nThe type label is plain uppercase text coloured by `item.type`. The icon is\na square `Avatar`, so a missing or broken image falls back to the initials of\nthe name. The icon is decorative: the name next to it already names the\nentity.",
3733
+ "props": [
3734
+ {
3735
+ "name": "item",
3736
+ "type": "EntityIdentityItem",
3737
+ "required": true,
3738
+ "description": "The entity to display"
3739
+ },
3740
+ {
3741
+ "name": "labels",
3742
+ "type": "EntityIdentityLabels",
3743
+ "required": false,
3744
+ "description": "User-visible strings"
3745
+ },
3746
+ {
3747
+ "name": "showVersion",
3748
+ "type": "boolean",
3749
+ "required": false,
3750
+ "defaultValue": "true",
3751
+ "description": "Whether to show the version"
3752
+ },
3753
+ {
3754
+ "name": "hasFeaturedTag",
3755
+ "type": "boolean",
3756
+ "required": false,
3757
+ "defaultValue": "true",
3758
+ "description": "Whether to show the featured chip for a featured entity"
3759
+ },
3760
+ {
3761
+ "name": "iconSize",
3762
+ "type": "number",
3763
+ "required": false,
3764
+ "defaultValue": "48",
3765
+ "description": "Icon size in px"
3766
+ },
3767
+ {
3768
+ "name": "headingLevel",
3769
+ "type": "number",
3770
+ "required": false,
3771
+ "defaultValue": "3",
3772
+ "description": "Heading level of the name"
3773
+ },
3774
+ {
3775
+ "name": "query",
3776
+ "type": "string",
3777
+ "required": false,
3778
+ "description": "Search query highlighted in the name"
3779
+ },
3780
+ {
3781
+ "name": "footer",
3782
+ "type": "ReactNode",
3783
+ "required": false,
3784
+ "description": "Content pinned to the bottom of the text column"
3785
+ },
3786
+ {
3787
+ "name": "statusBadge",
3788
+ "type": "ReactNode",
3789
+ "required": false,
3790
+ "description": "Badge in the top-end corner"
3791
+ },
3792
+ {
3793
+ "name": "className",
3794
+ "type": "string",
3795
+ "required": false
3796
+ },
3797
+ {
3798
+ "name": "nameClassName",
3799
+ "type": "string",
3800
+ "required": false,
3801
+ "defaultValue": "'dial-h3-text'"
3802
+ },
3803
+ {
3804
+ "name": "typeClassName",
3805
+ "type": "string",
3806
+ "required": false,
3807
+ "defaultValue": "'dial-caption-lead-semi-text'"
3808
+ },
3809
+ {
3810
+ "name": "versionClassName",
3811
+ "type": "string",
3812
+ "required": false,
3813
+ "defaultValue": "'dial-tiny-text'"
3814
+ },
3815
+ {
3816
+ "name": "iconClassName",
3817
+ "type": "string",
3818
+ "required": false
3819
+ },
3820
+ {
3821
+ "name": "featuredChipClassName",
3822
+ "type": "string",
3823
+ "required": false
3824
+ }
3825
+ ],
3826
+ "examples": [
3827
+ "<EntityIdentity\n item={{ type: EntityType.Model, name: 'GPT-4o', version: '2024-11-20' }}\n labels={{ type: t('Model') }}\n/>"
3828
+ ],
3829
+ "sourceFile": "components/New/EntityIdentity/EntityIdentity.tsx"
3830
+ },
3831
+ {
3832
+ "name": "SideDrawer",
3833
+ "category": "Components_2_0",
3834
+ "generation": "2.0",
3835
+ "description": "A full-height panel that slides in from the inline end over a dimmed page.\naliases: Drawer|SidePanel|SideSheet|DetailsPanel\nDesign system 2.0\n\nIt is a modal dialog while open: focus moves to the panel and stays inside,\nreturns to where it came from on close, and the page behind it does not\nscroll. Escape, the close button and a press on the backdrop all call\n`onClose`; the drawer stays controlled by `open`.\n\nThe panel stays mounted while closed, so it can slide out as well as in and\nkeep the state of whatever it holds. Closed, it is `inert` — out of both\nthe tab order and the accessibility tree — and the backdrop lets pointer\nevents through. On desktop the drawer is 540px wide with a rounded,\nbordered leading edge; on mobile it takes the full width. It slides from\nthe end in either direction, and not at all under `prefers-reduced-motion`.\n\nThe header follows `Popup`: an optional back button, the title,\n`headerActions`, and the close button. A string `header` renders an `<h2>`\nthat names the dialog; for a node, pass `ariaLabel`.",
3836
+ "props": [
3837
+ {
3838
+ "name": "open",
3839
+ "type": "boolean",
3840
+ "required": true,
3841
+ "description": "Whether the drawer is open"
3842
+ },
3843
+ {
3844
+ "name": "onClose",
3845
+ "type": "() => void",
3846
+ "required": true,
3847
+ "description": "Called when the drawer asks to close"
3848
+ },
3849
+ {
3850
+ "name": "header",
3851
+ "type": "ReactNode",
3852
+ "required": false,
3853
+ "description": "Header title; a string also names the dialog"
3854
+ },
3855
+ {
3856
+ "name": "ariaLabel",
3857
+ "type": "string",
3858
+ "required": false,
3859
+ "description": "Accessible name when `header` is not a string"
3860
+ },
3861
+ {
3862
+ "name": "headerActions",
3863
+ "type": "ReactNode",
3864
+ "required": false,
3865
+ "description": "Controls between the title and the close button"
3866
+ },
3867
+ {
3868
+ "name": "onBack",
3869
+ "type": "() => void",
3870
+ "required": false,
3871
+ "description": "Shows a back button at the start of the header"
3872
+ },
3873
+ {
3874
+ "name": "backAriaLabel",
3875
+ "type": "string",
3876
+ "required": false,
3877
+ "defaultValue": "'Back'",
3878
+ "description": "Accessible name of the back button"
3879
+ },
3880
+ {
3881
+ "name": "backDisabled",
3882
+ "type": "boolean",
3883
+ "required": false,
3884
+ "defaultValue": "false",
3885
+ "description": "Whether the back button is disabled"
3886
+ },
3887
+ {
3888
+ "name": "closeAriaLabel",
3889
+ "type": "string",
3890
+ "required": false,
3891
+ "defaultValue": "'Close'",
3892
+ "description": "Accessible name of the close button"
3893
+ },
3894
+ {
3895
+ "name": "closeDisabled",
3896
+ "type": "boolean",
3897
+ "required": false,
3898
+ "defaultValue": "false",
3899
+ "description": "Whether the close button is disabled"
3900
+ },
3901
+ {
3902
+ "name": "hideClose",
3903
+ "type": "boolean",
3904
+ "required": false,
3905
+ "defaultValue": "false",
3906
+ "description": "Whether the close button is left out"
3907
+ },
3908
+ {
3909
+ "name": "closeOnOutsideClick",
3910
+ "type": "boolean",
3911
+ "required": false,
3912
+ "defaultValue": "true",
3913
+ "description": "Whether a press on the backdrop closes the drawer"
3914
+ },
3915
+ {
3916
+ "name": "children",
3917
+ "type": "ReactNode",
3918
+ "required": false,
3919
+ "description": "Content of the drawer"
3920
+ },
3921
+ {
3922
+ "name": "className",
3923
+ "type": "string",
3924
+ "required": false,
3925
+ "description": "Additional CSS classes for the drawer panel"
3926
+ },
3927
+ {
3928
+ "name": "overlayClassName",
3929
+ "type": "string",
3930
+ "required": false,
3931
+ "description": "Additional CSS classes for the backdrop"
3932
+ },
3933
+ {
3934
+ "name": "headerClassName",
3935
+ "type": "string",
3936
+ "required": false,
3937
+ "description": "Additional CSS classes for the header row"
3938
+ },
3939
+ {
3940
+ "name": "style",
3941
+ "type": "CSSProperties",
3942
+ "required": false,
3943
+ "description": "Inline style for the panel, e.g. custom properties"
3944
+ },
3945
+ {
3946
+ "name": "overlayStyle",
3947
+ "type": "CSSProperties",
3948
+ "required": false,
3949
+ "description": "Inline style for the backdrop"
3950
+ },
3951
+ {
3952
+ "name": "bodyClassName",
3953
+ "type": "string",
3954
+ "required": false,
3955
+ "description": "Additional CSS classes for the scrolling body"
3956
+ },
3957
+ {
3958
+ "name": "titleClassName",
3959
+ "type": "string",
3960
+ "required": false,
3961
+ "description": "Type-scale class for a string title"
3962
+ },
3963
+ {
3964
+ "name": "portalId",
3965
+ "type": "string",
3966
+ "required": false,
3967
+ "description": "Id of the element to portal into"
3968
+ }
3969
+ ],
3970
+ "examples": [
3971
+ "<SideDrawer open={isOpen} header=\"Publish\" onClose={() => setIsOpen(false)}>\n <PublishForm />\n</SideDrawer>"
3972
+ ],
3973
+ "sourceFile": "components/New/SideDrawer/SideDrawer.tsx"
3974
+ },
3975
+ {
3976
+ "name": "Tag",
3977
+ "category": "Components_2_0",
3978
+ "generation": "2.0",
3979
+ "description": "A compact label element used for selections, filters, or categories.\naliases: Chip|Pill\nDesign system 2.0\n\nThe tag has one height — the 32px pill of the 2.0 design. There is no `size`\nprop: a tag sizes itself, and a caller that needs a different height is\nusually reaching for a button.\n\nThe label truncates rather than wrapping, and carries a native `title` so the\nfull text stays reachable when it does.\n\nA tag with `onClick` becomes a `role=\"button\"` operable with Enter and Space.\nIts remove control is a real nested `<button>`, so keep the two roles apart in\nthe caller: a clickable tag that is also closable gives a screen reader two\nactions with no way to tell which one it landed on.\n\nNo tag draws a rim; the two appearances are told apart by their fill.\n`TagAppearance.Selectable` is the filter chip of the 2.0 design: no fill\nat all until it is selected, one hover tint shared by both states, a semibold\nlabel once selected, and the state carried on `aria-pressed` rather than by\nthe tint alone. Give it an `onClick` — a selectable tag that cannot be\nactivated is a colour and nothing else.\n\nSelecting one therefore changes its width by the difference between the\nregular and semibold label. In a wrapping filter row that is what the design\nasks for; if a fixed width matters, give the chip one.",
3980
+ "props": [
3981
+ {
3982
+ "name": "label",
3983
+ "type": "string",
3984
+ "required": true,
3985
+ "description": "Text content displayed inside the tag."
3986
+ },
3987
+ {
3988
+ "name": "icon",
3989
+ "type": "ReactNode",
3990
+ "required": false,
3991
+ "description": "Icon rendered before the label."
3992
+ },
3993
+ {
3994
+ "name": "appearance",
3995
+ "type": "TagAppearance",
3996
+ "required": false,
3997
+ "defaultValue": "TagAppearance.Outlined",
3998
+ "description": "`outlined` is the filled chip on the raised\nlayer; `selectable` is the unfilled filter chip that tints and turns semibold when selected."
3999
+ },
4000
+ {
4001
+ "name": "selected",
4002
+ "type": "boolean",
4003
+ "required": false,
4004
+ "defaultValue": "false",
4005
+ "description": "Applies the accent-tinted selected styling."
4006
+ },
4007
+ {
4008
+ "name": "disabled",
4009
+ "type": "boolean",
4010
+ "required": false,
4011
+ "defaultValue": "false",
4012
+ "description": "Stops the tag responding: no click handling, no remove control. The design defines no disabled tag, so the colours stay put."
4013
+ },
4014
+ {
4015
+ "name": "closable",
4016
+ "type": "boolean",
4017
+ "required": false,
4018
+ "defaultValue": "false",
4019
+ "description": "Renders the remove button. Needs `onRemove` to appear."
4020
+ },
4021
+ {
4022
+ "name": "removeLabel",
4023
+ "type": "string",
4024
+ "required": false,
4025
+ "description": "Accessible name of the remove button; defaults to `Remove <label>`."
4026
+ },
4027
+ {
4028
+ "name": "onRemove",
4029
+ "type": "(event: MouseEvent<HTMLButtonElement>) => void",
4030
+ "required": false,
4031
+ "description": "Called when the remove button is clicked. The click does not bubble to `onClick`."
4032
+ }
4033
+ ],
4034
+ "examples": [
4035
+ "<Tag label=\"TypeScript\" />\n<Tag label=\"TypeScript\" closable onRemove={() => remove('TypeScript')} />\n<Tag label=\"Drafts\" selected onClick={() => toggle('Drafts')} />\n<Tag\n label=\"Drafts\"\n appearance={TagAppearance.Selectable}\n selected={isSelected}\n onClick={() => toggle('Drafts')}\n/>"
4036
+ ],
4037
+ "sourceFile": "components/New/Tag/Tag.tsx"
4038
+ },
4039
+ {
4040
+ "name": "TagInput",
4041
+ "category": "Components_2_0",
4042
+ "generation": "2.0",
4043
+ "description": "A tag input field: type a value and commit it with Enter or comma.\naliases: MultiTag|TagField|ChipInput\nDesign system 2.0\n\nThe field is an , so it carries the 2.0 field styling, sizes,\nlabel, caption and error states, and the tags render as s in its\ncontent slot. The field grows as tags wrap, unless `collapseTagOverflow` keeps\nthem on one line behind a `+N` chip.\n\nWorks controlled (`value` + `onChange`) or uncontrolled (`defaultValue`).\nDuplicate tags are ignored. Backspace on an empty input removes the last tag.",
4044
+ "props": [
4045
+ {
4046
+ "name": "id",
4047
+ "type": "string",
4048
+ "required": false,
4049
+ "description": "The id of the text input, linked to the label."
4050
+ },
4051
+ {
4052
+ "name": "value",
4053
+ "type": "string[]",
4054
+ "required": false,
4055
+ "description": "Controlled tag list."
4056
+ },
4057
+ {
4058
+ "name": "defaultValue",
4059
+ "type": "string[]",
4060
+ "required": false,
4061
+ "description": "Initial tag list when uncontrolled."
4062
+ },
4063
+ {
4064
+ "name": "size",
4065
+ "type": "ElementSize",
4066
+ "required": false,
4067
+ "defaultValue": "ElementSize.Standard",
4068
+ "description": "Field height: standard is 40px, small is 24px."
4069
+ },
4070
+ {
4071
+ "name": "labelProps",
4072
+ "type": "LabelProps",
4073
+ "required": false,
4074
+ "description": "Props of the rendered above the field."
4075
+ },
4076
+ {
4077
+ "name": "placeholder",
4078
+ "type": "string",
4079
+ "required": false,
4080
+ "description": "Placeholder shown while there are no tags."
4081
+ },
4082
+ {
4083
+ "name": "caption",
4084
+ "type": "string",
4085
+ "required": false,
4086
+ "description": "Helper text rendered below the field when there is no `error`."
4087
+ },
4088
+ {
4089
+ "name": "error",
4090
+ "type": "string",
4091
+ "required": false,
4092
+ "description": "Error message rendered below the field (pass `invalid` too for error styling)."
4093
+ },
4094
+ {
4095
+ "name": "invalid",
4096
+ "type": "boolean",
4097
+ "required": false,
4098
+ "description": "Applies the field's error styling."
4099
+ },
4100
+ {
4101
+ "name": "disabled",
4102
+ "type": "boolean",
4103
+ "required": false,
4104
+ "defaultValue": "false",
4105
+ "description": "Disables typing and tag removal."
4106
+ },
4107
+ {
4108
+ "name": "readOnly",
4109
+ "type": "boolean",
4110
+ "required": false,
4111
+ "defaultValue": "false",
4112
+ "description": "Shows the tags without allowing new ones or removal."
3190
4113
  },
3191
4114
  {
3192
4115
  "name": "collapseTagOverflow",
3193
4116
  "type": "boolean",
3194
4117
  "required": false,
3195
4118
  "defaultValue": "false",
3196
- "description": "Keep the tags on one line, replacing the ones that do not fit with a `+N` chip."
4119
+ "description": "Keep the tags on one line, replacing the ones that do not fit with a `+N` chip."
4120
+ },
4121
+ {
4122
+ "name": "ariaLabel",
4123
+ "type": "string",
4124
+ "required": false,
4125
+ "description": "Accessible name for the text input; use it when there is no visible label."
4126
+ },
4127
+ {
4128
+ "name": "tagListLabel",
4129
+ "type": "string",
4130
+ "required": false,
4131
+ "defaultValue": "'Tags'",
4132
+ "description": "Accessible name of the tag list."
4133
+ },
4134
+ {
4135
+ "name": "className",
4136
+ "type": "string",
4137
+ "required": false,
4138
+ "description": "Additional CSS classes for the outer container."
4139
+ },
4140
+ {
4141
+ "name": "fieldClassName",
4142
+ "type": "string",
4143
+ "required": false,
4144
+ "description": "Additional CSS classes for the field itself."
4145
+ },
4146
+ {
4147
+ "name": "tagClassName",
4148
+ "type": "string",
4149
+ "required": false,
4150
+ "description": "Additional CSS classes applied to every tag."
4151
+ },
4152
+ {
4153
+ "name": "onChange",
4154
+ "type": "(tags: string[]) => void",
4155
+ "required": false,
4156
+ "description": "Called with the new list whenever a tag is added or removed."
4157
+ }
4158
+ ],
4159
+ "examples": [
4160
+ "const [tags, setTags] = useState<string[]>(['React']);\n\n<TagInput\n id=\"skills\"\n labelProps={{ label: 'Skills' }}\n placeholder=\"Add a skill\"\n caption=\"Press Enter or comma to add\"\n value={tags}\n onChange={setTags}\n/>"
4161
+ ],
4162
+ "sourceFile": "components/New/TagInput/TagInput.tsx"
4163
+ },
4164
+ {
4165
+ "name": "AutocompleteTagInput",
4166
+ "category": "Components_2_0",
4167
+ "generation": "2.0",
4168
+ "description": "A tag input that suggests values while typing and also accepts its own.\naliases: Autocomplete|Combobox|TagAutocomplete|ChipAutocomplete|MultiValueAutocomplete\nDesign system 2.0\n\nTyping opens a list of the `suggestions` that match the text (by label, value\nor description) and are not already tags, capped at `maxSuggestions`, with the\nfirst one highlighted. Enter or comma adds the highlighted suggestion, or the\ntyped text when nothing matches; clicking a suggestion adds it too. The arrow\nkeys move the highlight and wrap at the ends; Escape and leaving the field\nclose the list without adding what was typed. Backspace on an empty input\nremoves the last tag, and duplicate tags are ignored. Entered text is not\nvalidated — say what format is expected through `caption`.\n\nWith `openOnFocus`, focusing or clicking the input opens the list of every\nsuggestion that is not yet a tag, uncapped by `maxSuggestions`, with nothing\nhighlighted, so Enter adds nothing the user did not choose. Picking one keeps\nthe list open for the next pick; typing filters it as usual.\n\nReach for when there is nothing to suggest, and for a\nmultiple `Select` when only listed values are allowed.\n\nThe input follows the ARIA combobox pattern: it keeps focus while the list is\nopen, and the highlighted suggestion is announced through\n`aria-activedescendant`. The tags are a list named by `tagListLabel`, and each\nremove button is named after its tag.\n\nWorks controlled (`value` + `onChange`) or uncontrolled (`defaultValue`).",
4169
+ "props": [
4170
+ {
4171
+ "name": "id",
4172
+ "type": "string",
4173
+ "required": false,
4174
+ "description": "The id of the text input, linked to the label."
4175
+ },
4176
+ {
4177
+ "name": "value",
4178
+ "type": "string[]",
4179
+ "required": false,
4180
+ "description": "Controlled tag list."
4181
+ },
4182
+ {
4183
+ "name": "defaultValue",
4184
+ "type": "string[]",
4185
+ "required": false,
4186
+ "description": "Initial tag list when uncontrolled."
4187
+ },
4188
+ {
4189
+ "name": "suggestions",
4190
+ "type": "AutocompleteTagInputSuggestion[]",
4191
+ "required": true,
4192
+ "description": "Values offered while typing."
4193
+ },
4194
+ {
4195
+ "name": "maxSuggestions",
4196
+ "type": "number",
4197
+ "required": false,
4198
+ "defaultValue": "DEFAULT_MAX_SUGGESTIONS",
4199
+ "description": "How many matching suggestions the list shows at most."
4200
+ },
4201
+ {
4202
+ "name": "openOnFocus",
4203
+ "type": "boolean",
4204
+ "required": false,
4205
+ "defaultValue": "false",
4206
+ "description": "Opens the full list of suggestions that are not yet tags on focus or click, and keeps it open after a pick."
4207
+ },
4208
+ {
4209
+ "name": "size",
4210
+ "type": "ElementSize",
4211
+ "required": false,
4212
+ "defaultValue": "ElementSize.Standard",
4213
+ "description": "Field height: standard is 40px, small is 24px."
4214
+ },
4215
+ {
4216
+ "name": "labelProps",
4217
+ "type": "LabelProps",
4218
+ "required": false,
4219
+ "description": "Props of the rendered above the field."
4220
+ },
4221
+ {
4222
+ "name": "placeholder",
4223
+ "type": "string",
4224
+ "required": false,
4225
+ "description": "Placeholder shown while there are no tags."
4226
+ },
4227
+ {
4228
+ "name": "caption",
4229
+ "type": "string",
4230
+ "required": false,
4231
+ "description": "Helper text rendered below the field when there is no `error`."
4232
+ },
4233
+ {
4234
+ "name": "error",
4235
+ "type": "string",
4236
+ "required": false,
4237
+ "description": "Error message rendered below the field (pass `invalid` too for error styling)."
4238
+ },
4239
+ {
4240
+ "name": "invalid",
4241
+ "type": "boolean",
4242
+ "required": false,
4243
+ "defaultValue": "false",
4244
+ "description": "Applies the field's error styling and marks the input `aria-invalid`."
4245
+ },
4246
+ {
4247
+ "name": "disabled",
4248
+ "type": "boolean",
4249
+ "required": false,
4250
+ "defaultValue": "false",
4251
+ "description": "Disables typing and tag removal."
4252
+ },
4253
+ {
4254
+ "name": "readOnly",
4255
+ "type": "boolean",
4256
+ "required": false,
4257
+ "defaultValue": "false",
4258
+ "description": "Shows the tags without allowing new ones or removal."
3197
4259
  },
3198
4260
  {
3199
4261
  "name": "ariaLabel",
3200
4262
  "type": "string",
3201
4263
  "required": false,
3202
- "description": "Accessible name for the text input; use it when there is no visible label."
4264
+ "description": "Accessible name for the input; use it when there is no visible label."
3203
4265
  },
3204
4266
  {
3205
4267
  "name": "tagListLabel",
@@ -3208,6 +4270,12 @@
3208
4270
  "defaultValue": "'Tags'",
3209
4271
  "description": "Accessible name of the tag list."
3210
4272
  },
4273
+ {
4274
+ "name": "getRemoveTagLabel",
4275
+ "type": "(tag: string) => string",
4276
+ "required": false,
4277
+ "description": "Accessible name of a tag's remove button, given the tag; pass a translated one, as the default is the English `Remove <tag>`."
4278
+ },
3211
4279
  {
3212
4280
  "name": "className",
3213
4281
  "type": "string",
@@ -3226,6 +4294,12 @@
3226
4294
  "required": false,
3227
4295
  "description": "Additional CSS classes applied to every tag."
3228
4296
  },
4297
+ {
4298
+ "name": "listClassName",
4299
+ "type": "string",
4300
+ "required": false,
4301
+ "description": "Additional CSS classes for the floating suggestion list."
4302
+ },
3229
4303
  {
3230
4304
  "name": "onChange",
3231
4305
  "type": "(tags: string[]) => void",
@@ -3234,9 +4308,9 @@
3234
4308
  }
3235
4309
  ],
3236
4310
  "examples": [
3237
- "const [tags, setTags] = useState<string[]>(['React']);\n\n<TagInput\n id=\"skills\"\n labelProps={{ label: 'Skills' }}\n placeholder=\"Add a skill\"\n caption=\"Press Enter or comma to add\"\n value={tags}\n onChange={setTags}\n/>"
4311
+ "const [types, setTypes] = useState<string[]>([]);\n\n<AutocompleteTagInput\n id=\"attachment-types\"\n labelProps={{ label: 'Attachment types', required: true }}\n caption=\"Choose a suggested MIME type or add one as <type>/<subtype>\"\n suggestions={[\n { value: 'image/png', label: 'PNG', description: 'image/png' },\n { value: 'application/pdf', label: 'PDF', description: 'application/pdf' },\n ]}\n value={types}\n onChange={setTypes}\n/>"
3238
4312
  ],
3239
- "sourceFile": "components/New/TagInput/TagInput.tsx"
4313
+ "sourceFile": "components/New/AutocompleteTagInput/AutocompleteTagInput.tsx"
3240
4314
  },
3241
4315
  {
3242
4316
  "name": "Search",
@@ -3328,6 +4402,45 @@
3328
4402
  "defaultValue": "false",
3329
4403
  "description": "Renders the current value at the end of the label row"
3330
4404
  },
4405
+ {
4406
+ "name": "showTooltip",
4407
+ "type": "boolean",
4408
+ "required": false,
4409
+ "defaultValue": "false",
4410
+ "description": "Renders the current value in a bubble above the thumb; hidden while disabled"
4411
+ },
4412
+ {
4413
+ "name": "showTicks",
4414
+ "type": "boolean",
4415
+ "required": false,
4416
+ "defaultValue": "false",
4417
+ "description": "Renders a tick mark at every step on the unfilled track; hidden while disabled"
4418
+ },
4419
+ {
4420
+ "name": "leftContent",
4421
+ "type": "ReactNode",
4422
+ "required": false,
4423
+ "description": "Content before the track, vertically centred on it"
4424
+ },
4425
+ {
4426
+ "name": "rightContent",
4427
+ "type": "ReactNode",
4428
+ "required": false,
4429
+ "description": "Content after the track, vertically centred on it"
4430
+ },
4431
+ {
4432
+ "name": "showValueInput",
4433
+ "type": "boolean",
4434
+ "required": false,
4435
+ "defaultValue": "false",
4436
+ "description": "Renders a compact (24px), synced `NumberInput` after the track (clamped to `min`/`max`, snapped to `step`); replaces `rightContent`"
4437
+ },
4438
+ {
4439
+ "name": "valueInputAriaLabel",
4440
+ "type": "string",
4441
+ "required": false,
4442
+ "description": "Accessible name of the value input; defaults to a string `labelProps.label`"
4443
+ },
3331
4444
  {
3332
4445
  "name": "caption",
3333
4446
  "type": "string",
@@ -3468,7 +4581,7 @@
3468
4581
  "name": "InteractiveTooltip",
3469
4582
  "category": "Components_2_0",
3470
4583
  "generation": "2.0",
3471
- "description": "A hover panel that, unlike , can hold its own interactive\ncontent.\naliases: HoverCard|InfoPopover\nDesign system 2.0\n\nOpens next to the trigger on hover or focus, the way a tooltip does, but\nstays open while the pointer moves into the panel so its content — links,\nbuttons, anything — can be hovered and clicked. It carries no `role`, since\nARIA's `tooltip` role forbids focusable content and this is meant to hold\nsome; a panel with meaningfully interactive content should still be\nreachable without a mouse (Tab from the trigger reaches it), but a purely\ndecorative one is fine to leave out of the tab order entirely.\n\nRenders nothing on a mobile screen, where there is no hover to reveal it —\nso, as with , a control must never depend on this panel alone\nto be understood or operated.",
4584
+ "description": "A hover panel that, unlike , can hold its own interactive\ncontent.\naliases: HoverCard|InfoPopover\nDesign system 2.0\n\nOpens next to the trigger on hover or focus, the way a tooltip does, but\nstays open while the pointer moves into the panel so its content — links,\nbuttons, anything — can be hovered and clicked. It carries no `role`, since\nARIA's `tooltip` role forbids focusable content and this is meant to hold\nsome; a panel with meaningfully interactive content should still be\nreachable without a mouse (Tab from the trigger reaches it), but a purely\ndecorative one is fine to leave out of the tab order entirely.\n\nRenders nothing on a mobile screen, where there is no hover to reveal it —\nso, as with , a control must never depend on this panel alone\nto be understood or operated. A trigger whose only job is to reveal the\npanel, such as an info chip, sets `trigger={InteractiveTooltipTrigger.Click}`\ninstead: the panel then opens on click or tap, works on every screen size,\nand no longer reacts to hover or focus. Do not use it on a trigger that has\nan action of its own, since the same tap would run both.",
3472
4585
  "props": [
3473
4586
  {
3474
4587
  "name": "content",
@@ -3510,6 +4623,12 @@
3510
4623
  "defaultValue": "false",
3511
4624
  "description": "Whether the panel starts open (uncontrolled only)"
3512
4625
  },
4626
+ {
4627
+ "name": "trigger",
4628
+ "type": "InteractiveTooltipTrigger",
4629
+ "required": false,
4630
+ "description": "What opens the panel: hover or focus, or a click or tap that keeps it open until dismissed"
4631
+ },
3513
4632
  {
3514
4633
  "name": "open",
3515
4634
  "type": "boolean",
@@ -3864,6 +4983,67 @@
3864
4983
  ],
3865
4984
  "sourceFile": "components/New/NoDataContent/NoDataContent.tsx"
3866
4985
  },
4986
+ {
4987
+ "name": "TransferQueue",
4988
+ "category": "Components_2_0",
4989
+ "generation": "2.0",
4990
+ "description": "A floating panel listing the files of an upload, download, import or export\nwith a live status per row.\naliases: UploadQueue|ImportQueue|ExportQueue|UploadProgress|ProgressToast\nDesign system 2.0\n\nEach row shows the file's `FileIcon` and name, and a trailing status: a\nspinner (with a cancel control on hover or focus) while in progress, a check\non success, a warning or error icon whose reason is both its tooltip and its\naccessible name, or \"Canceled\". The header carries the host's title, a count\nof failed items, and collapse and close controls. Collapsed while work runs,\nthe rows are replaced by one aggregate `ProgressBar`.\n\nClosing while an item is in progress or has failed asks for confirmation\nfirst. Once every item has succeeded the queue closes itself after\n`autoCloseDelay`; a warned or canceled row keeps it open so it can be read.\n\nThe root is a polite `role=\"status\"` live region. Positioning is left to\nthe host — wrap it in a fixed container at the screen corner.",
4991
+ "props": [
4992
+ {
4993
+ "name": "title",
4994
+ "type": "string",
4995
+ "required": true,
4996
+ "description": "Heading, rendered verbatim"
4997
+ },
4998
+ {
4999
+ "name": "items",
5000
+ "type": "TransferQueueItem[]",
5001
+ "required": true,
5002
+ "description": "Items to show, in display order"
5003
+ },
5004
+ {
5005
+ "name": "onClose",
5006
+ "type": "() => void",
5007
+ "required": true,
5008
+ "description": "Called when the queue should close"
5009
+ },
5010
+ {
5011
+ "name": "onCancelItem",
5012
+ "type": "(id: string) => void",
5013
+ "required": false,
5014
+ "description": "Called with an item's id when the user cancels it"
5015
+ },
5016
+ {
5017
+ "name": "labels",
5018
+ "type": "Partial<TransferQueueLabels>",
5019
+ "required": false,
5020
+ "description": "Overrides for the English default strings"
5021
+ },
5022
+ {
5023
+ "name": "autoCloseDelay",
5024
+ "type": "number",
5025
+ "required": false,
5026
+ "defaultValue": "TRANSFER_QUEUE_AUTO_CLOSE_DELAY_MS",
5027
+ "description": "Delay before an all-succeeded queue closes itself; `0` disables"
5028
+ },
5029
+ {
5030
+ "name": "className",
5031
+ "type": "string",
5032
+ "required": false,
5033
+ "description": "Additional CSS classes for the root panel"
5034
+ },
5035
+ {
5036
+ "name": "bodyClassName",
5037
+ "type": "string",
5038
+ "required": false,
5039
+ "description": "Additional CSS classes for the list of rows"
5040
+ }
5041
+ ],
5042
+ "examples": [
5043
+ "<TransferQueue\n title=\"Importing 2 files\"\n items={[\n { id: '1', name: 'report.pdf', status: TransferQueueItemStatus.Success },\n { id: '2', name: 'data.csv', status: TransferQueueItemStatus.InProgress, percent: 40 },\n ]}\n onClose={handleClose}\n onCancelItem={handleCancel}\n/>"
5044
+ ],
5045
+ "sourceFile": "components/New/TransferQueue/TransferQueue.tsx"
5046
+ },
3867
5047
  {
3868
5048
  "name": "Grid",
3869
5049
  "category": "Components_2_0",
@@ -5552,7 +6732,8 @@
5552
6732
  "examples": [
5553
6733
  "<DialFileIcon extension=\".pdf\" />\n<DialFileIcon extension=\"tsx\" size={28} stroke={1.25} />\n<DialFileIcon extension=\"unknown\" decorative /> // decorative, hidden from AT"
5554
6734
  ],
5555
- "sourceFile": "components/FileIcon/FileIcon.tsx"
6735
+ "sourceFile": "components/FileIcon/FileIcon.tsx",
6736
+ "supersededBy": "FileIcon"
5556
6737
  },
5557
6738
  {
5558
6739
  "name": "DialFormItem",
@@ -5670,7 +6851,8 @@
5670
6851
  "examples": [
5671
6852
  "<DialSharedEntityIndicator />\n<DialSharedEntityIndicator size={12} label=\"Opens in new window\" />"
5672
6853
  ],
5673
- "sourceFile": "components/SharedEntityIndicator/SharedEntityIndicator.tsx"
6854
+ "sourceFile": "components/SharedEntityIndicator/SharedEntityIndicator.tsx",
6855
+ "supersededBy": "SharedEntityIndicator"
5674
6856
  },
5675
6857
  {
5676
6858
  "name": "DialFileName",
@@ -5750,7 +6932,8 @@
5750
6932
  "examples": [
5751
6933
  "// Without details\n<DialFileName name=\"Document.pdf\" />\n\n// With details (file size and updated date)\n<DialFileName\n name=\"Document.pdf\"\n details={<span className=\"text-secondary\">24 KB · Jul 20, 2025</span>}\n/>"
5752
6934
  ],
5753
- "sourceFile": "components/FileName/FileName.tsx"
6935
+ "sourceFile": "components/FileName/FileName.tsx",
6936
+ "supersededBy": "FileName"
5754
6937
  },
5755
6938
  {
5756
6939
  "name": "DialFolderName",
@@ -5827,7 +7010,8 @@
5827
7010
  "examples": [
5828
7011
  "<DialFolderName name=\"Organization\" />"
5829
7012
  ],
5830
- "sourceFile": "components/FolderName/FolderName.tsx"
7013
+ "sourceFile": "components/FolderName/FolderName.tsx",
7014
+ "supersededBy": "FolderName"
5831
7015
  },
5832
7016
  {
5833
7017
  "name": "DialResizableContainer",
@@ -8340,6 +9524,12 @@
8340
9524
  "required": false,
8341
9525
  "description": "Optional tooltip displayed when a file or folder name contains forbidden characters"
8342
9526
  },
9527
+ {
9528
+ "name": "skipForbiddenSymbolsCheckForActions",
9529
+ "type": "boolean",
9530
+ "required": false,
9531
+ "description": "When provided, skips the forbidden-symbols check when building row action menus, so all actions are shown even for items whose names contain forbidden characters."
9532
+ },
8343
9533
  {
8344
9534
  "name": "onCreateFolder",
8345
9535
  "type": "(\n file: DialUploadFileItem,\n folderPath: string,\n fileId: string,\n ) => void | Promise<void>",
@@ -8784,7 +9974,8 @@
8784
9974
  "examples": [
8785
9975
  "<DialSchemaRenderer\n schema={mySchema}\n onChange={(v) => console.log(v)}\n onDefaultValues={(defaults) => console.log(defaults)}\n/>"
8786
9976
  ],
8787
- "sourceFile": "components/SchemaRenderer/SchemaRenderer.tsx"
9977
+ "sourceFile": "components/SchemaRenderer/SchemaRenderer.tsx",
9978
+ "supersededBy": "SchemaRenderer"
8788
9979
  },
8789
9980
  {
8790
9981
  "name": "DialJsonEditor",
@@ -8889,6 +10080,13 @@
8889
10080
  "type": "ReactNode",
8890
10081
  "required": false,
8891
10082
  "description": "Content to display when the editor is empty"
10083
+ },
10084
+ {
10085
+ "name": "showDragbar",
10086
+ "type": "boolean",
10087
+ "required": false,
10088
+ "defaultValue": "true",
10089
+ "description": "Whether to show the bottom drag bar that resizes the editor height"
8892
10090
  }
8893
10091
  ],
8894
10092
  "examples": [
@@ -9142,6 +10340,10 @@
9142
10340
  "name": "Static",
9143
10341
  "value": "'static'"
9144
10342
  },
10343
+ {
10344
+ "name": "Starter",
10345
+ "value": "'starter'"
10346
+ },
9145
10347
  {
9146
10348
  "name": "Success",
9147
10349
  "value": "'success'"
@@ -10180,7 +11382,7 @@
10180
11382
  "value": "'flat-sections'"
10181
11383
  }
10182
11384
  ],
10183
- "sourceFile": "components/SchemaRenderer/types.ts"
11385
+ "sourceFile": "types/json-schema.ts"
10184
11386
  },
10185
11387
  {
10186
11388
  "name": "SchemaDisplayMode",
@@ -10195,7 +11397,7 @@
10195
11397
  "value": "'radio'"
10196
11398
  }
10197
11399
  ],
10198
- "sourceFile": "components/SchemaRenderer/types.ts"
11400
+ "sourceFile": "types/json-schema.ts"
10199
11401
  },
10200
11402
  {
10201
11403
  "name": "SchemaOrientation",
@@ -10210,7 +11412,7 @@
10210
11412
  "value": "'column'"
10211
11413
  }
10212
11414
  ],
10213
- "sourceFile": "components/SchemaRenderer/types.ts"
11415
+ "sourceFile": "types/json-schema.ts"
10214
11416
  },
10215
11417
  {
10216
11418
  "name": "JsonSchemaType",
@@ -10245,7 +11447,7 @@
10245
11447
  "value": "'null'"
10246
11448
  }
10247
11449
  ],
10248
- "sourceFile": "components/SchemaRenderer/types.ts"
11450
+ "sourceFile": "types/json-schema.ts"
10249
11451
  },
10250
11452
  {
10251
11453
  "name": "JsonSchema",
@@ -10256,7 +11458,7 @@
10256
11458
  "value": "Record<string, JsonSchemaDef>"
10257
11459
  }
10258
11460
  ],
10259
- "sourceFile": "components/SchemaRenderer/types.ts"
11461
+ "sourceFile": "models/json-schema.ts"
10260
11462
  },
10261
11463
  {
10262
11464
  "name": "JsonSchemaDef",
@@ -10355,7 +11557,7 @@
10355
11557
  "value": "string[]"
10356
11558
  }
10357
11559
  ],
10358
- "sourceFile": "components/SchemaRenderer/types.ts"
11560
+ "sourceFile": "models/json-schema.ts"
10359
11561
  },
10360
11562
  {
10361
11563
  "name": "ValidationError",
@@ -10370,7 +11572,132 @@
10370
11572
  "value": "string"
10371
11573
  }
10372
11574
  ],
10373
- "sourceFile": "components/SchemaRenderer/types.ts"
11575
+ "sourceFile": "models/json-schema.ts"
11576
+ },
11577
+ {
11578
+ "name": "SchemaRendererTexts",
11579
+ "kind": "interface",
11580
+ "members": [
11581
+ {
11582
+ "name": "noItemSchema",
11583
+ "value": "string"
11584
+ },
11585
+ {
11586
+ "name": "noItemsYet",
11587
+ "value": "string"
11588
+ },
11589
+ {
11590
+ "name": "addItem",
11591
+ "value": "string"
11592
+ },
11593
+ {
11594
+ "name": "selectTypeToAdd",
11595
+ "value": "string"
11596
+ },
11597
+ {
11598
+ "name": "noConfigurableProperties",
11599
+ "value": "string"
11600
+ },
11601
+ {
11602
+ "name": "noFieldsYet",
11603
+ "value": "string"
11604
+ },
11605
+ {
11606
+ "name": "keyColumnHeader",
11607
+ "value": "string"
11608
+ },
11609
+ {
11610
+ "name": "valueColumnHeader",
11611
+ "value": "string"
11612
+ },
11613
+ {
11614
+ "name": "addField",
11615
+ "value": "string"
11616
+ },
11617
+ {
11618
+ "name": "keyInputPlaceholder",
11619
+ "value": "string"
11620
+ },
11621
+ {
11622
+ "name": "stringInputPlaceholder",
11623
+ "value": "string"
11624
+ },
11625
+ {
11626
+ "name": "integerInputPlaceholder",
11627
+ "value": "string"
11628
+ },
11629
+ {
11630
+ "name": "numberInputPlaceholder",
11631
+ "value": "string"
11632
+ },
11633
+ {
11634
+ "name": "enumSelectPlaceholder",
11635
+ "value": "string"
11636
+ },
11637
+ {
11638
+ "name": "selectTypePlaceholder",
11639
+ "value": "string"
11640
+ },
11641
+ {
11642
+ "name": "removeItemAriaLabel",
11643
+ "value": "string"
11644
+ },
11645
+ {
11646
+ "name": "removeFieldAriaLabel",
11647
+ "value": "string"
11648
+ },
11649
+ {
11650
+ "name": "typeColumnHeader",
11651
+ "value": "string"
11652
+ },
11653
+ {
11654
+ "name": "entryTypeString",
11655
+ "value": "string"
11656
+ },
11657
+ {
11658
+ "name": "entryTypeNumber",
11659
+ "value": "string"
11660
+ },
11661
+ {
11662
+ "name": "entryTypeBoolean",
11663
+ "value": "string"
11664
+ },
11665
+ {
11666
+ "name": "entryTypeNull",
11667
+ "value": "string"
11668
+ },
11669
+ {
11670
+ "name": "entryTypeObject",
11671
+ "value": "string"
11672
+ },
11673
+ {
11674
+ "name": "entryTypeArray",
11675
+ "value": "string"
11676
+ },
11677
+ {
11678
+ "name": "entryTypeChangeWarning",
11679
+ "value": "string"
11680
+ },
11681
+ {
11682
+ "name": "booleanTrueOption",
11683
+ "value": "string"
11684
+ },
11685
+ {
11686
+ "name": "booleanFalseOption",
11687
+ "value": "string"
11688
+ },
11689
+ {
11690
+ "name": "invalidJsonError",
11691
+ "value": "string"
11692
+ }
11693
+ ],
11694
+ "sourceFile": "models/json-schema.ts"
11695
+ },
11696
+ {
11697
+ "name": "SchemaRenderField",
11698
+ "kind": "type",
11699
+ "sourceFile": "components/New/SchemaRenderer/types.ts",
11700
+ "typeBody": "(\n path: string[],\n schema: JsonSchemaDef,\n defaultElement: ReactElement,\n) => ReactNode"
10374
11701
  },
10375
11702
  {
10376
11703
  "name": "NotificationVariant",
@@ -10416,36 +11743,77 @@
10416
11743
  "value": "'section-message'"
10417
11744
  }
10418
11745
  ],
10419
- "sourceFile": "types/notification.ts"
11746
+ "sourceFile": "types/notification.ts"
11747
+ },
11748
+ {
11749
+ "name": "CalendarMode",
11750
+ "kind": "enum",
11751
+ "members": [
11752
+ {
11753
+ "name": "Date",
11754
+ "value": "'date'"
11755
+ },
11756
+ {
11757
+ "name": "DateTime",
11758
+ "value": "'datetime'"
11759
+ },
11760
+ {
11761
+ "name": "Time",
11762
+ "value": "'time'"
11763
+ },
11764
+ {
11765
+ "name": "Weekday",
11766
+ "value": "'weekday'"
11767
+ }
11768
+ ],
11769
+ "sourceFile": "types/calendar.ts"
11770
+ },
11771
+ {
11772
+ "name": "CalendarValue",
11773
+ "kind": "type",
11774
+ "sourceFile": "components/New/Calendar/Calendar.tsx",
11775
+ "typeBody": "Date | string | null"
11776
+ },
11777
+ {
11778
+ "name": "BreadcrumbsSize",
11779
+ "kind": "enum",
11780
+ "members": [
11781
+ {
11782
+ "name": "Small",
11783
+ "value": "'small'",
11784
+ "comment": "14px `dial-small-text`, with a `dial-small-semi-text` current page."
11785
+ },
11786
+ {
11787
+ "name": "Heading",
11788
+ "value": "'heading'",
11789
+ "comment": "18px `dial-h2-text`, for a trail that doubles as the page heading. The\ntoken is semibold, so every segment is — including the current page."
11790
+ }
11791
+ ],
11792
+ "sourceFile": "types/breadcrumbs.ts"
10420
11793
  },
10421
11794
  {
10422
- "name": "CalendarMode",
10423
- "kind": "enum",
11795
+ "name": "BreadcrumbsItem",
11796
+ "kind": "interface",
10424
11797
  "members": [
10425
11798
  {
10426
- "name": "Date",
10427
- "value": "'date'"
11799
+ "name": "label",
11800
+ "value": "string"
10428
11801
  },
10429
11802
  {
10430
- "name": "DateTime",
10431
- "value": "'datetime'"
11803
+ "name": "href?",
11804
+ "value": "string"
10432
11805
  },
10433
11806
  {
10434
- "name": "Time",
10435
- "value": "'time'"
11807
+ "name": "onClick?",
11808
+ "value": "(event: MouseEvent<HTMLElement>) => void"
10436
11809
  },
10437
11810
  {
10438
- "name": "Weekday",
10439
- "value": "'weekday'"
11811
+ "name": "icon?",
11812
+ "value": "ReactNode"
10440
11813
  }
10441
11814
  ],
10442
- "sourceFile": "types/calendar.ts"
10443
- },
10444
- {
10445
- "name": "CalendarValue",
10446
- "kind": "type",
10447
- "sourceFile": "components/New/Calendar/Calendar.tsx",
10448
- "typeBody": "Date | string | null"
11815
+ "sourceFile": "components/New/Breadcrumbs/Breadcrumbs.tsx",
11816
+ "description": "One step of the trail rendered by ."
10449
11817
  },
10450
11818
  {
10451
11819
  "name": "TextareaResize",
@@ -10470,6 +11838,24 @@
10470
11838
  ],
10471
11839
  "sourceFile": "components/New/Textarea/Textarea.tsx"
10472
11840
  },
11841
+ {
11842
+ "name": "AccordionCaretPosition",
11843
+ "kind": "enum",
11844
+ "members": [
11845
+ {
11846
+ "name": "Start",
11847
+ "value": "'start'",
11848
+ "comment": "Before the title, at the header's leading edge."
11849
+ },
11850
+ {
11851
+ "name": "End",
11852
+ "value": "'end'",
11853
+ "comment": "After the title, at the header's trailing edge."
11854
+ }
11855
+ ],
11856
+ "sourceFile": "types/accordion.ts",
11857
+ "description": "Where an `Accordion` header draws its caret."
11858
+ },
10473
11859
  {
10474
11860
  "name": "RadioGroupItem",
10475
11861
  "kind": "interface",
@@ -10544,6 +11930,10 @@
10544
11930
  "name": "count?",
10545
11931
  "value": "number"
10546
11932
  },
11933
+ {
11934
+ "name": "icon?",
11935
+ "value": "ReactNode"
11936
+ },
10547
11937
  {
10548
11938
  "name": "disabled?",
10549
11939
  "value": "boolean"
@@ -10571,6 +11961,147 @@
10571
11961
  ],
10572
11962
  "sourceFile": "components/New/FilterChips/FilterChips.tsx"
10573
11963
  },
11964
+ {
11965
+ "name": "BadgeColor",
11966
+ "kind": "enum",
11967
+ "members": [
11968
+ {
11969
+ "name": "Blue",
11970
+ "value": "'blue'"
11971
+ },
11972
+ {
11973
+ "name": "Green",
11974
+ "value": "'green'"
11975
+ },
11976
+ {
11977
+ "name": "Violet",
11978
+ "value": "'violet'"
11979
+ },
11980
+ {
11981
+ "name": "Indigo",
11982
+ "value": "'indigo'"
11983
+ },
11984
+ {
11985
+ "name": "Brown",
11986
+ "value": "'brown'"
11987
+ },
11988
+ {
11989
+ "name": "Red",
11990
+ "value": "'red'"
11991
+ }
11992
+ ],
11993
+ "sourceFile": "types/badge.ts",
11994
+ "description": "The visual colour of a `BadgeVariant.Filled` badge."
11995
+ },
11996
+ {
11997
+ "name": "BadgeVariant",
11998
+ "kind": "enum",
11999
+ "members": [
12000
+ {
12001
+ "name": "Outlined",
12002
+ "value": "'outlined'",
12003
+ "comment": "A neutral label with a border on the sunken layer, for topics and plain categories."
12004
+ },
12005
+ {
12006
+ "name": "Filled",
12007
+ "value": "'filled'",
12008
+ "comment": "A pill filled with one of the visual colours, for a label that is told apart by colour."
12009
+ }
12010
+ ],
12011
+ "sourceFile": "types/badge.ts",
12012
+ "description": "How a `Badge` is drawn."
12013
+ },
12014
+ {
12015
+ "name": "AvatarShape",
12016
+ "kind": "enum",
12017
+ "members": [
12018
+ {
12019
+ "name": "Circle",
12020
+ "value": "'circle'",
12021
+ "comment": "A circle — the avatar of a person."
12022
+ },
12023
+ {
12024
+ "name": "Square",
12025
+ "value": "'square'",
12026
+ "comment": "A rounded square — the avatar of an application, model or other entity."
12027
+ }
12028
+ ],
12029
+ "sourceFile": "types/avatar.ts",
12030
+ "description": "The outline an `Avatar` is clipped to."
12031
+ },
12032
+ {
12033
+ "name": "EntityIdentityItem",
12034
+ "kind": "interface",
12035
+ "members": [
12036
+ {
12037
+ "name": "type",
12038
+ "value": "EntityType"
12039
+ },
12040
+ {
12041
+ "name": "name",
12042
+ "value": "string"
12043
+ },
12044
+ {
12045
+ "name": "version?",
12046
+ "value": "string"
12047
+ },
12048
+ {
12049
+ "name": "iconUrl?",
12050
+ "value": "string"
12051
+ },
12052
+ {
12053
+ "name": "isFeatured?",
12054
+ "value": "boolean"
12055
+ }
12056
+ ],
12057
+ "sourceFile": "components/New/EntityIdentity/EntityIdentity.tsx",
12058
+ "description": "Identity fields of the entity rendered by `EntityIdentity`."
12059
+ },
12060
+ {
12061
+ "name": "EntityIdentityLabels",
12062
+ "kind": "interface",
12063
+ "members": [
12064
+ {
12065
+ "name": "type?",
12066
+ "value": "string"
12067
+ },
12068
+ {
12069
+ "name": "featured?",
12070
+ "value": "string"
12071
+ }
12072
+ ],
12073
+ "sourceFile": "components/New/EntityIdentity/EntityIdentity.tsx",
12074
+ "description": "User-visible strings of `EntityIdentity`."
12075
+ },
12076
+ {
12077
+ "name": "EntityType",
12078
+ "kind": "enum",
12079
+ "members": [
12080
+ {
12081
+ "name": "Model",
12082
+ "value": "'model'"
12083
+ },
12084
+ {
12085
+ "name": "Agent",
12086
+ "value": "'agent'"
12087
+ },
12088
+ {
12089
+ "name": "Toolset",
12090
+ "value": "'toolset'"
12091
+ },
12092
+ {
12093
+ "name": "Skill",
12094
+ "value": "'skill'"
12095
+ },
12096
+ {
12097
+ "name": "Prompt",
12098
+ "value": "'prompt'",
12099
+ "comment": "Reusable text prompt. Carries a body instead of a runtime."
12100
+ }
12101
+ ],
12102
+ "sourceFile": "types/entity-type.ts",
12103
+ "description": "The category of a DIAL catalog entity. It picks the colour of the type label and the featured chip."
12104
+ },
10574
12105
  {
10575
12106
  "name": "TagAppearance",
10576
12107
  "kind": "enum",
@@ -10586,6 +12117,25 @@
10586
12117
  ],
10587
12118
  "sourceFile": "types/tag.ts"
10588
12119
  },
12120
+ {
12121
+ "name": "AutocompleteTagInputSuggestion",
12122
+ "kind": "interface",
12123
+ "members": [
12124
+ {
12125
+ "name": "value",
12126
+ "value": "string"
12127
+ },
12128
+ {
12129
+ "name": "label",
12130
+ "value": "string"
12131
+ },
12132
+ {
12133
+ "name": "description?",
12134
+ "value": "string"
12135
+ }
12136
+ ],
12137
+ "sourceFile": "components/New/AutocompleteTagInput/utils.ts"
12138
+ },
10589
12139
  {
10590
12140
  "name": "TooltipContainerOptions",
10591
12141
  "kind": "interface",
@@ -10613,6 +12163,21 @@
10613
12163
  ],
10614
12164
  "sourceFile": "components/New/Tooltip/TooltipContext.tsx"
10615
12165
  },
12166
+ {
12167
+ "name": "InteractiveTooltipTrigger",
12168
+ "kind": "enum",
12169
+ "members": [
12170
+ {
12171
+ "name": "Hover",
12172
+ "value": "'hover'"
12173
+ },
12174
+ {
12175
+ "name": "Click",
12176
+ "value": "'click'"
12177
+ }
12178
+ ],
12179
+ "sourceFile": "types/tooltip.ts"
12180
+ },
10616
12181
  {
10617
12182
  "name": "TooltipPlacement",
10618
12183
  "kind": "enum",
@@ -10635,6 +12200,140 @@
10635
12200
  }
10636
12201
  ],
10637
12202
  "sourceFile": "types/tooltip.ts"
12203
+ },
12204
+ {
12205
+ "name": "TransferQueueItem",
12206
+ "kind": "interface",
12207
+ "members": [
12208
+ {
12209
+ "name": "id",
12210
+ "value": "string"
12211
+ },
12212
+ {
12213
+ "name": "name",
12214
+ "value": "string"
12215
+ },
12216
+ {
12217
+ "name": "status",
12218
+ "value": "TransferQueueItemStatus"
12219
+ },
12220
+ {
12221
+ "name": "percent?",
12222
+ "value": "number"
12223
+ },
12224
+ {
12225
+ "name": "message?",
12226
+ "value": "string"
12227
+ }
12228
+ ],
12229
+ "sourceFile": "components/New/TransferQueue/TransferQueue.tsx",
12230
+ "description": "One file (or other named unit of work) tracked by a `TransferQueue`."
12231
+ },
12232
+ {
12233
+ "name": "TransferQueueLabels",
12234
+ "kind": "interface",
12235
+ "members": [
12236
+ {
12237
+ "name": "cancelItemAriaLabel",
12238
+ "value": "(name: string) => string"
12239
+ },
12240
+ {
12241
+ "name": "itemProgressAriaLabel",
12242
+ "value": "(name: string) => string"
12243
+ },
12244
+ {
12245
+ "name": "successLabel",
12246
+ "value": "string"
12247
+ },
12248
+ {
12249
+ "name": "canceledLabel",
12250
+ "value": "string"
12251
+ },
12252
+ {
12253
+ "name": "failedMessage",
12254
+ "value": "string"
12255
+ },
12256
+ {
12257
+ "name": "warningMessage",
12258
+ "value": "string"
12259
+ },
12260
+ {
12261
+ "name": "queueProgressAriaLabel",
12262
+ "value": "string"
12263
+ },
12264
+ {
12265
+ "name": "queueProgressValueText",
12266
+ "value": "(completed: number, total: number) => string"
12267
+ },
12268
+ {
12269
+ "name": "collapseAriaLabel",
12270
+ "value": "string"
12271
+ },
12272
+ {
12273
+ "name": "expandAriaLabel",
12274
+ "value": "string"
12275
+ },
12276
+ {
12277
+ "name": "closeAriaLabel",
12278
+ "value": "string"
12279
+ },
12280
+ {
12281
+ "name": "closeConfirmHeader",
12282
+ "value": "string"
12283
+ },
12284
+ {
12285
+ "name": "closeConfirmDescriptionInProgress",
12286
+ "value": "string"
12287
+ },
12288
+ {
12289
+ "name": "closeConfirmDescriptionFailed",
12290
+ "value": "string"
12291
+ },
12292
+ {
12293
+ "name": "closeConfirmDescriptionMixed",
12294
+ "value": "string"
12295
+ },
12296
+ {
12297
+ "name": "closeConfirmLabel",
12298
+ "value": "string"
12299
+ },
12300
+ {
12301
+ "name": "closeCancelLabel",
12302
+ "value": "string"
12303
+ }
12304
+ ],
12305
+ "sourceFile": "components/New/TransferQueue/TransferQueue.tsx",
12306
+ "description": "Every user-visible string of `TransferQueue`."
12307
+ },
12308
+ {
12309
+ "name": "TransferQueueItemStatus",
12310
+ "kind": "enum",
12311
+ "members": [
12312
+ {
12313
+ "name": "InProgress",
12314
+ "value": "'inProgress'",
12315
+ "comment": "Queued or running; the row shows a spinner and, when cancelable, a cancel control."
12316
+ },
12317
+ {
12318
+ "name": "Success",
12319
+ "value": "'success'"
12320
+ },
12321
+ {
12322
+ "name": "Warning",
12323
+ "value": "'warning'",
12324
+ "comment": "Delivered, but not everything the user asked for made it through."
12325
+ },
12326
+ {
12327
+ "name": "Failed",
12328
+ "value": "'failed'"
12329
+ },
12330
+ {
12331
+ "name": "Canceled",
12332
+ "value": "'canceled'"
12333
+ }
12334
+ ],
12335
+ "sourceFile": "types/transfer-queue.ts",
12336
+ "description": "Lifecycle status of one item in a `TransferQueue`."
10638
12337
  }
10639
12338
  ],
10640
12339
  "hooks": [
@@ -10699,12 +12398,30 @@
10699
12398
  "description": "Class names of the enclosing `ThemeScope`s, outermost first, or `''` when the\ncaller sits outside any scope. Components rendering into a `FloatingPortal`\nmerge this onto their floating root so the tokens follow them out of the\nsubtree.",
10700
12399
  "signature": "() => string"
10701
12400
  },
12401
+ {
12402
+ "name": "extractInitials",
12403
+ "sourceFile": "utils/avatar.ts",
12404
+ "description": "Returns 1–2 uppercase initials derived from a display name, or `'?'` when it has no letters.",
12405
+ "signature": "(name: string) => string"
12406
+ },
10702
12407
  {
10703
12408
  "name": "matchesAccept",
10704
12409
  "sourceFile": "utils/file-accept.ts",
10705
12410
  "description": "Tests a file against the value of a native `accept` attribute.\n\nThe file picker filters by `accept` on its own, but a drop does not: dropping\na `.png` onto an input that accepts `.md` hands the file over regardless. Any\ndrop target therefore has to re-check what it received.\n\nSupports all three `accept` token forms — an extension (`.md`), a full MIME\ntype (`text/markdown`) and a MIME wildcard (`image/*`). An empty or missing\n`accept` accepts everything, matching the attribute's own semantics.",
10706
12411
  "signature": "(file: File, accept?: string) => boolean"
10707
12412
  },
12413
+ {
12414
+ "name": "DEFAULT_TRANSFER_QUEUE_LABELS",
12415
+ "sourceFile": "components/New/TransferQueue/constants.ts",
12416
+ "description": "English defaults for every `TransferQueue` string; a host passes translations through `labels`.",
12417
+ "signature": "DEFAULT_TRANSFER_QUEUE_LABELS: TransferQueueLabels"
12418
+ },
12419
+ {
12420
+ "name": "TRANSFER_QUEUE_AUTO_CLOSE_DELAY_MS",
12421
+ "sourceFile": "components/New/TransferQueue/constants.ts",
12422
+ "description": "Delay before a queue whose items have all succeeded closes itself.",
12423
+ "signature": "TRANSFER_QUEUE_AUTO_CLOSE_DELAY_MS = 8000"
12424
+ },
10708
12425
  {
10709
12426
  "name": "GRID_SELECTION_COLUMN_ID",
10710
12427
  "sourceFile": "components/New/Grid/Grid.tsx",
@@ -10735,8 +12452,8 @@
10735
12452
  {
10736
12453
  "name": "GRID_THEME_PARAMS",
10737
12454
  "sourceFile": "components/New/Grid/constants.ts",
10738
- "description": "ag-Grid theme parameters, resolved from the 2.0 colour tokens with the same\nliteral fallbacks the Tailwind config carries, so a consumer that defines no\nCSS variables still gets the intended palette.\n\nHover sits one step up the accent-alpha ramp from the selected tint, so a\nhovered selected row still reads as hovered — the same relationship the 2.0\ndropdown and select rows use.",
10739
- "signature": "GRID_THEME_PARAMS = {\n accentColor: 'var(--bg-control-accent, #1D4ED8)',\n backgroundColor: 'var(--bg-layer-raised, #FCFCFC)',\n oddRowBackgroundColor: 'var(--bg-layer-sunken, #EEF1F7)',\n selectedRowBackgroundColor: 'var(--bg-control-accent-alpha, #2764D90F)',\n rowHoverColor: 'var(--bg-control-accent-alpha-hover, #2764D924)',\n borderColor: 'var(--stroke-tertiary, #E0E6F0)',\n // Dividers inside the table sit on the thin stroke (0.5px) rather than the\n // 1px main stroke that controls and standalone dividers use, so a dense grid\n // reads as rows of data instead of a set of boxes. Sub-pixel widths are\n // antialiased rather than snapped, which is what makes the line look lighter.\n // `wrapperBorder` and the pinned-column boundary are left on the main stroke\n // by the theme: those frame the table and separate its regions rather than\n // dividing rows and columns.\n rowBorder: THIN_TABLE_DIVIDER,\n headerRowBorder: THIN_TABLE_DIVIDER,\n headerColumnBorder: THIN_TABLE_DIVIDER,\n chromeBackgroundColor: 'var(--bg-layer-base, #F5F7FA)',\n foregroundColor: 'var(--text-primary, #161B2D)',\n headerTextColor: 'var(--text-secondary, #57647A)',\n // 1.0 asked the browser for dark native widgets while painting a light\n // theme; the scheme now matches the palette it is used with.\n browserColorScheme: 'light',\n headerFontSize: 14,\n headerFontWeight: 600,\n fontSize: 14,\n fontFamily: 'var(--theme-font, var(--font-inter))',\n spacing: 4,\n borderRadius: 4,\n wrapperBorderRadius: 8,\n}"
12455
+ "description": "ag-Grid theme parameters, resolved from the 2.0 colour tokens with the same\nliteral fallbacks the Tailwind config carries, so a consumer that defines no\nCSS variables still gets the intended palette.\n\nHover uses the subtle accent tint and selection the slightly stronger\nselected tint, as in the grid cell design.",
12456
+ "signature": "GRID_THEME_PARAMS = {\n accentColor: 'var(--bg-control-accent, #1D4ED8)',\n backgroundColor: 'var(--bg-layer-raised, #FCFCFC)',\n oddRowBackgroundColor: 'var(--bg-layer-sunken, #EEF1F7)',\n selectedRowBackgroundColor:\n 'var(--bg-control-accent-alpha-active-subtle, #2764D914)',\n rowHoverColor: 'var(--bg-control-accent-alpha-hover-subtle, #2764D90A)',\n borderColor: 'var(--stroke-tertiary, #E0E6F0)',\n // Dividers inside the table sit on the thin stroke (0.5px) rather than the\n // 1px main stroke that controls and standalone dividers use, so a dense grid\n // reads as rows of data instead of a set of boxes. Sub-pixel widths are\n // antialiased rather than snapped, which is what makes the line look lighter.\n // `wrapperBorder` and the pinned-column boundary are left on the main stroke\n // by the theme: those frame the table and separate its regions rather than\n // dividing rows and columns.\n rowBorder: THIN_TABLE_DIVIDER,\n // Off: ag-Grid draws this one both under the header and between the title\n // row and the filter row, and the design has no line between those two. The\n // line under the header is drawn at 1px in `styles/grid.scss`.\n headerRowBorder: false,\n headerColumnBorder: THIN_TABLE_DIVIDER,\n // The design's header divider is a short 12px mark centred in the cell, not\n // the 20px (half the row) ag-Grid draws by default.\n headerColumnBorderHeight: 12,\n chromeBackgroundColor: 'var(--bg-layer-base, #F5F7FA)',\n headerBackgroundColor: 'var(--bg-layer-raised, #FCFCFC)',\n foregroundColor: 'var(--text-primary, #161B2D)',\n headerTextColor: 'var(--text-secondary, #57647A)',\n // 1.0 asked the browser for dark native widgets while painting a light\n // theme; the scheme now matches the palette it is used with.\n browserColorScheme: 'light',\n headerFontSize: 14,\n headerFontWeight: 600,\n fontSize: 14,\n fontFamily: 'var(--theme-font, var(--font-inter))',\n spacing: 4,\n borderRadius: 4,\n // Search fields in the header and filter popups: `rounded-lg`.\n inputBorderRadius: 8,\n wrapperBorderRadius: 8,\n}"
10740
12457
  },
10741
12458
  {
10742
12459
  "name": "GRID_ROW_HEIGHT",
@@ -10843,7 +12560,7 @@
10843
12560
  {
10844
12561
  "name": "DIAL_KIT_CLASS",
10845
12562
  "sourceFile": "constants/public-class-names.ts",
10846
- "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\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 `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\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 /**\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 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 drop area of a `FileDropzone`. */\n fileDropzone: 'dial-kit-file-dropzone',\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 /** The `role=\"tablist\"` root of `Tabs`. */\n tabs: 'dial-kit-tabs',\n /**\n * One tab inside `Tabs`. The selected tab's underline keeps its own\n * `dial-kit-tab-selected-underline`.\n */\n tab: 'dial-kit-tab',\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"
12563
+ "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 /** 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 /**\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"
10847
12564
  }
10848
12565
  ]
10849
12566
  }