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

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 (530) hide show
  1. package/README.md +32 -3
  2. package/dist/CHANGELOG.md +17 -2
  3. package/dist/DateCellRenderer-BVM-Q8yx.cjs +63 -0
  4. package/dist/DateCellRenderer-ssp7eaZY.cjs +1 -0
  5. package/dist/IconButton-DWqoaBWf.cjs +1 -0
  6. package/dist/JsonEditor-qv1Z0dLX.cjs +1 -0
  7. package/dist/MarkdownEditor-DHn2pYOJ.cjs +1 -0
  8. package/dist/MarkdownEditor-jQ8nDJfx.cjs +1 -0
  9. package/dist/MarkdownEditorContainer-Bzcnoemw.cjs +1 -0
  10. package/dist/Switch-CUKClcEz.cjs +1 -0
  11. package/dist/_virtual/___vite-browser-external.js +6 -0
  12. package/dist/_virtual/__vite-browser-external.js +4 -0
  13. package/dist/_virtual/_commonjsHelpers.js +31 -0
  14. package/dist/_virtual/index.js +5 -0
  15. package/dist/_virtual/index2.js +4 -0
  16. package/dist/_virtual/index3.js +7 -0
  17. package/dist/assets/icons/add-child.svg.js +5 -0
  18. package/dist/assets/icons/add-sibling.svg.js +5 -0
  19. package/dist/assets/icons/copy-to.svg.js +5 -0
  20. package/dist/assets/icons/file/c.svg.js +5 -0
  21. package/dist/assets/icons/file/cpp.svg.js +5 -0
  22. package/dist/assets/icons/file/cs.svg.js +5 -0
  23. package/dist/assets/icons/file/ini.svg.js +5 -0
  24. package/dist/assets/icons/file/json.svg.js +5 -0
  25. package/dist/assets/icons/file/md.svg.js +5 -0
  26. package/dist/assets/icons/file/py.svg.js +5 -0
  27. package/dist/assets/icons/loader.svg.js +5 -0
  28. package/dist/assets/icons/move-to.svg.js +5 -0
  29. package/dist/assets/icons/no-data.svg.js +5 -0
  30. package/dist/assets/icons/open-popup.svg.js +5 -0
  31. package/dist/assets/icons/unshare.svg.js +5 -0
  32. package/dist/components/Accordion/Accordion.js +70 -0
  33. package/dist/components/Analytics/Bar/Bar.js +80 -0
  34. package/dist/components/Analytics/Bar/utils.js +24 -0
  35. package/dist/components/Analytics/BarGroup/BarGroup.js +142 -0
  36. package/dist/components/Analytics/Card/Card.js +87 -0
  37. package/dist/components/Analytics/ErrorTag/ErrorTag.js +19 -0
  38. package/dist/components/Analytics/Histogram/Histogram.js +200 -0
  39. package/dist/components/Analytics/Histogram/utils.js +45 -0
  40. package/dist/components/AutocompleteInput/AutocompleteInputValue.js +21 -0
  41. package/dist/components/Breadcrumb/Breadcrumb.js +126 -0
  42. package/dist/components/Breadcrumb/BreadcrumbItem.js +83 -0
  43. package/dist/components/Breadcrumb/constants.js +20 -0
  44. package/dist/components/Button/Button.js +53 -0
  45. package/dist/components/Button/ButtonWrappers.js +40 -0
  46. package/dist/components/Button/constants.js +29 -0
  47. package/dist/components/Button/utils.js +11 -0
  48. package/dist/components/ButtonDropdown/ButtonDropdown.js +33 -0
  49. package/dist/components/ButtonDropdown/constants.js +8 -0
  50. package/dist/components/CaptionText/CaptionText.js +27 -0
  51. package/dist/components/Checkbox/Checkbox.js +64 -0
  52. package/dist/components/Checkbox/constants.js +4 -0
  53. package/dist/components/CloseButton/CloseButton.js +27 -0
  54. package/dist/components/CollapsibleSidebar/CollapsibleSidebar.js +84 -0
  55. package/dist/components/ConfirmationPopup/ConfirmationPopup.js +75 -0
  56. package/dist/components/ConfirmationPopup/constants.js +32 -0
  57. package/dist/components/DraggableItem/DraggableItem.js +61 -0
  58. package/dist/components/DraggableItem/constants.js +6 -0
  59. package/dist/components/Dropdown/Dropdown.js +293 -0
  60. package/dist/components/Dropdown/DropdownSubMenuItem.js +121 -0
  61. package/dist/components/Dropdown/constants.js +24 -0
  62. package/dist/components/DropdownIcon/DropdownIcon.js +92 -0
  63. package/dist/components/EllipsisTooltip/EllipsisTooltip.js +75 -0
  64. package/dist/components/EllipsisTooltip/constants.js +4 -0
  65. package/dist/components/FabButton/FabButton.js +35 -0
  66. package/dist/components/FileIcon/FileIcon.js +37 -0
  67. package/dist/components/FileIcon/constants.js +60 -0
  68. package/dist/components/FileManager/FileManager.js +887 -0
  69. package/dist/components/FileManager/FileManagerContext.js +5 -0
  70. package/dist/components/FileManager/FileManagerProvider.js +770 -0
  71. package/dist/components/FileManager/FileManagerTooltip.js +92 -0
  72. package/dist/components/FileManager/components/ConflictResolutionPopup/ConflictResolutionPopup.js +293 -0
  73. package/dist/components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup.js +201 -0
  74. package/dist/components/FileManager/components/DialFileManagerItemSummaryCell/DialFileManagerItemSummaryCell.js +52 -0
  75. package/dist/components/FileManager/components/FileManagerBulkActionsToolbar/FileManagerBulkActionsToolbar.js +103 -0
  76. package/dist/components/FileManager/components/FileManagerBulkActionsToolbar/constants.js +5 -0
  77. package/dist/components/FileManager/components/FileManagerDeleteConfirmationPopup/FileManagerDeleteConfirmationPopup.js +56 -0
  78. package/dist/components/FileManager/components/FileManagerItemIcon/FileManagerItemIcon.js +69 -0
  79. package/dist/components/FileManager/components/FileManagerItemName/FileManagerItemName.js +100 -0
  80. package/dist/components/FileManager/components/FileManagerItemNameInput/FileManagerItemNameInput.js +93 -0
  81. package/dist/components/FileManager/components/FileManagerNavigationPanel/FileManagerNavigationPanel.js +165 -0
  82. package/dist/components/FileManager/components/FileManagerNavigationPanel/constants.js +6 -0
  83. package/dist/components/FileManager/components/FileManagerToolbar/DialFileManagerToolbar.js +120 -0
  84. package/dist/components/FileManager/components/FileMetadataPopup/FileMetadataPopup.js +119 -0
  85. package/dist/components/FileManager/components/FileMetadataPopup/constants.js +9 -0
  86. package/dist/components/FileManager/components/FoldersTree/FoldersTree.js +180 -0
  87. package/dist/components/FileManager/components/FoldersTree/constants.js +9 -0
  88. package/dist/components/FileManager/components/FoldersTree/hooks/use-expanded-paths.js +51 -0
  89. package/dist/components/FileManager/constants.js +28 -0
  90. package/dist/components/FileManager/errors.js +10 -0
  91. package/dist/components/FileManager/hooks/use-bulk-actions.js +143 -0
  92. package/dist/components/FileManager/hooks/use-collapse-tree.js +22 -0
  93. package/dist/components/FileManager/hooks/use-conflict-resolution.js +158 -0
  94. package/dist/components/FileManager/hooks/use-current-path.js +29 -0
  95. package/dist/components/FileManager/hooks/use-file-clipboard.js +154 -0
  96. package/dist/components/FileManager/hooks/use-file-delete.js +39 -0
  97. package/dist/components/FileManager/hooks/use-file-download.js +16 -0
  98. package/dist/components/FileManager/hooks/use-file-manager-columns.js +106 -0
  99. package/dist/components/FileManager/hooks/use-file-manager-context.js +13 -0
  100. package/dist/components/FileManager/hooks/use-file-manager-tabs.js +23 -0
  101. package/dist/components/FileManager/hooks/use-file-metadata.js +20 -0
  102. package/dist/components/FileManager/hooks/use-file-search.js +90 -0
  103. package/dist/components/FileManager/hooks/use-file-upload.js +338 -0
  104. package/dist/components/FileManager/hooks/use-folder-creation.js +151 -0
  105. package/dist/components/FileManager/hooks/use-grid-actions-column.js +65 -0
  106. package/dist/components/FileManager/hooks/use-grid-context-menu.js +188 -0
  107. package/dist/components/FileManager/hooks/use-item-renaming.js +124 -0
  108. package/dist/components/FileManager/hooks/use-new-actions.js +67 -0
  109. package/dist/components/FileManager/hooks/use-paths-selection.js +28 -0
  110. package/dist/components/FileManager/hooks/use-show-hidden-files.js +20 -0
  111. package/dist/components/FileManager/hooks/use-tree-additional-buttons.js +39 -0
  112. package/dist/components/FileManager/hooks/use-trigger-view-create-folder.js +42 -0
  113. package/dist/components/FileManager/hooks/use-trigger-view-rename.js +25 -0
  114. package/dist/components/FileManager/utils.js +129 -0
  115. package/dist/components/FileName/FileName.js +68 -0
  116. package/dist/components/FolderName/FolderName.js +57 -0
  117. package/dist/components/FormItem/FormItem.js +90 -0
  118. package/dist/components/FormItem/constants.js +9 -0
  119. package/dist/components/FormPopup/FormPopup.js +59 -0
  120. package/dist/components/FormPopup/constants.js +6 -0
  121. package/dist/components/Grid/Grid.js +333 -0
  122. package/dist/components/Grid/constants.js +33 -0
  123. package/dist/components/Grid/renderers/DateCellRenderer.js +27 -0
  124. package/dist/components/Grid/renderers/constants.js +25 -0
  125. package/dist/components/Icon/Icon.js +6 -0
  126. package/dist/components/IconButton/IconButton.js +40 -0
  127. package/dist/components/IconButton/IconButtonWrappers.js +48 -0
  128. package/dist/components/InfoButton/InfoButton.js +32 -0
  129. package/dist/components/InfoButton/constants.js +4 -0
  130. package/dist/components/Input/Button/InputButton.js +37 -0
  131. package/dist/components/Input/Button/constants.js +4 -0
  132. package/dist/components/Input/Input.js +120 -0
  133. package/dist/components/Input/utils.js +37 -0
  134. package/dist/components/InputPopup/InputPopup.js +174 -0
  135. package/dist/components/JsonEditor/JsonEditor.js +65 -0
  136. package/dist/components/JsonEditor/lazy.js +4 -0
  137. package/dist/components/Label/Label.js +27 -0
  138. package/dist/components/LabelledText/LabelledText.js +37 -0
  139. package/dist/components/LoadFileArea/EmptyFileArea.js +130 -0
  140. package/dist/components/LoadFileArea/FilledDropZone.js +80 -0
  141. package/dist/components/LoadFileArea/FilledInput.js +29 -0
  142. package/dist/components/LoadFileArea/LoadFileArea.js +70 -0
  143. package/dist/components/LoadFileArea/LoadFileAreaField.js +128 -0
  144. package/dist/components/Loader/Loader.js +40 -0
  145. package/dist/components/Loader/constants.js +5 -0
  146. package/dist/components/MarkdownEditor/MarkdownEditor.js +37 -0
  147. package/dist/components/MarkdownEditor/MarkdownEditorContainer.js +80 -0
  148. package/dist/components/MarkdownEditor/lazy.js +4 -0
  149. package/dist/components/New/Accordion/Accordion.js +103 -0
  150. package/dist/components/New/Button/Button.js +76 -0
  151. package/dist/components/New/Button/ButtonWrappers.js +44 -0
  152. package/dist/components/New/Button/constants.js +27 -0
  153. package/dist/components/New/Button/utils.js +11 -0
  154. package/dist/components/New/ButtonDropdown/ButtonDropdown.js +28 -0
  155. package/dist/components/New/ButtonDropdown/constants.js +17 -0
  156. package/dist/components/New/Calendar/Calendar.js +343 -0
  157. package/dist/components/New/Calendar/constants.js +57 -0
  158. package/dist/components/New/Calendar/utils.js +77 -0
  159. package/dist/components/New/CaptionText/CaptionText.js +27 -0
  160. package/dist/components/New/CardShell/CardShell.js +22 -0
  161. package/dist/components/New/Checkbox/Checkbox.js +92 -0
  162. package/dist/components/New/Checkbox/CheckboxBox.js +34 -0
  163. package/dist/components/New/Checkbox/constants.js +8 -0
  164. package/dist/components/New/CloseButton/CloseButton.js +33 -0
  165. package/dist/components/New/CollapsibleSidebar/CollapsibleSidebar.js +108 -0
  166. package/dist/components/New/ConfirmationPopup/ConfirmationPopup.js +78 -0
  167. package/dist/components/New/ConfirmationPopup/constants.js +27 -0
  168. package/dist/components/New/Dropdown/Dropdown.js +316 -0
  169. package/dist/components/New/Dropdown/DropdownSubMenuItem.js +105 -0
  170. package/dist/components/New/Dropdown/constants.js +28 -0
  171. package/dist/components/New/Dropdown/item-mark.js +6 -0
  172. package/dist/components/New/EllipsisTooltip/EllipsisTooltip.js +45 -0
  173. package/dist/components/New/EllipsisTooltip/use-truncation.js +18 -0
  174. package/dist/components/New/FileDropzone/FileDropzone.js +135 -0
  175. package/dist/components/New/FolderPath/FolderPath.js +64 -0
  176. package/dist/components/New/Grid/Grid.js +301 -0
  177. package/dist/components/New/Grid/components/SelectionCell.js +50 -0
  178. package/dist/components/New/Grid/components/SelectionHeader.js +46 -0
  179. package/dist/components/New/Grid/constants.js +44 -0
  180. package/dist/components/New/Grid/renderers/DateCellRenderer.js +27 -0
  181. package/dist/components/New/Grid/renderers/constants.js +25 -0
  182. package/dist/components/New/Highlight/Highlight.js +50 -0
  183. package/dist/components/New/IconButton/IconButton.js +46 -0
  184. package/dist/components/New/IconButton/IconButtonWrappers.js +40 -0
  185. package/dist/components/New/InfoButton/InfoButton.js +39 -0
  186. package/dist/components/New/InlineSelect/InlineSelect.js +96 -0
  187. package/dist/components/New/Input/Button/InputButton.js +38 -0
  188. package/dist/components/New/Input/Button/constants.js +4 -0
  189. package/dist/components/New/Input/Input.js +169 -0
  190. package/dist/components/New/Input/utils.js +37 -0
  191. package/dist/components/New/InteractiveTooltip/InteractiveTooltip.js +104 -0
  192. package/dist/components/New/InteractiveTooltip/constants.js +6 -0
  193. package/dist/components/New/Label/Label.js +42 -0
  194. package/dist/components/New/MarkdownEditor/MarkdownEditor.js +41 -0
  195. package/dist/components/New/MarkdownEditor/constants.js +64 -0
  196. package/dist/components/New/MarkdownEditor/lazy.js +4 -0
  197. package/dist/components/New/MenuItem/MenuItem.js +108 -0
  198. package/dist/components/New/MenuItem/constants.js +16 -0
  199. package/dist/components/New/NoDataContent/NoDataContent.js +54 -0
  200. package/dist/components/New/Notification/Notification.js +67 -0
  201. package/dist/components/New/Notification/NotificationWrapper.js +61 -0
  202. package/dist/components/New/Notification/constants.js +32 -0
  203. package/dist/components/New/NumberInput/NumberInput.js +41 -0
  204. package/dist/components/New/PasswordInput/PasswordInput.js +54 -0
  205. package/dist/components/New/Popup/Popup.js +164 -0
  206. package/dist/components/New/Popup/constants.js +17 -0
  207. package/dist/components/New/Radio/Radio.js +100 -0
  208. package/dist/components/New/RadioGroup/RadioGroup.js +81 -0
  209. package/dist/components/New/RadioGroup/constants.js +11 -0
  210. package/dist/components/New/RadioGroupPopupField/RadioGroupPopupField.js +138 -0
  211. package/dist/components/New/RadioGroupPopupField/constants.js +11 -0
  212. package/dist/components/New/ResizableContainer/ConditionalResizableContainer.js +6 -0
  213. package/dist/components/New/ResizableContainer/ResizableContainer.js +106 -0
  214. package/dist/components/New/ResizableContainer/components/ResizeHandle.js +85 -0
  215. package/dist/components/New/Search/Search.js +74 -0
  216. package/dist/components/New/SegmentedControl/SegmentedControl.js +92 -0
  217. package/dist/components/New/SegmentedControl/constants.js +19 -0
  218. package/dist/components/New/Select/MultiSelectTags.js +23 -0
  219. package/dist/components/New/Select/Select.js +379 -0
  220. package/dist/components/New/Select/SelectSubMenuItem.js +103 -0
  221. package/dist/components/New/Select/constants.js +50 -0
  222. package/dist/components/New/Slider/Slider.js +112 -0
  223. package/dist/components/New/Switch/Switch.js +95 -0
  224. package/dist/components/New/Tabs/Tabs.js +95 -0
  225. package/dist/components/New/Tag/Tag.js +76 -0
  226. package/dist/components/New/Tag/constants.js +17 -0
  227. package/dist/components/New/TagInput/TagInput.js +197 -0
  228. package/dist/components/New/TagInput/utils.js +21 -0
  229. package/dist/components/New/Textarea/Textarea.js +55 -0
  230. package/dist/components/New/ThemeScope/ThemeScope.js +14 -0
  231. package/dist/components/New/ToggleIconButton/ToggleIconButton.js +54 -0
  232. package/dist/components/New/Tooltip/Tooltip.js +19 -0
  233. package/dist/components/New/Tooltip/TooltipContainer.js +12 -0
  234. package/dist/components/New/Tooltip/TooltipContent.js +45 -0
  235. package/dist/components/New/Tooltip/TooltipContext.js +67 -0
  236. package/dist/components/New/Tooltip/TooltipTrigger.js +45 -0
  237. package/dist/components/New/Tooltip/constants.js +8 -0
  238. package/dist/components/New/constants/icon.js +4 -0
  239. package/dist/components/New/constants/overlay.js +27 -0
  240. package/dist/components/NoDataContent/NoDataContent.js +45 -0
  241. package/dist/components/Notification/Notification.js +67 -0
  242. package/dist/components/Notification/constants.js +24 -0
  243. package/dist/components/NumberInput/NumberInput.js +41 -0
  244. package/dist/components/Pagination/Pagination.js +80 -0
  245. package/dist/components/Pagination/utils.js +10 -0
  246. package/dist/components/PasswordInput/Icons/HideIcon.js +16 -0
  247. package/dist/components/PasswordInput/Icons/ShowIcon.js +16 -0
  248. package/dist/components/PasswordInput/PasswordInput.js +21 -0
  249. package/dist/components/Popup/Popup.js +110 -0
  250. package/dist/components/Popup/constants.js +12 -0
  251. package/dist/components/ProgressBar/ProgressBar.js +58 -0
  252. package/dist/components/RadioButton/RadioButton.js +103 -0
  253. package/dist/components/RadioGroup/RadioGroup.js +92 -0
  254. package/dist/components/RadioGroup/constants.js +10 -0
  255. package/dist/components/RadioGroupPopupField/RadioGroupPopupField.js +101 -0
  256. package/dist/components/RemoveButton/RemoveButton.js +30 -0
  257. package/dist/components/ResizableContainer/ConditionalResizableContainer.js +6 -0
  258. package/dist/components/ResizableContainer/ResizableContainer.js +79 -0
  259. package/dist/components/ResizableContainer/components/ResizeHandle.js +20 -0
  260. package/dist/components/ResizableContainer/components/ResizeIcon.js +11 -0
  261. package/dist/components/SchemaRenderer/SchemaRenderer.js +150 -0
  262. package/dist/components/SchemaRenderer/components/SchemaAdditionalPropertiesEditor.js +41 -0
  263. package/dist/components/SchemaRenderer/components/SchemaAnyOfEditor.js +74 -0
  264. package/dist/components/SchemaRenderer/components/SchemaArrayEditor.js +118 -0
  265. package/dist/components/SchemaRenderer/components/SchemaField.js +78 -0
  266. package/dist/components/SchemaRenderer/components/SchemaFieldContent.js +114 -0
  267. package/dist/components/SchemaRenderer/components/SchemaKeyValueEditor.js +184 -0
  268. package/dist/components/SchemaRenderer/components/SchemaObjectEditor.js +36 -0
  269. package/dist/components/SchemaRenderer/components/SchemaOneOfEditor.js +192 -0
  270. package/dist/components/SchemaRenderer/components/SchemaPrimitiveField.js +161 -0
  271. package/dist/components/SchemaRenderer/components/SchemaSection.js +81 -0
  272. package/dist/components/SchemaRenderer/context.js +12 -0
  273. package/dist/components/SchemaRenderer/types.js +27 -0
  274. package/dist/components/SchemaRenderer/utils.js +258 -0
  275. package/dist/components/Search/Search.js +63 -0
  276. package/dist/components/Search/constants.js +27 -0
  277. package/dist/components/SegmentedControl/SegmentedControl.js +87 -0
  278. package/dist/components/SegmentedControl/constants.js +8 -0
  279. package/dist/components/Select/MultiSelectTags.js +23 -0
  280. package/dist/components/Select/Select.js +435 -0
  281. package/dist/components/Select/SelectSubMenuItem.js +90 -0
  282. package/dist/components/Select/constants.js +15 -0
  283. package/dist/components/SelectField/SelectField.js +66 -0
  284. package/dist/components/SharedEntityIndicator/SharedEntityIndicator.js +34 -0
  285. package/dist/components/Skeleton/Skeleton.js +90 -0
  286. package/dist/components/Skeleton/utils.js +16 -0
  287. package/dist/components/Slider/Slider.js +158 -0
  288. package/dist/components/Spinner/Spinner.js +30 -0
  289. package/dist/components/Steps/Step.js +34 -0
  290. package/dist/components/Steps/Steps.js +27 -0
  291. package/dist/components/Steps/utils.js +42 -0
  292. package/dist/components/Switch/Switch.js +70 -0
  293. package/dist/components/Tab/Tab.js +65 -0
  294. package/dist/components/Tabs/Tabs.js +213 -0
  295. package/dist/components/Tabs/constants.js +4 -0
  296. package/dist/components/Tag/Tag.js +37 -0
  297. package/dist/components/TagInput/TagInput.js +179 -0
  298. package/dist/components/Textarea/Textarea.js +43 -0
  299. package/dist/components/Tooltip/Tooltip.js +30 -0
  300. package/dist/components/Tooltip/TooltipContainer.js +12 -0
  301. package/dist/components/Tooltip/TooltipContent.js +40 -0
  302. package/dist/components/Tooltip/TooltipContext.js +66 -0
  303. package/dist/components/Tooltip/TooltipTrigger.js +33 -0
  304. package/dist/components-manifest.json +1009 -161
  305. package/dist/{JsonEditor-CwnP07GH.js → constants/editor.js} +5 -63
  306. package/dist/constants/file-grid-columns.js +176 -0
  307. package/dist/constants/icon.js +10 -0
  308. package/dist/constants/validation.js +11 -0
  309. package/dist/dial-ui-kit.cjs +2 -0
  310. package/dist/dial-ui-kit.js +416 -0
  311. package/dist/editors.cjs +1 -0
  312. package/dist/editors.js +12 -0
  313. package/dist/file-manager.cjs +1 -0
  314. package/dist/file-manager.js +22 -0
  315. package/dist/grid.cjs +1 -0
  316. package/dist/grid.js +30 -0
  317. package/dist/hooks/use-editable-item.js +94 -0
  318. package/dist/hooks/use-flexible-actions.js +72 -0
  319. package/dist/hooks/use-has-hover.js +17 -0
  320. package/dist/hooks/use-is-mobile-screen.js +12 -0
  321. package/dist/hooks/use-is-tablet-screen.js +12 -0
  322. package/dist/hooks/use-screen-type.js +14 -0
  323. package/dist/hooks/use-width-breakpoint.js +15 -0
  324. package/dist/icon-CrGVkVpG.cjs +1 -0
  325. package/dist/icon-DhjrDQ8I.cjs +1 -0
  326. package/dist/index.css +2 -2
  327. package/dist/lazy-tfN4sKhq.cjs +1 -0
  328. package/dist/merge-classes-Dipy1Ih1.cjs +1 -0
  329. package/dist/migration-guides/0.14.0/button-tooltip-2-0.md +1 -1
  330. package/dist/migration-guides/0.14.0/shadow-token-per-step-rename.md +64 -29
  331. package/dist/migration-guides/README.md +1 -1
  332. package/dist/models/file.js +6 -0
  333. package/dist/models/selection-mode.js +4 -0
  334. package/dist/models/step.js +4 -0
  335. package/dist/node_modules/@react-dnd/asap/dist/AsapQueue.js +39 -0
  336. package/dist/node_modules/@react-dnd/asap/dist/RawTask.js +17 -0
  337. package/dist/node_modules/@react-dnd/asap/dist/TaskFactory.js +16 -0
  338. package/dist/node_modules/@react-dnd/asap/dist/asap.js +9 -0
  339. package/dist/node_modules/@react-dnd/asap/dist/makeRequestCall.js +62 -0
  340. package/dist/node_modules/@react-dnd/invariant/dist/index.js +22 -0
  341. package/dist/node_modules/@react-dnd/shallowequal/dist/index.js +25 -0
  342. package/dist/node_modules/ag-grid-community/dist/package/main.esm.js +39799 -0
  343. package/dist/node_modules/ag-grid-react/dist/package/index.esm.js +1989 -0
  344. package/dist/node_modules/dnd-core/dist/actions/dragDrop/beginDrag.js +70 -0
  345. package/dist/node_modules/dnd-core/dist/actions/dragDrop/drop.js +54 -0
  346. package/dist/node_modules/dnd-core/dist/actions/dragDrop/endDrag.js +18 -0
  347. package/dist/node_modules/dnd-core/dist/actions/dragDrop/hover.js +42 -0
  348. package/dist/node_modules/dnd-core/dist/actions/dragDrop/index.js +17 -0
  349. package/dist/node_modules/dnd-core/dist/actions/dragDrop/local/setClientOffset.js +13 -0
  350. package/dist/node_modules/dnd-core/dist/actions/dragDrop/publishDragSource.js +12 -0
  351. package/dist/node_modules/dnd-core/dist/actions/dragDrop/types.js +9 -0
  352. package/dist/node_modules/dnd-core/dist/actions/registry.js +43 -0
  353. package/dist/node_modules/dnd-core/dist/classes/DragDropManagerImpl.js +41 -0
  354. package/dist/node_modules/dnd-core/dist/classes/DragDropMonitorImpl.js +115 -0
  355. package/dist/node_modules/dnd-core/dist/classes/HandlerRegistryImpl.js +96 -0
  356. package/dist/node_modules/dnd-core/dist/contracts.js +21 -0
  357. package/dist/node_modules/dnd-core/dist/createDragDropManager.js +19 -0
  358. package/dist/node_modules/dnd-core/dist/interfaces.js +7 -0
  359. package/dist/node_modules/dnd-core/dist/reducers/dirtyHandlerIds.js +30 -0
  360. package/dist/node_modules/dnd-core/dist/reducers/dragOffset.js +50 -0
  361. package/dist/node_modules/dnd-core/dist/reducers/dragOperation.js +78 -0
  362. package/dist/node_modules/dnd-core/dist/reducers/index.js +42 -0
  363. package/dist/node_modules/dnd-core/dist/reducers/refCount.js +16 -0
  364. package/dist/node_modules/dnd-core/dist/reducers/stateId.js +6 -0
  365. package/dist/node_modules/dnd-core/dist/utils/coords.js +26 -0
  366. package/dist/node_modules/dnd-core/dist/utils/dirtiness.js +12 -0
  367. package/dist/node_modules/dnd-core/dist/utils/equality.js +17 -0
  368. package/dist/node_modules/dnd-core/dist/utils/getNextUniqueId.js +7 -0
  369. package/dist/node_modules/dnd-core/dist/utils/js_utils.js +36 -0
  370. package/dist/node_modules/dnd-core/dist/utils/matchesType.js +8 -0
  371. package/dist/node_modules/fast-deep-equal/index.js +31 -0
  372. package/dist/node_modules/mime-db/db.json.js +2527 -0
  373. package/dist/node_modules/mime-db/index.js +8 -0
  374. package/dist/node_modules/mime-types/index.js +70 -0
  375. package/dist/node_modules/mime-types/mimeScore.js +38 -0
  376. package/dist/node_modules/re-resizable/lib/index.js +424 -0
  377. package/dist/node_modules/re-resizable/lib/resizer.js +49 -0
  378. package/dist/node_modules/react-dnd/dist/core/DndContext.js +7 -0
  379. package/dist/node_modules/react-dnd/dist/core/DndProvider.js +66 -0
  380. package/dist/node_modules/react-dnd/dist/hooks/useCollectedProps.js +11 -0
  381. package/dist/node_modules/react-dnd/dist/hooks/useCollector.js +22 -0
  382. package/dist/node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js +25 -0
  383. package/dist/node_modules/react-dnd/dist/hooks/useDrag/connectors.js +21 -0
  384. package/dist/node_modules/react-dnd/dist/hooks/useDrag/useDrag.js +20 -0
  385. package/dist/node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js +19 -0
  386. package/dist/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js +22 -0
  387. package/dist/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js +15 -0
  388. package/dist/node_modules/react-dnd/dist/hooks/useDrag/useDragType.js +13 -0
  389. package/dist/node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js +23 -0
  390. package/dist/node_modules/react-dnd/dist/hooks/useDragDropManager.js +10 -0
  391. package/dist/node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js +21 -0
  392. package/dist/node_modules/react-dnd/dist/hooks/useDrop/connectors.js +12 -0
  393. package/dist/node_modules/react-dnd/dist/hooks/useDrop/useAccept.js +13 -0
  394. package/dist/node_modules/react-dnd/dist/hooks/useDrop/useDrop.js +16 -0
  395. package/dist/node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js +18 -0
  396. package/dist/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js +18 -0
  397. package/dist/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js +15 -0
  398. package/dist/node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js +23 -0
  399. package/dist/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js +5 -0
  400. package/dist/node_modules/react-dnd/dist/hooks/useMonitorOutput.js +20 -0
  401. package/dist/node_modules/react-dnd/dist/hooks/useOptionalFactory.js +10 -0
  402. package/dist/node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js +88 -0
  403. package/dist/node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js +59 -0
  404. package/dist/node_modules/react-dnd/dist/internals/SourceConnector.js +87 -0
  405. package/dist/node_modules/react-dnd/dist/internals/TargetConnector.js +57 -0
  406. package/dist/node_modules/react-dnd/dist/internals/isRef.js +9 -0
  407. package/dist/node_modules/react-dnd/dist/internals/registration.js +18 -0
  408. package/dist/node_modules/react-dnd/dist/internals/wrapConnectorHooks.js +46 -0
  409. package/dist/node_modules/react-dnd-html5-backend/dist/BrowserDetector.js +10 -0
  410. package/dist/node_modules/react-dnd-html5-backend/dist/EnterLeaveCounter.js +22 -0
  411. package/dist/node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js +274 -0
  412. package/dist/node_modules/react-dnd-html5-backend/dist/MonotonicInterpolant.js +59 -0
  413. package/dist/node_modules/react-dnd-html5-backend/dist/NativeDragSources/NativeDragSource.js +43 -0
  414. package/dist/node_modules/react-dnd-html5-backend/dist/NativeDragSources/getDataFromDataTransfer.js +10 -0
  415. package/dist/node_modules/react-dnd-html5-backend/dist/NativeDragSources/index.js +24 -0
  416. package/dist/node_modules/react-dnd-html5-backend/dist/NativeDragSources/nativeTypesConfig.js +48 -0
  417. package/dist/node_modules/react-dnd-html5-backend/dist/NativeTypes.js +7 -0
  418. package/dist/node_modules/react-dnd-html5-backend/dist/OffsetUtils.js +70 -0
  419. package/dist/node_modules/react-dnd-html5-backend/dist/OptionsReader.js +22 -0
  420. package/dist/node_modules/react-dnd-html5-backend/dist/index.js +7 -0
  421. package/dist/node_modules/react-dnd-html5-backend/dist/utils/js_utils.js +22 -0
  422. package/dist/node_modules/redux/es/redux.js +158 -0
  423. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2924 -0
  424. package/dist/src/components/Analytics/BarGroup/BarGroup.d.ts +9 -2
  425. package/dist/src/components/FileManager/FileManager.d.ts +2 -1
  426. package/dist/src/components/FileManager/components/DestinationFolderPopup/DestinationFolderPopup.d.ts +2 -0
  427. package/dist/src/components/FileManager/hooks/use-file-upload.d.ts +4 -2
  428. package/dist/src/components/FileManager/utils.d.ts +11 -0
  429. package/dist/src/components/Grid/comparators/base-column-comparator.d.ts +1 -4
  430. package/dist/src/components/Grid/renderers/utils.d.ts +1 -2
  431. package/dist/src/components/JsonEditor/lazy.d.ts +14 -0
  432. package/dist/src/components/MarkdownEditor/lazy.d.ts +7 -0
  433. package/dist/src/components/New/CollapsibleSidebar/CollapsibleSidebar.d.ts +82 -0
  434. package/dist/src/components/New/Dropdown/Dropdown.d.ts +20 -0
  435. package/dist/src/components/New/Dropdown/constants.d.ts +5 -4
  436. package/dist/src/components/New/Dropdown/item-mark.d.ts +15 -0
  437. package/dist/src/components/New/EllipsisTooltip/EllipsisTooltip.d.ts +1 -1
  438. package/dist/src/components/New/EllipsisTooltip/use-truncation.d.ts +5 -0
  439. package/dist/src/components/New/Grid/Grid.d.ts +124 -0
  440. package/dist/src/components/New/Grid/components/SelectionCell.d.ts +21 -0
  441. package/dist/src/components/New/Grid/components/SelectionHeader.d.ts +14 -0
  442. package/dist/src/components/New/Grid/constants.d.ts +61 -0
  443. package/dist/src/components/New/Grid/renderers/DateCellRenderer.d.ts +48 -0
  444. package/dist/src/components/New/Grid/renderers/constants.d.ts +5 -0
  445. package/dist/src/components/New/InteractiveTooltip/InteractiveTooltip.d.ts +74 -0
  446. package/dist/src/components/New/InteractiveTooltip/constants.d.ts +26 -0
  447. package/dist/src/components/New/MarkdownEditor/MarkdownEditor.d.ts +6 -0
  448. package/dist/src/components/New/MarkdownEditor/lazy.d.ts +7 -0
  449. package/dist/src/components/New/MenuItem/MenuItem.d.ts +68 -0
  450. package/dist/src/components/New/MenuItem/constants.d.ts +5 -0
  451. package/dist/src/components/New/NoDataContent/NoDataContent.d.ts +48 -0
  452. package/dist/src/components/New/ResizableContainer/ConditionalResizableContainer.d.ts +34 -0
  453. package/dist/src/components/New/ResizableContainer/ResizableContainer.d.ts +77 -0
  454. package/dist/src/components/New/ResizableContainer/components/ResizeHandle.d.ts +21 -0
  455. package/dist/src/components/New/SegmentedControl/constants.d.ts +2 -2
  456. package/dist/src/components/New/Select/Select.d.ts +14 -2
  457. package/dist/src/components/New/Select/SelectSubMenuItem.d.ts +3 -0
  458. package/dist/src/components/New/Select/constants.d.ts +12 -5
  459. package/dist/src/components/New/Textarea/Textarea.d.ts +8 -2
  460. package/dist/src/components/New/ThemeScope/ThemeScope.d.ts +46 -0
  461. package/dist/src/components/New/Tooltip/Tooltip.d.ts +1 -1
  462. package/dist/src/components/New/Tooltip/TooltipContent.d.ts +4 -3
  463. package/dist/src/components/New/Tooltip/constants.d.ts +10 -1
  464. package/dist/src/components/New/constants/icon.d.ts +22 -0
  465. package/dist/src/components/New/constants/overlay.d.ts +7 -0
  466. package/dist/src/components/Tooltip/TooltipContent.d.ts +4 -0
  467. package/dist/src/hooks/use-has-hover.d.ts +20 -0
  468. package/dist/src/index.d.ts +28 -4
  469. package/dist/src/models/dropdown.d.ts +40 -1
  470. package/dist/src/models/select.d.ts +30 -0
  471. package/dist/src/subpaths/editors.d.ts +22 -0
  472. package/dist/src/subpaths/file-manager.d.ts +21 -0
  473. package/dist/src/subpaths/grid.d.ts +25 -0
  474. package/dist/src/types/menu-item.d.ts +21 -0
  475. package/dist/src/utils/__tests__/element-size-observer.spec.d.ts +1 -0
  476. package/dist/src/utils/__tests__/pointer.spec.d.ts +1 -0
  477. package/dist/src/utils/element-size-observer.d.ts +26 -0
  478. package/dist/src/utils/grid-comparators.d.ts +4 -0
  479. package/dist/src/utils/grid-date.d.ts +7 -0
  480. package/dist/src/utils/grid-registration.d.ts +16 -0
  481. package/dist/src/utils/grid-registration.spec.d.ts +1 -0
  482. package/dist/src/utils/pointer.d.ts +29 -0
  483. package/dist/src/utils/sub-menu-floating.d.ts +1 -0
  484. package/dist/types/analytics.js +4 -0
  485. package/dist/types/button.js +5 -0
  486. package/dist/types/calendar.js +4 -0
  487. package/dist/types/caption.js +4 -0
  488. package/dist/types/confirmation-popup.js +4 -0
  489. package/dist/types/dropdown.js +6 -0
  490. package/dist/types/editor.js +4 -0
  491. package/dist/types/file-manager.js +12 -0
  492. package/dist/types/flexible-actions.js +4 -0
  493. package/dist/types/form-item.js +4 -0
  494. package/dist/types/item.js +4 -0
  495. package/dist/types/menu-item.js +4 -0
  496. package/dist/types/notification.js +5 -0
  497. package/dist/types/popup.js +4 -0
  498. package/dist/types/radio-group.js +4 -0
  499. package/dist/types/resizable-container.js +4 -0
  500. package/dist/types/screen.js +4 -0
  501. package/dist/types/select.js +5 -0
  502. package/dist/types/size.js +4 -0
  503. package/dist/types/skeleton.js +6 -0
  504. package/dist/types/tab.js +6 -0
  505. package/dist/types/tag.js +4 -0
  506. package/dist/types/tooltip.js +4 -0
  507. package/dist/use-file-manager-tabs-DjdR_mYM.cjs +3 -0
  508. package/dist/utils/accessible-name.js +6 -0
  509. package/dist/utils/debounce.js +9 -0
  510. package/dist/utils/element-size-observer.js +24 -0
  511. package/dist/utils/file-accept.js +16 -0
  512. package/dist/utils/flat-to-hierarchy-convertor.js +86 -0
  513. package/dist/utils/grid-comparators.js +17 -0
  514. package/dist/utils/grid-date.js +20 -0
  515. package/dist/utils/grid-registration.js +8 -0
  516. package/dist/utils/merge-classes.js +8 -0
  517. package/dist/utils/mobile.js +11 -0
  518. package/dist/utils/path.js +4 -0
  519. package/dist/utils/pointer.js +5 -0
  520. package/dist/utils/sub-menu-floating.js +85 -0
  521. package/package.json +37 -12
  522. package/dist/JsonEditor-D3v6vYDX.cjs +0 -1
  523. package/dist/MarkdownEditor-CfaHfp2e.js +0 -75
  524. package/dist/MarkdownEditor-D9M8LvKZ.cjs +0 -1
  525. package/dist/MarkdownEditor-HO5rwRn7.cjs +0 -1
  526. package/dist/MarkdownEditor-K1ldlz5M.js +0 -35
  527. package/dist/dial-ui-kit.cjs.js +0 -1
  528. package/dist/dial-ui-kit.es.js +0 -221
  529. package/dist/index-DD0A-MXM.cjs +0 -71
  530. package/dist/index-Dg0iEirR.js +0 -66908
@@ -1,27 +1,23 @@
1
1
  {
2
- "version": "0.14.0-dev.9",
3
- "generatedAt": "2026-08-26T17:04:12.916Z",
2
+ "version": "0.14.1",
3
+ "generatedAt": "2026-09-14T19:45:15.313Z",
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",
7
7
  "installation": "npm install @epam/ai-dial-ui-kit",
8
8
  "cssImport": "import '@epam/ai-dial-ui-kit/styles.css'",
9
9
  "peerDependencies": {
10
- "@floating-ui/react": "^0.27.19",
11
10
  "@modelcontextprotocol/sdk": "^1.29.0",
12
11
  "@monaco-editor/react": "^4.7.0",
13
- "@tabler/icons-react": "^3.41.1",
14
- "@uiw/react-markdown-preview": "^5.2.0",
15
12
  "@uiw/react-md-editor": "^4.1.0",
16
- "classnames": "^2.5.1",
17
13
  "monaco-editor": "^0.55.1",
18
14
  "react": "^19.2.5",
19
15
  "react-dom": "^19.2.5"
20
16
  },
21
- "setupNotes": "## Next.js Integration\n1. Install the package and peer dependencies that are not currently in your project\n``` bash\nnpm install @epam/ai-dial-ui-kit\nnpm install react react-dom @tabler/icons-react classnames\nnpm install @floating-ui/react monaco-editor @monaco-editor/react\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."
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."
22
18
  },
23
- "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\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\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",
24
- "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-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-sm-1` | `var(--shadow-xs-sm-1)` | `#2764D933` |\n| `xs-sm-2` | `var(--shadow-xs-sm-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\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\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` |",
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` |",
25
21
  "components": [
26
22
  {
27
23
  "name": "Spinner",
@@ -887,6 +883,18 @@
887
883
  "required": false,
888
884
  "defaultValue": "'edit'",
889
885
  "description": "Initial edit/live/preview mode"
886
+ },
887
+ {
888
+ "name": "id",
889
+ "type": "string",
890
+ "required": false,
891
+ "description": "`id` of the underlying textarea, for a visible `<label htmlFor>`"
892
+ },
893
+ {
894
+ "name": "ariaLabel",
895
+ "type": "string",
896
+ "required": false,
897
+ "description": "Accessible name for the underlying textarea"
890
898
  }
891
899
  ],
892
900
  "examples": [
@@ -994,7 +1002,7 @@
994
1002
  "name": "Select",
995
1003
  "category": "Components_2_0",
996
1004
  "generation": "2.0",
997
- "description": "A versatile select supporting single and multiple selections.\naliases: OptionPicker|ChoiceSelector\nDesign system 2.0\n\nThe field is an , so it carries the 2.0 field styling, sizes,\nlabel, caption and error states, and it exposes the control as a `combobox`\nwhose popup is the option list.\n\nSingle mode:\n- The field shows the selected option's leading icon + label.\n- In the list, the selected option is indicated by a LEFT border, a tinted background\n and a trailing check icon.\n\nMultiple mode uses checkboxes (including Select All with indeterminate state) and\nrenders the selection as removable tags inside the field.\n\nThe field itself is never typeable: `searchable` puts a search field in the overlay\nheader that filters the options.",
1005
+ "description": "A versatile select supporting single and multiple selections.\naliases: OptionPicker|ChoiceSelector\nDesign system 2.0\n\nA list of **values to choose from**, opened from the field. It is not the\ncontrol for showing actions or navigation options — that is .\n\nThe field is an , so it carries the 2.0 field styling, sizes,\nlabel, caption and error states, and it exposes the control as a `combobox`\nwhose popup is the option list.\n\nSingle mode:\n- The field shows the selected option's leading icon + label.\n- In the list, the selected option is tinted; `selectedOptionMark` swaps that\n for a trailing check or the navigation highlight.\n\nMultiple mode uses checkboxes (including Select All with indeterminate state) and\nrenders the selection as removable tags inside the field.\n\nThe field itself is never typeable: `searchable` puts a search field in the overlay\nheader that filters the options.",
998
1006
  "props": [
999
1007
  {
1000
1008
  "name": "options",
@@ -1111,6 +1119,13 @@
1111
1119
  "defaultValue": "'Select all'",
1112
1120
  "description": "Label for the \"Select All\" checkbox."
1113
1121
  },
1122
+ {
1123
+ "name": "selectedOptionMark",
1124
+ "type": "| MenuItemMark.Tint\n | MenuItemMark.Check\n | MenuItemMark.Highlight",
1125
+ "required": false,
1126
+ "defaultValue": "MenuItemMark.Tint",
1127
+ "description": "How the chosen option is marked in single mode."
1128
+ },
1114
1129
  {
1115
1130
  "name": "emptyStateTitle",
1116
1131
  "type": "string",
@@ -1360,10 +1375,10 @@
1360
1375
  },
1361
1376
  {
1362
1377
  "name": "resize",
1363
- "type": "boolean",
1378
+ "type": "boolean | TextareaResize",
1364
1379
  "required": false,
1365
1380
  "defaultValue": "false",
1366
- "description": "Whether the textarea has possibility to resize"
1381
+ "description": "Whether/how the textarea can be resized. Accepts a boolean (`true` = both directions, `false` = none) or a value for a single axis (`horizontal`/`vertical`)"
1367
1382
  },
1368
1383
  {
1369
1384
  "name": "error",
@@ -1857,7 +1872,7 @@
1857
1872
  "name": "Dropdown",
1858
1873
  "category": "Components_2_0",
1859
1874
  "generation": "2.0",
1860
- "description": "Renders the given trigger (`children`) and a floating contextual menu overlay.\naliases: ContextMenu|PopupMenu\nDesign system 2.0\n\nSupports click/hover/contextMenu triggers, controlled/uncontrolled open, and an optional\nclose button inside the overlay. Placement is taken directly from Floating UI; when\n`placement` is **undefined** (default), automatic placement is handled by `autoPlacement`.",
1875
+ "description": "Renders the given trigger (`children`) and a floating contextual menu overlay.\naliases: ContextMenu|PopupMenu\nDesign system 2.0\n\nA menu of **actions or navigation options**, opened from a trigger. It is not\nthe control for picking a value out of a list — a country, a sort order, a\nfilter — which is what is for.\n\nSupports click/hover/contextMenu triggers, controlled/uncontrolled open, and an optional\nclose button inside the overlay. Placement is taken directly from Floating UI; when\n`placement` is **undefined** (default), automatic placement is handled by `autoPlacement`.\n\nA chosen row is marked through the item's `mark`: the design draws a menu's\nsingle-select and multiselect the same way, with a check at the trailing edge\n(`MenuItemMark.Check`). Pair it with `selectable` for a multiselect row, which\nkeeps the menu open across toggles. `MenuItemMark.Highlight` is the current\nitem of a navigation menu.",
1861
1876
  "props": [
1862
1877
  {
1863
1878
  "name": "children",
@@ -2009,6 +2024,12 @@
2009
2024
  "type": "number | null",
2010
2025
  "required": false,
2011
2026
  "description": "Maximum height of the dropdown menu; when omitted, no limit is applied"
2027
+ },
2028
+ {
2029
+ "name": "initialFocus",
2030
+ "type": "0 | -1 | RefObject<HTMLElement | null>",
2031
+ "required": false,
2032
+ "description": "Initial focus target inside the overlay on open, forwarded to `FloatingFocusManager`; when omitted, matches pre-existing behavior"
2012
2033
  }
2013
2034
  ],
2014
2035
  "examples": [
@@ -2016,6 +2037,117 @@
2016
2037
  ],
2017
2038
  "sourceFile": "components/New/Dropdown/Dropdown.tsx"
2018
2039
  },
2040
+ {
2041
+ "name": "ThemeScope",
2042
+ "category": "Components_2_0",
2043
+ "generation": "2.0",
2044
+ "description": "Marks a subtree as living under a host-defined token scope, so overlays this\nsubtree opens in a portal are painted with the same tokens.\nDesign system 2.0\n\nRedefining design tokens on a panel root re-themes everything the panel\nrenders — until a `Dropdown`, `Popup`, `Tooltip` or `Calendar` escapes into a\n`FloatingPortal` at the end of `<body>`, where the scope's custom properties\nno longer reach it. Wrapping the panel in a `ThemeScope` re-applies the same\nclass to those portalled overlays, so an overlay opened from a dark panel\nstays dark while the rest of the app keeps its own palette.\n\nThe wrapper itself is `display: contents`, so it generates no box and leaves\nthe surrounding flex or grid layout untouched — custom properties inherit\nthrough it all the same. Scopes nest: an inner scope's overlays carry the\nouter classes first, matching the cascade they would see in place.",
2045
+ "props": [
2046
+ {
2047
+ "name": "className",
2048
+ "type": "string",
2049
+ "required": true,
2050
+ "description": "Class name redefining the design tokens for this subtree"
2051
+ },
2052
+ {
2053
+ "name": "children",
2054
+ "type": "ReactNode",
2055
+ "required": true,
2056
+ "description": "The subtree painted with those tokens"
2057
+ }
2058
+ ],
2059
+ "examples": [
2060
+ "// .side-panel-theme redefines --bg-*, --text-* and --stroke-* tokens.\n<ThemeScope className=\"side-panel-theme\">\n <ConversationPanel {...props} />\n</ThemeScope>"
2061
+ ],
2062
+ "sourceFile": "components/New/ThemeScope/ThemeScope.tsx"
2063
+ },
2064
+ {
2065
+ "name": "MenuItem",
2066
+ "category": "Components_2_0",
2067
+ "generation": "2.0",
2068
+ "description": "One row of a floating overlay — a dropdown menu item or a select option.\nDesign system 2.0\n\nOwns the Menu-item states the design defines, so the dropdown and the select\ncannot drift apart: rest, hover, focus and disable, plus the three ways a\nchosen row is marked (`MenuItemMark`). The row itself is the control — the\ncheckbox box and the check icon are decorative, since the state already rides\non the `aria-checked`/`aria-selected` the caller sets alongside `role`.",
2069
+ "props": [
2070
+ {
2071
+ "name": "ref",
2072
+ "type": "Ref<HTMLButtonElement>",
2073
+ "required": false
2074
+ },
2075
+ {
2076
+ "name": "label",
2077
+ "type": "ReactNode",
2078
+ "required": false,
2079
+ "description": "The row's text"
2080
+ },
2081
+ {
2082
+ "name": "icon",
2083
+ "type": "ReactNode",
2084
+ "required": false,
2085
+ "description": "Icon rendered before the label"
2086
+ },
2087
+ {
2088
+ "name": "description",
2089
+ "type": "ReactNode",
2090
+ "required": false,
2091
+ "description": "Secondary text at the row's trailing edge"
2092
+ },
2093
+ {
2094
+ "name": "mark",
2095
+ "type": "MenuItemMark",
2096
+ "required": false,
2097
+ "defaultValue": "MenuItemMark.None",
2098
+ "description": "How a chosen row is marked"
2099
+ },
2100
+ {
2101
+ "name": "selected",
2102
+ "type": "boolean",
2103
+ "required": false,
2104
+ "defaultValue": "false",
2105
+ "description": "Whether this row is the chosen one"
2106
+ },
2107
+ {
2108
+ "name": "danger",
2109
+ "type": "boolean",
2110
+ "required": false,
2111
+ "defaultValue": "false",
2112
+ "description": "Paints the row in the error colour"
2113
+ },
2114
+ {
2115
+ "name": "trailing",
2116
+ "type": "ReactNode",
2117
+ "required": false,
2118
+ "description": "Node pinned to the trailing edge, e.g. a submenu caret"
2119
+ },
2120
+ {
2121
+ "name": "rightControl",
2122
+ "type": "ReactNode",
2123
+ "required": false,
2124
+ "description": "A control of its own at the trailing edge, rendered beside the row"
2125
+ },
2126
+ {
2127
+ "name": "ellipsisLabel",
2128
+ "type": "boolean",
2129
+ "required": false,
2130
+ "defaultValue": "false",
2131
+ "description": "Truncate the label with a tooltip once clipped"
2132
+ },
2133
+ {
2134
+ "name": "labelClassName",
2135
+ "type": "string",
2136
+ "required": false,
2137
+ "description": "Additional classes for the label element"
2138
+ },
2139
+ {
2140
+ "name": "children",
2141
+ "type": "ReactNode",
2142
+ "required": false,
2143
+ "description": "Replaces the icon + label content"
2144
+ }
2145
+ ],
2146
+ "examples": [
2147
+ "<MenuItem role=\"menuitem\" label=\"Rename\" icon={<IconPencil />} />\n\n// Single choice, marked with a trailing check\n<MenuItem role=\"option\" aria-selected label=\"English\" mark={MenuItemMark.Check} selected />\n\n// Current item of a navigation menu\n<MenuItem role=\"menuitem\" aria-current label=\"Settings\" mark={MenuItemMark.Highlight} selected />"
2148
+ ],
2149
+ "sourceFile": "components/New/MenuItem/MenuItem.tsx"
2150
+ },
2019
2151
  {
2020
2152
  "name": "CaptionText",
2021
2153
  "category": "Components_2_0",
@@ -3076,238 +3208,807 @@
3076
3208
  "name": "min",
3077
3209
  "type": "number",
3078
3210
  "required": false,
3079
- "defaultValue": "0",
3080
- "description": "Minimum value"
3211
+ "defaultValue": "0",
3212
+ "description": "Minimum value"
3213
+ },
3214
+ {
3215
+ "name": "max",
3216
+ "type": "number",
3217
+ "required": false,
3218
+ "defaultValue": "1",
3219
+ "description": "Maximum value"
3220
+ },
3221
+ {
3222
+ "name": "step",
3223
+ "type": "number",
3224
+ "required": false,
3225
+ "defaultValue": "0.1",
3226
+ "description": "Step increment"
3227
+ },
3228
+ {
3229
+ "name": "disabled",
3230
+ "type": "boolean",
3231
+ "required": false,
3232
+ "description": "Whether the slider is disabled"
3233
+ },
3234
+ {
3235
+ "name": "labelProps",
3236
+ "type": "LabelProps",
3237
+ "required": false,
3238
+ "description": "Props of the rendered above the track"
3239
+ },
3240
+ {
3241
+ "name": "labels",
3242
+ "type": "[string, string] | [string, string, string]",
3243
+ "required": false,
3244
+ "description": "2 or 3 strings rendered below the track (start, [middle,] end)"
3245
+ },
3246
+ {
3247
+ "name": "formatValue",
3248
+ "type": "(value: number) => string",
3249
+ "required": false,
3250
+ "description": "Custom formatter for the displayed value; also becomes the announced `aria-valuetext`"
3251
+ },
3252
+ {
3253
+ "name": "showValue",
3254
+ "type": "boolean",
3255
+ "required": false,
3256
+ "defaultValue": "false",
3257
+ "description": "Renders the current value at the end of the label row"
3258
+ },
3259
+ {
3260
+ "name": "caption",
3261
+ "type": "string",
3262
+ "required": false,
3263
+ "description": "Helper text rendered below the track, and described by the slider"
3264
+ },
3265
+ {
3266
+ "name": "error",
3267
+ "type": "string",
3268
+ "required": false,
3269
+ "description": "Error message rendered below the track; replaces the caption"
3270
+ },
3271
+ {
3272
+ "name": "onChange",
3273
+ "type": "(value: number) => void",
3274
+ "required": false,
3275
+ "description": "Callback fired with the new value"
3276
+ },
3277
+ {
3278
+ "name": "containerClassName",
3279
+ "type": "string",
3280
+ "required": false,
3281
+ "description": "Additional classes for the outer container"
3282
+ },
3283
+ {
3284
+ "name": "trackClassName",
3285
+ "type": "string",
3286
+ "required": false,
3287
+ "description": "Additional classes for the unfilled track"
3288
+ },
3289
+ {
3290
+ "name": "fillClassName",
3291
+ "type": "string",
3292
+ "required": false,
3293
+ "description": "Additional classes for the filled portion of the track"
3294
+ }
3295
+ ],
3296
+ "examples": [
3297
+ "<Slider\n id=\"temperature\"\n labelProps={{ label: 'Temperature' }}\n value={temperature}\n labels={['Precise', 'Neutral', 'Creative']}\n onChange={setTemperature}\n/>"
3298
+ ],
3299
+ "sourceFile": "components/New/Slider/Slider.tsx"
3300
+ },
3301
+ {
3302
+ "name": "Tooltip",
3303
+ "category": "Components_2_0",
3304
+ "generation": "2.0",
3305
+ "description": "Shows a short explanation next to an element while it is hovered or focused.\naliases: HoverPopover|InfoPopover\nDesign system 2.0\n\nThe tooltip is placed on one of the four sides of the trigger and follows it\non scroll, flipping to the opposite side when it would not fit.\n\nTooltip text does not reach assistive technology unless the trigger itself\ncarries it: pass `asChild` so the `aria-describedby` lands on the control\nrather than on a wrapper `<span>`, and never let a tooltip be the only\naccessible name of a control — it renders nothing on a touch-only device.",
3306
+ "props": [
3307
+ {
3308
+ "name": "hideTooltip",
3309
+ "type": "boolean",
3310
+ "required": false,
3311
+ "defaultValue": "false",
3312
+ "description": "Suppress the tooltip while keeping the trigger rendered"
3313
+ },
3314
+ {
3315
+ "name": "tooltip",
3316
+ "type": "ReactNode",
3317
+ "required": false,
3318
+ "description": "The content to display in the tooltip"
3319
+ },
3320
+ {
3321
+ "name": "children",
3322
+ "type": "ReactNode",
3323
+ "required": true,
3324
+ "description": "The element that triggers the tooltip"
3325
+ },
3326
+ {
3327
+ "name": "asChild",
3328
+ "type": "boolean",
3329
+ "required": false,
3330
+ "defaultValue": "false",
3331
+ "description": "Use the child as the trigger instead of wrapping it in a `<span>`"
3332
+ },
3333
+ {
3334
+ "name": "triggerClassName",
3335
+ "type": "string",
3336
+ "required": false,
3337
+ "description": "Additional CSS classes for the trigger element"
3338
+ },
3339
+ {
3340
+ "name": "contentClassName",
3341
+ "type": "string",
3342
+ "required": false,
3343
+ "description": "Additional CSS classes for the tooltip bubble"
3344
+ }
3345
+ ],
3346
+ "examples": [
3347
+ "<Tooltip tooltip=\"Tooltip text\" placement={TooltipPlacement.Top} asChild>\n <button>Hover me</button>\n</Tooltip>"
3348
+ ],
3349
+ "sourceFile": "components/New/Tooltip/Tooltip.tsx"
3350
+ },
3351
+ {
3352
+ "name": "TooltipContainer",
3353
+ "category": "Components_2_0",
3354
+ "generation": "2.0",
3355
+ "description": "Provides tooltip positioning and open state to a trigger and a content pair.\naliases: TooltipProvider|TooltipRoot\nDesign system 2.0\n\nUse it directly only when the trigger and the content cannot be rendered by\n`Tooltip` itself — for example when the content needs custom markup.",
3356
+ "props": [],
3357
+ "examples": [
3358
+ "<TooltipContainer placement={TooltipPlacement.Top}>\n <TooltipTrigger asChild>\n <button>Hover me</button>\n </TooltipTrigger>\n <TooltipContent>Tooltip text</TooltipContent>\n</TooltipContainer>"
3359
+ ],
3360
+ "sourceFile": "components/New/Tooltip/TooltipContainer.tsx"
3361
+ },
3362
+ {
3363
+ "name": "TooltipContent",
3364
+ "category": "Components_2_0",
3365
+ "generation": "2.0",
3366
+ "description": "The floating bubble that carries the tooltip text.\nDesign system 2.0\n\nRendered in a portal, above popups and dropdowns, with an arrow pointing back\nat the trigger. Renders nothing on a touch-only device, where no pointer can\nhover to reveal it — so a control must never depend on a tooltip alone to be\nunderstood, or to have an accessible name. A narrow viewport is not itself\ndisqualifying: an embed a few hundred pixels wide still hovers on a desktop.",
3367
+ "props": [
3368
+ {
3369
+ "name": "style",
3370
+ "type": "CSSProperties",
3371
+ "required": false,
3372
+ "description": "Additional inline styles for the tooltip bubble"
3373
+ }
3374
+ ],
3375
+ "examples": [],
3376
+ "sourceFile": "components/New/Tooltip/TooltipContent.tsx"
3377
+ },
3378
+ {
3379
+ "name": "TooltipTrigger",
3380
+ "category": "Components_2_0",
3381
+ "generation": "2.0",
3382
+ "description": "The element a tooltip is anchored to and opened from.\nDesign system 2.0\n\nPrefer `asChild` whenever the trigger is a single element: it puts the\n`aria-describedby` that names the tooltip on the control itself instead of on\na wrapper `<span>`, which is the only way the tooltip text reaches assistive\ntechnology.",
3383
+ "props": [
3384
+ {
3385
+ "name": "asChild",
3386
+ "type": "boolean",
3387
+ "required": false,
3388
+ "defaultValue": "false",
3389
+ "description": "Render the child as the trigger instead of wrapping it in a `<span>`"
3390
+ }
3391
+ ],
3392
+ "examples": [],
3393
+ "sourceFile": "components/New/Tooltip/TooltipTrigger.tsx"
3394
+ },
3395
+ {
3396
+ "name": "InteractiveTooltip",
3397
+ "category": "Components_2_0",
3398
+ "generation": "2.0",
3399
+ "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.",
3400
+ "props": [
3401
+ {
3402
+ "name": "content",
3403
+ "type": "ReactNode",
3404
+ "required": true,
3405
+ "description": "The panel's content"
3406
+ },
3407
+ {
3408
+ "name": "placement",
3409
+ "type": "TooltipPlacement",
3410
+ "required": false,
3411
+ "defaultValue": "TooltipPlacement.Right",
3412
+ "description": "Side of the trigger the panel is placed on"
3413
+ },
3414
+ {
3415
+ "name": "children",
3416
+ "type": "ReactNode",
3417
+ "required": true,
3418
+ "description": "The element that triggers the panel"
3419
+ },
3420
+ {
3421
+ "name": "asChild",
3422
+ "type": "boolean",
3423
+ "required": false,
3424
+ "defaultValue": "false",
3425
+ "description": "Use the child as the trigger instead of wrapping it in a `<span>`"
3426
+ },
3427
+ {
3428
+ "name": "hideTooltip",
3429
+ "type": "boolean",
3430
+ "required": false,
3431
+ "defaultValue": "false",
3432
+ "description": "Suppress the panel while keeping the trigger rendered"
3433
+ },
3434
+ {
3435
+ "name": "initialOpen",
3436
+ "type": "boolean",
3437
+ "required": false,
3438
+ "defaultValue": "false",
3439
+ "description": "Whether the panel starts open (uncontrolled only)"
3440
+ },
3441
+ {
3442
+ "name": "open",
3443
+ "type": "boolean",
3444
+ "required": false,
3445
+ "description": "Controlled open state; disables the hover and focus triggers"
3446
+ },
3447
+ {
3448
+ "name": "onOpenChange",
3449
+ "type": "(open: boolean) => void",
3450
+ "required": false,
3451
+ "description": "Callback fired when the open state should change"
3452
+ },
3453
+ {
3454
+ "name": "triggerClassName",
3455
+ "type": "string",
3456
+ "required": false,
3457
+ "description": "Additional CSS classes for the trigger element"
3458
+ },
3459
+ {
3460
+ "name": "contentClassName",
3461
+ "type": "string",
3462
+ "required": false,
3463
+ "description": "Additional CSS classes for the panel"
3464
+ }
3465
+ ],
3466
+ "examples": [
3467
+ "<InteractiveTooltip\n placement={TooltipPlacement.Right}\n content={\n <>\n <p>Lets the model write and execute Python in an isolated sandbox.</p>\n <Button variant={ButtonVariant.Primary} appearance={ButtonAppearance.Link}>\n View details\n </Button>\n </>\n }\n>\n <MenuItem label=\"code-interpreter\" />\n</InteractiveTooltip>"
3468
+ ],
3469
+ "sourceFile": "components/New/InteractiveTooltip/InteractiveTooltip.tsx"
3470
+ },
3471
+ {
3472
+ "name": "EllipsisTooltip",
3473
+ "category": "Components_2_0",
3474
+ "generation": "2.0",
3475
+ "description": "Single-line text with a CSS ellipsis that reveals the full string in a\ntooltip **only when it is actually clipped**.\naliases: TruncatedText|TruncationTooltip\nDesign system 2.0\n\nText that fits gets no tooltip at all, so a row of labels does not sprout\ntooltips that repeat what is already on screen.\n\nThe width has to be finite for anything to truncate: the element is a\n`min-w-0`, `flex-1` block, and `className` sets the width it should fit into.\n\na11y: while truncated, the full string is exposed as the element's\n`aria-label`, so a screen reader reads the whole label even though the\ntooltip itself renders nothing on a touch-only device.",
3476
+ "props": [
3477
+ {
3478
+ "name": "text",
3479
+ "type": "ReactNode",
3480
+ "required": true,
3481
+ "description": "The text or node to display, truncated with an ellipsis when it does not fit"
3482
+ },
3483
+ {
3484
+ "name": "className",
3485
+ "type": "string",
3486
+ "required": false,
3487
+ "description": "Additional CSS classes for the text element, typically its width"
3488
+ },
3489
+ {
3490
+ "name": "contentClassName",
3491
+ "type": "string",
3492
+ "required": false,
3493
+ "description": "Additional CSS classes for the tooltip bubble"
3494
+ },
3495
+ {
3496
+ "name": "hideTooltip",
3497
+ "type": "boolean",
3498
+ "required": false,
3499
+ "defaultValue": "false",
3500
+ "description": "Suppress the tooltip even while the text is truncated"
3501
+ },
3502
+ {
3503
+ "name": "id",
3504
+ "type": "string",
3505
+ "required": false,
3506
+ "description": "`id` of the text element"
3507
+ },
3508
+ {
3509
+ "name": "customTooltipContent",
3510
+ "type": "ReactNode",
3511
+ "required": false,
3512
+ "description": "Shown instead of the full text while truncated"
3513
+ }
3514
+ ],
3515
+ "examples": [
3516
+ "<EllipsisTooltip text=\"Very long message that will be truncated\" />\n\n<EllipsisTooltip\n text={<span className=\"dial-small-semi-text\">Custom node</span>}\n className=\"max-w-[160px]\"\n/>\n\n<EllipsisTooltip text=\"Tooltip suppressed even when clipped\" hideTooltip />"
3517
+ ],
3518
+ "sourceFile": "components/New/EllipsisTooltip/EllipsisTooltip.tsx"
3519
+ },
3520
+ {
3521
+ "name": "CollapsibleSidebar",
3522
+ "category": "Components_2_0",
3523
+ "generation": "2.0",
3524
+ "description": "A side panel that collapses to a narrow rail carrying its title vertically.\naliases: ToggleSidebar|CollapsiblePanel|SidePanel\nDesign system 2.0\n\nWorks as a controlled component when `isOpened` is provided, otherwise it keeps\nits own state from `defaultOpened`. The width is derived from the open state, so\nchanging `width` on an open sidebar takes effect immediately.\n\nThe panel is an `aside` named by `ariaLabel`, and the toggle is a real\n`aria-expanded` control pointing at the content region. Content stays mounted\nwhile collapsed — hidden with `display: none` — so scroll position and any\nform state inside it survive a collapse.\n\nThe container paints no background and no radius: it is meant to sit on the\nsurface it belongs to. Pass `className` for either.",
3525
+ "props": [
3526
+ {
3527
+ "name": "children",
3528
+ "type": "ReactNode",
3529
+ "required": true,
3530
+ "description": "Content shown while the sidebar is expanded."
3531
+ },
3532
+ {
3533
+ "name": "title",
3534
+ "type": "ReactNode",
3535
+ "required": true,
3536
+ "description": "Name of the panel, rendered as vertical text while collapsed."
3537
+ },
3538
+ {
3539
+ "name": "width",
3540
+ "type": "number",
3541
+ "required": false,
3542
+ "defaultValue": "280",
3543
+ "description": "Width in px while expanded."
3544
+ },
3545
+ {
3546
+ "name": "collapsedWidth",
3547
+ "type": "number",
3548
+ "required": false,
3549
+ "defaultValue": "COLLAPSED_WIDTH",
3550
+ "description": "Width in px while collapsed."
3551
+ },
3552
+ {
3553
+ "name": "isOpened",
3554
+ "type": "boolean",
3555
+ "required": false,
3556
+ "description": "Controlled open state."
3557
+ },
3558
+ {
3559
+ "name": "defaultOpened",
3560
+ "type": "boolean",
3561
+ "required": false,
3562
+ "defaultValue": "true",
3563
+ "description": "Initial open state when uncontrolled."
3564
+ },
3565
+ {
3566
+ "name": "onToggle",
3567
+ "type": "(nextOpened: boolean, e: MouseEvent<HTMLButtonElement>) => void",
3568
+ "required": false,
3569
+ "description": "Fired when the toggle is clicked. Receives the next open state."
3570
+ },
3571
+ {
3572
+ "name": "additionalButtons",
3573
+ "type": "ReactNode",
3574
+ "required": false,
3575
+ "description": "Extra footer controls, rendered while expanded."
3576
+ },
3577
+ {
3578
+ "name": "ariaLabel",
3579
+ "type": "string",
3580
+ "required": false,
3581
+ "defaultValue": "'Sidebar'",
3582
+ "description": "Accessible name of the sidebar region."
3583
+ },
3584
+ {
3585
+ "name": "collapseLabel",
3586
+ "type": "string",
3587
+ "required": false,
3588
+ "defaultValue": "'Collapse sidebar'",
3589
+ "description": "Name and tooltip of the toggle while expanded."
3590
+ },
3591
+ {
3592
+ "name": "expandLabel",
3593
+ "type": "string",
3594
+ "required": false,
3595
+ "defaultValue": "'Expand sidebar'",
3596
+ "description": "Name and tooltip of the toggle while collapsed."
3597
+ },
3598
+ {
3599
+ "name": "className",
3600
+ "type": "string",
3601
+ "required": false,
3602
+ "description": "Additional CSS classes for the outer container."
3603
+ },
3604
+ {
3605
+ "name": "titleClassName",
3606
+ "type": "string",
3607
+ "required": false,
3608
+ "description": "Additional CSS classes for the vertical title."
3609
+ },
3610
+ {
3611
+ "name": "contentClassName",
3612
+ "type": "string",
3613
+ "required": false,
3614
+ "description": "Additional CSS classes for the content region."
3615
+ },
3616
+ {
3617
+ "name": "footerClassName",
3618
+ "type": "string",
3619
+ "required": false,
3620
+ "description": "Additional CSS classes for the footer."
3621
+ }
3622
+ ],
3623
+ "examples": [
3624
+ "<CollapsibleSidebar title=\"Filters\" width={320}>\n <FilterForm />\n</CollapsibleSidebar>\n\n<CollapsibleSidebar\n title=\"Filters\"\n isOpened={opened}\n onToggle={setOpened}\n>\n <FilterForm />\n</CollapsibleSidebar>"
3625
+ ],
3626
+ "sourceFile": "components/New/CollapsibleSidebar/CollapsibleSidebar.tsx"
3627
+ },
3628
+ {
3629
+ "name": "ResizableContainer",
3630
+ "category": "Components_2_0",
3631
+ "generation": "2.0",
3632
+ "description": "A panel the user can widen or narrow by dragging its edge.\naliases: ResizePanel|SizableContainer|Splitter\nDesign system 2.0\n\nWorks as a controlled component when `width` is provided, otherwise it keeps\nits own width from `defaultWidth`. The handle — an accent line with a chevron\npointing away from the panel — appears on hover and while dragging, and stays\nwithin `minWidth`–`maxWidth` in both modes.\n\nThe handle is a focusable `separator`, so the panel resizes with the arrow\nkeys — `Home` and `End` jump to the bounds — and each press reports through\n`onResize` and `onResizeStop`. Unlike the 1.0 container this one draws no\ndividers between its children; pass `divide-y divide-tertiary` through\n`className` if you want them.",
3633
+ "props": [
3634
+ {
3635
+ "name": "children",
3636
+ "type": "ReactNode",
3637
+ "required": true,
3638
+ "description": "Content placed inside the container."
3639
+ },
3640
+ {
3641
+ "name": "minWidth",
3642
+ "type": "number",
3643
+ "required": true,
3644
+ "description": "Minimum allowed width in px."
3645
+ },
3646
+ {
3647
+ "name": "maxWidth",
3648
+ "type": "number",
3649
+ "required": true,
3650
+ "description": "Maximum allowed width in px."
3651
+ },
3652
+ {
3653
+ "name": "width",
3654
+ "type": "number",
3655
+ "required": false,
3656
+ "description": "Controlled width. If omitted the container is uncontrolled."
3657
+ },
3658
+ {
3659
+ "name": "defaultWidth",
3660
+ "type": "number",
3661
+ "required": false,
3662
+ "description": "Initial width when uncontrolled. Defaults to `minWidth`."
3663
+ },
3664
+ {
3665
+ "name": "onResizeStop",
3666
+ "type": "(width: number) => void",
3667
+ "required": false,
3668
+ "description": "Fired when a resize ends, and once per arrow key press."
3669
+ },
3670
+ {
3671
+ "name": "onResize",
3672
+ "type": "(width: number) => void",
3673
+ "required": false,
3674
+ "description": "Fired continuously while dragging."
3675
+ },
3676
+ {
3677
+ "name": "side",
3678
+ "type": "ResizableContainerSide",
3679
+ "required": false,
3680
+ "defaultValue": "ResizableContainerSide.Right",
3681
+ "description": "Edge carrying the resize handle."
3682
+ },
3683
+ {
3684
+ "name": "keyboardStep",
3685
+ "type": "number",
3686
+ "required": false,
3687
+ "defaultValue": "DEFAULT_KEYBOARD_STEP",
3688
+ "description": "Width change per arrow key press."
3689
+ },
3690
+ {
3691
+ "name": "ariaLabel",
3692
+ "type": "string",
3693
+ "required": false,
3694
+ "defaultValue": "'Resize panel'",
3695
+ "description": "Accessible name of the handle."
3696
+ },
3697
+ {
3698
+ "name": "className",
3699
+ "type": "string",
3700
+ "required": false,
3701
+ "description": "Additional CSS classes for the inner content wrapper."
3702
+ },
3703
+ {
3704
+ "name": "resizeHandlerClassName",
3705
+ "type": "string",
3706
+ "required": false,
3707
+ "description": "Additional CSS classes for the resize handle."
3708
+ },
3709
+ {
3710
+ "name": "resizeHandler",
3711
+ "type": "ReactNode",
3712
+ "required": false,
3713
+ "description": "Custom node rendered inside the handle, replacing the default chevron."
3714
+ }
3715
+ ],
3716
+ "examples": [
3717
+ "<ResizableContainer minWidth={180} maxWidth={520} defaultWidth={260}>\n <Sidebar />\n</ResizableContainer>\n\n<ResizableContainer\n minWidth={180}\n maxWidth={520}\n width={sidebarWidth}\n onResizeStop={setSidebarWidth}\n>\n <Sidebar />\n</ResizableContainer>"
3718
+ ],
3719
+ "sourceFile": "components/New/ResizableContainer/ResizableContainer.tsx"
3720
+ },
3721
+ {
3722
+ "name": "ConditionalResizableContainer",
3723
+ "category": "Components_2_0",
3724
+ "generation": "2.0",
3725
+ "description": "Renders its children inside a only while `enabled`.\naliases: OptionalResize|ConditionalPanel\nDesign system 2.0\n\nWhen `enabled` is false the children are rendered on their own, with no\nwrapper element and no resize behaviour — useful for a panel that is only\nresizable while it is expanded. Every other prop is passed straight through;\nsee for controlled and uncontrolled sizing, sides\nand callbacks.",
3726
+ "props": [
3727
+ {
3728
+ "name": "enabled",
3729
+ "type": "boolean",
3730
+ "required": false,
3731
+ "defaultValue": "true",
3732
+ "description": "Whether resizing is enabled."
3733
+ }
3734
+ ],
3735
+ "examples": [
3736
+ "<ConditionalResizableContainer\n enabled={isExpanded}\n minWidth={180}\n maxWidth={520}\n defaultWidth={260}\n>\n <Sidebar />\n</ConditionalResizableContainer>"
3737
+ ],
3738
+ "sourceFile": "components/New/ResizableContainer/ConditionalResizableContainer.tsx"
3739
+ },
3740
+ {
3741
+ "name": "NoDataContent",
3742
+ "category": "Components_2_0",
3743
+ "generation": "2.0",
3744
+ "description": "Message shown in place of a list, table or grid that has nothing to show.\naliases: EmptyState|NoResults|ZeroState\nDesign system 2.0\n\nFills its container and centres an illustration, a headline and an optional\nsecondary line. The icon is decorative, so it is hidden from assistive tech\nand the text carries the message on its own.",
3745
+ "props": [
3746
+ {
3747
+ "name": "title",
3748
+ "type": "ReactNode",
3749
+ "required": true,
3750
+ "description": "Headline of the empty state."
3751
+ },
3752
+ {
3753
+ "name": "description",
3754
+ "type": "ReactNode",
3755
+ "required": false,
3756
+ "description": "Optional secondary line under the title."
3757
+ },
3758
+ {
3759
+ "name": "icon",
3760
+ "type": "ReactNode",
3761
+ "required": false,
3762
+ "description": "Illustration above the title. Defaults to the empty-state document mark."
3763
+ },
3764
+ {
3765
+ "name": "live",
3766
+ "type": "boolean",
3767
+ "required": false,
3768
+ "defaultValue": "false",
3769
+ "description": "Announce the empty state to assistive tech as it appears."
3770
+ },
3771
+ {
3772
+ "name": "className",
3773
+ "type": "string",
3774
+ "required": false,
3775
+ "description": "Additional CSS classes for the container."
3776
+ },
3777
+ {
3778
+ "name": "titleClassName",
3779
+ "type": "string",
3780
+ "required": false,
3781
+ "description": "Additional CSS classes for the title."
3782
+ },
3783
+ {
3784
+ "name": "descriptionClassName",
3785
+ "type": "string",
3786
+ "required": false,
3787
+ "description": "Additional CSS classes for the description."
3788
+ }
3789
+ ],
3790
+ "examples": [
3791
+ "<NoDataContent\n title=\"No results found\"\n description=\"Try a different search term.\"\n/>\n\n<NoDataContent title=\"Nothing here yet\" icon={<IconInbox size={60} />} live />"
3792
+ ],
3793
+ "sourceFile": "components/New/NoDataContent/NoDataContent.tsx"
3794
+ },
3795
+ {
3796
+ "name": "Grid",
3797
+ "category": "Components_2_0",
3798
+ "generation": "2.0",
3799
+ "description": "A data grid built on ag-Grid, wired to the 2.0 tokens and controls.\naliases: DataTable|TableGrid|DataGrid\nDesign system 2.0\n\nComes preconfigured with case-insensitive sorting, floating column filters,\ncolumns sized to the available width, a row context menu, truncation\ntooltips, and an empty state.\n\nThe selection column renders the 2.0 `Checkbox` and `Radio` instead of\nag-Grid's own inputs, so selection looks and behaves like every other control\nin the kit and the select-all reaches the `mixed` state when the selection is\npartial. The column stays faded out until the row is hovered, something is\nselected, or the keyboard reaches it.\n\nSelection works controlled or uncontrolled: pass `selectedRowIds` to own it,\nor read `onSelectionChange` and let the grid keep its own. A `sort` declared\non a column is honoured — 1.0 stripped it on startup.",
3800
+ "props": [
3801
+ {
3802
+ "name": "columnDefs",
3803
+ "type": "ColDef<T>[]",
3804
+ "required": false,
3805
+ "description": "Column definitions, in ag-Grid `ColDef` format."
3806
+ },
3807
+ {
3808
+ "name": "rowData",
3809
+ "type": "T[]",
3810
+ "required": false,
3811
+ "description": "Rows to display."
3812
+ },
3813
+ {
3814
+ "name": "additionalGridOptions",
3815
+ "type": "GridOptions<T>",
3816
+ "required": false,
3817
+ "description": "Extra ag-Grid options, merged over the defaults."
3818
+ },
3819
+ {
3820
+ "name": "getContextMenuItems",
3821
+ "type": "(row: T) => DropdownItem[]",
3822
+ "required": false,
3823
+ "description": "Items of the row context menu. Omit for no menu."
3824
+ },
3825
+ {
3826
+ "name": "className",
3827
+ "type": "string",
3828
+ "required": false,
3829
+ "description": "Additional CSS classes for the grid container."
3830
+ },
3831
+ {
3832
+ "name": "ariaLabel",
3833
+ "type": "string",
3834
+ "required": false,
3835
+ "defaultValue": "'Data grid'",
3836
+ "description": "Accessible name of the grid region."
3081
3837
  },
3082
3838
  {
3083
- "name": "max",
3084
- "type": "number",
3839
+ "name": "wrapCustomCellRenderers",
3840
+ "type": "boolean | ((col: ColDef<T>) => boolean)",
3085
3841
  "required": false,
3086
- "defaultValue": "1",
3087
- "description": "Maximum value"
3842
+ "defaultValue": "true",
3843
+ "description": "Whether custom renderers get context-menu support."
3088
3844
  },
3089
3845
  {
3090
- "name": "step",
3091
- "type": "number",
3846
+ "name": "disabledRowIds",
3847
+ "type": "Set<string>",
3092
3848
  "required": false,
3093
- "defaultValue": "0.1",
3094
- "description": "Step increment"
3849
+ "description": "Rows that cannot be selected."
3095
3850
  },
3096
3851
  {
3097
- "name": "disabled",
3098
- "type": "boolean",
3852
+ "name": "selectedRowIds",
3853
+ "type": "Set<string>",
3099
3854
  "required": false,
3100
- "description": "Whether the slider is disabled"
3855
+ "description": "Controlled selection: ids of the selected rows."
3101
3856
  },
3102
3857
  {
3103
- "name": "labelProps",
3104
- "type": "LabelProps",
3858
+ "name": "onGridApiChange",
3859
+ "type": "(api: GridApi<T>) => void",
3105
3860
  "required": false,
3106
- "description": "Props of the rendered above the track"
3861
+ "description": "Fired when the grid API becomes available."
3107
3862
  },
3108
3863
  {
3109
- "name": "labels",
3110
- "type": "[string, string] | [string, string, string]",
3864
+ "name": "onSelectionChange",
3865
+ "type": "(selectedRowIds: Set<string>, selectedRows: T[]) => void",
3111
3866
  "required": false,
3112
- "description": "2 or 3 strings rendered below the track (start, [middle,] end)"
3867
+ "description": "Fired when the selection changes."
3113
3868
  },
3114
3869
  {
3115
- "name": "formatValue",
3116
- "type": "(value: number) => string",
3870
+ "name": "getRowId",
3871
+ "type": "(row: T) => string",
3117
3872
  "required": false,
3118
- "description": "Custom formatter for the displayed value; also becomes the announced `aria-valuetext`"
3873
+ "description": "Extracts the unique id of a row. Defaults to its `id` field."
3119
3874
  },
3120
3875
  {
3121
- "name": "showValue",
3876
+ "name": "alternateOddRowColors",
3122
3877
  "type": "boolean",
3123
3878
  "required": false,
3124
3879
  "defaultValue": "false",
3125
- "description": "Renders the current value at the end of the label row"
3880
+ "description": "Tints odd rows."
3126
3881
  },
3127
3882
  {
3128
- "name": "caption",
3883
+ "name": "filterPlaceholder",
3129
3884
  "type": "string",
3130
3885
  "required": false,
3131
- "description": "Helper text rendered below the track, and described by the slider"
3886
+ "defaultValue": "'Enter value'",
3887
+ "description": "Placeholder of the column filter inputs."
3132
3888
  },
3133
3889
  {
3134
- "name": "error",
3135
- "type": "string",
3890
+ "name": "emptyStateIcon",
3891
+ "type": "ReactNode",
3136
3892
  "required": false,
3137
- "description": "Error message rendered below the track; replaces the caption"
3893
+ "description": "Illustration of the empty state."
3138
3894
  },
3139
3895
  {
3140
- "name": "onChange",
3141
- "type": "(value: number) => void",
3896
+ "name": "emptyStateTitle",
3897
+ "type": "string",
3142
3898
  "required": false,
3143
- "description": "Callback fired with the new value"
3899
+ "defaultValue": "'No results found'",
3900
+ "description": "Headline of the empty state."
3144
3901
  },
3145
3902
  {
3146
- "name": "containerClassName",
3903
+ "name": "emptyStateDescription",
3147
3904
  "type": "string",
3148
3905
  "required": false,
3149
- "description": "Additional classes for the outer container"
3906
+ "defaultValue": "\"Sorry, we couldn't find any results for your search.\"",
3907
+ "description": "Secondary line of the empty state."
3150
3908
  },
3151
3909
  {
3152
- "name": "trackClassName",
3153
- "type": "string",
3910
+ "name": "loading",
3911
+ "type": "boolean",
3154
3912
  "required": false,
3155
- "description": "Additional classes for the unfilled track"
3913
+ "defaultValue": "false",
3914
+ "description": "Shows the loading overlay."
3156
3915
  },
3157
3916
  {
3158
- "name": "fillClassName",
3159
- "type": "string",
3917
+ "name": "wrapperBorder",
3918
+ "type": "boolean",
3160
3919
  "required": false,
3161
- "description": "Additional classes for the filled portion of the track"
3162
- }
3163
- ],
3164
- "examples": [
3165
- "<Slider\n id=\"temperature\"\n labelProps={{ label: 'Temperature' }}\n value={temperature}\n labels={['Precise', 'Neutral', 'Creative']}\n onChange={setTemperature}\n/>"
3166
- ],
3167
- "sourceFile": "components/New/Slider/Slider.tsx"
3168
- },
3169
- {
3170
- "name": "Tooltip",
3171
- "category": "Components_2_0",
3172
- "generation": "2.0",
3173
- "description": "Shows a short explanation next to an element while it is hovered or focused.\naliases: HoverPopover|InfoPopover\nDesign system 2.0\n\nThe tooltip is placed on one of the four sides of the trigger and follows it\non scroll, flipping to the opposite side when it would not fit.\n\nTooltip text does not reach assistive technology unless the trigger itself\ncarries it: pass `asChild` so the `aria-describedby` lands on the control\nrather than on a wrapper `<span>`, and never let a tooltip be the only\naccessible name of a control — it renders nothing on mobile screens.",
3174
- "props": [
3920
+ "defaultValue": "true",
3921
+ "description": "Draws a border around the grid."
3922
+ },
3175
3923
  {
3176
- "name": "hideTooltip",
3924
+ "name": "withoutHeaderBorders",
3177
3925
  "type": "boolean",
3178
3926
  "required": false,
3179
3927
  "defaultValue": "false",
3180
- "description": "Suppress the tooltip while keeping the trigger rendered"
3928
+ "description": "Hides the vertical borders between header cells."
3181
3929
  },
3182
3930
  {
3183
- "name": "tooltip",
3184
- "type": "ReactNode",
3931
+ "name": "selectionMode",
3932
+ "type": "GridSelectionMode",
3185
3933
  "required": false,
3186
- "description": "The content to display in the tooltip"
3187
- },
3188
- {
3189
- "name": "children",
3190
- "type": "ReactNode",
3191
- "required": true,
3192
- "description": "The element that triggers the tooltip"
3934
+ "description": "Renders a selection column of checkboxes or radios."
3193
3935
  },
3194
3936
  {
3195
- "name": "asChild",
3937
+ "name": "allowDisabledContextMenu",
3196
3938
  "type": "boolean",
3197
3939
  "required": false,
3198
3940
  "defaultValue": "false",
3199
- "description": "Use the child as the trigger instead of wrapping it in a `<span>`"
3941
+ "description": "Keeps the context menu on a non-selectable row."
3200
3942
  },
3201
3943
  {
3202
- "name": "triggerClassName",
3203
- "type": "string",
3944
+ "name": "selectRowLabel",
3945
+ "type": "(row: T) => string",
3204
3946
  "required": false,
3205
- "description": "Additional CSS classes for the trigger element"
3947
+ "description": "Accessible name of a row's selection control."
3206
3948
  },
3207
3949
  {
3208
- "name": "contentClassName",
3950
+ "name": "selectAllLabel",
3209
3951
  "type": "string",
3210
3952
  "required": false,
3211
- "description": "Additional CSS classes for the tooltip bubble"
3953
+ "defaultValue": "'Select all rows'",
3954
+ "description": "Accessible name of the select-all control."
3212
3955
  }
3213
3956
  ],
3214
3957
  "examples": [
3215
- "<Tooltip tooltip=\"Tooltip text\" placement={TooltipPlacement.Top} asChild>\n <button>Hover me</button>\n</Tooltip>"
3216
- ],
3217
- "sourceFile": "components/New/Tooltip/Tooltip.tsx"
3218
- },
3219
- {
3220
- "name": "TooltipContainer",
3221
- "category": "Components_2_0",
3222
- "generation": "2.0",
3223
- "description": "Provides tooltip positioning and open state to a trigger and a content pair.\naliases: TooltipProvider|TooltipRoot\nDesign system 2.0\n\nUse it directly only when the trigger and the content cannot be rendered by\n`Tooltip` itself — for example when the content needs custom markup.",
3224
- "props": [],
3225
- "examples": [
3226
- "<TooltipContainer placement={TooltipPlacement.Top}>\n <TooltipTrigger asChild>\n <button>Hover me</button>\n </TooltipTrigger>\n <TooltipContent>Tooltip text</TooltipContent>\n</TooltipContainer>"
3227
- ],
3228
- "sourceFile": "components/New/Tooltip/TooltipContainer.tsx"
3229
- },
3230
- {
3231
- "name": "TooltipContent",
3232
- "category": "Components_2_0",
3233
- "generation": "2.0",
3234
- "description": "The floating bubble that carries the tooltip text.\nDesign system 2.0\n\nRendered in a portal, above popups and dropdowns, with an arrow pointing back\nat the trigger. Renders nothing on a mobile screen, where there is no hover\nto reveal it — so a control must never depend on a tooltip alone to be\nunderstood, or to have an accessible name.",
3235
- "props": [
3236
- {
3237
- "name": "style",
3238
- "type": "CSSProperties",
3239
- "required": false,
3240
- "description": "Additional inline styles for the tooltip bubble"
3241
- }
3958
+ "interface Product { id: string; name: string; price: number }\n\nconst columns: ColDef<Product>[] = [\n { field: 'name', headerName: 'Product', flex: 1 },\n { field: 'price', headerName: 'Price', width: 120 },\n];\n\n<Grid<Product> columnDefs={columns} rowData={products} />\n\n// With selection and a context menu\n<Grid<Product>\n columnDefs={columns}\n rowData={products}\n selectionMode={GridSelectionMode.MULTIPLE}\n selectedRowIds={selectedIds}\n onSelectionChange={(ids) => setSelectedIds(ids)}\n selectRowLabel={(row) => `Select ${row.name}`}\n getContextMenuItems={(row) => [{ key: 'edit', label: 'Edit' }]}\n/>"
3242
3959
  ],
3243
- "examples": [],
3244
- "sourceFile": "components/New/Tooltip/TooltipContent.tsx"
3960
+ "sourceFile": "components/New/Grid/Grid.tsx"
3245
3961
  },
3246
3962
  {
3247
- "name": "TooltipTrigger",
3248
- "category": "Components_2_0",
3963
+ "name": "DateCellRenderer",
3964
+ "category": "Components_2_0/Grid",
3249
3965
  "generation": "2.0",
3250
- "description": "The element a tooltip is anchored to and opened from.\nDesign system 2.0\n\nPrefer `asChild` whenever the trigger is a single element: it puts the\n`aria-describedby` that names the tooltip on the control itself instead of on\na wrapper `<span>`, which is the only way the tooltip text reaches assistive\ntechnology.",
3966
+ "description": "Date cell for the 2.0 , usable as an ag-Grid `cellRenderer`.\naliases: DateCell|TimestampCell\nDesign system 2.0\n\nFormats the value with `Intl.DateTimeFormat` and wraps it in a\n, so the full string is only offered when the column is\ntoo narrow to show it. A valid date is rendered inside a `<time datetime>`,\nwhich gives assistive tech and crawlers the machine-readable value next to\nthe localised one.",
3251
3967
  "props": [
3252
3968
  {
3253
- "name": "asChild",
3254
- "type": "boolean",
3969
+ "name": "value",
3970
+ "type": "DateValue | null",
3255
3971
  "required": false,
3256
- "defaultValue": "false",
3257
- "description": "Render the child as the trigger instead of wrapping it in a `<span>`"
3258
- }
3259
- ],
3260
- "examples": [],
3261
- "sourceFile": "components/New/Tooltip/TooltipTrigger.tsx"
3262
- },
3263
- {
3264
- "name": "EllipsisTooltip",
3265
- "category": "Components_2_0",
3266
- "generation": "2.0",
3267
- "description": "Single-line text with a CSS ellipsis that reveals the full string in a\ntooltip **only when it is actually clipped**.\naliases: TruncatedText|TruncationTooltip\nDesign system 2.0\n\nText that fits gets no tooltip at all, so a row of labels does not sprout\ntooltips that repeat what is already on screen.\n\nThe width has to be finite for anything to truncate: the element is a\n`min-w-0`, `flex-1` block, and `className` sets the width it should fit into.\n\na11y: while truncated, the full string is exposed as the element's\n`aria-label`, so a screen reader reads the whole label even though the\ntooltip itself renders nothing on mobile screens.",
3268
- "props": [
3269
- {
3270
- "name": "text",
3271
- "type": "ReactNode",
3272
- "required": true,
3273
- "description": "The text or node to display, truncated with an ellipsis when it does not fit"
3972
+ "description": "The date to render."
3274
3973
  },
3275
3974
  {
3276
- "name": "className",
3975
+ "name": "locale",
3277
3976
  "type": "string",
3278
3977
  "required": false,
3279
- "description": "Additional CSS classes for the text element, typically its width"
3978
+ "defaultValue": "DEFAULT_LOCALE",
3979
+ "description": "Locale used for formatting."
3280
3980
  },
3281
3981
  {
3282
- "name": "contentClassName",
3283
- "type": "string",
3982
+ "name": "options",
3983
+ "type": "Intl.DateTimeFormatOptions",
3284
3984
  "required": false,
3285
- "description": "Additional CSS classes for the tooltip bubble"
3985
+ "defaultValue": "DEFAULT_DATE_FORMAT_OPTIONS",
3986
+ "description": "`Intl.DateTimeFormat` options, e.g. `timeZone`."
3286
3987
  },
3287
3988
  {
3288
- "name": "hideTooltip",
3289
- "type": "boolean",
3989
+ "name": "emptyPlaceholder",
3990
+ "type": "string",
3290
3991
  "required": false,
3291
- "defaultValue": "false",
3292
- "description": "Suppress the tooltip even while the text is truncated"
3992
+ "description": "Rendered when the value carries no usable date."
3293
3993
  },
3294
3994
  {
3295
- "name": "id",
3995
+ "name": "className",
3296
3996
  "type": "string",
3297
3997
  "required": false,
3298
- "description": "`id` of the text element"
3998
+ "description": "Additional CSS classes for the cell."
3299
3999
  },
3300
4000
  {
3301
- "name": "customTooltipContent",
3302
- "type": "ReactNode",
4001
+ "name": "hideTooltip",
4002
+ "type": "boolean",
3303
4003
  "required": false,
3304
- "description": "Shown instead of the full text while truncated"
4004
+ "defaultValue": "false",
4005
+ "description": "Suppresses the truncation tooltip."
3305
4006
  }
3306
4007
  ],
3307
4008
  "examples": [
3308
- "<EllipsisTooltip text=\"Very long message that will be truncated\" />\n\n<EllipsisTooltip\n text={<span className=\"dial-small-semi-text\">Custom node</span>}\n className=\"max-w-[160px]\"\n/>\n\n<EllipsisTooltip text=\"Tooltip suppressed even when clipped\" hideTooltip />"
4009
+ "// As a column renderer\n{ field: 'createdAt', cellRenderer: DateCellRenderer,\n cellRendererParams: { options: { timeZone: 'UTC' } } }\n\n// Directly\n<DateCellRenderer value=\"2025-07-20T00:00:00Z\" options={{ timeZone: 'UTC' }} />\n<DateCellRenderer value={1752969600000} /> // epoch milliseconds"
3309
4010
  ],
3310
- "sourceFile": "components/New/EllipsisTooltip/EllipsisTooltip.tsx"
4011
+ "sourceFile": "components/New/Grid/renderers/DateCellRenderer.tsx"
3311
4012
  },
3312
4013
  {
3313
4014
  "name": "DialCaptionText",
@@ -3638,7 +4339,7 @@
3638
4339
  "name": "barClassName",
3639
4340
  "type": "string",
3640
4341
  "required": false,
3641
- "description": "Additional CSS classes for each bar's outer container."
4342
+ "description": "Additional CSS classes for each bar's outer container. In compare mode they apply to the shared pair container (one continuous block); the entry is a Tailwind `group` — use `group-hover:` for pair hover; when `onBarClick` is set that container also gets a default accent fill on hover and `:focus-visible`."
3642
4343
  },
3643
4344
  {
3644
4345
  "name": "barDescriptions",
@@ -4453,7 +5154,8 @@
4453
5154
  "examples": [
4454
5155
  "<NoDataContent\n emptyDataTitle=\"No results found\"\n icon={<CustomIcon />}\n/>"
4455
5156
  ],
4456
- "sourceFile": "components/NoDataContent/NoDataContent.tsx"
5157
+ "sourceFile": "components/NoDataContent/NoDataContent.tsx",
5158
+ "supersededBy": "NoDataContent"
4457
5159
  },
4458
5160
  {
4459
5161
  "name": "DialCollapsibleSidebar",
@@ -4528,7 +5230,8 @@
4528
5230
  "examples": [
4529
5231
  "<DialCollapsibleSidebar\n width={300}\n title=\"Menu\"\n titleClassName=\"text-primary font-bold\"\n containerClassName=\"bg-gray-100 shadow-md\"\n iconSize={24}\n additionalButtons={<button>Extra</button>}\n>\n <div>Content goes here</div>\n</DialCollapsibleSidebar>"
4530
5232
  ],
4531
- "sourceFile": "components/CollapsibleSidebar/CollapsibleSidebar.tsx"
5233
+ "sourceFile": "components/CollapsibleSidebar/CollapsibleSidebar.tsx",
5234
+ "supersededBy": "CollapsibleSidebar"
4532
5235
  },
4533
5236
  {
4534
5237
  "name": "DialLabelledText",
@@ -5123,7 +5826,8 @@
5123
5826
  }
5124
5827
  ],
5125
5828
  "examples": [],
5126
- "sourceFile": "components/ResizableContainer/ResizableContainer.tsx"
5829
+ "sourceFile": "components/ResizableContainer/ResizableContainer.tsx",
5830
+ "supersededBy": "ResizableContainer"
5127
5831
  },
5128
5832
  {
5129
5833
  "name": "DialConditionalResizableContainer",
@@ -5142,7 +5846,8 @@
5142
5846
  "examples": [
5143
5847
  "<DialConditionalResizableContainer\n enabled={!isCollapsed}\n defaultWidth={260}\n minWidth={180}\n maxWidth={520}\n onResize={(w) => console.log('Current width:', w)}\n onResizeStop={(w) => setSidebarWidth(w)}\n>\n <Sidebar />\n</DialConditionalResizableContainer>"
5144
5848
  ],
5145
- "sourceFile": "components/ResizableContainer/ConditionalResizableContainer.tsx"
5849
+ "sourceFile": "components/ResizableContainer/ConditionalResizableContainer.tsx",
5850
+ "supersededBy": "ConditionalResizableContainer"
5146
5851
  },
5147
5852
  {
5148
5853
  "name": "DialGrid",
@@ -5297,7 +6002,8 @@
5297
6002
  "examples": [
5298
6003
  "// Basic usage with data\ninterface Product {\n id: string;\n name: string;\n price: number;\n}\n\nconst columns: ColDef<Product>[] = [\n { field: 'name', headerName: 'Product Name', flex: 1 },\n { field: 'price', headerName: 'Price', width: 120 },\n];\n\n<DialGrid<Product>\n columnDefs={columns}\n rowData={products}\n/>\n\n// With loading state\n<DialGrid<Product>\n columnDefs={columns}\n rowData={products}\n loading={true}\n/>\n\n// With context menu\nconst getContextMenu = (row: Product): DropdownItem[] => [\n { key: 'edit', label: 'Edit' },\n { key: 'delete', label: 'Delete', danger: true },\n];\n\n<DialGrid<Product>\n columnDefs={columns}\n rowData={products}\n getContextMenuItems={getContextMenu}\n/>\n\n// Controlled selection\nconst [selectedIds, setSelectedIds] = useState<Set<string>>(new Set());\n\n<DialGrid<Product>\n columnDefs={columns}\n rowData={products}\n selectedRowIds={selectedIds}\n onSelectionChange={(ids, rows) => {\n setSelectedIds(ids);\n console.log('Selected:', rows);\n }}\n/>"
5299
6004
  ],
5300
- "sourceFile": "components/Grid/Grid.tsx"
6005
+ "sourceFile": "components/Grid/Grid.tsx",
6006
+ "supersededBy": "Grid"
5301
6007
  },
5302
6008
  {
5303
6009
  "name": "DialDateCellRenderer",
@@ -5346,7 +6052,8 @@
5346
6052
  "examples": [
5347
6053
  "// ag-Grid colDef\n{ field: 'createdAt', cellRenderer: DateCellRenderer, cellRendererParams: { options: { timeZone: 'UTC' } } }\n\n// Direct usage\n<DateCellRenderer value=\"2025-07-20T00:00:00Z\" options={{ timeZone: 'UTC' }} />\n<DateCellRenderer value={1752969600000} options={{ timeZone: 'UTC' }} /> // milliseconds"
5348
6054
  ],
5349
- "sourceFile": "components/Grid/renderers/DateCellRenderer.tsx"
6055
+ "sourceFile": "components/Grid/renderers/DateCellRenderer.tsx",
6056
+ "supersededBy": "DateCellRenderer"
5350
6057
  },
5351
6058
  {
5352
6059
  "name": "DialTabs",
@@ -5987,7 +6694,7 @@
5987
6694
  "name": "DialTooltipContent",
5988
6695
  "category": "Overlay",
5989
6696
  "generation": "1.0",
5990
- "description": "The content area of a tooltip that displays the tooltip information\nDesign system 1.0",
6697
+ "description": "The content area of a tooltip that displays the tooltip information\nDesign system 1.0\n\nRenders nothing on a touch-only device, where no pointer can hover to reveal\nit. A narrow viewport is not itself disqualifying: an embed a few hundred\npixels wide still hovers on a desktop.",
5991
6698
  "props": [],
5992
6699
  "examples": [],
5993
6700
  "sourceFile": "components/Tooltip/TooltipContent.tsx",
@@ -8503,6 +9210,39 @@
8503
9210
  ],
8504
9211
  "sourceFile": "types/dropdown.ts"
8505
9212
  },
9213
+ {
9214
+ "name": "MenuItemMark",
9215
+ "kind": "enum",
9216
+ "members": [
9217
+ {
9218
+ "name": "None",
9219
+ "value": "'none'",
9220
+ "comment": "Nothing marks the row — it is only ever unselected."
9221
+ },
9222
+ {
9223
+ "name": "Check",
9224
+ "value": "'check'",
9225
+ "comment": "A trailing check on the chosen row; the row keeps its plain background."
9226
+ },
9227
+ {
9228
+ "name": "Tint",
9229
+ "value": "'tint'",
9230
+ "comment": "The chosen row is tinted, with no glyph — the select list's own mark."
9231
+ },
9232
+ {
9233
+ "name": "Checkbox",
9234
+ "value": "'checkbox'",
9235
+ "comment": "A leading checkbox box, tinted while checked, for multiselect rows."
9236
+ },
9237
+ {
9238
+ "name": "Highlight",
9239
+ "value": "'highlight'",
9240
+ "comment": "Accent label on a tinted row: the current item in a navigation menu."
9241
+ }
9242
+ ],
9243
+ "sourceFile": "types/menu-item.ts",
9244
+ "description": "How a chosen row inside an overlay (dropdown menu, select list) is marked.\n\nThe design marks a chosen row differently depending on what the overlay is.\nA **menu** puts a check at the trailing edge, single- and multi-select alike,\nand gives the current item of a navigation menu an accent label. A **select\nlist** tints the chosen row instead, with a checkbox in front of it when the\nlist is a multiselect."
9245
+ },
8506
9246
  {
8507
9247
  "name": "ElementSize",
8508
9248
  "kind": "enum",
@@ -8956,6 +9696,14 @@
8956
9696
  "name": "icon?",
8957
9697
  "value": "ReactNode"
8958
9698
  },
9699
+ {
9700
+ "name": "rightControl?",
9701
+ "value": "ReactNode"
9702
+ },
9703
+ {
9704
+ "name": "interactiveTooltip?",
9705
+ "value": "SelectOptionInteractiveTooltip"
9706
+ },
8959
9707
  {
8960
9708
  "name": "children?",
8961
9709
  "value": "SelectOption[]"
@@ -9041,10 +9789,18 @@
9041
9789
  "name": "selectable?",
9042
9790
  "value": "boolean"
9043
9791
  },
9792
+ {
9793
+ "name": "mark?",
9794
+ "value": "MenuItemMark"
9795
+ },
9044
9796
  {
9045
9797
  "name": "checked?",
9046
9798
  "value": "boolean"
9047
9799
  },
9800
+ {
9801
+ "name": "rightControl?",
9802
+ "value": "ReactNode"
9803
+ },
9048
9804
  {
9049
9805
  "name": "type?",
9050
9806
  "value": "DropdownItemType"
@@ -9080,6 +9836,10 @@
9080
9836
  {
9081
9837
  "name": "subMenuHoverOptions?",
9082
9838
  "value": "DropdownSubMenuHoverOptions"
9839
+ },
9840
+ {
9841
+ "name": "interactiveTooltip?",
9842
+ "value": "DropdownItemInteractiveTooltip"
9083
9843
  }
9084
9844
  ],
9085
9845
  "sourceFile": "models/dropdown.ts"
@@ -9615,6 +10375,29 @@
9615
10375
  "sourceFile": "components/New/Calendar/Calendar.tsx",
9616
10376
  "typeBody": "Date | string | null"
9617
10377
  },
10378
+ {
10379
+ "name": "TextareaResize",
10380
+ "kind": "enum",
10381
+ "members": [
10382
+ {
10383
+ "name": "None",
10384
+ "value": "'none'"
10385
+ },
10386
+ {
10387
+ "name": "Both",
10388
+ "value": "'both'"
10389
+ },
10390
+ {
10391
+ "name": "Horizontal",
10392
+ "value": "'horizontal'"
10393
+ },
10394
+ {
10395
+ "name": "Vertical",
10396
+ "value": "'vertical'"
10397
+ }
10398
+ ],
10399
+ "sourceFile": "components/New/Textarea/Textarea.tsx"
10400
+ },
9618
10401
  {
9619
10402
  "name": "RadioGroupItem",
9620
10403
  "kind": "interface",
@@ -9780,7 +10563,7 @@
9780
10563
  },
9781
10564
  {
9782
10565
  "name": "convertGridDateToDate",
9783
- "sourceFile": "components/Grid/renderers/utils.ts"
10566
+ "sourceFile": "utils/grid-date.ts"
9784
10567
  },
9785
10568
  {
9786
10569
  "name": "useDialFileManagerTabs",
@@ -9819,11 +10602,76 @@
9819
10602
  "description": "Hook to read the File Manager context.\nThrows if used outside of the provider.",
9820
10603
  "signature": "() => unknown"
9821
10604
  },
10605
+ {
10606
+ "name": "useThemeScope",
10607
+ "sourceFile": "components/New/ThemeScope/ThemeScope.tsx",
10608
+ "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.",
10609
+ "signature": "() => string"
10610
+ },
9822
10611
  {
9823
10612
  "name": "matchesAccept",
9824
10613
  "sourceFile": "utils/file-accept.ts",
9825
10614
  "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.",
9826
10615
  "signature": "(file: File, accept?: string) => boolean"
10616
+ },
10617
+ {
10618
+ "name": "GRID_SELECTION_COLUMN_ID",
10619
+ "sourceFile": "components/New/Grid/Grid.tsx",
10620
+ "description": "Column id of the selection column this component prepends itself.",
10621
+ "signature": "GRID_SELECTION_COLUMN_ID = 'dial-kit-grid-selection'"
10622
+ },
10623
+ {
10624
+ "name": "DEFAULT_DATE_FORMAT_OPTIONS",
10625
+ "sourceFile": "components/New/Grid/renderers/constants.ts",
10626
+ "signature": "DEFAULT_DATE_FORMAT_OPTIONS: Intl.DateTimeFormatOptions"
10627
+ },
10628
+ {
10629
+ "name": "DEFAULT_DATE_LOCALE",
10630
+ "sourceFile": "components/New/Grid/renderers/constants.ts"
10631
+ },
10632
+ {
10633
+ "name": "GRID_ALIGN_RIGHT_CLASS",
10634
+ "sourceFile": "components/New/Grid/constants.ts",
10635
+ "description": "Right-aligns a column. Applied by the consumer through `cellClass`.",
10636
+ "signature": "GRID_ALIGN_RIGHT_CLASS = 'dial-kit-grid-align-right'"
10637
+ },
10638
+ {
10639
+ "name": "GRID_ROOT_CLASS",
10640
+ "sourceFile": "components/New/Grid/constants.ts",
10641
+ "description": "Root class of the 2.0 grid; every rule in `styles/grid.scss` sits under it.",
10642
+ "signature": "GRID_ROOT_CLASS = 'dial-kit-grid'"
10643
+ },
10644
+ {
10645
+ "name": "GRID_THEME_PARAMS",
10646
+ "sourceFile": "components/New/Grid/constants.ts",
10647
+ "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.",
10648
+ "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}"
10649
+ },
10650
+ {
10651
+ "name": "GRID_ROW_HEIGHT",
10652
+ "sourceFile": "components/New/Grid/constants.ts"
10653
+ },
10654
+ {
10655
+ "name": "DIAL_KIT_ICON_STROKE",
10656
+ "sourceFile": "components/New/constants/icon.ts",
10657
+ "description": "Icon stroke (1.5px) from the 2.0 stroke scale. Tabler renders every outline\nicon at `stroke={2}` unless told otherwise, so the token has to be passed\nexplicitly — a 2.0 component that omits it draws a heavier icon than the\ndesign system asks for.\n\nIt is a number rather than a Tailwind utility because an icon's weight is an\nSVG `stroke-width` attribute on the glyph, not a border on its box. The\nborder half of the same scale stays on plain Tailwind widths — `border`,\n`border-2`, `border-4`, and `border-[0.5px]` for a table divider.\n\nExported publicly so icons a consumer passes into a 2.0 component — a button\nicon, a menu item, a segmented-control segment — can match the ones the\ncomponents draw themselves.\n\nTwo deliberate departures inside the library: the empty-state illustrations\n(`NoDataContent`, the grid's no-rows overlay) use a much lighter stroke,\nsince a 1.5px line reads as a drawing at 16px and as a fence at 100px; and\nthe checkbox glyph uses a heavier one, because it is a control mark sized to\na 14px box rather than an icon from the set.",
10658
+ "signature": "DIAL_KIT_ICON_STROKE = 1.5"
10659
+ },
10660
+ {
10661
+ "name": "convertToDate",
10662
+ "sourceFile": "utils/grid-date.ts",
10663
+ "description": "Normalises the value a date cell can receive into a `Date`, or `null` when it\ncarries no usable date. A pure integer string is read as epoch milliseconds,\nso a serialised timestamp behaves like the number it came from.",
10664
+ "signature": "(input?: DateValue | null) => Date | null"
10665
+ },
10666
+ {
10667
+ "name": "baseColumnComparator",
10668
+ "sourceFile": "utils/grid-comparators.ts",
10669
+ "signature": "(a: string | number | undefined, b: string | number | undefined, _nodeA?: IRowNode, _nodeB?: IRowNode, isInverted?: boolean) => number"
10670
+ },
10671
+ {
10672
+ "name": "checkColDefsChanges",
10673
+ "sourceFile": "utils/grid-comparators.ts",
10674
+ "signature": "(cols: ColDef[], initialCols: ColDef[]) => unknown"
9827
10675
  }
9828
10676
  ],
9829
10677
  "utils": [