@d4gger/design-system 3.0.1 → 4.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 (502) hide show
  1. package/README.md +19 -0
  2. package/dist/brand-effects.css +5 -3
  3. package/dist/components/accordion.css +9 -2
  4. package/dist/components/alert/Alert.cjs +27 -9
  5. package/dist/components/alert/Alert.cjs.map +2 -2
  6. package/dist/components/alert/Alert.d.cts +6 -0
  7. package/dist/components/alert/Alert.d.cts.map +1 -1
  8. package/dist/components/alert/Alert.d.mts +6 -0
  9. package/dist/components/alert/Alert.d.mts.map +1 -1
  10. package/dist/components/alert/Alert.d.ts +6 -0
  11. package/dist/components/alert/Alert.d.ts.map +1 -1
  12. package/dist/components/alert/Alert.js +28 -10
  13. package/dist/components/alert/Alert.js.map +2 -2
  14. package/dist/components/alert.css +73 -3
  15. package/dist/components/article-nodes.css +16 -1
  16. package/dist/components/articleNodes/ArticleNodes.cjs +46 -5
  17. package/dist/components/articleNodes/ArticleNodes.cjs.map +2 -2
  18. package/dist/components/articleNodes/ArticleNodes.d.cts +7 -3
  19. package/dist/components/articleNodes/ArticleNodes.d.cts.map +1 -1
  20. package/dist/components/articleNodes/ArticleNodes.d.mts +7 -3
  21. package/dist/components/articleNodes/ArticleNodes.d.mts.map +1 -1
  22. package/dist/components/articleNodes/ArticleNodes.d.ts +7 -3
  23. package/dist/components/articleNodes/ArticleNodes.d.ts.map +1 -1
  24. package/dist/components/articleNodes/ArticleNodes.js +46 -5
  25. package/dist/components/articleNodes/ArticleNodes.js.map +2 -2
  26. package/dist/components/articleNodes/articleExtensions.cjs +21 -4
  27. package/dist/components/articleNodes/articleExtensions.cjs.map +2 -2
  28. package/dist/components/articleNodes/articleExtensions.d.cts +8 -2
  29. package/dist/components/articleNodes/articleExtensions.d.cts.map +1 -1
  30. package/dist/components/articleNodes/articleExtensions.d.mts +8 -2
  31. package/dist/components/articleNodes/articleExtensions.d.mts.map +1 -1
  32. package/dist/components/articleNodes/articleExtensions.d.ts +8 -2
  33. package/dist/components/articleNodes/articleExtensions.d.ts.map +1 -1
  34. package/dist/components/articleNodes/articleExtensions.js +21 -4
  35. package/dist/components/articleNodes/articleExtensions.js.map +2 -2
  36. package/dist/components/articleNodes/articleNodeViews.cjs +154 -0
  37. package/dist/components/articleNodes/articleNodeViews.cjs.map +7 -0
  38. package/dist/components/articleNodes/articleNodeViews.d.cts +3 -0
  39. package/dist/components/articleNodes/articleNodeViews.d.cts.map +1 -0
  40. package/dist/components/articleNodes/articleNodeViews.d.mts +3 -0
  41. package/dist/components/articleNodes/articleNodeViews.d.mts.map +1 -0
  42. package/dist/components/articleNodes/articleNodeViews.d.ts +3 -0
  43. package/dist/components/articleNodes/articleNodeViews.d.ts.map +1 -0
  44. package/dist/components/articleNodes/articleNodeViews.js +124 -0
  45. package/dist/components/articleNodes/articleNodeViews.js.map +7 -0
  46. package/dist/components/articleNodes/articleNodes.props.cjs.map +1 -1
  47. package/dist/components/articleNodes/articleNodes.props.d.cts +25 -2
  48. package/dist/components/articleNodes/articleNodes.props.d.cts.map +1 -1
  49. package/dist/components/articleNodes/articleNodes.props.d.mts +25 -2
  50. package/dist/components/articleNodes/articleNodes.props.d.mts.map +1 -1
  51. package/dist/components/articleNodes/articleNodes.props.d.ts +25 -2
  52. package/dist/components/articleNodes/articleNodes.props.d.ts.map +1 -1
  53. package/dist/components/banner.css +5 -4
  54. package/dist/components/blockquote.css +7 -4
  55. package/dist/components/bottom-dock.css +140 -0
  56. package/dist/components/bottomDock/BottomDock.cjs +140 -0
  57. package/dist/components/bottomDock/BottomDock.cjs.map +7 -0
  58. package/dist/components/bottomDock/BottomDock.d.cts +25 -0
  59. package/dist/components/bottomDock/BottomDock.d.cts.map +1 -0
  60. package/dist/components/bottomDock/BottomDock.d.mts +25 -0
  61. package/dist/components/bottomDock/BottomDock.d.mts.map +1 -0
  62. package/dist/components/bottomDock/BottomDock.d.ts +25 -0
  63. package/dist/components/bottomDock/BottomDock.d.ts.map +1 -0
  64. package/dist/components/bottomDock/BottomDock.js +110 -0
  65. package/dist/components/bottomDock/BottomDock.js.map +7 -0
  66. package/dist/components/bottomDock/bottomDock.props.cjs +49 -0
  67. package/dist/components/bottomDock/bottomDock.props.cjs.map +7 -0
  68. package/dist/components/bottomDock/bottomDock.props.d.cts +29 -0
  69. package/dist/components/bottomDock/bottomDock.props.d.cts.map +1 -0
  70. package/dist/components/bottomDock/bottomDock.props.d.mts +29 -0
  71. package/dist/components/bottomDock/bottomDock.props.d.mts.map +1 -0
  72. package/dist/components/bottomDock/bottomDock.props.d.ts +29 -0
  73. package/dist/components/bottomDock/bottomDock.props.d.ts.map +1 -0
  74. package/dist/components/bottomDock/bottomDock.props.js +29 -0
  75. package/dist/components/bottomDock/bottomDock.props.js.map +7 -0
  76. package/dist/components/breadcrumb.css +24 -3
  77. package/dist/components/callout.css +20 -7
  78. package/dist/components/card.css +9 -1
  79. package/dist/components/code.css +29 -13
  80. package/dist/components/collapsible/Collapsible.cjs +14 -0
  81. package/dist/components/collapsible/Collapsible.cjs.map +2 -2
  82. package/dist/components/collapsible/Collapsible.d.cts.map +1 -1
  83. package/dist/components/collapsible/Collapsible.d.mts.map +1 -1
  84. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  85. package/dist/components/collapsible/Collapsible.js +14 -0
  86. package/dist/components/collapsible/Collapsible.js.map +2 -2
  87. package/dist/components/collapsible.css +10 -1
  88. package/dist/components/command.css +0 -2
  89. package/dist/components/comment-thread.css +15 -7
  90. package/dist/components/commentThread/CommentThread.cjs +45 -17
  91. package/dist/components/commentThread/CommentThread.cjs.map +2 -2
  92. package/dist/components/commentThread/CommentThread.d.cts +6 -6
  93. package/dist/components/commentThread/CommentThread.d.cts.map +1 -1
  94. package/dist/components/commentThread/CommentThread.d.mts +6 -6
  95. package/dist/components/commentThread/CommentThread.d.mts.map +1 -1
  96. package/dist/components/commentThread/CommentThread.d.ts +6 -6
  97. package/dist/components/commentThread/CommentThread.d.ts.map +1 -1
  98. package/dist/components/commentThread/CommentThread.js +45 -17
  99. package/dist/components/commentThread/CommentThread.js.map +2 -2
  100. package/dist/components/commentThread/commentThread.props.cjs.map +1 -1
  101. package/dist/components/commentThread/commentThread.props.d.cts +24 -0
  102. package/dist/components/commentThread/commentThread.props.d.cts.map +1 -1
  103. package/dist/components/commentThread/commentThread.props.d.mts +24 -0
  104. package/dist/components/commentThread/commentThread.props.d.mts.map +1 -1
  105. package/dist/components/commentThread/commentThread.props.d.ts +24 -0
  106. package/dist/components/commentThread/commentThread.props.d.ts.map +1 -1
  107. package/dist/components/config-drawer.css +7 -3
  108. package/dist/components/configDrawer/ConfigDrawer.cjs +1 -1
  109. package/dist/components/configDrawer/ConfigDrawer.cjs.map +2 -2
  110. package/dist/components/configDrawer/ConfigDrawer.js +1 -1
  111. package/dist/components/configDrawer/ConfigDrawer.js.map +2 -2
  112. package/dist/components/context-menu.css +3 -1
  113. package/dist/components/contextMenu/ContextMenu.cjs +37 -6
  114. package/dist/components/contextMenu/ContextMenu.cjs.map +2 -2
  115. package/dist/components/contextMenu/ContextMenu.d.cts +1 -1
  116. package/dist/components/contextMenu/ContextMenu.d.cts.map +1 -1
  117. package/dist/components/contextMenu/ContextMenu.d.mts +1 -1
  118. package/dist/components/contextMenu/ContextMenu.d.mts.map +1 -1
  119. package/dist/components/contextMenu/ContextMenu.d.ts +1 -1
  120. package/dist/components/contextMenu/ContextMenu.d.ts.map +1 -1
  121. package/dist/components/contextMenu/ContextMenu.js +37 -6
  122. package/dist/components/contextMenu/ContextMenu.js.map +2 -2
  123. package/dist/components/dialog.css +1 -1
  124. package/dist/components/drawer.css +23 -6
  125. package/dist/components/dropdownMenu/DropdownMenu.cjs +10 -5
  126. package/dist/components/dropdownMenu/DropdownMenu.cjs.map +2 -2
  127. package/dist/components/dropdownMenu/DropdownMenu.d.cts.map +1 -1
  128. package/dist/components/dropdownMenu/DropdownMenu.d.mts.map +1 -1
  129. package/dist/components/dropdownMenu/DropdownMenu.d.ts.map +1 -1
  130. package/dist/components/dropdownMenu/DropdownMenu.js +10 -5
  131. package/dist/components/dropdownMenu/DropdownMenu.js.map +2 -2
  132. package/dist/components/environment-ribbon.css +73 -0
  133. package/dist/components/environmentRibbon/EnvironmentRibbon.cjs +69 -0
  134. package/dist/components/environmentRibbon/EnvironmentRibbon.cjs.map +7 -0
  135. package/dist/components/environmentRibbon/EnvironmentRibbon.d.cts +15 -0
  136. package/dist/components/environmentRibbon/EnvironmentRibbon.d.cts.map +1 -0
  137. package/dist/components/environmentRibbon/EnvironmentRibbon.d.mts +15 -0
  138. package/dist/components/environmentRibbon/EnvironmentRibbon.d.mts.map +1 -0
  139. package/dist/components/environmentRibbon/EnvironmentRibbon.d.ts +15 -0
  140. package/dist/components/environmentRibbon/EnvironmentRibbon.d.ts.map +1 -0
  141. package/dist/components/environmentRibbon/EnvironmentRibbon.js +39 -0
  142. package/dist/components/environmentRibbon/EnvironmentRibbon.js.map +7 -0
  143. package/dist/components/environmentRibbon/environmentRibbon.props.cjs +39 -0
  144. package/dist/components/environmentRibbon/environmentRibbon.props.cjs.map +7 -0
  145. package/dist/components/environmentRibbon/environmentRibbon.props.d.cts +18 -0
  146. package/dist/components/environmentRibbon/environmentRibbon.props.d.cts.map +1 -0
  147. package/dist/components/environmentRibbon/environmentRibbon.props.d.mts +18 -0
  148. package/dist/components/environmentRibbon/environmentRibbon.props.d.mts.map +1 -0
  149. package/dist/components/environmentRibbon/environmentRibbon.props.d.ts +18 -0
  150. package/dist/components/environmentRibbon/environmentRibbon.props.d.ts.map +1 -0
  151. package/dist/components/environmentRibbon/environmentRibbon.props.js +19 -0
  152. package/dist/components/environmentRibbon/environmentRibbon.props.js.map +7 -0
  153. package/dist/components/field.css +5 -0
  154. package/dist/components/file-upload.css +36 -9
  155. package/dist/components/floating-panel.css +49 -18
  156. package/dist/components/floatingPanel/FloatingPanel.cjs +156 -58
  157. package/dist/components/floatingPanel/FloatingPanel.cjs.map +2 -2
  158. package/dist/components/floatingPanel/FloatingPanel.d.cts.map +1 -1
  159. package/dist/components/floatingPanel/FloatingPanel.d.mts.map +1 -1
  160. package/dist/components/floatingPanel/FloatingPanel.d.ts.map +1 -1
  161. package/dist/components/floatingPanel/FloatingPanel.js +156 -58
  162. package/dist/components/floatingPanel/FloatingPanel.js.map +2 -2
  163. package/dist/components/grid/Grid.cjs +24 -35
  164. package/dist/components/grid/Grid.cjs.map +2 -2
  165. package/dist/components/grid/Grid.d.cts.map +1 -1
  166. package/dist/components/grid/Grid.d.mts.map +1 -1
  167. package/dist/components/grid/Grid.d.ts.map +1 -1
  168. package/dist/components/grid/Grid.js +24 -35
  169. package/dist/components/grid/Grid.js.map +2 -2
  170. package/dist/components/heading/Heading.cjs +1 -8
  171. package/dist/components/heading/Heading.cjs.map +2 -2
  172. package/dist/components/heading/Heading.d.cts.map +1 -1
  173. package/dist/components/heading/Heading.d.mts.map +1 -1
  174. package/dist/components/heading/Heading.d.ts.map +1 -1
  175. package/dist/components/heading/Heading.js +1 -8
  176. package/dist/components/heading/Heading.js.map +2 -2
  177. package/dist/components/heading/heading.props.cjs +9 -9
  178. package/dist/components/heading/heading.props.cjs.map +2 -2
  179. package/dist/components/heading/heading.props.d.cts +42 -43
  180. package/dist/components/heading/heading.props.d.cts.map +1 -1
  181. package/dist/components/heading/heading.props.d.mts +42 -43
  182. package/dist/components/heading/heading.props.d.mts.map +1 -1
  183. package/dist/components/heading/heading.props.d.ts +42 -43
  184. package/dist/components/heading/heading.props.d.ts.map +1 -1
  185. package/dist/components/heading/heading.props.js +9 -9
  186. package/dist/components/heading/heading.props.js.map +2 -2
  187. package/dist/components/heading.css +127 -104
  188. package/dist/components/hover-card.css +5 -2
  189. package/dist/components/icon/Icon.cjs +19 -0
  190. package/dist/components/icon/Icon.cjs.map +2 -2
  191. package/dist/components/icon/Icon.d.cts +29 -1
  192. package/dist/components/icon/Icon.d.cts.map +1 -1
  193. package/dist/components/icon/Icon.d.mts +29 -1
  194. package/dist/components/icon/Icon.d.mts.map +1 -1
  195. package/dist/components/icon/Icon.d.ts +29 -1
  196. package/dist/components/icon/Icon.d.ts.map +1 -1
  197. package/dist/components/icon/Icon.js +25 -0
  198. package/dist/components/icon/Icon.js.map +2 -2
  199. package/dist/components/icon/icons.cjs +14 -0
  200. package/dist/components/icon/icons.cjs.map +2 -2
  201. package/dist/components/icon/icons.d.cts +35 -0
  202. package/dist/components/icon/icons.d.cts.map +1 -1
  203. package/dist/components/icon/icons.d.mts +35 -0
  204. package/dist/components/icon/icons.d.mts.map +1 -1
  205. package/dist/components/icon/icons.d.ts +35 -0
  206. package/dist/components/icon/icons.d.ts.map +1 -1
  207. package/dist/components/icon/icons.js +14 -0
  208. package/dist/components/icon/icons.js.map +2 -2
  209. package/dist/components/index.cjs +2 -0
  210. package/dist/components/index.cjs.map +2 -2
  211. package/dist/components/index.d.cts +2 -0
  212. package/dist/components/index.d.cts.map +1 -1
  213. package/dist/components/index.d.mts +2 -0
  214. package/dist/components/index.d.mts.map +1 -1
  215. package/dist/components/index.d.ts +2 -0
  216. package/dist/components/index.d.ts.map +1 -1
  217. package/dist/components/index.js +2 -0
  218. package/dist/components/index.js.map +2 -2
  219. package/dist/components/label.css +3 -0
  220. package/dist/components/link.css +33 -97
  221. package/dist/components/notification-center.css +58 -10
  222. package/dist/components/notificationCenter/NotificationCenter.cjs +27 -17
  223. package/dist/components/notificationCenter/NotificationCenter.cjs.map +2 -2
  224. package/dist/components/notificationCenter/NotificationCenter.d.cts +2 -0
  225. package/dist/components/notificationCenter/NotificationCenter.d.cts.map +1 -1
  226. package/dist/components/notificationCenter/NotificationCenter.d.mts +2 -0
  227. package/dist/components/notificationCenter/NotificationCenter.d.mts.map +1 -1
  228. package/dist/components/notificationCenter/NotificationCenter.d.ts +2 -0
  229. package/dist/components/notificationCenter/NotificationCenter.d.ts.map +1 -1
  230. package/dist/components/notificationCenter/NotificationCenter.js +28 -18
  231. package/dist/components/notificationCenter/NotificationCenter.js.map +2 -2
  232. package/dist/components/page-header.css +21 -0
  233. package/dist/components/pageHeader/PageHeader.cjs +10 -2
  234. package/dist/components/pageHeader/PageHeader.cjs.map +2 -2
  235. package/dist/components/pageHeader/PageHeader.d.cts.map +1 -1
  236. package/dist/components/pageHeader/PageHeader.d.mts.map +1 -1
  237. package/dist/components/pageHeader/PageHeader.d.ts.map +1 -1
  238. package/dist/components/pageHeader/PageHeader.js +10 -2
  239. package/dist/components/pageHeader/PageHeader.js.map +2 -2
  240. package/dist/components/pageHeader/pageHeader.props.cjs +7 -1
  241. package/dist/components/pageHeader/pageHeader.props.cjs.map +2 -2
  242. package/dist/components/pageHeader/pageHeader.props.d.cts +5 -0
  243. package/dist/components/pageHeader/pageHeader.props.d.cts.map +1 -1
  244. package/dist/components/pageHeader/pageHeader.props.d.mts +5 -0
  245. package/dist/components/pageHeader/pageHeader.props.d.mts.map +1 -1
  246. package/dist/components/pageHeader/pageHeader.props.d.ts +5 -0
  247. package/dist/components/pageHeader/pageHeader.props.d.ts.map +1 -1
  248. package/dist/components/pageHeader/pageHeader.props.js +7 -1
  249. package/dist/components/pageHeader/pageHeader.props.js.map +2 -2
  250. package/dist/components/pills/Pills.cjs +1 -1
  251. package/dist/components/pills/Pills.cjs.map +2 -2
  252. package/dist/components/pills/Pills.js +2 -2
  253. package/dist/components/pills/Pills.js.map +2 -2
  254. package/dist/components/pills.css +6 -0
  255. package/dist/components/popover.css +45 -6
  256. package/dist/components/prose.css +3 -3
  257. package/dist/components/qr-code.css +5 -2
  258. package/dist/components/qrCode/QrCode.cjs +14 -11
  259. package/dist/components/qrCode/QrCode.cjs.map +2 -2
  260. package/dist/components/qrCode/QrCode.d.cts.map +1 -1
  261. package/dist/components/qrCode/QrCode.d.mts.map +1 -1
  262. package/dist/components/qrCode/QrCode.d.ts.map +1 -1
  263. package/dist/components/qrCode/QrCode.js +14 -11
  264. package/dist/components/qrCode/QrCode.js.map +2 -2
  265. package/dist/components/resizable.css +20 -4
  266. package/dist/components/rich-text-editor.css +50 -14
  267. package/dist/components/richTextEditor/EditorTools.cjs +226 -0
  268. package/dist/components/richTextEditor/EditorTools.cjs.map +7 -0
  269. package/dist/components/richTextEditor/EditorTools.d.cts +22 -0
  270. package/dist/components/richTextEditor/EditorTools.d.cts.map +1 -0
  271. package/dist/components/richTextEditor/EditorTools.d.mts +22 -0
  272. package/dist/components/richTextEditor/EditorTools.d.mts.map +1 -0
  273. package/dist/components/richTextEditor/EditorTools.d.ts +22 -0
  274. package/dist/components/richTextEditor/EditorTools.d.ts.map +1 -0
  275. package/dist/components/richTextEditor/EditorTools.js +196 -0
  276. package/dist/components/richTextEditor/EditorTools.js.map +7 -0
  277. package/dist/components/richTextEditor/MentionSuggestions.cjs +96 -0
  278. package/dist/components/richTextEditor/MentionSuggestions.cjs.map +7 -0
  279. package/dist/components/richTextEditor/MentionSuggestions.d.cts +7 -0
  280. package/dist/components/richTextEditor/MentionSuggestions.d.cts.map +1 -0
  281. package/dist/components/richTextEditor/MentionSuggestions.d.mts +7 -0
  282. package/dist/components/richTextEditor/MentionSuggestions.d.mts.map +1 -0
  283. package/dist/components/richTextEditor/MentionSuggestions.d.ts +7 -0
  284. package/dist/components/richTextEditor/MentionSuggestions.d.ts.map +1 -0
  285. package/dist/components/richTextEditor/MentionSuggestions.js +66 -0
  286. package/dist/components/richTextEditor/MentionSuggestions.js.map +7 -0
  287. package/dist/components/richTextEditor/RichTextEditor.cjs +53 -206
  288. package/dist/components/richTextEditor/RichTextEditor.cjs.map +3 -3
  289. package/dist/components/richTextEditor/RichTextEditor.d.cts +17 -7
  290. package/dist/components/richTextEditor/RichTextEditor.d.cts.map +1 -1
  291. package/dist/components/richTextEditor/RichTextEditor.d.mts +17 -7
  292. package/dist/components/richTextEditor/RichTextEditor.d.mts.map +1 -1
  293. package/dist/components/richTextEditor/RichTextEditor.d.ts +17 -7
  294. package/dist/components/richTextEditor/RichTextEditor.d.ts.map +1 -1
  295. package/dist/components/richTextEditor/RichTextEditor.js +53 -206
  296. package/dist/components/richTextEditor/RichTextEditor.js.map +3 -3
  297. package/dist/components/richTextEditor/editorTokens.cjs +75 -0
  298. package/dist/components/richTextEditor/editorTokens.cjs.map +7 -0
  299. package/dist/components/richTextEditor/editorTokens.d.cts +21 -0
  300. package/dist/components/richTextEditor/editorTokens.d.cts.map +1 -0
  301. package/dist/components/richTextEditor/editorTokens.d.mts +21 -0
  302. package/dist/components/richTextEditor/editorTokens.d.mts.map +1 -0
  303. package/dist/components/richTextEditor/editorTokens.d.ts +21 -0
  304. package/dist/components/richTextEditor/editorTokens.d.ts.map +1 -0
  305. package/dist/components/richTextEditor/editorTokens.js +55 -0
  306. package/dist/components/richTextEditor/editorTokens.js.map +7 -0
  307. package/dist/components/scroll-area.css +12 -0
  308. package/dist/components/scrollArea/ScrollArea.cjs +12 -1
  309. package/dist/components/scrollArea/ScrollArea.cjs.map +2 -2
  310. package/dist/components/scrollArea/ScrollArea.d.cts.map +1 -1
  311. package/dist/components/scrollArea/ScrollArea.d.mts.map +1 -1
  312. package/dist/components/scrollArea/ScrollArea.d.ts.map +1 -1
  313. package/dist/components/scrollArea/ScrollArea.js +12 -1
  314. package/dist/components/scrollArea/ScrollArea.js.map +2 -2
  315. package/dist/components/segmentedControl/SegmentedControl.cjs +2 -2
  316. package/dist/components/segmentedControl/SegmentedControl.cjs.map +2 -2
  317. package/dist/components/segmentedControl/SegmentedControl.d.cts.map +1 -1
  318. package/dist/components/segmentedControl/SegmentedControl.d.mts.map +1 -1
  319. package/dist/components/segmentedControl/SegmentedControl.d.ts.map +1 -1
  320. package/dist/components/segmentedControl/SegmentedControl.js +2 -2
  321. package/dist/components/segmentedControl/SegmentedControl.js.map +2 -2
  322. package/dist/components/separator.css +3 -9
  323. package/dist/components/sidebar/Sidebar.cjs +17 -5
  324. package/dist/components/sidebar/Sidebar.cjs.map +2 -2
  325. package/dist/components/sidebar/Sidebar.d.cts +12 -1
  326. package/dist/components/sidebar/Sidebar.d.cts.map +1 -1
  327. package/dist/components/sidebar/Sidebar.d.mts +12 -1
  328. package/dist/components/sidebar/Sidebar.d.mts.map +1 -1
  329. package/dist/components/sidebar/Sidebar.d.ts +12 -1
  330. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  331. package/dist/components/sidebar/Sidebar.js +17 -5
  332. package/dist/components/sidebar/Sidebar.js.map +2 -2
  333. package/dist/components/sidebar/sidebar.props.cjs +8 -1
  334. package/dist/components/sidebar/sidebar.props.cjs.map +2 -2
  335. package/dist/components/sidebar/sidebar.props.d.cts +9 -1
  336. package/dist/components/sidebar/sidebar.props.d.cts.map +1 -1
  337. package/dist/components/sidebar/sidebar.props.d.mts +9 -1
  338. package/dist/components/sidebar/sidebar.props.d.mts.map +1 -1
  339. package/dist/components/sidebar/sidebar.props.d.ts +9 -1
  340. package/dist/components/sidebar/sidebar.props.d.ts.map +1 -1
  341. package/dist/components/sidebar/sidebar.props.js +8 -1
  342. package/dist/components/sidebar/sidebar.props.js.map +2 -2
  343. package/dist/components/sidebar.css +86 -13
  344. package/dist/components/sonner.css +78 -16
  345. package/dist/components/stepper.css +23 -12
  346. package/dist/components/tab-nav.css +25 -13
  347. package/dist/components/tabNav/TabNav.cjs +1 -4
  348. package/dist/components/tabNav/TabNav.cjs.map +2 -2
  349. package/dist/components/tabNav/TabNav.d.cts.map +1 -1
  350. package/dist/components/tabNav/TabNav.d.mts.map +1 -1
  351. package/dist/components/tabNav/TabNav.d.ts.map +1 -1
  352. package/dist/components/tabNav/TabNav.js +1 -4
  353. package/dist/components/tabNav/TabNav.js.map +2 -2
  354. package/dist/components/table-of-contents.css +12 -2
  355. package/dist/components/tableOfContents/TableOfContents.cjs +11 -4
  356. package/dist/components/tableOfContents/TableOfContents.cjs.map +2 -2
  357. package/dist/components/tableOfContents/TableOfContents.d.cts.map +1 -1
  358. package/dist/components/tableOfContents/TableOfContents.d.mts.map +1 -1
  359. package/dist/components/tableOfContents/TableOfContents.d.ts.map +1 -1
  360. package/dist/components/tableOfContents/TableOfContents.js +11 -4
  361. package/dist/components/tableOfContents/TableOfContents.js.map +2 -2
  362. package/dist/components/tabs/Tabs.cjs +39 -54
  363. package/dist/components/tabs/Tabs.cjs.map +2 -2
  364. package/dist/components/tabs/Tabs.d.cts.map +1 -1
  365. package/dist/components/tabs/Tabs.d.mts.map +1 -1
  366. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  367. package/dist/components/tabs/Tabs.js +39 -54
  368. package/dist/components/tabs/Tabs.js.map +2 -2
  369. package/dist/components/tabs.css +52 -7
  370. package/dist/components/text/text.props.cjs +9 -9
  371. package/dist/components/text/text.props.cjs.map +2 -2
  372. package/dist/components/text/text.props.d.cts +42 -43
  373. package/dist/components/text/text.props.d.cts.map +1 -1
  374. package/dist/components/text/text.props.d.mts +42 -43
  375. package/dist/components/text/text.props.d.mts.map +1 -1
  376. package/dist/components/text/text.props.d.ts +42 -43
  377. package/dist/components/text/text.props.d.ts.map +1 -1
  378. package/dist/components/text/text.props.js +9 -9
  379. package/dist/components/text/text.props.js.map +2 -2
  380. package/dist/components/text/typography.props.cjs +32 -0
  381. package/dist/components/text/typography.props.cjs.map +7 -0
  382. package/dist/components/text/typography.props.d.cts +3 -0
  383. package/dist/components/text/typography.props.d.cts.map +1 -0
  384. package/dist/components/text/typography.props.d.mts +3 -0
  385. package/dist/components/text/typography.props.d.mts.map +1 -0
  386. package/dist/components/text/typography.props.d.ts +3 -0
  387. package/dist/components/text/typography.props.d.ts.map +1 -0
  388. package/dist/components/text/typography.props.js +12 -0
  389. package/dist/components/text/typography.props.js.map +7 -0
  390. package/dist/components/text-field.css +1 -0
  391. package/dist/components/text.css +41 -6
  392. package/dist/components/theme-panel.css +6 -0
  393. package/dist/components/toast/Toast.cjs +3 -1
  394. package/dist/components/toast/Toast.cjs.map +2 -2
  395. package/dist/components/toast/Toast.d.cts.map +1 -1
  396. package/dist/components/toast/Toast.d.mts.map +1 -1
  397. package/dist/components/toast/Toast.d.ts.map +1 -1
  398. package/dist/components/toast/Toast.js +3 -1
  399. package/dist/components/toast/Toast.js.map +2 -2
  400. package/dist/components/toast.css +36 -36
  401. package/dist/components/toggle-tip.css +58 -9
  402. package/dist/components/toggleTip/ToggleTip.cjs +9 -5
  403. package/dist/components/toggleTip/ToggleTip.cjs.map +2 -2
  404. package/dist/components/toggleTip/ToggleTip.d.cts.map +1 -1
  405. package/dist/components/toggleTip/ToggleTip.d.mts.map +1 -1
  406. package/dist/components/toggleTip/ToggleTip.d.ts.map +1 -1
  407. package/dist/components/toggleTip/ToggleTip.js +9 -5
  408. package/dist/components/toggleTip/ToggleTip.js.map +2 -2
  409. package/dist/components/toolbar/Toolbar.cjs +10 -7
  410. package/dist/components/toolbar/Toolbar.cjs.map +2 -2
  411. package/dist/components/toolbar/Toolbar.js +10 -7
  412. package/dist/components/toolbar/Toolbar.js.map +2 -2
  413. package/dist/components/toolbar.css +58 -4
  414. package/dist/components/tooltip.css +9 -5
  415. package/dist/components/tree-view.css +17 -3
  416. package/dist/components/treeView/TreeView.cjs +76 -21
  417. package/dist/components/treeView/TreeView.cjs.map +2 -2
  418. package/dist/components/treeView/TreeView.d.cts.map +1 -1
  419. package/dist/components/treeView/TreeView.d.mts.map +1 -1
  420. package/dist/components/treeView/TreeView.d.ts.map +1 -1
  421. package/dist/components/treeView/TreeView.js +76 -21
  422. package/dist/components/treeView/TreeView.js.map +2 -2
  423. package/dist/components.css +2 -0
  424. package/dist/docs/README.md +2 -0
  425. package/dist/docs/component-contract.md +7 -4
  426. package/dist/docs/component-index.json +17 -1
  427. package/dist/docs/components/accordion.md +5 -36
  428. package/dist/docs/components/alert.md +44 -17
  429. package/dist/docs/components/article-nodes.md +59 -2
  430. package/dist/docs/components/aspect-ratio.md +3 -26
  431. package/dist/docs/components/banner.md +7 -7
  432. package/dist/docs/components/blockquote.md +15 -14
  433. package/dist/docs/components/bottom-dock.md +146 -0
  434. package/dist/docs/components/box.md +3 -34
  435. package/dist/docs/components/breadcrumb.md +13 -8
  436. package/dist/docs/components/callout.md +18 -7
  437. package/dist/docs/components/card.md +10 -3
  438. package/dist/docs/components/code.md +33 -220
  439. package/dist/docs/components/collapsible.md +16 -35
  440. package/dist/docs/components/command.md +2 -0
  441. package/dist/docs/components/comment-thread.md +51 -1
  442. package/dist/docs/components/config-drawer.md +72 -171
  443. package/dist/docs/components/container.md +2 -0
  444. package/dist/docs/components/context-menu.md +19 -5
  445. package/dist/docs/components/dialog.md +4 -2
  446. package/dist/docs/components/drawer.md +17 -6
  447. package/dist/docs/components/dropdown-menu.md +11 -2
  448. package/dist/docs/components/em.md +1 -1
  449. package/dist/docs/components/environment-ribbon.md +126 -0
  450. package/dist/docs/components/field.md +2 -0
  451. package/dist/docs/components/file-upload.md +13 -7
  452. package/dist/docs/components/floating-panel.md +79 -285
  453. package/dist/docs/components/form.md +4 -0
  454. package/dist/docs/components/grid.md +11 -60
  455. package/dist/docs/components/heading.md +35 -32
  456. package/dist/docs/components/hover-card.md +9 -1
  457. package/dist/docs/components/icon.md +1 -0
  458. package/dist/docs/components/kbd.md +2 -0
  459. package/dist/docs/components/label.md +11 -9
  460. package/dist/docs/components/link.md +31 -209
  461. package/dist/docs/components/notification-center.md +30 -15
  462. package/dist/docs/components/page-header.md +20 -6
  463. package/dist/docs/components/pagination.md +4 -0
  464. package/dist/docs/components/pills.md +13 -4
  465. package/dist/docs/components/popover.md +10 -3
  466. package/dist/docs/components/prose.md +9 -0
  467. package/dist/docs/components/qr-code.md +12 -12
  468. package/dist/docs/components/quote.md +9 -4
  469. package/dist/docs/components/resizable.md +26 -18
  470. package/dist/docs/components/rich-text-editor.md +68 -18
  471. package/dist/docs/components/scroll-area.md +17 -9
  472. package/dist/docs/components/section.md +3 -38
  473. package/dist/docs/components/segmented-control.md +1 -1
  474. package/dist/docs/components/segmented-meter.md +9 -0
  475. package/dist/docs/components/separator.md +10 -46
  476. package/dist/docs/components/sidebar.md +34 -9
  477. package/dist/docs/components/sonner.md +25 -16
  478. package/dist/docs/components/stepper.md +8 -33
  479. package/dist/docs/components/strong.md +1 -1
  480. package/dist/docs/components/tab-nav.md +33 -96
  481. package/dist/docs/components/table-of-contents.md +8 -2
  482. package/dist/docs/components/tabs.md +19 -50
  483. package/dist/docs/components/text-field.md +1 -0
  484. package/dist/docs/components/text.md +34 -28
  485. package/dist/docs/components/theme-panel.md +3 -28
  486. package/dist/docs/components/theme.md +7 -3
  487. package/dist/docs/components/toast.md +27 -13
  488. package/dist/docs/components/toggle-tip.md +58 -241
  489. package/dist/docs/components/toolbar.md +16 -39
  490. package/dist/docs/components/tooltip.md +13 -7
  491. package/dist/docs/components/tree-view.md +22 -55
  492. package/dist/docs/consumer-guide.md +11 -4
  493. package/dist/generated/tokens.cjs +1 -0
  494. package/dist/generated/tokens.cjs.map +2 -2
  495. package/dist/generated/tokens.d.cts.map +1 -1
  496. package/dist/generated/tokens.d.mts.map +1 -1
  497. package/dist/generated/tokens.d.ts.map +1 -1
  498. package/dist/generated/tokens.js +1 -0
  499. package/dist/generated/tokens.js.map +2 -2
  500. package/dist/styles.css +1921 -1349
  501. package/dist/tokens.css +346 -362
  502. package/package.json +1 -1
@@ -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', 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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",
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). Add scroll offsets to convert\n // viewport coordinates into the indicator's content coordinates; otherwise\n // a scrolled selection paints behind the preceding item.\n setIndicator({\n x: activeRect.left - rootRect.left - root.clientLeft + root.scrollLeft,\n y: activeRect.top - rootRect.top - root.clientTop + root.scrollTop,\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,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
+ {"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,kGA0JxB,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,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
+ {"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,kGA0JxB,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,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
+ {"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,kGA0JxB,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"}
@@ -40,8 +40,8 @@ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled =
40
40
  const rootRect = root.getBoundingClientRect();
41
41
  const activeRect = active.getBoundingClientRect();
42
42
  setIndicator({
43
- x: activeRect.left - rootRect.left - root.clientLeft,
44
- y: activeRect.top - rootRect.top - root.clientTop,
43
+ x: activeRect.left - rootRect.left - root.clientLeft + root.scrollLeft,
44
+ y: activeRect.top - rootRect.top - root.clientTop + root.scrollTop,
45
45
  width: activeRect.width,
46
46
  height: activeRect.height
47
47
  });
@@ -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', 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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",
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). Add scroll offsets to convert\n // viewport coordinates into the indicator's content coordinates; otherwise\n // a scrolled selection paints behind the preceding item.\n setIndicator({\n x: activeRect.left - rootRect.left - root.clientLeft + root.scrollLeft,\n y: activeRect.top - rootRect.top - root.clientTop + root.scrollTop,\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": []
7
7
  }
@@ -19,18 +19,12 @@
19
19
  margin-inline: var(--dsx-space-xs);
20
20
  }
21
21
 
22
- .dsx-separator[data-orientation='horizontal'][data-size='sm'] { height: var(--dsx-border-width-sm); }
23
- .dsx-separator[data-orientation='horizontal'][data-size='lg'] { height: var(--dsx-border-width-lg); }
24
-
25
- .dsx-separator[data-orientation='vertical'][data-size='sm'] { width: var(--dsx-border-width-sm); }
26
- .dsx-separator[data-orientation='vertical'][data-size='lg'] { width: var(--dsx-border-width-lg); }
27
-
28
22
  .dsx-separator--decorative {
29
23
  background: var(--dsx-color-separator-muted);
30
24
  }
31
25
 
32
- /* Reserved accent hook: any accent-color value paints the separator in the accent
33
- indicator tone, for deliberate accent-divided surfaces. */
26
+ /* Explicit accent rules use the decorative role; readable ink and selected
27
+ control indicators retain their own accent-indicator role. */
34
28
  .dsx-separator[data-accent-color] {
35
- background: var(--dsx-color-accent-indicator);
29
+ background: var(--dsx-color-accent-border);
36
30
  }
@@ -167,6 +167,7 @@ function useSidebar() {
167
167
  },
168
168
  isMobile: false,
169
169
  mobile: "none",
170
+ mobileTrigger: true,
170
171
  sidebarId: void 0,
171
172
  collapsible: "offcanvas",
172
173
  manualToggleRef: { current: false },
@@ -174,7 +175,8 @@ function useSidebar() {
174
175
  recoveryRailRef: { current: null },
175
176
  rootRef: { current: null },
176
177
  defaultSubmenuMode: "click",
177
- submenuOpenOnActive: true
178
+ submenuOpenOnActive: true,
179
+ variant: "default"
178
180
  };
179
181
  }
180
182
  function useMergedRef(...refs) {
@@ -254,8 +256,10 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
254
256
  storage = "localStorage",
255
257
  toggleShortcut = true,
256
258
  mobile = "sheet",
259
+ mobileTrigger = true,
257
260
  mobileBreakpoint = 768,
258
261
  collapsible = "offcanvas",
262
+ variant = "default",
259
263
  hoverExpand = false,
260
264
  previewOpen = false,
261
265
  nested = false,
@@ -338,6 +342,7 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
338
342
  }
339
343
  }, [isMobile]);
340
344
  const isMobileMode = mobile !== "none" && isMobile;
345
+ const effectiveVariant = variant === "floating" && !isMobileMode ? "floating" : "default";
341
346
  const canPreview = hoverExpand && collapsible === "icon" && !isMobileMode;
342
347
  const effectivePreviewExpanded = canPreview && (previewExpanded || previewOpen);
343
348
  const effectiveExpanded = persisted.expanded || effectivePreviewExpanded;
@@ -363,6 +368,7 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
363
368
  setMobileSheetOpen,
364
369
  isMobile: isMobileMode,
365
370
  mobile,
371
+ mobileTrigger,
366
372
  sidebarId,
367
373
  collapsible,
368
374
  manualToggleRef,
@@ -370,9 +376,10 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
370
376
  recoveryRailRef,
371
377
  rootRef,
372
378
  defaultSubmenuMode,
373
- submenuOpenOnActive
379
+ submenuOpenOnActive,
380
+ variant: effectiveVariant
374
381
  }),
375
- [effectiveExpanded, persisted.expanded, persisted.setExpanded, effectivePreviewExpanded, canPreview, mobileSheetOpen, isMobileMode, mobile, sidebarId, collapsible, defaultSubmenuMode, submenuOpenOnActive]
382
+ [effectiveExpanded, persisted.expanded, persisted.setExpanded, effectivePreviewExpanded, canPreview, mobileSheetOpen, isMobileMode, mobile, mobileTrigger, sidebarId, collapsible, defaultSubmenuMode, submenuOpenOnActive, effectiveVariant]
376
383
  );
377
384
  const nestedCounterRef = React.useRef(0);
378
385
  const desktopChildren = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarNestedContext.Provider, { value: { counter: nestedCounterRef, isActive: nested }, children });
@@ -387,6 +394,7 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
387
394
  "data-preview-expanded": effectivePreviewExpanded ? "true" : "false",
388
395
  "data-pinned-state": getSidebarState(persisted.expanded),
389
396
  "data-transitions-ready": transitionsReady ? "true" : "false",
397
+ "data-variant": effectiveVariant,
390
398
  ...providerProps,
391
399
  suppressHydrationWarning: true,
392
400
  children: [
@@ -433,6 +441,7 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
433
441
  },
434
442
  isMobile: false,
435
443
  mobile: "none",
444
+ mobileTrigger: true,
436
445
  sidebarId: void 0,
437
446
  collapsible: "offcanvas",
438
447
  manualToggleRef: { current: false },
@@ -440,7 +449,8 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
440
449
  recoveryRailRef: { current: null },
441
450
  rootRef: { current: null },
442
451
  defaultSubmenuMode: "click",
443
- submenuOpenOnActive: true
452
+ submenuOpenOnActive: true,
453
+ variant: "default"
444
454
  };
445
455
  const { className, ...sidebarProps } = (0, import_extractProps.extractProps)(
446
456
  {
@@ -544,7 +554,7 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
544
554
  } = sidebarProps;
545
555
  const isMobileSheetMode = value.isMobile && value.mobile === "sheet";
546
556
  const content = isMobileSheetMode ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(React.Suspense, { fallback: null, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Drawer, { open: value.mobileSheetOpen, onOpenChange: value.setMobileSheetOpen, direction: "left", children: [
547
- !value.mobileSheetOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
557
+ !value.mobileSheetOpen && value.mobileTrigger && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
548
558
  "button",
549
559
  {
550
560
  type: "button",
@@ -568,6 +578,7 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
568
578
  "data-preview-expanded": "false",
569
579
  "data-pinned-state": getSidebarState(value.pinnedExpanded),
570
580
  "data-effect": effect,
581
+ "data-variant": value.variant,
571
582
  "data-nested": isNestedInstance ? "true" : void 0,
572
583
  "data-slot": "sidebar",
573
584
  "aria-label": "Sidebar",
@@ -588,6 +599,7 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
588
599
  "data-preview-expanded": value.previewExpanded ? "true" : "false",
589
600
  "data-pinned-state": getSidebarState(value.pinnedExpanded),
590
601
  "data-effect": effect,
602
+ "data-variant": value.variant,
591
603
  "data-nested": isNestedInstance ? "true" : void 0,
592
604
  "data-slot": "sidebar",
593
605
  "aria-label": "Sidebar",