@d4gger/design-system 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (772) hide show
  1. package/README.md +19 -0
  2. package/dist/{components/controlGroup/ControlGroup.cjs → _internal/floatingLayer.cjs} +11 -26
  3. package/dist/_internal/floatingLayer.cjs.map +7 -0
  4. package/dist/_internal/floatingLayer.d.cts +28 -0
  5. package/dist/_internal/floatingLayer.d.cts.map +1 -0
  6. package/dist/_internal/floatingLayer.d.mts +28 -0
  7. package/dist/_internal/floatingLayer.d.mts.map +1 -0
  8. package/dist/_internal/floatingLayer.d.ts +28 -0
  9. package/dist/_internal/floatingLayer.d.ts.map +1 -0
  10. package/dist/_internal/floatingLayer.js +11 -0
  11. package/dist/_internal/floatingLayer.js.map +7 -0
  12. package/dist/components/accordion.css +9 -2
  13. package/dist/components/alert/Alert.cjs +11 -7
  14. package/dist/components/alert/Alert.cjs.map +2 -2
  15. package/dist/components/alert/Alert.d.cts.map +1 -1
  16. package/dist/components/alert/Alert.d.mts.map +1 -1
  17. package/dist/components/alert/Alert.d.ts.map +1 -1
  18. package/dist/components/alert/Alert.js +12 -8
  19. package/dist/components/alert/Alert.js.map +2 -2
  20. package/dist/components/alert.css +13 -0
  21. package/dist/components/article-nodes.css +16 -1
  22. package/dist/components/articleNodes/ArticleNodes.cjs +46 -5
  23. package/dist/components/articleNodes/ArticleNodes.cjs.map +2 -2
  24. package/dist/components/articleNodes/ArticleNodes.d.cts +7 -3
  25. package/dist/components/articleNodes/ArticleNodes.d.cts.map +1 -1
  26. package/dist/components/articleNodes/ArticleNodes.d.mts +7 -3
  27. package/dist/components/articleNodes/ArticleNodes.d.mts.map +1 -1
  28. package/dist/components/articleNodes/ArticleNodes.d.ts +7 -3
  29. package/dist/components/articleNodes/ArticleNodes.d.ts.map +1 -1
  30. package/dist/components/articleNodes/ArticleNodes.js +46 -5
  31. package/dist/components/articleNodes/ArticleNodes.js.map +2 -2
  32. package/dist/components/articleNodes/articleExtensions.cjs +21 -4
  33. package/dist/components/articleNodes/articleExtensions.cjs.map +2 -2
  34. package/dist/components/articleNodes/articleExtensions.d.cts +8 -2
  35. package/dist/components/articleNodes/articleExtensions.d.cts.map +1 -1
  36. package/dist/components/articleNodes/articleExtensions.d.mts +8 -2
  37. package/dist/components/articleNodes/articleExtensions.d.mts.map +1 -1
  38. package/dist/components/articleNodes/articleExtensions.d.ts +8 -2
  39. package/dist/components/articleNodes/articleExtensions.d.ts.map +1 -1
  40. package/dist/components/articleNodes/articleExtensions.js +21 -4
  41. package/dist/components/articleNodes/articleExtensions.js.map +2 -2
  42. package/dist/components/articleNodes/articleNodeViews.cjs +154 -0
  43. package/dist/components/articleNodes/articleNodeViews.cjs.map +7 -0
  44. package/dist/components/articleNodes/articleNodeViews.d.cts +3 -0
  45. package/dist/components/articleNodes/articleNodeViews.d.cts.map +1 -0
  46. package/dist/components/articleNodes/articleNodeViews.d.mts +3 -0
  47. package/dist/components/articleNodes/articleNodeViews.d.mts.map +1 -0
  48. package/dist/components/articleNodes/articleNodeViews.d.ts +3 -0
  49. package/dist/components/articleNodes/articleNodeViews.d.ts.map +1 -0
  50. package/dist/components/articleNodes/articleNodeViews.js +124 -0
  51. package/dist/components/articleNodes/articleNodeViews.js.map +7 -0
  52. package/dist/components/articleNodes/articleNodes.props.cjs.map +1 -1
  53. package/dist/components/articleNodes/articleNodes.props.d.cts +25 -2
  54. package/dist/components/articleNodes/articleNodes.props.d.cts.map +1 -1
  55. package/dist/components/articleNodes/articleNodes.props.d.mts +25 -2
  56. package/dist/components/articleNodes/articleNodes.props.d.mts.map +1 -1
  57. package/dist/components/articleNodes/articleNodes.props.d.ts +25 -2
  58. package/dist/components/articleNodes/articleNodes.props.d.ts.map +1 -1
  59. package/dist/components/banner/Banner.cjs +105 -0
  60. package/dist/components/banner/Banner.cjs.map +7 -0
  61. package/dist/components/banner/Banner.d.cts +27 -0
  62. package/dist/components/banner/Banner.d.cts.map +1 -0
  63. package/dist/components/banner/Banner.d.mts +27 -0
  64. package/dist/components/banner/Banner.d.mts.map +1 -0
  65. package/dist/components/banner/Banner.d.ts +27 -0
  66. package/dist/components/banner/Banner.d.ts.map +1 -0
  67. package/dist/components/banner/Banner.js +80 -0
  68. package/dist/components/banner/Banner.js.map +7 -0
  69. package/dist/components/{controlGroup/controlGroup.props.cjs → banner/banner.props.cjs} +23 -16
  70. package/dist/components/banner/banner.props.cjs.map +7 -0
  71. package/dist/components/banner/banner.props.d.cts +32 -0
  72. package/dist/components/banner/banner.props.d.cts.map +1 -0
  73. package/dist/components/banner/banner.props.d.mts +32 -0
  74. package/dist/components/banner/banner.props.d.mts.map +1 -0
  75. package/dist/components/banner/banner.props.d.ts +32 -0
  76. package/dist/components/banner/banner.props.d.ts.map +1 -0
  77. package/dist/components/banner/banner.props.js +27 -0
  78. package/dist/components/banner/banner.props.js.map +7 -0
  79. package/dist/components/banner.css +61 -0
  80. package/dist/components/blockquote.css +7 -4
  81. package/dist/components/bottom-dock.css +132 -0
  82. package/dist/components/bottomDock/BottomDock.cjs +140 -0
  83. package/dist/components/bottomDock/BottomDock.cjs.map +7 -0
  84. package/dist/components/bottomDock/BottomDock.d.cts +25 -0
  85. package/dist/components/bottomDock/BottomDock.d.cts.map +1 -0
  86. package/dist/components/bottomDock/BottomDock.d.mts +25 -0
  87. package/dist/components/bottomDock/BottomDock.d.mts.map +1 -0
  88. package/dist/components/bottomDock/BottomDock.d.ts +25 -0
  89. package/dist/components/bottomDock/BottomDock.d.ts.map +1 -0
  90. package/dist/components/bottomDock/BottomDock.js +110 -0
  91. package/dist/components/bottomDock/BottomDock.js.map +7 -0
  92. package/dist/components/bottomDock/bottomDock.props.cjs +49 -0
  93. package/dist/components/bottomDock/bottomDock.props.cjs.map +7 -0
  94. package/dist/components/bottomDock/bottomDock.props.d.cts +29 -0
  95. package/dist/components/bottomDock/bottomDock.props.d.cts.map +1 -0
  96. package/dist/components/bottomDock/bottomDock.props.d.mts +29 -0
  97. package/dist/components/bottomDock/bottomDock.props.d.mts.map +1 -0
  98. package/dist/components/bottomDock/bottomDock.props.d.ts +29 -0
  99. package/dist/components/bottomDock/bottomDock.props.d.ts.map +1 -0
  100. package/dist/components/bottomDock/bottomDock.props.js +29 -0
  101. package/dist/components/bottomDock/bottomDock.props.js.map +7 -0
  102. package/dist/components/breadcrumb.css +24 -3
  103. package/dist/components/button-group.css +25 -0
  104. package/dist/components/button.css +9 -0
  105. package/dist/components/callout.css +20 -7
  106. package/dist/components/card.css +11 -0
  107. package/dist/components/carousel/Carousel.cjs +109 -39
  108. package/dist/components/carousel/Carousel.cjs.map +3 -3
  109. package/dist/components/carousel/Carousel.d.cts.map +1 -1
  110. package/dist/components/carousel/Carousel.d.mts.map +1 -1
  111. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  112. package/dist/components/carousel/Carousel.js +111 -41
  113. package/dist/components/carousel/Carousel.js.map +3 -3
  114. package/dist/components/carousel.css +93 -26
  115. package/dist/components/chart/Chart.cjs +61 -11
  116. package/dist/components/chart/Chart.cjs.map +2 -2
  117. package/dist/components/chart/Chart.d.cts.map +1 -1
  118. package/dist/components/chart/Chart.d.mts.map +1 -1
  119. package/dist/components/chart/Chart.d.ts.map +1 -1
  120. package/dist/components/chart/Chart.js +62 -11
  121. package/dist/components/chart/Chart.js.map +2 -2
  122. package/dist/components/chart.css +10 -1
  123. package/dist/components/checkbox.css +14 -0
  124. package/dist/components/code.css +29 -13
  125. package/dist/components/collapsible/Collapsible.cjs +4 -0
  126. package/dist/components/collapsible/Collapsible.cjs.map +2 -2
  127. package/dist/components/collapsible/Collapsible.d.cts.map +1 -1
  128. package/dist/components/collapsible/Collapsible.d.mts.map +1 -1
  129. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  130. package/dist/components/collapsible/Collapsible.js +4 -0
  131. package/dist/components/collapsible/Collapsible.js.map +2 -2
  132. package/dist/components/collapsible.css +10 -1
  133. package/dist/components/combobox/Combobox.cjs +3 -1
  134. package/dist/components/combobox/Combobox.cjs.map +2 -2
  135. package/dist/components/combobox/Combobox.d.cts.map +1 -1
  136. package/dist/components/combobox/Combobox.d.mts.map +1 -1
  137. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  138. package/dist/components/combobox/Combobox.js +3 -1
  139. package/dist/components/combobox/Combobox.js.map +2 -2
  140. package/dist/components/combobox.css +5 -1
  141. package/dist/components/command/Command.cjs +1 -1
  142. package/dist/components/command/Command.cjs.map +2 -2
  143. package/dist/components/command/Command.js +1 -1
  144. package/dist/components/command/Command.js.map +2 -2
  145. package/dist/components/command.css +0 -2
  146. package/dist/components/comment-thread.css +15 -7
  147. package/dist/components/commentThread/CommentThread.cjs +45 -17
  148. package/dist/components/commentThread/CommentThread.cjs.map +2 -2
  149. package/dist/components/commentThread/CommentThread.d.cts +6 -6
  150. package/dist/components/commentThread/CommentThread.d.cts.map +1 -1
  151. package/dist/components/commentThread/CommentThread.d.mts +6 -6
  152. package/dist/components/commentThread/CommentThread.d.mts.map +1 -1
  153. package/dist/components/commentThread/CommentThread.d.ts +6 -6
  154. package/dist/components/commentThread/CommentThread.d.ts.map +1 -1
  155. package/dist/components/commentThread/CommentThread.js +45 -17
  156. package/dist/components/commentThread/CommentThread.js.map +2 -2
  157. package/dist/components/commentThread/commentThread.props.cjs.map +1 -1
  158. package/dist/components/commentThread/commentThread.props.d.cts +24 -0
  159. package/dist/components/commentThread/commentThread.props.d.cts.map +1 -1
  160. package/dist/components/commentThread/commentThread.props.d.mts +24 -0
  161. package/dist/components/commentThread/commentThread.props.d.mts.map +1 -1
  162. package/dist/components/commentThread/commentThread.props.d.ts +24 -0
  163. package/dist/components/commentThread/commentThread.props.d.ts.map +1 -1
  164. package/dist/components/config-drawer.css +7 -3
  165. package/dist/components/configDrawer/ConfigDrawer.cjs +1 -1
  166. package/dist/components/configDrawer/ConfigDrawer.cjs.map +2 -2
  167. package/dist/components/configDrawer/ConfigDrawer.js +1 -1
  168. package/dist/components/configDrawer/ConfigDrawer.js.map +2 -2
  169. package/dist/components/context-menu.css +4 -2
  170. package/dist/components/contextMenu/ContextMenu.cjs +37 -6
  171. package/dist/components/contextMenu/ContextMenu.cjs.map +2 -2
  172. package/dist/components/contextMenu/ContextMenu.d.cts +1 -1
  173. package/dist/components/contextMenu/ContextMenu.d.cts.map +1 -1
  174. package/dist/components/contextMenu/ContextMenu.d.mts +1 -1
  175. package/dist/components/contextMenu/ContextMenu.d.mts.map +1 -1
  176. package/dist/components/contextMenu/ContextMenu.d.ts +1 -1
  177. package/dist/components/contextMenu/ContextMenu.d.ts.map +1 -1
  178. package/dist/components/contextMenu/ContextMenu.js +37 -6
  179. package/dist/components/contextMenu/ContextMenu.js.map +2 -2
  180. package/dist/components/copy-field.css +18 -0
  181. package/dist/components/copyField/CopyField.cjs +3 -3
  182. package/dist/components/copyField/CopyField.cjs.map +2 -2
  183. package/dist/components/copyField/CopyField.d.cts.map +1 -1
  184. package/dist/components/copyField/CopyField.d.mts.map +1 -1
  185. package/dist/components/copyField/CopyField.d.ts.map +1 -1
  186. package/dist/components/copyField/CopyField.js +3 -3
  187. package/dist/components/copyField/CopyField.js.map +2 -2
  188. package/dist/components/data-list.css +19 -4
  189. package/dist/components/data-table.css +190 -0
  190. package/dist/components/dataTable/DataTable.cjs +193 -68
  191. package/dist/components/dataTable/DataTable.cjs.map +3 -3
  192. package/dist/components/dataTable/DataTable.d.cts +29 -1
  193. package/dist/components/dataTable/DataTable.d.cts.map +1 -1
  194. package/dist/components/dataTable/DataTable.d.mts +29 -1
  195. package/dist/components/dataTable/DataTable.d.mts.map +1 -1
  196. package/dist/components/dataTable/DataTable.d.ts +29 -1
  197. package/dist/components/dataTable/DataTable.d.ts.map +1 -1
  198. package/dist/components/dataTable/DataTable.js +193 -68
  199. package/dist/components/dataTable/DataTable.js.map +2 -2
  200. package/dist/components/dataTable/DataTableContext.cjs +41 -0
  201. package/dist/components/dataTable/DataTableContext.cjs.map +7 -0
  202. package/dist/components/dataTable/DataTableContext.d.cts +23 -0
  203. package/dist/components/dataTable/DataTableContext.d.cts.map +1 -0
  204. package/dist/components/dataTable/DataTableContext.d.mts +23 -0
  205. package/dist/components/dataTable/DataTableContext.d.mts.map +1 -0
  206. package/dist/components/dataTable/DataTableContext.d.ts +23 -0
  207. package/dist/components/dataTable/DataTableContext.d.ts.map +1 -0
  208. package/dist/components/dataTable/DataTableContext.js +11 -0
  209. package/dist/components/dataTable/DataTableContext.js.map +7 -0
  210. package/dist/components/dataTable/DataTablePagination.cjs +72 -47
  211. package/dist/components/dataTable/DataTablePagination.cjs.map +2 -2
  212. package/dist/components/dataTable/DataTablePagination.d.cts +5 -1
  213. package/dist/components/dataTable/DataTablePagination.d.cts.map +1 -1
  214. package/dist/components/dataTable/DataTablePagination.d.mts +5 -1
  215. package/dist/components/dataTable/DataTablePagination.d.mts.map +1 -1
  216. package/dist/components/dataTable/DataTablePagination.d.ts +5 -1
  217. package/dist/components/dataTable/DataTablePagination.d.ts.map +1 -1
  218. package/dist/components/dataTable/DataTablePagination.js +75 -47
  219. package/dist/components/dataTable/DataTablePagination.js.map +2 -2
  220. package/dist/components/dataTable/DataTableToolbar.cjs +122 -93
  221. package/dist/components/dataTable/DataTableToolbar.cjs.map +2 -2
  222. package/dist/components/dataTable/DataTableToolbar.d.cts +6 -5
  223. package/dist/components/dataTable/DataTableToolbar.d.cts.map +1 -1
  224. package/dist/components/dataTable/DataTableToolbar.d.mts +6 -5
  225. package/dist/components/dataTable/DataTableToolbar.d.mts.map +1 -1
  226. package/dist/components/dataTable/DataTableToolbar.d.ts +6 -5
  227. package/dist/components/dataTable/DataTableToolbar.d.ts.map +1 -1
  228. package/dist/components/dataTable/DataTableToolbar.js +123 -94
  229. package/dist/components/dataTable/DataTableToolbar.js.map +2 -2
  230. package/dist/components/dataTable/dataTable.export.cjs +83 -0
  231. package/dist/components/dataTable/dataTable.export.cjs.map +7 -0
  232. package/dist/components/dataTable/dataTable.export.d.cts +11 -0
  233. package/dist/components/dataTable/dataTable.export.d.cts.map +1 -0
  234. package/dist/components/dataTable/dataTable.export.d.mts +11 -0
  235. package/dist/components/dataTable/dataTable.export.d.mts.map +1 -0
  236. package/dist/components/dataTable/dataTable.export.d.ts +11 -0
  237. package/dist/components/dataTable/dataTable.export.d.ts.map +1 -0
  238. package/dist/components/dataTable/dataTable.export.js +63 -0
  239. package/dist/components/dataTable/dataTable.export.js.map +7 -0
  240. package/dist/components/dataTable/dataTable.props.cjs +23 -1
  241. package/dist/components/dataTable/dataTable.props.cjs.map +2 -2
  242. package/dist/components/dataTable/dataTable.props.d.cts +21 -1
  243. package/dist/components/dataTable/dataTable.props.d.cts.map +1 -1
  244. package/dist/components/dataTable/dataTable.props.d.mts +21 -1
  245. package/dist/components/dataTable/dataTable.props.d.mts.map +1 -1
  246. package/dist/components/dataTable/dataTable.props.d.ts +21 -1
  247. package/dist/components/dataTable/dataTable.props.d.ts.map +1 -1
  248. package/dist/components/dataTable/dataTable.props.js +23 -1
  249. package/dist/components/dataTable/dataTable.props.js.map +2 -2
  250. package/dist/components/dialog/Dialog.cjs +2 -1
  251. package/dist/components/dialog/Dialog.cjs.map +2 -2
  252. package/dist/components/dialog/Dialog.d.cts.map +1 -1
  253. package/dist/components/dialog/Dialog.d.mts.map +1 -1
  254. package/dist/components/dialog/Dialog.d.ts.map +1 -1
  255. package/dist/components/dialog/Dialog.js +2 -1
  256. package/dist/components/dialog/Dialog.js.map +2 -2
  257. package/dist/components/drawer.css +23 -6
  258. package/dist/components/dropdown-menu.css +1 -1
  259. package/dist/components/dropdownMenu/DropdownMenu.cjs +10 -5
  260. package/dist/components/dropdownMenu/DropdownMenu.cjs.map +2 -2
  261. package/dist/components/dropdownMenu/DropdownMenu.d.cts.map +1 -1
  262. package/dist/components/dropdownMenu/DropdownMenu.d.mts.map +1 -1
  263. package/dist/components/dropdownMenu/DropdownMenu.d.ts.map +1 -1
  264. package/dist/components/dropdownMenu/DropdownMenu.js +10 -5
  265. package/dist/components/dropdownMenu/DropdownMenu.js.map +2 -2
  266. package/dist/components/empty-state.css +5 -0
  267. package/dist/components/file-upload.css +36 -9
  268. package/dist/components/fileUpload/FileUpload.cjs +10 -1
  269. package/dist/components/fileUpload/FileUpload.cjs.map +2 -2
  270. package/dist/components/fileUpload/FileUpload.d.cts +1 -0
  271. package/dist/components/fileUpload/FileUpload.d.cts.map +1 -1
  272. package/dist/components/fileUpload/FileUpload.d.mts +1 -0
  273. package/dist/components/fileUpload/FileUpload.d.mts.map +1 -1
  274. package/dist/components/fileUpload/FileUpload.d.ts +1 -0
  275. package/dist/components/fileUpload/FileUpload.d.ts.map +1 -1
  276. package/dist/components/fileUpload/FileUpload.js +10 -1
  277. package/dist/components/fileUpload/FileUpload.js.map +2 -2
  278. package/dist/components/filter-bar.css +380 -8
  279. package/dist/components/filterBar/FilterBar.cjs +630 -1
  280. package/dist/components/filterBar/FilterBar.cjs.map +2 -2
  281. package/dist/components/filterBar/FilterBar.d.cts +132 -2
  282. package/dist/components/filterBar/FilterBar.d.cts.map +1 -1
  283. package/dist/components/filterBar/FilterBar.d.mts +132 -2
  284. package/dist/components/filterBar/FilterBar.d.mts.map +1 -1
  285. package/dist/components/filterBar/FilterBar.d.ts +132 -2
  286. package/dist/components/filterBar/FilterBar.d.ts.map +1 -1
  287. package/dist/components/filterBar/FilterBar.js +631 -2
  288. package/dist/components/filterBar/FilterBar.js.map +2 -2
  289. package/dist/components/floating-panel.css +50 -19
  290. package/dist/components/floatingPanel/FloatingPanel.cjs +156 -58
  291. package/dist/components/floatingPanel/FloatingPanel.cjs.map +2 -2
  292. package/dist/components/floatingPanel/FloatingPanel.d.cts.map +1 -1
  293. package/dist/components/floatingPanel/FloatingPanel.d.mts.map +1 -1
  294. package/dist/components/floatingPanel/FloatingPanel.d.ts.map +1 -1
  295. package/dist/components/floatingPanel/FloatingPanel.js +156 -58
  296. package/dist/components/floatingPanel/FloatingPanel.js.map +2 -2
  297. package/dist/components/fontProvider/FontProvider.cjs +1 -1
  298. package/dist/components/fontProvider/FontProvider.cjs.map +1 -1
  299. package/dist/components/fontProvider/FontProvider.js +1 -1
  300. package/dist/components/fontProvider/FontProvider.js.map +1 -1
  301. package/dist/components/grid/Grid.cjs +24 -35
  302. package/dist/components/grid/Grid.cjs.map +2 -2
  303. package/dist/components/grid/Grid.d.cts.map +1 -1
  304. package/dist/components/grid/Grid.d.mts.map +1 -1
  305. package/dist/components/grid/Grid.d.ts.map +1 -1
  306. package/dist/components/grid/Grid.js +24 -35
  307. package/dist/components/grid/Grid.js.map +2 -2
  308. package/dist/components/heading/Heading.cjs +1 -8
  309. package/dist/components/heading/Heading.cjs.map +2 -2
  310. package/dist/components/heading/Heading.d.cts.map +1 -1
  311. package/dist/components/heading/Heading.d.mts.map +1 -1
  312. package/dist/components/heading/Heading.d.ts.map +1 -1
  313. package/dist/components/heading/Heading.js +1 -8
  314. package/dist/components/heading/Heading.js.map +2 -2
  315. package/dist/components/heading/heading.props.cjs +9 -9
  316. package/dist/components/heading/heading.props.cjs.map +2 -2
  317. package/dist/components/heading/heading.props.d.cts +42 -43
  318. package/dist/components/heading/heading.props.d.cts.map +1 -1
  319. package/dist/components/heading/heading.props.d.mts +42 -43
  320. package/dist/components/heading/heading.props.d.mts.map +1 -1
  321. package/dist/components/heading/heading.props.d.ts +42 -43
  322. package/dist/components/heading/heading.props.d.ts.map +1 -1
  323. package/dist/components/heading/heading.props.js +9 -9
  324. package/dist/components/heading/heading.props.js.map +2 -2
  325. package/dist/components/heading.css +127 -104
  326. package/dist/components/hover-card.css +5 -2
  327. package/dist/components/icon/Icon.cjs +28 -2
  328. package/dist/components/icon/Icon.cjs.map +2 -2
  329. package/dist/components/icon/Icon.d.cts +33 -1
  330. package/dist/components/icon/Icon.d.cts.map +1 -1
  331. package/dist/components/icon/Icon.d.mts +33 -1
  332. package/dist/components/icon/Icon.d.mts.map +1 -1
  333. package/dist/components/icon/Icon.d.ts +33 -1
  334. package/dist/components/icon/Icon.d.ts.map +1 -1
  335. package/dist/components/icon/Icon.js +37 -2
  336. package/dist/components/icon/Icon.js.map +2 -2
  337. package/dist/components/icon/icons.cjs +18 -0
  338. package/dist/components/icon/icons.cjs.map +2 -2
  339. package/dist/components/icon/icons.d.cts +45 -0
  340. package/dist/components/icon/icons.d.cts.map +1 -1
  341. package/dist/components/icon/icons.d.mts +45 -0
  342. package/dist/components/icon/icons.d.mts.map +1 -1
  343. package/dist/components/icon/icons.d.ts +45 -0
  344. package/dist/components/icon/icons.d.ts.map +1 -1
  345. package/dist/components/icon/icons.js +18 -0
  346. package/dist/components/icon/icons.js.map +2 -2
  347. package/dist/components/icon-button.css +29 -0
  348. package/dist/components/index.cjs +2 -1
  349. package/dist/components/index.cjs.map +2 -2
  350. package/dist/components/index.d.cts +2 -1
  351. package/dist/components/index.d.cts.map +1 -1
  352. package/dist/components/index.d.mts +2 -1
  353. package/dist/components/index.d.mts.map +1 -1
  354. package/dist/components/index.d.ts +2 -1
  355. package/dist/components/index.d.ts.map +1 -1
  356. package/dist/components/index.js +2 -1
  357. package/dist/components/index.js.map +2 -2
  358. package/dist/components/item/Item.cjs +1 -1
  359. package/dist/components/item/Item.cjs.map +2 -2
  360. package/dist/components/item/Item.js +1 -1
  361. package/dist/components/item/Item.js.map +2 -2
  362. package/dist/components/item.css +12 -1
  363. package/dist/components/label.css +3 -0
  364. package/dist/components/link.css +33 -97
  365. package/dist/components/marquee/Marquee.cjs +1 -1
  366. package/dist/components/marquee/Marquee.cjs.map +2 -2
  367. package/dist/components/marquee/Marquee.js +1 -1
  368. package/dist/components/marquee/Marquee.js.map +2 -2
  369. package/dist/components/marquee.css +6 -0
  370. package/dist/components/menu/Menu.cjs +3 -1
  371. package/dist/components/menu/Menu.cjs.map +2 -2
  372. package/dist/components/menu/Menu.d.cts.map +1 -1
  373. package/dist/components/menu/Menu.d.mts.map +1 -1
  374. package/dist/components/menu/Menu.d.ts.map +1 -1
  375. package/dist/components/menu/Menu.js +3 -1
  376. package/dist/components/menu/Menu.js.map +2 -2
  377. package/dist/components/menubar.css +1 -1
  378. package/dist/components/metric.css +5 -0
  379. package/dist/components/notification-center.css +49 -9
  380. package/dist/components/notificationCenter/NotificationCenter.cjs +21 -16
  381. package/dist/components/notificationCenter/NotificationCenter.cjs.map +2 -2
  382. package/dist/components/notificationCenter/NotificationCenter.d.cts.map +1 -1
  383. package/dist/components/notificationCenter/NotificationCenter.d.mts.map +1 -1
  384. package/dist/components/notificationCenter/NotificationCenter.d.ts.map +1 -1
  385. package/dist/components/notificationCenter/NotificationCenter.js +22 -17
  386. package/dist/components/notificationCenter/NotificationCenter.js.map +2 -2
  387. package/dist/components/pagination/Pagination.cjs +143 -17
  388. package/dist/components/pagination/Pagination.cjs.map +2 -2
  389. package/dist/components/pagination/Pagination.d.cts +64 -4
  390. package/dist/components/pagination/Pagination.d.cts.map +1 -1
  391. package/dist/components/pagination/Pagination.d.mts +64 -4
  392. package/dist/components/pagination/Pagination.d.mts.map +1 -1
  393. package/dist/components/pagination/Pagination.d.ts +64 -4
  394. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  395. package/dist/components/pagination/Pagination.js +143 -17
  396. package/dist/components/pagination/Pagination.js.map +2 -2
  397. package/dist/components/pagination.css +50 -8
  398. package/dist/components/phoneInput/PhoneInput.cjs +18 -13
  399. package/dist/components/phoneInput/PhoneInput.cjs.map +2 -2
  400. package/dist/components/phoneInput/PhoneInput.d.cts.map +1 -1
  401. package/dist/components/phoneInput/PhoneInput.d.mts.map +1 -1
  402. package/dist/components/phoneInput/PhoneInput.d.ts.map +1 -1
  403. package/dist/components/phoneInput/PhoneInput.js +19 -14
  404. package/dist/components/phoneInput/PhoneInput.js.map +2 -2
  405. package/dist/components/pills/Pills.cjs +1 -1
  406. package/dist/components/pills/Pills.cjs.map +2 -2
  407. package/dist/components/pills/Pills.js +2 -2
  408. package/dist/components/pills/Pills.js.map +2 -2
  409. package/dist/components/pills.css +6 -0
  410. package/dist/components/popover/Popover.cjs +2 -1
  411. package/dist/components/popover/Popover.cjs.map +2 -2
  412. package/dist/components/popover/Popover.d.cts.map +1 -1
  413. package/dist/components/popover/Popover.d.mts.map +1 -1
  414. package/dist/components/popover/Popover.d.ts.map +1 -1
  415. package/dist/components/popover/Popover.js +2 -1
  416. package/dist/components/popover/Popover.js.map +2 -2
  417. package/dist/components/popover.css +45 -6
  418. package/dist/components/prose.css +4 -4
  419. package/dist/components/qr-code.css +10 -17
  420. package/dist/components/qrCode/QrCode.cjs +14 -11
  421. package/dist/components/qrCode/QrCode.cjs.map +2 -2
  422. package/dist/components/qrCode/QrCode.d.cts.map +1 -1
  423. package/dist/components/qrCode/QrCode.d.mts.map +1 -1
  424. package/dist/components/qrCode/QrCode.d.ts.map +1 -1
  425. package/dist/components/qrCode/QrCode.js +14 -11
  426. package/dist/components/qrCode/QrCode.js.map +2 -2
  427. package/dist/components/radio-group.css +19 -0
  428. package/dist/components/radioGroup/RadioGroup.cjs +3 -2
  429. package/dist/components/radioGroup/RadioGroup.cjs.map +2 -2
  430. package/dist/components/radioGroup/RadioGroup.d.cts.map +1 -1
  431. package/dist/components/radioGroup/RadioGroup.d.mts.map +1 -1
  432. package/dist/components/radioGroup/RadioGroup.d.ts.map +1 -1
  433. package/dist/components/radioGroup/RadioGroup.js +3 -2
  434. package/dist/components/radioGroup/RadioGroup.js.map +2 -2
  435. package/dist/components/radioGroup/radioGroup.props.cjs +1 -1
  436. package/dist/components/radioGroup/radioGroup.props.cjs.map +2 -2
  437. package/dist/components/radioGroup/radioGroup.props.d.cts +1 -1
  438. package/dist/components/radioGroup/radioGroup.props.d.mts +1 -1
  439. package/dist/components/radioGroup/radioGroup.props.d.ts +1 -1
  440. package/dist/components/radioGroup/radioGroup.props.js +1 -1
  441. package/dist/components/radioGroup/radioGroup.props.js.map +2 -2
  442. package/dist/components/rating.css +12 -0
  443. package/dist/components/resizable.css +20 -4
  444. package/dist/components/result.css +2 -1
  445. package/dist/components/rich-text-editor.css +50 -14
  446. package/dist/components/richTextEditor/EditorTools.cjs +226 -0
  447. package/dist/components/richTextEditor/EditorTools.cjs.map +7 -0
  448. package/dist/components/richTextEditor/EditorTools.d.cts +22 -0
  449. package/dist/components/richTextEditor/EditorTools.d.cts.map +1 -0
  450. package/dist/components/richTextEditor/EditorTools.d.mts +22 -0
  451. package/dist/components/richTextEditor/EditorTools.d.mts.map +1 -0
  452. package/dist/components/richTextEditor/EditorTools.d.ts +22 -0
  453. package/dist/components/richTextEditor/EditorTools.d.ts.map +1 -0
  454. package/dist/components/richTextEditor/EditorTools.js +196 -0
  455. package/dist/components/richTextEditor/EditorTools.js.map +7 -0
  456. package/dist/components/richTextEditor/MentionSuggestions.cjs +96 -0
  457. package/dist/components/richTextEditor/MentionSuggestions.cjs.map +7 -0
  458. package/dist/components/richTextEditor/MentionSuggestions.d.cts +7 -0
  459. package/dist/components/richTextEditor/MentionSuggestions.d.cts.map +1 -0
  460. package/dist/components/richTextEditor/MentionSuggestions.d.mts +7 -0
  461. package/dist/components/richTextEditor/MentionSuggestions.d.mts.map +1 -0
  462. package/dist/components/richTextEditor/MentionSuggestions.d.ts +7 -0
  463. package/dist/components/richTextEditor/MentionSuggestions.d.ts.map +1 -0
  464. package/dist/components/richTextEditor/MentionSuggestions.js +66 -0
  465. package/dist/components/richTextEditor/MentionSuggestions.js.map +7 -0
  466. package/dist/components/richTextEditor/RichTextEditor.cjs +63 -208
  467. package/dist/components/richTextEditor/RichTextEditor.cjs.map +3 -3
  468. package/dist/components/richTextEditor/RichTextEditor.d.cts +17 -7
  469. package/dist/components/richTextEditor/RichTextEditor.d.cts.map +1 -1
  470. package/dist/components/richTextEditor/RichTextEditor.d.mts +17 -7
  471. package/dist/components/richTextEditor/RichTextEditor.d.mts.map +1 -1
  472. package/dist/components/richTextEditor/RichTextEditor.d.ts +17 -7
  473. package/dist/components/richTextEditor/RichTextEditor.d.ts.map +1 -1
  474. package/dist/components/richTextEditor/RichTextEditor.js +63 -208
  475. package/dist/components/richTextEditor/RichTextEditor.js.map +3 -3
  476. package/dist/components/richTextEditor/editorTokens.cjs +75 -0
  477. package/dist/components/richTextEditor/editorTokens.cjs.map +7 -0
  478. package/dist/components/richTextEditor/editorTokens.d.cts +21 -0
  479. package/dist/components/richTextEditor/editorTokens.d.cts.map +1 -0
  480. package/dist/components/richTextEditor/editorTokens.d.mts +21 -0
  481. package/dist/components/richTextEditor/editorTokens.d.mts.map +1 -0
  482. package/dist/components/richTextEditor/editorTokens.d.ts +21 -0
  483. package/dist/components/richTextEditor/editorTokens.d.ts.map +1 -0
  484. package/dist/components/richTextEditor/editorTokens.js +55 -0
  485. package/dist/components/richTextEditor/editorTokens.js.map +7 -0
  486. package/dist/components/scroll-area.css +12 -0
  487. package/dist/components/scrollArea/ScrollArea.cjs +12 -1
  488. package/dist/components/scrollArea/ScrollArea.cjs.map +2 -2
  489. package/dist/components/scrollArea/ScrollArea.d.cts.map +1 -1
  490. package/dist/components/scrollArea/ScrollArea.d.mts.map +1 -1
  491. package/dist/components/scrollArea/ScrollArea.d.ts.map +1 -1
  492. package/dist/components/scrollArea/ScrollArea.js +12 -1
  493. package/dist/components/scrollArea/ScrollArea.js.map +2 -2
  494. package/dist/components/segmented-control.css +80 -4
  495. package/dist/components/segmentedControl/SegmentedControl.cjs +18 -5
  496. package/dist/components/segmentedControl/SegmentedControl.cjs.map +2 -2
  497. package/dist/components/segmentedControl/SegmentedControl.d.cts.map +1 -1
  498. package/dist/components/segmentedControl/SegmentedControl.d.mts.map +1 -1
  499. package/dist/components/segmentedControl/SegmentedControl.d.ts.map +1 -1
  500. package/dist/components/segmentedControl/SegmentedControl.js +18 -5
  501. package/dist/components/segmentedControl/SegmentedControl.js.map +2 -2
  502. package/dist/components/segmentedControl/segmentedControl.props.cjs +10 -0
  503. package/dist/components/segmentedControl/segmentedControl.props.cjs.map +2 -2
  504. package/dist/components/segmentedControl/segmentedControl.props.d.cts +9 -0
  505. package/dist/components/segmentedControl/segmentedControl.props.d.cts.map +1 -1
  506. package/dist/components/segmentedControl/segmentedControl.props.d.mts +9 -0
  507. package/dist/components/segmentedControl/segmentedControl.props.d.mts.map +1 -1
  508. package/dist/components/segmentedControl/segmentedControl.props.d.ts +9 -0
  509. package/dist/components/segmentedControl/segmentedControl.props.d.ts.map +1 -1
  510. package/dist/components/segmentedControl/segmentedControl.props.js +10 -0
  511. package/dist/components/segmentedControl/segmentedControl.props.js.map +2 -2
  512. package/dist/components/select/Select.cjs +3 -1
  513. package/dist/components/select/Select.cjs.map +2 -2
  514. package/dist/components/select/Select.d.cts.map +1 -1
  515. package/dist/components/select/Select.d.mts.map +1 -1
  516. package/dist/components/select/Select.d.ts.map +1 -1
  517. package/dist/components/select/Select.js +3 -1
  518. package/dist/components/select/Select.js.map +2 -2
  519. package/dist/components/select.css +1 -1
  520. package/dist/components/separator.css +3 -9
  521. package/dist/components/sidebar/Sidebar.cjs +12 -4
  522. package/dist/components/sidebar/Sidebar.cjs.map +2 -2
  523. package/dist/components/sidebar/Sidebar.d.cts +4 -1
  524. package/dist/components/sidebar/Sidebar.d.cts.map +1 -1
  525. package/dist/components/sidebar/Sidebar.d.mts +4 -1
  526. package/dist/components/sidebar/Sidebar.d.mts.map +1 -1
  527. package/dist/components/sidebar/Sidebar.d.ts +4 -1
  528. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  529. package/dist/components/sidebar/Sidebar.js +12 -4
  530. package/dist/components/sidebar/Sidebar.js.map +2 -2
  531. package/dist/components/sidebar/sidebar.props.cjs +8 -1
  532. package/dist/components/sidebar/sidebar.props.cjs.map +2 -2
  533. package/dist/components/sidebar/sidebar.props.d.cts +9 -1
  534. package/dist/components/sidebar/sidebar.props.d.cts.map +1 -1
  535. package/dist/components/sidebar/sidebar.props.d.mts +9 -1
  536. package/dist/components/sidebar/sidebar.props.d.mts.map +1 -1
  537. package/dist/components/sidebar/sidebar.props.d.ts +9 -1
  538. package/dist/components/sidebar/sidebar.props.d.ts.map +1 -1
  539. package/dist/components/sidebar/sidebar.props.js +8 -1
  540. package/dist/components/sidebar/sidebar.props.js.map +2 -2
  541. package/dist/components/sidebar.css +28 -0
  542. package/dist/components/sonner.css +79 -17
  543. package/dist/components/sortableList/SortableList.cjs +8 -2
  544. package/dist/components/sortableList/SortableList.cjs.map +2 -2
  545. package/dist/components/sortableList/SortableList.d.cts.map +1 -1
  546. package/dist/components/sortableList/SortableList.d.mts.map +1 -1
  547. package/dist/components/sortableList/SortableList.d.ts.map +1 -1
  548. package/dist/components/sortableList/SortableList.js +8 -2
  549. package/dist/components/sortableList/SortableList.js.map +2 -2
  550. package/dist/components/stat-card.css +2 -0
  551. package/dist/components/stepper.css +23 -12
  552. package/dist/components/tab-nav.css +25 -13
  553. package/dist/components/tabNav/TabNav.cjs +1 -4
  554. package/dist/components/tabNav/TabNav.cjs.map +2 -2
  555. package/dist/components/tabNav/TabNav.d.cts.map +1 -1
  556. package/dist/components/tabNav/TabNav.d.mts.map +1 -1
  557. package/dist/components/tabNav/TabNav.d.ts.map +1 -1
  558. package/dist/components/tabNav/TabNav.js +1 -4
  559. package/dist/components/tabNav/TabNav.js.map +2 -2
  560. package/dist/components/table/Table.cjs +3 -2
  561. package/dist/components/table/Table.cjs.map +2 -2
  562. package/dist/components/table/Table.d.cts.map +1 -1
  563. package/dist/components/table/Table.d.mts.map +1 -1
  564. package/dist/components/table/Table.d.ts.map +1 -1
  565. package/dist/components/table/Table.js +3 -2
  566. package/dist/components/table/Table.js.map +2 -2
  567. package/dist/components/table/table.props.cjs +6 -0
  568. package/dist/components/table/table.props.cjs.map +2 -2
  569. package/dist/components/table/table.props.d.cts +5 -0
  570. package/dist/components/table/table.props.d.cts.map +1 -1
  571. package/dist/components/table/table.props.d.mts +5 -0
  572. package/dist/components/table/table.props.d.mts.map +1 -1
  573. package/dist/components/table/table.props.d.ts +5 -0
  574. package/dist/components/table/table.props.d.ts.map +1 -1
  575. package/dist/components/table/table.props.js +6 -0
  576. package/dist/components/table/table.props.js.map +2 -2
  577. package/dist/components/table-of-contents.css +12 -2
  578. package/dist/components/table.css +20 -13
  579. package/dist/components/tableOfContents/TableOfContents.cjs +11 -4
  580. package/dist/components/tableOfContents/TableOfContents.cjs.map +2 -2
  581. package/dist/components/tableOfContents/TableOfContents.d.cts.map +1 -1
  582. package/dist/components/tableOfContents/TableOfContents.d.mts.map +1 -1
  583. package/dist/components/tableOfContents/TableOfContents.d.ts.map +1 -1
  584. package/dist/components/tableOfContents/TableOfContents.js +11 -4
  585. package/dist/components/tableOfContents/TableOfContents.js.map +2 -2
  586. package/dist/components/tabs/Tabs.cjs +39 -54
  587. package/dist/components/tabs/Tabs.cjs.map +2 -2
  588. package/dist/components/tabs/Tabs.d.cts.map +1 -1
  589. package/dist/components/tabs/Tabs.d.mts.map +1 -1
  590. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  591. package/dist/components/tabs/Tabs.js +39 -54
  592. package/dist/components/tabs/Tabs.js.map +2 -2
  593. package/dist/components/tabs.css +62 -7
  594. package/dist/components/text/text.props.cjs +9 -9
  595. package/dist/components/text/text.props.cjs.map +2 -2
  596. package/dist/components/text/text.props.d.cts +42 -43
  597. package/dist/components/text/text.props.d.cts.map +1 -1
  598. package/dist/components/text/text.props.d.mts +42 -43
  599. package/dist/components/text/text.props.d.mts.map +1 -1
  600. package/dist/components/text/text.props.d.ts +42 -43
  601. package/dist/components/text/text.props.d.ts.map +1 -1
  602. package/dist/components/text/text.props.js +9 -9
  603. package/dist/components/text/text.props.js.map +2 -2
  604. package/dist/components/text/typography.props.cjs +32 -0
  605. package/dist/components/text/typography.props.cjs.map +7 -0
  606. package/dist/components/text/typography.props.d.cts +3 -0
  607. package/dist/components/text/typography.props.d.cts.map +1 -0
  608. package/dist/components/text/typography.props.d.mts +3 -0
  609. package/dist/components/text/typography.props.d.mts.map +1 -0
  610. package/dist/components/text/typography.props.d.ts +3 -0
  611. package/dist/components/text/typography.props.d.ts.map +1 -0
  612. package/dist/components/text/typography.props.js +12 -0
  613. package/dist/components/text/typography.props.js.map +7 -0
  614. package/dist/components/text-field.css +1 -0
  615. package/dist/components/text.css +41 -6
  616. package/dist/components/theme-panel.css +6 -0
  617. package/dist/components/timeline.css +54 -18
  618. package/dist/components/toast/Toast.cjs +3 -1
  619. package/dist/components/toast/Toast.cjs.map +2 -2
  620. package/dist/components/toast/Toast.d.cts.map +1 -1
  621. package/dist/components/toast/Toast.d.mts.map +1 -1
  622. package/dist/components/toast/Toast.d.ts.map +1 -1
  623. package/dist/components/toast/Toast.js +3 -1
  624. package/dist/components/toast/Toast.js.map +2 -2
  625. package/dist/components/toast.css +50 -18
  626. package/dist/components/toggle-group.css +5 -0
  627. package/dist/components/toggle-tip.css +58 -9
  628. package/dist/components/toggleTip/ToggleTip.cjs +9 -5
  629. package/dist/components/toggleTip/ToggleTip.cjs.map +2 -2
  630. package/dist/components/toggleTip/ToggleTip.d.cts.map +1 -1
  631. package/dist/components/toggleTip/ToggleTip.d.mts.map +1 -1
  632. package/dist/components/toggleTip/ToggleTip.d.ts.map +1 -1
  633. package/dist/components/toggleTip/ToggleTip.js +9 -5
  634. package/dist/components/toggleTip/ToggleTip.js.map +2 -2
  635. package/dist/components/toolbar/Toolbar.cjs +10 -7
  636. package/dist/components/toolbar/Toolbar.cjs.map +2 -2
  637. package/dist/components/toolbar/Toolbar.js +10 -7
  638. package/dist/components/toolbar/Toolbar.js.map +2 -2
  639. package/dist/components/toolbar.css +58 -4
  640. package/dist/components/tooltip.css +9 -5
  641. package/dist/components/tree-view.css +17 -3
  642. package/dist/components/treeView/TreeView.cjs +76 -21
  643. package/dist/components/treeView/TreeView.cjs.map +2 -2
  644. package/dist/components/treeView/TreeView.d.cts.map +1 -1
  645. package/dist/components/treeView/TreeView.d.mts.map +1 -1
  646. package/dist/components/treeView/TreeView.d.ts.map +1 -1
  647. package/dist/components/treeView/TreeView.js +76 -21
  648. package/dist/components/treeView/TreeView.js.map +2 -2
  649. package/dist/components.css +2 -2
  650. package/dist/docs/README.md +2 -1
  651. package/dist/docs/component-contract.md +7 -6
  652. package/dist/docs/component-index.json +17 -9
  653. package/dist/docs/components/accordion.md +5 -36
  654. package/dist/docs/components/alert.md +17 -10
  655. package/dist/docs/components/article-nodes.md +59 -2
  656. package/dist/docs/components/aspect-ratio.md +3 -26
  657. package/dist/docs/components/banner.md +152 -0
  658. package/dist/docs/components/blockquote.md +15 -14
  659. package/dist/docs/components/bottom-dock.md +146 -0
  660. package/dist/docs/components/box.md +3 -34
  661. package/dist/docs/components/breadcrumb.md +13 -8
  662. package/dist/docs/components/button-group.md +4 -3
  663. package/dist/docs/components/button.md +2 -2
  664. package/dist/docs/components/callout.md +18 -7
  665. package/dist/docs/components/card.md +10 -2
  666. package/dist/docs/components/carousel.md +55 -32
  667. package/dist/docs/components/chart.md +25 -7
  668. package/dist/docs/components/checkbox.md +4 -0
  669. package/dist/docs/components/code.md +33 -220
  670. package/dist/docs/components/collapsible.md +11 -35
  671. package/dist/docs/components/combobox.md +3 -1
  672. package/dist/docs/components/command.md +4 -2
  673. package/dist/docs/components/comment-thread.md +51 -1
  674. package/dist/docs/components/config-drawer.md +72 -171
  675. package/dist/docs/components/container.md +2 -0
  676. package/dist/docs/components/context-menu.md +19 -5
  677. package/dist/docs/components/copy-field.md +2 -2
  678. package/dist/docs/components/data-list.md +15 -3
  679. package/dist/docs/components/data-table.md +98 -17
  680. package/dist/docs/components/dialog.md +7 -1
  681. package/dist/docs/components/drawer.md +17 -6
  682. package/dist/docs/components/dropdown-menu.md +13 -3
  683. package/dist/docs/components/em.md +1 -1
  684. package/dist/docs/components/empty-state.md +3 -1
  685. package/dist/docs/components/file-upload.md +14 -7
  686. package/dist/docs/components/filter-bar.md +193 -8
  687. package/dist/docs/components/floating-panel.md +79 -285
  688. package/dist/docs/components/form.md +4 -0
  689. package/dist/docs/components/grid.md +11 -60
  690. package/dist/docs/components/heading.md +35 -32
  691. package/dist/docs/components/hover-card.md +9 -1
  692. package/dist/docs/components/icon-button.md +4 -1
  693. package/dist/docs/components/item.md +18 -13
  694. package/dist/docs/components/kbd.md +2 -0
  695. package/dist/docs/components/label.md +11 -9
  696. package/dist/docs/components/link.md +31 -209
  697. package/dist/docs/components/marquee.md +2 -2
  698. package/dist/docs/components/menu.md +4 -1
  699. package/dist/docs/components/metric.md +4 -1
  700. package/dist/docs/components/notification-center.md +24 -14
  701. package/dist/docs/components/page-header.md +2 -0
  702. package/dist/docs/components/pagination.md +92 -17
  703. package/dist/docs/components/pills.md +13 -4
  704. package/dist/docs/components/popover.md +12 -3
  705. package/dist/docs/components/prose.md +14 -1
  706. package/dist/docs/components/qr-code.md +25 -24
  707. package/dist/docs/components/quote.md +9 -4
  708. package/dist/docs/components/radio-group.md +5 -2
  709. package/dist/docs/components/rating.md +2 -0
  710. package/dist/docs/components/resizable.md +26 -18
  711. package/dist/docs/components/result.md +6 -0
  712. package/dist/docs/components/rich-text-editor.md +68 -18
  713. package/dist/docs/components/scroll-area.md +17 -9
  714. package/dist/docs/components/section.md +3 -38
  715. package/dist/docs/components/segmented-control.md +8 -3
  716. package/dist/docs/components/segmented-meter.md +9 -0
  717. package/dist/docs/components/select.md +3 -2
  718. package/dist/docs/components/separator.md +10 -46
  719. package/dist/docs/components/sidebar.md +20 -4
  720. package/dist/docs/components/sonner.md +26 -17
  721. package/dist/docs/components/sortable-list.md +2 -0
  722. package/dist/docs/components/stat-card.md +5 -4
  723. package/dist/docs/components/stepper.md +8 -32
  724. package/dist/docs/components/strong.md +1 -1
  725. package/dist/docs/components/tab-nav.md +33 -96
  726. package/dist/docs/components/table-of-contents.md +8 -2
  727. package/dist/docs/components/table.md +14 -5
  728. package/dist/docs/components/tabs.md +19 -50
  729. package/dist/docs/components/tag.md +4 -2
  730. package/dist/docs/components/text-field.md +1 -0
  731. package/dist/docs/components/text.md +34 -28
  732. package/dist/docs/components/theme-panel.md +3 -28
  733. package/dist/docs/components/theme.md +7 -3
  734. package/dist/docs/components/timeline.md +9 -5
  735. package/dist/docs/components/toast.md +28 -14
  736. package/dist/docs/components/toggle-group.md +2 -1
  737. package/dist/docs/components/toggle-tip.md +58 -241
  738. package/dist/docs/components/toolbar.md +16 -39
  739. package/dist/docs/components/tooltip.md +13 -7
  740. package/dist/docs/components/tree-view.md +22 -55
  741. package/dist/fonts.css +1 -1
  742. package/dist/generated/tokens.cjs +2 -1
  743. package/dist/generated/tokens.cjs.map +2 -2
  744. package/dist/generated/tokens.d.cts.map +1 -1
  745. package/dist/generated/tokens.d.mts.map +1 -1
  746. package/dist/generated/tokens.d.ts.map +1 -1
  747. package/dist/generated/tokens.js +2 -1
  748. package/dist/generated/tokens.js.map +2 -2
  749. package/dist/motion.css +18 -3
  750. package/dist/styles.css +3045 -1756
  751. package/dist/tokens.css +349 -361
  752. package/package.json +1 -1
  753. package/dist/components/control-group.css +0 -142
  754. package/dist/components/controlGroup/ControlGroup.cjs.map +0 -7
  755. package/dist/components/controlGroup/ControlGroup.d.cts +0 -16
  756. package/dist/components/controlGroup/ControlGroup.d.cts.map +0 -1
  757. package/dist/components/controlGroup/ControlGroup.d.mts +0 -16
  758. package/dist/components/controlGroup/ControlGroup.d.mts.map +0 -1
  759. package/dist/components/controlGroup/ControlGroup.d.ts +0 -16
  760. package/dist/components/controlGroup/ControlGroup.d.ts.map +0 -1
  761. package/dist/components/controlGroup/ControlGroup.js +0 -26
  762. package/dist/components/controlGroup/ControlGroup.js.map +0 -7
  763. package/dist/components/controlGroup/controlGroup.props.cjs.map +0 -7
  764. package/dist/components/controlGroup/controlGroup.props.d.cts +0 -18
  765. package/dist/components/controlGroup/controlGroup.props.d.cts.map +0 -1
  766. package/dist/components/controlGroup/controlGroup.props.d.mts +0 -18
  767. package/dist/components/controlGroup/controlGroup.props.d.mts.map +0 -1
  768. package/dist/components/controlGroup/controlGroup.props.d.ts +0 -18
  769. package/dist/components/controlGroup/controlGroup.props.d.ts.map +0 -1
  770. package/dist/components/controlGroup/controlGroup.props.js +0 -20
  771. package/dist/components/controlGroup/controlGroup.props.js.map +0 -7
  772. package/dist/docs/components/control-group.md +0 -261
@@ -17,25 +17,25 @@ A resizable panel group with draggable handles. The package owns the shell, the
17
17
 
18
18
  ## Anatomy & slots
19
19
 
20
- **Parent:** `Resizable` (alias of `Resizable.PanelGroup`).
20
+ **Parent:** `Resizable` (alias of `ResizablePanelGroup`).
21
21
 
22
22
  **Slots:**
23
23
 
24
24
  | Slot | Element | Renders | Notes |
25
25
  |---|---|---|---|
26
- | `Resizable.PanelGroup` (alias `Resizable`) | `<div>` (the `Group` from `react-resizable-panels`) | `dsx-resizable-group` | Hosts the orientation attribute and the panel layout. Carries `data-orientation` and `data-slot="resizable-group"`. |
26
+ | `ResizablePanelGroup` (alias `Resizable`) | `<div>` (the `Group` from `react-resizable-panels`) | `dsx-resizable-group` | Hosts the orientation attribute and the panel layout. Carries `data-orientation` and `data-slot="resizable-group"`. |
27
27
  | `Resizable.Panel` | `<div>` (the `Panel` from `react-resizable-panels`) | `dsx-resizable-panel` | One resizable child. Carries `data-slot="resizable-panel"`. |
28
28
  | `Resizable.Handle` | `<div>` (the `Separator` from `react-resizable-panels`) | `dsx-resizable-handle` | The draggable separator between two panels. Carries `data-slot="resizable-handle"` and `data-grip="true"` when `withGrip` is set. When `withGrip` is set, a child `<div>` with `dsx-resizable-handle__grip` is rendered. |
29
29
 
30
30
  **Adapter host:**
31
31
 
32
- `Resizable.PanelGroup` wraps the `Group` from `react-resizable-panels`. The package translates the DS `direction` prop (`'horizontal'` or `'vertical'`) into the adapter's `orientation` prop. The package also passes `elementRef` through `composeRefs` so the `forwardRef` and any app-supplied ref both see the host element.
32
+ `ResizablePanelGroup` wraps the `Group` from `react-resizable-panels`. The package translates the DS `direction` prop (`'horizontal'` or `'vertical'`) into the adapter's `orientation` prop. The package also passes `elementRef` through `composeRefs` so the `forwardRef` and any app-supplied ref both see the host element.
33
33
 
34
34
  `Resizable.Handle` wraps the `Separator` from `react-resizable-panels`. `withGrip` adds a visual grip indicator inside the handle; the adapter still owns the drag interaction and the keyboard arrow support.
35
35
 
36
36
  ## Props contract
37
37
 
38
- ### `Resizable.PanelGroup` props
38
+ ### `ResizablePanelGroup` props
39
39
 
40
40
  | Prop | Type | Default | Required | Description | Responsive |
41
41
  |---|---|---|---|---|---|
@@ -43,7 +43,7 @@ A resizable panel group with draggable handles. The package owns the shell, the
43
43
  | `direction` | `'horizontal' \| 'vertical'` | `'horizontal'` | no | Drives `data-orientation` on the group. Mapped to the adapter's `orientation` prop. The CSS file uses the inline `[data-orientation='…']` selectors and the modifier `dsx-resizable-group-direction-horizontal` / `dsx-resizable-group-direction-vertical` class. | no |
44
44
  | `className` | `string` | `undefined` | no | Extra classes appended to `dsx-resizable-group`. | no |
45
45
 
46
- The group also accepts the full `GroupProps` from `react-resizable-panels` minus `orientation` (which is replaced by the DS `direction` prop) and `elementRef` (which the package routes through `composeRefs`). `autoSaveId`, `id`, `onLayout`, `storage`, `defaultLayout`, and `keyboardResizeBy` are forwarded verbatim.
46
+ The group also accepts the full `GroupProps` from `react-resizable-panels` minus `orientation` (which is replaced by the DS `direction` prop) and `elementRef` (which the package routes through `composeRefs`). `id`, `defaultLayout`, `onLayoutChange`, `onLayoutChanged`, `disabled`, `groupRef` and `resizeTargetMinimumSize` follow the installed v4 adapter contract. Persistence belongs to the app; v3-only props are not promised.
47
47
 
48
48
  ### `Resizable.Panel` props
49
49
 
@@ -52,7 +52,7 @@ The group also accepts the full `GroupProps` from `react-resizable-panels` minus
52
52
  | `asChild` | `boolean` | `false` | no | Extracted from prop defs but the `Panel` host always renders a `<div>`. The prop is reserved for future use. | no |
53
53
  | `className` | `string` | `undefined` | no | Extra classes appended to `dsx-resizable-panel`. | no |
54
54
 
55
- The panel also accepts the full `PanelProps` from `react-resizable-panels` minus `elementRef`. `defaultSize`, `minSize`, `maxSize`, `collapsible`, `collapsedSize`, `onCollapse`, `onExpand`, `onResize`, `id`, `order`, and `ref` are forwarded verbatim.
55
+ The panel also accepts the full `PanelProps` from `react-resizable-panels` minus `elementRef`. `defaultSize`, `minSize`, `maxSize`, `collapsible`, `collapsedSize`, `onResize`, `id`, `panelRef` and `groupResizeBehavior` follow the installed v4 adapter contract. Use explicit percentage strings such as "50%"; numeric sizes represent pixels.
56
56
 
57
57
  ### `Resizable.Handle` props
58
58
 
@@ -62,7 +62,7 @@ The panel also accepts the full `PanelProps` from `react-resizable-panels` minus
62
62
  | `withGrip` | `boolean` | `false` | no | When `true`, renders a `dsx-resizable-handle__grip` indicator inside the handle and sets `data-grip="true"`. The CSS file uses the `data-grip` attribute and the `dsx-resizable-handle-grip` modifier class to color the indicator. | no |
63
63
  | `className` | `string` | `undefined` | no | Extra classes appended to `dsx-resizable-handle`. | no |
64
64
 
65
- The handle also accepts the full `SeparatorProps` from `react-resizable-panels` minus `elementRef` and `withGrip`. `id`, `disabled`, `hitAreaMargins`, and the adapter drag attributes are forwarded verbatim.
65
+ The handle also accepts the full `SeparatorProps` from `react-resizable-panels` minus `elementRef` and `withGrip`. `id`, `disabled` and native attributes follow SeparatorProps. Group resizeTargetMinimumSize controls adapter hit geometry; v3 hitAreaMargins is not promised.
66
66
 
67
67
  ## CSS class contract
68
68
 
@@ -96,12 +96,12 @@ The handle also accepts the full `SeparatorProps` from `react-resizable-panels`
96
96
 
97
97
  **Responsive behavior:**
98
98
 
99
- - The component does not write `@media` rules. None of its prop defs are `responsive: true`.
99
+ - The component has no viewport-width media rules. None of its prop defs are `responsive: true`.
100
100
  - The component's CSS file is breakpoint-agnostic.
101
101
 
102
102
  **Reduced motion:**
103
103
 
104
- - The handle background and the grip indicator transitions use `var(--dsx-motion-duration-fast)` and `var(--dsx-motion-easing-standard)`. The CSS file does not include a `prefers-reduced-motion` gate; the global stylesheet is expected to honor the media query. The adapter's drag interaction is layout-only and does not animate.
104
+ - The handle background and the grip indicator transitions use `var(--dsx-motion-duration-fast)` and `var(--dsx-motion-easing-standard)`. Its own `prefers-reduced-motion` gate disables handle and track transitions. The adapter's drag interaction is layout-only and does not animate.
105
105
 
106
106
  ## Token mapping
107
107
 
@@ -119,7 +119,7 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
119
119
  | Handle active background | `var(--dsx-color-high-contrast-container)` | Active affordance. |
120
120
  | Handle cursor | `col-resize` (horizontal), `row-resize` (vertical) | Cursor. |
121
121
  | Handle touch action | `none` | Prevent browser scroll on touch. |
122
- | Handle thickness | `var(--dsx-resizable-handle-thickness-active)` | Visible thickness. |
122
+ | Handle thickness | `max(var(--dsx-size-md), var(--dsx-resizable-handle-thickness-active))` | Actual hit box, at least 24px; the painted line stays thin. |
123
123
  | Handle track | `var(--dsx-border-width-md, var(--dsx-resizable-handle-thickness))` | Inactive track thickness. |
124
124
  | Handle track color | `var(--dsx-control-separator-color-strong)` | Track color. |
125
125
  | Handle track hover color | `var(--dsx-color-high-contrast)` | Hover color. |
@@ -127,6 +127,7 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
127
127
  | Grip width | `var(--dsx-resizable-grip-width)` | Grip indicator width. |
128
128
  | Grip height | `var(--dsx-resizable-grip-height)` | Grip indicator height. |
129
129
  | Grip radius | `var(--dsx-resizable-grip-radius)` | Grip indicator roundness. |
130
+ | Handle z-index | `var(--dsx-z-index-elevated)` | Preserve the entire target above pane content. |
130
131
  | Grip z-index | `var(--dsx-z-index-elevated)` | Grip stack order. |
131
132
  | Grip horizontal size | `var(--dsx-space-xs)` × `var(--dsx-size-xs)` | Horizontal handle grip dimensions. |
132
133
  | Grip vertical size | `var(--dsx-size-xs)` × `var(--dsx-space-xs)` | Vertical handle grip dimensions. |
@@ -136,8 +137,8 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
136
137
 
137
138
  | Region | Token | Default | Reduced |
138
139
  |---|---|---|---|
139
- | Handle background | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Hover and active background transition. | Relies on the global `prefers-reduced-motion` stylesheet. |
140
- | Handle track and grip | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Track color, grip background, and transform transition. | Relies on the global `prefers-reduced-motion` stylesheet. |
140
+ | Handle background | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Hover and active background transition. | Own CSS disables handle transitions under prefers-reduced-motion. |
141
+ | Handle track and grip | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Track color, grip background, and transform transition. | Own CSS disables handle transitions under prefers-reduced-motion. |
141
142
 
142
143
  ## Accessibility
143
144
 
@@ -152,20 +153,20 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
152
153
  |---|---|
153
154
  | `Tab` | Moves focus to the next focusable element. The handle is focusable by default. |
154
155
  | `Enter`, `Space` | Toggles the panel state when the handle supports collapsing. |
155
- | `Arrow keys` | The adapter handles arrow-key resize by the `keyboardResizeBy` step. |
156
+ | `Arrow keys` | The installed v4 adapter handles arrow-key resizing. |
156
157
  | `Home`, `End` | The adapter collapses or expands the panel to its minimum or maximum size when supported. |
157
158
 
158
159
  **Focus:**
159
160
 
160
- - The handle receives a visible focus ring via the browser default for `[role="separator"]` plus the global focus stylesheet. The DS does not add a custom ring; apps that need a custom ring can target `[role="separator"]:focus-visible` from the host.
161
+ - The DS paints `var(--dsx-shadow-focus-ring)` on `.dsx-resizable-handle:focus-visible`. The handle stays above adjacent pane content so its full target receives input.
161
162
 
162
163
  **Reduced motion:**
163
164
 
164
- - The handle transitions collapse under the global `prefers-reduced-motion` stylesheet. The drag interaction is layout-only and does not animate.
165
+ - The handle and track transitions are disabled by their own `prefers-reduced-motion` rules. The drag interaction is layout-only and does not animate.
165
166
 
166
167
  **Color and meaning:**
167
168
 
168
- - The handle and the grip use semantic tokens (`var(--dsx-color-high-contrast-container)` and `var(--dsx-color-on-surface-variant)`) so light and dark themes are covered. The track thickness increases from `var(--dsx-resizable-handle-thickness)` to `var(--dsx-resizable-handle-thickness-active)` on hover to communicate the drag affordance.
169
+ - The handle and the grip use semantic tokens (`var(--dsx-color-high-contrast-container)` and `var(--dsx-color-on-surface-variant)`) so light and dark themes are covered. The thin track keeps its thickness on hover; semantic color changes communicate the drag affordance.
169
170
 
170
171
  **Naming:**
171
172
 
@@ -198,6 +199,13 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
198
199
 
199
200
  `withGrip` is wired through the composition story rather than the prop table.
200
201
 
202
+ ## Review examples
203
+
204
+ The horizontal workspace preserves scrollable outline and draft panes, minimum
205
+ 20% panel sizes and a live proportions summary. The vertical example exercises
206
+ its own resize axis. Handles have visible keyboard focus; both directions
207
+ retain a 24px minimum box while the visual divider remains thin.
208
+
201
209
  ## Wiring notes
202
210
 
203
211
  **Composes from:**
@@ -212,8 +220,8 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
212
220
  **State boundaries:**
213
221
 
214
222
  - Owned by this component: the DS shell class wiring, the `direction` to `orientation` translation, the `withGrip` rendering, the `data-orientation` and `data-slot` attributes, and the `composeRefs` helper.
215
- - Owned by the adapter: panel math, drag interaction, keyboard arrow resize, the `autoSaveId` persistence, the percentage bookkeeping, and the `role="separator"` semantics.
216
- - Owned by the consumer: the number of panels, the `defaultSize`, `minSize`, `maxSize`, and `collapsible` configuration, the content of each panel, the `onLayout` callback, and any business policy that wraps the layout state.
223
+ - Owned by the adapter: panel math, drag interaction, keyboard arrow resize, the percentage bookkeeping, and the `role="separator"` semantics.
224
+ - Owned by the consumer: the number of panels, the `defaultSize`, `minSize`, `maxSize`, and `collapsible` configuration, the content of each panel, the adapter layout callbacks, and any business policy that wraps the layout state.
217
225
 
218
226
  **Boundary rules:**
219
227
 
@@ -15,6 +15,8 @@ Canonical outcome and list-state surface. `state` is `success`, `failure`, `expi
15
15
 
16
16
  `Result.Root`, `Result.Icon`, `Result.Title`, `Result.Description`, `Result.Metadata`, `Result.Steps`, and `Result.Actions`. Root class is `dsx-result`; slot classes use `dsx-result__<slot>`. Root writes `data-state` and `data-tone`.
17
17
 
18
+ The root shrinks to the available width, direct children stay within that width, and long titles, descriptions, and identifiers wrap without truncation. Actions wrap intrinsically; no viewport query selects a different layout.
19
+
18
20
  ## Wiring notes
19
21
 
20
22
  `EmptyState` delegates to `Result state="empty"` while preserving its legacy class and props. `DataTable` uses Result for loading, empty, no-results, and error states. Copy, retry behavior, and async work are consumer-owned.
@@ -22,3 +24,7 @@ Canonical outcome and list-state surface. `state` is `success`, `failure`, `expi
22
24
  ## Playground demo spec
23
25
 
24
26
  Show every state, an independently overridden tone, populated slots, and alert/loading semantics.
27
+
28
+ The live playground example switches between all seven states with actual buttons. Each state has contextual copy, a matching illustration or spinner, and an appropriate recovery action. Success shows connection metadata; loading shows steps. Recovery returns to success and Continue opens the empty saved-server state. The compact default example provides an illustration, title, and description.
29
+
30
+ The inline live example uses headline-medium for its title and one outlined Result surface, avoiding compounded Card/Result padding. Short state titles preserve whole-word readability at 320px.
@@ -8,6 +8,7 @@ depends_on:
8
8
  - "@tiptap/starter-kit"
9
9
  - Button
10
10
  - Icon
11
+ - VisuallyHidden
11
12
  ---
12
13
 
13
14
  # RichTextEditor
@@ -51,7 +52,7 @@ The `EditorContent` component from `@tiptap/react` renders inside `RichTextEdito
51
52
  | Region | Element | Class | Notes |
52
53
  |---|---|---|---|
53
54
  | Toolbar group | `<div>` | `dsx-rich-text-editor__toolbar-group` | Groups related toolbar buttons. `role="group"` with `aria-label`. |
54
- | Toolbar label | `<span>` | `dsx-rich-text-editor__toolbar-label` | Group label ("Text", "Blocks", "Insert", "History"). |
55
+ | Optional custom toolbar label | `<span>` | `dsx-rich-text-editor__toolbar-label` | Group label ("Text", "Blocks", "Insert", "History"). |
55
56
  | Status bar | `<div>` | `dsx-rich-text-editor__status` | Shows editor status ("Editor loading", "Ready to write", or character count). `data-slot="rich-text-editor-status"`. |
56
57
  | Placeholder | `<div>` | `dsx-rich-text-editor__placeholder` | Shown when the editor is empty and a placeholder is provided. `data-slot="rich-text-editor-placeholder"`. |
57
58
  | Content host | `EditorContent` | `dsx-rich-text-editor__content` | The Tiptap adapter host. `data-slot="rich-text-editor-content"`. |
@@ -63,7 +64,7 @@ The `EditorContent` component from `@tiptap/react` renders inside `RichTextEdito
63
64
  | Prop | Type | Default | Required | Description | Responsive |
64
65
  |---|---|---|---|---|---|
65
66
  | `asChild` | `boolean` | `false` | no | Extracted from prop defs but not used by the root. The root always renders as a `<div>`. | no |
66
- | `disabled` | `boolean` | `false` | no | Makes the editor non-editable. Drives `data-disabled` and `aria-disabled` on the shell. The CSS file consumes `data-disabled='true'` to change the shell border, background, and text color. | no |
67
+ | `disabled` | `boolean` | `false` | no | Makes the editor non-editable. Drives `data-disabled` and `aria-disabled` on the shell. Changing disabled retains the document and editor instance. The CSS file consumes `data-disabled='true'` to change the shell border, background, and text color. | no |
67
68
  | `content` | `unknown` | `''` | no | Initial or controlled editor content. Accepts `string` (HTML), `object` (JSON), or `null`. Validated by `isRichTextEditorContent`. | no |
68
69
  | `editorOptions` | `Omit<UseEditorOptions, 'content' \| 'editable' \| 'extensions' \| 'onUpdate'>` | `undefined` | no | Escape hatch for `useEditor` options. Merged with the DS-managed options. | no |
69
70
  | `extensions` | `UseEditorOptions['extensions']` | `[StarterKit]` | no | Tiptap extensions. Defaults to `StarterKit`. Apps that need custom schema or extensions pass their own array. | no |
@@ -73,6 +74,11 @@ The `EditorContent` component from `@tiptap/react` renders inside `RichTextEdito
73
74
  | `serialize` | `(editor: Editor) => string` | `undefined` | no | Custom serialization function. When provided, `onUpdate` receives the output of this function instead of `editor.getHTML()`. | no |
74
75
  | `toolbar` | `RichTextEditorToolbarSlot \| null` | `undefined` | no | Controls the toolbar rendering. `undefined` renders the default `RichTextEditor.Toolbar`. A ReactNode renders that node instead. A function receives `{ disabled, editor }` and returns a ReactNode. `null` hides the toolbar. | no |
75
76
  | `className` | `string` | `undefined` | no | Extra classes appended to `dsx-rich-text-editor`. | no |
77
+ | `tools` | `readonly EditorTool[]` | common formatting | no | Visible schema-supported controls. Does not validate document policy. | no |
78
+ | `headingLevels` | `readonly (1..6)[]` | schema levels | no | Levels in the text style menu. | no |
79
+ | `insertItems` | `readonly EditorInsertItem[]` | `[]` | no | Consumer-labelled insertion callbacks. | no |
80
+ | `variables` | `readonly EditorVariable[]` | `undefined` | no | Registry metadata; Root adds key-only atom unless extensions are replaced. | no |
81
+ | `mentions` | `readonly EditorMention[]` | `undefined` | no | User IDs/labels; picker and @ suggestions. Custom schemas add the mention extension. | no |
76
82
 
77
83
  ### `RichTextEditor.Shell` props
78
84
 
@@ -84,6 +90,11 @@ The `EditorContent` component from `@tiptap/react` renders inside `RichTextEdito
84
90
  | `placeholder` | `string` | `undefined` | no | Placeholder text. | no |
85
91
  | `toolbar` | `RichTextEditorToolbarSlot \| null` | `undefined` | no | Toolbar override. Same semantics as `Root`. | no |
86
92
  | `className` | `string` | `undefined` | no | Extra classes. | no |
93
+ | `tools` | `readonly EditorTool[]` | common formatting | no | Visible schema-supported controls. Does not validate document policy. | no |
94
+ | `headingLevels` | `readonly (1..6)[]` | schema levels | no | Levels in the text style menu. | no |
95
+ | `insertItems` | `readonly EditorInsertItem[]` | `[]` | no | Consumer-labelled insertion callbacks. | no |
96
+ | `variables` | `readonly EditorVariable[]` | `undefined` | no | Registry metadata; Root adds key-only atom unless extensions are replaced. | no |
97
+ | `mentions` | `readonly EditorMention[]` | `undefined` | no | User IDs/labels; picker and @ suggestions. Custom schemas add the mention extension. | no |
87
98
 
88
99
  ### `RichTextEditor.Toolbar` props
89
100
 
@@ -92,6 +103,11 @@ The `EditorContent` component from `@tiptap/react` renders inside `RichTextEdito
92
103
  | `editor` | `Editor \| null` | (required) | yes | The Tiptap editor instance. | no |
93
104
  | `disabled` | `boolean` | `false` | no | Disables all toolbar buttons. | no |
94
105
  | `className` | `string` | `undefined` | no | Extra classes. | no |
106
+ | `tools` | `readonly EditorTool[]` | common formatting | no | Visible schema-supported controls. Does not validate document policy. | no |
107
+ | `headingLevels` | `readonly (1..6)[]` | schema levels | no | Levels in the text style menu. | no |
108
+ | `insertItems` | `readonly EditorInsertItem[]` | `[]` | no | Consumer-labelled insertion callbacks. | no |
109
+ | `variables` | `readonly EditorVariable[]` | `undefined` | no | Registry metadata; Root adds key-only atom unless extensions are replaced. | no |
110
+ | `mentions` | `readonly EditorMention[]` | `undefined` | no | User IDs/labels; picker and @ suggestions. Custom schemas add the mention extension. | no |
95
111
 
96
112
  ### `RichTextEditor.Content` props
97
113
 
@@ -133,7 +149,7 @@ All other `React.ButtonHTMLAttributes<HTMLButtonElement>` are forwarded to `Rich
133
149
  | Root / Shell | `dsx-rich-text-editor` | `rich-text-editor.css` |
134
150
  | Toolbar | `dsx-rich-text-editor__toolbar` | `rich-text-editor.css` |
135
151
  | Toolbar group | `dsx-rich-text-editor__toolbar-group` | `rich-text-editor.css` |
136
- | Toolbar label | `dsx-rich-text-editor__toolbar-label` | `rich-text-editor.css` |
152
+ | Optional custom toolbar label | `dsx-rich-text-editor__toolbar-label` | `rich-text-editor.css` |
137
153
  | Toolbar button | `dsx-rich-text-editor__toolbar-button` | `rich-text-editor.css` |
138
154
  | Content area | `dsx-rich-text-editor__area` | `rich-text-editor.css` |
139
155
  | Placeholder | `dsx-rich-text-editor__placeholder` | `rich-text-editor.css` |
@@ -156,12 +172,12 @@ All other `React.ButtonHTMLAttributes<HTMLButtonElement>` are forwarded to `Rich
156
172
 
157
173
  **Responsive behavior:**
158
174
 
159
- - The component does not write `@media` rules. None of its prop defs are `responsive: true`.
175
+ - The component has no viewport-width media rules. None of its prop defs are `responsive: true`.
160
176
  - The component's CSS file is breakpoint-agnostic.
161
177
 
162
178
  **Reduced motion:**
163
179
 
164
- - The shell and toolbar transitions use `var(--dsx-motion-duration-fast)` and `var(--dsx-motion-easing-standard)`. The CSS file does not include a `prefers-reduced-motion` gate; the global stylesheet is expected to honor the media query.
180
+ - The shell and toolbar transitions use `var(--dsx-motion-duration-fast)` and `var(--dsx-motion-easing-standard)`. Its own `prefers-reduced-motion` gate disables these transitions.
165
181
 
166
182
  ## Token mapping
167
183
 
@@ -178,15 +194,15 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
178
194
  | Shell focus border | `var(--dsx-color-primary)` | Focus edge. |
179
195
  | Shell focus ring | `var(--dsx-shadow-focus-ring)` | Focus indicator. |
180
196
  | Shell disabled | `var(--dsx-color-disabled-border)`, `var(--dsx-color-disabled-surface)`, `var(--dsx-color-disabled-text)` | Disabled state. |
181
- | Toolbar gap | `var(--dsx-space-xs)` | Button spacing. |
197
+ | Toolbar gap | `var(--dsx-space-sm)` / `var(--dsx-space-md)` | Space separates tool groups. |
182
198
  | Toolbar padding | `var(--dsx-space-sm)` / `var(--dsx-space-md)` | Internal gutter. |
183
199
  | Toolbar border | `var(--dsx-border-width-sm)` + `var(--dsx-color-outline)` | Bottom edge. |
184
200
  | Toolbar background | `var(--dsx-color-surface-editor-toolbar)` | Toolbar surface. |
185
- | Toolbar group border | `var(--dsx-border-width-sm)` + `var(--dsx-color-panel-border-translucent)` | Group edge. |
201
+ | Toolbar group border | none | Groups use proximity. |
186
202
  | Toolbar group radius | `var(--dsx-rounded-md)` | Group corner roundness. |
187
- | Toolbar group background | `var(--dsx-effect-gray-alpha-3)` | Group surface. |
203
+ | Toolbar group background | transparent | No separate frame. |
188
204
  | Toolbar label typography | `var(--dsx-typography-label-small-*)` | Group label. |
189
- | Toolbar button size | `var(--dsx-density-control-height-sm)` | Button tap target. |
205
+ | Toolbar button size | `var(--dsx-density-control-height-lg)` | Button tap target. |
190
206
  | Toolbar button active | `var(--dsx-color-high-contrast)` + `var(--dsx-color-on-high-contrast)` | Active background and text. |
191
207
  | Content area min-height | `var(--dsx-rich-text-editor-min-height, 220px)` | Minimum editor height. |
192
208
  | Content area background | Gradient using `var(--dsx-color-surface-raised)` and `var(--dsx-color-surface)` | Subtle gradient. |
@@ -194,19 +210,20 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
194
210
  | ProseMirror typography | `var(--dsx-typography-body-medium-*)` | Body text. |
195
211
  | ProseMirror heading | `var(--dsx-typography-headline-medium-*)` | H1/H2. |
196
212
  | ProseMirror H3 | `var(--dsx-typography-label-large-*)` | H3. |
197
- | ProseMirror blockquote | `var(--dsx-color-primary)` (border), `var(--dsx-effect-hover-primary)` (bg) | Blockquote style. |
198
- | ProseMirror code | `var(--dsx-color-background)` + `var(--dsx-color-primary-container)` | Inline code. |
199
- | ProseMirror pre | `var(--dsx-color-background)` + `var(--dsx-color-on-background)` | Code block. |
213
+ | ProseMirror blockquote | `var(--dsx-color-accent-border)` (1px border), `var(--dsx-effect-hover-primary)` (bg) | Decorative quotation rule and wash. |
214
+ | ProseMirror code | `var(--dsx-code-soft-background)` + `var(--dsx-color-on-surface)` | Readable inline code. |
215
+ | ProseMirror pre | `var(--dsx-code-soft-background)` + `var(--dsx-color-on-surface)` | Code block. |
200
216
  | Status bar | `var(--dsx-color-surface-editor-subtle)` + `var(--dsx-color-on-surface-variant)` | Status surface and text. |
201
217
  | Transition | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Hover and focus transitions. |
218
+ | Link popover width | `var(--dsx-rich-text-editor-link-popover-width)` capped by Radix available width | Compact single-field form, independent of density and viewport breakpoints. |
202
219
 
203
220
  ## Motion contract
204
221
 
205
222
  | Region | Token | Default | Reduced |
206
223
  |---|---|---|---|
207
- | Shell border, background, shadow, color | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Transition on hover, focus, and disabled | Relies on the global `prefers-reduced-motion` stylesheet. |
208
- | Toolbar background, border | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Transition on state change | Relies on the global `prefers-reduced-motion` stylesheet. |
209
- | Content area background | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Transition on disabled | Relies on the global `prefers-reduced-motion` stylesheet. |
224
+ | Shell border, background, shadow, color | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Transition on hover, focus, and disabled | Own CSS disables transitions under prefers-reduced-motion. |
225
+ | Toolbar background, border | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Transition on state change | Own CSS disables transitions under prefers-reduced-motion. |
226
+ | Content area background | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Transition on disabled | Own CSS disables transitions under prefers-reduced-motion. |
210
227
 
211
228
  ## Accessibility
212
229
 
@@ -220,9 +237,9 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
220
237
 
221
238
  | Key | Action |
222
239
  |---|---|
223
- | `Tab` | Moves focus through the toolbar buttons and into the editor content. |
240
+ | `Tab` | Enters or leaves the toolbar's roving focus group, then reaches editor content. |
224
241
  | `Enter`, `Space` | Activates the focused toolbar button. |
225
- | Arrow keys | The toolbar does not implement arrow-key navigation between buttons. The ProseMirror editor handles its own keyboard shortcuts (Mod-B for bold, Mod-I for italic, etc.). |
242
+ | Arrow keys / Home / End | Existing Toolbar supplies roving focus between enabled actions. ProseMirror keeps its own Mod-B / Mod-I shortcuts. |
226
243
 
227
244
  **Focus:**
228
245
 
@@ -230,7 +247,7 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
230
247
 
231
248
  **Reduced motion:**
232
249
 
233
- - Transitions on the shell, toolbar, and content area are expected to collapse under the global `prefers-reduced-motion` stylesheet.
250
+ - Own `prefers-reduced-motion` rules disable shell, toolbar, group, button and content-area transitions.
234
251
 
235
252
  **Color and meaning:**
236
253
 
@@ -268,6 +285,16 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
268
285
  |---|---|---|
269
286
  | `disabled` | boolean | `false` |
270
287
 
288
+ ## Review examples and retained behavior
289
+
290
+ The default toolbar composes the existing Toolbar and Button. Groups always
291
+ wrap inside narrow hosts; no width breakpoints. Root and ToolbarButton aliases
292
+ are attached as documented. Function-valued editorProps.attributes are evaluated
293
+ and merged with the DS class/slot, retaining app labels and dynamic attributes.
294
+ Images remain bounded; preformatted content scrolls. The live example exposes
295
+ formatting, lock/unlock with retained edits, preview, editable materials, broadcast variables and a
296
+ custom toolbar; app-owned Shell behavior is covered by the functional suite.
297
+
271
298
  ## Wiring notes
272
299
 
273
300
  **Composes from:**
@@ -291,3 +318,26 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
291
318
 
292
319
  - App-owned data: the editor schema, the extension set, the serialization format, the content persistence, the `onUpdate` handler, and the toolbar override.
293
320
  - DS-owned visuals: token bindings, the `dsx-rich-text-editor` class hierarchy, the `data-disabled` and `data-active` attributes, the toolbar `aria-label` templates, the status bar text, and the placeholder rendering.
321
+
322
+ ## Authoring enhancement — approved 2026-10-04
323
+
324
+ Root, Shell and Toolbar accept `tools` (formatting tool names), `headingLevels`,
325
+ `insertItems` (`id`, `label`, `insert(editor)`), `variables` (`key`, `label`, optional
326
+ `description`, `type`, `sensitive`) and `mentions` (`id`, `label`). Defaults retain
327
+ common formatting; the text style menu uses headings supported by the schema.
328
+ `tools` configures controls, not document validation. Consumers configure their
329
+ extensions to enforce policy. Link editing uses a labelled DS popover with URL
330
+ validation, save/remove, Escape and selection preservation. Insert entries are
331
+ consumer supplied. Toolbar groups wrap at every width.
332
+
333
+ The link form uses a label-large title, medium action buttons with a size-2xl
334
+ minimum, and a 320px content width capped by available space. Its explanatory
335
+ description remains accessible through VisuallyHidden; the visible title and URL
336
+ label identify the task. Variable/mention pickers retain their larger layout.
337
+
338
+ `createVariableExtension({ variables })` and `createMentionExtension({ mentions })`
339
+ are optional editor exports. Inline atoms store `key` / `userId`, preserve HTML/JSON
340
+ and undo, display registry labels, and visibly mark unknown keys. Root adds these
341
+ when registries are provided unless `extensions` is a complete replacement; custom
342
+ schemas add them explicitly. No variable resolution, upload or backend serializer
343
+ is supplied. Registry changes do not recreate the managed editor.
@@ -45,7 +45,7 @@ The `Root` slot mounts the `Viewport`, both `ScrollBar` slots, and the `Corner`
45
45
  |---|---|---|---|---|---|
46
46
  | `asChild` | `boolean` | `false` | no | Extracted from prop defs but the `Root` host always renders a `<div>`. The prop is reserved for future use. | no |
47
47
  | `viewportAsChild` | `boolean` | `false` | no | When `true`, the children passed to the root are rendered directly inside the viewport via `Slot`. When `false`, the children are wrapped in a fragment. Use `true` when the scrollable content needs to be the viewport child directly so the host element's own classes do not block overflow inheritance. | no |
48
- | `size` | `'1' \| '2' \| '3'` | `'1'` | no | Drives `data-size` on the root. Reserved for token-driven scrollbar width variants; the default CSS does not consume the value beyond writing the attribute. | no |
48
+ | `size` | `'1' \| '2' \| '3'` | `'1'` | no | Drives `data-size` on the root. Selects scrollbar thickness: 1 uses scroll-thumb-size, 2 uses 8px, 3 uses 10px. | no |
49
49
  | `radius` | `'none' \| 'sm' \| 'md' \| 'lg' \| 'full'` | `'md'` | no | Drives `data-radius` on the root. The CSS file consumes `data-radius` on `.dsx-scroll-area` to control the corner roundness inherited by the viewport. | no |
50
50
  | `viewportClassName` | `string` | `undefined` | no | Extra classes appended to the `Viewport` slot. | no |
51
51
  | `className` | `string` | `undefined` | no | Extra classes appended to `dsx-scroll-area`. | no |
@@ -94,7 +94,7 @@ The slot also accepts the full `ComponentPropsWithoutRef<typeof ScrollAreaPrimit
94
94
  | `data-state` (Radix) | `visible`, `hidden`, `hover`, `scroll` | `.dsx-scroll-area__scrollbar[data-state='visible']` | `scroll-area.css` |
95
95
  | `data-orientation` (Radix) | `vertical`, `horizontal` | `.dsx-scroll-area__scrollbar[data-orientation='vertical']`, `.dsx-scroll-area__scrollbar[data-orientation='horizontal']` | `scroll-area.css` |
96
96
 
97
- The `data-size` and `data-radius` attributes are not consumed by the default CSS; they are forward-looking hooks for token-driven size and radius variants.
97
+ Both size and radius attributes drive the existing CSS variants.
98
98
 
99
99
  **Slot classes:**
100
100
 
@@ -118,12 +118,12 @@ The `data-size` and `data-radius` attributes are not consumed by the default CSS
118
118
 
119
119
  **Responsive behavior:**
120
120
 
121
- - The component does not write `@media` rules. None of its prop defs are `responsive: true`.
121
+ - The component has no viewport-width media rules. None of its prop defs are `responsive: true`.
122
122
  - The component's CSS file is breakpoint-agnostic.
123
123
 
124
124
  **Reduced motion:**
125
125
 
126
- - The scrollbar background and thumb transitions use `var(--dsx-motion-duration-fast)` and `var(--dsx-motion-easing-standard)`. The CSS file does not include a `prefers-reduced-motion` gate; the global stylesheet is expected to honor the media query. The scroll motion itself is owned by the Radix primitive and respects the user's reduced-motion preference.
126
+ - The scrollbar background and thumb transitions use `var(--dsx-motion-duration-fast)` and `var(--dsx-motion-easing-standard)`. Its own `prefers-reduced-motion` gate disables scrollbar and thumb transitions. The scroll motion itself is owned by the Radix primitive and respects the user's reduced-motion preference.
127
127
 
128
128
  ## Token mapping
129
129
 
@@ -152,15 +152,15 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
152
152
 
153
153
  | Region | Token | Default | Reduced |
154
154
  |---|---|---|---|
155
- | Scrollbar background | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Background transition on visibility change. | Relies on the global `prefers-reduced-motion` stylesheet. |
156
- | Thumb background and opacity | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Thumb color and opacity transition. | Relies on the global `prefers-reduced-motion` stylesheet. |
155
+ | Scrollbar background | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Background transition on visibility change. | Own CSS disables the transition under `prefers-reduced-motion`. |
156
+ | Thumb background and opacity | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-standard)` | Thumb color and opacity transition. | Own CSS disables the transition under `prefers-reduced-motion`. |
157
157
  | Scroll motion | owned by Radix | The scroll motion is the user's pointer or keyboard input; the package does not add its own scroll animation. | Honored by the browser and the Radix primitive. |
158
158
 
159
159
  ## Accessibility
160
160
 
161
161
  **Roles:**
162
162
 
163
- - The viewport and the scrollbar inherit the `role="region"` and `role="scrollbar"` semantics from `@radix-ui/react-scroll-area`. `aria-orientation` and `aria-valuenow` reflect the current scroll position and orientation.
163
+ - Radix preserves native scrolling; its custom tracks are not ARIA scrollbar widgets. A named root makes its auto-mounted viewport tabIndex=0 with an inset focus ring and forwards aria-label/aria-labelledby to its auto-mounted viewport and gives that viewport role=region. Unnamed composite regions do not gain a tabindex attribute. Explicit Viewport props control their own tabIndex.
164
164
 
165
165
  **Keyboard:**
166
166
 
@@ -173,11 +173,11 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
173
173
 
174
174
  **Focus:**
175
175
 
176
- - Focus on the scrollable content uses the host application's focus styles. The DS does not add a custom focus ring; apps that need a custom ring can target `.dsx-scroll-area__viewport:focus-visible` from the host.
176
+ - The viewport paints an inset `var(--dsx-border-width-md)` ring using `var(--dsx-color-primary)` on `:focus-visible`.
177
177
 
178
178
  **Reduced motion:**
179
179
 
180
- - The scrollbar transitions collapse under the global `prefers-reduced-motion` stylesheet. The scroll motion is owned by the browser and respects the user's reduced-motion preference.
180
+ - The scrollbar and thumb transitions are disabled by their own `prefers-reduced-motion` rules. The scroll motion is owned by the browser and respects the user's reduced-motion preference.
181
181
 
182
182
  **Color and meaning:**
183
183
 
@@ -214,6 +214,14 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
214
214
  | `radius` | select (`none`, `sm`, `md`, `lg`, `full`) | `md` |
215
215
  | `viewportAsChild` | boolean | `false` |
216
216
 
217
+ ## Review examples
218
+
219
+ Activity history scrolls vertically; Regional comparison scrolls on both axes.
220
+ Keyboard PageDown/arrows, wheel, named viewport and visible focus are verified
221
+ at desktop and 390/320. Root auto-mounts its viewport; do not nest another one
222
+ unless intentionally composing a second scroll region. Reduced motion disables
223
+ track/thumb transitions in this component CSS.
224
+
217
225
  ## Wiring notes
218
226
 
219
227
  **Composes from:**
@@ -127,46 +127,11 @@ Section has no motion. The motion section is intentionally empty.
127
127
 
128
128
  - Section is a structural landmark. The accessible name should come from a heading inside the section, an `aria-label`, or an `aria-labelledby` reference.
129
129
 
130
- ## Playground demo spec
131
-
132
- **Default story:**
133
-
134
- - Renders `Section` with no extra props and a child node. Asserts the root classes are `dsx-section` and `dsx-box`, the host element is a `section`, and `--dsx-section-space` resolves to `var(--dsx-space-2xl)`.
135
-
136
- **Size story:**
137
-
138
- - Renders `Section size="1"`, `Section size="2"`, and `Section size="3"`. Asserts the `data-size` attribute and the matching `--dsx-section-space` value (`var(--dsx-space-md)`, `var(--dsx-space-xl)`, `var(--dsx-space-2xl)`).
139
-
140
- **Space story:**
141
-
142
- - Renders `Section space="md"` and asserts `--dsx-section-space` resolves to `var(--dsx-space-md)`.
143
-
144
- **Responsive story:**
145
-
146
- - Renders `Section size={{ initial: '1', md: '3' }}` and `Section space={{ initial: 'md', lg: '2xl' }}`. Asserts the per-breakpoint `--dsx-section-space-*` custom property and the matching `padding-block` resolution.
147
-
148
- **Composition story:**
130
+ The matrix and live example use the same outlined content bounds. All three sizes clear space overrides and visibly expose 16/32/48px above and below the content.
149
131
 
150
- - Renders `Section` with two `Box` children showing different surface tones. Asserts the children keep their own `dsx-box` class and inherit the Section's block padding.
151
-
152
- **State story:**
153
-
154
- - No discrete state. The story renders a default Section with two children.
155
-
156
- **Token story:**
157
-
158
- - Section does not honor `data-accent-color`. Render inside a `Theme` wrapper with `accentColor="silver"` and `accentColor="bronze"`. The story asserts the layout is unchanged and any surfaces come from the theme.
159
-
160
- **A11y story:**
161
-
162
- - Use `vitest-axe` against the rendered Section. The default render is a `<section>` with text content; tests assert no violations.
163
-
164
- **Props exposed in the playground controls:**
132
+ ## Playground demo spec
165
133
 
166
- | Prop | Control | Default |
167
- |---|---|---|
168
- | `size` | select | `undefined` |
169
- | `space` | select | `2xl` |
134
+ The size matrix and live gallery use outlined content bounds with identical horizontal padding. Each explicitly clears space so size 1/2/3 shows 16/32/48px above and below the content. The live content explains what the dashed boundaries mark. Section remains an ordinary named page region, not an interactive control.
170
135
 
171
136
  ## Wiring notes
172
137
 
@@ -13,7 +13,7 @@ depends_on:
13
13
 
14
14
  ## Purpose
15
15
 
16
- A single-select control that renders a row of mutually exclusive options, backed by `ToggleGroup` from Radix. `default` is a sunken track with a sliding softly tinted raised pill behind the active option; `outline` is the same pill inside an outer frame; `subtle` is the borderless treatment with the same selected pill. Used for switching between views, filters, or modes in forms and toolbars.
16
+ A single-select control that renders a row of mutually exclusive options, backed by `ToggleGroup` from Radix. `default` is a sunken track with a sliding softly tinted raised pill behind the active option; `outline` is the same pill inside an outer frame; `subtle` is the borderless treatment with the same selected pill. Used for switching between views, filters, or modes in forms and toolbars. Boundary rule (F6 brief): exclusive single-select with a thumb is always a SegmentedControl; frameless toolbar button clusters without a thumb are `ToggleGroup`. Never multi-select, never dismissible.
17
17
 
18
18
  ## Anatomy & slots
19
19
 
@@ -34,7 +34,9 @@ A single-select control that renders a row of mutually exclusive options, backed
34
34
  | `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | no | Control height and item padding; writes `data-size` and `dsx-segmented-control--{size}` class. | no |
35
35
  | `variant` | `'default' \| 'outline' \| 'subtle'` | `'default'` | no | Container surface treatment; writes `data-variant` and `dsx-segmented-control--{variant}` class. `subtle` keeps the measured selected pill but removes the track surface and frame. | no |
36
36
  | `activationMode` | `'manual' \| 'automatic'` | `'manual'` | no | Selection timing; writes `data-activation-mode`. `manual` selects only on activation (click, `Enter`, `Space`). `automatic` selects on item focus, so arrow-key navigation selects without `Enter`. | no |
37
+ | `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | no | Stacking axis; writes `data-orientation`. Vertical stacks icon columns (ref: view-switcher rails); the sliding indicator measures y/height and arrow keys move up/down via Radix. | no |
37
38
  | `disabled` | `boolean` | `false` | no | Disables the entire control; writes `data-disabled`. | no |
39
+ | `fill` | `boolean` | `false` | no | Distributes the track width equally across items; writes `data-fill` and `dsx-segmented-control--fill`; both selectors share the same fill styling. Opt-in for few-item groups that fit (method pickers); the default hug-content root with scroll containment stays for overflowing groups. The sliding indicator measures live boxes, so it tracks fill widths with no change. | no |
38
40
  | `value` | `string` | `undefined` | no | Controlled selected value. | no |
39
41
  | `defaultValue` | `string` | `undefined` | no | Uncontrolled initial selected value. | no |
40
42
  | `onValueChange` | `(value: string) => void` | `undefined` | no | Callback when the selected value changes. | no |
@@ -53,13 +55,13 @@ A single-select control that renders a row of mutually exclusive options, backed
53
55
 
54
56
  Rules:
55
57
 
56
- - `size` and `disabled` are wired through `extractProps` and the prop def bag on the Root. `variant` and `activationMode` are destructured with their defaults and kept out of the extract bag (their defs declare no `className`, so they would otherwise leak onto the DOM).
58
+ - `size` and `disabled` are wired through `extractProps` and the prop def bag on the Root. `variant`, `activationMode`, and `fill` are destructured with their defaults and kept out of the extract bag (their defs declare no `className`, so they would otherwise leak onto the DOM); `fill` writes `data-fill` plus the `--fill` modifier class manually, same as `variant`.
57
59
  - `value`, `defaultValue`, and `onValueChange` are passed through to the Radix ToggleGroup root directly.
58
60
  - The Root forces `type="single"` and filters empty string values from `onValueChange` to prevent deselection.
59
61
  - Deselect guard: the Root owns the selection state. Uncontrolled usage seeds internal state from `defaultValue` and passes the resolved value back into Radix as a controlled `value`, so clicking the active item (which fires `""`) can never clear Radix internal state or render the control with no active item. Controlled usage passes `value` straight through; `""` is still swallowed.
60
62
  - Activation mode: in `automatic` mode each item's `onFocus` selects its own value when it differs from the current value (the item reads the mode and the current selection from an internal Root context; Radix strips the `value` prop from the DOM, so the Root cannot recover the focused value from the event target). The focus value goes through the same guarded setter, so focus can never empty the selection and tabbing into the group (which lands on the already-selected item) is a no-op. Disabled items never select on focus. In `manual` mode (default) focus never selects; selection happens only on activation. Consumer `onFocus` handlers on the Root and on items keep working in both modes.
61
63
  - Choosing a mode: `automatic` is the radio-faithful choice for lightweight view/filter/mode switching. `manual` is required when `onValueChange` drives expensive side effects (network requests, navigation, heavy recompute) that must not fire on focus or hover.
62
- - Indicator geometry: the Root measures the active `[data-state="on"]` item with `getBoundingClientRect` in a layout effect (before first paint), re-measures on selection change and via `ResizeObserver` on the root and the active item. The offset is a physical-pixel diff (`active.left - root.left`), which is direction-agnostic and therefore RTL-correct without special-casing. A ready gate holds `transition: none` until the first positioned frame so mount never animates from the origin. Variable-width items are required; the indicator wrapper tracks each item's own width (no equal-width `nth-child` CSS), while its painted `::before` surface keeps a symmetric `space-2xs` inset inside that measured wrapper.
64
+ - Indicator geometry: the Root measures the active `[data-state="on"]` item with `getBoundingClientRect` in a layout effect (before first paint), re-measures on selection change and via `ResizeObserver` on the root and the active item. The offset converts the physical-pixel viewport diff into content coordinates (`active.left - root.left - clientLeft + scrollLeft`, and the equivalent top/clientTop/scrollTop calculation). The pill then moves with the scrolled content instead of shifting twice. Physical coordinates remain independent of writing direction. A ready gate holds `transition: none` until the first positioned frame so mount never animates from the origin. Variable-width items are required; the indicator wrapper tracks each item's own width (no equal-width `nth-child` CSS), while its painted `::before` surface keeps a symmetric `space-2xs` inset inside that measured wrapper.
63
65
 
64
66
  ## CSS class contract
65
67
 
@@ -72,6 +74,8 @@ Rules:
72
74
  | `data-size` | `sm`, `md`, `lg` | `.dsx-segmented-control--sm`, `.dsx-segmented-control--md`, `.dsx-segmented-control--lg` | `segmented-control.css` |
73
75
  | `data-variant` | `default`, `outline`, `subtle` | `.dsx-segmented-control--default`, `.dsx-segmented-control--outline`, `.dsx-segmented-control--subtle` | `segmented-control.css` |
74
76
  | `data-disabled` | (present/absent) | `.dsx-segmented-control[data-disabled]` | `segmented-control.css` |
77
+ | `data-orientation` | `horizontal`, `vertical` | `.dsx-segmented-control[data-orientation='vertical']` (column stack; indicator measures y/height) | `segmented-control.css` |
78
+ | `data-fill` | (present/absent) | `.dsx-segmented-control--fill` (root spans the container, items share width equally) | `segmented-control.css` |
75
79
 
76
80
  **Slot classes:**
77
81
 
@@ -230,6 +234,7 @@ Automatic mode (`activationMode="automatic"`):
230
234
  | `variant` | select | `default` |
231
235
  | `activationMode` | select | `manual` |
232
236
  | `disabled` | boolean | `false` |
237
+ | `fill` | boolean | `false` |
233
238
 
234
239
  ## Wiring notes
235
240
 
@@ -124,6 +124,8 @@ Rules:
124
124
  **Size story:**
125
125
 
126
126
  - Renders `size="sm"`, `size="md"`, `size="lg"`. Asserts the matching `data-size`.
127
+ - The matrix supplies a bounded 160px consumer host, capped at available width,
128
+ so every segment has nonzero width. The package continues to fill its parent.
127
129
 
128
130
  **State story:**
129
131
 
@@ -202,3 +204,10 @@ Rules:
202
204
  - [ ] Token bindings resolve at the values `DESIGN.md` describes.
203
205
  - [ ] Component is promoted to Main Component under `Primitives`.
204
206
  - [ ] Segment height matches `Progress`'s height at every `size` exactly.
207
+
208
+ ## Reconciliation stories
209
+
210
+ The playground manifest includes `segmented-meter` so the registered family is
211
+ reachable from `/docs/segmented-meter` and the documentation index.
212
+
213
+ The live capacity example shows all three heights for the same controlled value, visible n-of-m text, use/release actions, and empty/full references. The meter is read-only; controls belong to the consumer.
@@ -176,7 +176,7 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
176
176
  | Content padding | `var(--dsx-space-sm)` | Floating menu inner gutter. |
177
177
  | Content width / min-width / max-width | `max-content` / `var(--radix-select-trigger-width, 200px)` / `min(--radix-select-content-available-width, 40rem)` | Mirror-at-minimum with grow-to-fit; past 40rem (or the viewport edge) rows wrap via `data-overflow` instead of stretching the panel. The 40rem ceiling is a token candidate for the size batch. |
178
178
  | Content max-height | `var(--dsx-size-popover-max-width)` | Scroll ceiling (used by the inner ScrollArea). |
179
- | Content z-index | `var(--dsx-z-index-dropdown)` | Overlay stacking. |
179
+ | Content z-index | `var(--dsx-z-index-dropdown)` standalone; `calc(var(--dsx-z-index-modal, 90) + 2)` when nested inside a modal-tier host (`dsx-menu__nested`, see the shared nested floating tier contract in `menu.md`) | Overlay stacking; nested menus clear their host popup. |
180
180
  | Item min-height | `var(--dsx-size-lg)` | Default option height. |
181
181
  | Item padding | density-aware block/inline tokens with trailing indicator reservation | Option padding; the right side reserves room for the trailing check indicator. |
182
182
  | Item border | `0` | Items are borderless. |
@@ -295,7 +295,8 @@ Rules:
295
295
  - `VisuallyHidden` (DS primitive): the hidden native `<select>` host.
296
296
  - `Icon` (lucide-react `chevron-down`): the trigger trailing icon. Lucide-react `check` is the item indicator.
297
297
  - `_internal/BaseDialog`: `PortalThemeBoundary` (wraps the root) and `PortalThemeWrapper` (wraps the content) so `data-dsx-theme`, `data-dsx-density`, `data-dsx-scaling`, `data-accent-color`, `data-gray-color`, `data-radius`, `data-panel-background`, `data-has-background`, and `colorScheme` resolve inside the content portal.
298
- - `_internal/baseMenu.css`: the shared menu shell, border, surface, and focus contract.
298
+ - `_internal/baseMenu.css`: the shared menu shell, border, surface, and focus contract — including the nested floating tier rule (`dsx-menu__nested` at `modal + 2`).
299
+ - `_internal/floatingLayer`: `useFloatingLayerHost` tells `Select.Content` whether it renders inside a modal-tier host (`Popover.Content` / `Dialog.Content`); when nested, the content adds `dsx-menu__nested` so the options list paints above its host. Standalone content never carries the class and stays at the dropdown tier, below the modal overlay.
299
300
  - `@radix-ui/react-slot`: enables `asChild` on `Select`, `Select.Trigger`, and `Select.Content`.
300
301
 
301
302
  **Used by:**