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

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 (202) hide show
  1. package/README.md +191 -0
  2. package/dist/CHANGELOG.md +75 -0
  3. package/dist/DateCellRenderer-ChqbDlQ2.cjs +1 -0
  4. package/dist/{DateCellRenderer-BVM-Q8yx.cjs → DateCellRenderer-Cl_mNbi1.cjs} +31 -31
  5. package/dist/IconButton-DHOFapLo.cjs +1 -0
  6. package/dist/JsonEditor-CpSpVa0v.cjs +1 -0
  7. package/dist/{MarkdownEditor-jQ8nDJfx.cjs → MarkdownEditor-CPzMv3lE.cjs} +1 -1
  8. package/dist/{MarkdownEditor-DHn2pYOJ.cjs → MarkdownEditor-NYMcKLJy.cjs} +1 -1
  9. package/dist/MarkdownEditorContainer-DVPRplYf.cjs +1 -0
  10. package/dist/{Switch-CUKClcEz.cjs → Switch-DE6MrcqJ.cjs} +1 -1
  11. package/dist/components/Button/constants.js +9 -8
  12. package/dist/components/Dropdown/Dropdown.js +70 -65
  13. package/dist/components/Dropdown/DropdownSubMenuItem.js +63 -55
  14. package/dist/components/Dropdown/constants.js +16 -14
  15. package/dist/components/DropdownIcon/DropdownIcon.js +43 -32
  16. package/dist/components/FileManager/FileManager.js +373 -372
  17. package/dist/components/FileManager/FileManagerProvider.js +266 -264
  18. package/dist/components/FileManager/hooks/use-grid-context-menu.js +59 -59
  19. package/dist/components/MarkdownEditor/MarkdownEditorContainer.js +18 -16
  20. package/dist/components/New/Accordion/Accordion.js +87 -71
  21. package/dist/components/New/AutocompleteTagInput/AutocompleteTagInput.js +206 -0
  22. package/dist/components/New/AutocompleteTagInput/utils.js +11 -0
  23. package/dist/components/New/Avatar/Avatar.js +70 -0
  24. package/dist/components/New/Badge/Badge.js +45 -0
  25. package/dist/components/New/BottomSheet/BottomSheet.js +128 -0
  26. package/dist/components/New/Breadcrumbs/Breadcrumbs.js +159 -0
  27. package/dist/components/New/Breadcrumbs/constants.js +41 -0
  28. package/dist/components/New/Button/Button.js +32 -32
  29. package/dist/components/New/Button/ButtonWrappers.js +93 -37
  30. package/dist/components/New/Button/constants.js +3 -0
  31. package/dist/components/New/Button/utils.js +18 -8
  32. package/dist/components/New/ButtonDropdown/ButtonDropdown.js +26 -16
  33. package/dist/components/New/Calendar/Calendar.js +301 -265
  34. package/dist/components/New/Calendar/constants.js +5 -5
  35. package/dist/components/New/CaptionText/CaptionText.js +18 -15
  36. package/dist/components/New/CardShell/CardShell.js +5 -3
  37. package/dist/components/New/Checkbox/Checkbox.js +67 -56
  38. package/dist/components/New/Checkbox/CheckboxBox.js +5 -3
  39. package/dist/components/New/CloseButton/CloseButton.js +18 -16
  40. package/dist/components/New/CollapsibleSidebar/CollapsibleSidebar.js +39 -34
  41. package/dist/components/New/ConfirmationPopup/ConfirmationPopup.js +38 -37
  42. package/dist/components/New/ConfirmationPopup/constants.js +8 -11
  43. package/dist/components/New/Dropdown/Dropdown.js +112 -105
  44. package/dist/components/New/Dropdown/DropdownSubMenuItem.js +17 -17
  45. package/dist/components/New/Dropdown/constants.js +22 -17
  46. package/dist/components/New/EllipsisTooltip/EllipsisTooltip.js +20 -18
  47. package/dist/components/New/EntityIdentity/EntityIdentity.js +135 -0
  48. package/dist/components/New/FileDropzone/FileDropzone.js +27 -25
  49. package/dist/components/New/FileIcon/FileIcon.js +55 -0
  50. package/dist/components/New/FileIcon/constants.js +134 -0
  51. package/dist/components/New/FileIcon/icons/FileGlyph.js +150 -0
  52. package/dist/components/New/FileIcon/icons/FolderGlyph.js +50 -0
  53. package/dist/components/New/FileName/FileName.js +78 -0
  54. package/dist/components/New/FilterChips/FilterChips.js +43 -0
  55. package/dist/components/New/FilterChips/constants.js +5 -0
  56. package/dist/components/New/FolderName/FolderName.js +16 -0
  57. package/dist/components/New/FolderPath/FolderPath.js +29 -28
  58. package/dist/components/New/Highlight/Highlight.js +23 -30
  59. package/dist/components/New/IconButton/IconButton.js +30 -28
  60. package/dist/components/New/InfoButton/InfoButton.js +13 -11
  61. package/dist/components/New/InlineSelect/InlineSelect.js +74 -56
  62. package/dist/components/New/InteractiveTooltip/InteractiveTooltip.js +41 -39
  63. package/dist/components/New/InteractiveTooltip/constants.js +2 -2
  64. package/dist/components/New/Label/Label.js +13 -8
  65. package/dist/components/New/MenuItem/MenuItem.js +29 -27
  66. package/dist/components/New/MenuItem/constants.js +9 -8
  67. package/dist/components/New/NoDataContent/NoDataContent.js +21 -19
  68. package/dist/components/New/Notification/Notification.js +33 -29
  69. package/dist/components/New/NumberInput/NumberInput.js +42 -33
  70. package/dist/components/New/PasswordInput/PasswordInput.js +41 -35
  71. package/dist/components/New/Popup/Popup.js +46 -44
  72. package/dist/components/New/Popup/constants.js +3 -3
  73. package/dist/components/New/Radio/Radio.js +75 -64
  74. package/dist/components/New/RadioGroup/RadioGroup.js +76 -65
  75. package/dist/components/New/RadioGroupPopupField/RadioGroupPopupField.js +117 -106
  76. package/dist/components/New/ResizableContainer/ResizableContainer.js +42 -40
  77. package/dist/components/New/Search/Search.js +29 -27
  78. package/dist/components/New/SegmentedControl/SegmentedControl.js +29 -23
  79. package/dist/components/New/Select/CollapsedSelectTags.js +127 -0
  80. package/dist/components/New/Select/MultiSelectTags.js +18 -15
  81. package/dist/components/New/Select/Select.js +219 -197
  82. package/dist/components/New/Select/constants.js +23 -20
  83. package/dist/components/New/SharedEntityIndicator/SharedEntityIndicator.js +34 -0
  84. package/dist/components/New/SideDrawer/SideDrawer.js +148 -0
  85. package/dist/components/New/Switch/Switch.js +69 -58
  86. package/dist/components/New/Tabs/Tabs.js +125 -61
  87. package/dist/components/New/Tag/Tag.js +42 -40
  88. package/dist/components/New/TagInput/TagInput.js +48 -44
  89. package/dist/components/New/ToggleIconButton/ToggleIconButton.js +26 -24
  90. package/dist/components/New/Tooltip/TooltipContent.js +11 -9
  91. package/dist/components/New/Tooltip/constants.js +1 -1
  92. package/dist/components/New/TransferQueue/TransferQueue.js +124 -0
  93. package/dist/components/New/TransferQueue/TransferQueueHeader.js +71 -0
  94. package/dist/components/New/TransferQueue/TransferQueueRow.js +119 -0
  95. package/dist/components/New/TransferQueue/constants.js +24 -0
  96. package/dist/components/New/constants/overlay.js +17 -9
  97. package/dist/components/Popup/constants.js +8 -8
  98. package/dist/components/ProgressBar/ProgressBar.js +45 -33
  99. package/dist/components/SchemaRenderer/components/SchemaAdditionalPropertiesEditor.js +46 -31
  100. package/dist/components/SchemaRenderer/components/SchemaField.js +19 -19
  101. package/dist/components/SchemaRenderer/components/SchemaFieldContent.js +18 -18
  102. package/dist/components/SchemaRenderer/components/SchemaKeyValueEditor.js +223 -135
  103. package/dist/components/SchemaRenderer/types.js +19 -8
  104. package/dist/components/SchemaRenderer/utils.js +122 -95
  105. package/dist/components/Skeleton/Skeleton.js +25 -19
  106. package/dist/components/Spinner/Spinner.js +7 -5
  107. package/dist/components/Tooltip/TooltipContent.js +11 -11
  108. package/dist/components-manifest.json +1653 -71
  109. package/dist/constants/public-class-names.js +210 -0
  110. package/dist/dial-ui-kit.cjs +2 -2
  111. package/dist/dial-ui-kit.js +346 -299
  112. package/dist/editor-Bc9xzKuR.cjs +1 -0
  113. package/dist/editors.cjs +1 -1
  114. package/dist/file-manager.cjs +1 -1
  115. package/dist/grid.cjs +1 -1
  116. package/dist/index.css +2 -2
  117. package/dist/lazy-Cy9WobJf.cjs +1 -0
  118. package/dist/merge-classes-BEJXjzkx.cjs +1 -0
  119. package/dist/migration-guides/0.15.0/legacy-theme-variable-fallbacks-removal.md +69 -0
  120. package/dist/migration-guides/README.md +1 -0
  121. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +419 -399
  122. package/dist/src/components/FileManager/FileManager.d.ts +2 -0
  123. package/dist/src/components/FileManager/FileManagerContext.d.ts +1 -0
  124. package/dist/src/components/FileManager/hooks/use-grid-context-menu.d.ts +2 -1
  125. package/dist/src/components/New/Accordion/Accordion.d.ts +6 -1
  126. package/dist/src/components/New/AutocompleteTagInput/AutocompleteTagInput.d.ts +97 -0
  127. package/dist/src/components/New/AutocompleteTagInput/utils.d.ts +17 -0
  128. package/dist/src/components/New/AutocompleteTagInput/utils.spec.d.ts +1 -0
  129. package/dist/src/components/New/Avatar/Avatar.d.ts +55 -0
  130. package/dist/src/components/New/Badge/Badge.d.ts +47 -0
  131. package/dist/src/components/New/BottomSheet/BottomSheet.d.ts +84 -0
  132. package/dist/src/components/New/Breadcrumbs/Breadcrumbs.d.ts +94 -0
  133. package/dist/src/components/New/Breadcrumbs/constants.d.ts +60 -0
  134. package/dist/src/components/New/Button/Button.d.ts +4 -1
  135. package/dist/src/components/New/Button/ButtonWrappers.d.ts +20 -0
  136. package/dist/src/components/New/Button/utils.d.ts +15 -0
  137. package/dist/src/components/New/ButtonDropdown/ButtonDropdown.d.ts +4 -0
  138. package/dist/src/components/New/Calendar/Calendar.d.ts +7 -1
  139. package/dist/src/components/New/Calendar/constants.d.ts +1 -1
  140. package/dist/src/components/New/ConfirmationPopup/constants.d.ts +0 -1
  141. package/dist/src/components/New/Dropdown/Dropdown.d.ts +9 -1
  142. package/dist/src/components/New/Dropdown/constants.d.ts +3 -0
  143. package/dist/src/components/New/EntityIdentity/EntityIdentity.d.ts +85 -0
  144. package/dist/src/components/New/FileIcon/FileIcon.d.ts +61 -0
  145. package/dist/src/components/New/FileIcon/constants.d.ts +16 -0
  146. package/dist/src/components/New/FileIcon/icons/FileGlyph.d.ts +18 -0
  147. package/dist/src/components/New/FileIcon/icons/FolderGlyph.d.ts +17 -0
  148. package/dist/src/components/New/FileName/FileName.d.ts +79 -0
  149. package/dist/src/components/New/FilterChips/FilterChips.d.ts +69 -0
  150. package/dist/src/components/New/FilterChips/constants.d.ts +13 -0
  151. package/dist/src/components/New/FolderName/FolderName.d.ts +37 -0
  152. package/dist/src/components/New/InlineSelect/InlineSelect.d.ts +16 -1
  153. package/dist/src/components/New/InteractiveTooltip/constants.d.ts +5 -4
  154. package/dist/src/components/New/Notification/Notification.d.ts +18 -0
  155. package/dist/src/components/New/Popup/constants.d.ts +1 -1
  156. package/dist/src/components/New/Select/CollapsedSelectTags.d.ts +22 -0
  157. package/dist/src/components/New/Select/MultiSelectTags.d.ts +5 -0
  158. package/dist/src/components/New/Select/Select.d.ts +9 -0
  159. package/dist/src/components/New/Select/constants.d.ts +3 -2
  160. package/dist/src/components/New/SharedEntityIndicator/SharedEntityIndicator.d.ts +35 -0
  161. package/dist/src/components/New/SideDrawer/SideDrawer.d.ts +100 -0
  162. package/dist/src/components/New/Tabs/Tabs.d.ts +54 -6
  163. package/dist/src/components/New/Tooltip/constants.d.ts +5 -3
  164. package/dist/src/components/New/TransferQueue/TransferQueue.d.ts +139 -0
  165. package/dist/src/components/New/TransferQueue/TransferQueueHeader.d.ts +16 -0
  166. package/dist/src/components/New/TransferQueue/TransferQueueRow.d.ts +10 -0
  167. package/dist/src/components/New/TransferQueue/constants.d.ts +6 -0
  168. package/dist/src/components/New/constants/overlay.d.ts +13 -0
  169. package/dist/src/components/Popup/constants.d.ts +1 -1
  170. package/dist/src/components/SchemaRenderer/types.d.ts +11 -0
  171. package/dist/src/components/SchemaRenderer/utils.d.ts +10 -1
  172. package/dist/src/constants/public-class-names.d.ts +201 -0
  173. package/dist/src/index.d.ts +36 -1
  174. package/dist/src/types/accordion.d.ts +7 -0
  175. package/dist/src/types/avatar.d.ts +7 -0
  176. package/dist/src/types/badge.d.ts +16 -0
  177. package/dist/src/types/breadcrumbs.d.ts +9 -0
  178. package/dist/src/types/button.d.ts +1 -0
  179. package/dist/src/types/entity-type.d.ts +9 -0
  180. package/dist/src/types/transfer-queue.d.ts +10 -0
  181. package/dist/src/utils/__tests__/avatar.spec.d.ts +1 -0
  182. package/dist/src/utils/avatar.d.ts +12 -0
  183. package/dist/src/utils/sub-menu-floating.d.ts +7 -4
  184. package/dist/types/accordion.js +4 -0
  185. package/dist/types/avatar.js +4 -0
  186. package/dist/types/badge.js +5 -0
  187. package/dist/types/breadcrumbs.js +4 -0
  188. package/dist/types/button.js +3 -3
  189. package/dist/types/entity-type.js +4 -0
  190. package/dist/types/transfer-queue.js +4 -0
  191. package/dist/use-file-manager-tabs-C-dMqEFy.cjs +3 -0
  192. package/dist/utils/avatar.js +22 -0
  193. package/dist/utils/merge-classes.js +12 -5
  194. package/dist/utils/sub-menu-floating.js +99 -54
  195. package/package.json +4 -7
  196. package/dist/DateCellRenderer-ssp7eaZY.cjs +0 -1
  197. package/dist/IconButton-DWqoaBWf.cjs +0 -1
  198. package/dist/JsonEditor-qv1Z0dLX.cjs +0 -1
  199. package/dist/MarkdownEditorContainer-Bzcnoemw.cjs +0 -1
  200. package/dist/lazy-tfN4sKhq.cjs +0 -1
  201. package/dist/merge-classes-Dipy1Ih1.cjs +0 -1
  202. package/dist/use-file-manager-tabs-DjdR_mYM.cjs +0 -3
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.15.0-dev.4",
3
- "generatedAt": "2026-09-16T07:40:41.827Z",
2
+ "version": "0.15.0-dev.42",
3
+ "generatedAt": "2026-10-07T14:20:38.576Z",
4
4
  "kit": {
5
5
  "name": "@epam/ai-dial-ui-kit",
6
6
  "description": "A modern UI kit for building AI DIAL interfaces with React",
@@ -17,7 +17,7 @@
17
17
  "setupNotes": "## Next.js Integration\n1. Install the package. React is the only peer you have to supply — everything\n the kit renders with, it installs itself.\n\n``` bash\nnpm install @epam/ai-dial-ui-kit\nnpm install react react-dom\n```\n\nAdd the editor packages only if you use the `@epam/ai-dial-ui-kit/editors`\nsubpath. They are optional peers, so `npm install` stays quiet without them, and\nthe kit only reaches for them when a `Lazy*` editor actually mounts:\n\n``` bash\nnpm install monaco-editor @monaco-editor/react @uiw/react-md-editor\n```\n\n2. Import style in the root layout of the project:\n\n```tsx\n// app/layout.tsx\nimport \"@epam/ai-dial-ui-kit/styles.css\";\n```\n\n3. Usage example\n\n```tsx\n// app/page.tsx\n\"use client\";\nimport { DialPrimaryButton } from \"@epam/ai-dial-ui-kit\";\n\nexport default function Home() {\n return (\n <div className=\"w-full h-full flex flex-col gap-3 items-center justify-center\">\n <h1>Test library</h1>\n <DialPrimaryButton onClick={() => alert('Hello AI DIAL!')} />\n </div>\n );\n}\n```\nSee \"🎨 Theming & Customization\" section in README."
18
18
  },
19
19
  "styles": "# Typography CSS Utility Classes\n\n## Design-system-compliant classes (`dial-*-text`)\n\nUse these by default. They follow the design system type scale.\n\n| Class | Design name | Weight | Size / Line-height |\n| --------------------------------- | --------------------------- | -------- | ----------------------------------- |\n| `.dial-display1-text` | Display 1 | semibold | 32px / 48px |\n| `.dial-display2-text` | Display 2 | semibold | 28px / 40px |\n| `.dial-display3-text` | Display 3 | semibold | 22px / 32px |\n| `.dial-h1-text` | Heading 1 | semibold | 20px / 28px |\n| `.dial-h2-text` | Heading 2 | semibold | 18px / 26px |\n| `.dial-h3-text` | Heading 3 | semibold | 16px / 24px |\n| `.dial-body-text` | Body Text | normal | 16px / 24px |\n| `.dial-body-semi-text` | Body Text (Semi Bold) | semibold | 16px / 24px |\n| `.dial-body-paragraph-text` | Body Paragraph | normal | 16px / 26px |\n| `.dial-body-paragraph-semi-text` | Body Paragraph (Semi Bold) | semibold | 16px / 26px |\n| `.dial-small-text` | Small Text | normal | 14px / 20px |\n| `.dial-small-semi-text` | Small Text (Semi Bold) | semibold | 14px / 20px |\n| `.dial-small-paragraph-text` | Small Paragraph | normal | 14px / 24px |\n| `.dial-small-paragraph-semi-text` | Small Paragraph (Semi Bold) | semibold | 14px / 24px |\n| `.dial-tiny-text` | Tiny Text | normal | 12px / 16px |\n| `.dial-tiny-lead-text` | Tiny Text Lead | normal | 12px / 16px (+0.03em, uppercase) |\n| `.dial-tiny-semi-text` | Tiny Text (Semi Bold) | semibold | 12px / 16px |\n| `.dial-tiny-lead-semi-text` | Tiny Text Lead (Semi Bold) | semibold | 12px / 16px (+0.03em, uppercase) |\n| `.dial-caption-text` | Caption | normal | 10px / 12px |\n| `.dial-caption-lead-semi-text` | Caption Lead (Semi Bold) | semibold | 10px / 12px (+0.06em, uppercase) |\n| `.dial-code-text` | Code | normal | 14px / 20px (Fira Code / monospace) |\n| `.dial-italic-text` | Italic | normal | 18px / 22px (serif, italic) |\n| `.dial-small-italic-text` | Small Italic | normal | 14px / 20px (serif, italic) |\n| `.dial-tiny-italic-text` | Tiny Italic | normal | 12px / 16px (serif, italic) |\n| `.dial-caption-italic-text` | Caption Italic | normal | 10px / 12px (serif, italic) |\n\nThe three `*-lead-*` classes apply `text-transform: uppercase` themselves — pass them the sentence-case string, not a pre-uppercased one, so the accessible name stays readable.\n\n`.dial-code-text` resolves its family through `var(--theme-font-mono, var(--font-fira-code, 'Fira Code'))` before falling back to the system monospace stack. The kit ships no font file; the host provides the face.\n\nThe `*-italic-text` classes use a serif italic face and are intended for mathematical and formula symbols. Their line-heights follow the corresponding typography size; the default 18px variant uses a fixed 22px line-height to keep standalone symbols vertically aligned without changing their container's height.\n\n## Legacy classes (avoid in new code)\n\nClasses like `dial-h1`, `dial-h2`, `dial-body`, `dial-small*`, `dial-tiny*`, `dial-caption` are legacy. They can be used in legacy projects if user explicidly specify they need legacy typography.\n\n## Raw SCSS source\n",
20
- "theming": "# Theming & CSS Variable Tokens\n\nAI DIAL UI Kit uses CSS custom properties (variables) for theming.\nDark and light themes are switched by setting different values for these variables on `:root` or a theme wrapper element.\n\n## Usage in Tailwind\n\nThe Tailwind config maps CSS variables to utility classes.\nUse these classes in your components:\n\n```tsx\n// Backgrounds\n<div className=\"bg-layer-0\" /> // darkest background\n<div className=\"bg-layer-1\" /> // main content area\n<div className=\"bg-layer-2\" /> // elevated panels\n\n// Text\n<span className=\"text-primary\" /> // main text color\n<span className=\"text-secondary\" /> // muted text\n<span className=\"text-error\" /> // error state\n\n// Borders\n<div className=\"border border-primary\" /> // standard border\n<div className=\"border border-error\" /> // error border\n```\n\n## Override CSS Variables\n\n```css\n:root {\n --bg-layer-0: #000000;\n --bg-layer-1: #0c101d;\n --bg-layer-2: #161b2d;\n --bg-layer-3: #1d2439;\n --text-primary: #eef1f7;\n --text-secondary: #9fa6bd;\n --text-error: #f76464;\n --stroke-primary: #696e7c;\n --controls-bg-accent-primary: #3664e2;\n /* ... see tailwind.config.js for full list */\n}\n```\n\n## Token Reference\n\n\n### backgroundsColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-sunken` | `var(--bg-layer-sunken)` | `#EEF1F7` |\n| `layer-base` | `var(--bg-layer-base)` | `#F5F7FA` |\n| `layer-raised` | `var(--bg-layer-raised)` | `#FCFCFC` |\n| `gradient-1` | `var(--bg-gradient-1)` | `#1D4ED8` |\n| `gradient-1-hover` | `var(--bg-gradient-1-hover)` | `#6785FB` |\n| `gradient-1-active` | `var(--bg-gradient-1-active)` | `#1D4ED8` |\n| `gradient-2` | `var(--bg-gradient-2)` | `#885DF2` |\n| `gradient-2-hover` | `var(--bg-gradient-2-hover)` | `#885DF2` |\n| `gradient-2-active` | `var(--bg-gradient-2-active)` | `#7C3AED` |\n| `control-accent-alpha` | `var(--bg-control-accent-alpha)` | `#2764D90F` |\n| `control-accent-alpha-hover` | `var(--bg-control-accent-alpha-hover)` | `#2764D924` |\n| `control-accent-alpha-active` | `var(--bg-control-accent-alpha-active)` | `#2764D933` |\n| `control-accent` | `var(--bg-control-accent)` | `#1D4ED8` |\n| `control-accent-hover` | `var(--bg-control-accent-hover)` | `#5976E9` |\n| `control-neutral` | `var(--bg-control-neutral)` | `#FCFCFC` |\n| `control-neutral-hover-strong` | `var(--bg-control-neutral-hover-strong)` | `#848E9C` |\n| `control-neutral-active` | `var(--bg-control-neutral-active)` | `#D1DBEA` |\n| `control-neutral-default` | `var(--bg-control-neutral-default)` | `#ACB3C3` |\n| `control-inverted` | `var(--bg-control-inverted)` | `#57647A` |\n| `control-error` | `var(--bg-control-error)` | `#AE2F2F` |\n| `control-error-hover` | `var(--bg-control-error-hover)` | `#BF3939` |\n| `control-error-active` | `var(--bg-control-error-active)` | `#CC4545` |\n| `control-error-alpha-hover` | `var(--bg-control-error-alpha-hover)` | `#F764641A` |\n| `control-error-alpha-active` | `var(--bg-control-error-alpha-active)` | `#F7646433` |\n| `control-disable-primary` | `var(--bg-control-disable-primary)` | `#DCE0E8` |\n| `control-disable-secondary` | `var(--bg-control-disable-secondary)` | `#ACB3C3` |\n| `green-1` | `var(--bg-visual-green-1)` | `#CDE8E5` |\n| `green-2` | `var(--bg-visual-green-2)` | `#D1F0DC` |\n| `violet-1` | `var(--bg-visual-violet-1)` | `#DDE3F9` |\n| `violet-2` | `var(--bg-visual-violet-2)` | `#F1E9FF` |\n\n### shadowColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `xs-1` | `var(--shadow-xs-1)` | `#2764D933` |\n| `xs-2` | `var(--shadow-xs-2)` | `#161B2D08` |\n\n### borderColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-alpha` | `var(--stroke-accent-alpha)` | `#2764D933` |\n| `gradient-1` | `var(--stroke-gradient-1)` | `#5976E9` |\n| `gradient-2` | `var(--stroke-gradient-2)` | `#885DF2` |\n| `accent-focus` | `var(--stroke-accent-focus)` | `#6785FB` |\n| `error-alpha` | `var(--stroke-error-alpha)` | `#AE2F2F73` |\n| `control-disable-primary` | `var(--stroke-control-disable-primary)` | `#848E9C` |\n\n### textColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `warning-icon` | `var(--text-warning-icon)` | `#EEC840` |\n| `green-1` | `var(--text-visual-green-1)` | `#059669` |\n| `green-2` | `var(--text-visual-green-2)` | `#0D6E72` |\n| `green-3` | `var(--text-visual-green-3)` | `#065F46` |\n| `brown-1` | `var(--text-visual-brown-1)` | `#D36817` |\n| `brown-2` | `var(--text-visual-brown-2)` | `#B45309` |\n| `violet-1` | `var(--text-visual-violet-1)` | `#7C3AED` |\n| `violet-2` | `var(--text-visual-violet-2)` | `#3730B7` |\n| `control-permanent` | `var(--text-control-permanent)` | `#FCFCFC` |\n| `control-inverted` | `var(--text-control-inverted)` | `#FCFCFC` |\n| `control-disable-primary` | `var(--text-control-disable-primary)` | `#848E9C` |\n| `control-disable-secondary` | `var(--text-control-disable-secondary)` | `#DCE0E8` |\n| `control-accent-hover` | `var(--text-control-accent-hover)` | `#5976E9` |\n| `control-accent-active` | `var(--text-control-accent-active)` | `#6785FB` |\n\n### backgroundsColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-0` | `var(--bg-layer-0)` | `#FCFCFC` |\n| `layer-1` | `var(--bg-layer-1)` | `#E0E6F0` |\n| `layer-2` | `var(--bg-layer-2)` | `#EEF1F7` |\n| `layer-3` | `var(--bg-layer-3)` | `#FCFCFC` |\n| `layer-4` | `var(--bg-layer-4)` | `#D1DBEA` |\n| `accent-primary-alpha` | `var(--bg-accent-primary-alpha)` | `#7DA4FF26` |\n| `accent-secondary-alpha` | `var(--bg-accent-secondary-alpha)` | `#37BABC2E` |\n| `accent-tertiary-alpha` | `var(--bg-accent-tertiary-alpha)` | `#A972FF2E` |\n| `accent-primary` | `var(--bg-accent-primary)` | `#5C8DEA` |\n| `accent-secondary` | `var(--bg-accent-secondary)` | `#37BABC` |\n| `red-400` | `var(--bg-red-400)` | `#F76464` |\n| `controls-accent-primary` | `var(--controls-bg-accent-primary)` | `#124ACE` |\n| `controls-accent-primary-hover` | `var(--controls-bg-accent-primary-hover)` | `#2656D9` |\n| `controls-accent-primary-active` | `var(--controls-bg-accent-primary-active)` | `#3664E2` |\n| `controls-accent-primary-alpha-active` | `var(--controls-bg-accent-primary-alpha-active)` | `#7DA4FF5C` |\n| `controls-accent-secondary-alpha-active` | `var(--controls-bg-accent-secondary-alpha-active)` | `#37BABC5C` |\n| `controls-accent-tertiary-alpha-active` | `var(--controls-bg-accent-tertiary-alpha-active)` | `#A972FF5C` |\n| `controls-error` | `var(--controls-bg-error)` | `#AE2F2F` |\n| `controls-error-hover` | `var(--controls-bg-error-hover)` | `#BF3939` |\n| `controls-error-active` | `var(--controls-bg-error-active)` | `#CC4545` |\n| `controls-error-alpha-active` | `var(--controls-bg-error-alpha-active)` | `#F764645C` |\n| `controls-disable-accent` | `var(--controls-bg-disable-accent)` | `#7C8293` |\n| `controls-disable` | `var(--controls-bg-disable)` | `#D1DBEA` |\n| `controls-neutral-hover` | `var(--controls-bg-neutral-hover)` | `#D1DBEA` |\n| `controls-neutral-active` | `var(--controls-bg-neutral-active)` | `#9FA6BD` |\n| `controls-accent-success-alpha-hover` | `var(--controls-bg-accent-success-alpha-hover)` | `#37BABC2E` |\n| `controls-accent-success-alpha-active` | `var(--controls-bg-accent-success-alpha-active)` | `#37BABC5C` |\n| `controls-enable-primary` | `var(--controls-enable-primary)` | `#FCFCFC` |\n\n### borderColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-primary` | `var(--stroke-accent-primary)` | `#124ACE` |\n| `accent-secondary` | `var(--stroke-accent-secondary)` | `#007274` |\n| `controls-accent` | `var(--controls-bg-accent)` | `#5C8DEA` |\n| `red-900` | `var(--red-900)` | `#402027` |\n\n### textColorsToRemove\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `accent-primary` | `var(--text-accent-primary)` | `#7DA4FF` |\n| `accent-secondary` | `var(--text-accent-secondary)` | `#37BABC` |\n| `accent-tertiary` | `var(--text-accent-tertiary)` | `#A972FF` |\n| `controls-permanent` | `var(--controls-text-permanent)` | `#FCFCFC` |\n| `controls-accent-disable` | `var(--controls-text-accent-disable)` | `#D1DBEA` |\n| `controls-primary-disable` | `var(--controls-text-primary-disable)` | `#696E7C` |\n| `controls-secondary-disable` | `var(--controls-text-secondary-disable)` | `#9FA6BD` |\n| `controls-neutral` | `var(--controls-text-neutral)` | `#161B2D` |\n| `controls-accent-primary-hover` | `var(--controls-text-accent-primary-hover)` | `#3664E2` |\n| `controls-accent-primary-active` | `var(--controls-text-accent-primary-active)` | `#7DA4FF` |",
20
+ "theming": "# Theming & CSS Variable Tokens\n\nAI DIAL UI Kit uses CSS custom properties (variables) for theming.\nDark and light themes are switched by setting different values for these variables on `:root` or a theme wrapper element.\n\n## Usage in Tailwind\n\nThe Tailwind config maps CSS variables to utility classes.\nUse these classes in your components:\n\n```tsx\n// Backgrounds\n<div className=\"bg-layer-0\" /> // darkest background\n<div className=\"bg-layer-1\" /> // main content area\n<div className=\"bg-layer-2\" /> // elevated panels\n\n// Text\n<span className=\"text-primary\" /> // main text color\n<span className=\"text-secondary\" /> // muted text\n<span className=\"text-error\" /> // error state\n\n// Borders\n<div className=\"border border-primary\" /> // standard border\n<div className=\"border border-error\" /> // error border\n```\n\n## Override CSS Variables\n\n```css\n:root {\n --bg-layer-0: #000000;\n --bg-layer-1: #0c101d;\n --bg-layer-2: #161b2d;\n --bg-layer-3: #1d2439;\n --text-primary: #eef1f7;\n --text-secondary: #9fa6bd;\n --text-error: #f76464;\n --stroke-primary: #696e7c;\n --controls-bg-accent-primary: #3664e2;\n /* ... see tailwind.config.js for full list */\n}\n```\n\n## Overlay stacking\n\nPortalled overlays stack on a ladder driven by one variable, `--z-overlay`\n(default `52`): `z-popup` (base — `Popup` backdrop), `z-floating` (+1 —\n`Dropdown`/`Select` overlays, submenus, `Calendar`), `z-interactive-tooltip`\n(+2 — `InteractiveTooltip`), `z-tooltip` (+3 — `Tooltip`). To lift every\noverlay above a host's own sticky header or modal, set the base once on `:root`\n(or in a `ThemeScope` class) — the steps move together, so their order is kept:\n\n```css\n:root {\n --z-overlay: 1000;\n}\n```\n\nDo not override `[role='menu']` or hardcode `z-[53]` in a host. To move one\noverlay only, pass a `z-*` utility through its class prop (`listClassName`,\n`overlayClassName`, `contentClassName`, `panelClassName`) — `mergeClasses`\nreplaces the layer's step with it.\n\n## Token Reference\n\n\n### backgroundsColors\n| Tailwind class suffix | CSS variable | Default value |\n|---|---|---|\n| `layer-sunken` | `var(--bg-layer-sunken)` | `#EEF1F7` |\n| `layer-base` | `var(--bg-layer-base)` | `#F5F7FA` |\n| `layer-raised` | `var(--bg-layer-raised)` | `#FCFCFC` |\n| `gradient-1` | `var(--bg-gradient-1)` | `#1D4ED8` |\n| `gradient-1-hover` | `var(--bg-gradient-1-hover)` | `#6785FB` |\n| `gradient-1-active` | `var(--bg-gradient-1-active)` | `#1D4ED8` |\n| `gradient-2` | `var(--bg-gradient-2)` | `#885DF2` |\n| `gradient-2-hover` | `var(--bg-gradient-2-hover)` | `#885DF2` |\n| `gradient-2-active` | `var(--bg-gradient-2-active)` | `#7C3AED` |\n| `control-accent-alpha` | `var(--bg-control-accent-alpha)` | `#2764D90F` |\n| `control-accent-alpha-hover` | `var(--bg-control-accent-alpha-hover)` | `#2764D924` |\n| `control-accent-alpha-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-hover-muted` | `var(--bg-control-neutral-hover-muted)` | `#E0E6F0` |\n| `control-neutral-active` | `var(--bg-control-neutral-active)` | `#D1DBEA` |\n| `control-neutral-default` | `var(--bg-control-neutral-default)` | `#ACB3C3` |\n| `control-inverted` | `var(--bg-control-inverted)` | `#57647A` |\n| `control-error` | `var(--bg-control-error)` | `#AE2F2F` |\n| `control-error-hover` | `var(--bg-control-error-hover)` | `#BF3939` |\n| `control-error-active` | `var(--bg-control-error-active)` | `#CC4545` |\n| `control-error-alpha-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` |",
21
21
  "components": [
22
22
  {
23
23
  "name": "Spinner",
@@ -212,6 +212,12 @@
212
212
  "required": true,
213
213
  "description": "Message text to display inside the alert"
214
214
  },
215
+ {
216
+ "name": "action",
217
+ "type": "ReactNode",
218
+ "required": false,
219
+ "description": "Optional control (typically a small `Button`) rendered at the inline end, after the text and before the close button; the caller supplies its accessible name"
220
+ },
215
221
  {
216
222
  "name": "closable",
217
223
  "type": "boolean",
@@ -247,7 +253,7 @@
247
253
  }
248
254
  ],
249
255
  "examples": [
250
- "<Notification\n variant={NotificationVariant.Info}\n message=\"This is an info alert.\"\n/>\n\n<Notification\n variant={NotificationVariant.Success}\n title=\"Saved\"\n message=\"Changes saved successfully.\"\n/>\n\n<Notification\n variant={NotificationVariant.Error}\n closable\n message=\"Something went wrong.\"\n onClose={(e) => console.log('closed', e)}\n/>\n\n<Notification\n variant={NotificationVariant.Loading}\n title=\"Processing\"\n message=\"Please wait...\"\n/>\n\n<Notification\n variant={NotificationVariant.General}\n type={NotificationType.SectionMessage}\n title=\"Title\"\n message=\"Description text example\"\n/>"
256
+ "<Notification\n variant={NotificationVariant.Info}\n message=\"This is an info alert.\"\n/>\n\n<Notification\n variant={NotificationVariant.Success}\n title=\"Saved\"\n message=\"Changes saved successfully.\"\n/>\n\n<Notification\n variant={NotificationVariant.Error}\n closable\n message=\"Something went wrong.\"\n onClose={(e) => console.log('closed', e)}\n/>\n\n<Notification\n variant={NotificationVariant.Loading}\n title=\"Processing\"\n message=\"Please wait...\"\n/>\n\n<Notification\n variant={NotificationVariant.General}\n type={NotificationType.SectionMessage}\n title=\"Title\"\n message=\"Description text example\"\n/>\n\n<Notification\n variant={NotificationVariant.Error}\n type={NotificationType.SectionMessage}\n title=\"Couldn't finish this response\"\n message=\"Something went wrong. Try again in a moment.\"\n action={\n <Button\n variant={ButtonVariant.Neutral}\n appearance={ButtonAppearance.Outlined}\n size={ElementSize.Small}\n label=\"Try again\"\n onClick={handleRetry}\n />\n }\n/>"
251
257
  ],
252
258
  "sourceFile": "components/New/Notification/Notification.tsx"
253
259
  },
@@ -429,6 +435,12 @@
429
435
  "required": false,
430
436
  "description": "Callback fired with the next value when the selection changes"
431
437
  },
438
+ {
439
+ "name": "onBlur",
440
+ "type": "FocusEventHandler<HTMLInputElement>",
441
+ "required": false,
442
+ "description": "Called when the Calendar's input field loses focus, e.g. for on-blur validation"
443
+ },
432
444
  {
433
445
  "name": "labelProps",
434
446
  "type": "LabelProps",
@@ -550,6 +562,71 @@
550
562
  ],
551
563
  "sourceFile": "components/New/FolderPath/FolderPath.tsx"
552
564
  },
565
+ {
566
+ "name": "Breadcrumbs",
567
+ "category": "Components_2_0",
568
+ "generation": "2.0",
569
+ "description": "A navigation trail: where the user is, and every level they can step back to.\naliases: Breadcrumb|NavigationPath|BreadcrumbTrail\nDesign system 2.0\n\nThe last item is the current page — drawn semibold and primary, and never a\ncontrol, since a link to the page you are already on does nothing. Every\nearlier item with an `href` or an `onClick` is a link; one with neither is\ndrawn as plain text, which is how a read-only location path is built.\n\nThe trail never wraps. Segments truncate instead, each revealing its full\nlabel in a tooltip only once it is actually clipped, and a trail longer than\n`maxVisibleItems` collapses its middle behind an ellipsis menu — the root and\nthe current page, the two segments that carry the most meaning, always stay\non screen.\n\na11y: an `<ol>` inside a named `<nav>`, with `aria-current=\"page\"` on the last\nsegment. Separators are decorative and hidden from assistive tech, so the\ntrail is announced as a list of links rather than a string of chevrons.\n\nThe trail is drawn at `dial-small-text` by default; `size` switches it to\n`dial-h2-text` for a trail that doubles as the page heading, where the\ntoken's own semibold weight applies to every segment.\n\nLabels are the caller's to translate; the two accessible names default to\nEnglish and take an override.",
570
+ "props": [
571
+ {
572
+ "name": "items",
573
+ "type": "BreadcrumbsItem[]",
574
+ "required": true,
575
+ "description": "The trail, outermost first; the last entry is the current page"
576
+ },
577
+ {
578
+ "name": "maxVisibleItems",
579
+ "type": "number",
580
+ "required": false,
581
+ "defaultValue": "DEFAULT_MAX_VISIBLE_ITEMS",
582
+ "description": "Segments drawn before the middle collapses behind an ellipsis menu"
583
+ },
584
+ {
585
+ "name": "size",
586
+ "type": "BreadcrumbsSize",
587
+ "required": false,
588
+ "defaultValue": "BreadcrumbsSize.Small",
589
+ "description": "The trail's type scale: `dial-small-text` or `dial-h2-text`"
590
+ },
591
+ {
592
+ "name": "separator",
593
+ "type": "ReactNode",
594
+ "required": false,
595
+ "defaultValue": "defaultSeparator",
596
+ "description": "Node drawn between two segments; defaults to a right chevron"
597
+ },
598
+ {
599
+ "name": "ariaLabel",
600
+ "type": "string",
601
+ "required": false,
602
+ "defaultValue": "'Breadcrumb'",
603
+ "description": "Accessible name for the `<nav>`"
604
+ },
605
+ {
606
+ "name": "overflowAriaLabel",
607
+ "type": "string",
608
+ "required": false,
609
+ "defaultValue": "'Show hidden path segments'",
610
+ "description": "Accessible name for the ellipsis button"
611
+ },
612
+ {
613
+ "name": "className",
614
+ "type": "string",
615
+ "required": false,
616
+ "description": "Additional CSS classes for the `<nav>`"
617
+ },
618
+ {
619
+ "name": "itemClassName",
620
+ "type": "string",
621
+ "required": false,
622
+ "description": "Additional CSS classes applied to every segment"
623
+ }
624
+ ],
625
+ "examples": [
626
+ "<Breadcrumbs\n ariaLabel={t('File path')}\n items={[\n { label: t('My files'), onClick: () => open('/') },\n { label: 'DK Test', onClick: () => open('/DK Test') },\n { label: 'DK Test with nested' },\n ]}\n/>"
627
+ ],
628
+ "sourceFile": "components/New/Breadcrumbs/Breadcrumbs.tsx"
629
+ },
553
630
  {
554
631
  "name": "DangerButton",
555
632
  "category": "Components_2_0",
@@ -617,6 +694,17 @@
617
694
  ],
618
695
  "sourceFile": "components/New/Button/ButtonWrappers.tsx"
619
696
  },
697
+ {
698
+ "name": "StarterButton",
699
+ "category": "Components_2_0",
700
+ "generation": "2.0",
701
+ "description": "A Starter Button component — a conversation starter: an outlined neutral\npill whose icons are stroked with the accent gradient\nDesign system 2.0\n\nAn SVG stroke cannot take a CSS gradient, so the button renders its own\n`linearGradient` with a per-instance id and hands it to its icons through\nthe `--dial-kit-starter-icon-stroke` custom property. Any icon that strokes\nwith `currentColor`, as Tabler icons do, picks it up.",
702
+ "props": [],
703
+ "examples": [
704
+ "<StarterButton\n label=\"Summarize this document\"\n iconBefore={<IconSparkles />}\n onClick={handleClick}\n/>"
705
+ ],
706
+ "sourceFile": "components/New/Button/ButtonWrappers.tsx"
707
+ },
620
708
  {
621
709
  "name": "DangerIconButton",
622
710
  "category": "Components_2_0",
@@ -726,7 +814,7 @@
726
814
  "name": "tooltipProps",
727
815
  "type": "ButtonTooltipProps",
728
816
  "required": false,
729
- "description": "Props of the 2.0 wrapping the button"
817
+ "description": "Props of the 2.0 wrapping the button.\nA disabled button with a visible tooltip is marked `aria-disabled` rather\nthan natively `disabled`, so it stays focusable and hoverable and the\ntooltip can still explain why it is unavailable; its click does nothing."
730
818
  },
731
819
  {
732
820
  "name": "href",
@@ -833,6 +921,12 @@
833
921
  "type": "DropdownItem[]",
834
922
  "required": true,
835
923
  "description": "DropdownItems with actions"
924
+ },
925
+ {
926
+ "name": "dropdownProps",
927
+ "type": "Pick<DropdownProps, 'listClassName' | 'matchReferenceWidth'>",
928
+ "required": false,
929
+ "description": "`listClassName` and `matchReferenceWidth` forwarded to the menu `Dropdown`"
836
930
  }
837
931
  ],
838
932
  "examples": [
@@ -968,10 +1062,35 @@
968
1062
  "type": "string",
969
1063
  "required": false
970
1064
  },
1065
+ {
1066
+ "name": "listStyle",
1067
+ "type": "CSSProperties",
1068
+ "required": false
1069
+ },
971
1070
  {
972
1071
  "name": "ariaLabel",
973
1072
  "type": "string",
974
1073
  "required": false
1074
+ },
1075
+ {
1076
+ "name": "triggerClassName",
1077
+ "type": "string",
1078
+ "required": false
1079
+ },
1080
+ {
1081
+ "name": "triggerLabelClassName",
1082
+ "type": "string",
1083
+ "required": false
1084
+ },
1085
+ {
1086
+ "name": "open",
1087
+ "type": "boolean",
1088
+ "required": false
1089
+ },
1090
+ {
1091
+ "name": "onOpenChange",
1092
+ "type": "(open: boolean) => void",
1093
+ "required": false
975
1094
  }
976
1095
  ],
977
1096
  "examples": [
@@ -1000,6 +1119,11 @@
1000
1119
  "type": "boolean",
1001
1120
  "required": false,
1002
1121
  "defaultValue": "false"
1122
+ },
1123
+ {
1124
+ "name": "labelClassName",
1125
+ "type": "string",
1126
+ "required": false
1003
1127
  }
1004
1128
  ],
1005
1129
  "examples": [],
@@ -1126,6 +1250,13 @@
1126
1250
  "defaultValue": "'Select all'",
1127
1251
  "description": "Label for the \"Select All\" checkbox."
1128
1252
  },
1253
+ {
1254
+ "name": "collapseTagOverflow",
1255
+ "type": "boolean",
1256
+ "required": false,
1257
+ "defaultValue": "false",
1258
+ "description": "Keep a multi-select's tags on one row, folding those that do not fit into a `+N` counter by the width available; the hover panel lists them and removes them."
1259
+ },
1129
1260
  {
1130
1261
  "name": "selectedOptionMark",
1131
1262
  "type": "| MenuItemMark.Tint\n | MenuItemMark.Check\n | MenuItemMark.Highlight",
@@ -1279,6 +1410,12 @@
1279
1410
  "type": "(\n event: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>,\n val: string,\n ) => void",
1280
1411
  "required": false,
1281
1412
  "description": "Called with the value whose tag was removed; when omitted the tags are not removable"
1413
+ },
1414
+ {
1415
+ "name": "tagClassName",
1416
+ "type": "string",
1417
+ "required": false,
1418
+ "description": "Additional classes for every tag"
1282
1419
  }
1283
1420
  ],
1284
1421
  "examples": [],
@@ -1999,6 +2136,12 @@
1999
2136
  "required": false,
2000
2137
  "description": "Additional CSS classes applied to the floating overlay"
2001
2138
  },
2139
+ {
2140
+ "name": "listStyle",
2141
+ "type": "CSSProperties",
2142
+ "required": false,
2143
+ "description": "Inline style applied to the floating overlay, under the dropdown's own positioning styles"
2144
+ },
2002
2145
  {
2003
2146
  "name": "outsidePressIgnoreRef",
2004
2147
  "type": "RefObject<HTMLElement | null>",
@@ -2193,7 +2336,7 @@
2193
2336
  "name": "Accordion",
2194
2337
  "category": "Components_2_0",
2195
2338
  "generation": "2.0",
2196
- "description": "A collapsible panel that toggles its content when the header is clicked.\naliases: Collapse|Disclosure|ExpandablePanel\nDesign system 2.0\n\nWorks as a controlled component when `expanded` is provided, otherwise it manages\nits own state from `defaultExpanded`. The header shows a caret that rotates when\nexpanded, a title, and an optional description stacked beneath it.\n\nThe revealed content is a labelled `region`, so assistive tech announces it by the\nheader it belongs to. `nonCollapsible` renders the header as static text instead of\na permanently disabled button, which keeps a decorative panel out of the tab order.",
2339
+ "description": "A collapsible panel that toggles its content when the header is clicked.\naliases: Collapse|Disclosure|ExpandablePanel\nDesign system 2.0\n\nWorks as a controlled component when `expanded` is provided, otherwise it manages\nits own state from `defaultExpanded`. The header shows a caret that rotates when\nexpanded, a title, and an optional description stacked beneath it.\n\nThe revealed content is a labelled `region`, so assistive tech announces it by the\nheader it belongs to. It stays mounted while collapsed so it can slide open and shut,\nand is `inert` then, out of both the tab order and the accessibility tree. `nonCollapsible` renders the header as static text instead of\na permanently disabled button, which keeps a decorative panel out of the tab order.",
2197
2340
  "props": [
2198
2341
  {
2199
2342
  "name": "title",
@@ -2250,6 +2393,13 @@
2250
2393
  "required": false,
2251
2394
  "description": "Fired when the header is clicked. Receives the next expanded state."
2252
2395
  },
2396
+ {
2397
+ "name": "caretPosition",
2398
+ "type": "AccordionCaretPosition",
2399
+ "required": false,
2400
+ "defaultValue": "AccordionCaretPosition.End",
2401
+ "description": "Where the header draws its caret: before or after the title."
2402
+ },
2253
2403
  {
2254
2404
  "name": "className",
2255
2405
  "type": "string",
@@ -2848,7 +2998,7 @@
2848
2998
  "name": "Tabs",
2849
2999
  "category": "Components_2_0",
2850
3000
  "generation": "2.0",
2851
- "description": "A horizontal row of tabs, underlining the active one and showing optional count badges.\naliases: TabRow|TabNavigation|TabBar\nDesign system 2.0\n\nFollows the ARIA tabs pattern with automatic activation: only the active tab is\nin the tab order, and the arrow keys move both focus and selection. `Home` and\n`End` jump to the first and last tab, and the arrows wrap around the ends.\nTabs marked `disabled` are greyed out, cannot be clicked, and are skipped by\nkeyboard navigation.\n\nThe component renders the tabs only; the panels stay with the consumer.",
3001
+ "description": "A row or rail of tabs, marking the active one and showing optional icons and count badges.\naliases: TabRow|TabNavigation|TabBar|VerticalTabs|SettingsNav|SideNav\nDesign system 2.0\n\nFollows the ARIA tabs pattern with automatic activation: only the active tab is\nin the tab order, and the arrow keys move both focus and selection. `Home` and\n`End` jump to the first and last tab, and the arrows wrap around the ends.\nTabs marked `disabled` are greyed out, cannot be clicked, and are skipped by\nkeyboard navigation.\n\n`TabOrientation.Horizontal` draws the default row: the active tab takes a\ngradient underline, and `ArrowLeft` / `ArrowRight` move along it.\n`TabOrientation.Vertical` draws the settings-page rail instead — full-width\nrows with the active one on a tinted pill rather than an underline, driven by\n`ArrowUp` / `ArrowDown`. The rail is the shape to reach for when the tabs\nlabel whole pages of a settings surface; the row, when they filter one.\n\n`className` lands on whichever element is outermost: the heading wrapper when\n`sectionLabel` is set, the `role=\"tablist\"` itself when it is not.\n\nThe component renders the tabs only; the panels stay with the consumer.",
2852
3002
  "props": [
2853
3003
  {
2854
3004
  "name": "tabs",
@@ -2868,6 +3018,19 @@
2868
3018
  "required": true,
2869
3019
  "description": "Fired with the tab's `id` when the user selects a tab."
2870
3020
  },
3021
+ {
3022
+ "name": "orientation",
3023
+ "type": "TabOrientation",
3024
+ "required": false,
3025
+ "defaultValue": "TabOrientation.Horizontal",
3026
+ "description": "Layout direction of the tab list."
3027
+ },
3028
+ {
3029
+ "name": "sectionLabel",
3030
+ "type": "string",
3031
+ "required": false,
3032
+ "description": "Heading rendered above the tabs, which also names the tab list."
3033
+ },
2871
3034
  {
2872
3035
  "name": "ariaLabel",
2873
3036
  "type": "string",
@@ -2878,20 +3041,92 @@
2878
3041
  "name": "className",
2879
3042
  "type": "string",
2880
3043
  "required": false,
2881
- "description": "Additional CSS classes for the tab list container."
3044
+ "description": "Additional CSS classes for the root element."
3045
+ },
3046
+ {
3047
+ "name": "tabListClassName",
3048
+ "type": "string",
3049
+ "required": false,
3050
+ "description": "Additional CSS classes for the `role=\"tablist\"`."
2882
3051
  },
2883
3052
  {
2884
3053
  "name": "tabClassName",
2885
3054
  "type": "string",
2886
3055
  "required": false,
2887
3056
  "description": "Additional CSS classes applied to every tab."
3057
+ },
3058
+ {
3059
+ "name": "sectionLabelClassName",
3060
+ "type": "string",
3061
+ "required": false,
3062
+ "description": "Additional CSS classes for the `sectionLabel` heading."
2888
3063
  }
2889
3064
  ],
2890
3065
  "examples": [
2891
- "<Tabs\n ariaLabel=\"Conversation views\"\n tabs={[\n { id: 'all', label: 'All', count: 12 },\n { id: 'shared', label: 'Shared with me' },\n ]}\n activeTabId={activeTabId}\n onTabChange={setActiveTabId}\n/>"
3066
+ "<Tabs\n ariaLabel=\"Conversation views\"\n tabs={[\n { id: 'all', label: 'All', count: 12 },\n { id: 'shared', label: 'Shared with me' },\n ]}\n activeTabId={activeTabId}\n onTabChange={setActiveTabId}\n/>",
3067
+ "<Tabs\norientation={TabOrientation.Vertical}\nsectionLabel={t('Settings')}\nclassName=\"w-[240px] shrink-0 border-e border-e-tertiary\"\ntabs={[\n{ id: 'preferences', label: t('Preferences'), icon: <IconSettings size={18} /> },\n{ id: 'usage', label: t('Usage'), icon: <IconChartBar size={18} /> },\n]}\nactiveTabId={activeTabId}\nonTabChange={setActiveTabId}\n/>"
2892
3068
  ],
2893
3069
  "sourceFile": "components/New/Tabs/Tabs.tsx"
2894
3070
  },
3071
+ {
3072
+ "name": "FilterChips",
3073
+ "category": "Components_2_0",
3074
+ "generation": "2.0",
3075
+ "description": "A row of filter chips that picks one value out of a few.\naliases: FilterChipRow|ChipTabs|TagTabs|FilterTabs\nDesign system 2.0\n\nThe chip-shaped sibling of the kit's other single-select rows, and the one to\nreach for when the options label a *subset of a list* — \"All\", \"Shared\",\n\"Mine\" above a history panel. `Tabs` underlines the active option and reads\nas navigation between panels; `SegmentedControl` sinks equal segments into a\ntrack and reads as a view switch. This one draws `TagAppearance.Selectable`\nchips: no fill until selected, and a semibold label once it is. Selecting a\nchip therefore widens it by the difference between the regular and semibold\nlabel — give the row `stretch`, or the chips a width, if that shift matters.\n\nEach chip is a toggle button carrying its state on `aria-pressed`, wrapped in\na named `role=\"group\"` — the pattern `Tag` is built for. That makes every\nchip its own tab stop, which is what a filter row wants: unlike a\n`radiogroup`, arrowing onto a chip never changes the filter by accident.\nName the group through `aria-label` or `aria-labelledby`, or the chips are\nannounced as a handful of unrelated toggles.\n\nThere is no disabled chip. An option the user must not pick is left out of\n`items` — a chip that renders but cannot be activated is a label and nothing\nelse, and `Tag` drops its button role when disabled, so it would not even\nannounce as unavailable.\n\nLabels are the caller's to translate — the component ships no English\ndefaults.",
3076
+ "props": [
3077
+ {
3078
+ "name": "items",
3079
+ "type": "FilterChipItem<T>[]",
3080
+ "required": true,
3081
+ "description": "Chips to render, in order; each needs a unique `value` and a `label`"
3082
+ },
3083
+ {
3084
+ "name": "value",
3085
+ "type": "T",
3086
+ "required": true,
3087
+ "description": "The `value` of the selected chip"
3088
+ },
3089
+ {
3090
+ "name": "onChange",
3091
+ "type": "(value: T) => void",
3092
+ "required": true,
3093
+ "description": "Called with the `value` of the chip the user picked. A click on the already-selected chip fires it again, so a row that clears back to a default handles that itself"
3094
+ },
3095
+ {
3096
+ "name": "stretch",
3097
+ "type": "boolean",
3098
+ "required": false,
3099
+ "defaultValue": "false",
3100
+ "description": "Grows the chips to share the row width equally instead of hugging their labels"
3101
+ },
3102
+ {
3103
+ "name": "className",
3104
+ "type": "string",
3105
+ "required": false,
3106
+ "description": "Additional classes for the row, e.g. its padding or `flex-wrap`"
3107
+ },
3108
+ {
3109
+ "name": "chipClassName",
3110
+ "type": "string",
3111
+ "required": false,
3112
+ "description": "Additional classes for every chip. A panel too narrow for the chips' default padding can tighten it here"
3113
+ },
3114
+ {
3115
+ "name": "'aria-label'",
3116
+ "type": "string",
3117
+ "required": false
3118
+ },
3119
+ {
3120
+ "name": "'aria-labelledby'",
3121
+ "type": "string",
3122
+ "required": false
3123
+ }
3124
+ ],
3125
+ "examples": [
3126
+ "<FilterChips\n aria-label={t('Filter chats')}\n value={tab}\n onChange={setTab}\n items={[\n { value: 'all', label: t('All') },\n { value: 'mine', label: t('My chats') },\n { value: 'shared', label: t('Shared') },\n ]}\n/>"
3127
+ ],
3128
+ "sourceFile": "components/New/FilterChips/FilterChips.tsx"
3129
+ },
2895
3130
  {
2896
3131
  "name": "FileDropzone",
2897
3132
  "category": "Components_2_0",
@@ -2985,103 +3220,832 @@
2985
3220
  "sourceFile": "components/New/FileDropzone/FileDropzone.tsx"
2986
3221
  },
2987
3222
  {
2988
- "name": "Tag",
3223
+ "name": "FileIcon",
2989
3224
  "category": "Components_2_0",
2990
3225
  "generation": "2.0",
2991
- "description": "A compact label element used for selections, filters, or categories.\naliases: Chip|Pill\nDesign system 2.0\n\nThe tag has one height — the 32px pill of the 2.0 design. There is no `size`\nprop: a tag sizes itself, and a caller that needs a different height is\nusually reaching for a button.\n\nThe label truncates rather than wrapping, and carries a native `title` so the\nfull text stays reachable when it does.\n\nA tag with `onClick` becomes a `role=\"button\"` operable with Enter and Space.\nIts remove control is a real nested `<button>`, so keep the two roles apart in\nthe caller: a clickable tag that is also closable gives a screen reader two\nactions with no way to tell which one it landed on.\n\nNo tag draws a rim; the two appearances are told apart by their fill.\n`TagAppearance.Selectable` is the filter chip of the 2.0 design: no fill\nat all until it is selected, one hover tint shared by both states, a semibold\nlabel once selected, and the state carried on `aria-pressed` rather than by\nthe tint alone. Give it an `onClick` — a selectable tag that cannot be\nactivated is a colour and nothing else.\n\nSelecting one therefore changes its width by the difference between the\nregular and semibold label. In a wrapping filter row that is what the design\nasks for; if a fixed width matters, give the chip one.",
3226
+ "description": "The icon of a file or folder row in a file manager: a file-type glyph picked\nby extension, or a folder, with an optional shared badge and loading state.\naliases: FileTypeIcon|EntityIcon\nDesign system 2.0\n\nThe root is a `role=\"img\"` whose name says what the item is, and that it is\nshared — the badge itself is drawn inside the image, so its tooltip is a\npointer-only hint and never the only place the state is conveyed. While\n`loading`, the root drops the role and holds a `Spinner`, which announces\nitself as a status. Pass `decorative` when the row already names the item.",
2992
3227
  "props": [
2993
3228
  {
2994
- "name": "label",
2995
- "type": "string",
3229
+ "name": "type",
3230
+ "type": "DialItemType",
2996
3231
  "required": true,
2997
- "description": "Text content displayed inside the tag."
3232
+ "description": "Whether the item is a file or a folder"
2998
3233
  },
2999
3234
  {
3000
- "name": "icon",
3001
- "type": "ReactNode",
3002
- "required": false,
3003
- "description": "Icon rendered before the label."
3235
+ "name": "name",
3236
+ "type": "string",
3237
+ "required": true,
3238
+ "description": "Item name; a file's extension is read from it"
3004
3239
  },
3005
3240
  {
3006
- "name": "appearance",
3007
- "type": "TagAppearance",
3241
+ "name": "fileExtension",
3242
+ "type": "string",
3008
3243
  "required": false,
3009
- "defaultValue": "TagAppearance.Outlined",
3010
- "description": "`outlined` is the filled chip on the raised\nlayer; `selectable` is the unfilled filter chip that tints and turns semibold when selected."
3244
+ "description": "Extension overriding the one in `name`"
3011
3245
  },
3012
3246
  {
3013
- "name": "selected",
3247
+ "name": "shared",
3014
3248
  "type": "boolean",
3015
3249
  "required": false,
3016
3250
  "defaultValue": "false",
3017
- "description": "Applies the accent-tinted selected styling."
3251
+ "description": "Draws the shared badge"
3018
3252
  },
3019
3253
  {
3020
- "name": "disabled",
3254
+ "name": "loading",
3021
3255
  "type": "boolean",
3022
3256
  "required": false,
3023
3257
  "defaultValue": "false",
3024
- "description": "Stops the tag responding: no click handling, no remove control. The design defines no disabled tag, so the colours stay put."
3258
+ "description": "Replaces the glyph with a spinner"
3025
3259
  },
3026
3260
  {
3027
- "name": "closable",
3261
+ "name": "size",
3262
+ "type": "number",
3263
+ "required": false,
3264
+ "defaultValue": "DIAL_ICON_SIZE.MD",
3265
+ "description": "Glyph size in px"
3266
+ },
3267
+ {
3268
+ "name": "className",
3269
+ "type": "string",
3270
+ "required": false,
3271
+ "description": "Additional CSS classes for the root element"
3272
+ },
3273
+ {
3274
+ "name": "decorative",
3028
3275
  "type": "boolean",
3029
3276
  "required": false,
3030
3277
  "defaultValue": "false",
3031
- "description": "Renders the remove button. Needs `onRemove` to appear."
3278
+ "description": "Hides the icon from assistive technology"
3032
3279
  },
3033
3280
  {
3034
- "name": "removeLabel",
3281
+ "name": "label",
3035
3282
  "type": "string",
3036
3283
  "required": false,
3037
- "description": "Accessible name of the remove button; defaults to `Remove <label>`."
3284
+ "description": "Accessible name, overriding the generated one"
3038
3285
  },
3039
3286
  {
3040
- "name": "onRemove",
3041
- "type": "(event: MouseEvent<HTMLButtonElement>) => void",
3287
+ "name": "loadingLabel",
3288
+ "type": "string",
3042
3289
  "required": false,
3043
- "description": "Called when the remove button is clicked. The click does not bubble to `onClick`."
3290
+ "defaultValue": "'Loading'",
3291
+ "description": "Accessible name of the spinner"
3292
+ },
3293
+ {
3294
+ "name": "sharedIndicatorClassName",
3295
+ "type": "string",
3296
+ "required": false,
3297
+ "description": "Additional CSS classes for the shared badge"
3298
+ },
3299
+ {
3300
+ "name": "sharedIndicatorTooltip",
3301
+ "type": "ReactNode",
3302
+ "required": false,
3303
+ "description": "Tooltip shown over the shared badge"
3044
3304
  }
3045
3305
  ],
3046
3306
  "examples": [
3047
- "<Tag label=\"TypeScript\" />\n<Tag label=\"TypeScript\" closable onRemove={() => remove('TypeScript')} />\n<Tag label=\"Drafts\" selected onClick={() => toggle('Drafts')} />\n<Tag\n label=\"Drafts\"\n appearance={TagAppearance.Selectable}\n selected={isSelected}\n onClick={() => toggle('Drafts')}\n/>"
3307
+ "<FileIcon name=\"report.pdf\" type={DialItemType.File} shared />\n<FileIcon name=\"Projects\" type={DialItemType.Folder} loading />"
3048
3308
  ],
3049
- "sourceFile": "components/New/Tag/Tag.tsx"
3309
+ "sourceFile": "components/New/FileIcon/FileIcon.tsx"
3050
3310
  },
3051
3311
  {
3052
- "name": "TagInput",
3312
+ "name": "FileName",
3053
3313
  "category": "Components_2_0",
3054
3314
  "generation": "2.0",
3055
- "description": "A tag input field: type a value and commit it with Enter or comma.\naliases: MultiTag|TagField|ChipInput\nDesign system 2.0\n\nThe field is an , so it carries the 2.0 field styling, sizes,\nlabel, caption and error states, and the tags render as s in its\ncontent slot. The field grows as tags wrap, unless `collapseTagOverflow` keeps\nthem on one line behind a `+N` chip.\n\nWorks controlled (`value` + `onChange`) or uncontrolled (`defaultValue`).\nDuplicate tags are ignored. Backspace on an empty input removes the last tag.",
3315
+ "description": "A file or folder name with its type icon, truncated with a tooltip when it\ndoes not fit.\naliases: FileDisplay|NameDisplay\nDesign system 2.0\n\nThe visible name already says what the item is, so the icon is decorative;\nthe shared state, which only the badge shows, is announced by a\nvisually-hidden `sharedLabel` after the name instead.\n\nWhile `loading` the icon is swapped for a `Spinner`, which is left in the\naccessibility tree so the busy state is announced.\n\nWith `details` the text switches to two lines — the name, then the metadata.",
3056
3316
  "props": [
3057
3317
  {
3058
- "name": "id",
3318
+ "name": "name",
3059
3319
  "type": "string",
3060
- "required": false,
3061
- "description": "The id of the text input, linked to the label."
3320
+ "required": true,
3321
+ "description": "Full item name, with or without an extension"
3062
3322
  },
3063
3323
  {
3064
- "name": "value",
3065
- "type": "string[]",
3324
+ "name": "type",
3325
+ "type": "DialItemType",
3066
3326
  "required": false,
3067
- "description": "Controlled tag list."
3327
+ "defaultValue": "DialItemType.File",
3328
+ "description": "Whether the item is a file or a folder"
3068
3329
  },
3069
3330
  {
3070
- "name": "defaultValue",
3071
- "type": "string[]",
3331
+ "name": "fileExtension",
3332
+ "type": "string",
3072
3333
  "required": false,
3073
- "description": "Initial tag list when uncontrolled."
3334
+ "description": "Extension overriding the one in `name`"
3074
3335
  },
3075
3336
  {
3076
- "name": "size",
3077
- "type": "ElementSize",
3337
+ "name": "shared",
3338
+ "type": "boolean",
3078
3339
  "required": false,
3079
- "defaultValue": "ElementSize.Standard",
3080
- "description": "Field height: standard is 40px, small is 24px."
3340
+ "defaultValue": "false",
3341
+ "description": "Draws the shared badge on the icon"
3081
3342
  },
3082
3343
  {
3083
- "name": "labelProps",
3084
- "type": "LabelProps",
3344
+ "name": "loading",
3345
+ "type": "boolean",
3346
+ "required": false,
3347
+ "defaultValue": "false",
3348
+ "description": "Replaces the icon with a spinner"
3349
+ },
3350
+ {
3351
+ "name": "loadingLabel",
3352
+ "type": "string",
3353
+ "required": false,
3354
+ "description": "Accessible name of the spinner"
3355
+ },
3356
+ {
3357
+ "name": "iconSize",
3358
+ "type": "number",
3359
+ "required": false,
3360
+ "description": "Icon size in px"
3361
+ },
3362
+ {
3363
+ "name": "details",
3364
+ "type": "ReactNode",
3365
+ "required": false,
3366
+ "description": "Metadata under the name"
3367
+ },
3368
+ {
3369
+ "name": "isInvalidName",
3370
+ "type": "boolean",
3371
+ "required": false,
3372
+ "defaultValue": "false",
3373
+ "description": "Mutes the name, marking it as invalid"
3374
+ },
3375
+ {
3376
+ "name": "className",
3377
+ "type": "string",
3378
+ "required": false,
3379
+ "description": "Additional CSS classes for the root element"
3380
+ },
3381
+ {
3382
+ "name": "nameClassName",
3383
+ "type": "string",
3384
+ "required": false,
3385
+ "description": "Additional CSS classes for the name text"
3386
+ },
3387
+ {
3388
+ "name": "sharedIndicatorClassName",
3389
+ "type": "string",
3390
+ "required": false,
3391
+ "description": "Additional CSS classes for the shared badge"
3392
+ },
3393
+ {
3394
+ "name": "sharedIndicatorTooltip",
3395
+ "type": "ReactNode",
3396
+ "required": false,
3397
+ "description": "Tooltip shown over the shared badge"
3398
+ },
3399
+ {
3400
+ "name": "sharedLabel",
3401
+ "type": "string",
3402
+ "required": false,
3403
+ "defaultValue": "'Shared'",
3404
+ "description": "Screen-reader text announcing the shared state"
3405
+ },
3406
+ {
3407
+ "name": "hideTooltip",
3408
+ "type": "boolean",
3409
+ "required": false,
3410
+ "defaultValue": "false",
3411
+ "description": "Suppresses the full-name tooltip"
3412
+ },
3413
+ {
3414
+ "name": "tooltipContent",
3415
+ "type": "ReactNode",
3416
+ "required": false,
3417
+ "description": "Shown instead of the full name while truncated"
3418
+ }
3419
+ ],
3420
+ "examples": [
3421
+ "<FileName name=\"Document.pdf\" shared />\n<FileName\n name=\"Document.pdf\"\n details={<span className=\"dial-tiny-text text-secondary\">24 KB · Jul 20</span>}\n/>"
3422
+ ],
3423
+ "sourceFile": "components/New/FileName/FileName.tsx"
3424
+ },
3425
+ {
3426
+ "name": "FolderName",
3427
+ "category": "Components_2_0",
3428
+ "generation": "2.0",
3429
+ "description": "A folder name with the folder icon, truncated with a tooltip when it does\nnot fit.\naliases: FolderDisplay|DirectoryName\nDesign system 2.0\n\nA `FileName` fixed to `DialItemType.Folder`, so it shares every behaviour of\nit — decorative icon, visually-hidden shared label, `details` line and the\n`loading` spinner. Its root carries `dial-kit-folder-name` on top of\n`dial-kit-file-name`.",
3430
+ "props": [],
3431
+ "examples": [
3432
+ "<FolderName name=\"Organization\" shared />\n<FolderName name=\"Uploads\" loading />"
3433
+ ],
3434
+ "sourceFile": "components/New/FolderName/FolderName.tsx"
3435
+ },
3436
+ {
3437
+ "name": "SharedEntityIndicator",
3438
+ "category": "Components_2_0",
3439
+ "generation": "2.0",
3440
+ "description": "A small arrow badge marking an entity as shared.\naliases: SharedIcon|AccessIndicator\nDesign system 2.0\n\nA `role=\"img\"` named by `label`, so it can stand on its own. Placed inside a\nlarger `role=\"img\"` — as `FileIcon` does — its name is folded into the\nparent's, which is why `FileIcon` names the shared state itself. The tooltip\nis a pointer-only hint: the badge is not focusable, and the tooltip never\nreaches assistive technology, so `label` is what carries the meaning.",
3441
+ "props": [
3442
+ {
3443
+ "name": "label",
3444
+ "type": "string",
3445
+ "required": false,
3446
+ "defaultValue": "'Shared'",
3447
+ "description": "Accessible name of the badge"
3448
+ },
3449
+ {
3450
+ "name": "tooltip",
3451
+ "type": "ReactNode",
3452
+ "required": false,
3453
+ "description": "Tooltip shown while the badge is hovered"
3454
+ },
3455
+ {
3456
+ "name": "size",
3457
+ "type": "number",
3458
+ "required": false,
3459
+ "defaultValue": "12",
3460
+ "description": "Arrow size in px"
3461
+ },
3462
+ {
3463
+ "name": "className",
3464
+ "type": "string",
3465
+ "required": false,
3466
+ "description": "Additional CSS classes for the badge"
3467
+ }
3468
+ ],
3469
+ "examples": [
3470
+ "<SharedEntityIndicator />\n<SharedEntityIndicator tooltip=\"Shared with 3 people\" className=\"absolute -bottom-0.5 -left-0.5\" />"
3471
+ ],
3472
+ "sourceFile": "components/New/SharedEntityIndicator/SharedEntityIndicator.tsx"
3473
+ },
3474
+ {
3475
+ "name": "BottomSheet",
3476
+ "category": "Components_2_0",
3477
+ "generation": "2.0",
3478
+ "description": "A panel that slides up from the bottom edge over a dimmed page — the mobile\ncounterpart of `Popup`.\naliases: ActionSheet|Drawer|MobileSheet|BottomDrawer\nDesign system 2.0\n\nIt is a modal dialog: focus moves into it on open and stays there, returns\nto where it came from on close, and the page behind it does not scroll.\nEscape, the close button and a press on the backdrop all call `onClose`;\nthe sheet itself stays controlled by `open`.\n\nWith a `title` the header shows it centred, a close button at the end and,\nwhen `onBack` is set, a back button at the start for a sheet that drills\ninto pages of its own; the title also names the dialog. Without one there is\nno header, and `ariaLabel` names the sheet instead. The body scrolls once\nthe content is taller than 85% of the viewport.",
3479
+ "props": [
3480
+ {
3481
+ "name": "open",
3482
+ "type": "boolean",
3483
+ "required": true,
3484
+ "description": "Whether the sheet is shown"
3485
+ },
3486
+ {
3487
+ "name": "onClose",
3488
+ "type": "() => void",
3489
+ "required": true,
3490
+ "description": "Called when the sheet asks to close"
3491
+ },
3492
+ {
3493
+ "name": "title",
3494
+ "type": "string",
3495
+ "required": false,
3496
+ "description": "Title of the header; without it the sheet has no header"
3497
+ },
3498
+ {
3499
+ "name": "ariaLabel",
3500
+ "type": "string",
3501
+ "required": false,
3502
+ "description": "Accessible name when there is no `title`"
3503
+ },
3504
+ {
3505
+ "name": "onBack",
3506
+ "type": "() => void",
3507
+ "required": false,
3508
+ "description": "Shows a back button at the start of the header"
3509
+ },
3510
+ {
3511
+ "name": "backAriaLabel",
3512
+ "type": "string",
3513
+ "required": false,
3514
+ "defaultValue": "'Back'",
3515
+ "description": "Accessible name of the back button"
3516
+ },
3517
+ {
3518
+ "name": "closeAriaLabel",
3519
+ "type": "string",
3520
+ "required": false,
3521
+ "defaultValue": "'Close'",
3522
+ "description": "Accessible name of the close button"
3523
+ },
3524
+ {
3525
+ "name": "closeOnOutsideClick",
3526
+ "type": "boolean",
3527
+ "required": false,
3528
+ "defaultValue": "true",
3529
+ "description": "Whether a press on the backdrop closes the sheet"
3530
+ },
3531
+ {
3532
+ "name": "children",
3533
+ "type": "ReactNode",
3534
+ "required": false,
3535
+ "description": "Content of the sheet"
3536
+ },
3537
+ {
3538
+ "name": "className",
3539
+ "type": "string",
3540
+ "required": false,
3541
+ "description": "Additional CSS classes for the sheet panel"
3542
+ },
3543
+ {
3544
+ "name": "overlayClassName",
3545
+ "type": "string",
3546
+ "required": false,
3547
+ "description": "Additional CSS classes for the backdrop"
3548
+ },
3549
+ {
3550
+ "name": "headerClassName",
3551
+ "type": "string",
3552
+ "required": false,
3553
+ "description": "Additional CSS classes for the header row"
3554
+ },
3555
+ {
3556
+ "name": "style",
3557
+ "type": "CSSProperties",
3558
+ "required": false,
3559
+ "description": "Inline style for the panel, e.g. custom properties"
3560
+ },
3561
+ {
3562
+ "name": "overlayStyle",
3563
+ "type": "CSSProperties",
3564
+ "required": false,
3565
+ "description": "Inline style for the backdrop"
3566
+ },
3567
+ {
3568
+ "name": "bodyClassName",
3569
+ "type": "string",
3570
+ "required": false,
3571
+ "description": "Additional CSS classes for the scrolling body"
3572
+ },
3573
+ {
3574
+ "name": "titleClassName",
3575
+ "type": "string",
3576
+ "required": false,
3577
+ "description": "Type-scale class for the title"
3578
+ },
3579
+ {
3580
+ "name": "portalId",
3581
+ "type": "string",
3582
+ "required": false,
3583
+ "description": "Id of the element to portal into"
3584
+ }
3585
+ ],
3586
+ "examples": [
3587
+ "<BottomSheet open={isOpen} title=\"Select model\" onClose={() => setIsOpen(false)}>\n <ModelList />\n</BottomSheet>"
3588
+ ],
3589
+ "sourceFile": "components/New/BottomSheet/BottomSheet.tsx"
3590
+ },
3591
+ {
3592
+ "name": "Badge",
3593
+ "category": "Components_2_0",
3594
+ "generation": "2.0",
3595
+ "description": "A short, static label: a topic, a category, or a status that is not a\ncontrol.\naliases: Label|StatusLabel|Pill|Chip\nDesign system 2.0\n\nUnlike `Tag`, a badge never responds to the pointer and never removes\nitself — reach for `Tag` when the label is something to select, filter by or\ndismiss. The badge is 24px tall and does not wrap; a long label keeps its\nwidth, so give the badge a `max-w-*` and a truncating `textClassName` where\nthat matters.\n\n`BadgeVariant.Outlined` is the neutral label, bordered on the sunken layer.\n`BadgeVariant.Filled` is a pill in one of the theme's visual colours, for\nlabels that are told apart by colour — so pair the colour with text that\nsays the same thing, since colour alone does not reach every reader. The\nfilled variant's type scale is a lead style, which uppercases itself: pass\nthe label in sentence case.",
3596
+ "props": [
3597
+ {
3598
+ "name": "label",
3599
+ "type": "string",
3600
+ "required": true,
3601
+ "description": "Text of the badge"
3602
+ },
3603
+ {
3604
+ "name": "variant",
3605
+ "type": "BadgeVariant",
3606
+ "required": false,
3607
+ "defaultValue": "BadgeVariant.Outlined",
3608
+ "description": "How the badge is drawn"
3609
+ },
3610
+ {
3611
+ "name": "color",
3612
+ "type": "BadgeColor",
3613
+ "required": false,
3614
+ "defaultValue": "BadgeColor.Blue",
3615
+ "description": "Visual colour of a filled badge"
3616
+ },
3617
+ {
3618
+ "name": "icon",
3619
+ "type": "ReactNode",
3620
+ "required": false,
3621
+ "description": "Decorative icon before the label"
3622
+ },
3623
+ {
3624
+ "name": "textClassName",
3625
+ "type": "string",
3626
+ "required": false,
3627
+ "description": "Type-scale class for the label, replacing the variant's own"
3628
+ }
3629
+ ],
3630
+ "examples": [
3631
+ "<Badge label=\"Translation\" />\n<Badge label=\"Featured\" variant={BadgeVariant.Filled} color={BadgeColor.Green} />"
3632
+ ],
3633
+ "sourceFile": "components/New/Badge/Badge.tsx"
3634
+ },
3635
+ {
3636
+ "name": "Avatar",
3637
+ "category": "Components_2_0",
3638
+ "generation": "2.0",
3639
+ "description": "A person's or an entity's picture, or its initials on a colour picked from\nits name.\naliases: UserAvatar|InitialsAvatar|ProfilePicture\nDesign system 2.0\n\nThe same name always gets the same colour, drawn from the theme's visual\ntokens, so a list of avatars stays stable between renders and sessions. An\nimage that is missing or fails to load falls back to the initials; a new\n`src` tries the image again.\n\nAn avatar with an `alt` is a `role=\"img\"` named by it, whether it shows the\nimage or the initials. Without one it is decorative and hidden from\nassistive technology, which is right when a visible name sits beside it.",
3640
+ "props": [
3641
+ {
3642
+ "name": "name",
3643
+ "type": "string",
3644
+ "required": true,
3645
+ "description": "Display name the initials and the colour are derived from"
3646
+ },
3647
+ {
3648
+ "name": "initials",
3649
+ "type": "string",
3650
+ "required": false,
3651
+ "description": "Initials to show instead of the ones derived from `name`"
3652
+ },
3653
+ {
3654
+ "name": "src",
3655
+ "type": "string",
3656
+ "required": false,
3657
+ "description": "Image URL; the initials show while it is missing or broken"
3658
+ },
3659
+ {
3660
+ "name": "alt",
3661
+ "type": "string",
3662
+ "required": false,
3663
+ "defaultValue": "''",
3664
+ "description": "Accessible name; empty makes the avatar decorative"
3665
+ },
3666
+ {
3667
+ "name": "size",
3668
+ "type": "number",
3669
+ "required": false,
3670
+ "defaultValue": "32",
3671
+ "description": "Width and height in px"
3672
+ },
3673
+ {
3674
+ "name": "shape",
3675
+ "type": "AvatarShape",
3676
+ "required": false,
3677
+ "defaultValue": "AvatarShape.Circle",
3678
+ "description": "Outline of the avatar"
3679
+ },
3680
+ {
3681
+ "name": "className",
3682
+ "type": "string",
3683
+ "required": false,
3684
+ "description": "Additional CSS classes for the avatar"
3685
+ },
3686
+ {
3687
+ "name": "textClassName",
3688
+ "type": "string",
3689
+ "required": false,
3690
+ "description": "Type-scale class for the initials, replacing the size-derived font size"
3691
+ },
3692
+ {
3693
+ "name": "onImageError",
3694
+ "type": "(event: SyntheticEvent<HTMLImageElement>) => void",
3695
+ "required": false,
3696
+ "description": "Called when the image fails to load"
3697
+ }
3698
+ ],
3699
+ "examples": [
3700
+ "<Avatar name=\"Ada Lovelace\" src={photoUrl} alt=\"Ada Lovelace\" />\n<Avatar name=\"Summarizer\" shape={AvatarShape.Square} size={36} />"
3701
+ ],
3702
+ "sourceFile": "components/New/Avatar/Avatar.tsx"
3703
+ },
3704
+ {
3705
+ "name": "EntityIdentity",
3706
+ "category": "Components_2_0",
3707
+ "generation": "2.0",
3708
+ "description": "The identity block of a DIAL entity: its icon, a coloured type label, the\nname and the version, with an optional featured chip.\naliases: EntityHeader|ModelHeader|AppIdentity\nDesign system 2.0\n\nThe type label is plain uppercase text coloured by `item.type`. The icon is\na square `Avatar`, so a missing or broken image falls back to the initials of\nthe name. The icon is decorative: the name next to it already names the\nentity.",
3709
+ "props": [
3710
+ {
3711
+ "name": "item",
3712
+ "type": "EntityIdentityItem",
3713
+ "required": true,
3714
+ "description": "The entity to display"
3715
+ },
3716
+ {
3717
+ "name": "labels",
3718
+ "type": "EntityIdentityLabels",
3719
+ "required": false,
3720
+ "description": "User-visible strings"
3721
+ },
3722
+ {
3723
+ "name": "showVersion",
3724
+ "type": "boolean",
3725
+ "required": false,
3726
+ "defaultValue": "true",
3727
+ "description": "Whether to show the version"
3728
+ },
3729
+ {
3730
+ "name": "hasFeaturedTag",
3731
+ "type": "boolean",
3732
+ "required": false,
3733
+ "defaultValue": "true",
3734
+ "description": "Whether to show the featured chip for a featured entity"
3735
+ },
3736
+ {
3737
+ "name": "iconSize",
3738
+ "type": "number",
3739
+ "required": false,
3740
+ "defaultValue": "48",
3741
+ "description": "Icon size in px"
3742
+ },
3743
+ {
3744
+ "name": "headingLevel",
3745
+ "type": "number",
3746
+ "required": false,
3747
+ "defaultValue": "3",
3748
+ "description": "Heading level of the name"
3749
+ },
3750
+ {
3751
+ "name": "query",
3752
+ "type": "string",
3753
+ "required": false,
3754
+ "description": "Search query highlighted in the name"
3755
+ },
3756
+ {
3757
+ "name": "footer",
3758
+ "type": "ReactNode",
3759
+ "required": false,
3760
+ "description": "Content pinned to the bottom of the text column"
3761
+ },
3762
+ {
3763
+ "name": "statusBadge",
3764
+ "type": "ReactNode",
3765
+ "required": false,
3766
+ "description": "Badge in the top-end corner"
3767
+ },
3768
+ {
3769
+ "name": "className",
3770
+ "type": "string",
3771
+ "required": false
3772
+ },
3773
+ {
3774
+ "name": "nameClassName",
3775
+ "type": "string",
3776
+ "required": false,
3777
+ "defaultValue": "'dial-h3-text'"
3778
+ },
3779
+ {
3780
+ "name": "typeClassName",
3781
+ "type": "string",
3782
+ "required": false,
3783
+ "defaultValue": "'dial-caption-lead-semi-text'"
3784
+ },
3785
+ {
3786
+ "name": "versionClassName",
3787
+ "type": "string",
3788
+ "required": false,
3789
+ "defaultValue": "'dial-tiny-text'"
3790
+ },
3791
+ {
3792
+ "name": "iconClassName",
3793
+ "type": "string",
3794
+ "required": false
3795
+ },
3796
+ {
3797
+ "name": "featuredChipClassName",
3798
+ "type": "string",
3799
+ "required": false
3800
+ }
3801
+ ],
3802
+ "examples": [
3803
+ "<EntityIdentity\n item={{ type: EntityType.Model, name: 'GPT-4o', version: '2024-11-20' }}\n labels={{ type: t('Model') }}\n/>"
3804
+ ],
3805
+ "sourceFile": "components/New/EntityIdentity/EntityIdentity.tsx"
3806
+ },
3807
+ {
3808
+ "name": "SideDrawer",
3809
+ "category": "Components_2_0",
3810
+ "generation": "2.0",
3811
+ "description": "A full-height panel that slides in from the inline end over a dimmed page.\naliases: Drawer|SidePanel|SideSheet|DetailsPanel\nDesign system 2.0\n\nIt is a modal dialog while open: focus moves to the panel and stays inside,\nreturns to where it came from on close, and the page behind it does not\nscroll. Escape, the close button and a press on the backdrop all call\n`onClose`; the drawer stays controlled by `open`.\n\nThe panel stays mounted while closed, so it can slide out as well as in and\nkeep the state of whatever it holds. Closed, it is `inert` — out of both\nthe tab order and the accessibility tree — and the backdrop lets pointer\nevents through. On desktop the drawer is 540px wide with a rounded,\nbordered leading edge; on mobile it takes the full width. It slides from\nthe end in either direction, and not at all under `prefers-reduced-motion`.\n\nThe header follows `Popup`: an optional back button, the title,\n`headerActions`, and the close button. A string `header` renders an `<h2>`\nthat names the dialog; for a node, pass `ariaLabel`.",
3812
+ "props": [
3813
+ {
3814
+ "name": "open",
3815
+ "type": "boolean",
3816
+ "required": true,
3817
+ "description": "Whether the drawer is open"
3818
+ },
3819
+ {
3820
+ "name": "onClose",
3821
+ "type": "() => void",
3822
+ "required": true,
3823
+ "description": "Called when the drawer asks to close"
3824
+ },
3825
+ {
3826
+ "name": "header",
3827
+ "type": "ReactNode",
3828
+ "required": false,
3829
+ "description": "Header title; a string also names the dialog"
3830
+ },
3831
+ {
3832
+ "name": "ariaLabel",
3833
+ "type": "string",
3834
+ "required": false,
3835
+ "description": "Accessible name when `header` is not a string"
3836
+ },
3837
+ {
3838
+ "name": "headerActions",
3839
+ "type": "ReactNode",
3840
+ "required": false,
3841
+ "description": "Controls between the title and the close button"
3842
+ },
3843
+ {
3844
+ "name": "onBack",
3845
+ "type": "() => void",
3846
+ "required": false,
3847
+ "description": "Shows a back button at the start of the header"
3848
+ },
3849
+ {
3850
+ "name": "backAriaLabel",
3851
+ "type": "string",
3852
+ "required": false,
3853
+ "defaultValue": "'Back'",
3854
+ "description": "Accessible name of the back button"
3855
+ },
3856
+ {
3857
+ "name": "backDisabled",
3858
+ "type": "boolean",
3859
+ "required": false,
3860
+ "defaultValue": "false",
3861
+ "description": "Whether the back button is disabled"
3862
+ },
3863
+ {
3864
+ "name": "closeAriaLabel",
3865
+ "type": "string",
3866
+ "required": false,
3867
+ "defaultValue": "'Close'",
3868
+ "description": "Accessible name of the close button"
3869
+ },
3870
+ {
3871
+ "name": "closeDisabled",
3872
+ "type": "boolean",
3873
+ "required": false,
3874
+ "defaultValue": "false",
3875
+ "description": "Whether the close button is disabled"
3876
+ },
3877
+ {
3878
+ "name": "hideClose",
3879
+ "type": "boolean",
3880
+ "required": false,
3881
+ "defaultValue": "false",
3882
+ "description": "Whether the close button is left out"
3883
+ },
3884
+ {
3885
+ "name": "closeOnOutsideClick",
3886
+ "type": "boolean",
3887
+ "required": false,
3888
+ "defaultValue": "true",
3889
+ "description": "Whether a press on the backdrop closes the drawer"
3890
+ },
3891
+ {
3892
+ "name": "children",
3893
+ "type": "ReactNode",
3894
+ "required": false,
3895
+ "description": "Content of the drawer"
3896
+ },
3897
+ {
3898
+ "name": "className",
3899
+ "type": "string",
3900
+ "required": false,
3901
+ "description": "Additional CSS classes for the drawer panel"
3902
+ },
3903
+ {
3904
+ "name": "overlayClassName",
3905
+ "type": "string",
3906
+ "required": false,
3907
+ "description": "Additional CSS classes for the backdrop"
3908
+ },
3909
+ {
3910
+ "name": "headerClassName",
3911
+ "type": "string",
3912
+ "required": false,
3913
+ "description": "Additional CSS classes for the header row"
3914
+ },
3915
+ {
3916
+ "name": "style",
3917
+ "type": "CSSProperties",
3918
+ "required": false,
3919
+ "description": "Inline style for the panel, e.g. custom properties"
3920
+ },
3921
+ {
3922
+ "name": "overlayStyle",
3923
+ "type": "CSSProperties",
3924
+ "required": false,
3925
+ "description": "Inline style for the backdrop"
3926
+ },
3927
+ {
3928
+ "name": "bodyClassName",
3929
+ "type": "string",
3930
+ "required": false,
3931
+ "description": "Additional CSS classes for the scrolling body"
3932
+ },
3933
+ {
3934
+ "name": "titleClassName",
3935
+ "type": "string",
3936
+ "required": false,
3937
+ "description": "Type-scale class for a string title"
3938
+ },
3939
+ {
3940
+ "name": "portalId",
3941
+ "type": "string",
3942
+ "required": false,
3943
+ "description": "Id of the element to portal into"
3944
+ }
3945
+ ],
3946
+ "examples": [
3947
+ "<SideDrawer open={isOpen} header=\"Publish\" onClose={() => setIsOpen(false)}>\n <PublishForm />\n</SideDrawer>"
3948
+ ],
3949
+ "sourceFile": "components/New/SideDrawer/SideDrawer.tsx"
3950
+ },
3951
+ {
3952
+ "name": "Tag",
3953
+ "category": "Components_2_0",
3954
+ "generation": "2.0",
3955
+ "description": "A compact label element used for selections, filters, or categories.\naliases: Chip|Pill\nDesign system 2.0\n\nThe tag has one height — the 32px pill of the 2.0 design. There is no `size`\nprop: a tag sizes itself, and a caller that needs a different height is\nusually reaching for a button.\n\nThe label truncates rather than wrapping, and carries a native `title` so the\nfull text stays reachable when it does.\n\nA tag with `onClick` becomes a `role=\"button\"` operable with Enter and Space.\nIts remove control is a real nested `<button>`, so keep the two roles apart in\nthe caller: a clickable tag that is also closable gives a screen reader two\nactions with no way to tell which one it landed on.\n\nNo tag draws a rim; the two appearances are told apart by their fill.\n`TagAppearance.Selectable` is the filter chip of the 2.0 design: no fill\nat all until it is selected, one hover tint shared by both states, a semibold\nlabel once selected, and the state carried on `aria-pressed` rather than by\nthe tint alone. Give it an `onClick` — a selectable tag that cannot be\nactivated is a colour and nothing else.\n\nSelecting one therefore changes its width by the difference between the\nregular and semibold label. In a wrapping filter row that is what the design\nasks for; if a fixed width matters, give the chip one.",
3956
+ "props": [
3957
+ {
3958
+ "name": "label",
3959
+ "type": "string",
3960
+ "required": true,
3961
+ "description": "Text content displayed inside the tag."
3962
+ },
3963
+ {
3964
+ "name": "icon",
3965
+ "type": "ReactNode",
3966
+ "required": false,
3967
+ "description": "Icon rendered before the label."
3968
+ },
3969
+ {
3970
+ "name": "appearance",
3971
+ "type": "TagAppearance",
3972
+ "required": false,
3973
+ "defaultValue": "TagAppearance.Outlined",
3974
+ "description": "`outlined` is the filled chip on the raised\nlayer; `selectable` is the unfilled filter chip that tints and turns semibold when selected."
3975
+ },
3976
+ {
3977
+ "name": "selected",
3978
+ "type": "boolean",
3979
+ "required": false,
3980
+ "defaultValue": "false",
3981
+ "description": "Applies the accent-tinted selected styling."
3982
+ },
3983
+ {
3984
+ "name": "disabled",
3985
+ "type": "boolean",
3986
+ "required": false,
3987
+ "defaultValue": "false",
3988
+ "description": "Stops the tag responding: no click handling, no remove control. The design defines no disabled tag, so the colours stay put."
3989
+ },
3990
+ {
3991
+ "name": "closable",
3992
+ "type": "boolean",
3993
+ "required": false,
3994
+ "defaultValue": "false",
3995
+ "description": "Renders the remove button. Needs `onRemove` to appear."
3996
+ },
3997
+ {
3998
+ "name": "removeLabel",
3999
+ "type": "string",
4000
+ "required": false,
4001
+ "description": "Accessible name of the remove button; defaults to `Remove <label>`."
4002
+ },
4003
+ {
4004
+ "name": "onRemove",
4005
+ "type": "(event: MouseEvent<HTMLButtonElement>) => void",
4006
+ "required": false,
4007
+ "description": "Called when the remove button is clicked. The click does not bubble to `onClick`."
4008
+ }
4009
+ ],
4010
+ "examples": [
4011
+ "<Tag label=\"TypeScript\" />\n<Tag label=\"TypeScript\" closable onRemove={() => remove('TypeScript')} />\n<Tag label=\"Drafts\" selected onClick={() => toggle('Drafts')} />\n<Tag\n label=\"Drafts\"\n appearance={TagAppearance.Selectable}\n selected={isSelected}\n onClick={() => toggle('Drafts')}\n/>"
4012
+ ],
4013
+ "sourceFile": "components/New/Tag/Tag.tsx"
4014
+ },
4015
+ {
4016
+ "name": "TagInput",
4017
+ "category": "Components_2_0",
4018
+ "generation": "2.0",
4019
+ "description": "A tag input field: type a value and commit it with Enter or comma.\naliases: MultiTag|TagField|ChipInput\nDesign system 2.0\n\nThe field is an , so it carries the 2.0 field styling, sizes,\nlabel, caption and error states, and the tags render as s in its\ncontent slot. The field grows as tags wrap, unless `collapseTagOverflow` keeps\nthem on one line behind a `+N` chip.\n\nWorks controlled (`value` + `onChange`) or uncontrolled (`defaultValue`).\nDuplicate tags are ignored. Backspace on an empty input removes the last tag.",
4020
+ "props": [
4021
+ {
4022
+ "name": "id",
4023
+ "type": "string",
4024
+ "required": false,
4025
+ "description": "The id of the text input, linked to the label."
4026
+ },
4027
+ {
4028
+ "name": "value",
4029
+ "type": "string[]",
4030
+ "required": false,
4031
+ "description": "Controlled tag list."
4032
+ },
4033
+ {
4034
+ "name": "defaultValue",
4035
+ "type": "string[]",
4036
+ "required": false,
4037
+ "description": "Initial tag list when uncontrolled."
4038
+ },
4039
+ {
4040
+ "name": "size",
4041
+ "type": "ElementSize",
4042
+ "required": false,
4043
+ "defaultValue": "ElementSize.Standard",
4044
+ "description": "Field height: standard is 40px, small is 24px."
4045
+ },
4046
+ {
4047
+ "name": "labelProps",
4048
+ "type": "LabelProps",
3085
4049
  "required": false,
3086
4050
  "description": "Props of the rendered above the field."
3087
4051
  },
@@ -3173,6 +4137,150 @@
3173
4137
  ],
3174
4138
  "sourceFile": "components/New/TagInput/TagInput.tsx"
3175
4139
  },
4140
+ {
4141
+ "name": "AutocompleteTagInput",
4142
+ "category": "Components_2_0",
4143
+ "generation": "2.0",
4144
+ "description": "A tag input that suggests values while typing and also accepts its own.\naliases: Autocomplete|Combobox|TagAutocomplete|ChipAutocomplete|MultiValueAutocomplete\nDesign system 2.0\n\nTyping opens a list of the `suggestions` that match the text (by label, value\nor description) and are not already tags, capped at `maxSuggestions`, with the\nfirst one highlighted. Enter or comma adds the highlighted suggestion, or the\ntyped text when nothing matches; clicking a suggestion adds it too. The arrow\nkeys move the highlight and wrap at the ends; Escape and leaving the field\nclose the list without adding what was typed. Backspace on an empty input\nremoves the last tag, and duplicate tags are ignored. Entered text is not\nvalidated — say what format is expected through `caption`.\n\nReach for when there is nothing to suggest, and for a\nmultiple `Select` when only listed values are allowed.\n\nThe input follows the ARIA combobox pattern: it keeps focus while the list is\nopen, and the highlighted suggestion is announced through\n`aria-activedescendant`. The tags are a list named by `tagListLabel`, and each\nremove button is named after its tag.\n\nWorks controlled (`value` + `onChange`) or uncontrolled (`defaultValue`).",
4145
+ "props": [
4146
+ {
4147
+ "name": "id",
4148
+ "type": "string",
4149
+ "required": false,
4150
+ "description": "The id of the text input, linked to the label."
4151
+ },
4152
+ {
4153
+ "name": "value",
4154
+ "type": "string[]",
4155
+ "required": false,
4156
+ "description": "Controlled tag list."
4157
+ },
4158
+ {
4159
+ "name": "defaultValue",
4160
+ "type": "string[]",
4161
+ "required": false,
4162
+ "description": "Initial tag list when uncontrolled."
4163
+ },
4164
+ {
4165
+ "name": "suggestions",
4166
+ "type": "AutocompleteTagInputSuggestion[]",
4167
+ "required": true,
4168
+ "description": "Values offered while typing."
4169
+ },
4170
+ {
4171
+ "name": "maxSuggestions",
4172
+ "type": "number",
4173
+ "required": false,
4174
+ "defaultValue": "DEFAULT_MAX_SUGGESTIONS",
4175
+ "description": "How many matching suggestions the list shows at most."
4176
+ },
4177
+ {
4178
+ "name": "size",
4179
+ "type": "ElementSize",
4180
+ "required": false,
4181
+ "defaultValue": "ElementSize.Standard",
4182
+ "description": "Field height: standard is 40px, small is 24px."
4183
+ },
4184
+ {
4185
+ "name": "labelProps",
4186
+ "type": "LabelProps",
4187
+ "required": false,
4188
+ "description": "Props of the rendered above the field."
4189
+ },
4190
+ {
4191
+ "name": "placeholder",
4192
+ "type": "string",
4193
+ "required": false,
4194
+ "description": "Placeholder shown while there are no tags."
4195
+ },
4196
+ {
4197
+ "name": "caption",
4198
+ "type": "string",
4199
+ "required": false,
4200
+ "description": "Helper text rendered below the field when there is no `error`."
4201
+ },
4202
+ {
4203
+ "name": "error",
4204
+ "type": "string",
4205
+ "required": false,
4206
+ "description": "Error message rendered below the field (pass `invalid` too for error styling)."
4207
+ },
4208
+ {
4209
+ "name": "invalid",
4210
+ "type": "boolean",
4211
+ "required": false,
4212
+ "defaultValue": "false",
4213
+ "description": "Applies the field's error styling and marks the input `aria-invalid`."
4214
+ },
4215
+ {
4216
+ "name": "disabled",
4217
+ "type": "boolean",
4218
+ "required": false,
4219
+ "defaultValue": "false",
4220
+ "description": "Disables typing and tag removal."
4221
+ },
4222
+ {
4223
+ "name": "readOnly",
4224
+ "type": "boolean",
4225
+ "required": false,
4226
+ "defaultValue": "false",
4227
+ "description": "Shows the tags without allowing new ones or removal."
4228
+ },
4229
+ {
4230
+ "name": "ariaLabel",
4231
+ "type": "string",
4232
+ "required": false,
4233
+ "description": "Accessible name for the input; use it when there is no visible label."
4234
+ },
4235
+ {
4236
+ "name": "tagListLabel",
4237
+ "type": "string",
4238
+ "required": false,
4239
+ "defaultValue": "'Tags'",
4240
+ "description": "Accessible name of the tag list."
4241
+ },
4242
+ {
4243
+ "name": "getRemoveTagLabel",
4244
+ "type": "(tag: string) => string",
4245
+ "required": false,
4246
+ "description": "Accessible name of a tag's remove button, given the tag; pass a translated one, as the default is the English `Remove <tag>`."
4247
+ },
4248
+ {
4249
+ "name": "className",
4250
+ "type": "string",
4251
+ "required": false,
4252
+ "description": "Additional CSS classes for the outer container."
4253
+ },
4254
+ {
4255
+ "name": "fieldClassName",
4256
+ "type": "string",
4257
+ "required": false,
4258
+ "description": "Additional CSS classes for the field itself."
4259
+ },
4260
+ {
4261
+ "name": "tagClassName",
4262
+ "type": "string",
4263
+ "required": false,
4264
+ "description": "Additional CSS classes applied to every tag."
4265
+ },
4266
+ {
4267
+ "name": "listClassName",
4268
+ "type": "string",
4269
+ "required": false,
4270
+ "description": "Additional CSS classes for the floating suggestion list."
4271
+ },
4272
+ {
4273
+ "name": "onChange",
4274
+ "type": "(tags: string[]) => void",
4275
+ "required": false,
4276
+ "description": "Called with the new list whenever a tag is added or removed."
4277
+ }
4278
+ ],
4279
+ "examples": [
4280
+ "const [types, setTypes] = useState<string[]>([]);\n\n<AutocompleteTagInput\n id=\"attachment-types\"\n labelProps={{ label: 'Attachment types', required: true }}\n caption=\"Choose a suggested MIME type or add one as <type>/<subtype>\"\n suggestions={[\n { value: 'image/png', label: 'PNG', description: 'image/png' },\n { value: 'application/pdf', label: 'PDF', description: 'application/pdf' },\n ]}\n value={types}\n onChange={setTypes}\n/>"
4281
+ ],
4282
+ "sourceFile": "components/New/AutocompleteTagInput/AutocompleteTagInput.tsx"
4283
+ },
3176
4284
  {
3177
4285
  "name": "Search",
3178
4286
  "category": "Components_2_0",
@@ -3799,6 +4907,67 @@
3799
4907
  ],
3800
4908
  "sourceFile": "components/New/NoDataContent/NoDataContent.tsx"
3801
4909
  },
4910
+ {
4911
+ "name": "TransferQueue",
4912
+ "category": "Components_2_0",
4913
+ "generation": "2.0",
4914
+ "description": "A floating panel listing the files of an upload, download, import or export\nwith a live status per row.\naliases: UploadQueue|ImportQueue|ExportQueue|UploadProgress|ProgressToast\nDesign system 2.0\n\nEach row shows the file's `FileIcon` and name, and a trailing status: a\nspinner (with a cancel control on hover or focus) while in progress, a check\non success, a warning or error icon whose reason is both its tooltip and its\naccessible name, or \"Canceled\". The header carries the host's title, a count\nof failed items, and collapse and close controls. Collapsed while work runs,\nthe rows are replaced by one aggregate `ProgressBar`.\n\nClosing while an item is in progress or has failed asks for confirmation\nfirst. Once every item has succeeded the queue closes itself after\n`autoCloseDelay`; a warned or canceled row keeps it open so it can be read.\n\nThe root is a polite `role=\"status\"` live region. Positioning is left to\nthe host — wrap it in a fixed container at the screen corner.",
4915
+ "props": [
4916
+ {
4917
+ "name": "title",
4918
+ "type": "string",
4919
+ "required": true,
4920
+ "description": "Heading, rendered verbatim"
4921
+ },
4922
+ {
4923
+ "name": "items",
4924
+ "type": "TransferQueueItem[]",
4925
+ "required": true,
4926
+ "description": "Items to show, in display order"
4927
+ },
4928
+ {
4929
+ "name": "onClose",
4930
+ "type": "() => void",
4931
+ "required": true,
4932
+ "description": "Called when the queue should close"
4933
+ },
4934
+ {
4935
+ "name": "onCancelItem",
4936
+ "type": "(id: string) => void",
4937
+ "required": false,
4938
+ "description": "Called with an item's id when the user cancels it"
4939
+ },
4940
+ {
4941
+ "name": "labels",
4942
+ "type": "Partial<TransferQueueLabels>",
4943
+ "required": false,
4944
+ "description": "Overrides for the English default strings"
4945
+ },
4946
+ {
4947
+ "name": "autoCloseDelay",
4948
+ "type": "number",
4949
+ "required": false,
4950
+ "defaultValue": "TRANSFER_QUEUE_AUTO_CLOSE_DELAY_MS",
4951
+ "description": "Delay before an all-succeeded queue closes itself; `0` disables"
4952
+ },
4953
+ {
4954
+ "name": "className",
4955
+ "type": "string",
4956
+ "required": false,
4957
+ "description": "Additional CSS classes for the root panel"
4958
+ },
4959
+ {
4960
+ "name": "bodyClassName",
4961
+ "type": "string",
4962
+ "required": false,
4963
+ "description": "Additional CSS classes for the list of rows"
4964
+ }
4965
+ ],
4966
+ "examples": [
4967
+ "<TransferQueue\n title=\"Importing 2 files\"\n items={[\n { id: '1', name: 'report.pdf', status: TransferQueueItemStatus.Success },\n { id: '2', name: 'data.csv', status: TransferQueueItemStatus.InProgress, percent: 40 },\n ]}\n onClose={handleClose}\n onCancelItem={handleCancel}\n/>"
4968
+ ],
4969
+ "sourceFile": "components/New/TransferQueue/TransferQueue.tsx"
4970
+ },
3802
4971
  {
3803
4972
  "name": "Grid",
3804
4973
  "category": "Components_2_0",
@@ -5487,7 +6656,8 @@
5487
6656
  "examples": [
5488
6657
  "<DialFileIcon extension=\".pdf\" />\n<DialFileIcon extension=\"tsx\" size={28} stroke={1.25} />\n<DialFileIcon extension=\"unknown\" decorative /> // decorative, hidden from AT"
5489
6658
  ],
5490
- "sourceFile": "components/FileIcon/FileIcon.tsx"
6659
+ "sourceFile": "components/FileIcon/FileIcon.tsx",
6660
+ "supersededBy": "FileIcon"
5491
6661
  },
5492
6662
  {
5493
6663
  "name": "DialFormItem",
@@ -5605,7 +6775,8 @@
5605
6775
  "examples": [
5606
6776
  "<DialSharedEntityIndicator />\n<DialSharedEntityIndicator size={12} label=\"Opens in new window\" />"
5607
6777
  ],
5608
- "sourceFile": "components/SharedEntityIndicator/SharedEntityIndicator.tsx"
6778
+ "sourceFile": "components/SharedEntityIndicator/SharedEntityIndicator.tsx",
6779
+ "supersededBy": "SharedEntityIndicator"
5609
6780
  },
5610
6781
  {
5611
6782
  "name": "DialFileName",
@@ -5685,7 +6856,8 @@
5685
6856
  "examples": [
5686
6857
  "// Without details\n<DialFileName name=\"Document.pdf\" />\n\n// With details (file size and updated date)\n<DialFileName\n name=\"Document.pdf\"\n details={<span className=\"text-secondary\">24 KB · Jul 20, 2025</span>}\n/>"
5687
6858
  ],
5688
- "sourceFile": "components/FileName/FileName.tsx"
6859
+ "sourceFile": "components/FileName/FileName.tsx",
6860
+ "supersededBy": "FileName"
5689
6861
  },
5690
6862
  {
5691
6863
  "name": "DialFolderName",
@@ -5762,7 +6934,8 @@
5762
6934
  "examples": [
5763
6935
  "<DialFolderName name=\"Organization\" />"
5764
6936
  ],
5765
- "sourceFile": "components/FolderName/FolderName.tsx"
6937
+ "sourceFile": "components/FolderName/FolderName.tsx",
6938
+ "supersededBy": "FolderName"
5766
6939
  },
5767
6940
  {
5768
6941
  "name": "DialResizableContainer",
@@ -8275,6 +9448,12 @@
8275
9448
  "required": false,
8276
9449
  "description": "Optional tooltip displayed when a file or folder name contains forbidden characters"
8277
9450
  },
9451
+ {
9452
+ "name": "skipForbiddenSymbolsCheckForActions",
9453
+ "type": "boolean",
9454
+ "required": false,
9455
+ "description": "When provided, skips the forbidden-symbols check when building row action menus, so all actions are shown even for items whose names contain forbidden characters."
9456
+ },
8278
9457
  {
8279
9458
  "name": "onCreateFolder",
8280
9459
  "type": "(\n file: DialUploadFileItem,\n folderPath: string,\n fileId: string,\n ) => void | Promise<void>",
@@ -9077,6 +10256,10 @@
9077
10256
  "name": "Static",
9078
10257
  "value": "'static'"
9079
10258
  },
10259
+ {
10260
+ "name": "Starter",
10261
+ "value": "'starter'"
10262
+ },
9080
10263
  {
9081
10264
  "name": "Success",
9082
10265
  "value": "'success'"
@@ -10358,29 +11541,70 @@
10358
11541
  "kind": "enum",
10359
11542
  "members": [
10360
11543
  {
10361
- "name": "Date",
10362
- "value": "'date'"
11544
+ "name": "Date",
11545
+ "value": "'date'"
11546
+ },
11547
+ {
11548
+ "name": "DateTime",
11549
+ "value": "'datetime'"
11550
+ },
11551
+ {
11552
+ "name": "Time",
11553
+ "value": "'time'"
11554
+ },
11555
+ {
11556
+ "name": "Weekday",
11557
+ "value": "'weekday'"
11558
+ }
11559
+ ],
11560
+ "sourceFile": "types/calendar.ts"
11561
+ },
11562
+ {
11563
+ "name": "CalendarValue",
11564
+ "kind": "type",
11565
+ "sourceFile": "components/New/Calendar/Calendar.tsx",
11566
+ "typeBody": "Date | string | null"
11567
+ },
11568
+ {
11569
+ "name": "BreadcrumbsSize",
11570
+ "kind": "enum",
11571
+ "members": [
11572
+ {
11573
+ "name": "Small",
11574
+ "value": "'small'",
11575
+ "comment": "14px `dial-small-text`, with a `dial-small-semi-text` current page."
11576
+ },
11577
+ {
11578
+ "name": "Heading",
11579
+ "value": "'heading'",
11580
+ "comment": "18px `dial-h2-text`, for a trail that doubles as the page heading. The\ntoken is semibold, so every segment is — including the current page."
11581
+ }
11582
+ ],
11583
+ "sourceFile": "types/breadcrumbs.ts"
11584
+ },
11585
+ {
11586
+ "name": "BreadcrumbsItem",
11587
+ "kind": "interface",
11588
+ "members": [
11589
+ {
11590
+ "name": "label",
11591
+ "value": "string"
10363
11592
  },
10364
11593
  {
10365
- "name": "DateTime",
10366
- "value": "'datetime'"
11594
+ "name": "href?",
11595
+ "value": "string"
10367
11596
  },
10368
11597
  {
10369
- "name": "Time",
10370
- "value": "'time'"
11598
+ "name": "onClick?",
11599
+ "value": "(event: MouseEvent<HTMLElement>) => void"
10371
11600
  },
10372
11601
  {
10373
- "name": "Weekday",
10374
- "value": "'weekday'"
11602
+ "name": "icon?",
11603
+ "value": "ReactNode"
10375
11604
  }
10376
11605
  ],
10377
- "sourceFile": "types/calendar.ts"
10378
- },
10379
- {
10380
- "name": "CalendarValue",
10381
- "kind": "type",
10382
- "sourceFile": "components/New/Calendar/Calendar.tsx",
10383
- "typeBody": "Date | string | null"
11606
+ "sourceFile": "components/New/Breadcrumbs/Breadcrumbs.tsx",
11607
+ "description": "One step of the trail rendered by ."
10384
11608
  },
10385
11609
  {
10386
11610
  "name": "TextareaResize",
@@ -10405,6 +11629,24 @@
10405
11629
  ],
10406
11630
  "sourceFile": "components/New/Textarea/Textarea.tsx"
10407
11631
  },
11632
+ {
11633
+ "name": "AccordionCaretPosition",
11634
+ "kind": "enum",
11635
+ "members": [
11636
+ {
11637
+ "name": "Start",
11638
+ "value": "'start'",
11639
+ "comment": "Before the title, at the header's leading edge."
11640
+ },
11641
+ {
11642
+ "name": "End",
11643
+ "value": "'end'",
11644
+ "comment": "After the title, at the header's trailing edge."
11645
+ }
11646
+ ],
11647
+ "sourceFile": "types/accordion.ts",
11648
+ "description": "Where an `Accordion` header draws its caret."
11649
+ },
10408
11650
  {
10409
11651
  "name": "RadioGroupItem",
10410
11652
  "kind": "interface",
@@ -10479,6 +11721,10 @@
10479
11721
  "name": "count?",
10480
11722
  "value": "number"
10481
11723
  },
11724
+ {
11725
+ "name": "icon?",
11726
+ "value": "ReactNode"
11727
+ },
10482
11728
  {
10483
11729
  "name": "disabled?",
10484
11730
  "value": "boolean"
@@ -10487,6 +11733,166 @@
10487
11733
  "sourceFile": "components/New/Tabs/Tabs.tsx",
10488
11734
  "description": "A single tab entry rendered by ."
10489
11735
  },
11736
+ {
11737
+ "name": "FilterChipItem",
11738
+ "kind": "interface",
11739
+ "members": [
11740
+ {
11741
+ "name": "value",
11742
+ "value": "T"
11743
+ },
11744
+ {
11745
+ "name": "label",
11746
+ "value": "string"
11747
+ },
11748
+ {
11749
+ "name": "icon?",
11750
+ "value": "ReactNode"
11751
+ }
11752
+ ],
11753
+ "sourceFile": "components/New/FilterChips/FilterChips.tsx"
11754
+ },
11755
+ {
11756
+ "name": "BadgeColor",
11757
+ "kind": "enum",
11758
+ "members": [
11759
+ {
11760
+ "name": "Blue",
11761
+ "value": "'blue'"
11762
+ },
11763
+ {
11764
+ "name": "Green",
11765
+ "value": "'green'"
11766
+ },
11767
+ {
11768
+ "name": "Violet",
11769
+ "value": "'violet'"
11770
+ },
11771
+ {
11772
+ "name": "Indigo",
11773
+ "value": "'indigo'"
11774
+ },
11775
+ {
11776
+ "name": "Brown",
11777
+ "value": "'brown'"
11778
+ },
11779
+ {
11780
+ "name": "Red",
11781
+ "value": "'red'"
11782
+ }
11783
+ ],
11784
+ "sourceFile": "types/badge.ts",
11785
+ "description": "The visual colour of a `BadgeVariant.Filled` badge."
11786
+ },
11787
+ {
11788
+ "name": "BadgeVariant",
11789
+ "kind": "enum",
11790
+ "members": [
11791
+ {
11792
+ "name": "Outlined",
11793
+ "value": "'outlined'",
11794
+ "comment": "A neutral label with a border on the sunken layer, for topics and plain categories."
11795
+ },
11796
+ {
11797
+ "name": "Filled",
11798
+ "value": "'filled'",
11799
+ "comment": "A pill filled with one of the visual colours, for a label that is told apart by colour."
11800
+ }
11801
+ ],
11802
+ "sourceFile": "types/badge.ts",
11803
+ "description": "How a `Badge` is drawn."
11804
+ },
11805
+ {
11806
+ "name": "AvatarShape",
11807
+ "kind": "enum",
11808
+ "members": [
11809
+ {
11810
+ "name": "Circle",
11811
+ "value": "'circle'",
11812
+ "comment": "A circle — the avatar of a person."
11813
+ },
11814
+ {
11815
+ "name": "Square",
11816
+ "value": "'square'",
11817
+ "comment": "A rounded square — the avatar of an application, model or other entity."
11818
+ }
11819
+ ],
11820
+ "sourceFile": "types/avatar.ts",
11821
+ "description": "The outline an `Avatar` is clipped to."
11822
+ },
11823
+ {
11824
+ "name": "EntityIdentityItem",
11825
+ "kind": "interface",
11826
+ "members": [
11827
+ {
11828
+ "name": "type",
11829
+ "value": "EntityType"
11830
+ },
11831
+ {
11832
+ "name": "name",
11833
+ "value": "string"
11834
+ },
11835
+ {
11836
+ "name": "version?",
11837
+ "value": "string"
11838
+ },
11839
+ {
11840
+ "name": "iconUrl?",
11841
+ "value": "string"
11842
+ },
11843
+ {
11844
+ "name": "isFeatured?",
11845
+ "value": "boolean"
11846
+ }
11847
+ ],
11848
+ "sourceFile": "components/New/EntityIdentity/EntityIdentity.tsx",
11849
+ "description": "Identity fields of the entity rendered by `EntityIdentity`."
11850
+ },
11851
+ {
11852
+ "name": "EntityIdentityLabels",
11853
+ "kind": "interface",
11854
+ "members": [
11855
+ {
11856
+ "name": "type?",
11857
+ "value": "string"
11858
+ },
11859
+ {
11860
+ "name": "featured?",
11861
+ "value": "string"
11862
+ }
11863
+ ],
11864
+ "sourceFile": "components/New/EntityIdentity/EntityIdentity.tsx",
11865
+ "description": "User-visible strings of `EntityIdentity`."
11866
+ },
11867
+ {
11868
+ "name": "EntityType",
11869
+ "kind": "enum",
11870
+ "members": [
11871
+ {
11872
+ "name": "Model",
11873
+ "value": "'model'"
11874
+ },
11875
+ {
11876
+ "name": "Agent",
11877
+ "value": "'agent'"
11878
+ },
11879
+ {
11880
+ "name": "Toolset",
11881
+ "value": "'toolset'"
11882
+ },
11883
+ {
11884
+ "name": "Skill",
11885
+ "value": "'skill'"
11886
+ },
11887
+ {
11888
+ "name": "Prompt",
11889
+ "value": "'prompt'",
11890
+ "comment": "Reusable text prompt. Carries a body instead of a runtime."
11891
+ }
11892
+ ],
11893
+ "sourceFile": "types/entity-type.ts",
11894
+ "description": "The category of a DIAL catalog entity. It picks the colour of the type label and the featured chip."
11895
+ },
10490
11896
  {
10491
11897
  "name": "TagAppearance",
10492
11898
  "kind": "enum",
@@ -10502,6 +11908,25 @@
10502
11908
  ],
10503
11909
  "sourceFile": "types/tag.ts"
10504
11910
  },
11911
+ {
11912
+ "name": "AutocompleteTagInputSuggestion",
11913
+ "kind": "interface",
11914
+ "members": [
11915
+ {
11916
+ "name": "value",
11917
+ "value": "string"
11918
+ },
11919
+ {
11920
+ "name": "label",
11921
+ "value": "string"
11922
+ },
11923
+ {
11924
+ "name": "description?",
11925
+ "value": "string"
11926
+ }
11927
+ ],
11928
+ "sourceFile": "components/New/AutocompleteTagInput/utils.ts"
11929
+ },
10505
11930
  {
10506
11931
  "name": "TooltipContainerOptions",
10507
11932
  "kind": "interface",
@@ -10551,6 +11976,140 @@
10551
11976
  }
10552
11977
  ],
10553
11978
  "sourceFile": "types/tooltip.ts"
11979
+ },
11980
+ {
11981
+ "name": "TransferQueueItem",
11982
+ "kind": "interface",
11983
+ "members": [
11984
+ {
11985
+ "name": "id",
11986
+ "value": "string"
11987
+ },
11988
+ {
11989
+ "name": "name",
11990
+ "value": "string"
11991
+ },
11992
+ {
11993
+ "name": "status",
11994
+ "value": "TransferQueueItemStatus"
11995
+ },
11996
+ {
11997
+ "name": "percent?",
11998
+ "value": "number"
11999
+ },
12000
+ {
12001
+ "name": "message?",
12002
+ "value": "string"
12003
+ }
12004
+ ],
12005
+ "sourceFile": "components/New/TransferQueue/TransferQueue.tsx",
12006
+ "description": "One file (or other named unit of work) tracked by a `TransferQueue`."
12007
+ },
12008
+ {
12009
+ "name": "TransferQueueLabels",
12010
+ "kind": "interface",
12011
+ "members": [
12012
+ {
12013
+ "name": "cancelItemAriaLabel",
12014
+ "value": "(name: string) => string"
12015
+ },
12016
+ {
12017
+ "name": "itemProgressAriaLabel",
12018
+ "value": "(name: string) => string"
12019
+ },
12020
+ {
12021
+ "name": "successLabel",
12022
+ "value": "string"
12023
+ },
12024
+ {
12025
+ "name": "canceledLabel",
12026
+ "value": "string"
12027
+ },
12028
+ {
12029
+ "name": "failedMessage",
12030
+ "value": "string"
12031
+ },
12032
+ {
12033
+ "name": "warningMessage",
12034
+ "value": "string"
12035
+ },
12036
+ {
12037
+ "name": "queueProgressAriaLabel",
12038
+ "value": "string"
12039
+ },
12040
+ {
12041
+ "name": "queueProgressValueText",
12042
+ "value": "(completed: number, total: number) => string"
12043
+ },
12044
+ {
12045
+ "name": "collapseAriaLabel",
12046
+ "value": "string"
12047
+ },
12048
+ {
12049
+ "name": "expandAriaLabel",
12050
+ "value": "string"
12051
+ },
12052
+ {
12053
+ "name": "closeAriaLabel",
12054
+ "value": "string"
12055
+ },
12056
+ {
12057
+ "name": "closeConfirmHeader",
12058
+ "value": "string"
12059
+ },
12060
+ {
12061
+ "name": "closeConfirmDescriptionInProgress",
12062
+ "value": "string"
12063
+ },
12064
+ {
12065
+ "name": "closeConfirmDescriptionFailed",
12066
+ "value": "string"
12067
+ },
12068
+ {
12069
+ "name": "closeConfirmDescriptionMixed",
12070
+ "value": "string"
12071
+ },
12072
+ {
12073
+ "name": "closeConfirmLabel",
12074
+ "value": "string"
12075
+ },
12076
+ {
12077
+ "name": "closeCancelLabel",
12078
+ "value": "string"
12079
+ }
12080
+ ],
12081
+ "sourceFile": "components/New/TransferQueue/TransferQueue.tsx",
12082
+ "description": "Every user-visible string of `TransferQueue`."
12083
+ },
12084
+ {
12085
+ "name": "TransferQueueItemStatus",
12086
+ "kind": "enum",
12087
+ "members": [
12088
+ {
12089
+ "name": "InProgress",
12090
+ "value": "'inProgress'",
12091
+ "comment": "Queued or running; the row shows a spinner and, when cancelable, a cancel control."
12092
+ },
12093
+ {
12094
+ "name": "Success",
12095
+ "value": "'success'"
12096
+ },
12097
+ {
12098
+ "name": "Warning",
12099
+ "value": "'warning'",
12100
+ "comment": "Delivered, but not everything the user asked for made it through."
12101
+ },
12102
+ {
12103
+ "name": "Failed",
12104
+ "value": "'failed'"
12105
+ },
12106
+ {
12107
+ "name": "Canceled",
12108
+ "value": "'canceled'"
12109
+ }
12110
+ ],
12111
+ "sourceFile": "types/transfer-queue.ts",
12112
+ "description": "Lifecycle status of one item in a `TransferQueue`."
10554
12113
  }
10555
12114
  ],
10556
12115
  "hooks": [
@@ -10615,12 +12174,30 @@
10615
12174
  "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.",
10616
12175
  "signature": "() => string"
10617
12176
  },
12177
+ {
12178
+ "name": "extractInitials",
12179
+ "sourceFile": "utils/avatar.ts",
12180
+ "description": "Returns 1–2 uppercase initials derived from a display name, or `'?'` when it has no letters.",
12181
+ "signature": "(name: string) => string"
12182
+ },
10618
12183
  {
10619
12184
  "name": "matchesAccept",
10620
12185
  "sourceFile": "utils/file-accept.ts",
10621
12186
  "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.",
10622
12187
  "signature": "(file: File, accept?: string) => boolean"
10623
12188
  },
12189
+ {
12190
+ "name": "DEFAULT_TRANSFER_QUEUE_LABELS",
12191
+ "sourceFile": "components/New/TransferQueue/constants.ts",
12192
+ "description": "English defaults for every `TransferQueue` string; a host passes translations through `labels`.",
12193
+ "signature": "DEFAULT_TRANSFER_QUEUE_LABELS: TransferQueueLabels"
12194
+ },
12195
+ {
12196
+ "name": "TRANSFER_QUEUE_AUTO_CLOSE_DELAY_MS",
12197
+ "sourceFile": "components/New/TransferQueue/constants.ts",
12198
+ "description": "Delay before a queue whose items have all succeeded closes itself.",
12199
+ "signature": "TRANSFER_QUEUE_AUTO_CLOSE_DELAY_MS = 8000"
12200
+ },
10624
12201
  {
10625
12202
  "name": "GRID_SELECTION_COLUMN_ID",
10626
12203
  "sourceFile": "components/New/Grid/Grid.tsx",
@@ -10755,6 +12332,11 @@
10755
12332
  "name": "NOT_ALLOWED_SPACES_REGEXP",
10756
12333
  "sourceFile": "constants/validation.ts",
10757
12334
  "signature": "NOT_ALLOWED_SPACES_REGEXP = new RegExp(NOT_ALLOWED_SPACES)"
12335
+ },
12336
+ {
12337
+ "name": "DIAL_KIT_CLASS",
12338
+ "sourceFile": "constants/public-class-names.ts",
12339
+ "signature": "DIAL_KIT_CLASS = {\n /* ── Feedback and status ───────────────────────────────────────────────── */\n /** The `role=\"status\"` root of a `Spinner`. */\n spinner: 'dial-kit-spinner',\n /**\n * The outermost element of a `ProgressBar`: the box wrapping its label,\n * track and readout — or the track itself, which is the root when the bar\n * has neither.\n */\n progressBar: 'dial-kit-progress-bar',\n /** The root of a `Skeleton`, wrapping its avatar and text rows. */\n skeleton: 'dial-kit-skeleton',\n /**\n * The `Notification` surface. Present on every wrapper too — the toast and\n * section-message variants of error, info, success, warning, loading and\n * general all render this component.\n */\n notification: 'dial-kit-notification',\n /** The empty-state root of `NoDataContent`. */\n noDataContent: 'dial-kit-no-data-content',\n /** The `role=\"status\"` panel of a `TransferQueue`: header, rows and aggregate bar. */\n transferQueue: 'dial-kit-transfer-queue',\n\n /* ── Text ──────────────────────────────────────────────────────────────── */\n /** The text element of a `Highlight`, which renders the matched query. */\n highlight: 'dial-kit-highlight',\n /** The caption line under a field, rendered by `CaptionText`. */\n captionText: 'dial-kit-caption-text',\n /**\n * A caption in its error variant — what `ErrorText` renders. Additive to\n * `captionText`, since one component draws both.\n */\n errorText: 'dial-kit-error-text',\n /** The `Label` root, which wraps the `label` element and its info button. */\n label: 'dial-kit-label',\n\n /* ── Containers ────────────────────────────────────────────────────────── */\n /** The `article` element of a `CardShell`. */\n cardShell: 'dial-kit-card-shell',\n /** The `aside` element of a `CollapsibleSidebar`. */\n collapsibleSidebar: 'dial-kit-collapsible-sidebar',\n /** The content box inside a `ResizableContainer`'s resize frame. */\n resizableContainer: 'dial-kit-resizable-container',\n /**\n * The `role=\"dialog\"` panel of a `Popup`. Its backdrop is reached through\n * `overlayClassName`.\n */\n popup: 'dial-kit-popup',\n /** The `role=\"dialog\"` panel of a `BottomSheet`. */\n bottomSheet: 'dial-kit-bottom-sheet',\n /** The `role=\"dialog\"` panel of a `SideDrawer`, open or closed. */\n sideDrawer: 'dial-kit-side-drawer',\n /** The `Popup` panel of a `ConfirmationPopup`, additive to `popup`. */\n confirmationPopup: 'dial-kit-confirmation-popup',\n /** The root of an `Accordion`. */\n accordion: 'dial-kit-accordion',\n /** The breadcrumb root of a `FolderPath`. */\n folderPath: 'dial-kit-folder-path',\n /** The `nav` element of a `Breadcrumbs` trail. */\n breadcrumbs: 'dial-kit-breadcrumbs',\n /**\n * One segment of a `Breadcrumbs` trail: the link, button or plain span that\n * draws the label — not the `li`, which also holds the separator after it.\n */\n breadcrumbsItem: 'dial-kit-breadcrumbs-item',\n\n /* ── Menus and overlays ────────────────────────────────────────────────── */\n /**\n * The trigger wrapper of a `Dropdown`. Its floating panel is reached through\n * `listClassName`.\n */\n dropdown: 'dial-kit-dropdown',\n /**\n * The `role=\"none\"` item list inside a dropdown overlay — the box that holds\n * the rows and owns their vertical padding. Present in both generations, and\n * on a submenu's own list. It is *not* the floating panel.\n */\n dropdownList: 'dial-kit-dropdown-list',\n /**\n * One row of a floating overlay: a dropdown item, a `Select` option, a\n * submenu trigger, or a submenu child. It sits on the element that draws the\n * row box — so on the wrapper, not the inner button, for a row that has a\n * `rightControl` beside it.\n */\n menuItem: 'dial-kit-menuitem',\n /**\n * The trailing check of a chosen `MenuItemMark.Check` row. Decorative, like\n * the glyph itself — the row's `aria-checked` / `aria-selected` carries the\n * state.\n */\n menuItemCheck: 'dial-kit-menuitem-check',\n /** The primary icon of a `DialDropdownIcon` trigger. */\n dropdownIcon: 'dial-kit-dropdown-icon',\n /**\n * The caret badge of a `DialDropdownIcon` trigger — the round plate the\n * chevron sits on. Absent when `showCaret` is `false`.\n */\n dropdownIconCaret: 'dial-kit-dropdown-icon-caret',\n /** The bubble of a `Tooltip`, rendered by `TooltipContent` into a portal. */\n tooltip: 'dial-kit-tooltip',\n /** The panel of an `InteractiveTooltip` — the one whose content takes focus. */\n interactiveTooltip: 'dial-kit-interactive-tooltip',\n /** The text element of an `EllipsisTooltip`, which is also its trigger. */\n ellipsisTooltip: 'dial-kit-ellipsis-tooltip',\n\n /* ── Fields ────────────────────────────────────────────────────────────── */\n /** The `Search` field, additive to the `dial-kit-input` its `Input` carries. */\n search: 'dial-kit-search',\n /** The `PasswordInput` field, additive to `dial-kit-input`. */\n passwordInput: 'dial-kit-password-input',\n /** The `NumberInput` field, additive to `dial-kit-input`. */\n numberInput: 'dial-kit-number-input',\n /** The `TagInput` field, additive to `dial-kit-input`. */\n tagInput: 'dial-kit-tag-input',\n /** The `AutocompleteTagInput` field, additive to `dial-kit-input`. */\n autocompleteTagInput: 'dial-kit-autocomplete-tag-input',\n /** The root of a `Select`, wrapping its label, field and caption. */\n select: 'dial-kit-select',\n /** The trigger button of an `InlineSelect`. */\n inlineSelect: 'dial-kit-inline-select',\n /** The root of a `Calendar`, wrapping its label and date field. */\n calendar: 'dial-kit-calendar',\n /** The drop area of a `FileDropzone`. */\n fileDropzone: 'dial-kit-file-dropzone',\n /**\n * The root of a `FileIcon`, wrapping the file or folder glyph (or\n * its spinner while loading) and the shared badge.\n */\n fileIcon: 'dial-kit-file-icon',\n /** The row of a `FileName`: its type icon, the name and any details. */\n fileName: 'dial-kit-file-name',\n /** The `FileName` row of a `FolderName`, additive to `fileName`. */\n folderName: 'dial-kit-folder-name',\n /**\n * The `role=\"img\"` badge of a `SharedEntityIndicator` — standalone, or the\n * shared badge a `FileIcon` draws over its glyph.\n */\n sharedEntityIndicator: 'dial-kit-shared-entity-indicator',\n /** The root of a `Badge`: the label box, with its icon when it has one. */\n badge: 'dial-kit-badge',\n /** The root of an `Avatar`: the image, or the initials box that replaces it. */\n avatar: 'dial-kit-avatar',\n /** The root row of an `EntityIdentity`: its icon, type label, name and version. */\n entityIdentity: 'dial-kit-entity-identity',\n\n /* ── Controls ──────────────────────────────────────────────────────────── */\n /** The row of a `Switch`: the control and its label. */\n switch: 'dial-kit-switch',\n /** The row of a `Checkbox`: the box and its label. */\n checkbox: 'dial-kit-checkbox',\n /** The decorative box a `CheckboxBox` draws, in a checkbox or a menu row. */\n checkboxBox: 'dial-kit-checkbox-box',\n /** The row of a `Radio`: the circle and its label. */\n radio: 'dial-kit-radio',\n /** The root of a `RadioGroup`, wrapping its label and its radios. */\n radioGroup: 'dial-kit-radio-group',\n /**\n * The root of a `RadioGroupPopupField`, wrapping its label and the collapsed\n * field that opens the group.\n */\n radioGroupPopupField: 'dial-kit-radio-group-popup-field',\n /** The `role=\"radiogroup\"` track of a `SegmentedControl`. */\n segmentedControl: 'dial-kit-segmented-control',\n /** One segment of a `SegmentedControl`. */\n segmentedControlItem: 'dial-kit-segmented-control-item',\n /**\n * The outermost element of a `Tabs`: the box wrapping its heading and tab\n * list — or the `role=\"tablist\"` itself, which is the root when the tabs\n * carry no `sectionLabel`.\n */\n tabs: 'dial-kit-tabs',\n /**\n * The `role=\"tablist\"` holding the tabs, in either orientation. Additive to\n * `tabs` when there is no heading above it, since one element is then both.\n */\n tabList: 'dial-kit-tab-list',\n /**\n * One tab inside `Tabs`, in either orientation. The selected tab of a\n * horizontal row keeps its own `dial-kit-tab-selected-underline`.\n */\n tab: 'dial-kit-tab',\n /**\n * The selected tab, additive to `tab`. A horizontal row draws its selection\n * with `dial-kit-tab-selected-underline`, which carries the gradient rule;\n * this one carries no declarations and marks the selected tab in either\n * orientation.\n */\n tabSelected: 'dial-kit-tab-selected',\n /** The `sectionLabel` heading above a `Tabs`. Absent when there is none. */\n tabsSectionLabel: 'dial-kit-tabs-section-label',\n /**\n * The `role=\"group\"` row of a `FilterChips`. Its chips are `Tag` pills, so\n * they carry `dial-kit-tag` and have no entry of their own.\n */\n filterChips: 'dial-kit-filter-chips',\n /** A `Tag` pill, wherever it is rendered — including a `TagInput`'s rows. */\n tag: 'dial-kit-tag',\n /**\n * A `ToggleIconButton`, additive to the `dial-kit-base-icon-button` it\n * already carries.\n */\n toggleIconButton: 'dial-kit-toggle-icon-button',\n /** A `CloseButton`, additive to `dial-kit-base-icon-button`. */\n closeButton: 'dial-kit-close-button',\n /** An `InfoButton`, additive to `dial-kit-base-icon-button`. */\n infoButton: 'dial-kit-info-button',\n /**\n * The wrapper of a `ButtonDropdown` — its trigger carries\n * `dial-kit-base-button`.\n */\n buttonDropdown: 'dial-kit-button-dropdown',\n} as const"
10758
12340
  }
10759
12341
  ]
10760
12342
  }