@d4gger/design-system 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/dist/{components/controlGroup/ControlGroup.cjs → _internal/floatingLayer.cjs} +11 -26
  2. package/dist/_internal/floatingLayer.cjs.map +7 -0
  3. package/dist/_internal/floatingLayer.d.cts +28 -0
  4. package/dist/_internal/floatingLayer.d.cts.map +1 -0
  5. package/dist/_internal/floatingLayer.d.mts +28 -0
  6. package/dist/_internal/floatingLayer.d.mts.map +1 -0
  7. package/dist/_internal/floatingLayer.d.ts +28 -0
  8. package/dist/_internal/floatingLayer.d.ts.map +1 -0
  9. package/dist/_internal/floatingLayer.js +11 -0
  10. package/dist/_internal/floatingLayer.js.map +7 -0
  11. package/dist/components/banner/Banner.cjs +105 -0
  12. package/dist/components/banner/Banner.cjs.map +7 -0
  13. package/dist/components/banner/Banner.d.cts +27 -0
  14. package/dist/components/banner/Banner.d.cts.map +1 -0
  15. package/dist/components/banner/Banner.d.mts +27 -0
  16. package/dist/components/banner/Banner.d.mts.map +1 -0
  17. package/dist/components/banner/Banner.d.ts +27 -0
  18. package/dist/components/banner/Banner.d.ts.map +1 -0
  19. package/dist/components/banner/Banner.js +80 -0
  20. package/dist/components/banner/Banner.js.map +7 -0
  21. package/dist/components/{controlGroup/controlGroup.props.cjs → banner/banner.props.cjs} +23 -16
  22. package/dist/components/banner/banner.props.cjs.map +7 -0
  23. package/dist/components/banner/banner.props.d.cts +32 -0
  24. package/dist/components/banner/banner.props.d.cts.map +1 -0
  25. package/dist/components/banner/banner.props.d.mts +32 -0
  26. package/dist/components/banner/banner.props.d.mts.map +1 -0
  27. package/dist/components/banner/banner.props.d.ts +32 -0
  28. package/dist/components/banner/banner.props.d.ts.map +1 -0
  29. package/dist/components/banner/banner.props.js +27 -0
  30. package/dist/components/banner/banner.props.js.map +7 -0
  31. package/dist/components/banner.css +60 -0
  32. package/dist/components/button-group.css +25 -0
  33. package/dist/components/button.css +9 -0
  34. package/dist/components/card.css +3 -0
  35. package/dist/components/carousel/Carousel.cjs +109 -39
  36. package/dist/components/carousel/Carousel.cjs.map +3 -3
  37. package/dist/components/carousel/Carousel.d.cts.map +1 -1
  38. package/dist/components/carousel/Carousel.d.mts.map +1 -1
  39. package/dist/components/carousel/Carousel.d.ts.map +1 -1
  40. package/dist/components/carousel/Carousel.js +111 -41
  41. package/dist/components/carousel/Carousel.js.map +3 -3
  42. package/dist/components/carousel.css +93 -26
  43. package/dist/components/chart/Chart.cjs +61 -11
  44. package/dist/components/chart/Chart.cjs.map +2 -2
  45. package/dist/components/chart/Chart.d.cts.map +1 -1
  46. package/dist/components/chart/Chart.d.mts.map +1 -1
  47. package/dist/components/chart/Chart.d.ts.map +1 -1
  48. package/dist/components/chart/Chart.js +62 -11
  49. package/dist/components/chart/Chart.js.map +2 -2
  50. package/dist/components/chart.css +10 -1
  51. package/dist/components/checkbox.css +14 -0
  52. package/dist/components/combobox/Combobox.cjs +3 -1
  53. package/dist/components/combobox/Combobox.cjs.map +2 -2
  54. package/dist/components/combobox/Combobox.d.cts.map +1 -1
  55. package/dist/components/combobox/Combobox.d.mts.map +1 -1
  56. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  57. package/dist/components/combobox/Combobox.js +3 -1
  58. package/dist/components/combobox/Combobox.js.map +2 -2
  59. package/dist/components/combobox.css +5 -1
  60. package/dist/components/command/Command.cjs +1 -1
  61. package/dist/components/command/Command.cjs.map +2 -2
  62. package/dist/components/command/Command.js +1 -1
  63. package/dist/components/command/Command.js.map +2 -2
  64. package/dist/components/context-menu.css +1 -1
  65. package/dist/components/copy-field.css +18 -0
  66. package/dist/components/copyField/CopyField.cjs +3 -3
  67. package/dist/components/copyField/CopyField.cjs.map +2 -2
  68. package/dist/components/copyField/CopyField.d.cts.map +1 -1
  69. package/dist/components/copyField/CopyField.d.mts.map +1 -1
  70. package/dist/components/copyField/CopyField.d.ts.map +1 -1
  71. package/dist/components/copyField/CopyField.js +3 -3
  72. package/dist/components/copyField/CopyField.js.map +2 -2
  73. package/dist/components/data-list.css +19 -4
  74. package/dist/components/data-table.css +190 -0
  75. package/dist/components/dataTable/DataTable.cjs +193 -68
  76. package/dist/components/dataTable/DataTable.cjs.map +3 -3
  77. package/dist/components/dataTable/DataTable.d.cts +29 -1
  78. package/dist/components/dataTable/DataTable.d.cts.map +1 -1
  79. package/dist/components/dataTable/DataTable.d.mts +29 -1
  80. package/dist/components/dataTable/DataTable.d.mts.map +1 -1
  81. package/dist/components/dataTable/DataTable.d.ts +29 -1
  82. package/dist/components/dataTable/DataTable.d.ts.map +1 -1
  83. package/dist/components/dataTable/DataTable.js +193 -68
  84. package/dist/components/dataTable/DataTable.js.map +2 -2
  85. package/dist/components/dataTable/DataTableContext.cjs +41 -0
  86. package/dist/components/dataTable/DataTableContext.cjs.map +7 -0
  87. package/dist/components/dataTable/DataTableContext.d.cts +23 -0
  88. package/dist/components/dataTable/DataTableContext.d.cts.map +1 -0
  89. package/dist/components/dataTable/DataTableContext.d.mts +23 -0
  90. package/dist/components/dataTable/DataTableContext.d.mts.map +1 -0
  91. package/dist/components/dataTable/DataTableContext.d.ts +23 -0
  92. package/dist/components/dataTable/DataTableContext.d.ts.map +1 -0
  93. package/dist/components/dataTable/DataTableContext.js +11 -0
  94. package/dist/components/dataTable/DataTableContext.js.map +7 -0
  95. package/dist/components/dataTable/DataTablePagination.cjs +72 -47
  96. package/dist/components/dataTable/DataTablePagination.cjs.map +2 -2
  97. package/dist/components/dataTable/DataTablePagination.d.cts +5 -1
  98. package/dist/components/dataTable/DataTablePagination.d.cts.map +1 -1
  99. package/dist/components/dataTable/DataTablePagination.d.mts +5 -1
  100. package/dist/components/dataTable/DataTablePagination.d.mts.map +1 -1
  101. package/dist/components/dataTable/DataTablePagination.d.ts +5 -1
  102. package/dist/components/dataTable/DataTablePagination.d.ts.map +1 -1
  103. package/dist/components/dataTable/DataTablePagination.js +75 -47
  104. package/dist/components/dataTable/DataTablePagination.js.map +2 -2
  105. package/dist/components/dataTable/DataTableToolbar.cjs +122 -93
  106. package/dist/components/dataTable/DataTableToolbar.cjs.map +2 -2
  107. package/dist/components/dataTable/DataTableToolbar.d.cts +6 -5
  108. package/dist/components/dataTable/DataTableToolbar.d.cts.map +1 -1
  109. package/dist/components/dataTable/DataTableToolbar.d.mts +6 -5
  110. package/dist/components/dataTable/DataTableToolbar.d.mts.map +1 -1
  111. package/dist/components/dataTable/DataTableToolbar.d.ts +6 -5
  112. package/dist/components/dataTable/DataTableToolbar.d.ts.map +1 -1
  113. package/dist/components/dataTable/DataTableToolbar.js +123 -94
  114. package/dist/components/dataTable/DataTableToolbar.js.map +2 -2
  115. package/dist/components/dataTable/dataTable.export.cjs +83 -0
  116. package/dist/components/dataTable/dataTable.export.cjs.map +7 -0
  117. package/dist/components/dataTable/dataTable.export.d.cts +11 -0
  118. package/dist/components/dataTable/dataTable.export.d.cts.map +1 -0
  119. package/dist/components/dataTable/dataTable.export.d.mts +11 -0
  120. package/dist/components/dataTable/dataTable.export.d.mts.map +1 -0
  121. package/dist/components/dataTable/dataTable.export.d.ts +11 -0
  122. package/dist/components/dataTable/dataTable.export.d.ts.map +1 -0
  123. package/dist/components/dataTable/dataTable.export.js +63 -0
  124. package/dist/components/dataTable/dataTable.export.js.map +7 -0
  125. package/dist/components/dataTable/dataTable.props.cjs +23 -1
  126. package/dist/components/dataTable/dataTable.props.cjs.map +2 -2
  127. package/dist/components/dataTable/dataTable.props.d.cts +21 -1
  128. package/dist/components/dataTable/dataTable.props.d.cts.map +1 -1
  129. package/dist/components/dataTable/dataTable.props.d.mts +21 -1
  130. package/dist/components/dataTable/dataTable.props.d.mts.map +1 -1
  131. package/dist/components/dataTable/dataTable.props.d.ts +21 -1
  132. package/dist/components/dataTable/dataTable.props.d.ts.map +1 -1
  133. package/dist/components/dataTable/dataTable.props.js +23 -1
  134. package/dist/components/dataTable/dataTable.props.js.map +2 -2
  135. package/dist/components/dialog/Dialog.cjs +2 -1
  136. package/dist/components/dialog/Dialog.cjs.map +2 -2
  137. package/dist/components/dialog/Dialog.d.cts.map +1 -1
  138. package/dist/components/dialog/Dialog.d.mts.map +1 -1
  139. package/dist/components/dialog/Dialog.d.ts.map +1 -1
  140. package/dist/components/dialog/Dialog.js +2 -1
  141. package/dist/components/dialog/Dialog.js.map +2 -2
  142. package/dist/components/dropdown-menu.css +1 -1
  143. package/dist/components/empty-state.css +5 -0
  144. package/dist/components/fileUpload/FileUpload.cjs +10 -1
  145. package/dist/components/fileUpload/FileUpload.cjs.map +2 -2
  146. package/dist/components/fileUpload/FileUpload.d.cts +1 -0
  147. package/dist/components/fileUpload/FileUpload.d.cts.map +1 -1
  148. package/dist/components/fileUpload/FileUpload.d.mts +1 -0
  149. package/dist/components/fileUpload/FileUpload.d.mts.map +1 -1
  150. package/dist/components/fileUpload/FileUpload.d.ts +1 -0
  151. package/dist/components/fileUpload/FileUpload.d.ts.map +1 -1
  152. package/dist/components/fileUpload/FileUpload.js +10 -1
  153. package/dist/components/fileUpload/FileUpload.js.map +2 -2
  154. package/dist/components/filter-bar.css +380 -8
  155. package/dist/components/filterBar/FilterBar.cjs +630 -1
  156. package/dist/components/filterBar/FilterBar.cjs.map +2 -2
  157. package/dist/components/filterBar/FilterBar.d.cts +132 -2
  158. package/dist/components/filterBar/FilterBar.d.cts.map +1 -1
  159. package/dist/components/filterBar/FilterBar.d.mts +132 -2
  160. package/dist/components/filterBar/FilterBar.d.mts.map +1 -1
  161. package/dist/components/filterBar/FilterBar.d.ts +132 -2
  162. package/dist/components/filterBar/FilterBar.d.ts.map +1 -1
  163. package/dist/components/filterBar/FilterBar.js +631 -2
  164. package/dist/components/filterBar/FilterBar.js.map +2 -2
  165. package/dist/components/floating-panel.css +1 -1
  166. package/dist/components/fontProvider/FontProvider.cjs +1 -1
  167. package/dist/components/fontProvider/FontProvider.cjs.map +1 -1
  168. package/dist/components/fontProvider/FontProvider.js +1 -1
  169. package/dist/components/fontProvider/FontProvider.js.map +1 -1
  170. package/dist/components/icon/Icon.cjs +25 -2
  171. package/dist/components/icon/Icon.cjs.map +2 -2
  172. package/dist/components/icon/Icon.d.cts +29 -1
  173. package/dist/components/icon/Icon.d.cts.map +1 -1
  174. package/dist/components/icon/Icon.d.mts +29 -1
  175. package/dist/components/icon/Icon.d.mts.map +1 -1
  176. package/dist/components/icon/Icon.d.ts +29 -1
  177. package/dist/components/icon/Icon.d.ts.map +1 -1
  178. package/dist/components/icon/Icon.js +33 -2
  179. package/dist/components/icon/Icon.js.map +2 -2
  180. package/dist/components/icon/icons.cjs +16 -0
  181. package/dist/components/icon/icons.cjs.map +2 -2
  182. package/dist/components/icon/icons.d.cts +40 -0
  183. package/dist/components/icon/icons.d.cts.map +1 -1
  184. package/dist/components/icon/icons.d.mts +40 -0
  185. package/dist/components/icon/icons.d.mts.map +1 -1
  186. package/dist/components/icon/icons.d.ts +40 -0
  187. package/dist/components/icon/icons.d.ts.map +1 -1
  188. package/dist/components/icon/icons.js +16 -0
  189. package/dist/components/icon/icons.js.map +2 -2
  190. package/dist/components/icon-button.css +29 -0
  191. package/dist/components/index.cjs +1 -1
  192. package/dist/components/index.cjs.map +2 -2
  193. package/dist/components/index.d.cts +1 -1
  194. package/dist/components/index.d.cts.map +1 -1
  195. package/dist/components/index.d.mts +1 -1
  196. package/dist/components/index.d.mts.map +1 -1
  197. package/dist/components/index.d.ts +1 -1
  198. package/dist/components/index.d.ts.map +1 -1
  199. package/dist/components/index.js +1 -1
  200. package/dist/components/index.js.map +1 -1
  201. package/dist/components/item/Item.cjs +1 -1
  202. package/dist/components/item/Item.cjs.map +2 -2
  203. package/dist/components/item/Item.js +1 -1
  204. package/dist/components/item/Item.js.map +2 -2
  205. package/dist/components/item.css +12 -1
  206. package/dist/components/marquee/Marquee.cjs +1 -1
  207. package/dist/components/marquee/Marquee.cjs.map +2 -2
  208. package/dist/components/marquee/Marquee.js +1 -1
  209. package/dist/components/marquee/Marquee.js.map +2 -2
  210. package/dist/components/marquee.css +6 -0
  211. package/dist/components/menu/Menu.cjs +3 -1
  212. package/dist/components/menu/Menu.cjs.map +2 -2
  213. package/dist/components/menu/Menu.d.cts.map +1 -1
  214. package/dist/components/menu/Menu.d.mts.map +1 -1
  215. package/dist/components/menu/Menu.d.ts.map +1 -1
  216. package/dist/components/menu/Menu.js +3 -1
  217. package/dist/components/menu/Menu.js.map +2 -2
  218. package/dist/components/menubar.css +1 -1
  219. package/dist/components/metric.css +5 -0
  220. package/dist/components/pagination/Pagination.cjs +143 -17
  221. package/dist/components/pagination/Pagination.cjs.map +2 -2
  222. package/dist/components/pagination/Pagination.d.cts +64 -4
  223. package/dist/components/pagination/Pagination.d.cts.map +1 -1
  224. package/dist/components/pagination/Pagination.d.mts +64 -4
  225. package/dist/components/pagination/Pagination.d.mts.map +1 -1
  226. package/dist/components/pagination/Pagination.d.ts +64 -4
  227. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  228. package/dist/components/pagination/Pagination.js +143 -17
  229. package/dist/components/pagination/Pagination.js.map +2 -2
  230. package/dist/components/pagination.css +50 -8
  231. package/dist/components/phoneInput/PhoneInput.cjs +18 -13
  232. package/dist/components/phoneInput/PhoneInput.cjs.map +2 -2
  233. package/dist/components/phoneInput/PhoneInput.d.cts.map +1 -1
  234. package/dist/components/phoneInput/PhoneInput.d.mts.map +1 -1
  235. package/dist/components/phoneInput/PhoneInput.d.ts.map +1 -1
  236. package/dist/components/phoneInput/PhoneInput.js +19 -14
  237. package/dist/components/phoneInput/PhoneInput.js.map +2 -2
  238. package/dist/components/popover/Popover.cjs +2 -1
  239. package/dist/components/popover/Popover.cjs.map +2 -2
  240. package/dist/components/popover/Popover.d.cts.map +1 -1
  241. package/dist/components/popover/Popover.d.mts.map +1 -1
  242. package/dist/components/popover/Popover.d.ts.map +1 -1
  243. package/dist/components/popover/Popover.js +2 -1
  244. package/dist/components/popover/Popover.js.map +2 -2
  245. package/dist/components/prose.css +1 -1
  246. package/dist/components/qr-code.css +5 -15
  247. package/dist/components/radio-group.css +19 -0
  248. package/dist/components/radioGroup/RadioGroup.cjs +3 -2
  249. package/dist/components/radioGroup/RadioGroup.cjs.map +2 -2
  250. package/dist/components/radioGroup/RadioGroup.d.cts.map +1 -1
  251. package/dist/components/radioGroup/RadioGroup.d.mts.map +1 -1
  252. package/dist/components/radioGroup/RadioGroup.d.ts.map +1 -1
  253. package/dist/components/radioGroup/RadioGroup.js +3 -2
  254. package/dist/components/radioGroup/RadioGroup.js.map +2 -2
  255. package/dist/components/radioGroup/radioGroup.props.cjs +1 -1
  256. package/dist/components/radioGroup/radioGroup.props.cjs.map +2 -2
  257. package/dist/components/radioGroup/radioGroup.props.d.cts +1 -1
  258. package/dist/components/radioGroup/radioGroup.props.d.mts +1 -1
  259. package/dist/components/radioGroup/radioGroup.props.d.ts +1 -1
  260. package/dist/components/radioGroup/radioGroup.props.js +1 -1
  261. package/dist/components/radioGroup/radioGroup.props.js.map +2 -2
  262. package/dist/components/rating.css +12 -0
  263. package/dist/components/result.css +2 -1
  264. package/dist/components/richTextEditor/RichTextEditor.cjs +11 -3
  265. package/dist/components/richTextEditor/RichTextEditor.cjs.map +2 -2
  266. package/dist/components/richTextEditor/RichTextEditor.d.cts.map +1 -1
  267. package/dist/components/richTextEditor/RichTextEditor.d.mts.map +1 -1
  268. package/dist/components/richTextEditor/RichTextEditor.d.ts.map +1 -1
  269. package/dist/components/richTextEditor/RichTextEditor.js +11 -3
  270. package/dist/components/richTextEditor/RichTextEditor.js.map +2 -2
  271. package/dist/components/segmented-control.css +80 -4
  272. package/dist/components/segmentedControl/SegmentedControl.cjs +18 -5
  273. package/dist/components/segmentedControl/SegmentedControl.cjs.map +2 -2
  274. package/dist/components/segmentedControl/SegmentedControl.d.cts.map +1 -1
  275. package/dist/components/segmentedControl/SegmentedControl.d.mts.map +1 -1
  276. package/dist/components/segmentedControl/SegmentedControl.d.ts.map +1 -1
  277. package/dist/components/segmentedControl/SegmentedControl.js +18 -5
  278. package/dist/components/segmentedControl/SegmentedControl.js.map +2 -2
  279. package/dist/components/segmentedControl/segmentedControl.props.cjs +10 -0
  280. package/dist/components/segmentedControl/segmentedControl.props.cjs.map +2 -2
  281. package/dist/components/segmentedControl/segmentedControl.props.d.cts +9 -0
  282. package/dist/components/segmentedControl/segmentedControl.props.d.cts.map +1 -1
  283. package/dist/components/segmentedControl/segmentedControl.props.d.mts +9 -0
  284. package/dist/components/segmentedControl/segmentedControl.props.d.mts.map +1 -1
  285. package/dist/components/segmentedControl/segmentedControl.props.d.ts +9 -0
  286. package/dist/components/segmentedControl/segmentedControl.props.d.ts.map +1 -1
  287. package/dist/components/segmentedControl/segmentedControl.props.js +10 -0
  288. package/dist/components/segmentedControl/segmentedControl.props.js.map +2 -2
  289. package/dist/components/select/Select.cjs +3 -1
  290. package/dist/components/select/Select.cjs.map +2 -2
  291. package/dist/components/select/Select.d.cts.map +1 -1
  292. package/dist/components/select/Select.d.mts.map +1 -1
  293. package/dist/components/select/Select.d.ts.map +1 -1
  294. package/dist/components/select/Select.js +3 -1
  295. package/dist/components/select/Select.js.map +2 -2
  296. package/dist/components/select.css +1 -1
  297. package/dist/components/sonner.css +1 -1
  298. package/dist/components/sortableList/SortableList.cjs +8 -2
  299. package/dist/components/sortableList/SortableList.cjs.map +2 -2
  300. package/dist/components/sortableList/SortableList.d.cts.map +1 -1
  301. package/dist/components/sortableList/SortableList.d.mts.map +1 -1
  302. package/dist/components/sortableList/SortableList.d.ts.map +1 -1
  303. package/dist/components/sortableList/SortableList.js +8 -2
  304. package/dist/components/sortableList/SortableList.js.map +2 -2
  305. package/dist/components/stat-card.css +2 -0
  306. package/dist/components/table/Table.cjs +3 -2
  307. package/dist/components/table/Table.cjs.map +2 -2
  308. package/dist/components/table/Table.d.cts.map +1 -1
  309. package/dist/components/table/Table.d.mts.map +1 -1
  310. package/dist/components/table/Table.d.ts.map +1 -1
  311. package/dist/components/table/Table.js +3 -2
  312. package/dist/components/table/Table.js.map +2 -2
  313. package/dist/components/table/table.props.cjs +6 -0
  314. package/dist/components/table/table.props.cjs.map +2 -2
  315. package/dist/components/table/table.props.d.cts +5 -0
  316. package/dist/components/table/table.props.d.cts.map +1 -1
  317. package/dist/components/table/table.props.d.mts +5 -0
  318. package/dist/components/table/table.props.d.mts.map +1 -1
  319. package/dist/components/table/table.props.d.ts +5 -0
  320. package/dist/components/table/table.props.d.ts.map +1 -1
  321. package/dist/components/table/table.props.js +6 -0
  322. package/dist/components/table/table.props.js.map +2 -2
  323. package/dist/components/table.css +20 -13
  324. package/dist/components/tabs.css +10 -0
  325. package/dist/components/timeline.css +54 -18
  326. package/dist/components/toast.css +33 -1
  327. package/dist/components/toggle-group.css +5 -0
  328. package/dist/components.css +1 -2
  329. package/dist/docs/README.md +1 -1
  330. package/dist/docs/component-contract.md +4 -4
  331. package/dist/docs/component-index.json +9 -9
  332. package/dist/docs/components/banner.md +152 -0
  333. package/dist/docs/components/button-group.md +4 -3
  334. package/dist/docs/components/button.md +2 -2
  335. package/dist/docs/components/card.md +1 -0
  336. package/dist/docs/components/carousel.md +55 -32
  337. package/dist/docs/components/chart.md +25 -7
  338. package/dist/docs/components/checkbox.md +4 -0
  339. package/dist/docs/components/combobox.md +3 -1
  340. package/dist/docs/components/command.md +2 -2
  341. package/dist/docs/components/copy-field.md +2 -2
  342. package/dist/docs/components/data-list.md +15 -3
  343. package/dist/docs/components/data-table.md +98 -17
  344. package/dist/docs/components/dialog.md +4 -0
  345. package/dist/docs/components/dropdown-menu.md +2 -1
  346. package/dist/docs/components/empty-state.md +3 -1
  347. package/dist/docs/components/file-upload.md +1 -0
  348. package/dist/docs/components/filter-bar.md +193 -8
  349. package/dist/docs/components/floating-panel.md +8 -8
  350. package/dist/docs/components/icon-button.md +4 -1
  351. package/dist/docs/components/item.md +18 -13
  352. package/dist/docs/components/marquee.md +2 -2
  353. package/dist/docs/components/menu.md +4 -1
  354. package/dist/docs/components/metric.md +4 -1
  355. package/dist/docs/components/pagination.md +88 -17
  356. package/dist/docs/components/pills.md +1 -1
  357. package/dist/docs/components/popover.md +2 -0
  358. package/dist/docs/components/prose.md +5 -1
  359. package/dist/docs/components/qr-code.md +14 -13
  360. package/dist/docs/components/radio-group.md +5 -2
  361. package/dist/docs/components/rating.md +2 -0
  362. package/dist/docs/components/result.md +6 -0
  363. package/dist/docs/components/segmented-control.md +7 -2
  364. package/dist/docs/components/select.md +3 -2
  365. package/dist/docs/components/sidebar.md +3 -1
  366. package/dist/docs/components/sonner.md +1 -1
  367. package/dist/docs/components/sortable-list.md +2 -0
  368. package/dist/docs/components/stat-card.md +5 -4
  369. package/dist/docs/components/stepper.md +1 -0
  370. package/dist/docs/components/table.md +14 -5
  371. package/dist/docs/components/tag.md +4 -2
  372. package/dist/docs/components/timeline.md +9 -5
  373. package/dist/docs/components/toast.md +1 -1
  374. package/dist/docs/components/toggle-group.md +2 -1
  375. package/dist/fonts.css +1 -1
  376. package/dist/generated/tokens.cjs +1 -1
  377. package/dist/generated/tokens.cjs.map +1 -1
  378. package/dist/generated/tokens.js +1 -1
  379. package/dist/generated/tokens.js.map +1 -1
  380. package/dist/motion.css +18 -3
  381. package/dist/styles.css +1249 -292
  382. package/dist/tokens.css +21 -15
  383. package/package.json +1 -1
  384. package/dist/components/control-group.css +0 -142
  385. package/dist/components/controlGroup/ControlGroup.cjs.map +0 -7
  386. package/dist/components/controlGroup/ControlGroup.d.cts +0 -16
  387. package/dist/components/controlGroup/ControlGroup.d.cts.map +0 -1
  388. package/dist/components/controlGroup/ControlGroup.d.mts +0 -16
  389. package/dist/components/controlGroup/ControlGroup.d.mts.map +0 -1
  390. package/dist/components/controlGroup/ControlGroup.d.ts +0 -16
  391. package/dist/components/controlGroup/ControlGroup.d.ts.map +0 -1
  392. package/dist/components/controlGroup/ControlGroup.js +0 -26
  393. package/dist/components/controlGroup/ControlGroup.js.map +0 -7
  394. package/dist/components/controlGroup/controlGroup.props.cjs.map +0 -7
  395. package/dist/components/controlGroup/controlGroup.props.d.cts +0 -18
  396. package/dist/components/controlGroup/controlGroup.props.d.cts.map +0 -1
  397. package/dist/components/controlGroup/controlGroup.props.d.mts +0 -18
  398. package/dist/components/controlGroup/controlGroup.props.d.mts.map +0 -1
  399. package/dist/components/controlGroup/controlGroup.props.d.ts +0 -18
  400. package/dist/components/controlGroup/controlGroup.props.d.ts.map +0 -1
  401. package/dist/components/controlGroup/controlGroup.props.js +0 -20
  402. package/dist/components/controlGroup/controlGroup.props.js.map +0 -7
  403. package/dist/docs/components/control-group.md +0 -261
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.d.cts","sourceRoot":"","sources":["../../../src/components/richTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RichTextEditor.d.cts","sourceRoot":"","sources":["../../../src/components/richTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.d.mts","sourceRoot":"","sources":["../../../src/components/richTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RichTextEditor.d.mts","sourceRoot":"","sources":["../../../src/components/richTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.d.ts","sourceRoot":"","sources":["../../../src/components/richTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RichTextEditor.d.ts","sourceRoot":"","sources":["../../../src/components/richTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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"}
@@ -353,6 +353,14 @@ const RichTextEditorRoot = React.forwardRef(
353
353
  ...props
354
354
  }, forwardedRef) => {
355
355
  const managedContent = isRichTextEditorContent(content) ? content : void 0;
356
+ const onEditorUpdateRef = React.useRef(onEditorUpdate);
357
+ const onUpdateRef = React.useRef(onUpdate);
358
+ const serializeRef = React.useRef(serialize);
359
+ React.useEffect(() => {
360
+ onEditorUpdateRef.current = onEditorUpdate;
361
+ onUpdateRef.current = onUpdate;
362
+ serializeRef.current = serialize;
363
+ });
356
364
  const editor = useEditor(
357
365
  {
358
366
  ...editorOptions,
@@ -366,11 +374,11 @@ const RichTextEditorRoot = React.forwardRef(
366
374
  attributes: getRichTextEditorAttributes(editorOptions)
367
375
  },
368
376
  onUpdate: ({ editor: currentEditor }) => {
369
- onEditorUpdate?.(currentEditor);
370
- onUpdate?.((serialize ?? ((editorInstance) => editorInstance.getHTML()))(currentEditor));
377
+ onEditorUpdateRef.current?.(currentEditor);
378
+ onUpdateRef.current?.((serializeRef.current ?? ((editorInstance) => editorInstance.getHTML()))(currentEditor));
371
379
  }
372
380
  },
373
- [disabled, editorOptions, extensions, onEditorUpdate, onUpdate, preset, serialize]
381
+ [disabled, editorOptions, extensions, preset]
374
382
  );
375
383
  React.useEffect(() => {
376
384
  editor?.setEditable(!disabled);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/richTextEditor/RichTextEditor.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { EditorContent, useEditor, type Content, type Editor, type UseEditorOptions } from '@tiptap/react'\nimport StarterKit from '@tiptap/starter-kit'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { richTextEditorContentPropDefs, richTextEditorPropDefs, richTextEditorToolbarButtonPropDefs } from './richTextEditor.props'\nimport { Button } from '../button/Button'\nimport { Icon } from '../icon/Icon'\nimport { createArticleExtensions } from '../articleNodes/articleExtensions'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype RichTextEditorOwnProps = GetPropDefTypes<typeof richTextEditorPropDefs>\ntype RichTextEditorContentOwnProps = GetPropDefTypes<typeof richTextEditorContentPropDefs>\ntype RichTextEditorToolbarButtonOwnProps = GetPropDefTypes<typeof richTextEditorToolbarButtonPropDefs>\n\ntype RichTextEditorManagedEditorOptions = Omit<UseEditorOptions, 'content' | 'editable' | 'extensions' | 'onUpdate'>\ntype RichTextEditorToolbarSlot = React.ReactNode | ((context: { disabled: boolean; editor: Editor | null }) => React.ReactNode)\n\nconst defaultRichTextEditorExtensions: NonNullable<UseEditorOptions['extensions']> = [StarterKit]\n\ntype RichTextEditorPreset = 'basic' | 'article'\ntype RichTextEditorExtensionConfig = { preset?: RichTextEditorPreset; extensions?: UseEditorOptions['extensions'] }\n\nfunction createRichTextEditorExtensions(config: RichTextEditorExtensionConfig = {}): NonNullable<UseEditorOptions['extensions']> {\n if (config.extensions) return config.extensions\n return config.preset === 'article' ? [StarterKit.configure({ codeBlock: false }), ...createArticleExtensions()] : defaultRichTextEditorExtensions\n}\n\nfunction isRichTextEditorContent(value: unknown): value is Content {\n return value === null || typeof value === 'string' || typeof value === 'object'\n}\n\nfunction renderRichTextEditorToolbar(toolbar: RichTextEditorToolbarSlot | null | undefined, editor: Editor | null, disabled: boolean) {\n if (toolbar === null) {\n return null\n }\n\n if (typeof toolbar === 'function') {\n return toolbar({ disabled, editor })\n }\n\n if (toolbar !== undefined) {\n return toolbar\n }\n\n return <RichTextEditorToolbar editor={editor} disabled={disabled} />\n}\n\nfunction getRichTextEditorAttributes(editorOptions?: RichTextEditorManagedEditorOptions) {\n const attributes = editorOptions?.editorProps?.attributes\n\n if (!attributes || typeof attributes === 'function') {\n return {\n class: 'dsx-rich-text-editor__prosemirror',\n 'data-slot': 'rich-text-editor-prosemirror',\n }\n }\n\n return {\n ...attributes,\n class: classNames('dsx-rich-text-editor__prosemirror', attributes.class),\n 'data-slot': 'rich-text-editor-prosemirror',\n }\n}\n\nfunction getRichTextEditorStatus(editor: Editor | null) {\n if (!editor) {\n return 'Editor loading'\n }\n\n const plainText = editor.getText().trim()\n\n if (plainText.length === 0) {\n return 'Ready to write'\n }\n\n return `${plainText.length} characters`\n}\n\ninterface RichTextEditorProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'content' | 'onUpdate'>,\n RichTextEditorOwnProps {\n content?: unknown\n editorOptions?: RichTextEditorManagedEditorOptions\n extensions?: UseEditorOptions['extensions']\n onEditorUpdate?: (editor: Editor) => void\n onUpdate?: (content: string) => void\n placeholder?: string\n preset?: RichTextEditorPreset\n serialize?: (editor: Editor) => string\n toolbar?: RichTextEditorToolbarSlot | null\n}\n\ninterface RichTextEditorShellProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, RichTextEditorOwnProps {\n editor: Editor | null\n placeholder?: string\n toolbar?: RichTextEditorToolbarSlot | null\n}\n\ninterface RichTextEditorToolbarProps extends React.HTMLAttributes<HTMLDivElement> {\n editor: Editor | null\n disabled?: boolean\n}\n\ninterface RichTextEditorContentProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>,\n RichTextEditorContentOwnProps {\n editor: Editor | null\n placeholder?: string\n}\n\ninterface RichTextEditorToolbarButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n RichTextEditorToolbarButtonOwnProps {}\n\nconst RichTextEditorShell = React.forwardRef<HTMLDivElement, RichTextEditorShellProps>(\n ({ className: propClassName, disabled = false, editor, placeholder, toolbar, ...props }, forwardedRef) => {\n const {\n asChild: _asChild,\n className,\n ...editorProps\n } = extractProps(\n {\n ...props,\n className: propClassName,\n disabled,\n },\n richTextEditorPropDefs,\n )\n\n return (\n <div\n {...editorProps}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor', className)}\n aria-disabled={disabled}\n data-disabled={disabled ? 'true' : undefined}\n data-slot=\"rich-text-editor\"\n >\n {renderRichTextEditorToolbar(toolbar, editor, disabled)}\n <RichTextEditorContent editor={editor} placeholder={placeholder} disabled={disabled} />\n <div className=\"dsx-rich-text-editor__status\" data-slot=\"rich-text-editor-status\">\n <span>{getRichTextEditorStatus(editor)}</span>\n </div>\n </div>\n )\n },\n)\nRichTextEditorShell.displayName = 'RichTextEditorShell'\n\nconst RichTextEditorToolbarButton = React.forwardRef<HTMLButtonElement, RichTextEditorToolbarButtonProps>(\n ({ active = false, className: propClassName, ...props }, forwardedRef) => {\n const { asChild, className, ...buttonProps } = extractProps(\n {\n ...props,\n className: propClassName,\n active,\n },\n richTextEditorToolbarButtonPropDefs,\n )\n\n return (\n <Button\n {...buttonProps}\n ref={forwardedRef}\n asChild={asChild}\n variant=\"ghost\"\n size=\"sm\"\n aria-pressed={active}\n data-active={active ? 'true' : undefined}\n data-slot=\"rich-text-editor-toolbar-button\"\n className={classNames('dsx-rich-text-editor__toolbar-button', className)}\n />\n )\n },\n)\nRichTextEditorToolbarButton.displayName = 'RichTextEditorToolbarButton'\n\nconst RichTextEditorToolbar = React.forwardRef<HTMLDivElement, RichTextEditorToolbarProps>(\n ({ editor, disabled = false, className, ...props }, forwardedRef) => {\n const toolbarDisabled = disabled || !editor\n\n return (\n <div\n {...props}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor__toolbar', className)}\n data-disabled={toolbarDisabled ? 'true' : undefined}\n data-slot=\"rich-text-editor-toolbar\"\n role=\"toolbar\"\n aria-label=\"Formatting toolbar\"\n >\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"Text style\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">Text</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('bold') ?? false}\n aria-label=\"Bold\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleBold().run()}\n >\n <Icon name=\"bold\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('italic') ?? false}\n aria-label=\"Italic\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleItalic().run()}\n >\n <Icon name=\"italic\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('strike') ?? false}\n aria-label=\"Strikethrough\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleStrike().run()}\n >\n <Icon name=\"strikethrough\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"Block style\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">Blocks</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('heading', { level: 1 }) ?? false}\n aria-label=\"Heading 1\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Icon name=\"heading-1\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('heading', { level: 2 }) ?? false}\n aria-label=\"Heading\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Icon name=\"heading-2\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('heading', { level: 3 }) ?? false}\n aria-label=\"Subheading\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleHeading({ level: 3 }).run()}\n >\n <Icon name=\"heading-3\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('bulletList') ?? false}\n aria-label=\"Bulleted list\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleBulletList().run()}\n >\n <Icon name=\"list\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('orderedList') ?? false}\n aria-label=\"Numbered list\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleOrderedList().run()}\n >\n <Icon name=\"list-ordered\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('blockquote') ?? false}\n aria-label=\"Quote block\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleBlockquote().run()}\n >\n <Icon name=\"quote\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('codeBlock') ?? false}\n aria-label=\"Code block\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleCodeBlock().run()}\n >\n <Icon name=\"code\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"Insert\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">Insert</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('link') ?? false}\n aria-label=\"Link\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (!editor) return\n if (editor.isActive('link')) {\n editor.chain().focus().unsetLink().run()\n return\n }\n const url = window.prompt('URL')\n if (!url) return\n editor.chain().focus().extendMarkRange('link').setLink({ href: url }).run()\n }}\n >\n <Icon name=\"link\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n aria-label=\"Clear formatting\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().clearNodes().unsetAllMarks().run()}\n >\n <Icon name=\"eraser\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"History\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">History</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled || !editor?.can().undo()}\n aria-label=\"Undo\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().undo().run()}\n >\n <Icon name=\"undo\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled || !editor?.can().redo()}\n aria-label=\"Redo\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().redo().run()}\n >\n <Icon name=\"redo\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n </div>\n )\n },\n)\nRichTextEditorToolbar.displayName = 'RichTextEditorToolbar'\n\nconst RichTextEditorContent = React.forwardRef<HTMLDivElement, RichTextEditorContentProps>(\n ({ className: propClassName, disabled = false, editor, placeholder, ...props }, forwardedRef) => {\n const {\n asChild: _asChild,\n className,\n mode: _mode,\n ...contentProps\n } = extractProps(\n {\n ...props,\n className: propClassName,\n disabled,\n },\n richTextEditorContentPropDefs,\n )\n\n return (\n <div\n {...contentProps}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor__area', className)}\n data-disabled={disabled ? 'true' : undefined}\n data-slot=\"rich-text-editor-area\"\n >\n {editor?.isEmpty && placeholder ? (\n <div className=\"dsx-rich-text-editor__placeholder\" data-slot=\"rich-text-editor-placeholder\">\n {placeholder}\n </div>\n ) : null}\n <EditorContent editor={editor} className=\"dsx-rich-text-editor__content\" data-slot=\"rich-text-editor-content\" />\n </div>\n )\n },\n)\nRichTextEditorContent.displayName = 'RichTextEditorContent'\n\nconst RichTextEditorRoot = React.forwardRef<HTMLDivElement, RichTextEditorProps>(\n (\n {\n className,\n content = '',\n disabled = false,\n editorOptions,\n extensions,\n onEditorUpdate,\n onUpdate,\n placeholder,\n preset = 'basic',\n serialize,\n toolbar,\n ...props\n },\n forwardedRef,\n ) => {\n const managedContent = isRichTextEditorContent(content) ? content : undefined\n\n const editor = useEditor(\n {\n ...editorOptions,\n content: managedContent,\n editable: !disabled,\n extensions: extensions ?? createRichTextEditorExtensions({ preset }),\n immediatelyRender: false,\n shouldRerenderOnTransaction: true,\n editorProps: {\n ...editorOptions?.editorProps,\n attributes: getRichTextEditorAttributes(editorOptions),\n },\n onUpdate: ({ editor: currentEditor }) => {\n onEditorUpdate?.(currentEditor)\n onUpdate?.((serialize ?? ((editorInstance: Editor) => editorInstance.getHTML()))(currentEditor))\n },\n },\n [disabled, editorOptions, extensions, onEditorUpdate, onUpdate, preset, serialize],\n )\n\n React.useEffect(() => {\n editor?.setEditable(!disabled)\n }, [disabled, editor])\n\n React.useEffect(() => {\n if (!editor) {\n return\n }\n\n if (managedContent === undefined) {\n return\n }\n\n if (typeof managedContent === 'string') {\n if (editor.getHTML() !== managedContent) {\n editor.commands.setContent(managedContent, { emitUpdate: false })\n }\n\n return\n }\n\n if (JSON.stringify(editor.getJSON()) !== JSON.stringify(managedContent)) {\n editor.commands.setContent(managedContent, { emitUpdate: false })\n }\n }, [editor, managedContent])\n\n return (\n <RichTextEditorShell\n {...props}\n ref={forwardedRef}\n className={className}\n disabled={disabled}\n editor={editor}\n placeholder={placeholder}\n toolbar={toolbar}\n />\n )\n },\n)\nRichTextEditorRoot.displayName = 'RichTextEditor'\n\nconst RichTextEditor: typeof RichTextEditorRoot & {\n Shell: typeof RichTextEditorShell\n Toolbar: typeof RichTextEditorToolbar\n Content: typeof RichTextEditorContent\n} = Object.assign(RichTextEditorRoot, {\n Shell: RichTextEditorShell,\n Toolbar: RichTextEditorToolbar,\n Content: RichTextEditorContent,\n})\n\nexport { RichTextEditor, RichTextEditorContent, RichTextEditorRoot, RichTextEditorShell, RichTextEditorToolbar, createRichTextEditorExtensions }\nexport type {\n RichTextEditorContentProps,\n RichTextEditorProps,\n RichTextEditorShellProps,\n RichTextEditorToolbarProps,\n RichTextEditorToolbarSlot,\n RichTextEditorPreset,\n RichTextEditorExtensionConfig,\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport classNames from 'classnames'\nimport { EditorContent, useEditor, type Content, type Editor, type UseEditorOptions } from '@tiptap/react'\nimport StarterKit from '@tiptap/starter-kit'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { richTextEditorContentPropDefs, richTextEditorPropDefs, richTextEditorToolbarButtonPropDefs } from './richTextEditor.props'\nimport { Button } from '../button/Button'\nimport { Icon } from '../icon/Icon'\nimport { createArticleExtensions } from '../articleNodes/articleExtensions'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype RichTextEditorOwnProps = GetPropDefTypes<typeof richTextEditorPropDefs>\ntype RichTextEditorContentOwnProps = GetPropDefTypes<typeof richTextEditorContentPropDefs>\ntype RichTextEditorToolbarButtonOwnProps = GetPropDefTypes<typeof richTextEditorToolbarButtonPropDefs>\n\ntype RichTextEditorManagedEditorOptions = Omit<UseEditorOptions, 'content' | 'editable' | 'extensions' | 'onUpdate'>\ntype RichTextEditorToolbarSlot = React.ReactNode | ((context: { disabled: boolean; editor: Editor | null }) => React.ReactNode)\n\nconst defaultRichTextEditorExtensions: NonNullable<UseEditorOptions['extensions']> = [StarterKit]\n\ntype RichTextEditorPreset = 'basic' | 'article'\ntype RichTextEditorExtensionConfig = { preset?: RichTextEditorPreset; extensions?: UseEditorOptions['extensions'] }\n\nfunction createRichTextEditorExtensions(config: RichTextEditorExtensionConfig = {}): NonNullable<UseEditorOptions['extensions']> {\n if (config.extensions) return config.extensions\n return config.preset === 'article' ? [StarterKit.configure({ codeBlock: false }), ...createArticleExtensions()] : defaultRichTextEditorExtensions\n}\n\nfunction isRichTextEditorContent(value: unknown): value is Content {\n return value === null || typeof value === 'string' || typeof value === 'object'\n}\n\nfunction renderRichTextEditorToolbar(toolbar: RichTextEditorToolbarSlot | null | undefined, editor: Editor | null, disabled: boolean) {\n if (toolbar === null) {\n return null\n }\n\n if (typeof toolbar === 'function') {\n return toolbar({ disabled, editor })\n }\n\n if (toolbar !== undefined) {\n return toolbar\n }\n\n return <RichTextEditorToolbar editor={editor} disabled={disabled} />\n}\n\nfunction getRichTextEditorAttributes(editorOptions?: RichTextEditorManagedEditorOptions) {\n const attributes = editorOptions?.editorProps?.attributes\n\n if (!attributes || typeof attributes === 'function') {\n return {\n class: 'dsx-rich-text-editor__prosemirror',\n 'data-slot': 'rich-text-editor-prosemirror',\n }\n }\n\n return {\n ...attributes,\n class: classNames('dsx-rich-text-editor__prosemirror', attributes.class),\n 'data-slot': 'rich-text-editor-prosemirror',\n }\n}\n\nfunction getRichTextEditorStatus(editor: Editor | null) {\n if (!editor) {\n return 'Editor loading'\n }\n\n const plainText = editor.getText().trim()\n\n if (plainText.length === 0) {\n return 'Ready to write'\n }\n\n return `${plainText.length} characters`\n}\n\ninterface RichTextEditorProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'content' | 'onUpdate'>,\n RichTextEditorOwnProps {\n content?: unknown\n editorOptions?: RichTextEditorManagedEditorOptions\n extensions?: UseEditorOptions['extensions']\n onEditorUpdate?: (editor: Editor) => void\n onUpdate?: (content: string) => void\n placeholder?: string\n preset?: RichTextEditorPreset\n serialize?: (editor: Editor) => string\n toolbar?: RichTextEditorToolbarSlot | null\n}\n\ninterface RichTextEditorShellProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, RichTextEditorOwnProps {\n editor: Editor | null\n placeholder?: string\n toolbar?: RichTextEditorToolbarSlot | null\n}\n\ninterface RichTextEditorToolbarProps extends React.HTMLAttributes<HTMLDivElement> {\n editor: Editor | null\n disabled?: boolean\n}\n\ninterface RichTextEditorContentProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>,\n RichTextEditorContentOwnProps {\n editor: Editor | null\n placeholder?: string\n}\n\ninterface RichTextEditorToolbarButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n RichTextEditorToolbarButtonOwnProps {}\n\nconst RichTextEditorShell = React.forwardRef<HTMLDivElement, RichTextEditorShellProps>(\n ({ className: propClassName, disabled = false, editor, placeholder, toolbar, ...props }, forwardedRef) => {\n const {\n asChild: _asChild,\n className,\n ...editorProps\n } = extractProps(\n {\n ...props,\n className: propClassName,\n disabled,\n },\n richTextEditorPropDefs,\n )\n\n return (\n <div\n {...editorProps}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor', className)}\n aria-disabled={disabled}\n data-disabled={disabled ? 'true' : undefined}\n data-slot=\"rich-text-editor\"\n >\n {renderRichTextEditorToolbar(toolbar, editor, disabled)}\n <RichTextEditorContent editor={editor} placeholder={placeholder} disabled={disabled} />\n <div className=\"dsx-rich-text-editor__status\" data-slot=\"rich-text-editor-status\">\n <span>{getRichTextEditorStatus(editor)}</span>\n </div>\n </div>\n )\n },\n)\nRichTextEditorShell.displayName = 'RichTextEditorShell'\n\nconst RichTextEditorToolbarButton = React.forwardRef<HTMLButtonElement, RichTextEditorToolbarButtonProps>(\n ({ active = false, className: propClassName, ...props }, forwardedRef) => {\n const { asChild, className, ...buttonProps } = extractProps(\n {\n ...props,\n className: propClassName,\n active,\n },\n richTextEditorToolbarButtonPropDefs,\n )\n\n return (\n <Button\n {...buttonProps}\n ref={forwardedRef}\n asChild={asChild}\n variant=\"ghost\"\n size=\"sm\"\n aria-pressed={active}\n data-active={active ? 'true' : undefined}\n data-slot=\"rich-text-editor-toolbar-button\"\n className={classNames('dsx-rich-text-editor__toolbar-button', className)}\n />\n )\n },\n)\nRichTextEditorToolbarButton.displayName = 'RichTextEditorToolbarButton'\n\nconst RichTextEditorToolbar = React.forwardRef<HTMLDivElement, RichTextEditorToolbarProps>(\n ({ editor, disabled = false, className, ...props }, forwardedRef) => {\n const toolbarDisabled = disabled || !editor\n\n return (\n <div\n {...props}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor__toolbar', className)}\n data-disabled={toolbarDisabled ? 'true' : undefined}\n data-slot=\"rich-text-editor-toolbar\"\n role=\"toolbar\"\n aria-label=\"Formatting toolbar\"\n >\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"Text style\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">Text</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('bold') ?? false}\n aria-label=\"Bold\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleBold().run()}\n >\n <Icon name=\"bold\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('italic') ?? false}\n aria-label=\"Italic\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleItalic().run()}\n >\n <Icon name=\"italic\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('strike') ?? false}\n aria-label=\"Strikethrough\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleStrike().run()}\n >\n <Icon name=\"strikethrough\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"Block style\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">Blocks</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('heading', { level: 1 }) ?? false}\n aria-label=\"Heading 1\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleHeading({ level: 1 }).run()}\n >\n <Icon name=\"heading-1\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('heading', { level: 2 }) ?? false}\n aria-label=\"Heading\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleHeading({ level: 2 }).run()}\n >\n <Icon name=\"heading-2\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('heading', { level: 3 }) ?? false}\n aria-label=\"Subheading\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleHeading({ level: 3 }).run()}\n >\n <Icon name=\"heading-3\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('bulletList') ?? false}\n aria-label=\"Bulleted list\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleBulletList().run()}\n >\n <Icon name=\"list\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('orderedList') ?? false}\n aria-label=\"Numbered list\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleOrderedList().run()}\n >\n <Icon name=\"list-ordered\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('blockquote') ?? false}\n aria-label=\"Quote block\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleBlockquote().run()}\n >\n <Icon name=\"quote\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('codeBlock') ?? false}\n aria-label=\"Code block\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().toggleCodeBlock().run()}\n >\n <Icon name=\"code\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"Insert\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">Insert</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n active={editor?.isActive('link') ?? false}\n aria-label=\"Link\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (!editor) return\n if (editor.isActive('link')) {\n editor.chain().focus().unsetLink().run()\n return\n }\n const url = window.prompt('URL')\n if (!url) return\n editor.chain().focus().extendMarkRange('link').setLink({ href: url }).run()\n }}\n >\n <Icon name=\"link\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled}\n aria-label=\"Clear formatting\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().clearNodes().unsetAllMarks().run()}\n >\n <Icon name=\"eraser\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n <div className=\"dsx-rich-text-editor__toolbar-group\" role=\"group\" aria-label=\"History\">\n <span className=\"dsx-rich-text-editor__toolbar-label\">History</span>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled || !editor?.can().undo()}\n aria-label=\"Undo\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().undo().run()}\n >\n <Icon name=\"undo\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n <RichTextEditorToolbarButton\n disabled={toolbarDisabled || !editor?.can().redo()}\n aria-label=\"Redo\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => editor?.chain().focus().redo().run()}\n >\n <Icon name=\"redo\" size=\"sm\" />\n </RichTextEditorToolbarButton>\n </div>\n </div>\n )\n },\n)\nRichTextEditorToolbar.displayName = 'RichTextEditorToolbar'\n\nconst RichTextEditorContent = React.forwardRef<HTMLDivElement, RichTextEditorContentProps>(\n ({ className: propClassName, disabled = false, editor, placeholder, ...props }, forwardedRef) => {\n const {\n asChild: _asChild,\n className,\n mode: _mode,\n ...contentProps\n } = extractProps(\n {\n ...props,\n className: propClassName,\n disabled,\n },\n richTextEditorContentPropDefs,\n )\n\n return (\n <div\n {...contentProps}\n ref={forwardedRef}\n className={classNames('dsx-rich-text-editor__area', className)}\n data-disabled={disabled ? 'true' : undefined}\n data-slot=\"rich-text-editor-area\"\n >\n {editor?.isEmpty && placeholder ? (\n <div className=\"dsx-rich-text-editor__placeholder\" data-slot=\"rich-text-editor-placeholder\">\n {placeholder}\n </div>\n ) : null}\n <EditorContent editor={editor} className=\"dsx-rich-text-editor__content\" data-slot=\"rich-text-editor-content\" />\n </div>\n )\n },\n)\nRichTextEditorContent.displayName = 'RichTextEditorContent'\n\nconst RichTextEditorRoot = React.forwardRef<HTMLDivElement, RichTextEditorProps>(\n (\n {\n className,\n content = '',\n disabled = false,\n editorOptions,\n extensions,\n onEditorUpdate,\n onUpdate,\n placeholder,\n preset = 'basic',\n serialize,\n toolbar,\n ...props\n },\n forwardedRef,\n ) => {\n const managedContent = isRichTextEditorContent(content) ? content : undefined\n\n const onEditorUpdateRef = React.useRef(onEditorUpdate)\n const onUpdateRef = React.useRef(onUpdate)\n const serializeRef = React.useRef(serialize)\n\n React.useEffect(() => {\n onEditorUpdateRef.current = onEditorUpdate\n onUpdateRef.current = onUpdate\n serializeRef.current = serialize\n })\n\n const editor = useEditor(\n {\n ...editorOptions,\n content: managedContent,\n editable: !disabled,\n extensions: extensions ?? createRichTextEditorExtensions({ preset }),\n immediatelyRender: false,\n shouldRerenderOnTransaction: true,\n editorProps: {\n ...editorOptions?.editorProps,\n attributes: getRichTextEditorAttributes(editorOptions),\n },\n onUpdate: ({ editor: currentEditor }) => {\n onEditorUpdateRef.current?.(currentEditor)\n onUpdateRef.current?.((serializeRef.current ?? ((editorInstance: Editor) => editorInstance.getHTML()))(currentEditor))\n },\n },\n [disabled, editorOptions, extensions, preset],\n )\n\n React.useEffect(() => {\n editor?.setEditable(!disabled)\n }, [disabled, editor])\n\n React.useEffect(() => {\n if (!editor) {\n return\n }\n\n if (managedContent === undefined) {\n return\n }\n\n if (typeof managedContent === 'string') {\n if (editor.getHTML() !== managedContent) {\n editor.commands.setContent(managedContent, { emitUpdate: false })\n }\n\n return\n }\n\n if (JSON.stringify(editor.getJSON()) !== JSON.stringify(managedContent)) {\n editor.commands.setContent(managedContent, { emitUpdate: false })\n }\n }, [editor, managedContent])\n\n return (\n <RichTextEditorShell\n {...props}\n ref={forwardedRef}\n className={className}\n disabled={disabled}\n editor={editor}\n placeholder={placeholder}\n toolbar={toolbar}\n />\n )\n },\n)\nRichTextEditorRoot.displayName = 'RichTextEditor'\n\nconst RichTextEditor: typeof RichTextEditorRoot & {\n Shell: typeof RichTextEditorShell\n Toolbar: typeof RichTextEditorToolbar\n Content: typeof RichTextEditorContent\n} = Object.assign(RichTextEditorRoot, {\n Shell: RichTextEditorShell,\n Toolbar: RichTextEditorToolbar,\n Content: RichTextEditorContent,\n})\n\nexport { RichTextEditor, RichTextEditorContent, RichTextEditorRoot, RichTextEditorShell, RichTextEditorToolbar, createRichTextEditorExtensions }\nexport type {\n RichTextEditorContentProps,\n RichTextEditorProps,\n RichTextEditorShellProps,\n RichTextEditorToolbarProps,\n RichTextEditorToolbarSlot,\n RichTextEditorPreset,\n RichTextEditorExtensionConfig,\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -13,7 +13,28 @@
13
13
  background-color: var(--dsx-color-surface-sunken);
14
14
  border: var(--dsx-boundary-control-width) solid transparent;
15
15
  border-radius: var(--dsx-grouped-radius, var(--dsx-rounded-md));
16
- min-width: max-content;
16
+ /* Narrow-container rule (TMA slice-1 2026-09-23): same fused-frame
17
+ containment as button/toggle groups — min-width:max-content would override
18
+ the cap and hard-clip right segments in narrow FilterBars, so floor at 0,
19
+ cap at the container, and scroll. The sliding indicator measures live item
20
+ boxes, so scrolling shifts it along correctly. */
21
+ min-width: 0;
22
+ max-width: 100%;
23
+ overflow-x: auto;
24
+ }
25
+
26
+ /* Fill opt-in (`fill` prop): the root spans the container and items share
27
+ the width equally. The indicator measures live boxes, so it tracks fill
28
+ widths with no change. For overflowing groups keep the default hug root
29
+ (scroll containment above) — fill is for few-item groups that fit. */
30
+ .dsx-segmented-control:where(.dsx-segmented-control--fill, [data-fill='true']) {
31
+ width: 100%;
32
+ align-self: stretch;
33
+ }
34
+
35
+ .dsx-segmented-control:where(.dsx-segmented-control--fill, [data-fill='true']) .dsx-segmented-control__item {
36
+ flex: 1 1 0;
37
+ min-width: 0;
17
38
  }
18
39
 
19
40
  /* ---- Disabled root ---- */
@@ -31,6 +52,9 @@
31
52
  display: inline-flex;
32
53
  align-items: center;
33
54
  justify-content: center;
55
+ /* Never compress inside the scrolled root — labels truncate ("Cl…"/"G…")
56
+ otherwise. No effect in roomy containers. */
57
+ flex-shrink: 0;
34
58
  gap: var(--dsx-space-xs);
35
59
  padding-inline: var(--dsx-space-md);
36
60
  border: 0;
@@ -57,6 +81,37 @@
57
81
  margin-inline-start: calc(-1 * var(--dsx-boundary-control-width));
58
82
  }
59
83
 
84
+ /* ---- Vertical orientation ---- */
85
+
86
+ .dsx-segmented-control[data-orientation='vertical'] {
87
+ flex-direction: column;
88
+ min-width: 0;
89
+ /* Definite height: Firefox flex-shrinks auto-height column roots inside the
90
+ matrix row down toward one row; max-content is identical to auto everywhere
91
+ else and immune to the shrink. */
92
+ height: max-content;
93
+ }
94
+
95
+ .dsx-segmented-control[data-orientation='vertical'] .dsx-segmented-control__item + .dsx-segmented-control__item {
96
+ margin-inline-start: 0;
97
+ margin-block-start: calc(-1 * var(--dsx-boundary-control-width));
98
+ }
99
+
100
+ .dsx-segmented-control[data-orientation='vertical'] .dsx-segmented-control__indicator {
101
+ top: 0;
102
+ bottom: auto;
103
+ left: var(--dsx-space-2xs);
104
+ right: var(--dsx-space-2xs);
105
+ width: auto;
106
+ height: 0;
107
+ transition-property: transform, height;
108
+ }
109
+
110
+ .dsx-segmented-control[data-orientation='vertical'] .dsx-segmented-control__indicator::before {
111
+ inset-block: var(--dsx-space-2xs);
112
+ inset-inline: 0;
113
+ }
114
+
60
115
  /* ---- Sliding indicator — Mantine-style measured pill ---- */
61
116
 
62
117
  .dsx-segmented-control__indicator {
@@ -130,7 +185,7 @@
130
185
  }
131
186
 
132
187
  .dsx-segmented-control--sm .dsx-segmented-control__item {
133
- min-height: var(--dsx-size-lg);
188
+ min-height: calc(var(--dsx-density-control-height-sm, var(--dsx-size-lg)) - 2 * var(--dsx-boundary-control-width));
134
189
  padding-inline: var(--dsx-space-sm);
135
190
  font-size: var(--dsx-typography-label-small-font-size);
136
191
  letter-spacing: var(--dsx-typography-label-small-letter-spacing);
@@ -141,7 +196,7 @@
141
196
  }
142
197
 
143
198
  .dsx-segmented-control--md .dsx-segmented-control__item {
144
- min-height: var(--dsx-size-xl);
199
+ min-height: calc(var(--dsx-density-control-height, var(--dsx-size-xl)) - 2 * var(--dsx-boundary-control-width));
145
200
  padding-inline: var(--dsx-space-md);
146
201
  }
147
202
 
@@ -150,7 +205,7 @@
150
205
  }
151
206
 
152
207
  .dsx-segmented-control--lg .dsx-segmented-control__item {
153
- min-height: var(--dsx-size-2xl);
208
+ min-height: calc(var(--dsx-density-control-height-lg, var(--dsx-size-2xl)) - 2 * var(--dsx-boundary-control-width));
154
209
  padding-inline: var(--dsx-space-lg);
155
210
  font-size: var(--dsx-typography-label-large-font-size);
156
211
  letter-spacing: var(--dsx-typography-label-large-letter-spacing);
@@ -209,6 +264,27 @@
209
264
  padding-inline: 0;
210
265
  }
211
266
 
267
+ /* ---- Vertical: icon-only targets also constrain the block axis (inline
268
+ sizing is inherited from the base icon-only rules above) ---- */
269
+
270
+ .dsx-segmented-control--sm[data-orientation='vertical'] .dsx-segmented-control__item:where([data-icon-only]) {
271
+ block-size: var(--dsx-density-control-height-sm, var(--dsx-size-lg));
272
+ min-block-size: var(--dsx-density-control-height-sm, var(--dsx-size-lg));
273
+ padding-block: 0;
274
+ }
275
+
276
+ .dsx-segmented-control--md[data-orientation='vertical'] .dsx-segmented-control__item:where([data-icon-only]) {
277
+ block-size: var(--dsx-density-control-height, var(--dsx-size-xl));
278
+ min-block-size: var(--dsx-density-control-height, var(--dsx-size-xl));
279
+ padding-block: 0;
280
+ }
281
+
282
+ .dsx-segmented-control--lg[data-orientation='vertical'] .dsx-segmented-control__item:where([data-icon-only]) {
283
+ block-size: var(--dsx-density-control-height-lg, var(--dsx-size-2xl));
284
+ min-block-size: var(--dsx-density-control-height-lg, var(--dsx-size-2xl));
285
+ padding-block: 0;
286
+ }
287
+
212
288
  .dsx-segmented-control__item:focus-visible {
213
289
  outline: none;
214
290
  box-shadow: var(--dsx-shadow-focus-ring);
@@ -56,16 +56,16 @@ function composeRefs(...refs) {
56
56
  }
57
57
  const useIsomorphicLayoutEffect = typeof window === "undefined" ? React.useEffect : React.useLayoutEffect;
58
58
  const SegmentedControlSelectionContext = React.createContext(null);
59
- const SegmentedControlRoot = React.forwardRef(({ className, children, disabled = false, size = "md", variant = "default", activationMode = "manual", value, defaultValue, onValueChange, ...props }, forwardedRef) => {
59
+ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled = false, size = "md", variant = "default", orientation = "horizontal", activationMode = "manual", fill = false, value, defaultValue, onValueChange, ...props }, forwardedRef) => {
60
60
  const rootProps = (0, import_extractProps.extractProps)(
61
- { className, disabled, size },
61
+ { className, disabled, orientation, size },
62
62
  import_segmentedControl.segmentedControlPropDefs
63
63
  );
64
64
  const innerRootRef = React.useRef(null);
65
65
  const mergedRef = composeRefs(forwardedRef, innerRootRef);
66
66
  const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);
67
67
  const resolvedValue = value ?? uncontrolledValue;
68
- const [indicator, setIndicator] = React.useState({ x: 0, width: 0 });
68
+ const [indicator, setIndicator] = React.useState({ x: 0, y: 0, width: 0, height: 0 });
69
69
  const [indicatorLive, setIndicatorLive] = React.useState(false);
70
70
  const measureActive = React.useCallback((root) => {
71
71
  const active = root.querySelector('[data-state="on"]');
@@ -74,7 +74,12 @@ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled =
74
74
  }
75
75
  const rootRect = root.getBoundingClientRect();
76
76
  const activeRect = active.getBoundingClientRect();
77
- setIndicator({ x: activeRect.left - rootRect.left, width: activeRect.width });
77
+ setIndicator({
78
+ x: activeRect.left - rootRect.left - root.clientLeft,
79
+ y: activeRect.top - rootRect.top - root.clientTop,
80
+ width: activeRect.width,
81
+ height: activeRect.height
82
+ });
78
83
  }, []);
79
84
  useIsomorphicLayoutEffect(() => {
80
85
  const root = innerRootRef.current;
@@ -123,15 +128,19 @@ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled =
123
128
  "dsx-segmented-control",
124
129
  `dsx-segmented-control--${size}`,
125
130
  `dsx-segmented-control--${variant}`,
131
+ fill && "dsx-segmented-control--fill",
126
132
  className
127
133
  ),
128
134
  type: "single",
129
135
  value: resolvedValue,
130
136
  onValueChange: handleValueChange,
131
137
  disabled,
138
+ orientation,
132
139
  "data-disabled": disabled || void 0,
140
+ "data-fill": fill || void 0,
133
141
  "data-size": size,
134
142
  "data-variant": variant,
143
+ "data-orientation": orientation,
135
144
  "data-activation-mode": activationMode,
136
145
  children: [
137
146
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SegmentedControlSelectionContext.Provider, { value: selection, children }),
@@ -140,7 +149,11 @@ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled =
140
149
  {
141
150
  "aria-hidden": "true",
142
151
  className: "dsx-segmented-control__indicator",
143
- style: {
152
+ style: orientation === "vertical" ? {
153
+ transform: `translateY(${indicator.y}px)`,
154
+ height: indicator.height,
155
+ transition: indicatorLive ? void 0 : "none"
156
+ } : {
144
157
  transform: `translateX(${indicator.x}px)`,
145
158
  width: indicator.width,
146
159
  transition: indicatorLive ? void 0 : "none"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/segmentedControl/SegmentedControl.tsx"],
4
- "sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { segmentedControlPropDefs } from './segmentedControl.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlPropDefs> & {\n value?: string\n defaultValue?: string\n onValueChange?(value: string): void\n}\n\ntype SegmentedControlRootProps = React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>\n & SegmentedControlRootOwnProps\n\ntype SegmentedControlRootElement = React.ComponentRef<typeof ToggleGroupPrimitive.Root>\n\nfunction composeRefs<T>(...refs: Array<React.Ref<T> | undefined>) {\n return (node: T | null) => {\n for (const ref of refs) {\n if (!ref) {\n continue\n }\n\n if (typeof ref === 'function') {\n ref(node)\n continue\n }\n\n ;(ref as { current: T | null }).current = node\n }\n }\n}\n\nconst useIsomorphicLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\ninterface SegmentedControlSelection {\n activationMode: 'manual' | 'automatic'\n disabled: boolean\n selectedValue: string | undefined\n requestSelect(value: string): void\n}\n\nconst SegmentedControlSelectionContext = React.createContext<SegmentedControlSelection | null>(null)\n\nconst SegmentedControlRoot = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Root>,\n SegmentedControlRootProps\n>(({ className, children, disabled = false, size = 'md', variant = 'default', activationMode = 'manual', value, defaultValue, onValueChange, ...props }, forwardedRef) => {\n const rootProps = extractProps(\n { className, disabled, size },\n segmentedControlPropDefs,\n )\n const innerRootRef = React.useRef<SegmentedControlRootElement | null>(null)\n const mergedRef = composeRefs(forwardedRef, innerRootRef)\n\n // Deselect guard (disallowEmptySelection): own the selection so the control\n // can never render with no active item. Radix fires \"\" when the active item\n // is clicked; the handler below swallows it and keeps the last value, and\n // the resolved value below keeps Radix controlled so its internal state can\n // never clear either.\n const [uncontrolledValue, setUncontrolledValue] = React.useState<string | undefined>(defaultValue)\n const resolvedValue = value ?? uncontrolledValue\n\n // Sliding indicator: Mantine-style measured pill rendered behind the active\n // item. The offset is a physical-pixel diff (active.left - root.left), which\n // is direction-agnostic and therefore RTL-correct without special-casing.\n // Measuring in layout effect positions the pill before first paint, and the\n // `indicatorLive` gate keeps `transition: none` until that first positioned\n // frame so mount never animates from the origin.\n const [indicator, setIndicator] = React.useState({ x: 0, width: 0 })\n const [indicatorLive, setIndicatorLive] = React.useState(false)\n\n const measureActive = React.useCallback((root: HTMLElement) => {\n const active = root.querySelector<HTMLElement>('[data-state=\"on\"]')\n\n if (!active) {\n return\n }\n\n const rootRect = root.getBoundingClientRect()\n const activeRect = active.getBoundingClientRect()\n setIndicator({ x: activeRect.left - rootRect.left, width: activeRect.width })\n }, [])\n\n useIsomorphicLayoutEffect(() => {\n const root = innerRootRef.current\n\n if (!root) {\n return undefined\n }\n\n const measure = () => measureActive(root)\n\n measure()\n setIndicatorLive(true)\n\n if (typeof ResizeObserver === 'undefined') {\n return undefined\n }\n\n const observer = new ResizeObserver(measure)\n observer.observe(root)\n\n const active = root.querySelector('[data-state=\"on\"]')\n\n if (active) {\n observer.observe(active)\n }\n\n return () => observer.disconnect()\n }, [resolvedValue, measureActive])\n\n const handleValueChange = (nextValue: string) => {\n if (!nextValue) {\n return\n }\n\n if (value === undefined) {\n setUncontrolledValue(nextValue)\n }\n\n onValueChange?.(nextValue)\n }\n\n // Automatic activation: selection follows focus, so arrow-key navigation\n // selects without Enter. The focused value goes through the same guarded\n // setter, so focus can never empty the selection; landing on the\n // already-selected item is a no-op. Manual mode (default) ignores focus\n // and only selects on activation \u2014 use it when onValueChange drives side\n // effects that must not fire on focus. Each item reads this context in its\n // own onFocus (Radix strips the value prop from the DOM, so the root\n // cannot recover the focused value from the event target).\n const selection = React.useMemo<SegmentedControlSelection>(\n () => ({\n activationMode,\n disabled,\n selectedValue: resolvedValue,\n requestSelect: handleValueChange,\n }),\n [activationMode, disabled, resolvedValue, handleValueChange],\n )\n\n return (\n <ToggleGroupPrimitive.Root\n {...props}\n {...rootProps}\n ref={mergedRef}\n className={classNames(\n 'dsx-segmented-control',\n `dsx-segmented-control--${size}`,\n `dsx-segmented-control--${variant}`,\n className,\n )}\n type=\"single\"\n value={resolvedValue}\n onValueChange={handleValueChange}\n disabled={disabled}\n data-disabled={disabled || undefined}\n data-size={size}\n data-variant={variant}\n data-activation-mode={activationMode}\n >\n <SegmentedControlSelectionContext.Provider value={selection}>\n {children}\n </SegmentedControlSelectionContext.Provider>\n <span\n aria-hidden=\"true\"\n className=\"dsx-segmented-control__indicator\"\n style={{\n transform: `translateX(${indicator.x}px)`,\n width: indicator.width,\n transition: indicatorLive ? undefined : 'none',\n }}\n />\n </ToggleGroupPrimitive.Root>\n )\n})\nSegmentedControlRoot.displayName = 'SegmentedControl'\n\ninterface SegmentedControlItemProps\n extends React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> {\n iconOnly?: boolean\n value: string\n}\n\nconst SegmentedControlItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Item>,\n SegmentedControlItemProps\n>(({ children, className, disabled, iconOnly = false, value, onFocus, ...props }, forwardedRef) => {\n const selection = React.useContext(SegmentedControlSelectionContext)\n\n const handleItemFocus: React.FocusEventHandler<React.ComponentRef<typeof ToggleGroupPrimitive.Item>> = (event) => {\n onFocus?.(event)\n\n if (!selection || selection.activationMode !== 'automatic') {\n return\n }\n\n if (selection.disabled || disabled || value === selection.selectedValue) {\n return\n }\n\n selection.requestSelect(value)\n }\n\n return (\n <ToggleGroupPrimitive.Item\n {...props}\n ref={forwardedRef}\n value={value}\n className={classNames('dsx-segmented-control__item', className)}\n disabled={disabled}\n data-disabled={disabled || undefined}\n data-icon-only={iconOnly || undefined}\n onFocus={handleItemFocus}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\nSegmentedControlItem.displayName = 'SegmentedControlItem'\n\nconst SegmentedControl: typeof SegmentedControlRoot & {\n Item: typeof SegmentedControlItem\n} = Object.assign(SegmentedControlRoot, {\n Item: SegmentedControlItem,\n})\n\nexport { SegmentedControl, SegmentedControlItem, SegmentedControlRoot }\nexport type { SegmentedControlItemProps, SegmentedControlRootProps }\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { segmentedControlPropDefs } from './segmentedControl.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlPropDefs> & {\n value?: string\n defaultValue?: string\n onValueChange?(value: string): void\n}\n\ntype SegmentedControlRootProps = React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>\n & SegmentedControlRootOwnProps\n\ntype SegmentedControlRootElement = React.ComponentRef<typeof ToggleGroupPrimitive.Root>\n\nfunction composeRefs<T>(...refs: Array<React.Ref<T> | undefined>) {\n return (node: T | null) => {\n for (const ref of refs) {\n if (!ref) {\n continue\n }\n\n if (typeof ref === 'function') {\n ref(node)\n continue\n }\n\n ;(ref as { current: T | null }).current = node\n }\n }\n}\n\nconst useIsomorphicLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\ninterface SegmentedControlSelection {\n activationMode: 'manual' | 'automatic'\n disabled: boolean\n selectedValue: string | undefined\n requestSelect(value: string): void\n}\n\nconst SegmentedControlSelectionContext = React.createContext<SegmentedControlSelection | null>(null)\n\nconst SegmentedControlRoot = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Root>,\n SegmentedControlRootProps\n>(({ className, children, disabled = false, size = 'md', variant = 'default', orientation = 'horizontal', activationMode = 'manual', fill = false, value, defaultValue, onValueChange, ...props }, forwardedRef) => {\n const rootProps = extractProps(\n { className, disabled, orientation, size },\n segmentedControlPropDefs,\n )\n const innerRootRef = React.useRef<SegmentedControlRootElement | null>(null)\n const mergedRef = composeRefs(forwardedRef, innerRootRef)\n\n // Deselect guard (disallowEmptySelection): own the selection so the control\n // can never render with no active item. Radix fires \"\" when the active item\n // is clicked; the handler below swallows it and keeps the last value, and\n // the resolved value below keeps Radix controlled so its internal state can\n // never clear either.\n const [uncontrolledValue, setUncontrolledValue] = React.useState<string | undefined>(defaultValue)\n const resolvedValue = value ?? uncontrolledValue\n\n // Sliding indicator: Mantine-style measured pill rendered behind the active\n // item. The offset is a physical-pixel diff (active.left - root.left), which\n // is direction-agnostic and therefore RTL-correct without special-casing.\n // Measuring in layout effect positions the pill before first paint, and the\n // `indicatorLive` gate keeps `transition: none` until that first positioned\n // frame so mount never animates from the origin.\n const [indicator, setIndicator] = React.useState({ x: 0, y: 0, width: 0, height: 0 })\n const [indicatorLive, setIndicatorLive] = React.useState(false)\n\n const measureActive = React.useCallback((root: HTMLElement) => {\n const active = root.querySelector<HTMLElement>('[data-state=\"on\"]')\n\n if (!active) {\n return\n }\n\n const rootRect = root.getBoundingClientRect()\n const activeRect = active.getBoundingClientRect()\n // Border-box diffs are padding-box positioned: subtract the frame so the\n // wrapper never overshoots the content box (1-2px overflow summoned a\n // horizontal scrollbar on bordered variants).\n setIndicator({\n x: activeRect.left - rootRect.left - root.clientLeft,\n y: activeRect.top - rootRect.top - root.clientTop,\n width: activeRect.width,\n height: activeRect.height,\n })\n }, [])\n\n useIsomorphicLayoutEffect(() => {\n const root = innerRootRef.current\n\n if (!root) {\n return undefined\n }\n\n const measure = () => measureActive(root)\n\n measure()\n setIndicatorLive(true)\n\n if (typeof ResizeObserver === 'undefined') {\n return undefined\n }\n\n const observer = new ResizeObserver(measure)\n observer.observe(root)\n\n const active = root.querySelector('[data-state=\"on\"]')\n\n if (active) {\n observer.observe(active)\n }\n\n return () => observer.disconnect()\n }, [resolvedValue, measureActive])\n\n const handleValueChange = (nextValue: string) => {\n if (!nextValue) {\n return\n }\n\n if (value === undefined) {\n setUncontrolledValue(nextValue)\n }\n\n onValueChange?.(nextValue)\n }\n\n // Automatic activation: selection follows focus, so arrow-key navigation\n // selects without Enter. The focused value goes through the same guarded\n // setter, so focus can never empty the selection; landing on the\n // already-selected item is a no-op. Manual mode (default) ignores focus\n // and only selects on activation \u2014 use it when onValueChange drives side\n // effects that must not fire on focus. Each item reads this context in its\n // own onFocus (Radix strips the value prop from the DOM, so the root\n // cannot recover the focused value from the event target).\n const selection = React.useMemo<SegmentedControlSelection>(\n () => ({\n activationMode,\n disabled,\n selectedValue: resolvedValue,\n requestSelect: handleValueChange,\n }),\n [activationMode, disabled, resolvedValue, handleValueChange],\n )\n\n return (\n <ToggleGroupPrimitive.Root\n {...props}\n {...rootProps}\n ref={mergedRef}\n className={classNames(\n 'dsx-segmented-control',\n `dsx-segmented-control--${size}`,\n `dsx-segmented-control--${variant}`,\n fill && 'dsx-segmented-control--fill',\n className,\n )}\n type=\"single\"\n value={resolvedValue}\n onValueChange={handleValueChange}\n disabled={disabled}\n orientation={orientation}\n data-disabled={disabled || undefined}\n data-fill={fill || undefined}\n data-size={size}\n data-variant={variant}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n >\n <SegmentedControlSelectionContext.Provider value={selection}>\n {children}\n </SegmentedControlSelectionContext.Provider>\n <span\n aria-hidden=\"true\"\n className=\"dsx-segmented-control__indicator\"\n style={\n orientation === 'vertical'\n ? {\n transform: `translateY(${indicator.y}px)`,\n height: indicator.height,\n transition: indicatorLive ? undefined : 'none',\n }\n : {\n transform: `translateX(${indicator.x}px)`,\n width: indicator.width,\n transition: indicatorLive ? undefined : 'none',\n }\n }\n />\n </ToggleGroupPrimitive.Root>\n )\n})\nSegmentedControlRoot.displayName = 'SegmentedControl'\n\ninterface SegmentedControlItemProps\n extends React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> {\n iconOnly?: boolean\n value: string\n}\n\nconst SegmentedControlItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Item>,\n SegmentedControlItemProps\n>(({ children, className, disabled, iconOnly = false, value, onFocus, ...props }, forwardedRef) => {\n const selection = React.useContext(SegmentedControlSelectionContext)\n\n const handleItemFocus: React.FocusEventHandler<React.ComponentRef<typeof ToggleGroupPrimitive.Item>> = (event) => {\n onFocus?.(event)\n\n if (!selection || selection.activationMode !== 'automatic') {\n return\n }\n\n if (selection.disabled || disabled || value === selection.selectedValue) {\n return\n }\n\n selection.requestSelect(value)\n }\n\n return (\n <ToggleGroupPrimitive.Item\n {...props}\n ref={forwardedRef}\n value={value}\n className={classNames('dsx-segmented-control__item', className)}\n disabled={disabled}\n data-disabled={disabled || undefined}\n data-icon-only={iconOnly || undefined}\n onFocus={handleItemFocus}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\nSegmentedControlItem.displayName = 'SegmentedControlItem'\n\nconst SegmentedControl: typeof SegmentedControlRoot & {\n Item: typeof SegmentedControlItem\n} = Object.assign(SegmentedControlRoot, {\n Item: SegmentedControlItem,\n})\n\nexport { SegmentedControl, SegmentedControlItem, SegmentedControlRoot }\nexport type { SegmentedControlItemProps, SegmentedControlRootProps }\n"],
5
+ "mappings": "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",
6
6
  "names": ["classNames"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.d.cts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,kGAoIxB,CAAA;AAGF,UAAU,yBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,oBAAoB,qGAkCxB,CAAA;AAGF,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAAoB,GAAG;IACpD,IAAI,EAAE,OAAO,oBAAoB,CAAA;CAGjC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAA"}
1
+ {"version":3,"file":"SegmentedControl.d.cts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,kGAwJxB,CAAA;AAGF,UAAU,yBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,oBAAoB,qGAkCxB,CAAA;AAGF,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAAoB,GAAG;IACpD,IAAI,EAAE,OAAO,oBAAoB,CAAA;CAGjC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.d.mts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,kGAoIxB,CAAA;AAGF,UAAU,yBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,oBAAoB,qGAkCxB,CAAA;AAGF,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAAoB,GAAG;IACpD,IAAI,EAAE,OAAO,oBAAoB,CAAA;CAGjC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAA"}
1
+ {"version":3,"file":"SegmentedControl.d.mts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,kGAwJxB,CAAA;AAGF,UAAU,yBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,oBAAoB,qGAkCxB,CAAA;AAGF,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAAoB,GAAG;IACpD,IAAI,EAAE,OAAO,oBAAoB,CAAA;CAGjC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,kGAoIxB,CAAA;AAGF,UAAU,yBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,oBAAoB,qGAkCxB,CAAA;AAGF,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAAoB,GAAG;IACpD,IAAI,EAAE,OAAO,oBAAoB,CAAA;CAGjC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAA"}
1
+ {"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,kGAwJxB,CAAA;AAGF,UAAU,yBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,oBAAoB,qGAkCxB,CAAA;AAGF,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAAoB,GAAG;IACpD,IAAI,EAAE,OAAO,oBAAoB,CAAA;CAGjC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAA"}
@@ -21,16 +21,16 @@ function composeRefs(...refs) {
21
21
  }
22
22
  const useIsomorphicLayoutEffect = typeof window === "undefined" ? React.useEffect : React.useLayoutEffect;
23
23
  const SegmentedControlSelectionContext = React.createContext(null);
24
- const SegmentedControlRoot = React.forwardRef(({ className, children, disabled = false, size = "md", variant = "default", activationMode = "manual", value, defaultValue, onValueChange, ...props }, forwardedRef) => {
24
+ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled = false, size = "md", variant = "default", orientation = "horizontal", activationMode = "manual", fill = false, value, defaultValue, onValueChange, ...props }, forwardedRef) => {
25
25
  const rootProps = extractProps(
26
- { className, disabled, size },
26
+ { className, disabled, orientation, size },
27
27
  segmentedControlPropDefs
28
28
  );
29
29
  const innerRootRef = React.useRef(null);
30
30
  const mergedRef = composeRefs(forwardedRef, innerRootRef);
31
31
  const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);
32
32
  const resolvedValue = value ?? uncontrolledValue;
33
- const [indicator, setIndicator] = React.useState({ x: 0, width: 0 });
33
+ const [indicator, setIndicator] = React.useState({ x: 0, y: 0, width: 0, height: 0 });
34
34
  const [indicatorLive, setIndicatorLive] = React.useState(false);
35
35
  const measureActive = React.useCallback((root) => {
36
36
  const active = root.querySelector('[data-state="on"]');
@@ -39,7 +39,12 @@ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled =
39
39
  }
40
40
  const rootRect = root.getBoundingClientRect();
41
41
  const activeRect = active.getBoundingClientRect();
42
- setIndicator({ x: activeRect.left - rootRect.left, width: activeRect.width });
42
+ setIndicator({
43
+ x: activeRect.left - rootRect.left - root.clientLeft,
44
+ y: activeRect.top - rootRect.top - root.clientTop,
45
+ width: activeRect.width,
46
+ height: activeRect.height
47
+ });
43
48
  }, []);
44
49
  useIsomorphicLayoutEffect(() => {
45
50
  const root = innerRootRef.current;
@@ -88,15 +93,19 @@ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled =
88
93
  "dsx-segmented-control",
89
94
  `dsx-segmented-control--${size}`,
90
95
  `dsx-segmented-control--${variant}`,
96
+ fill && "dsx-segmented-control--fill",
91
97
  className
92
98
  ),
93
99
  type: "single",
94
100
  value: resolvedValue,
95
101
  onValueChange: handleValueChange,
96
102
  disabled,
103
+ orientation,
97
104
  "data-disabled": disabled || void 0,
105
+ "data-fill": fill || void 0,
98
106
  "data-size": size,
99
107
  "data-variant": variant,
108
+ "data-orientation": orientation,
100
109
  "data-activation-mode": activationMode,
101
110
  children: [
102
111
  /* @__PURE__ */ jsx(SegmentedControlSelectionContext.Provider, { value: selection, children }),
@@ -105,7 +114,11 @@ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled =
105
114
  {
106
115
  "aria-hidden": "true",
107
116
  className: "dsx-segmented-control__indicator",
108
- style: {
117
+ style: orientation === "vertical" ? {
118
+ transform: `translateY(${indicator.y}px)`,
119
+ height: indicator.height,
120
+ transition: indicatorLive ? void 0 : "none"
121
+ } : {
109
122
  transform: `translateX(${indicator.x}px)`,
110
123
  width: indicator.width,
111
124
  transition: indicatorLive ? void 0 : "none"