@d4gger/design-system 3.0.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/README.md +19 -0
  2. package/dist/components/accordion.css +9 -2
  3. package/dist/components/alert/Alert.cjs +11 -7
  4. package/dist/components/alert/Alert.cjs.map +2 -2
  5. package/dist/components/alert/Alert.d.cts.map +1 -1
  6. package/dist/components/alert/Alert.d.mts.map +1 -1
  7. package/dist/components/alert/Alert.d.ts.map +1 -1
  8. package/dist/components/alert/Alert.js +12 -8
  9. package/dist/components/alert/Alert.js.map +2 -2
  10. package/dist/components/alert.css +13 -0
  11. package/dist/components/article-nodes.css +16 -1
  12. package/dist/components/articleNodes/ArticleNodes.cjs +46 -5
  13. package/dist/components/articleNodes/ArticleNodes.cjs.map +2 -2
  14. package/dist/components/articleNodes/ArticleNodes.d.cts +7 -3
  15. package/dist/components/articleNodes/ArticleNodes.d.cts.map +1 -1
  16. package/dist/components/articleNodes/ArticleNodes.d.mts +7 -3
  17. package/dist/components/articleNodes/ArticleNodes.d.mts.map +1 -1
  18. package/dist/components/articleNodes/ArticleNodes.d.ts +7 -3
  19. package/dist/components/articleNodes/ArticleNodes.d.ts.map +1 -1
  20. package/dist/components/articleNodes/ArticleNodes.js +46 -5
  21. package/dist/components/articleNodes/ArticleNodes.js.map +2 -2
  22. package/dist/components/articleNodes/articleExtensions.cjs +21 -4
  23. package/dist/components/articleNodes/articleExtensions.cjs.map +2 -2
  24. package/dist/components/articleNodes/articleExtensions.d.cts +8 -2
  25. package/dist/components/articleNodes/articleExtensions.d.cts.map +1 -1
  26. package/dist/components/articleNodes/articleExtensions.d.mts +8 -2
  27. package/dist/components/articleNodes/articleExtensions.d.mts.map +1 -1
  28. package/dist/components/articleNodes/articleExtensions.d.ts +8 -2
  29. package/dist/components/articleNodes/articleExtensions.d.ts.map +1 -1
  30. package/dist/components/articleNodes/articleExtensions.js +21 -4
  31. package/dist/components/articleNodes/articleExtensions.js.map +2 -2
  32. package/dist/components/articleNodes/articleNodeViews.cjs +154 -0
  33. package/dist/components/articleNodes/articleNodeViews.cjs.map +7 -0
  34. package/dist/components/articleNodes/articleNodeViews.d.cts +3 -0
  35. package/dist/components/articleNodes/articleNodeViews.d.cts.map +1 -0
  36. package/dist/components/articleNodes/articleNodeViews.d.mts +3 -0
  37. package/dist/components/articleNodes/articleNodeViews.d.mts.map +1 -0
  38. package/dist/components/articleNodes/articleNodeViews.d.ts +3 -0
  39. package/dist/components/articleNodes/articleNodeViews.d.ts.map +1 -0
  40. package/dist/components/articleNodes/articleNodeViews.js +124 -0
  41. package/dist/components/articleNodes/articleNodeViews.js.map +7 -0
  42. package/dist/components/articleNodes/articleNodes.props.cjs.map +1 -1
  43. package/dist/components/articleNodes/articleNodes.props.d.cts +25 -2
  44. package/dist/components/articleNodes/articleNodes.props.d.cts.map +1 -1
  45. package/dist/components/articleNodes/articleNodes.props.d.mts +25 -2
  46. package/dist/components/articleNodes/articleNodes.props.d.mts.map +1 -1
  47. package/dist/components/articleNodes/articleNodes.props.d.ts +25 -2
  48. package/dist/components/articleNodes/articleNodes.props.d.ts.map +1 -1
  49. package/dist/components/banner.css +5 -4
  50. package/dist/components/blockquote.css +7 -4
  51. package/dist/components/bottom-dock.css +132 -0
  52. package/dist/components/bottomDock/BottomDock.cjs +140 -0
  53. package/dist/components/bottomDock/BottomDock.cjs.map +7 -0
  54. package/dist/components/bottomDock/BottomDock.d.cts +25 -0
  55. package/dist/components/bottomDock/BottomDock.d.cts.map +1 -0
  56. package/dist/components/bottomDock/BottomDock.d.mts +25 -0
  57. package/dist/components/bottomDock/BottomDock.d.mts.map +1 -0
  58. package/dist/components/bottomDock/BottomDock.d.ts +25 -0
  59. package/dist/components/bottomDock/BottomDock.d.ts.map +1 -0
  60. package/dist/components/bottomDock/BottomDock.js +110 -0
  61. package/dist/components/bottomDock/BottomDock.js.map +7 -0
  62. package/dist/components/bottomDock/bottomDock.props.cjs +49 -0
  63. package/dist/components/bottomDock/bottomDock.props.cjs.map +7 -0
  64. package/dist/components/bottomDock/bottomDock.props.d.cts +29 -0
  65. package/dist/components/bottomDock/bottomDock.props.d.cts.map +1 -0
  66. package/dist/components/bottomDock/bottomDock.props.d.mts +29 -0
  67. package/dist/components/bottomDock/bottomDock.props.d.mts.map +1 -0
  68. package/dist/components/bottomDock/bottomDock.props.d.ts +29 -0
  69. package/dist/components/bottomDock/bottomDock.props.d.ts.map +1 -0
  70. package/dist/components/bottomDock/bottomDock.props.js +29 -0
  71. package/dist/components/bottomDock/bottomDock.props.js.map +7 -0
  72. package/dist/components/breadcrumb.css +24 -3
  73. package/dist/components/callout.css +20 -7
  74. package/dist/components/card.css +8 -0
  75. package/dist/components/code.css +29 -13
  76. package/dist/components/collapsible/Collapsible.cjs +4 -0
  77. package/dist/components/collapsible/Collapsible.cjs.map +2 -2
  78. package/dist/components/collapsible/Collapsible.d.cts.map +1 -1
  79. package/dist/components/collapsible/Collapsible.d.mts.map +1 -1
  80. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  81. package/dist/components/collapsible/Collapsible.js +4 -0
  82. package/dist/components/collapsible/Collapsible.js.map +2 -2
  83. package/dist/components/collapsible.css +10 -1
  84. package/dist/components/command.css +0 -2
  85. package/dist/components/comment-thread.css +15 -7
  86. package/dist/components/commentThread/CommentThread.cjs +45 -17
  87. package/dist/components/commentThread/CommentThread.cjs.map +2 -2
  88. package/dist/components/commentThread/CommentThread.d.cts +6 -6
  89. package/dist/components/commentThread/CommentThread.d.cts.map +1 -1
  90. package/dist/components/commentThread/CommentThread.d.mts +6 -6
  91. package/dist/components/commentThread/CommentThread.d.mts.map +1 -1
  92. package/dist/components/commentThread/CommentThread.d.ts +6 -6
  93. package/dist/components/commentThread/CommentThread.d.ts.map +1 -1
  94. package/dist/components/commentThread/CommentThread.js +45 -17
  95. package/dist/components/commentThread/CommentThread.js.map +2 -2
  96. package/dist/components/commentThread/commentThread.props.cjs.map +1 -1
  97. package/dist/components/commentThread/commentThread.props.d.cts +24 -0
  98. package/dist/components/commentThread/commentThread.props.d.cts.map +1 -1
  99. package/dist/components/commentThread/commentThread.props.d.mts +24 -0
  100. package/dist/components/commentThread/commentThread.props.d.mts.map +1 -1
  101. package/dist/components/commentThread/commentThread.props.d.ts +24 -0
  102. package/dist/components/commentThread/commentThread.props.d.ts.map +1 -1
  103. package/dist/components/config-drawer.css +7 -3
  104. package/dist/components/configDrawer/ConfigDrawer.cjs +1 -1
  105. package/dist/components/configDrawer/ConfigDrawer.cjs.map +2 -2
  106. package/dist/components/configDrawer/ConfigDrawer.js +1 -1
  107. package/dist/components/configDrawer/ConfigDrawer.js.map +2 -2
  108. package/dist/components/context-menu.css +3 -1
  109. package/dist/components/contextMenu/ContextMenu.cjs +37 -6
  110. package/dist/components/contextMenu/ContextMenu.cjs.map +2 -2
  111. package/dist/components/contextMenu/ContextMenu.d.cts +1 -1
  112. package/dist/components/contextMenu/ContextMenu.d.cts.map +1 -1
  113. package/dist/components/contextMenu/ContextMenu.d.mts +1 -1
  114. package/dist/components/contextMenu/ContextMenu.d.mts.map +1 -1
  115. package/dist/components/contextMenu/ContextMenu.d.ts +1 -1
  116. package/dist/components/contextMenu/ContextMenu.d.ts.map +1 -1
  117. package/dist/components/contextMenu/ContextMenu.js +37 -6
  118. package/dist/components/contextMenu/ContextMenu.js.map +2 -2
  119. package/dist/components/drawer.css +23 -6
  120. package/dist/components/dropdownMenu/DropdownMenu.cjs +10 -5
  121. package/dist/components/dropdownMenu/DropdownMenu.cjs.map +2 -2
  122. package/dist/components/dropdownMenu/DropdownMenu.d.cts.map +1 -1
  123. package/dist/components/dropdownMenu/DropdownMenu.d.mts.map +1 -1
  124. package/dist/components/dropdownMenu/DropdownMenu.d.ts.map +1 -1
  125. package/dist/components/dropdownMenu/DropdownMenu.js +10 -5
  126. package/dist/components/dropdownMenu/DropdownMenu.js.map +2 -2
  127. package/dist/components/file-upload.css +36 -9
  128. package/dist/components/floating-panel.css +49 -18
  129. package/dist/components/floatingPanel/FloatingPanel.cjs +156 -58
  130. package/dist/components/floatingPanel/FloatingPanel.cjs.map +2 -2
  131. package/dist/components/floatingPanel/FloatingPanel.d.cts.map +1 -1
  132. package/dist/components/floatingPanel/FloatingPanel.d.mts.map +1 -1
  133. package/dist/components/floatingPanel/FloatingPanel.d.ts.map +1 -1
  134. package/dist/components/floatingPanel/FloatingPanel.js +156 -58
  135. package/dist/components/floatingPanel/FloatingPanel.js.map +2 -2
  136. package/dist/components/grid/Grid.cjs +24 -35
  137. package/dist/components/grid/Grid.cjs.map +2 -2
  138. package/dist/components/grid/Grid.d.cts.map +1 -1
  139. package/dist/components/grid/Grid.d.mts.map +1 -1
  140. package/dist/components/grid/Grid.d.ts.map +1 -1
  141. package/dist/components/grid/Grid.js +24 -35
  142. package/dist/components/grid/Grid.js.map +2 -2
  143. package/dist/components/heading/Heading.cjs +1 -8
  144. package/dist/components/heading/Heading.cjs.map +2 -2
  145. package/dist/components/heading/Heading.d.cts.map +1 -1
  146. package/dist/components/heading/Heading.d.mts.map +1 -1
  147. package/dist/components/heading/Heading.d.ts.map +1 -1
  148. package/dist/components/heading/Heading.js +1 -8
  149. package/dist/components/heading/Heading.js.map +2 -2
  150. package/dist/components/heading/heading.props.cjs +9 -9
  151. package/dist/components/heading/heading.props.cjs.map +2 -2
  152. package/dist/components/heading/heading.props.d.cts +42 -43
  153. package/dist/components/heading/heading.props.d.cts.map +1 -1
  154. package/dist/components/heading/heading.props.d.mts +42 -43
  155. package/dist/components/heading/heading.props.d.mts.map +1 -1
  156. package/dist/components/heading/heading.props.d.ts +42 -43
  157. package/dist/components/heading/heading.props.d.ts.map +1 -1
  158. package/dist/components/heading/heading.props.js +9 -9
  159. package/dist/components/heading/heading.props.js.map +2 -2
  160. package/dist/components/heading.css +127 -104
  161. package/dist/components/hover-card.css +5 -2
  162. package/dist/components/icon/Icon.cjs +3 -0
  163. package/dist/components/icon/Icon.cjs.map +2 -2
  164. package/dist/components/icon/Icon.d.cts +5 -1
  165. package/dist/components/icon/Icon.d.cts.map +1 -1
  166. package/dist/components/icon/Icon.d.mts +5 -1
  167. package/dist/components/icon/Icon.d.mts.map +1 -1
  168. package/dist/components/icon/Icon.d.ts +5 -1
  169. package/dist/components/icon/Icon.d.ts.map +1 -1
  170. package/dist/components/icon/Icon.js +4 -0
  171. package/dist/components/icon/Icon.js.map +2 -2
  172. package/dist/components/icon/icons.cjs +2 -0
  173. package/dist/components/icon/icons.cjs.map +2 -2
  174. package/dist/components/icon/icons.d.cts +5 -0
  175. package/dist/components/icon/icons.d.cts.map +1 -1
  176. package/dist/components/icon/icons.d.mts +5 -0
  177. package/dist/components/icon/icons.d.mts.map +1 -1
  178. package/dist/components/icon/icons.d.ts +5 -0
  179. package/dist/components/icon/icons.d.ts.map +1 -1
  180. package/dist/components/icon/icons.js +2 -0
  181. package/dist/components/icon/icons.js.map +2 -2
  182. package/dist/components/index.cjs +1 -0
  183. package/dist/components/index.cjs.map +2 -2
  184. package/dist/components/index.d.cts +1 -0
  185. package/dist/components/index.d.cts.map +1 -1
  186. package/dist/components/index.d.mts +1 -0
  187. package/dist/components/index.d.mts.map +1 -1
  188. package/dist/components/index.d.ts +1 -0
  189. package/dist/components/index.d.ts.map +1 -1
  190. package/dist/components/index.js +1 -0
  191. package/dist/components/index.js.map +2 -2
  192. package/dist/components/label.css +3 -0
  193. package/dist/components/link.css +33 -97
  194. package/dist/components/notification-center.css +49 -9
  195. package/dist/components/notificationCenter/NotificationCenter.cjs +21 -16
  196. package/dist/components/notificationCenter/NotificationCenter.cjs.map +2 -2
  197. package/dist/components/notificationCenter/NotificationCenter.d.cts.map +1 -1
  198. package/dist/components/notificationCenter/NotificationCenter.d.mts.map +1 -1
  199. package/dist/components/notificationCenter/NotificationCenter.d.ts.map +1 -1
  200. package/dist/components/notificationCenter/NotificationCenter.js +22 -17
  201. package/dist/components/notificationCenter/NotificationCenter.js.map +2 -2
  202. package/dist/components/pills/Pills.cjs +1 -1
  203. package/dist/components/pills/Pills.cjs.map +2 -2
  204. package/dist/components/pills/Pills.js +2 -2
  205. package/dist/components/pills/Pills.js.map +2 -2
  206. package/dist/components/pills.css +6 -0
  207. package/dist/components/popover.css +45 -6
  208. package/dist/components/prose.css +3 -3
  209. package/dist/components/qr-code.css +5 -2
  210. package/dist/components/qrCode/QrCode.cjs +14 -11
  211. package/dist/components/qrCode/QrCode.cjs.map +2 -2
  212. package/dist/components/qrCode/QrCode.d.cts.map +1 -1
  213. package/dist/components/qrCode/QrCode.d.mts.map +1 -1
  214. package/dist/components/qrCode/QrCode.d.ts.map +1 -1
  215. package/dist/components/qrCode/QrCode.js +14 -11
  216. package/dist/components/qrCode/QrCode.js.map +2 -2
  217. package/dist/components/resizable.css +20 -4
  218. package/dist/components/rich-text-editor.css +50 -14
  219. package/dist/components/richTextEditor/EditorTools.cjs +226 -0
  220. package/dist/components/richTextEditor/EditorTools.cjs.map +7 -0
  221. package/dist/components/richTextEditor/EditorTools.d.cts +22 -0
  222. package/dist/components/richTextEditor/EditorTools.d.cts.map +1 -0
  223. package/dist/components/richTextEditor/EditorTools.d.mts +22 -0
  224. package/dist/components/richTextEditor/EditorTools.d.mts.map +1 -0
  225. package/dist/components/richTextEditor/EditorTools.d.ts +22 -0
  226. package/dist/components/richTextEditor/EditorTools.d.ts.map +1 -0
  227. package/dist/components/richTextEditor/EditorTools.js +196 -0
  228. package/dist/components/richTextEditor/EditorTools.js.map +7 -0
  229. package/dist/components/richTextEditor/MentionSuggestions.cjs +96 -0
  230. package/dist/components/richTextEditor/MentionSuggestions.cjs.map +7 -0
  231. package/dist/components/richTextEditor/MentionSuggestions.d.cts +7 -0
  232. package/dist/components/richTextEditor/MentionSuggestions.d.cts.map +1 -0
  233. package/dist/components/richTextEditor/MentionSuggestions.d.mts +7 -0
  234. package/dist/components/richTextEditor/MentionSuggestions.d.mts.map +1 -0
  235. package/dist/components/richTextEditor/MentionSuggestions.d.ts +7 -0
  236. package/dist/components/richTextEditor/MentionSuggestions.d.ts.map +1 -0
  237. package/dist/components/richTextEditor/MentionSuggestions.js +66 -0
  238. package/dist/components/richTextEditor/MentionSuggestions.js.map +7 -0
  239. package/dist/components/richTextEditor/RichTextEditor.cjs +53 -206
  240. package/dist/components/richTextEditor/RichTextEditor.cjs.map +3 -3
  241. package/dist/components/richTextEditor/RichTextEditor.d.cts +17 -7
  242. package/dist/components/richTextEditor/RichTextEditor.d.cts.map +1 -1
  243. package/dist/components/richTextEditor/RichTextEditor.d.mts +17 -7
  244. package/dist/components/richTextEditor/RichTextEditor.d.mts.map +1 -1
  245. package/dist/components/richTextEditor/RichTextEditor.d.ts +17 -7
  246. package/dist/components/richTextEditor/RichTextEditor.d.ts.map +1 -1
  247. package/dist/components/richTextEditor/RichTextEditor.js +53 -206
  248. package/dist/components/richTextEditor/RichTextEditor.js.map +3 -3
  249. package/dist/components/richTextEditor/editorTokens.cjs +75 -0
  250. package/dist/components/richTextEditor/editorTokens.cjs.map +7 -0
  251. package/dist/components/richTextEditor/editorTokens.d.cts +21 -0
  252. package/dist/components/richTextEditor/editorTokens.d.cts.map +1 -0
  253. package/dist/components/richTextEditor/editorTokens.d.mts +21 -0
  254. package/dist/components/richTextEditor/editorTokens.d.mts.map +1 -0
  255. package/dist/components/richTextEditor/editorTokens.d.ts +21 -0
  256. package/dist/components/richTextEditor/editorTokens.d.ts.map +1 -0
  257. package/dist/components/richTextEditor/editorTokens.js +55 -0
  258. package/dist/components/richTextEditor/editorTokens.js.map +7 -0
  259. package/dist/components/scroll-area.css +12 -0
  260. package/dist/components/scrollArea/ScrollArea.cjs +12 -1
  261. package/dist/components/scrollArea/ScrollArea.cjs.map +2 -2
  262. package/dist/components/scrollArea/ScrollArea.d.cts.map +1 -1
  263. package/dist/components/scrollArea/ScrollArea.d.mts.map +1 -1
  264. package/dist/components/scrollArea/ScrollArea.d.ts.map +1 -1
  265. package/dist/components/scrollArea/ScrollArea.js +12 -1
  266. package/dist/components/scrollArea/ScrollArea.js.map +2 -2
  267. package/dist/components/segmentedControl/SegmentedControl.cjs +2 -2
  268. package/dist/components/segmentedControl/SegmentedControl.cjs.map +2 -2
  269. package/dist/components/segmentedControl/SegmentedControl.d.cts.map +1 -1
  270. package/dist/components/segmentedControl/SegmentedControl.d.mts.map +1 -1
  271. package/dist/components/segmentedControl/SegmentedControl.d.ts.map +1 -1
  272. package/dist/components/segmentedControl/SegmentedControl.js +2 -2
  273. package/dist/components/segmentedControl/SegmentedControl.js.map +2 -2
  274. package/dist/components/separator.css +3 -9
  275. package/dist/components/sidebar/Sidebar.cjs +12 -4
  276. package/dist/components/sidebar/Sidebar.cjs.map +2 -2
  277. package/dist/components/sidebar/Sidebar.d.cts +4 -1
  278. package/dist/components/sidebar/Sidebar.d.cts.map +1 -1
  279. package/dist/components/sidebar/Sidebar.d.mts +4 -1
  280. package/dist/components/sidebar/Sidebar.d.mts.map +1 -1
  281. package/dist/components/sidebar/Sidebar.d.ts +4 -1
  282. package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
  283. package/dist/components/sidebar/Sidebar.js +12 -4
  284. package/dist/components/sidebar/Sidebar.js.map +2 -2
  285. package/dist/components/sidebar/sidebar.props.cjs +8 -1
  286. package/dist/components/sidebar/sidebar.props.cjs.map +2 -2
  287. package/dist/components/sidebar/sidebar.props.d.cts +9 -1
  288. package/dist/components/sidebar/sidebar.props.d.cts.map +1 -1
  289. package/dist/components/sidebar/sidebar.props.d.mts +9 -1
  290. package/dist/components/sidebar/sidebar.props.d.mts.map +1 -1
  291. package/dist/components/sidebar/sidebar.props.d.ts +9 -1
  292. package/dist/components/sidebar/sidebar.props.d.ts.map +1 -1
  293. package/dist/components/sidebar/sidebar.props.js +8 -1
  294. package/dist/components/sidebar/sidebar.props.js.map +2 -2
  295. package/dist/components/sidebar.css +28 -0
  296. package/dist/components/sonner.css +78 -16
  297. package/dist/components/stepper.css +23 -12
  298. package/dist/components/tab-nav.css +25 -13
  299. package/dist/components/tabNav/TabNav.cjs +1 -4
  300. package/dist/components/tabNav/TabNav.cjs.map +2 -2
  301. package/dist/components/tabNav/TabNav.d.cts.map +1 -1
  302. package/dist/components/tabNav/TabNav.d.mts.map +1 -1
  303. package/dist/components/tabNav/TabNav.d.ts.map +1 -1
  304. package/dist/components/tabNav/TabNav.js +1 -4
  305. package/dist/components/tabNav/TabNav.js.map +2 -2
  306. package/dist/components/table-of-contents.css +12 -2
  307. package/dist/components/tableOfContents/TableOfContents.cjs +11 -4
  308. package/dist/components/tableOfContents/TableOfContents.cjs.map +2 -2
  309. package/dist/components/tableOfContents/TableOfContents.d.cts.map +1 -1
  310. package/dist/components/tableOfContents/TableOfContents.d.mts.map +1 -1
  311. package/dist/components/tableOfContents/TableOfContents.d.ts.map +1 -1
  312. package/dist/components/tableOfContents/TableOfContents.js +11 -4
  313. package/dist/components/tableOfContents/TableOfContents.js.map +2 -2
  314. package/dist/components/tabs/Tabs.cjs +39 -54
  315. package/dist/components/tabs/Tabs.cjs.map +2 -2
  316. package/dist/components/tabs/Tabs.d.cts.map +1 -1
  317. package/dist/components/tabs/Tabs.d.mts.map +1 -1
  318. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  319. package/dist/components/tabs/Tabs.js +39 -54
  320. package/dist/components/tabs/Tabs.js.map +2 -2
  321. package/dist/components/tabs.css +52 -7
  322. package/dist/components/text/text.props.cjs +9 -9
  323. package/dist/components/text/text.props.cjs.map +2 -2
  324. package/dist/components/text/text.props.d.cts +42 -43
  325. package/dist/components/text/text.props.d.cts.map +1 -1
  326. package/dist/components/text/text.props.d.mts +42 -43
  327. package/dist/components/text/text.props.d.mts.map +1 -1
  328. package/dist/components/text/text.props.d.ts +42 -43
  329. package/dist/components/text/text.props.d.ts.map +1 -1
  330. package/dist/components/text/text.props.js +9 -9
  331. package/dist/components/text/text.props.js.map +2 -2
  332. package/dist/components/text/typography.props.cjs +32 -0
  333. package/dist/components/text/typography.props.cjs.map +7 -0
  334. package/dist/components/text/typography.props.d.cts +3 -0
  335. package/dist/components/text/typography.props.d.cts.map +1 -0
  336. package/dist/components/text/typography.props.d.mts +3 -0
  337. package/dist/components/text/typography.props.d.mts.map +1 -0
  338. package/dist/components/text/typography.props.d.ts +3 -0
  339. package/dist/components/text/typography.props.d.ts.map +1 -0
  340. package/dist/components/text/typography.props.js +12 -0
  341. package/dist/components/text/typography.props.js.map +7 -0
  342. package/dist/components/text-field.css +1 -0
  343. package/dist/components/text.css +41 -6
  344. package/dist/components/theme-panel.css +6 -0
  345. package/dist/components/toast/Toast.cjs +3 -1
  346. package/dist/components/toast/Toast.cjs.map +2 -2
  347. package/dist/components/toast/Toast.d.cts.map +1 -1
  348. package/dist/components/toast/Toast.d.mts.map +1 -1
  349. package/dist/components/toast/Toast.d.ts.map +1 -1
  350. package/dist/components/toast/Toast.js +3 -1
  351. package/dist/components/toast/Toast.js.map +2 -2
  352. package/dist/components/toast.css +36 -36
  353. package/dist/components/toggle-tip.css +58 -9
  354. package/dist/components/toggleTip/ToggleTip.cjs +9 -5
  355. package/dist/components/toggleTip/ToggleTip.cjs.map +2 -2
  356. package/dist/components/toggleTip/ToggleTip.d.cts.map +1 -1
  357. package/dist/components/toggleTip/ToggleTip.d.mts.map +1 -1
  358. package/dist/components/toggleTip/ToggleTip.d.ts.map +1 -1
  359. package/dist/components/toggleTip/ToggleTip.js +9 -5
  360. package/dist/components/toggleTip/ToggleTip.js.map +2 -2
  361. package/dist/components/toolbar/Toolbar.cjs +10 -7
  362. package/dist/components/toolbar/Toolbar.cjs.map +2 -2
  363. package/dist/components/toolbar/Toolbar.js +10 -7
  364. package/dist/components/toolbar/Toolbar.js.map +2 -2
  365. package/dist/components/toolbar.css +58 -4
  366. package/dist/components/tooltip.css +9 -5
  367. package/dist/components/tree-view.css +17 -3
  368. package/dist/components/treeView/TreeView.cjs +76 -21
  369. package/dist/components/treeView/TreeView.cjs.map +2 -2
  370. package/dist/components/treeView/TreeView.d.cts.map +1 -1
  371. package/dist/components/treeView/TreeView.d.mts.map +1 -1
  372. package/dist/components/treeView/TreeView.d.ts.map +1 -1
  373. package/dist/components/treeView/TreeView.js +76 -21
  374. package/dist/components/treeView/TreeView.js.map +2 -2
  375. package/dist/components.css +1 -0
  376. package/dist/docs/README.md +1 -0
  377. package/dist/docs/component-contract.md +4 -3
  378. package/dist/docs/component-index.json +9 -1
  379. package/dist/docs/components/accordion.md +5 -36
  380. package/dist/docs/components/alert.md +17 -10
  381. package/dist/docs/components/article-nodes.md +59 -2
  382. package/dist/docs/components/aspect-ratio.md +3 -26
  383. package/dist/docs/components/banner.md +7 -7
  384. package/dist/docs/components/blockquote.md +15 -14
  385. package/dist/docs/components/bottom-dock.md +146 -0
  386. package/dist/docs/components/box.md +3 -34
  387. package/dist/docs/components/breadcrumb.md +13 -8
  388. package/dist/docs/components/callout.md +18 -7
  389. package/dist/docs/components/card.md +9 -2
  390. package/dist/docs/components/code.md +33 -220
  391. package/dist/docs/components/collapsible.md +11 -35
  392. package/dist/docs/components/command.md +2 -0
  393. package/dist/docs/components/comment-thread.md +51 -1
  394. package/dist/docs/components/config-drawer.md +72 -171
  395. package/dist/docs/components/container.md +2 -0
  396. package/dist/docs/components/context-menu.md +19 -5
  397. package/dist/docs/components/dialog.md +3 -1
  398. package/dist/docs/components/drawer.md +17 -6
  399. package/dist/docs/components/dropdown-menu.md +11 -2
  400. package/dist/docs/components/em.md +1 -1
  401. package/dist/docs/components/file-upload.md +13 -7
  402. package/dist/docs/components/floating-panel.md +79 -285
  403. package/dist/docs/components/form.md +4 -0
  404. package/dist/docs/components/grid.md +11 -60
  405. package/dist/docs/components/heading.md +35 -32
  406. package/dist/docs/components/hover-card.md +9 -1
  407. package/dist/docs/components/kbd.md +2 -0
  408. package/dist/docs/components/label.md +11 -9
  409. package/dist/docs/components/link.md +31 -209
  410. package/dist/docs/components/notification-center.md +24 -14
  411. package/dist/docs/components/page-header.md +2 -0
  412. package/dist/docs/components/pagination.md +4 -0
  413. package/dist/docs/components/pills.md +13 -4
  414. package/dist/docs/components/popover.md +10 -3
  415. package/dist/docs/components/prose.md +9 -0
  416. package/dist/docs/components/qr-code.md +12 -12
  417. package/dist/docs/components/quote.md +9 -4
  418. package/dist/docs/components/resizable.md +26 -18
  419. package/dist/docs/components/rich-text-editor.md +68 -18
  420. package/dist/docs/components/scroll-area.md +17 -9
  421. package/dist/docs/components/section.md +3 -38
  422. package/dist/docs/components/segmented-control.md +1 -1
  423. package/dist/docs/components/segmented-meter.md +9 -0
  424. package/dist/docs/components/separator.md +10 -46
  425. package/dist/docs/components/sidebar.md +17 -3
  426. package/dist/docs/components/sonner.md +25 -16
  427. package/dist/docs/components/stepper.md +8 -33
  428. package/dist/docs/components/strong.md +1 -1
  429. package/dist/docs/components/tab-nav.md +33 -96
  430. package/dist/docs/components/table-of-contents.md +8 -2
  431. package/dist/docs/components/tabs.md +19 -50
  432. package/dist/docs/components/text-field.md +1 -0
  433. package/dist/docs/components/text.md +34 -28
  434. package/dist/docs/components/theme-panel.md +3 -28
  435. package/dist/docs/components/theme.md +7 -3
  436. package/dist/docs/components/toast.md +27 -13
  437. package/dist/docs/components/toggle-tip.md +58 -241
  438. package/dist/docs/components/toolbar.md +16 -39
  439. package/dist/docs/components/tooltip.md +13 -7
  440. package/dist/docs/components/tree-view.md +22 -55
  441. package/dist/generated/tokens.cjs +1 -0
  442. package/dist/generated/tokens.cjs.map +2 -2
  443. package/dist/generated/tokens.d.cts.map +1 -1
  444. package/dist/generated/tokens.d.mts.map +1 -1
  445. package/dist/generated/tokens.d.ts.map +1 -1
  446. package/dist/generated/tokens.js +1 -0
  447. package/dist/generated/tokens.js.map +2 -2
  448. package/dist/styles.css +1632 -1300
  449. package/dist/tokens.css +344 -362
  450. package/package.json +1 -1
package/dist/styles.css CHANGED
@@ -282,6 +282,7 @@ svg {
282
282
  --dsx-color-accent-surface: rgba(40, 0, 93, 0.2);
283
283
  --dsx-color-border-subtle: #333640;
284
284
  --dsx-color-border-strong: #565b70;
285
+ --dsx-color-accent-border: #bfb1ff;
285
286
  --dsx-effect-shadow-1: 0 1px 2px rgba(8, 9, 12, 0.24);
286
287
  --dsx-effect-shadow-2: 0 2px 8px rgba(8, 9, 12, 0.32);
287
288
  --dsx-effect-shadow-3: 0 4px 16px rgba(8, 9, 12, 0.40);
@@ -319,6 +320,7 @@ svg {
319
320
  --dsx-drawer-min-height-lg: 50vh;
320
321
  --dsx-drawer-min-height-full: 100vh;
321
322
  --dsx-rich-text-editor-min-height: 220px;
323
+ --dsx-rich-text-editor-link-popover-width: 320px;
322
324
  --dsx-empty-state-max-width: 600px;
323
325
  --dsx-empty-state-min-height: 400px;
324
326
  --dsx-input-otp-slot-width: 36px;
@@ -516,146 +518,76 @@ svg {
516
518
  --dsx-z-index-overlay: 80;
517
519
  --dsx-z-index-modal: 90;
518
520
  --dsx-z-index-toast: 100;
519
- }
520
-
521
- [data-accent-color='rift'] {
522
- --dsx-color-accent-1: var(--dsx-color-accent-rift-1);
523
- --dsx-color-accent-2: var(--dsx-color-accent-rift-2);
524
- --dsx-color-accent-3: var(--dsx-color-accent-rift-3);
525
- --dsx-color-accent-4: var(--dsx-color-accent-rift-4);
526
- --dsx-color-accent-5: var(--dsx-color-accent-rift-5);
527
- --dsx-color-accent-6: var(--dsx-color-accent-rift-6);
528
- --dsx-color-accent-7: var(--dsx-color-accent-rift-7);
529
- --dsx-color-accent-8: var(--dsx-color-accent-rift-8);
530
- --dsx-color-accent-9: var(--dsx-color-accent-rift-9);
531
- --dsx-color-accent-10: var(--dsx-color-accent-rift-10);
532
- --dsx-color-accent-11: var(--dsx-color-accent-rift-11);
533
- --dsx-color-accent-12: var(--dsx-color-accent-rift-12);
534
- --dsx-color-primary: var(--dsx-color-accent-rift-9);
535
- --dsx-color-primary-container: var(--dsx-color-accent-rift-3);
536
- --dsx-color-on-primary: #ffffff;
537
- --dsx-color-on-primary-container: var(--dsx-color-accent-rift-11);
538
- --dsx-color-accent-indicator: var(--dsx-color-accent-rift-11);
539
- --dsx-color-accent-track: var(--dsx-color-accent-rift-9);
540
- --dsx-color-accent-contrast: #ffffff;
541
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-rift-3) 20%, transparent);
542
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-rift-9) 64%, transparent);
543
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-rift-9) 28%, transparent);
544
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-rift-9) 40%, transparent);
545
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 8%, transparent);
546
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 16%, transparent);
547
- }
548
-
549
- [data-accent-color='warp'] {
550
- --dsx-color-accent-1: var(--dsx-color-accent-warp-1);
551
- --dsx-color-accent-2: var(--dsx-color-accent-warp-2);
552
- --dsx-color-accent-3: var(--dsx-color-accent-warp-3);
553
- --dsx-color-accent-4: var(--dsx-color-accent-warp-4);
554
- --dsx-color-accent-5: var(--dsx-color-accent-warp-5);
555
- --dsx-color-accent-6: var(--dsx-color-accent-warp-6);
556
- --dsx-color-accent-7: var(--dsx-color-accent-warp-7);
557
- --dsx-color-accent-8: var(--dsx-color-accent-warp-8);
558
- --dsx-color-accent-9: var(--dsx-color-accent-warp-9);
559
- --dsx-color-accent-10: var(--dsx-color-accent-warp-10);
560
- --dsx-color-accent-11: var(--dsx-color-accent-warp-11);
561
- --dsx-color-accent-12: var(--dsx-color-accent-warp-12);
562
- --dsx-color-primary: var(--dsx-color-accent-warp-9);
563
- --dsx-color-primary-container: var(--dsx-color-accent-warp-3);
564
- --dsx-color-on-primary: #ffffff;
565
- --dsx-color-on-primary-container: var(--dsx-color-accent-warp-11);
566
- --dsx-color-accent-indicator: var(--dsx-color-accent-warp-11);
567
- --dsx-color-accent-track: var(--dsx-color-accent-warp-9);
568
- --dsx-color-accent-contrast: #ffffff;
569
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-warp-3) 20%, transparent);
570
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-warp-9) 64%, transparent);
571
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-warp-9) 28%, transparent);
572
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-warp-9) 40%, transparent);
573
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-warp-9) 8%, transparent);
574
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-warp-9) 16%, transparent);
575
- }
576
-
577
- [data-accent-color='ray'] {
578
- --dsx-color-accent-1: var(--dsx-color-accent-ray-1);
579
- --dsx-color-accent-2: var(--dsx-color-accent-ray-2);
580
- --dsx-color-accent-3: var(--dsx-color-accent-ray-3);
581
- --dsx-color-accent-4: var(--dsx-color-accent-ray-4);
582
- --dsx-color-accent-5: var(--dsx-color-accent-ray-5);
583
- --dsx-color-accent-6: var(--dsx-color-accent-ray-6);
584
- --dsx-color-accent-7: var(--dsx-color-accent-ray-7);
585
- --dsx-color-accent-8: var(--dsx-color-accent-ray-8);
586
- --dsx-color-accent-9: var(--dsx-color-accent-ray-9);
587
- --dsx-color-accent-10: var(--dsx-color-accent-ray-10);
588
- --dsx-color-accent-11: var(--dsx-color-accent-ray-11);
589
- --dsx-color-accent-12: var(--dsx-color-accent-ray-12);
590
- --dsx-color-primary: var(--dsx-color-accent-ray-9);
591
- --dsx-color-primary-container: var(--dsx-color-accent-ray-3);
592
- --dsx-color-on-primary: #ffffff;
593
- --dsx-color-on-primary-container: var(--dsx-color-accent-ray-11);
594
- --dsx-color-accent-indicator: var(--dsx-color-accent-ray-11);
595
- --dsx-color-accent-track: var(--dsx-color-accent-ray-9);
596
- --dsx-color-accent-contrast: #ffffff;
597
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-ray-3) 20%, transparent);
598
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-ray-9) 64%, transparent);
599
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-ray-9) 28%, transparent);
600
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-ray-9) 40%, transparent);
601
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-ray-9) 8%, transparent);
602
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-ray-9) 16%, transparent);
603
- }
604
-
605
- [data-accent-color='astral'] {
606
- --dsx-color-accent-1: var(--dsx-color-accent-astral-1);
607
- --dsx-color-accent-2: var(--dsx-color-accent-astral-2);
608
- --dsx-color-accent-3: var(--dsx-color-accent-astral-3);
609
- --dsx-color-accent-4: var(--dsx-color-accent-astral-4);
610
- --dsx-color-accent-5: var(--dsx-color-accent-astral-5);
611
- --dsx-color-accent-6: var(--dsx-color-accent-astral-6);
612
- --dsx-color-accent-7: var(--dsx-color-accent-astral-7);
613
- --dsx-color-accent-8: var(--dsx-color-accent-astral-8);
614
- --dsx-color-accent-9: var(--dsx-color-accent-astral-9);
615
- --dsx-color-accent-10: var(--dsx-color-accent-astral-10);
616
- --dsx-color-accent-11: var(--dsx-color-accent-astral-11);
617
- --dsx-color-accent-12: var(--dsx-color-accent-astral-12);
618
- --dsx-color-primary: var(--dsx-color-accent-astral-9);
619
- --dsx-color-primary-container: var(--dsx-color-accent-astral-3);
620
- --dsx-color-on-primary: #ffffff;
621
- --dsx-color-on-primary-container: var(--dsx-color-accent-astral-11);
622
- --dsx-color-accent-indicator: var(--dsx-color-accent-astral-11);
623
- --dsx-color-accent-track: var(--dsx-color-accent-astral-9);
624
- --dsx-color-accent-contrast: #ffffff;
625
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-astral-3) 20%, transparent);
626
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-astral-9) 64%, transparent);
627
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-astral-9) 28%, transparent);
628
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-astral-9) 40%, transparent);
629
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-astral-9) 8%, transparent);
630
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-astral-9) 16%, transparent);
631
- }
632
-
633
- [data-accent-color='spark'] {
634
- --dsx-color-accent-1: var(--dsx-color-accent-spark-1);
635
- --dsx-color-accent-2: var(--dsx-color-accent-spark-2);
636
- --dsx-color-accent-3: var(--dsx-color-accent-spark-3);
637
- --dsx-color-accent-4: var(--dsx-color-accent-spark-4);
638
- --dsx-color-accent-5: var(--dsx-color-accent-spark-5);
639
- --dsx-color-accent-6: var(--dsx-color-accent-spark-6);
640
- --dsx-color-accent-7: var(--dsx-color-accent-spark-7);
641
- --dsx-color-accent-8: var(--dsx-color-accent-spark-8);
642
- --dsx-color-accent-9: var(--dsx-color-accent-spark-9);
643
- --dsx-color-accent-10: var(--dsx-color-accent-spark-10);
644
- --dsx-color-accent-11: var(--dsx-color-accent-spark-11);
645
- --dsx-color-accent-12: var(--dsx-color-accent-spark-12);
646
- --dsx-color-primary: var(--dsx-color-accent-spark-9);
647
- --dsx-color-primary-container: var(--dsx-color-accent-spark-3);
648
- --dsx-color-on-primary: #0c0d12;
649
- --dsx-color-on-primary-container: var(--dsx-color-accent-spark-11);
650
- --dsx-color-accent-indicator: var(--dsx-color-accent-spark-11);
651
- --dsx-color-accent-track: var(--dsx-color-accent-spark-9);
652
- --dsx-color-accent-contrast: #0c0d12;
653
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-spark-3) 20%, transparent);
654
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-spark-9) 64%, transparent);
655
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-spark-9) 28%, transparent);
656
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-spark-9) 40%, transparent);
657
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-spark-9) 8%, transparent);
658
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-spark-9) 16%, transparent);
521
+ --dsx-_accent-rift-primary: var(--dsx-color-accent-rift-9);
522
+ --dsx-_accent-rift-primary-container: var(--dsx-color-accent-rift-3);
523
+ --dsx-_accent-rift-on-primary: #ffffff;
524
+ --dsx-_accent-rift-on-primary-container: var(--dsx-color-accent-rift-11);
525
+ --dsx-_accent-rift-accent-indicator: var(--dsx-color-accent-rift-11);
526
+ --dsx-_accent-rift-accent-border: var(--dsx-color-accent-rift-11);
527
+ --dsx-_accent-rift-accent-track: var(--dsx-color-accent-rift-9);
528
+ --dsx-_accent-rift-accent-contrast: #ffffff;
529
+ --dsx-_accent-rift-accent-surface: color-mix(in srgb, var(--dsx-color-accent-rift-3) 20%, transparent);
530
+ --dsx-_accent-rift-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-rift-9) 64%, transparent);
531
+ --dsx-_accent-rift-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-rift-9) 28%, transparent);
532
+ --dsx-_accent-rift-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-rift-9) 40%, transparent);
533
+ --dsx-_accent-rift-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 8%, transparent);
534
+ --dsx-_accent-rift-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 16%, transparent);
535
+ --dsx-_accent-warp-primary: var(--dsx-color-accent-warp-9);
536
+ --dsx-_accent-warp-primary-container: var(--dsx-color-accent-warp-3);
537
+ --dsx-_accent-warp-on-primary: #ffffff;
538
+ --dsx-_accent-warp-on-primary-container: var(--dsx-color-accent-warp-11);
539
+ --dsx-_accent-warp-accent-indicator: var(--dsx-color-accent-warp-11);
540
+ --dsx-_accent-warp-accent-border: var(--dsx-color-accent-warp-11);
541
+ --dsx-_accent-warp-accent-track: var(--dsx-color-accent-warp-9);
542
+ --dsx-_accent-warp-accent-contrast: #ffffff;
543
+ --dsx-_accent-warp-accent-surface: color-mix(in srgb, var(--dsx-color-accent-warp-3) 20%, transparent);
544
+ --dsx-_accent-warp-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-warp-9) 64%, transparent);
545
+ --dsx-_accent-warp-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-warp-9) 28%, transparent);
546
+ --dsx-_accent-warp-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-warp-9) 40%, transparent);
547
+ --dsx-_accent-warp-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-warp-9) 8%, transparent);
548
+ --dsx-_accent-warp-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-warp-9) 16%, transparent);
549
+ --dsx-_accent-ray-primary: var(--dsx-color-accent-ray-9);
550
+ --dsx-_accent-ray-primary-container: var(--dsx-color-accent-ray-3);
551
+ --dsx-_accent-ray-on-primary: #ffffff;
552
+ --dsx-_accent-ray-on-primary-container: var(--dsx-color-accent-ray-11);
553
+ --dsx-_accent-ray-accent-indicator: var(--dsx-color-accent-ray-11);
554
+ --dsx-_accent-ray-accent-border: var(--dsx-color-accent-ray-11);
555
+ --dsx-_accent-ray-accent-track: var(--dsx-color-accent-ray-9);
556
+ --dsx-_accent-ray-accent-contrast: #ffffff;
557
+ --dsx-_accent-ray-accent-surface: color-mix(in srgb, var(--dsx-color-accent-ray-3) 20%, transparent);
558
+ --dsx-_accent-ray-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-ray-9) 64%, transparent);
559
+ --dsx-_accent-ray-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-ray-9) 28%, transparent);
560
+ --dsx-_accent-ray-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-ray-9) 40%, transparent);
561
+ --dsx-_accent-ray-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-ray-9) 8%, transparent);
562
+ --dsx-_accent-ray-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-ray-9) 16%, transparent);
563
+ --dsx-_accent-astral-primary: var(--dsx-color-accent-astral-9);
564
+ --dsx-_accent-astral-primary-container: var(--dsx-color-accent-astral-3);
565
+ --dsx-_accent-astral-on-primary: #ffffff;
566
+ --dsx-_accent-astral-on-primary-container: var(--dsx-color-accent-astral-11);
567
+ --dsx-_accent-astral-accent-indicator: var(--dsx-color-accent-astral-11);
568
+ --dsx-_accent-astral-accent-border: var(--dsx-color-accent-astral-11);
569
+ --dsx-_accent-astral-accent-track: var(--dsx-color-accent-astral-9);
570
+ --dsx-_accent-astral-accent-contrast: #ffffff;
571
+ --dsx-_accent-astral-accent-surface: color-mix(in srgb, var(--dsx-color-accent-astral-3) 20%, transparent);
572
+ --dsx-_accent-astral-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-astral-9) 64%, transparent);
573
+ --dsx-_accent-astral-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-astral-9) 28%, transparent);
574
+ --dsx-_accent-astral-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-astral-9) 40%, transparent);
575
+ --dsx-_accent-astral-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-astral-9) 8%, transparent);
576
+ --dsx-_accent-astral-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-astral-9) 16%, transparent);
577
+ --dsx-_accent-spark-primary: var(--dsx-color-accent-spark-9);
578
+ --dsx-_accent-spark-primary-container: var(--dsx-color-accent-spark-3);
579
+ --dsx-_accent-spark-on-primary: #0c0d12;
580
+ --dsx-_accent-spark-on-primary-container: var(--dsx-color-accent-spark-11);
581
+ --dsx-_accent-spark-accent-indicator: var(--dsx-color-accent-spark-11);
582
+ --dsx-_accent-spark-accent-border: var(--dsx-color-accent-spark-11);
583
+ --dsx-_accent-spark-accent-track: var(--dsx-color-accent-spark-9);
584
+ --dsx-_accent-spark-accent-contrast: #0c0d12;
585
+ --dsx-_accent-spark-accent-surface: color-mix(in srgb, var(--dsx-color-accent-spark-3) 20%, transparent);
586
+ --dsx-_accent-spark-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-spark-9) 64%, transparent);
587
+ --dsx-_accent-spark-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-spark-9) 28%, transparent);
588
+ --dsx-_accent-spark-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-spark-9) 40%, transparent);
589
+ --dsx-_accent-spark-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-spark-9) 8%, transparent);
590
+ --dsx-_accent-spark-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-spark-9) 16%, transparent);
659
591
  }
660
592
 
661
593
  [data-dsx-theme="light"] {
@@ -673,7 +605,7 @@ svg {
673
605
  --dsx-color-accent-12: #28005d;
674
606
  --dsx-color-accent-contrast: #ffffff;
675
607
  --dsx-color-accent-surface: rgba(230, 226, 255, 0.2);
676
- --dsx-color-accent-indicator: #28005d;
608
+ --dsx-color-accent-indicator: #5211ac;
677
609
  --dsx-color-accent-track: #8553f6;
678
610
  --dsx-color-gray-1: #fbfbfc;
679
611
  --dsx-color-gray-2: #f4f5f7;
@@ -846,12 +778,13 @@ svg {
846
778
  --dsx-color-info-10: #2689c7;
847
779
  --dsx-color-info-11: #004c76;
848
780
  --dsx-color-info-12: #00243b;
849
- --dsx-color-accent-indicator: #28005d;
781
+ --dsx-color-accent-indicator: #5211ac;
850
782
  --dsx-color-accent-track: #8553f6;
851
783
  --dsx-color-accent-contrast: #ffffff;
852
784
  --dsx-color-accent-surface: rgba(230, 226, 255, 0.2);
853
785
  --dsx-color-border-subtle: #c3c8d4;
854
786
  --dsx-color-border-strong: #8b90a3;
787
+ --dsx-color-accent-border: #9672ff;
855
788
  --dsx-effect-shadow-1: 0 1px 2px rgba(44, 47, 61, 0.12);
856
789
  --dsx-effect-shadow-2: 0 2px 8px rgba(44, 47, 61, 0.18);
857
790
  --dsx-effect-shadow-3: 0 4px 16px rgba(44, 47, 61, 0.24);
@@ -871,10 +804,79 @@ svg {
871
804
  --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 12%, transparent);
872
805
  --dsx-effect-hover-secondary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 3%, transparent);
873
806
  --dsx-effect-hover-ghost: color-mix(in srgb, var(--dsx-color-accent-rift-9) 6%, transparent);
807
+ --dsx-_accent-rift-primary: var(--dsx-color-accent-rift-9);
808
+ --dsx-_accent-rift-primary-container: var(--dsx-color-accent-rift-4);
809
+ --dsx-_accent-rift-on-primary: #ffffff;
810
+ --dsx-_accent-rift-on-primary-container: var(--dsx-color-accent-rift-12);
811
+ --dsx-_accent-rift-accent-indicator: var(--dsx-color-accent-rift-11);
812
+ --dsx-_accent-rift-accent-border: var(--dsx-color-accent-rift-8);
813
+ --dsx-_accent-rift-accent-track: var(--dsx-color-accent-rift-9);
814
+ --dsx-_accent-rift-accent-contrast: #ffffff;
815
+ --dsx-_accent-rift-accent-surface: color-mix(in srgb, var(--dsx-color-accent-rift-3) 20%, transparent);
816
+ --dsx-_accent-rift-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-rift-9) 56%, transparent);
817
+ --dsx-_accent-rift-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-rift-9) 24%, transparent);
818
+ --dsx-_accent-rift-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-rift-9) 36%, transparent);
819
+ --dsx-_accent-rift-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 6%, transparent);
820
+ --dsx-_accent-rift-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 12%, transparent);
821
+ --dsx-_accent-warp-primary: var(--dsx-color-accent-warp-9);
822
+ --dsx-_accent-warp-primary-container: var(--dsx-color-accent-warp-4);
823
+ --dsx-_accent-warp-on-primary: #ffffff;
824
+ --dsx-_accent-warp-on-primary-container: var(--dsx-color-accent-warp-12);
825
+ --dsx-_accent-warp-accent-indicator: var(--dsx-color-accent-warp-11);
826
+ --dsx-_accent-warp-accent-border: var(--dsx-color-accent-warp-8);
827
+ --dsx-_accent-warp-accent-track: var(--dsx-color-accent-warp-9);
828
+ --dsx-_accent-warp-accent-contrast: #ffffff;
829
+ --dsx-_accent-warp-accent-surface: color-mix(in srgb, var(--dsx-color-accent-warp-3) 20%, transparent);
830
+ --dsx-_accent-warp-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-warp-9) 56%, transparent);
831
+ --dsx-_accent-warp-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-warp-9) 24%, transparent);
832
+ --dsx-_accent-warp-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-warp-9) 36%, transparent);
833
+ --dsx-_accent-warp-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-warp-9) 6%, transparent);
834
+ --dsx-_accent-warp-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-warp-9) 12%, transparent);
835
+ --dsx-_accent-ray-primary: var(--dsx-color-accent-ray-9);
836
+ --dsx-_accent-ray-primary-container: var(--dsx-color-accent-ray-4);
837
+ --dsx-_accent-ray-on-primary: #ffffff;
838
+ --dsx-_accent-ray-on-primary-container: var(--dsx-color-accent-ray-12);
839
+ --dsx-_accent-ray-accent-indicator: var(--dsx-color-accent-ray-11);
840
+ --dsx-_accent-ray-accent-border: var(--dsx-color-accent-ray-8);
841
+ --dsx-_accent-ray-accent-track: var(--dsx-color-accent-ray-9);
842
+ --dsx-_accent-ray-accent-contrast: #ffffff;
843
+ --dsx-_accent-ray-accent-surface: color-mix(in srgb, var(--dsx-color-accent-ray-3) 20%, transparent);
844
+ --dsx-_accent-ray-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-ray-9) 56%, transparent);
845
+ --dsx-_accent-ray-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-ray-9) 24%, transparent);
846
+ --dsx-_accent-ray-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-ray-9) 36%, transparent);
847
+ --dsx-_accent-ray-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-ray-9) 6%, transparent);
848
+ --dsx-_accent-ray-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-ray-9) 12%, transparent);
849
+ --dsx-_accent-astral-primary: var(--dsx-color-accent-astral-9);
850
+ --dsx-_accent-astral-primary-container: var(--dsx-color-accent-astral-4);
851
+ --dsx-_accent-astral-on-primary: #ffffff;
852
+ --dsx-_accent-astral-on-primary-container: var(--dsx-color-accent-astral-12);
853
+ --dsx-_accent-astral-accent-indicator: var(--dsx-color-accent-astral-11);
854
+ --dsx-_accent-astral-accent-border: var(--dsx-color-accent-astral-8);
855
+ --dsx-_accent-astral-accent-track: var(--dsx-color-accent-astral-9);
856
+ --dsx-_accent-astral-accent-contrast: #ffffff;
857
+ --dsx-_accent-astral-accent-surface: color-mix(in srgb, var(--dsx-color-accent-astral-3) 20%, transparent);
858
+ --dsx-_accent-astral-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-astral-9) 56%, transparent);
859
+ --dsx-_accent-astral-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-astral-9) 24%, transparent);
860
+ --dsx-_accent-astral-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-astral-9) 36%, transparent);
861
+ --dsx-_accent-astral-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-astral-9) 6%, transparent);
862
+ --dsx-_accent-astral-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-astral-9) 12%, transparent);
863
+ --dsx-_accent-spark-primary: var(--dsx-color-accent-spark-9);
864
+ --dsx-_accent-spark-primary-container: var(--dsx-color-accent-spark-4);
865
+ --dsx-_accent-spark-on-primary: #0c0d12;
866
+ --dsx-_accent-spark-on-primary-container: var(--dsx-color-accent-spark-12);
867
+ --dsx-_accent-spark-accent-indicator: var(--dsx-color-accent-spark-11);
868
+ --dsx-_accent-spark-accent-border: var(--dsx-color-accent-spark-8);
869
+ --dsx-_accent-spark-accent-track: var(--dsx-color-accent-spark-9);
870
+ --dsx-_accent-spark-accent-contrast: #0c0d12;
871
+ --dsx-_accent-spark-accent-surface: color-mix(in srgb, var(--dsx-color-accent-spark-3) 20%, transparent);
872
+ --dsx-_accent-spark-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-spark-9) 56%, transparent);
873
+ --dsx-_accent-spark-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-spark-9) 24%, transparent);
874
+ --dsx-_accent-spark-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-spark-9) 36%, transparent);
875
+ --dsx-_accent-spark-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-spark-9) 6%, transparent);
876
+ --dsx-_accent-spark-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-spark-9) 12%, transparent);
874
877
  }
875
878
 
876
- [data-dsx-theme="light"] [data-accent-color='rift'],
877
- [data-dsx-theme="light"][data-accent-color='rift'] {
879
+ [data-accent-color='rift'] {
878
880
  --dsx-color-accent-1: var(--dsx-color-accent-rift-1);
879
881
  --dsx-color-accent-2: var(--dsx-color-accent-rift-2);
880
882
  --dsx-color-accent-3: var(--dsx-color-accent-rift-3);
@@ -887,23 +889,23 @@ svg {
887
889
  --dsx-color-accent-10: var(--dsx-color-accent-rift-10);
888
890
  --dsx-color-accent-11: var(--dsx-color-accent-rift-11);
889
891
  --dsx-color-accent-12: var(--dsx-color-accent-rift-12);
890
- --dsx-color-primary: var(--dsx-color-accent-rift-9);
891
- --dsx-color-primary-container: var(--dsx-color-accent-rift-4);
892
- --dsx-color-on-primary: #ffffff;
893
- --dsx-color-on-primary-container: var(--dsx-color-accent-rift-12);
894
- --dsx-color-accent-indicator: var(--dsx-color-accent-rift-12);
895
- --dsx-color-accent-track: var(--dsx-color-accent-rift-9);
896
- --dsx-color-accent-contrast: #ffffff;
897
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-rift-3) 20%, transparent);
898
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-rift-9) 56%, transparent);
899
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-rift-9) 24%, transparent);
900
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-rift-9) 36%, transparent);
901
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 6%, transparent);
902
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-rift-9) 12%, transparent);
892
+ --dsx-color-primary: var(--dsx-_accent-rift-primary);
893
+ --dsx-color-primary-container: var(--dsx-_accent-rift-primary-container);
894
+ --dsx-color-on-primary: var(--dsx-_accent-rift-on-primary);
895
+ --dsx-color-on-primary-container: var(--dsx-_accent-rift-on-primary-container);
896
+ --dsx-color-accent-indicator: var(--dsx-_accent-rift-accent-indicator);
897
+ --dsx-color-accent-border: var(--dsx-_accent-rift-accent-border);
898
+ --dsx-color-accent-track: var(--dsx-_accent-rift-accent-track);
899
+ --dsx-color-accent-contrast: var(--dsx-_accent-rift-accent-contrast);
900
+ --dsx-color-accent-surface: var(--dsx-_accent-rift-accent-surface);
901
+ --dsx-effect-ring-focus: var(--dsx-_accent-rift-effect-ring-focus);
902
+ --dsx-effect-shadow-accent: var(--dsx-_accent-rift-effect-shadow-accent);
903
+ --dsx-effect-shadow-accent-strong: var(--dsx-_accent-rift-effect-shadow-accent-strong);
904
+ --dsx-effect-hover-primary: var(--dsx-_accent-rift-effect-hover-primary);
905
+ --dsx-effect-pressed-primary: var(--dsx-_accent-rift-effect-pressed-primary);
903
906
  }
904
907
 
905
- [data-dsx-theme="light"] [data-accent-color='warp'],
906
- [data-dsx-theme="light"][data-accent-color='warp'] {
908
+ [data-accent-color='warp'] {
907
909
  --dsx-color-accent-1: var(--dsx-color-accent-warp-1);
908
910
  --dsx-color-accent-2: var(--dsx-color-accent-warp-2);
909
911
  --dsx-color-accent-3: var(--dsx-color-accent-warp-3);
@@ -916,23 +918,23 @@ svg {
916
918
  --dsx-color-accent-10: var(--dsx-color-accent-warp-10);
917
919
  --dsx-color-accent-11: var(--dsx-color-accent-warp-11);
918
920
  --dsx-color-accent-12: var(--dsx-color-accent-warp-12);
919
- --dsx-color-primary: var(--dsx-color-accent-warp-9);
920
- --dsx-color-primary-container: var(--dsx-color-accent-warp-4);
921
- --dsx-color-on-primary: #ffffff;
922
- --dsx-color-on-primary-container: var(--dsx-color-accent-warp-12);
923
- --dsx-color-accent-indicator: var(--dsx-color-accent-warp-12);
924
- --dsx-color-accent-track: var(--dsx-color-accent-warp-9);
925
- --dsx-color-accent-contrast: #ffffff;
926
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-warp-3) 20%, transparent);
927
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-warp-9) 56%, transparent);
928
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-warp-9) 24%, transparent);
929
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-warp-9) 36%, transparent);
930
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-warp-9) 6%, transparent);
931
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-warp-9) 12%, transparent);
921
+ --dsx-color-primary: var(--dsx-_accent-warp-primary);
922
+ --dsx-color-primary-container: var(--dsx-_accent-warp-primary-container);
923
+ --dsx-color-on-primary: var(--dsx-_accent-warp-on-primary);
924
+ --dsx-color-on-primary-container: var(--dsx-_accent-warp-on-primary-container);
925
+ --dsx-color-accent-indicator: var(--dsx-_accent-warp-accent-indicator);
926
+ --dsx-color-accent-border: var(--dsx-_accent-warp-accent-border);
927
+ --dsx-color-accent-track: var(--dsx-_accent-warp-accent-track);
928
+ --dsx-color-accent-contrast: var(--dsx-_accent-warp-accent-contrast);
929
+ --dsx-color-accent-surface: var(--dsx-_accent-warp-accent-surface);
930
+ --dsx-effect-ring-focus: var(--dsx-_accent-warp-effect-ring-focus);
931
+ --dsx-effect-shadow-accent: var(--dsx-_accent-warp-effect-shadow-accent);
932
+ --dsx-effect-shadow-accent-strong: var(--dsx-_accent-warp-effect-shadow-accent-strong);
933
+ --dsx-effect-hover-primary: var(--dsx-_accent-warp-effect-hover-primary);
934
+ --dsx-effect-pressed-primary: var(--dsx-_accent-warp-effect-pressed-primary);
932
935
  }
933
936
 
934
- [data-dsx-theme="light"] [data-accent-color='ray'],
935
- [data-dsx-theme="light"][data-accent-color='ray'] {
937
+ [data-accent-color='ray'] {
936
938
  --dsx-color-accent-1: var(--dsx-color-accent-ray-1);
937
939
  --dsx-color-accent-2: var(--dsx-color-accent-ray-2);
938
940
  --dsx-color-accent-3: var(--dsx-color-accent-ray-3);
@@ -945,23 +947,23 @@ svg {
945
947
  --dsx-color-accent-10: var(--dsx-color-accent-ray-10);
946
948
  --dsx-color-accent-11: var(--dsx-color-accent-ray-11);
947
949
  --dsx-color-accent-12: var(--dsx-color-accent-ray-12);
948
- --dsx-color-primary: var(--dsx-color-accent-ray-9);
949
- --dsx-color-primary-container: var(--dsx-color-accent-ray-4);
950
- --dsx-color-on-primary: #ffffff;
951
- --dsx-color-on-primary-container: var(--dsx-color-accent-ray-12);
952
- --dsx-color-accent-indicator: var(--dsx-color-accent-ray-12);
953
- --dsx-color-accent-track: var(--dsx-color-accent-ray-9);
954
- --dsx-color-accent-contrast: #ffffff;
955
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-ray-3) 20%, transparent);
956
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-ray-9) 56%, transparent);
957
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-ray-9) 24%, transparent);
958
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-ray-9) 36%, transparent);
959
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-ray-9) 6%, transparent);
960
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-ray-9) 12%, transparent);
950
+ --dsx-color-primary: var(--dsx-_accent-ray-primary);
951
+ --dsx-color-primary-container: var(--dsx-_accent-ray-primary-container);
952
+ --dsx-color-on-primary: var(--dsx-_accent-ray-on-primary);
953
+ --dsx-color-on-primary-container: var(--dsx-_accent-ray-on-primary-container);
954
+ --dsx-color-accent-indicator: var(--dsx-_accent-ray-accent-indicator);
955
+ --dsx-color-accent-border: var(--dsx-_accent-ray-accent-border);
956
+ --dsx-color-accent-track: var(--dsx-_accent-ray-accent-track);
957
+ --dsx-color-accent-contrast: var(--dsx-_accent-ray-accent-contrast);
958
+ --dsx-color-accent-surface: var(--dsx-_accent-ray-accent-surface);
959
+ --dsx-effect-ring-focus: var(--dsx-_accent-ray-effect-ring-focus);
960
+ --dsx-effect-shadow-accent: var(--dsx-_accent-ray-effect-shadow-accent);
961
+ --dsx-effect-shadow-accent-strong: var(--dsx-_accent-ray-effect-shadow-accent-strong);
962
+ --dsx-effect-hover-primary: var(--dsx-_accent-ray-effect-hover-primary);
963
+ --dsx-effect-pressed-primary: var(--dsx-_accent-ray-effect-pressed-primary);
961
964
  }
962
965
 
963
- [data-dsx-theme="light"] [data-accent-color='astral'],
964
- [data-dsx-theme="light"][data-accent-color='astral'] {
966
+ [data-accent-color='astral'] {
965
967
  --dsx-color-accent-1: var(--dsx-color-accent-astral-1);
966
968
  --dsx-color-accent-2: var(--dsx-color-accent-astral-2);
967
969
  --dsx-color-accent-3: var(--dsx-color-accent-astral-3);
@@ -974,23 +976,23 @@ svg {
974
976
  --dsx-color-accent-10: var(--dsx-color-accent-astral-10);
975
977
  --dsx-color-accent-11: var(--dsx-color-accent-astral-11);
976
978
  --dsx-color-accent-12: var(--dsx-color-accent-astral-12);
977
- --dsx-color-primary: var(--dsx-color-accent-astral-9);
978
- --dsx-color-primary-container: var(--dsx-color-accent-astral-4);
979
- --dsx-color-on-primary: #ffffff;
980
- --dsx-color-on-primary-container: var(--dsx-color-accent-astral-12);
981
- --dsx-color-accent-indicator: var(--dsx-color-accent-astral-12);
982
- --dsx-color-accent-track: var(--dsx-color-accent-astral-9);
983
- --dsx-color-accent-contrast: #ffffff;
984
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-astral-3) 20%, transparent);
985
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-astral-9) 56%, transparent);
986
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-astral-9) 24%, transparent);
987
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-astral-9) 36%, transparent);
988
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-astral-9) 6%, transparent);
989
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-astral-9) 12%, transparent);
979
+ --dsx-color-primary: var(--dsx-_accent-astral-primary);
980
+ --dsx-color-primary-container: var(--dsx-_accent-astral-primary-container);
981
+ --dsx-color-on-primary: var(--dsx-_accent-astral-on-primary);
982
+ --dsx-color-on-primary-container: var(--dsx-_accent-astral-on-primary-container);
983
+ --dsx-color-accent-indicator: var(--dsx-_accent-astral-accent-indicator);
984
+ --dsx-color-accent-border: var(--dsx-_accent-astral-accent-border);
985
+ --dsx-color-accent-track: var(--dsx-_accent-astral-accent-track);
986
+ --dsx-color-accent-contrast: var(--dsx-_accent-astral-accent-contrast);
987
+ --dsx-color-accent-surface: var(--dsx-_accent-astral-accent-surface);
988
+ --dsx-effect-ring-focus: var(--dsx-_accent-astral-effect-ring-focus);
989
+ --dsx-effect-shadow-accent: var(--dsx-_accent-astral-effect-shadow-accent);
990
+ --dsx-effect-shadow-accent-strong: var(--dsx-_accent-astral-effect-shadow-accent-strong);
991
+ --dsx-effect-hover-primary: var(--dsx-_accent-astral-effect-hover-primary);
992
+ --dsx-effect-pressed-primary: var(--dsx-_accent-astral-effect-pressed-primary);
990
993
  }
991
994
 
992
- [data-dsx-theme="light"] [data-accent-color='spark'],
993
- [data-dsx-theme="light"][data-accent-color='spark'] {
995
+ [data-accent-color='spark'] {
994
996
  --dsx-color-accent-1: var(--dsx-color-accent-spark-1);
995
997
  --dsx-color-accent-2: var(--dsx-color-accent-spark-2);
996
998
  --dsx-color-accent-3: var(--dsx-color-accent-spark-3);
@@ -1003,19 +1005,20 @@ svg {
1003
1005
  --dsx-color-accent-10: var(--dsx-color-accent-spark-10);
1004
1006
  --dsx-color-accent-11: var(--dsx-color-accent-spark-11);
1005
1007
  --dsx-color-accent-12: var(--dsx-color-accent-spark-12);
1006
- --dsx-color-primary: var(--dsx-color-accent-spark-9);
1007
- --dsx-color-primary-container: var(--dsx-color-accent-spark-4);
1008
- --dsx-color-on-primary: #0c0d12;
1009
- --dsx-color-on-primary-container: var(--dsx-color-accent-spark-12);
1010
- --dsx-color-accent-indicator: var(--dsx-color-accent-spark-12);
1011
- --dsx-color-accent-track: var(--dsx-color-accent-spark-9);
1012
- --dsx-color-accent-contrast: #0c0d12;
1013
- --dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-spark-3) 20%, transparent);
1014
- --dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-spark-9) 56%, transparent);
1015
- --dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-spark-9) 24%, transparent);
1016
- --dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-spark-9) 36%, transparent);
1017
- --dsx-effect-hover-primary: color-mix(in srgb, var(--dsx-color-accent-spark-9) 6%, transparent);
1018
- --dsx-effect-pressed-primary: color-mix(in srgb, var(--dsx-color-accent-spark-9) 12%, transparent);
1008
+ --dsx-color-primary: var(--dsx-_accent-spark-primary);
1009
+ --dsx-color-primary-container: var(--dsx-_accent-spark-primary-container);
1010
+ --dsx-color-on-primary: var(--dsx-_accent-spark-on-primary);
1011
+ --dsx-color-on-primary-container: var(--dsx-_accent-spark-on-primary-container);
1012
+ --dsx-color-accent-indicator: var(--dsx-_accent-spark-accent-indicator);
1013
+ --dsx-color-accent-border: var(--dsx-_accent-spark-accent-border);
1014
+ --dsx-color-accent-track: var(--dsx-_accent-spark-accent-track);
1015
+ --dsx-color-accent-contrast: var(--dsx-_accent-spark-accent-contrast);
1016
+ --dsx-color-accent-surface: var(--dsx-_accent-spark-accent-surface);
1017
+ --dsx-effect-ring-focus: var(--dsx-_accent-spark-effect-ring-focus);
1018
+ --dsx-effect-shadow-accent: var(--dsx-_accent-spark-effect-shadow-accent);
1019
+ --dsx-effect-shadow-accent-strong: var(--dsx-_accent-spark-effect-shadow-accent-strong);
1020
+ --dsx-effect-hover-primary: var(--dsx-_accent-spark-effect-hover-primary);
1021
+ --dsx-effect-pressed-primary: var(--dsx-_accent-spark-effect-pressed-primary);
1019
1022
  }
1020
1023
 
1021
1024
  :root {
@@ -1035,7 +1038,6 @@ svg {
1035
1038
  --dsx-breakpoint-lg: 1024px;
1036
1039
  --dsx-breakpoint-xl: 1280px;
1037
1040
  --dsx-breakpoint-2xl: 1536px;
1038
- --dsx-backdrop-blur-sm: var(--dsx-effect-overlay-backdrop-blur);
1039
1041
  --dsx-shadow-offset-xs: 1px;
1040
1042
  --dsx-shadow-offset-sm: 4px;
1041
1043
  --dsx-shadow-offset-md: 12px;
@@ -1070,8 +1072,6 @@ svg {
1070
1072
  --dsx-resizable-grip-height: var(--dsx-size-xs);
1071
1073
  --dsx-icon-stroke-width: 1.75;
1072
1074
  --dsx-icon-stroke-width-strong: 2.25;
1073
- --dsx-control-separator-color: var(--dsx-color-outline-variant);
1074
- --dsx-control-separator-color-strong: var(--dsx-color-outline);
1075
1075
 
1076
1076
  /* Boundary hierarchy (F2, DESIGN.md). Six boundary roles, each a paired
1077
1077
  width + colour token. Components consume the role, not a raw
@@ -1087,51 +1087,12 @@ svg {
1087
1087
  there is no layout shift when a card becomes selected and the ring stays
1088
1088
  crisp at every display density. The -width token feeds the ring spread. */
1089
1089
  --dsx-boundary-structural-width: var(--dsx-border-width-sm);
1090
- --dsx-boundary-structural-color: var(--dsx-color-outline);
1091
1090
  --dsx-boundary-control-width: var(--dsx-border-width-sm);
1092
- --dsx-boundary-control-color: var(--dsx-color-outline);
1093
1091
  --dsx-boundary-separator-width: var(--dsx-border-width-sm);
1094
- --dsx-boundary-separator-color: var(--dsx-color-outline-variant);
1095
1092
  --dsx-boundary-divider-width: var(--dsx-border-width-sm);
1096
- --dsx-boundary-divider-color: var(--dsx-color-outline);
1097
1093
  --dsx-boundary-selected-width: var(--dsx-border-width-lg);
1098
- --dsx-boundary-selected-color: var(--dsx-color-accent-indicator);
1099
- --dsx-boundary-selected-ring: inset 0 0 0 var(--dsx-boundary-selected-width) var(--dsx-boundary-selected-color);
1100
1094
  --dsx-boundary-high-contrast-width: var(--dsx-border-width-lg);
1101
- --dsx-boundary-high-contrast-color: var(--dsx-color-high-contrast-border);
1102
- --dsx-boundary-high-contrast-ring: inset 0 0 0 var(--dsx-boundary-high-contrast-width) var(--dsx-boundary-high-contrast-color);
1103
-
1104
1095
  --dsx-grouped-radius: var(--dsx-rounded-md);
1105
- /* Segmented control / tabs active indicator — elevated surface above the track. */
1106
- /* Dark: surface-overlay sits visually above surface-raised (the track bg). */
1107
- /* Light mode override below flips this since the elevation hierarchy inverts. */
1108
- --dsx-control-active-background: var(--dsx-color-surface-overlay);
1109
- --dsx-control-active-foreground: var(--dsx-color-on-surface);
1110
- --dsx-control-active-border: var(--dsx-color-outline-variant);
1111
- --dsx-shadow-active-indicator: inset 0 calc(-1 * var(--dsx-border-width-lg)) 0 0 var(--dsx-color-high-contrast-border);
1112
- --dsx-menu-item-hover-background: var(--dsx-color-high-contrast-container);
1113
- --dsx-menu-item-hover-foreground: var(--dsx-color-high-contrast);
1114
- --dsx-menu-item-selected-background: var(--dsx-color-surface);
1115
- --dsx-menu-item-selected-foreground: var(--dsx-color-high-contrast);
1116
-
1117
- /* Panel backgrounds — referenced by baseDialog.css */
1118
- --dsx-color-panel-solid: var(--dsx-color-surface-raised);
1119
- --dsx-color-panel-translucent: var(--dsx-effect-panel-glass-background);
1120
- --dsx-color-panel-border: var(--dsx-color-outline);
1121
- /* Glass edges use the designed rim token, not outline-variant: on dark,
1122
- outline-variant (#40434f) dissolves into near-black and glass borders
1123
- read as missing (confirmed live 2026-09-19: borderless dropdown). The
1124
- light block below keeps outline-variant, which reads correctly there. */
1125
- --dsx-color-panel-border-translucent: var(--dsx-effect-panel-glass-border);
1126
-
1127
- /* Hover/effect tokens — referenced by baseMenu.css, baseTabs.css, calendar.css */
1128
- --dsx-effect-hover-layer: var(--dsx-effect-hover-primary);
1129
- --dsx-color-surface-hover: var(--dsx-effect-hover-primary);
1130
-
1131
- --dsx-accent-contrast: var(--dsx-color-accent-contrast);
1132
- --dsx-accent-surface: var(--dsx-color-accent-surface);
1133
- --dsx-accent-indicator: var(--dsx-color-accent-indicator);
1134
- --dsx-accent-track: var(--dsx-color-accent-track);
1135
1096
  --dsx-stepper-connector-thickness: var(--dsx-border-width-lg);
1136
1097
  --dsx-stepper-content-offset: var(--dsx-space-0-5);
1137
1098
  --dsx-switch-padding: var(--dsx-space-0-5);
@@ -1142,12 +1103,14 @@ svg {
1142
1103
  --dsx-visually-hidden-size: var(--dsx-border-width-sm);
1143
1104
  --dsx-focus-ring-offset: 2px;
1144
1105
  --dsx-motion-easing-decelerate: cubic-bezier(0.445, 0.05, 0.55, 0.95);
1145
- /* Added 2026-09-15 alongside dsx-motion-collapse — decelerate had no accelerate
1106
+
1107
+ /* Added 2026-09-15 alongside dsx-motion-collapse — decelerate had no accelerate
1146
1108
  counterpart, and every entrance reveal in motion.css needed one to have an exit to
1147
1109
  pair with. Standard easeInCubic (easings.net) — slow start, fast end, the mirror-image
1148
1110
  FEEL of an ease-out, not a literal point-reflection of decelerate's own curve (which is
1149
1111
  close enough to symmetric that reflecting it barely changes the numbers). */
1150
- --dsx-motion-easing-accelerate: cubic-bezier(0.55, 0.055, 0.675, 0.19);
1112
+ --dsx-motion-easing-accelerate: cubic-bezier(0.55, 0.055, 0.675, 0.19);
1113
+
1151
1114
  /* z-index scale for layered surfaces */
1152
1115
  --dsx-z-index-dropdown: 50;
1153
1116
  --dsx-z-index-sticky: 60;
@@ -1160,76 +1123,15 @@ svg {
1160
1123
  --dsx-space-0-5: 2px;
1161
1124
  --dsx-space-1-5: 6px;
1162
1125
 
1163
- /* ── Shadow elevation ───────────────────────────────────────────────── */
1164
- /* These bridge to the effect-shadow palette. When generated/tokens.css */
1165
- /* is updated from the design source, identical names there will take */
1166
- /* precedence (generated is imported first at the top of this file). */
1167
- --dsx-shadow-elevation-1: var(--dsx-effect-shadow-1);
1168
- --dsx-shadow-elevation-2: var(--dsx-effect-shadow-2);
1169
- --dsx-shadow-elevation-3: var(--dsx-effect-shadow-3);
1170
- --dsx-shadow-elevation-4: var(--dsx-effect-shadow-4);
1171
- /* Step 5 (Spotlight: toasts, dragged panels). Step 6 stays raw until an
1172
- occupant earns it — no elevation-6 alias by decision (B4 Q3). */
1173
- --dsx-shadow-elevation-5: var(--dsx-effect-shadow-5);
1174
- /* Menu-tier control point (B4 Q3): every menu-family content rides step 3
1175
- unless a component file reasserts it locally for cascade order. */
1176
- --dsx-menu-content-elevation: var(--dsx-shadow-elevation-3);
1177
- --dsx-shadow-panel-shadow: var(--dsx-effect-shadow-3);
1178
-
1179
- /* ── Constructed shadows ────────────────────────────────────────────── */
1180
- --dsx-shadow-focus-ring: 0 0 0 3px var(--dsx-effect-ring-focus);
1181
- --dsx-shadow-inset-outline: inset 0 0 0 var(--dsx-border-width-sm) var(--dsx-color-outline);
1182
- --dsx-shadow-active-inset-outline: inset 0 calc(-1 * var(--dsx-border-width-lg)) 0 0 var(--dsx-color-accent-indicator);
1183
- --dsx-shadow-accent-ring: 0 0 0 3px var(--dsx-effect-shadow-accent);
1184
- --dsx-shadow-accent-ring-strong: 0 0 0 4px var(--dsx-effect-shadow-accent-strong);
1185
- --dsx-shadow-accent-glow: 0 4px 16px var(--dsx-effect-shadow-accent);
1186
- --dsx-shadow-color-swatch-shadow: 0 2px 4px var(--dsx-color-shadow);
1187
-
1188
- /* ── Overlay (dark default) ─────────────────────────────────────────── */
1189
- --dsx-effect-overlay: rgba(8, 9, 12, 0.72);
1190
- --dsx-effect-overlay-backdrop-filter: blur(4px);
1191
-
1192
1126
  /* ── Panel backdrop filters ─────────────────────────────────────────── */
1193
1127
  --dsx-effect-panel-glass-backdrop-filter: blur(16px) saturate(1.6);
1194
1128
  --dsx-effect-panel-solid-backdrop-filter: none;
1195
1129
 
1196
- /* ── Alpha effect layers ────────────────────────────────────────────── */
1197
- /* Derived via color-mix so they adapt to accent-color overrides. */
1198
- --dsx-effect-accent-alpha-3: color-mix(in srgb, var(--dsx-color-primary) 12%, transparent);
1199
- --dsx-effect-accent-alpha-4: color-mix(in srgb, var(--dsx-color-primary) 18%, transparent);
1200
- --dsx-effect-accent-alpha-8: color-mix(in srgb, var(--dsx-color-primary) 40%, transparent);
1201
- --dsx-effect-gray-alpha-2: color-mix(in srgb, var(--dsx-color-gray-12) 6%, transparent);
1202
- --dsx-effect-gray-alpha-3: color-mix(in srgb, var(--dsx-color-gray-12) 10%, transparent);
1203
- --dsx-effect-gray-alpha-4: color-mix(in srgb, var(--dsx-color-gray-12) 15%, transparent);
1204
-
1205
- /* ── Hover / press semantic layers ─────────────────────────────────── */
1206
- /* Defined here before the [data-dsx-theme='light'] block below uses */
1207
- /* --dsx-effect-hover-emphasis-layer, which would otherwise be circular. */
1208
- --dsx-effect-hover-emphasis-layer: color-mix(in srgb, var(--dsx-color-primary) 10%, transparent);
1209
- --dsx-effect-pressed-layer: color-mix(in srgb, var(--dsx-color-primary) 18%, transparent);
1210
- /* Stronger hover layer for menu/select items. Was 15%, then 24% — still
1211
- too faint to read on hover-only (mouse) states, where no focus ring
1212
- backs it up, in both themes (review 2026-09-19: context-menu hover
1213
- nearly invisible light + dark). 32% for real legibility across
1214
- rift/warp/ray; the glass panel's own translucency compounds under it. */
1215
- --dsx-effect-hover-emphasis-strong: color-mix(in srgb, var(--dsx-color-primary) 32%, transparent);
1216
-
1217
- /* ── Disabled state layers ──────────────────────────────────────────── */
1218
- --dsx-effect-disabled-layer: var(--dsx-color-disabled-surface);
1219
- --dsx-effect-disabled-checked-layer: color-mix(in srgb, var(--dsx-color-primary) 30%, transparent);
1220
-
1221
- /* ── Semantic color aliases ─────────────────────────────────────────── */
1222
- /* Named semantic alias, permanent — "the muted seam between list rows".
1223
- Not on the 2.8.0 compat-removal list (docs/design-system/color-naming-cleanup.md §1). */
1224
- --dsx-color-separator-muted: var(--dsx-color-outline-variant);
1225
1130
  --dsx-cursor-disabled: not-allowed;
1226
1131
  --dsx-cursor-not-allowed: not-allowed;
1227
1132
  --dsx-cursor-pointer: pointer;
1228
1133
  --dsx-cursor-wait: wait;
1229
1134
 
1230
- /* ── Shadow shorthand ───────────────────────────────────────────────── */
1231
- --dsx-shadow-card-md: 0 4px 16px var(--dsx-effect-shadow-card);
1232
-
1233
1135
  /* ── Blur utilities ─────────────────────────────────────────────────── */
1234
1136
  --dsx-blur-md: blur(12px);
1235
1137
 
@@ -1242,57 +1144,37 @@ svg {
1242
1144
  /* ── Z-index extensions ─────────────────────────────────────────────── */
1243
1145
  --dsx-z-index-popover: 60;
1244
1146
 
1245
- /* ── Color extensions ───────────────────────────────────────────────── */
1246
- --dsx-color-primary-ghost: color-mix(in srgb, var(--dsx-color-primary) 8%, transparent);
1247
- --dsx-color-primary-alpha: color-mix(in srgb, var(--dsx-color-primary) 15%, transparent);
1248
-
1249
1147
  /* ── Typography caption scale ───────────────────────────────────────── */
1250
1148
  --dsx-typography-caption-font-family: inherit;
1251
1149
  --dsx-typography-caption-font-size: 0.75rem;
1252
1150
  --dsx-typography-caption-font-weight: 400;
1253
1151
 
1254
- /* ── Semantic aliases (calendar / chart shadcn-port compat) ─────────── */
1255
- --dsx-semantic-border: var(--dsx-color-outline);
1256
- --dsx-semantic-card: var(--dsx-color-surface-raised);
1257
- --dsx-semantic-card-foreground: var(--dsx-color-on-surface);
1258
- --dsx-semantic-muted: var(--dsx-color-surface-sunken);
1259
- --dsx-semantic-muted-foreground: var(--dsx-color-on-surface-variant);
1260
- --dsx-semantic-primary: var(--dsx-color-primary);
1261
- --dsx-semantic-primary-foreground: var(--dsx-color-on-primary);
1262
- --dsx-semantic-ring: var(--dsx-shadow-focus-ring);
1263
-
1264
1152
  /* ── Raw display-white ──────────────────────────────────────────────── */
1153
+
1265
1154
  /* NOT a semantic color — never consume this for text/background/border
1266
1155
  roles, use a real semantic token for those. Only for effects that need
1267
1156
  the literal white channel regardless of theme/accent (a mix-blend-mode:
1268
1157
  difference checkmark, a motion sweep's saturation peak) — see
1269
1158
  color-swatch.css's __check and motion.css's .dsx-motion-scan. */
1270
1159
  --dsx-raw-white: #ffffff;
1160
+
1271
1161
  /* Literal black channel, same contract as --dsx-raw-white above: only for
1272
1162
  effects that need the channel itself (the ColorSwatch check on light
1273
1163
  fills), never for semantic roles. */
1274
1164
  --dsx-raw-black: #000000;
1275
1165
 
1276
- /* ── Chart categorical palette ──────────────────────────────────────── */
1277
- /* Chart.tsx cycles these per series (index % 5) + 1. Previously undefined,
1278
- so every Pie slice fell back to the SVG initial fill (black). */
1279
- --dsx-chart-1: var(--dsx-color-primary);
1280
- --dsx-chart-2: var(--dsx-color-secondary);
1281
- --dsx-chart-3: var(--dsx-color-tertiary);
1282
- --dsx-chart-4: var(--dsx-color-success);
1283
- --dsx-chart-5: var(--dsx-color-error);
1284
-
1285
- /* ── Surface context ────────────────────────────────────────────────── */
1286
- --dsx-color-surface-editor-subtle: var(--dsx-color-surface-sunken);
1287
- --dsx-color-surface-editor-toolbar: var(--dsx-color-surface-raised);
1288
- --dsx-color-surface-field-autofill: color-mix(in srgb, var(--dsx-color-primary) 5%, var(--dsx-color-surface));
1289
-
1290
1166
  /* ── Typography extras ──────────────────────────────────────────────── */
1291
1167
  --dsx-typography-code-font-size: 0.875em;
1292
1168
  --dsx-typography-code-font-weight: 400;
1293
1169
  --dsx-typography-code-letter-spacing: -0.02em;
1294
1170
  --dsx-typography-code-line-height: 1.5;
1295
1171
  --dsx-typography-font-weight-bold: 700;
1172
+
1173
+ /* Existing typography weight utilities resolve through these aliases. */
1174
+ --dsx-r-font-weight-light: 300;
1175
+ --dsx-r-font-weight-regular: 400;
1176
+ --dsx-r-font-weight-medium: 500;
1177
+ --dsx-r-font-weight-bold: var(--dsx-typography-font-weight-bold);
1296
1178
  --dsx-typography-kbd-line-height: 1;
1297
1179
  }
1298
1180
 
@@ -1411,18 +1293,6 @@ svg {
1411
1293
  --dsx-effect-pressed-primary: var(--dsx-effect-pressed-layer);
1412
1294
  --dsx-effect-hover-ghost: var(--dsx-effect-hover-layer);
1413
1295
  --dsx-opacity-disabled: 0.5;
1414
- /* F2: light structural edges are the softer outline-variant (matches the
1415
- pre-F2 [data-dsx-theme='light'] .dsx-card / .dsx-alert override). */
1416
- --dsx-boundary-structural-color: var(--dsx-color-outline-variant);
1417
- /* Lighter overlay for light mode */
1418
- --dsx-effect-overlay: rgba(44, 47, 61, 0.4);
1419
- --dsx-effect-overlay-backdrop-filter: blur(2px);
1420
- /* Segmented/tabs indicator: in light mode, surface (lighter) sits above surface-raised (track). */
1421
- --dsx-control-active-background: var(--dsx-color-surface);
1422
- --dsx-control-active-border: var(--dsx-color-outline);
1423
- /* Glass edges stay outline-variant on light: the white rim token designed
1424
- for dark glass would dissolve into the light page. */
1425
- --dsx-color-panel-border-translucent: var(--dsx-color-outline-variant);
1426
1296
  }
1427
1297
 
1428
1298
  [data-dsx-theme='dark'][data-gray-color='neutral'] {
@@ -1465,6 +1335,119 @@ svg {
1465
1335
  --dsx-color-disabled-text: #6b7d93;
1466
1336
  }
1467
1337
 
1338
+ /* Rebind paint aliases at local boundaries. Inherited var() aliases have
1339
+ already resolved in the parent; changing a source color alone cannot update
1340
+ the inherited ring, seam, shadow or effect. Keep non-paint defaults above. */
1341
+
1342
+ :root,
1343
+ [data-dsx-theme],
1344
+ [data-accent-color],
1345
+ [data-gray-color] {
1346
+ --dsx-backdrop-blur-sm: var(--dsx-effect-overlay-backdrop-blur);
1347
+ --dsx-control-separator-color: var(--dsx-color-outline-variant);
1348
+ --dsx-control-separator-color-strong: var(--dsx-color-outline);
1349
+ --dsx-boundary-control-color: var(--dsx-color-outline);
1350
+ --dsx-boundary-separator-color: var(--dsx-color-outline-variant);
1351
+ --dsx-boundary-divider-color: var(--dsx-color-outline);
1352
+ --dsx-boundary-selected-color: var(--dsx-color-accent-indicator);
1353
+ --dsx-boundary-selected-ring: inset 0 0 0 var(--dsx-boundary-selected-width) var(--dsx-boundary-selected-color);
1354
+ --dsx-boundary-high-contrast-color: var(--dsx-color-high-contrast-border);
1355
+ --dsx-boundary-high-contrast-ring: inset 0 0 0 var(--dsx-boundary-high-contrast-width) var(--dsx-boundary-high-contrast-color);
1356
+ --dsx-control-active-foreground: var(--dsx-color-on-surface);
1357
+ --dsx-shadow-active-indicator: inset 0 calc(-1 * var(--dsx-border-width-lg)) 0 0 var(--dsx-color-high-contrast-border);
1358
+ --dsx-menu-item-hover-background: var(--dsx-color-high-contrast-container);
1359
+ --dsx-menu-item-hover-foreground: var(--dsx-color-high-contrast);
1360
+ --dsx-menu-item-selected-background: var(--dsx-color-surface);
1361
+ --dsx-menu-item-selected-foreground: var(--dsx-color-high-contrast);
1362
+ --dsx-color-panel-solid: var(--dsx-color-surface-raised);
1363
+ --dsx-color-panel-translucent: var(--dsx-effect-panel-glass-background);
1364
+ --dsx-color-panel-border: var(--dsx-color-outline);
1365
+ --dsx-effect-hover-layer: var(--dsx-effect-hover-primary);
1366
+ --dsx-color-surface-hover: var(--dsx-effect-hover-primary);
1367
+ --dsx-accent-contrast: var(--dsx-color-accent-contrast);
1368
+ --dsx-accent-surface: var(--dsx-color-accent-surface);
1369
+ --dsx-accent-indicator: var(--dsx-color-accent-indicator);
1370
+ --dsx-accent-track: var(--dsx-color-accent-track);
1371
+ --dsx-shadow-elevation-1: var(--dsx-effect-shadow-1);
1372
+ --dsx-shadow-elevation-2: var(--dsx-effect-shadow-2);
1373
+ --dsx-shadow-elevation-3: var(--dsx-effect-shadow-3);
1374
+ --dsx-shadow-elevation-4: var(--dsx-effect-shadow-4);
1375
+ /* Step 5 (Spotlight: toasts, dragged panels). Step 6 stays raw until an
1376
+ occupant earns it — no elevation-6 alias by decision (B4 Q3). */
1377
+ --dsx-shadow-elevation-5: var(--dsx-effect-shadow-5);
1378
+ /* Menu-tier control point (B4 Q3): every menu-family content rides step 3
1379
+ unless a component file reasserts it locally for cascade order. */
1380
+ --dsx-menu-content-elevation: var(--dsx-shadow-elevation-3);
1381
+ --dsx-shadow-panel-shadow: var(--dsx-effect-shadow-3);
1382
+ --dsx-shadow-focus-ring: 0 0 0 3px var(--dsx-effect-ring-focus);
1383
+ --dsx-shadow-inset-outline: inset 0 0 0 var(--dsx-border-width-sm) var(--dsx-color-outline);
1384
+ --dsx-shadow-active-inset-outline: inset 0 calc(-1 * var(--dsx-border-width-lg)) 0 0 var(--dsx-color-accent-indicator);
1385
+ --dsx-shadow-accent-ring: 0 0 0 3px var(--dsx-effect-shadow-accent);
1386
+ --dsx-shadow-accent-ring-strong: 0 0 0 4px var(--dsx-effect-shadow-accent-strong);
1387
+ --dsx-shadow-accent-glow: 0 4px 16px var(--dsx-effect-shadow-accent);
1388
+ --dsx-shadow-color-swatch-shadow: 0 2px 4px var(--dsx-color-shadow);
1389
+ --dsx-effect-accent-alpha-3: color-mix(in srgb, var(--dsx-color-primary) 12%, transparent);
1390
+ --dsx-effect-accent-alpha-4: color-mix(in srgb, var(--dsx-color-primary) 18%, transparent);
1391
+ --dsx-effect-accent-alpha-8: color-mix(in srgb, var(--dsx-color-primary) 40%, transparent);
1392
+ --dsx-effect-gray-alpha-2: color-mix(in srgb, var(--dsx-color-gray-12) 6%, transparent);
1393
+ --dsx-effect-gray-alpha-3: color-mix(in srgb, var(--dsx-color-gray-12) 10%, transparent);
1394
+ --dsx-code-soft-background: var(--dsx-effect-gray-alpha-3);
1395
+ --dsx-effect-gray-alpha-4: color-mix(in srgb, var(--dsx-color-gray-12) 15%, transparent);
1396
+ --dsx-effect-hover-emphasis-layer: color-mix(in srgb, var(--dsx-color-primary) 10%, transparent);
1397
+ --dsx-effect-pressed-layer: color-mix(in srgb, var(--dsx-color-primary) 18%, transparent);
1398
+ /* Stronger hover layer for menu/select items. Was 15%, then 24% — still
1399
+ too faint to read on hover-only (mouse) states, where no focus ring
1400
+ backs it up, in both themes (review 2026-09-19: context-menu hover
1401
+ nearly invisible light + dark). 32% for real legibility across
1402
+ rift/warp/ray; the glass panel's own translucency compounds under it. */
1403
+ --dsx-effect-hover-emphasis-strong: color-mix(in srgb, var(--dsx-color-primary) 32%, transparent);
1404
+ --dsx-effect-disabled-layer: var(--dsx-color-disabled-surface);
1405
+ --dsx-effect-disabled-checked-layer: color-mix(in srgb, var(--dsx-color-primary) 30%, transparent);
1406
+ /* Named semantic alias, permanent — "the muted seam between list rows".
1407
+ Not on the 2.8.0 compat-removal list (docs/design-system/color-naming-cleanup.md §1). */
1408
+ --dsx-color-separator-muted: var(--dsx-color-outline-variant);
1409
+ --dsx-shadow-card-md: 0 4px 16px var(--dsx-effect-shadow-card);
1410
+ --dsx-color-primary-ghost: color-mix(in srgb, var(--dsx-color-primary) 8%, transparent);
1411
+ --dsx-color-primary-alpha: color-mix(in srgb, var(--dsx-color-primary) 15%, transparent);
1412
+ --dsx-semantic-border: var(--dsx-color-outline);
1413
+ --dsx-semantic-card: var(--dsx-color-surface-raised);
1414
+ --dsx-semantic-card-foreground: var(--dsx-color-on-surface);
1415
+ --dsx-semantic-muted: var(--dsx-color-surface-sunken);
1416
+ --dsx-semantic-muted-foreground: var(--dsx-color-on-surface-variant);
1417
+ --dsx-semantic-primary: var(--dsx-color-primary);
1418
+ --dsx-semantic-primary-foreground: var(--dsx-color-on-primary);
1419
+ --dsx-semantic-ring: var(--dsx-shadow-focus-ring);
1420
+ /* Chart.tsx cycles these per series (index % 5) + 1. Previously undefined,
1421
+ so every Pie slice fell back to the SVG initial fill (black). */
1422
+ --dsx-chart-1: var(--dsx-color-primary);
1423
+ --dsx-chart-2: var(--dsx-color-secondary);
1424
+ --dsx-chart-3: var(--dsx-color-tertiary);
1425
+ --dsx-chart-4: var(--dsx-color-success);
1426
+ --dsx-chart-5: var(--dsx-color-error);
1427
+ --dsx-color-surface-editor-subtle: var(--dsx-color-surface-sunken);
1428
+ --dsx-color-surface-editor-toolbar: var(--dsx-color-surface-raised);
1429
+ --dsx-color-surface-field-autofill: color-mix(in srgb, var(--dsx-color-primary) 5%, var(--dsx-color-surface));
1430
+ }
1431
+
1432
+ :root,
1433
+ [data-dsx-theme='dark'] {
1434
+ --dsx-boundary-structural-color: var(--dsx-color-outline);
1435
+ --dsx-control-active-background: var(--dsx-color-surface-overlay);
1436
+ --dsx-control-active-border: var(--dsx-color-outline-variant);
1437
+ --dsx-color-panel-border-translucent: var(--dsx-effect-panel-glass-border);
1438
+ --dsx-effect-overlay: rgba(8, 9, 12, 0.72);
1439
+ --dsx-effect-overlay-backdrop-filter: blur(4px);
1440
+ }
1441
+
1442
+ [data-dsx-theme='light'] {
1443
+ --dsx-effect-overlay: rgba(44, 47, 61, 0.4);
1444
+ --dsx-effect-overlay-backdrop-filter: blur(2px);
1445
+ --dsx-boundary-structural-color: var(--dsx-color-outline-variant);
1446
+ --dsx-control-active-background: var(--dsx-color-surface);
1447
+ --dsx-control-active-border: var(--dsx-color-outline);
1448
+ --dsx-color-panel-border-translucent: var(--dsx-color-outline-variant);
1449
+ }
1450
+
1468
1451
  html {
1469
1452
  color-scheme: light dark;
1470
1453
  }
@@ -2591,12 +2574,16 @@ textarea {
2591
2574
  gap: var(--dsx-space-xs);
2592
2575
  padding: var(--dsx-space-lg);
2593
2576
  border-radius: var(--dsx-rounded-lg);
2594
- background: var(--dsx-color-accent-surface);
2577
+ background: var(--dsx-color-primary-container);
2595
2578
  box-sizing: border-box;
2596
2579
  min-width: 0;
2597
2580
  overflow-wrap: anywhere;
2598
2581
  }
2599
2582
 
2583
+ .dsx-banner :is(.dsx-banner__label, .dsx-banner__value, .dsx-banner__footnote) {
2584
+ color: var(--dsx-color-on-primary-container);
2585
+ }
2586
+
2600
2587
  /* Fill: solid accent mass reusing Button primary's solved compliance —
2601
2588
  accent-track background with accent-contrast text (near-black on spark,
2602
2589
  white elsewhere, per the token). Wash stays the default hero. */
@@ -2620,7 +2607,6 @@ textarea {
2620
2607
  font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
2621
2608
  text-transform: var(--dsx-typography-label-small-text-transform);
2622
2609
  text-decoration: var(--dsx-typography-label-small-text-decoration);
2623
- color: var(--dsx-color-on-surface-variant);
2624
2610
  }
2625
2611
 
2626
2612
  .dsx-banner__value {
@@ -2632,7 +2618,6 @@ textarea {
2632
2618
  font-variation-settings: var(--dsx-typography-display-medium-font-variation-settings);
2633
2619
  text-transform: var(--dsx-typography-display-medium-text-transform);
2634
2620
  text-decoration: var(--dsx-typography-display-medium-text-decoration);
2635
- color: var(--dsx-color-on-surface);
2636
2621
  }
2637
2622
 
2638
2623
  .dsx-banner__footnote {
@@ -2644,7 +2629,143 @@ textarea {
2644
2629
  font-variation-settings: var(--dsx-typography-body-small-font-variation-settings);
2645
2630
  text-transform: var(--dsx-typography-body-small-text-transform);
2646
2631
  text-decoration: var(--dsx-typography-body-small-text-decoration);
2632
+ }
2633
+
2634
+ /* BottomDock — a floating pill of primary destinations for phone widths.
2635
+ Tokens only. No breakpoints: the app renders the dock at phone widths. */
2636
+
2637
+ .dsx-bottom-dock {
2638
+ position: fixed;
2639
+ inset-inline: var(--dsx-space-3);
2640
+ inset-block-end: calc(var(--dsx-space-3) + var(--dsx-safe-area-inset-bottom, 0px));
2641
+ z-index: var(--dsx-z-index-fixed);
2642
+ display: flex;
2643
+ align-items: center;
2644
+ justify-content: space-around;
2645
+ gap: var(--dsx-space-xs);
2646
+ padding: var(--dsx-space-xs);
2647
+ box-sizing: border-box;
2648
+ border: var(--dsx-border-width-sm) solid var(--dsx-panel-border-color);
2649
+ border-radius: var(--dsx-rounded-xl);
2650
+ background: var(--dsx-color-panel-translucent);
2651
+ backdrop-filter: var(--dsx-effect-panel-glass-backdrop-filter);
2652
+ box-shadow: var(--dsx-panel-shadow);
2653
+ color: var(--dsx-color-on-surface);
2654
+ }
2655
+
2656
+ .dsx-bottom-dock:where([data-placement='contained']) {
2657
+ position: absolute;
2658
+ }
2659
+
2660
+ .dsx-bottom-dock__item {
2661
+ position: relative;
2662
+ display: inline-flex;
2663
+ align-items: center;
2664
+ justify-content: center;
2665
+ gap: var(--dsx-space-xs);
2666
+ min-block-size: calc(var(--dsx-size-xl) + var(--dsx-space-xs));
2667
+ min-inline-size: calc(var(--dsx-size-xl) + var(--dsx-space-xs));
2668
+ padding: 0 var(--dsx-space-3);
2669
+ box-sizing: border-box;
2670
+ border: 0;
2671
+ border-radius: var(--dsx-rounded-lg);
2672
+ background: transparent;
2647
2673
  color: var(--dsx-color-on-surface-variant);
2674
+ font: inherit;
2675
+ text-decoration: none;
2676
+ cursor: pointer;
2677
+ transition:
2678
+ background-color var(--dsx-motion-duration-fast) var(--dsx-motion-easing-standard),
2679
+ color var(--dsx-motion-duration-fast) var(--dsx-motion-easing-standard);
2680
+ }
2681
+
2682
+ /* Hover only on inactive items, so an active item never loses its container to the ghost wash. */
2683
+
2684
+ .dsx-bottom-dock__item:where(:not([data-active='true'])):hover {
2685
+ background: var(--dsx-effect-hover-ghost);
2686
+ color: var(--dsx-color-on-surface);
2687
+ }
2688
+
2689
+ .dsx-bottom-dock__item:focus-visible {
2690
+ outline: none;
2691
+ box-shadow: var(--dsx-shadow-focus-ring);
2692
+ }
2693
+
2694
+ .dsx-bottom-dock__item:where([data-active='true']) {
2695
+ background: var(--dsx-color-primary-container);
2696
+ color: var(--dsx-color-on-primary-container);
2697
+ }
2698
+
2699
+ /* labels="always": icon over label, items share the width (Material 3 / HIG). */
2700
+
2701
+ .dsx-bottom-dock:where([data-labels='always']) .dsx-bottom-dock__item {
2702
+ flex: 1 1 0;
2703
+ flex-direction: column;
2704
+ gap: 0;
2705
+ padding: var(--dsx-space-xs) var(--dsx-space-sm);
2706
+ }
2707
+
2708
+ .dsx-bottom-dock__icon {
2709
+ position: relative;
2710
+ display: inline-flex;
2711
+ align-items: center;
2712
+ justify-content: center;
2713
+ inline-size: var(--dsx-size-md);
2714
+ block-size: var(--dsx-size-md);
2715
+ }
2716
+
2717
+ .dsx-bottom-dock__label {
2718
+ font-family: var(--dsx-typography-label-small-font-family), sans-serif;
2719
+ font-size: var(--dsx-typography-label-small-font-size);
2720
+ font-weight: var(--dsx-typography-label-small-font-weight);
2721
+ line-height: var(--dsx-typography-label-small-line-height);
2722
+ letter-spacing: var(--dsx-typography-label-small-letter-spacing);
2723
+ font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
2724
+ text-transform: var(--dsx-typography-label-small-text-transform);
2725
+ text-decoration: var(--dsx-typography-label-small-text-decoration);
2726
+ white-space: nowrap;
2727
+ /* A long label truncates inside its item instead of poking out of the pill on a narrow phone. */
2728
+ min-inline-size: 0;
2729
+ max-inline-size: 100%;
2730
+ overflow: hidden;
2731
+ text-overflow: ellipsis;
2732
+ }
2733
+
2734
+ /* Place the badge inside BottomDock.Icon to sit on the glyph; outside it, it sits on the item corner. */
2735
+
2736
+ .dsx-bottom-dock__badge {
2737
+ position: absolute;
2738
+ inset-block-start: calc(var(--dsx-space-xs) * -1);
2739
+ inset-inline-end: calc(var(--dsx-space-xs) * -1);
2740
+ display: inline-flex;
2741
+ align-items: center;
2742
+ justify-content: center;
2743
+ min-inline-size: var(--dsx-space-md);
2744
+ block-size: var(--dsx-space-md);
2745
+ padding: 0 var(--dsx-space-xs);
2746
+ box-sizing: border-box;
2747
+ border-radius: var(--dsx-rounded-full);
2748
+ background: var(--dsx-color-primary);
2749
+ color: var(--dsx-color-on-primary);
2750
+ font-family: var(--dsx-typography-label-small-font-family), sans-serif;
2751
+ font-size: var(--dsx-typography-label-small-font-size);
2752
+ font-weight: var(--dsx-typography-label-small-font-weight);
2753
+ line-height: var(--dsx-typography-label-small-line-height);
2754
+ pointer-events: none;
2755
+ }
2756
+
2757
+ /* An empty badge is a dot. */
2758
+
2759
+ .dsx-bottom-dock__badge:empty {
2760
+ min-inline-size: var(--dsx-space-sm);
2761
+ block-size: var(--dsx-space-sm);
2762
+ padding: 0;
2763
+ }
2764
+
2765
+ @media (prefers-reduced-motion: reduce) {
2766
+ .dsx-bottom-dock__item {
2767
+ transition: none;
2768
+ }
2648
2769
  }
2649
2770
 
2650
2771
  @keyframes dsx-base-button-loading-shimmer {
@@ -3306,7 +3427,7 @@ textarea {
3306
3427
  hover with a neutral background wash + elevated shadow, masking its own accent-tinted
3307
3428
  border underneath even though the border's own color value never actually changed. */
3308
3429
 
3309
- .dsx-card:hover:not([data-interactive='false']) {
3430
+ .dsx-card:hover:not([data-interactive='false']):where(:not([data-active='true'], [data-selected='true'], [aria-selected='true'], [data-state='active'], [data-state='selected'], [data-high-contrast='true'])) {
3310
3431
  border-color: var(--dsx-color-outline-variant);
3311
3432
  background: linear-gradient(var(--dsx-effect-hover-layer), var(--dsx-effect-hover-layer)), var(--dsx-color-surface-raised);
3312
3433
  box-shadow: var(--dsx-shadow-elevation-2);
@@ -3327,7 +3448,7 @@ textarea {
3327
3448
  reinforces the highlight instead of competing with it. Kept low (10%) so it reads as a wash,
3328
3449
  not a fill. */
3329
3450
 
3330
- .dsx-card[data-interactive='false'][data-accent-color]:hover {
3451
+ .dsx-card[data-interactive='false'][data-accent-color]:hover:where(:not([data-active='true'], [data-selected='true'], [aria-selected='true'], [data-state='active'], [data-state='selected'], [data-high-contrast='true'])) {
3331
3452
  border-color: var(--dsx-color-primary);
3332
3453
  background: color-mix(in srgb, var(--dsx-color-primary) 10%, transparent);
3333
3454
  box-shadow: 0 0 0 1px var(--dsx-color-primary);
@@ -3340,7 +3461,7 @@ textarea {
3340
3461
  comparison card's identity (this one is Space Rift, that one is Warp Dagger) is a rest-state
3341
3462
  fact, not a hover reveal — moved here so any consumer gets it for free. */
3342
3463
 
3343
- .dsx-card[data-interactive='false'][data-accent-color] {
3464
+ .dsx-card[data-interactive='false'][data-accent-color]:where(:not([data-active='true'], [data-selected='true'], [aria-selected='true'], [data-state='active'], [data-state='selected'], [data-high-contrast='true'])) {
3344
3465
  border-color: var(--dsx-color-primary);
3345
3466
  }
3346
3467
 
@@ -3358,7 +3479,7 @@ textarea {
3358
3479
  -webkit-backdrop-filter: var(--dsx-effect-panel-glass-backdrop-filter);
3359
3480
  }
3360
3481
 
3361
- [data-dsx-theme='light'] .dsx-card[data-variant='glass'] {
3482
+ [data-dsx-theme='light'] .dsx-card[data-variant='glass']:where(:not([data-active='true'], [data-selected='true'], [aria-selected='true'], [data-state='active'], [data-state='selected'], [data-high-contrast='true'])) {
3362
3483
  box-shadow:
3363
3484
  inset 0 1px 0 0 var(--dsx-effect-panel-glass-rim-highlight),
3364
3485
  inset 0 0 0 1px var(--dsx-effect-panel-glass-rim),
@@ -3498,6 +3619,15 @@ textarea {
3498
3619
  box-shadow: var(--dsx-boundary-high-contrast-ring);
3499
3620
  }
3500
3621
 
3622
+ /* Selection paints an inset ring. Reassert the transparent physical border
3623
+ after the shared light-appearance edge rule, including in nested Themes. */
3624
+
3625
+ .dsx-card:is([data-active='true'], [data-selected='true'], [aria-selected='true'], [data-state='active'], [data-state='selected']):where(:not([data-high-contrast='true'])) {
3626
+ border-color: transparent;
3627
+ background: var(--dsx-color-accent-surface);
3628
+ box-shadow: var(--dsx-boundary-selected-ring), var(--dsx-shadow-1, var(--dsx-effect-shadow-1));
3629
+ }
3630
+
3501
3631
  .dsx-carousel {
3502
3632
  --_carousel-nav-size: var(--dsx-size-lg);
3503
3633
  position: relative;
@@ -4384,7 +4514,8 @@ textarea {
4384
4514
  .dsx-context-menu__content {
4385
4515
  position: relative;
4386
4516
  z-index: var(--dsx-z-index-dropdown);
4387
- min-width: var(--dsx-size-menu-min-width);
4517
+ min-width: min(var(--dsx-size-menu-min-width), var(--radix-context-menu-content-available-width, var(--dsx-size-menu-min-width)));
4518
+ max-width: var(--radix-context-menu-content-available-width);
4388
4519
  padding: var(--dsx-space-xs);
4389
4520
  border-radius: var(--dsx-rounded-lg);
4390
4521
  overflow: hidden;
@@ -4409,6 +4540,7 @@ textarea {
4409
4540
  color: var(--dsx-color-on-surface);
4410
4541
  text-align: left;
4411
4542
  text-decoration: none;
4543
+ overflow-wrap: anywhere;
4412
4544
  font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
4413
4545
  font-size: var(--dsx-typography-body-medium-font-size);
4414
4546
  }
@@ -6387,23 +6519,15 @@ textarea {
6387
6519
  margin-inline: var(--dsx-space-xs);
6388
6520
  }
6389
6521
 
6390
- .dsx-separator[data-orientation='horizontal'][data-size='sm'] { height: var(--dsx-border-width-sm); }
6391
-
6392
- .dsx-separator[data-orientation='horizontal'][data-size='lg'] { height: var(--dsx-border-width-lg); }
6393
-
6394
- .dsx-separator[data-orientation='vertical'][data-size='sm'] { width: var(--dsx-border-width-sm); }
6395
-
6396
- .dsx-separator[data-orientation='vertical'][data-size='lg'] { width: var(--dsx-border-width-lg); }
6397
-
6398
6522
  .dsx-separator--decorative {
6399
6523
  background: var(--dsx-color-separator-muted);
6400
6524
  }
6401
6525
 
6402
- /* Reserved accent hook: any accent-color value paints the separator in the accent
6403
- indicator tone, for deliberate accent-divided surfaces. */
6526
+ /* Explicit accent rules use the decorative role; readable ink and selected
6527
+ control indicators retain their own accent-indicator role. */
6404
6528
 
6405
6529
  .dsx-separator[data-accent-color] {
6406
- background: var(--dsx-color-accent-indicator);
6530
+ background: var(--dsx-color-accent-border);
6407
6531
  }
6408
6532
 
6409
6533
  .dsx-dialog__overlay,
@@ -6542,6 +6666,8 @@ textarea {
6542
6666
  above that owning surface; otherwise the portal paints behind the control that opened it. */
6543
6667
  z-index: calc(var(--dsx-z-index-modal, 90) + 1);
6544
6668
  gap: var(--dsx-space-md);
6669
+ grid-template-columns: minmax(0, 1fr);
6670
+ overflow-wrap: anywhere;
6545
6671
  min-width: var(--dsx-popover-min-width);
6546
6672
  max-width: min(var(--dsx-popover-max-width), calc(100vw - var(--dsx-dialog-viewport-gap)));
6547
6673
  padding: var(--dsx-space-md);
@@ -6579,12 +6705,50 @@ textarea {
6579
6705
  }
6580
6706
 
6581
6707
  .dsx-popover__close {
6582
- position: absolute;
6583
- top: var(--dsx-space-md);
6584
- right: var(--dsx-space-md);
6585
- width: var(--dsx-size-lg);
6586
- height: var(--dsx-size-lg);
6587
- border-radius: var(--dsx-rounded-full);
6708
+ min-width: var(--dsx-size-md);
6709
+ min-height: var(--dsx-size-md);
6710
+ }
6711
+
6712
+ /* Close may compose a public Button. Restore its rest palette after the
6713
+ shared overlay close reset; Button's state selectors retain precedence. */
6714
+
6715
+ .dsx-popover__close:where(.dsx-button) {
6716
+ border-width: var(--dsx-border-width-sm);
6717
+ border-style: solid;
6718
+ border-color: transparent;
6719
+ }
6720
+
6721
+ .dsx-popover__close:where(.dsx-button[data-variant='primary']) {
6722
+ background: var(--dsx-color-accent-track);
6723
+ border-color: var(--dsx-color-accent-track);
6724
+ color: var(--dsx-color-accent-contrast);
6725
+ }
6726
+
6727
+ .dsx-popover__close:where(.dsx-button[data-variant='secondary']) {
6728
+ background: var(--dsx-color-secondary);
6729
+ border-color: var(--dsx-color-secondary);
6730
+ color: var(--dsx-color-on-secondary);
6731
+ }
6732
+
6733
+ :where([data-dsx-theme='dark']) .dsx-popover__close:where(.dsx-button[data-variant='secondary']) {
6734
+ color: var(--dsx-color-on-surface);
6735
+ }
6736
+
6737
+ .dsx-popover__close:where(.dsx-button[data-variant='outline']) {
6738
+ background: transparent;
6739
+ border-color: var(--dsx-color-outline-variant);
6740
+ color: var(--dsx-color-on-surface);
6741
+ }
6742
+
6743
+ .dsx-popover__close:where(.dsx-button[data-variant='ghost']) {
6744
+ background: transparent;
6745
+ color: var(--dsx-color-on-surface);
6746
+ }
6747
+
6748
+ .dsx-popover__close:where(.dsx-button[data-variant='destructive']) {
6749
+ background: var(--dsx-color-error);
6750
+ border-color: var(--dsx-color-error);
6751
+ color: var(--dsx-color-on-error);
6588
6752
  }
6589
6753
 
6590
6754
  .dsx-popover-show-arrow {
@@ -7107,6 +7271,8 @@ textarea {
7107
7271
  }
7108
7272
 
7109
7273
  .dsx-hover-card__content {
7274
+ z-index: var(--dsx-z-index-popover);
7275
+ overflow-wrap: anywhere;
7110
7276
  gap: var(--dsx-space-md);
7111
7277
  min-width: var(--dsx-size-popover-min-width);
7112
7278
  max-width: min(var(--dsx-size-popover-max-width), calc(100vw - var(--dsx-space-xl)));
@@ -7137,9 +7303,10 @@ textarea {
7137
7303
  }
7138
7304
 
7139
7305
  .dsx-hover-card__arrow {
7140
- fill: currentColor;
7306
+ color: var(--dsx-color-panel-translucent);
7307
+ fill: var(--dsx-color-panel-translucent);
7141
7308
  stroke: var(--dsx-color-outline-variant);
7142
- stroke-width: 1px;
7309
+ stroke-width: var(--dsx-border-width-sm);
7143
7310
  vector-effect: non-scaling-stroke;
7144
7311
  }
7145
7312
 
@@ -7481,7 +7648,6 @@ textarea {
7481
7648
  .dsx-command__group [cmdk-group-heading] {
7482
7649
  margin-top: var(--dsx-space-md);
7483
7650
  padding: var(--dsx-space-xs) var(--dsx-space-sm);
7484
- border-top: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
7485
7651
  font-family: var(--dsx-typography-label-small-font-family), sans-serif;
7486
7652
  font-size: var(--dsx-typography-label-small-font-size);
7487
7653
  font-weight: var(--dsx-typography-label-small-font-weight);
@@ -7504,7 +7670,6 @@ textarea {
7504
7670
  .dsx-command__group-heading {
7505
7671
  margin-top: var(--dsx-space-md);
7506
7672
  padding: var(--dsx-space-xs) var(--dsx-space-sm);
7507
- border-top: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
7508
7673
  font-size: var(--dsx-typography-label-small-font-size);
7509
7674
  font-family: var(--dsx-typography-label-small-font-family), sans-serif;
7510
7675
  font-weight: var(--dsx-typography-label-small-font-weight);
@@ -7613,7 +7778,7 @@ textarea {
7613
7778
  padding: var(--dsx-space-md) var(--dsx-space-lg);
7614
7779
  }
7615
7780
 
7616
- /* ConfigDrawer renders inside Sheet.Content (right-anchored panel).
7781
+ /* ConfigDrawer renders inside Drawer.Content (host-selected edge).
7617
7782
  These rules style the body layout and each settings row. */
7618
7783
 
7619
7784
  .dsx-config-drawer__body {
@@ -7624,11 +7789,13 @@ textarea {
7624
7789
  overflow-y: auto;
7625
7790
  padding: var(--dsx-space-md) 0;
7626
7791
  min-height: 0;
7792
+ min-width: 0;
7627
7793
  }
7628
7794
 
7629
7795
  .dsx-config-drawer__row {
7630
7796
  display: flex;
7631
7797
  flex-direction: row;
7798
+ flex-wrap: wrap;
7632
7799
  align-items: center;
7633
7800
  justify-content: space-between;
7634
7801
  gap: var(--dsx-space-md);
@@ -7639,12 +7806,14 @@ textarea {
7639
7806
  display: flex;
7640
7807
  flex-direction: column;
7641
7808
  gap: var(--dsx-space-2xs);
7642
- flex: 1 1 auto;
7809
+ flex: 1 1 max-content;
7643
7810
  min-width: 0;
7644
7811
  }
7645
7812
 
7646
7813
  .dsx-config-drawer__row-control {
7647
- flex-shrink: 0;
7814
+ flex: 0 0 auto;
7815
+ min-width: 0;
7816
+ max-width: 100%;
7648
7817
  }
7649
7818
 
7650
7819
  .dsx-config-drawer__accent-swatch {
@@ -7695,11 +7864,27 @@ textarea {
7695
7864
  z-index: calc(var(--dsx-z-index-dropdown) + 1);
7696
7865
  gap: var(--dsx-space-md);
7697
7866
  min-height: var(--dsx-drawer-min-height, 30vh);
7867
+ max-height: 100dvh;
7868
+ max-width: 100%;
7869
+ overflow-y: auto;
7870
+ overflow-wrap: anywhere;
7698
7871
  padding: var(--dsx-space-md) var(--dsx-space-lg) var(--dsx-space-lg);
7699
7872
  border-top-left-radius: var(--dsx-rounded-xl);
7700
7873
  border-top-right-radius: var(--dsx-rounded-xl);
7701
7874
  }
7702
7875
 
7876
+ .dsx-drawer__content > :not(.dsx-drawer__handle) {
7877
+ flex-shrink: 0;
7878
+ min-width: 0;
7879
+ }
7880
+
7881
+ /* Vaul's offscreen filler grows the shell's scroll area and covers footer
7882
+ controls after scrolling. The bounded scrolling shell owns its surface. */
7883
+
7884
+ .dsx-drawer__content::after {
7885
+ display: none;
7886
+ }
7887
+
7703
7888
  .dsx-drawer__content[data-direction='bottom'] {
7704
7889
  right: 0;
7705
7890
  bottom: 0;
@@ -7721,8 +7906,9 @@ textarea {
7721
7906
  top: 0;
7722
7907
  bottom: 0;
7723
7908
  left: 0;
7724
- width: min(100vw, var(--dsx-sheet-width));
7725
- min-height: var(--dsx-drawer-min-height-full, 100vh);
7909
+ width: min(100%, var(--dsx-sheet-width));
7910
+ height: 100dvh;
7911
+ min-height: 0;
7726
7912
  border-top-right-radius: var(--dsx-rounded-xl);
7727
7913
  border-bottom-right-radius: var(--dsx-rounded-xl);
7728
7914
  }
@@ -7731,8 +7917,9 @@ textarea {
7731
7917
  top: 0;
7732
7918
  right: 0;
7733
7919
  bottom: 0;
7734
- width: min(100vw, var(--dsx-sheet-width));
7735
- min-height: var(--dsx-drawer-min-height-full, 100vh);
7920
+ width: min(100%, var(--dsx-sheet-width));
7921
+ height: 100dvh;
7922
+ min-height: 0;
7736
7923
  border-top-left-radius: var(--dsx-rounded-xl);
7737
7924
  border-bottom-left-radius: var(--dsx-rounded-xl);
7738
7925
  }
@@ -7784,12 +7971,12 @@ textarea {
7784
7971
 
7785
7972
  .dsx-drawer__content[data-direction='left'][data-size='sm'],
7786
7973
  .dsx-drawer__content[data-direction='right'][data-size='sm'] {
7787
- width: min(100vw, var(--dsx-sheet-width-sm, 280px));
7974
+ width: min(100%, var(--dsx-sheet-width-sm, 280px));
7788
7975
  }
7789
7976
 
7790
7977
  .dsx-drawer__content[data-direction='left'][data-size='lg'],
7791
7978
  .dsx-drawer__content[data-direction='right'][data-size='lg'] {
7792
- width: min(100vw, var(--dsx-sheet-width-lg, 540px));
7979
+ width: min(100%, var(--dsx-sheet-width-lg, 540px));
7793
7980
  }
7794
7981
 
7795
7982
  .dsx-drawer__title {
@@ -8127,6 +8314,8 @@ textarea {
8127
8314
  font-weight: var(--dsx-typography-label-large-font-weight);
8128
8315
  line-height: var(--dsx-typography-label-large-line-height);
8129
8316
  letter-spacing: var(--dsx-typography-label-large-letter-spacing);
8317
+ font-variation-settings: var(--dsx-typography-label-large-font-variation-settings);
8318
+ text-transform: none;
8130
8319
  }
8131
8320
 
8132
8321
  .dsx-label[data-disabled] {
@@ -8140,6 +8329,7 @@ textarea {
8140
8329
  font-weight: var(--dsx-typography-label-medium-font-weight);
8141
8330
  line-height: var(--dsx-typography-label-medium-line-height);
8142
8331
  letter-spacing: var(--dsx-typography-label-medium-letter-spacing);
8332
+ font-variation-settings: var(--dsx-typography-label-medium-font-variation-settings);
8143
8333
  }
8144
8334
 
8145
8335
  .dsx-label[data-size='lg'] {
@@ -8376,7 +8566,7 @@ textarea {
8376
8566
 
8377
8567
  .dsx-accordion__item {
8378
8568
  width: 100%;
8379
- overflow: hidden;
8569
+ overflow: visible;
8380
8570
  border-bottom: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
8381
8571
  }
8382
8572
 
@@ -8407,10 +8597,11 @@ textarea {
8407
8597
  flex: 1;
8408
8598
  min-width: 0;
8409
8599
  text-align: start;
8600
+ overflow-wrap: anywhere;
8410
8601
  }
8411
8602
 
8412
8603
  .dsx-accordion__trigger[data-state='open'] {
8413
- color: var(--dsx-color-primary);
8604
+ color: var(--dsx-color-accent-indicator);
8414
8605
  }
8415
8606
 
8416
8607
  .dsx-accordion__trigger:focus-visible {
@@ -8464,7 +8655,14 @@ textarea {
8464
8655
  font-size: var(--dsx-typography-body-medium-font-size);
8465
8656
  }
8466
8657
 
8658
+ @media (prefers-reduced-motion: reduce) {
8659
+ .dsx-accordion__chevron { transition: none; }
8660
+ }
8661
+
8662
+ .dsx-accordion__trigger:disabled { opacity: var(--dsx-opacity-disabled); }
8663
+
8467
8664
  .dsx-alert {
8665
+ box-sizing: border-box;
8468
8666
  display: flex;
8469
8667
  align-items: flex-start;
8470
8668
  gap: var(--dsx-space-md);
@@ -8486,16 +8684,31 @@ textarea {
8486
8684
  color: currentColor;
8487
8685
  }
8488
8686
 
8687
+ .dsx-alert__icon { flex-shrink: 0; }
8688
+
8489
8689
  .dsx-alert__action {
8490
8690
  align-self: center;
8691
+ justify-content: flex-start;
8692
+ flex-wrap: wrap;
8693
+ gap: var(--dsx-space-sm);
8491
8694
  }
8492
8695
 
8493
8696
  .dsx-alert__content {
8494
8697
  display: grid;
8495
8698
  gap: var(--dsx-space-xs);
8496
8699
  flex: 1;
8700
+ min-width: 0;
8701
+ overflow-wrap: anywhere;
8497
8702
  }
8498
8703
 
8704
+ .dsx-alert[data-variant='warning'] { border-color: var(--dsx-color-warning); }
8705
+
8706
+ .dsx-alert[data-variant='success'] { border-color: var(--dsx-color-success); }
8707
+
8708
+ .dsx-alert[data-variant='destructive'] { border-color: var(--dsx-color-error); }
8709
+
8710
+ .dsx-alert[data-high-contrast='true'] { border-color: var(--dsx-color-high-contrast-border); }
8711
+
8499
8712
  .dsx-alert__title {
8500
8713
  margin: 0;
8501
8714
  font-family: var(--dsx-typography-label-large-font-family), sans-serif;
@@ -8854,7 +9067,7 @@ textarea {
8854
9067
  }
8855
9068
 
8856
9069
  .dsx-collapsible__trigger[data-state='open'] {
8857
- color: var(--dsx-color-primary);
9070
+ color: var(--dsx-color-accent-indicator);
8858
9071
  }
8859
9072
 
8860
9073
  .dsx-collapsible__trigger:focus-visible {
@@ -8862,7 +9075,10 @@ textarea {
8862
9075
  box-shadow: var(--dsx-shadow-focus-ring);
8863
9076
  }
8864
9077
 
9078
+ .dsx-collapsible__trigger > :where(span) { min-width: 0; text-align: start; overflow-wrap: anywhere; }
9079
+
8865
9080
  .dsx-collapsible__chevron {
9081
+ flex-shrink: 0;
8866
9082
  transition: transform var(--dsx-motion-duration-fast, 150ms) var(--dsx-motion-easing-standard, ease);
8867
9083
  }
8868
9084
 
@@ -8878,6 +9094,12 @@ textarea {
8878
9094
  font-size: var(--dsx-typography-body-medium-font-size);
8879
9095
  }
8880
9096
 
9097
+ @media (prefers-reduced-motion: reduce) {
9098
+ .dsx-collapsible__chevron { transition: none; }
9099
+ }
9100
+
9101
+ .dsx-collapsible__trigger:disabled { opacity: var(--dsx-opacity-disabled); }
9102
+
8881
9103
  /* ── Root list ─────────────────────────────────────────── */
8882
9104
 
8883
9105
  .dsx-data-list {
@@ -9637,9 +9859,11 @@ textarea {
9637
9859
  width: 100%;
9638
9860
  }
9639
9861
 
9640
- .dsx-file-upload__dropzone {
9862
+ .dsx-file-upload .dsx-file-upload__dropzone {
9641
9863
  width: 100%;
9642
9864
  min-height: calc(var(--dsx-size-4xl) * 2);
9865
+ padding: var(--dsx-space-md);
9866
+ gap: var(--dsx-space-sm);
9643
9867
  border: var(--dsx-border-width-md) dashed var(--dsx-color-outline);
9644
9868
  border-radius: var(--dsx-rounded-lg);
9645
9869
  background: var(--dsx-color-surface-sunken);
@@ -9649,14 +9873,36 @@ textarea {
9649
9873
  box-shadow var(--dsx-motion-duration-fast, 150ms) var(--dsx-motion-easing-standard, ease);
9650
9874
  }
9651
9875
 
9652
- .dsx-file-upload[data-size='sm'] .dsx-file-upload__dropzone {
9653
- min-height: calc(var(--dsx-size-4xl) * 1.5);
9654
- padding: var(--dsx-space-lg);
9876
+ .dsx-file-upload:where([data-size='sm']) .dsx-file-upload__dropzone {
9877
+ min-height: var(--dsx-size-4xl);
9878
+ padding: var(--dsx-space-sm);
9879
+ flex-direction: row;
9880
+ flex-wrap: wrap;
9881
+ justify-content: flex-start;
9882
+ text-align: start;
9655
9883
  }
9656
9884
 
9657
- .dsx-file-upload[data-size='lg'] .dsx-file-upload__dropzone {
9885
+ .dsx-file-upload:where([data-size='lg']) .dsx-file-upload__dropzone {
9658
9886
  min-height: calc(var(--dsx-size-4xl) * 2.5);
9659
- padding: var(--dsx-space-2xl);
9887
+ padding: var(--dsx-space-lg);
9888
+ }
9889
+
9890
+ .dsx-file-upload__dropzone .dsx-empty-state__title {
9891
+ font-family: var(--dsx-typography-label-large-font-family), sans-serif;
9892
+ font-size: var(--dsx-typography-label-large-font-size);
9893
+ font-weight: var(--dsx-typography-label-large-font-weight);
9894
+ line-height: var(--dsx-typography-label-large-line-height);
9895
+ letter-spacing: var(--dsx-typography-label-large-letter-spacing);
9896
+ }
9897
+
9898
+ .dsx-file-upload__dropzone .dsx-empty-state__illustration {
9899
+ width: var(--dsx-size-lg);
9900
+ height: var(--dsx-size-lg);
9901
+ flex: none;
9902
+ }
9903
+
9904
+ .dsx-file-upload:where([data-size='sm']) .dsx-empty-state__header {
9905
+ flex: 1 1 var(--dsx-size-4xl);
9660
9906
  }
9661
9907
 
9662
9908
  .dsx-file-upload__dropzone[data-dragging='true'] {
@@ -9687,15 +9933,17 @@ textarea {
9687
9933
  width: 100%;
9688
9934
  }
9689
9935
 
9690
- .dsx-file-upload__item {
9936
+ .dsx-item.dsx-file-upload__item {
9691
9937
  width: 100%;
9938
+ gap: var(--dsx-space-sm);
9692
9939
  }
9693
9940
 
9694
9941
  .dsx-file-upload__media {
9695
9942
  color: var(--dsx-color-on-surface-variant);
9696
9943
  }
9697
9944
 
9698
- .dsx-file-upload__content {
9945
+ .dsx-file-upload__item .dsx-file-upload__content {
9946
+ flex: 1 1 0;
9699
9947
  min-width: 0;
9700
9948
  }
9701
9949
 
@@ -9729,9 +9977,10 @@ textarea {
9729
9977
  color: var(--dsx-color-error);
9730
9978
  }
9731
9979
 
9732
- .dsx-file-upload__actions {
9980
+ .dsx-file-upload__item .dsx-file-upload__actions {
9733
9981
  margin-left: auto;
9734
9982
  flex-direction: column;
9983
+ flex-wrap: nowrap;
9735
9984
  align-items: flex-end;
9736
9985
  gap: var(--dsx-space-xs);
9737
9986
  }
@@ -9740,6 +9989,8 @@ textarea {
9740
9989
  box-sizing: border-box;
9741
9990
  display: flex;
9742
9991
  flex-direction: column;
9992
+ max-width: calc(100vw - var(--dsx-space-xl));
9993
+ max-height: calc(100dvh - var(--dsx-space-xl));
9743
9994
  border-radius: var(--dsx-rounded-xl);
9744
9995
  border: var(--dsx-border-width-sm) solid var(--dsx-panel-border-color);
9745
9996
  background: var(--dsx-color-panel-translucent);
@@ -9760,6 +10011,11 @@ textarea {
9760
10011
  align-items: center;
9761
10012
  gap: var(--dsx-space-sm);
9762
10013
  padding: var(--dsx-space-sm) var(--dsx-space-md);
10014
+ padding-right: var(--dsx-space-2xl);
10015
+ flex-shrink: 0;
10016
+ min-height: var(--dsx-size-xl);
10017
+ box-sizing: border-box;
10018
+ touch-action: none;
9763
10019
  border-bottom: var(--dsx-border-width-sm) solid var(--dsx-color-outline-variant);
9764
10020
  background: var(--dsx-color-surface-raised);
9765
10021
  cursor: grab;
@@ -9772,8 +10028,8 @@ textarea {
9772
10028
 
9773
10029
  .dsx-floating-panel__close {
9774
10030
  position: absolute;
9775
- top: var(--dsx-space-xs);
9776
- right: var(--dsx-space-xs);
10031
+ top: var(--dsx-space-sm);
10032
+ right: var(--dsx-space-sm);
9777
10033
  display: inline-flex;
9778
10034
  align-items: center;
9779
10035
  justify-content: center;
@@ -9790,18 +10046,31 @@ textarea {
9790
10046
  background var(--dsx-motion-duration-fast) var(--dsx-motion-easing-in-out);
9791
10047
  }
9792
10048
 
9793
- .dsx-floating-panel__close:hover {
10049
+ .dsx-floating-panel__close:hover,
10050
+ .dsx-floating-panel__close:active {
9794
10051
  background: var(--dsx-effect-hover-layer);
9795
10052
  color: var(--dsx-color-on-surface);
9796
10053
  }
9797
10054
 
10055
+ .dsx-floating-panel__header:focus-visible,
10056
+ .dsx-floating-panel__handle:focus-visible,
10057
+ .dsx-floating-panel__close:focus-visible {
10058
+ outline: none;
10059
+ box-shadow: inset var(--dsx-shadow-focus-ring);
10060
+ }
10061
+
9798
10062
  .dsx-floating-panel__content {
9799
10063
  flex: 1;
10064
+ min-height: 0;
9800
10065
  overflow: auto;
9801
10066
  padding: var(--dsx-space-md);
9802
10067
  }
9803
10068
 
9804
10069
  .dsx-floating-panel__handle {
10070
+ display: flex;
10071
+ align-items: center;
10072
+ justify-content: center;
10073
+ color: var(--dsx-color-on-surface-variant);
9805
10074
  position: absolute;
9806
10075
  bottom: 0;
9807
10076
  right: 0;
@@ -9809,37 +10078,43 @@ textarea {
9809
10078
  height: var(--dsx-space-lg);
9810
10079
  cursor: nwse-resize;
9811
10080
  z-index: var(--dsx-z-index-elevated);
10081
+ touch-action: none;
10082
+ }
10083
+
10084
+ .dsx-floating-panel__handle--se {
10085
+ cursor: nwse-resize;
9812
10086
  }
9813
10087
 
9814
- .dsx-floating-panel__handle::before {
10088
+ .dsx-floating-panel__resize-grip::before,
10089
+ .dsx-floating-panel__resize-grip::after {
9815
10090
  content: '';
9816
10091
  position: absolute;
9817
- bottom: var(--dsx-space-xs);
9818
10092
  right: var(--dsx-space-xs);
9819
- width: var(--dsx-space-sm);
9820
- height: var(--dsx-space-sm);
9821
- border-right: var(--dsx-border-width-md) solid var(--dsx-color-on-surface-variant);
9822
- border-bottom: var(--dsx-border-width-md) solid var(--dsx-color-on-surface-variant);
9823
- border-radius: 0 0 var(--dsx-rounded-sm) 0;
9824
- opacity: var(--dsx-opacity-muted);
9825
- transition: opacity var(--dsx-motion-duration-fast, 150ms) var(--dsx-motion-easing-standard, ease);
10093
+ height: var(--dsx-border-width-sm);
10094
+ background: currentColor;
10095
+ transform: rotate(-45deg);
10096
+ transform-origin: right bottom;
9826
10097
  }
9827
10098
 
9828
- .dsx-floating-panel__handle:hover::before {
9829
- opacity: 1;
10099
+ .dsx-floating-panel__resize-grip::before {
10100
+ width: var(--dsx-space-sm);
10101
+ bottom: var(--dsx-space-sm);
9830
10102
  }
9831
10103
 
9832
- .dsx-floating-panel__handle--se {
9833
- cursor: nwse-resize;
10104
+ .dsx-floating-panel__resize-grip::after {
10105
+ width: var(--dsx-space-xs);
10106
+ bottom: var(--dsx-space-xs);
9834
10107
  }
9835
10108
 
10109
+ .dsx-floating-panel__handle--s .dsx-icon { transform: rotate(90deg); }
10110
+
9836
10111
  .dsx-floating-panel__handle--s {
9837
10112
  cursor: ns-resize;
9838
10113
  bottom: 0;
9839
10114
  right: 50%;
9840
10115
  transform: translateX(50%);
9841
10116
  width: var(--dsx-space-xl);
9842
- height: var(--dsx-space-sm);
10117
+ height: var(--dsx-size-md);
9843
10118
  }
9844
10119
 
9845
10120
  .dsx-floating-panel__handle--e {
@@ -9847,10 +10122,15 @@ textarea {
9847
10122
  right: 0;
9848
10123
  bottom: 50%;
9849
10124
  transform: translateY(50%);
9850
- width: var(--dsx-space-sm);
10125
+ width: var(--dsx-size-md);
9851
10126
  height: var(--dsx-space-xl);
9852
10127
  }
9853
10128
 
10129
+ @media (prefers-reduced-motion: reduce) {
10130
+ .dsx-floating-panel,
10131
+ .dsx-floating-panel__close { transition: none; }
10132
+ }
10133
+
9854
10134
  .dsx-input-group {
9855
10135
  display: flex;
9856
10136
  align-items: stretch;
@@ -10782,6 +11062,7 @@ textarea {
10782
11062
 
10783
11063
  .dsx-qr-code {
10784
11064
  display: inline-flex;
11065
+ flex-shrink: 0;
10785
11066
  align-items: center;
10786
11067
  justify-content: center;
10787
11068
  padding: var(--dsx-space-md);
@@ -10793,6 +11074,8 @@ textarea {
10793
11074
  .dsx-qr-code svg,
10794
11075
  .dsx-qr-code:where(.dsx-qr-code-size-sm, .dsx-qr-code-size-md, .dsx-qr-code-size-lg) svg {
10795
11076
  display: block;
11077
+ flex-shrink: 0;
11078
+ max-width: none;
10796
11079
  border-radius: var(--dsx-rounded-sm);
10797
11080
  }
10798
11081
 
@@ -10807,11 +11090,11 @@ textarea {
10807
11090
  border-color: var(--dsx-color-high-contrast-border);
10808
11091
  }
10809
11092
 
10810
- .dsx-qr-code[data-high-contrast='true'] svg rect[fill] {
11093
+ .dsx-qr-code[data-high-contrast='true'] :where(svg > path:last-of-type) {
10811
11094
  fill: var(--dsx-color-high-contrast);
10812
11095
  }
10813
11096
 
10814
- .dsx-qr-code[data-high-contrast='true'] svg rect[fill]:first-of-type {
11097
+ .dsx-qr-code[data-high-contrast='true'] :where(svg > path:first-of-type) {
10815
11098
  fill: var(--dsx-color-surface-raised);
10816
11099
  }
10817
11100
 
@@ -10830,6 +11113,8 @@ textarea {
10830
11113
  display: flex;
10831
11114
  width: 100%;
10832
11115
  height: 100%;
11116
+ min-width: 0;
11117
+ min-height: 0;
10833
11118
  }
10834
11119
 
10835
11120
  .dsx-resizable-group[data-orientation='horizontal'] {
@@ -10852,6 +11137,7 @@ textarea {
10852
11137
  align-items: center;
10853
11138
  justify-content: center;
10854
11139
  position: relative;
11140
+ z-index: var(--dsx-z-index-elevated);
10855
11141
  background-color: transparent;
10856
11142
  user-select: none;
10857
11143
  touch-action: none;
@@ -10879,7 +11165,7 @@ textarea {
10879
11165
  }
10880
11166
 
10881
11167
  .dsx-resizable-group[data-orientation='horizontal'] > .dsx-resizable-handle {
10882
- width: var(--dsx-resizable-handle-thickness-active);
11168
+ width: max(var(--dsx-size-md), var(--dsx-resizable-handle-thickness-active));
10883
11169
  cursor: col-resize;
10884
11170
  }
10885
11171
 
@@ -10889,7 +11175,7 @@ textarea {
10889
11175
  }
10890
11176
 
10891
11177
  .dsx-resizable-group[data-orientation='vertical'] > .dsx-resizable-handle {
10892
- height: var(--dsx-resizable-handle-thickness-active);
11178
+ height: max(var(--dsx-size-md), var(--dsx-resizable-handle-thickness-active));
10893
11179
  cursor: row-resize;
10894
11180
  }
10895
11181
 
@@ -10926,7 +11212,7 @@ textarea {
10926
11212
  }
10927
11213
 
10928
11214
  .dsx-resizable-group-direction-horizontal > .dsx-resizable-handle {
10929
- width: var(--dsx-resizable-handle-thickness-active);
11215
+ width: max(var(--dsx-size-md), var(--dsx-resizable-handle-thickness-active));
10930
11216
  cursor: col-resize;
10931
11217
  }
10932
11218
 
@@ -10936,7 +11222,7 @@ textarea {
10936
11222
  }
10937
11223
 
10938
11224
  .dsx-resizable-group-direction-vertical > .dsx-resizable-handle {
10939
- height: var(--dsx-resizable-handle-thickness-active);
11225
+ height: max(var(--dsx-size-md), var(--dsx-resizable-handle-thickness-active));
10940
11226
  cursor: row-resize;
10941
11227
  }
10942
11228
 
@@ -10954,6 +11240,19 @@ textarea {
10954
11240
  border-radius: var(--dsx-resizable-grip-radius);
10955
11241
  }
10956
11242
 
11243
+ .dsx-resizable-handle:focus-visible {
11244
+ outline: none;
11245
+ box-shadow: var(--dsx-shadow-focus-ring);
11246
+ z-index: var(--dsx-z-index-elevated);
11247
+ }
11248
+
11249
+ @media (prefers-reduced-motion: reduce) {
11250
+ .dsx-resizable-handle,
11251
+ .dsx-resizable-handle::before {
11252
+ transition: none;
11253
+ }
11254
+ }
11255
+
10957
11256
  .dsx-resizable-group-direction-horizontal > .dsx-resizable-handle-grip .dsx-resizable-handle__grip {
10958
11257
  width: var(--dsx-space-xs);
10959
11258
  height: var(--dsx-size-xs);
@@ -11005,11 +11304,15 @@ textarea {
11005
11304
  box-shadow: none;
11006
11305
  }
11007
11306
 
11008
- .dsx-rich-text-editor__toolbar {
11307
+ .dsx-rich-text-editor__toolbar.dsx-toolbar {
11009
11308
  display: flex;
11010
11309
  flex-wrap: wrap;
11011
11310
  align-items: center;
11012
- gap: var(--dsx-space-xs);
11311
+ gap: var(--dsx-space-sm) var(--dsx-space-md);
11312
+ width: 100%;
11313
+ border: 0;
11314
+ border-radius: 0;
11315
+ box-shadow: none;
11013
11316
  padding: var(--dsx-space-sm) var(--dsx-space-md);
11014
11317
  border-bottom: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
11015
11318
  background: var(--dsx-color-surface-editor-toolbar);
@@ -11020,13 +11323,15 @@ textarea {
11020
11323
 
11021
11324
  .dsx-rich-text-editor__toolbar-group {
11022
11325
  display: inline-flex;
11326
+ flex-wrap: wrap;
11327
+ max-width: 100%;
11023
11328
  min-width: 0;
11024
11329
  align-items: center;
11025
11330
  gap: var(--dsx-space-xs);
11026
- padding: var(--dsx-space-xs);
11027
- border: var(--dsx-border-width-sm) solid var(--dsx-color-panel-border-translucent);
11331
+ padding: 0;
11332
+ border: 0;
11028
11333
  border-radius: var(--dsx-rounded-md);
11029
- background: var(--dsx-effect-gray-alpha-3);
11334
+ background: transparent;
11030
11335
  }
11031
11336
 
11032
11337
  .dsx-rich-text-editor__toolbar-label {
@@ -11040,13 +11345,14 @@ textarea {
11040
11345
  }
11041
11346
 
11042
11347
  .dsx-rich-text-editor__toolbar-button {
11043
- min-height: var(--dsx-density-control-height-sm, var(--dsx-size-lg));
11044
- min-width: var(--dsx-density-control-height-sm, var(--dsx-size-lg));
11348
+ min-height: var(--dsx-density-control-height-lg);
11349
+ min-width: var(--dsx-density-control-height-lg);
11045
11350
  padding-inline: var(--dsx-space-xs);
11046
11351
  white-space: nowrap;
11047
11352
  }
11048
11353
 
11049
- .dsx-rich-text-editor__toolbar-button[data-active='true'] {
11354
+ .dsx-rich-text-editor__toolbar-button[data-active='true'],
11355
+ .dsx-rich-text-editor__toolbar-button[aria-pressed='true'] {
11050
11356
  background: var(--dsx-color-high-contrast);
11051
11357
  color: var(--dsx-color-on-high-contrast);
11052
11358
  }
@@ -11075,6 +11381,7 @@ textarea {
11075
11381
  position: absolute;
11076
11382
  inset-block-start: var(--dsx-space-md);
11077
11383
  inset-inline-start: var(--dsx-space-md);
11384
+ inset-inline-end: var(--dsx-space-md);
11078
11385
  pointer-events: none;
11079
11386
  color: var(--dsx-color-on-surface-variant);
11080
11387
  font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
@@ -11087,6 +11394,8 @@ textarea {
11087
11394
  }
11088
11395
 
11089
11396
  .dsx-rich-text-editor__prosemirror {
11397
+ min-width: 0;
11398
+ overflow-wrap: anywhere;
11090
11399
  min-height: var(--dsx-rich-text-editor-min-height, 220px);
11091
11400
  padding: var(--dsx-space-md);
11092
11401
  outline: none;
@@ -11144,7 +11453,7 @@ textarea {
11144
11453
  margin: var(--dsx-space-md) 0;
11145
11454
  padding: var(--dsx-space-sm) var(--dsx-space-md);
11146
11455
  padding-inline-start: var(--dsx-space-lg);
11147
- border-inline-start: var(--dsx-border-width-lg) solid var(--dsx-color-primary);
11456
+ border-inline-start: var(--dsx-border-width-sm) solid var(--dsx-color-accent-border);
11148
11457
  border-radius: 0 var(--dsx-rounded-md) var(--dsx-rounded-md) 0;
11149
11458
  background: var(--dsx-effect-hover-primary);
11150
11459
  color: var(--dsx-color-on-surface-variant);
@@ -11162,9 +11471,9 @@ textarea {
11162
11471
  .dsx-rich-text-editor__prosemirror code {
11163
11472
  border-radius: var(--dsx-rounded-sm);
11164
11473
  padding: var(--dsx-space-0-5) var(--dsx-space-xs);
11165
- background: var(--dsx-color-background);
11166
- color: var(--dsx-color-primary-container);
11167
- font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
11474
+ background: var(--dsx-code-soft-background);
11475
+ color: var(--dsx-color-on-surface);
11476
+ font-family: var(--dsx-typography-code-font-family);
11168
11477
  font-size: 0.92em;
11169
11478
  }
11170
11479
 
@@ -11173,8 +11482,8 @@ textarea {
11173
11482
  margin: var(--dsx-space-md) 0;
11174
11483
  padding: var(--dsx-space-md);
11175
11484
  border-radius: var(--dsx-rounded-md);
11176
- background: var(--dsx-color-background);
11177
- color: var(--dsx-color-on-background);
11485
+ background: var(--dsx-code-soft-background);
11486
+ color: var(--dsx-color-on-surface);
11178
11487
  }
11179
11488
 
11180
11489
  .dsx-rich-text-editor__prosemirror pre code {
@@ -11183,6 +11492,19 @@ textarea {
11183
11492
  color: inherit;
11184
11493
  }
11185
11494
 
11495
+ .dsx-rich-text-editor__prosemirror img {
11496
+ max-width: 100%;
11497
+ height: auto;
11498
+ }
11499
+
11500
+ @media (prefers-reduced-motion: reduce) {
11501
+ .dsx-rich-text-editor,
11502
+ .dsx-rich-text-editor__toolbar,
11503
+ .dsx-rich-text-editor__area {
11504
+ transition: none;
11505
+ }
11506
+ }
11507
+
11186
11508
  .dsx-rich-text-editor__status {
11187
11509
  display: flex;
11188
11510
  align-items: center;
@@ -11214,6 +11536,32 @@ textarea {
11214
11536
  color: var(--dsx-color-on-high-contrast);
11215
11537
  }
11216
11538
 
11539
+ .dsx-rich-text-editor__toolbar-group:empty { display: none; }
11540
+
11541
+ .dsx-editor-tools__popover { display: grid; gap: var(--dsx-space-sm); min-width: 0; width: min(var(--dsx-dialog-content-width-sm), var(--radix-popover-content-available-width)); }
11542
+
11543
+ .dsx-editor-tools__actions { display: flex; flex-wrap: wrap; gap: var(--dsx-space-sm); }
11544
+
11545
+ .dsx-editor-tools__popover.dsx-editor-tools__link { width: min(var(--dsx-rich-text-editor-link-popover-width), var(--radix-popover-content-available-width)); }
11546
+
11547
+ .dsx-editor-tools__link .dsx-popover__title { font-family: var(--dsx-typography-label-large-font-family), sans-serif; font-size: var(--dsx-typography-label-large-font-size); line-height: var(--dsx-typography-label-large-line-height); }
11548
+
11549
+ .dsx-editor-tools__link .dsx-button { min-height: var(--dsx-size-2xl); }
11550
+
11551
+ .dsx-editor-tools__choices { display: grid; gap: var(--dsx-space-xs); max-height: var(--radix-popover-content-available-height); overflow-y: auto; min-width: 0; }
11552
+
11553
+ .dsx-editor-tools__choices .dsx-button { justify-content: flex-start; text-align: start; white-space: normal; }
11554
+
11555
+ .dsx-editor-tools__choices small { display: block; color: var(--dsx-color-on-surface-variant); overflow-wrap: anywhere; }
11556
+
11557
+ .dsx-editor-token { display: inline; padding: var(--dsx-space-0-5) var(--dsx-space-xs); border: var(--dsx-border-width-sm) solid var(--dsx-color-accent-border); border-radius: var(--dsx-rounded-sm); background: var(--dsx-color-primary-container); color: var(--dsx-color-on-primary-container); white-space: normal; }
11558
+
11559
+ .dsx-editor-token--unknown { border-style: dashed; border-color: var(--dsx-color-error); color: var(--dsx-color-error); background: var(--dsx-color-surface); }
11560
+
11561
+ .dsx-rich-text-editor__prosemirror h4 { font-size: var(--dsx-typography-label-large-font-size); line-height: var(--dsx-typography-label-large-line-height); }
11562
+
11563
+ .dsx-editor-tools__suggestions { display: flex; flex-wrap: wrap; width: 100%; align-items: center; gap: var(--dsx-space-sm); padding: var(--dsx-space-sm); border: var(--dsx-border-width-sm) solid var(--dsx-color-outline); border-radius: var(--dsx-rounded-md); background: var(--dsx-color-surface-raised); }
11564
+
11217
11565
  .dsx-scroll-area {
11218
11566
  box-sizing: border-box;
11219
11567
  position: relative;
@@ -11244,6 +11592,18 @@ textarea {
11244
11592
  border-radius: inherit;
11245
11593
  }
11246
11594
 
11595
+ .dsx-scroll-area__viewport:focus-visible {
11596
+ outline: none;
11597
+ box-shadow: inset 0 0 0 var(--dsx-border-width-md) var(--dsx-color-primary);
11598
+ }
11599
+
11600
+ @media (prefers-reduced-motion: reduce) {
11601
+ .dsx-scroll-area__scrollbar,
11602
+ .dsx-scroll-area__thumb {
11603
+ transition: none;
11604
+ }
11605
+ }
11606
+
11247
11607
  .dsx-scroll-area__scrollbar {
11248
11608
  display: flex;
11249
11609
  user-select: none;
@@ -11484,6 +11844,35 @@ textarea {
11484
11844
  pointer-events: none;
11485
11845
  }
11486
11846
 
11847
+ /* variant="floating" — the panel is a glass surface set off from the viewport edge, with the page
11848
+ beside it. The gap is the provider's own padding and flex gap, never a sidebar margin: the
11849
+ hover-preview and pin-docking rules above animate margin-inline-end and width, and a margin here
11850
+ would fight them. The panel reuses the glass surface tokens the other floating panels use. Source
11851
+ order matters below: these tie the ambient rule at (0,2,0) and must come after it so the glass
11852
+ background wins while the ambient gradient still paints over it. The mobile drawer never carries
11853
+ this variant (it reads `default` there), so no mobile query is needed. */
11854
+
11855
+ .dsx-sidebar-provider:where([data-variant='floating']) {
11856
+ gap: var(--dsx-space-3);
11857
+ padding: var(--dsx-space-3);
11858
+ }
11859
+
11860
+ .dsx-sidebar[data-variant='floating'] {
11861
+ top: var(--dsx-space-3);
11862
+ height: calc(100dvh - var(--dsx-space-3) - var(--dsx-space-3));
11863
+ border: var(--dsx-border-width-sm) solid var(--dsx-panel-border-color);
11864
+ border-radius: var(--dsx-rounded-xl);
11865
+ background-color: var(--dsx-color-panel-translucent);
11866
+ backdrop-filter: var(--dsx-effect-panel-glass-backdrop-filter);
11867
+ box-shadow: var(--dsx-panel-shadow);
11868
+ }
11869
+
11870
+ /* A hidden offcanvas panel is `width: 0`; its border would still leave a sliver. */
11871
+
11872
+ .dsx-sidebar[data-variant='floating']:where([data-collapsible='offcanvas'][data-state='collapsed']) {
11873
+ border-width: 0;
11874
+ }
11875
+
11487
11876
  .dsx-sidebar__recovery-rail {
11488
11877
  display: inline-flex;
11489
11878
  align-items: center;
@@ -11944,6 +12333,7 @@ textarea {
11944
12333
  justify-content: flex-start;
11945
12334
  align-items: center;
11946
12335
  gap: var(--dsx-space-sm);
12336
+ border-radius: var(--dsx-rounded-sm);
11947
12337
  }
11948
12338
 
11949
12339
  .dsx-sidebar__menu-sub-trigger:hover {
@@ -12200,12 +12590,11 @@ textarea {
12200
12590
  }
12201
12591
 
12202
12592
  .dsx-sonner__toast {
12203
- display: flex;
12204
- flex-direction: row;
12205
- align-items: flex-start;
12206
- justify-content: flex-start;
12207
- column-gap: var(--dsx-space-md);
12208
- padding: var(--dsx-space-sm) var(--dsx-space-md);
12593
+ display: grid;
12594
+ grid-template-columns: auto minmax(0, 1fr) auto;
12595
+ align-items: start;
12596
+ gap: var(--dsx-space-sm);
12597
+ padding: var(--dsx-space-md);
12209
12598
  background-color: var(--dsx-color-surface);
12210
12599
  border-radius: var(--dsx-rounded-md);
12211
12600
  border: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
@@ -12238,7 +12627,7 @@ textarea {
12238
12627
  font-family: var(--dsx-typography-label-large-font-family), sans-serif;
12239
12628
  font-size: var(--dsx-typography-label-large-font-size);
12240
12629
  font-weight: var(--dsx-typography-label-large-font-weight);
12241
- line-height: var(--dsx-typography-label-large-line-height);
12630
+ line-height: var(--dsx-size-md);
12242
12631
  letter-spacing: var(--dsx-typography-label-large-letter-spacing);
12243
12632
  color: var(--dsx-color-on-surface);
12244
12633
  margin: 0;
@@ -12263,6 +12652,9 @@ textarea {
12263
12652
  color: var(--dsx-color-on-surface-variant);
12264
12653
  padding: var(--dsx-space-xs);
12265
12654
  border-radius: var(--dsx-rounded-sm);
12655
+ display: inline-flex;
12656
+ align-items: center;
12657
+ justify-content: center;
12266
12658
  }
12267
12659
 
12268
12660
  .dsx-sonner__action:hover,
@@ -12281,15 +12673,78 @@ textarea {
12281
12673
  color: var(--dsx-color-on-error-container);
12282
12674
  }
12283
12675
 
12284
- @media (max-width: 640px) {
12285
- [data-sonner-toaster] {
12286
- width: calc(100vw - var(--dsx-size-md));
12287
- max-width: calc(100vw - var(--dsx-size-md));
12288
- right: var(--dsx-space-3);
12289
- left: var(--dsx-space-3);
12290
- bottom: var(--dsx-space-3);
12291
- padding: var(--dsx-space-sm);
12292
- }
12676
+ .dsx-sonner[data-sonner-toaster] {
12677
+ max-width: calc(100vw - var(--dsx-dialog-viewport-gap));
12678
+ }
12679
+
12680
+ .dsx-sonner__action,
12681
+ .dsx-sonner__cancel,
12682
+ .dsx-sonner__close {
12683
+ min-width: var(--dsx-size-md);
12684
+ min-height: var(--dsx-size-md);
12685
+ flex-shrink: 0;
12686
+ }
12687
+
12688
+ .dsx-sonner__action,
12689
+ .dsx-sonner__cancel {
12690
+ white-space: nowrap;
12691
+ grid-row: 2;
12692
+ align-self: start;
12693
+ justify-self: start;
12694
+ padding: var(--dsx-space-xs) var(--dsx-space-sm);
12695
+ min-height: var(--dsx-size-lg);
12696
+ border: var(--dsx-border-width-sm) solid currentColor;
12697
+ font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
12698
+ font-size: var(--dsx-typography-label-medium-font-size);
12699
+ font-weight: var(--dsx-typography-label-medium-font-weight);
12700
+ line-height: var(--dsx-typography-label-medium-line-height);
12701
+ }
12702
+
12703
+ .dsx-sonner__action { grid-column: 2; }
12704
+
12705
+ .dsx-sonner__cancel { grid-column: 3; }
12706
+
12707
+ .dsx-sonner__close {
12708
+ grid-column: 3;
12709
+ grid-row: 1;
12710
+ justify-self: end;
12711
+ width: var(--dsx-size-md);
12712
+ height: var(--dsx-size-md);
12713
+ padding: 0;
12714
+ }
12715
+
12716
+ .dsx-sonner__close svg { width: var(--dsx-size-sm); height: var(--dsx-size-sm); }
12717
+
12718
+ .dsx-sonner__toast [data-icon] {
12719
+ grid-column: 1;
12720
+ grid-row: 1;
12721
+ display: flex;
12722
+ align-items: center;
12723
+ justify-content: center;
12724
+ width: var(--dsx-size-md);
12725
+ height: var(--dsx-size-md);
12726
+ }
12727
+
12728
+ .dsx-sonner__toast [data-content] {
12729
+ min-width: 0;
12730
+ grid-column: 2;
12731
+ grid-row: 1;
12732
+ overflow-wrap: anywhere;
12733
+ }
12734
+
12735
+ .dsx-sonner__toast:where(:not(:has([data-icon]))) { grid-template-columns: minmax(0, 1fr) auto; }
12736
+
12737
+ .dsx-sonner__toast:where(:not(:has([data-icon]))) [data-content],
12738
+ .dsx-sonner__toast:where(:not(:has([data-icon]))) .dsx-sonner__action { grid-column: 1; }
12739
+
12740
+ .dsx-sonner__toast:where(:not(:has([data-icon]))) .dsx-sonner__close,
12741
+ .dsx-sonner__toast:where(:not(:has([data-icon]))) .dsx-sonner__cancel { grid-column: 2; }
12742
+
12743
+ .dsx-sonner__action:focus-visible,
12744
+ .dsx-sonner__cancel:focus-visible,
12745
+ .dsx-sonner__close:focus-visible {
12746
+ outline: none;
12747
+ box-shadow: var(--dsx-shadow-focus-ring);
12293
12748
  }
12294
12749
 
12295
12750
  .dsx-table {
@@ -12506,8 +12961,8 @@ textarea {
12506
12961
  }
12507
12962
 
12508
12963
  .dsx-tabs__list[data-variant='pills'] .dsx-tabs__trigger[data-state='active'] {
12509
- background: var(--dsx-color-accent-indicator);
12510
- color: var(--dsx-color-on-primary);
12964
+ background: var(--dsx-color-accent-track);
12965
+ color: var(--dsx-color-accent-contrast);
12511
12966
  box-shadow: none;
12512
12967
  border-radius: var(--dsx-rounded-full);
12513
12968
  }
@@ -12516,7 +12971,12 @@ textarea {
12516
12971
  margin-top: var(--dsx-space-md);
12517
12972
  }
12518
12973
 
12974
+ .dsx-tabs { min-width: 0; max-width: 100%; }
12975
+
12976
+ .dsx-tabs[data-orientation='vertical'] { display: flex; flex-wrap: wrap; gap: var(--dsx-space-md); align-items: flex-start; }
12977
+
12519
12978
  .dsx-tabs__list {
12979
+ position: relative;
12520
12980
  display: inline-flex;
12521
12981
  align-items: center;
12522
12982
  width: fit-content;
@@ -12527,8 +12987,8 @@ textarea {
12527
12987
  min-width: 0;
12528
12988
  max-width: 100%;
12529
12989
  overflow-x: auto;
12530
- border-bottom: var(--dsx-border-width-md, var(--dsx-border-width-sm)) solid var(--dsx-control-separator-color);
12531
- gap: var(--dsx-space-xs);
12990
+ border-bottom: var(--dsx-boundary-divider-width) solid var(--dsx-control-separator-color);
12991
+ gap: 0;
12532
12992
  }
12533
12993
 
12534
12994
  .dsx-tabs__list[data-variant='pills'] {
@@ -12572,14 +13032,14 @@ textarea {
12572
13032
 
12573
13033
  /* ---- size variants ---- */
12574
13034
 
12575
- [data-size='sm'] .dsx-tabs__trigger {
13035
+ .dsx-tabs[data-size='sm'] > .dsx-tabs__list > .dsx-tabs__trigger {
12576
13036
  padding: var(--dsx-space-xs) var(--dsx-space-sm);
12577
13037
  font-size: var(--dsx-typography-label-medium-font-size);
12578
13038
  font-weight: var(--dsx-typography-label-medium-font-weight);
12579
13039
  line-height: var(--dsx-typography-label-medium-line-height);
12580
13040
  }
12581
13041
 
12582
- [data-size='lg'] .dsx-tabs__trigger {
13042
+ .dsx-tabs[data-size='lg'] > .dsx-tabs__list > .dsx-tabs__trigger {
12583
13043
  padding: var(--dsx-space-md) var(--dsx-space-lg);
12584
13044
  font-size: var(--dsx-typography-label-large-font-size);
12585
13045
  font-weight: var(--dsx-typography-label-large-font-weight);
@@ -12591,15 +13051,71 @@ textarea {
12591
13051
  .dsx-tabs__indicator {
12592
13052
  position: absolute;
12593
13053
  bottom: 0;
12594
- height: 2px;
12595
- background-color: var(--dsx-color-primary);
12596
- transition: left var(--dsx-motion-duration-normal) var(--dsx-motion-easing-standard), width var(--dsx-motion-duration-normal) var(--dsx-motion-easing-standard);
13054
+ height: var(--dsx-boundary-selected-width);
13055
+ background-color: var(--dsx-color-accent-indicator);
13056
+ transition: left var(--dsx-motion-duration-normal) var(--dsx-motion-easing-standard), width var(--dsx-motion-duration-normal) var(--dsx-motion-easing-standard), top var(--dsx-motion-duration-normal) var(--dsx-motion-easing-standard), height var(--dsx-motion-duration-normal) var(--dsx-motion-easing-standard);
13057
+ }
13058
+
13059
+ .dsx-tabs__list[data-orientation='vertical'] {
13060
+ flex-direction: column;
13061
+ align-items: stretch;
13062
+ border-bottom: 0;
13063
+ border-inline-end: var(--dsx-boundary-divider-width) solid var(--dsx-control-separator-color);
13064
+ }
13065
+
13066
+ .dsx-tabs__list[data-orientation='vertical'][data-variant='pills'] { border-inline-end: 0; }
13067
+
13068
+ .dsx-tabs__list[data-orientation='vertical'] .dsx-tabs__indicator { bottom: auto; width: var(--dsx-boundary-selected-width); }
13069
+
13070
+ .dsx-tabs__list:has(> .dsx-tabs__indicator) > .dsx-tabs__trigger[data-state='active'] { box-shadow: none; }
13071
+
13072
+ .dsx-tabs__content, .dsx-tabs__content-group { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
13073
+
13074
+ .dsx-tabs[data-orientation='vertical'] > .dsx-tabs__content,
13075
+ .dsx-tabs[data-orientation='vertical'] > .dsx-tabs__content-group { flex: 1 1 50%; min-width: var(--dsx-size-2xl); margin-top: 0; padding-top: 0; }
13076
+
13077
+ .dsx-tabs__trigger:focus-visible { box-shadow: inset var(--dsx-shadow-focus-ring); }
13078
+
13079
+ @media (prefers-reduced-motion: reduce) { .dsx-tabs__indicator { transition: none; } }
13080
+
13081
+ /* Underlined tabs are contiguous; pills alone carry a selected fill. */
13082
+
13083
+ .dsx-tabs__list[data-variant='default'] > .dsx-tabs__trigger[data-state='active'] {
13084
+ color: var(--dsx-color-accent-indicator);
13085
+ background: transparent;
13086
+ box-shadow: none;
13087
+ }
13088
+
13089
+ .dsx-tabs__list:where([data-variant='default']):where(:not(:has(> .dsx-tabs__indicator))) > .dsx-tabs__trigger[data-state='active']::after {
13090
+ content: '';
13091
+ position: absolute;
13092
+ inset-inline: 0;
13093
+ bottom: 0;
13094
+ height: var(--dsx-boundary-selected-width);
13095
+ background: var(--dsx-color-accent-indicator);
13096
+ }
13097
+
13098
+ .dsx-tabs__list:where([data-orientation='vertical'][data-variant='default']):where(:not(:has(> .dsx-tabs__indicator))) > .dsx-tabs__trigger[data-state='active']::after {
13099
+ inset-inline: auto;
13100
+ inset-inline-start: 0;
13101
+ top: 0;
13102
+ bottom: 0;
13103
+ width: var(--dsx-boundary-selected-width);
13104
+ height: auto;
12597
13105
  }
12598
13106
 
13107
+ .dsx-tabs__content-group > .dsx-tabs__content { margin-top: 0; }
13108
+
13109
+ .dsx-tabs__trigger { font-weight: var(--dsx-typography-label-large-font-weight); line-height: var(--dsx-typography-label-large-line-height); }
13110
+
13111
+ .dsx-tabs__list[data-variant='default'] > .dsx-tabs__trigger:focus-visible { box-shadow: inset var(--dsx-shadow-focus-ring); }
13112
+
12599
13113
  /* TabNav — tab navigation for routing (uses <a> tags instead of tab panels) */
12600
13114
 
12601
13115
  .dsx-tab-nav {
12602
13116
  display: block;
13117
+ min-width: 0;
13118
+ max-width: 100%;
12603
13119
  }
12604
13120
 
12605
13121
  .dsx-tab-nav__list {
@@ -12609,16 +13125,20 @@ textarea {
12609
13125
  padding: 0;
12610
13126
  margin: 0;
12611
13127
  list-style: none;
13128
+ flex-wrap: wrap;
13129
+ max-width: 100%;
12612
13130
  }
12613
13131
 
12614
13132
  .dsx-tab-nav__list-item {
12615
13133
  display: inline-flex;
13134
+ min-width: 0;
13135
+ max-width: 100%;
12616
13136
  }
12617
13137
 
12618
13138
  /* Default variant — underline style */
12619
13139
 
12620
13140
  .dsx-tab-nav[data-variant='default'] .dsx-tab-nav__list {
12621
- border-bottom: var(--dsx-border-width-md) solid var(--dsx-color-outline-variant);
13141
+ border-bottom: var(--dsx-boundary-divider-width) solid var(--dsx-color-outline-variant);
12622
13142
  padding-bottom: 0;
12623
13143
  }
12624
13144
 
@@ -12634,6 +13154,10 @@ textarea {
12634
13154
  font-size: var(--dsx-typography-label-large-font-size);
12635
13155
  font-weight: var(--dsx-typography-label-large-font-weight);
12636
13156
  text-decoration: none;
13157
+ min-height: var(--dsx-size-md);
13158
+ min-width: 0;
13159
+ overflow-wrap: anywhere;
13160
+ box-sizing: border-box;
12637
13161
  cursor: pointer;
12638
13162
  transition:
12639
13163
  background-color var(--dsx-motion-duration-fast, 150ms) var(--dsx-motion-easing-standard, ease),
@@ -12653,7 +13177,7 @@ textarea {
12653
13177
  /* Active state — default (underline) */
12654
13178
 
12655
13179
  .dsx-tab-nav[data-variant='default'] .dsx-tab-nav__link[data-active='true'] {
12656
- color: var(--dsx-color-primary);
13180
+ color: var(--dsx-color-accent-indicator);
12657
13181
  background: transparent;
12658
13182
  position: relative;
12659
13183
  }
@@ -12661,11 +13185,11 @@ textarea {
12661
13185
  .dsx-tab-nav[data-variant='default'] .dsx-tab-nav__link[data-active='true']::after {
12662
13186
  content: '';
12663
13187
  position: absolute;
12664
- bottom: calc(-1 * var(--dsx-border-width-md) - 1px);
13188
+ bottom: calc(-1 * var(--dsx-boundary-divider-width));
12665
13189
  left: 0;
12666
13190
  right: 0;
12667
- height: var(--dsx-border-width-md);
12668
- background: var(--dsx-color-primary);
13191
+ height: var(--dsx-boundary-selected-width);
13192
+ background: var(--dsx-color-accent-indicator);
12669
13193
  border-radius: var(--dsx-rounded-full);
12670
13194
  }
12671
13195
 
@@ -12684,33 +13208,33 @@ textarea {
12684
13208
  }
12685
13209
 
12686
13210
  .dsx-tab-nav[data-variant='pills'] .dsx-tab-nav__link[data-active='true'] {
12687
- color: var(--dsx-color-on-primary);
12688
- background: var(--dsx-color-primary);
13211
+ color: var(--dsx-color-accent-contrast);
13212
+ background: var(--dsx-color-accent-track);
12689
13213
  }
12690
13214
 
12691
13215
  .dsx-tab-nav[data-variant='pills'] .dsx-tab-nav__link[data-active='true']:hover {
12692
- background: var(--dsx-color-primary);
13216
+ background: var(--dsx-color-accent-track);
12693
13217
  }
12694
13218
 
12695
13219
  /* Underline variant — same as default but without the border on the list */
12696
13220
 
12697
13221
  .dsx-tab-nav[data-variant='underline'] .dsx-tab-nav__list {
12698
- border-bottom: var(--dsx-border-width-md) solid var(--dsx-color-outline-variant);
13222
+ border-bottom: 0;
12699
13223
  }
12700
13224
 
12701
13225
  .dsx-tab-nav[data-variant='underline'] .dsx-tab-nav__link[data-active='true'] {
12702
- color: var(--dsx-color-primary);
13226
+ color: var(--dsx-color-accent-indicator);
12703
13227
  position: relative;
12704
13228
  }
12705
13229
 
12706
13230
  .dsx-tab-nav[data-variant='underline'] .dsx-tab-nav__link[data-active='true']::after {
12707
13231
  content: '';
12708
13232
  position: absolute;
12709
- bottom: calc(-1 * var(--dsx-border-width-md) - 1px);
13233
+ bottom: calc(-1 * var(--dsx-boundary-divider-width));
12710
13234
  left: 0;
12711
13235
  right: 0;
12712
- height: 2px;
12713
- background: var(--dsx-color-primary);
13236
+ height: var(--dsx-boundary-selected-width);
13237
+ background: var(--dsx-color-accent-indicator);
12714
13238
  border-radius: var(--dsx-rounded-full);
12715
13239
  }
12716
13240
 
@@ -12732,6 +13256,8 @@ textarea {
12732
13256
  }
12733
13257
  }
12734
13258
 
13259
+ .dsx-tab-nav[data-variant='underline'] .dsx-tab-nav__link[data-active='true']::after { bottom: 0; }
13260
+
12735
13261
  .dsx-tags-input {
12736
13262
  display: flex;
12737
13263
  flex-wrap: wrap;
@@ -13237,11 +13763,15 @@ textarea {
13237
13763
  }
13238
13764
 
13239
13765
  .dsx-toast {
13240
- display: flex;
13241
- flex-direction: row;
13242
- align-items: flex-start;
13243
- justify-content: flex-start;
13244
- column-gap: var(--dsx-space-md);
13766
+ display: grid;
13767
+ grid-template-columns: minmax(0, 1fr) auto;
13768
+ grid-template-areas:
13769
+ "title close"
13770
+ "description description"
13771
+ "action action";
13772
+ align-items: start;
13773
+ column-gap: var(--dsx-space-sm);
13774
+ row-gap: var(--dsx-space-xs);
13245
13775
  padding: var(--dsx-space-sm) var(--dsx-space-md);
13246
13776
  background-color: var(--dsx-color-surface);
13247
13777
  border-radius: var(--dsx-rounded-md);
@@ -13249,35 +13779,24 @@ textarea {
13249
13779
  box-shadow: var(--dsx-shadow-elevation-5); /* Spotlight (B4 Q3): below dialogs, above all menus */
13250
13780
  }
13251
13781
 
13252
- /* Predetermined slot placement for action-bearing toasts: without it all
13253
- four slots land as flex siblings in one row, so title + description sit
13254
- side by side and squeeze the action (destructive story). Text stacks in
13255
- column one, action pins center-right, close top-right — no consumer
13256
- wrapper needed. Action-less toasts keep the flex row above untouched. */
13257
-
13258
- .dsx-toast:has(.dsx-toast__action) {
13259
- display: grid;
13260
- grid-template-columns: minmax(0, 1fr) auto auto;
13261
- grid-template-areas:
13262
- "title action close"
13263
- "description action close";
13264
- align-items: center;
13265
- }
13266
-
13267
- .dsx-toast:has(.dsx-toast__action) .dsx-toast__title {
13782
+ .dsx-toast__title {
13268
13783
  grid-area: title;
13784
+ min-width: 0;
13785
+ overflow-wrap: anywhere;
13269
13786
  }
13270
13787
 
13271
- .dsx-toast:has(.dsx-toast__action) .dsx-toast__description {
13788
+ .dsx-toast__description {
13272
13789
  grid-area: description;
13790
+ min-width: 0;
13791
+ overflow-wrap: anywhere;
13273
13792
  }
13274
13793
 
13275
- .dsx-toast:has(.dsx-toast__action) .dsx-toast__action {
13794
+ .dsx-toast__action {
13276
13795
  grid-area: action;
13277
- align-self: center;
13796
+ justify-self: start;
13278
13797
  }
13279
13798
 
13280
- .dsx-toast:has(.dsx-toast__action) .dsx-toast__close {
13799
+ .dsx-toast__close {
13281
13800
  grid-area: close;
13282
13801
  align-self: start;
13283
13802
  }
@@ -13327,11 +13846,17 @@ textarea {
13327
13846
  }
13328
13847
 
13329
13848
  .dsx-toast__close {
13849
+ display: inline-flex;
13850
+ align-items: center;
13851
+ justify-content: center;
13852
+ justify-self: end;
13853
+ width: var(--dsx-size-md);
13854
+ height: var(--dsx-size-md);
13330
13855
  background: transparent;
13331
13856
  border: none;
13332
13857
  cursor: pointer;
13333
13858
  color: var(--dsx-color-on-surface-variant);
13334
- padding: var(--dsx-space-xs);
13859
+ padding: 0;
13335
13860
  border-radius: var(--dsx-rounded-sm);
13336
13861
  }
13337
13862
 
@@ -13355,18 +13880,6 @@ textarea {
13355
13880
  color: inherit;
13356
13881
  }
13357
13882
 
13358
- /* Keep literal breakpoint because CSS custom properties cannot be used in this media query. */
13359
-
13360
- @media (max-width: 640px) {
13361
- .dsx-toast__viewport {
13362
- width: calc(100vw - var(--dsx-size-md));
13363
- max-width: calc(100vw - var(--dsx-size-md));
13364
- right: var(--dsx-toast-viewport-mobile-inset);
13365
- left: var(--dsx-toast-viewport-mobile-inset);
13366
- padding: var(--dsx-space-sm);
13367
- }
13368
- }
13369
-
13370
13883
  .dsx-toast-variant-destructive {
13371
13884
  background-color: var(--dsx-color-error-container);
13372
13885
  border-color: var(--dsx-color-error);
@@ -13389,6 +13902,11 @@ textarea {
13389
13902
  background: transparent;
13390
13903
  cursor: pointer;
13391
13904
  font-size: var(--dsx-typography-label-medium-font-size);
13905
+ font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
13906
+ font-weight: var(--dsx-typography-label-medium-font-weight);
13907
+ line-height: var(--dsx-typography-label-medium-line-height);
13908
+ min-height: var(--dsx-size-lg);
13909
+ color: inherit;
13392
13910
  }
13393
13911
 
13394
13912
  .dsx-toast[data-size='sm'] {
@@ -13428,6 +13946,12 @@ textarea {
13428
13946
  color: var(--dsx-color-on-surface-variant);
13429
13947
  }
13430
13948
 
13949
+ .dsx-toast__action:focus-visible,
13950
+ .dsx-toast__close:focus-visible {
13951
+ outline: none;
13952
+ box-shadow: var(--dsx-shadow-focus-ring);
13953
+ }
13954
+
13431
13955
  .dsx-toggle {
13432
13956
  box-sizing: border-box;
13433
13957
  display: inline-flex;
@@ -13630,8 +14154,8 @@ textarea {
13630
14154
  display: flex;
13631
14155
  align-items: center;
13632
14156
  justify-content: center;
13633
- width: var(--dsx-size-sm);
13634
- height: var(--dsx-size-sm);
14157
+ width: var(--dsx-size-lg);
14158
+ height: var(--dsx-size-lg);
13635
14159
  padding: 0;
13636
14160
  border: none;
13637
14161
  border-radius: var(--dsx-rounded-full);
@@ -13643,21 +14167,34 @@ textarea {
13643
14167
  }
13644
14168
 
13645
14169
  .dsx-toggle-tip__trigger:hover {
13646
- background: var(--dsx-effect-hover-layer);
13647
- color: var(--dsx-color-primary);
14170
+ background: var(--dsx-color-accent-surface);
14171
+ color: var(--dsx-color-accent-indicator);
13648
14172
  }
13649
14173
 
13650
- .dsx-toggle-tip[data-size='sm'] .dsx-toggle-tip__trigger {
13651
- width: var(--dsx-size-xs);
13652
- height: var(--dsx-size-xs);
14174
+ .dsx-toggle-tip__trigger:active,
14175
+ .dsx-toggle-tip__trigger[data-state='open'] {
14176
+ background: var(--dsx-color-accent-surface);
14177
+ color: var(--dsx-color-accent-indicator);
13653
14178
  }
13654
14179
 
13655
- .dsx-toggle-tip[data-size='lg'] .dsx-toggle-tip__trigger {
14180
+ .dsx-toggle-tip__trigger:focus-visible {
14181
+ outline: none;
14182
+ box-shadow: var(--dsx-shadow-focus-ring);
14183
+ }
14184
+
14185
+ .dsx-toggle-tip[data-size='sm'] .dsx-toggle-tip__trigger {
13656
14186
  width: var(--dsx-size-md);
13657
14187
  height: var(--dsx-size-md);
13658
14188
  }
13659
14189
 
14190
+ .dsx-toggle-tip[data-size='lg'] .dsx-toggle-tip__trigger {
14191
+ width: var(--dsx-size-xl);
14192
+ height: var(--dsx-size-xl);
14193
+ }
14194
+
13660
14195
  .dsx-toggle-tip__content {
14196
+ box-sizing: border-box;
14197
+ z-index: calc(var(--dsx-z-index-modal) + 1);
13661
14198
  padding: var(--dsx-space-sm) var(--dsx-space-md);
13662
14199
  border-radius: var(--dsx-rounded-md);
13663
14200
  background: var(--dsx-color-panel-translucent);
@@ -13671,7 +14208,43 @@ textarea {
13671
14208
  letter-spacing: var(--dsx-typography-body-small-letter-spacing);
13672
14209
  box-shadow: var(--dsx-shadow-elevation-3);
13673
14210
  animation: dsx-toggle-tip-fade var(--dsx-motion-duration-fast) var(--dsx-motion-easing-out);
13674
- max-width: 280px;
14211
+ max-width: min(var(--dsx-size-popover-max-width), var(--radix-popover-content-available-width));
14212
+ overflow: visible;
14213
+ overflow-wrap: anywhere;
14214
+ }
14215
+
14216
+ .dsx-toggle-tip__content > :where(div) {
14217
+ max-height: calc(var(--radix-popover-content-available-height) - var(--dsx-space-md) - var(--dsx-border-width-md));
14218
+ overflow-y: auto;
14219
+ overscroll-behavior: contain;
14220
+ }
14221
+
14222
+ .dsx-toggle-tip__content > :where(div):focus-visible {
14223
+ outline: var(--dsx-border-width-sm) solid var(--dsx-color-accent-indicator);
14224
+ outline-offset: calc(-1 * var(--dsx-border-width-sm));
14225
+ }
14226
+
14227
+ .dsx-toggle-tip__content[data-size='sm'] {
14228
+ padding: var(--dsx-space-xs) var(--dsx-space-sm);
14229
+ }
14230
+
14231
+ .dsx-toggle-tip__content[data-size='lg'] {
14232
+ padding: var(--dsx-space-md) var(--dsx-space-lg);
14233
+ font-size: var(--dsx-typography-body-medium-font-size);
14234
+ line-height: var(--dsx-typography-body-medium-line-height);
14235
+ }
14236
+
14237
+ .dsx-toggle-tip__content[data-size='sm'] > :where(div) {
14238
+ max-height: calc(var(--radix-popover-content-available-height) - var(--dsx-space-sm) - var(--dsx-border-width-md));
14239
+ }
14240
+
14241
+ .dsx-toggle-tip__content[data-size='lg'] > :where(div) {
14242
+ max-height: calc(var(--radix-popover-content-available-height) - var(--dsx-space-xl) - var(--dsx-border-width-md));
14243
+ }
14244
+
14245
+ @media (prefers-reduced-motion: reduce) {
14246
+ .dsx-toggle-tip__content { animation: none; }
14247
+ .dsx-toggle-tip__trigger { transition: none; }
13675
14248
  }
13676
14249
 
13677
14250
  .dsx-toggle-tip__arrow {
@@ -13690,6 +14263,11 @@ textarea {
13690
14263
  }
13691
14264
 
13692
14265
  .dsx-toolbar {
14266
+ --dsx-toolbar-control-height: var(--dsx-size-lg);
14267
+ box-sizing: border-box;
14268
+ min-width: 0;
14269
+ max-width: 100%;
14270
+ flex-wrap: wrap;
13693
14271
  display: inline-flex;
13694
14272
  align-items: center;
13695
14273
  gap: var(--dsx-space-sm);
@@ -13710,7 +14288,14 @@ textarea {
13710
14288
  display: inline-flex;
13711
14289
  align-items: center;
13712
14290
  justify-content: center;
13713
- min-height: var(--dsx-size-lg);
14291
+ min-height: var(--dsx-toolbar-control-height);
14292
+ min-width: var(--dsx-toolbar-control-height);
14293
+ box-sizing: border-box;
14294
+ font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
14295
+ font-size: var(--dsx-typography-label-medium-font-size);
14296
+ line-height: var(--dsx-typography-label-medium-line-height);
14297
+ font-weight: var(--dsx-typography-label-medium-font-weight);
14298
+ overflow-wrap: anywhere;
13714
14299
  padding-inline: var(--dsx-space-sm);
13715
14300
  border-radius: var(--dsx-rounded-md);
13716
14301
  border: 0;
@@ -13723,7 +14308,14 @@ textarea {
13723
14308
  display: inline-flex;
13724
14309
  align-items: center;
13725
14310
  justify-content: center;
13726
- min-height: var(--dsx-size-lg);
14311
+ min-height: var(--dsx-toolbar-control-height);
14312
+ min-width: var(--dsx-toolbar-control-height);
14313
+ box-sizing: border-box;
14314
+ font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
14315
+ font-size: var(--dsx-typography-label-medium-font-size);
14316
+ line-height: var(--dsx-typography-label-medium-line-height);
14317
+ font-weight: var(--dsx-typography-label-medium-font-weight);
14318
+ overflow-wrap: anywhere;
13727
14319
  padding-inline: var(--dsx-space-sm);
13728
14320
  border-radius: var(--dsx-rounded-md);
13729
14321
  border: 0;
@@ -13736,6 +14328,9 @@ textarea {
13736
14328
  align-items: stretch;
13737
14329
  gap: 0;
13738
14330
  isolation: isolate;
14331
+ flex-wrap: wrap;
14332
+ min-width: 0;
14333
+ max-width: 100%;
13739
14334
  }
13740
14335
 
13741
14336
  .dsx-toolbar__toggle-group > .dsx-toolbar__toggle-button {
@@ -13757,8 +14352,9 @@ textarea {
13757
14352
  }
13758
14353
 
13759
14354
  .dsx-toolbar__separator {
13760
- width: var(--dsx-border-width-sm);
13761
- height: var(--dsx-size-md);
14355
+ flex: 0 0 auto;
14356
+ width: var(--dsx-boundary-separator-width);
14357
+ height: calc(var(--dsx-toolbar-control-height) - var(--dsx-space-sm));
13762
14358
  background: var(--dsx-control-separator-color);
13763
14359
  }
13764
14360
 
@@ -13767,7 +14363,53 @@ textarea {
13767
14363
  padding: var(--dsx-space-xs);
13768
14364
  }
13769
14365
 
14366
+ .dsx-toolbar[data-size='sm'] { --dsx-toolbar-control-height: var(--dsx-size-md); }
14367
+
14368
+ .dsx-toolbar[data-size='lg'] { --dsx-toolbar-control-height: var(--dsx-size-xl); }
14369
+
14370
+ .dsx-toolbar[data-orientation='vertical'] { flex-direction: column; align-items: stretch; }
14371
+
14372
+ .dsx-toolbar__separator[data-orientation='horizontal'] { width: 100%; height: var(--dsx-boundary-separator-width); }
14373
+
14374
+ .dsx-toolbar__button:hover:not(:disabled),
14375
+ .dsx-toolbar__link:hover,
14376
+ .dsx-toolbar__toggle-button:hover:not(:disabled) { background: var(--dsx-effect-hover-ghost); }
14377
+
14378
+ .dsx-toolbar__button:active:not(:disabled),
14379
+ .dsx-toolbar__link:active,
14380
+ .dsx-toolbar__toggle-button:active:not(:disabled) { background: var(--dsx-effect-pressed-layer); }
14381
+
14382
+ .dsx-toolbar__toggle-button[data-state='on'] { background: var(--dsx-color-accent-surface); color: var(--dsx-color-accent-indicator); }
14383
+
14384
+ .dsx-toolbar__button:focus-visible,
14385
+ .dsx-toolbar__link:focus-visible,
14386
+ .dsx-toolbar__toggle-button:focus-visible { outline: none; box-shadow: var(--dsx-shadow-focus-ring); position: relative; z-index: 1; }
14387
+
14388
+ .dsx-toolbar__button:disabled,
14389
+ .dsx-toolbar__toggle-button:disabled { opacity: var(--dsx-opacity-disabled); }
14390
+
14391
+ .dsx-toolbar__toggle-group[data-orientation='vertical'] { flex-direction: column; }
14392
+
14393
+ .dsx-toolbar__toggle-group:where([data-orientation='vertical']) > .dsx-toolbar__toggle-button {
14394
+ margin-inline-start: 0;
14395
+ border-radius: 0;
14396
+ }
14397
+
14398
+ .dsx-toolbar__toggle-group:where([data-orientation='vertical']) > .dsx-toolbar__toggle-button:first-child {
14399
+ border-start-start-radius: var(--dsx-rounded-md);
14400
+ border-start-end-radius: var(--dsx-rounded-md);
14401
+ }
14402
+
14403
+ .dsx-toolbar__toggle-group:where([data-orientation='vertical']) > .dsx-toolbar__toggle-button:last-child {
14404
+ border-end-start-radius: var(--dsx-rounded-md);
14405
+ border-end-end-radius: var(--dsx-rounded-md);
14406
+ }
14407
+
13770
14408
  .dsx-tree-view {
14409
+ --dsx-tree-view-row-height: var(--dsx-size-lg);
14410
+ box-sizing: border-box;
14411
+ min-width: 0;
14412
+ max-width: 100%;
13771
14413
  display: flex;
13772
14414
  flex-direction: column;
13773
14415
  gap: var(--dsx-space-xs);
@@ -13783,6 +14425,9 @@ textarea {
13783
14425
  }
13784
14426
 
13785
14427
  .dsx-tree-view__node {
14428
+ box-sizing: border-box;
14429
+ min-width: 0;
14430
+ min-height: var(--dsx-tree-view-row-height);
13786
14431
  display: flex;
13787
14432
  align-items: center;
13788
14433
  gap: var(--dsx-space-xs);
@@ -13825,25 +14470,40 @@ textarea {
13825
14470
 
13826
14471
  .dsx-tree-view__label {
13827
14472
  flex: 1;
14473
+ min-width: 0;
13828
14474
  white-space: nowrap;
13829
14475
  overflow: hidden;
13830
14476
  text-overflow: ellipsis;
13831
14477
  }
13832
14478
 
13833
14479
  .dsx-tree-view__children {
13834
- margin-left: var(--dsx-space-md);
13835
- padding-left: var(--dsx-space-sm);
13836
- border-left: var(--dsx-border-width-xs) solid var(--dsx-color-outline-variant);
14480
+ margin-inline-start: var(--dsx-space-md);
14481
+ padding-inline-start: var(--dsx-space-sm);
14482
+ border-inline-start: var(--dsx-boundary-divider-width) solid var(--dsx-color-outline-variant);
13837
14483
  display: flex;
13838
14484
  flex-direction: column;
13839
14485
  gap: var(--dsx-space-xs);
13840
14486
  }
13841
14487
 
14488
+ .dsx-tree-view:where([data-size='sm']) { --dsx-tree-view-row-height: var(--dsx-size-md); }
14489
+
14490
+ .dsx-tree-view:where([data-size='sm']) .dsx-tree-view__node { font-size: var(--dsx-typography-body-small-font-size); padding-block: 0; }
14491
+
14492
+ .dsx-tree-view:where([data-size='lg']) { --dsx-tree-view-row-height: var(--dsx-size-xl); }
14493
+
14494
+ .dsx-tree-view:where([data-size='lg']) .dsx-tree-view__node { font-size: var(--dsx-typography-body-large-font-size); padding-block: var(--dsx-space-sm); }
14495
+
14496
+ @media (prefers-reduced-motion: reduce) { .dsx-tree-view__node { transition: none; } }
14497
+
13842
14498
  .dsx-tooltip {
13843
- max-width: var(--dsx-tooltip-max-width);
14499
+ --_tooltip-background: var(--dsx-color-panel-translucent);
14500
+ box-sizing: border-box;
14501
+ max-width: min(var(--dsx-tooltip-max-width), var(--radix-tooltip-content-available-width));
14502
+ overflow-wrap: anywhere;
14503
+ z-index: calc(var(--dsx-z-index-modal) + 1);
13844
14504
  border-radius: var(--dsx-rounded-sm);
13845
14505
  padding: var(--dsx-space-xs) var(--dsx-space-sm);
13846
- background: var(--dsx-color-panel-translucent);
14506
+ background: var(--_tooltip-background);
13847
14507
  backdrop-filter: var(--dsx-effect-panel-glass-backdrop-filter);
13848
14508
  color: var(--dsx-color-on-surface);
13849
14509
  box-shadow: var(--dsx-shadow-elevation-2);
@@ -13861,17 +14521,17 @@ textarea {
13861
14521
  dark+spark). Background already wins (no .dsx-theme background rule). */
13862
14522
 
13863
14523
  .dsx-tooltip.dsx-tooltip--primary {
13864
- background: var(--dsx-color-primary);
14524
+ --_tooltip-background: var(--dsx-color-primary);
13865
14525
  color: var(--dsx-color-on-primary);
13866
14526
  }
13867
14527
 
13868
14528
  .dsx-tooltip.dsx-tooltip--error {
13869
- background: var(--dsx-color-error);
14529
+ --_tooltip-background: var(--dsx-color-error);
13870
14530
  color: var(--dsx-color-on-error);
13871
14531
  }
13872
14532
 
13873
14533
  .dsx-tooltip__arrow {
13874
- fill: currentColor;
14534
+ fill: var(--_tooltip-background);
13875
14535
  }
13876
14536
 
13877
14537
  .dsx-skeleton {
@@ -13969,10 +14629,13 @@ textarea {
13969
14629
  .dsx-blockquote {
13970
14630
  box-sizing: border-box;
13971
14631
  margin: 0;
13972
- padding-left: var(--dsx-space-lg);
13973
- border-left: var(--dsx-border-width-xl) solid var(--dsx-color-primary);
14632
+ padding-inline-start: var(--dsx-space-lg);
14633
+ border-inline-start: var(--dsx-boundary-divider-width) solid var(--dsx-color-accent-border);
13974
14634
  font-family: var(--dsx-typography-body-large-font-family), sans-serif;
13975
14635
  font-size: var(--dsx-typography-body-large-font-size);
14636
+ font-weight: var(--dsx-typography-body-large-font-weight);
14637
+ letter-spacing: var(--dsx-typography-body-large-letter-spacing);
14638
+ font-variation-settings: var(--dsx-typography-body-large-font-variation-settings);
13976
14639
  font-style: italic;
13977
14640
  line-height: var(--dsx-typography-body-large-line-height);
13978
14641
  color: var(--dsx-color-on-surface-variant);
@@ -13980,17 +14643,19 @@ textarea {
13980
14643
 
13981
14644
  .dsx-blockquote--muted {
13982
14645
  color: var(--dsx-color-on-surface-variant);
13983
- border-left-color: var(--dsx-color-outline-variant);
14646
+ border-inline-start-color: var(--dsx-color-outline-variant);
13984
14647
  }
13985
14648
 
13986
14649
  .dsx-blockquote--inverse {
13987
14650
  color: var(--dsx-color-on-inverse-background);
13988
- border-left-color: var(--dsx-color-on-inverse-background);
14651
+ border-inline-start-color: var(--dsx-color-on-inverse-background);
13989
14652
  }
13990
14653
 
13991
14654
  .dsx-breadcrumb {
13992
14655
  box-sizing: border-box;
13993
14656
  display: block;
14657
+ min-width: 0;
14658
+ max-width: 100%;
13994
14659
  }
13995
14660
 
13996
14661
  .dsx-breadcrumb__list {
@@ -14021,7 +14686,7 @@ textarea {
14021
14686
 
14022
14687
  .dsx-breadcrumb__link:hover {
14023
14688
  background: var(--dsx-effect-hover-ghost);
14024
- color: var(--dsx-color-primary);
14689
+ color: var(--dsx-color-accent-indicator);
14025
14690
  }
14026
14691
 
14027
14692
  .dsx-breadcrumb__link:focus-visible {
@@ -14039,8 +14704,8 @@ textarea {
14039
14704
  align-items: center;
14040
14705
  gap: var(--dsx-space-sm);
14041
14706
  padding: var(--dsx-space-xs) var(--dsx-space-sm);
14042
- background: var(--dsx-color-accent-indicator);
14043
- color: var(--dsx-color-on-primary);
14707
+ background: var(--dsx-color-accent-surface);
14708
+ color: var(--dsx-color-accent-indicator);
14044
14709
  font-weight: var(--dsx-typography-label-large-font-weight);
14045
14710
  border-radius: var(--dsx-rounded-md);
14046
14711
  cursor: default;
@@ -14049,6 +14714,8 @@ textarea {
14049
14714
  .dsx-breadcrumb__item {
14050
14715
  display: inline-flex;
14051
14716
  align-items: center;
14717
+ min-width: 0;
14718
+ max-width: 100%;
14052
14719
  }
14053
14720
 
14054
14721
  .dsx-breadcrumb__separator,
@@ -14064,6 +14731,25 @@ textarea {
14064
14731
  flex-shrink: 0;
14065
14732
  }
14066
14733
 
14734
+ .dsx-breadcrumb__link, .dsx-breadcrumb__page {
14735
+ box-sizing: border-box;
14736
+ min-width: 0;
14737
+ min-height: var(--dsx-size-md);
14738
+ overflow-wrap: anywhere;
14739
+ }
14740
+
14741
+ .dsx-breadcrumb:where([data-size='sm']) .dsx-breadcrumb__link,
14742
+ .dsx-breadcrumb:where([data-size='sm']) .dsx-breadcrumb__page {
14743
+ font-size: var(--dsx-typography-body-small-font-size);
14744
+ padding: var(--dsx-space-xs);
14745
+ }
14746
+
14747
+ .dsx-breadcrumb:where([data-size='lg']) .dsx-breadcrumb__link,
14748
+ .dsx-breadcrumb:where([data-size='lg']) .dsx-breadcrumb__page {
14749
+ font-size: var(--dsx-typography-body-large-font-size);
14750
+ padding: var(--dsx-space-sm) var(--dsx-space-md);
14751
+ }
14752
+
14067
14753
  .dsx-button-group {
14068
14754
  box-sizing: border-box;
14069
14755
  display: inline-flex;
@@ -14138,11 +14824,14 @@ textarea {
14138
14824
  --_icon-size: var(--dsx-size-md);
14139
14825
  --_padding: var(--dsx-space-md);
14140
14826
  --_gap: var(--dsx-space-sm);
14827
+ --_callout-icon-color: var(--dsx-color-accent-indicator, var(--dsx-color-primary));
14141
14828
 
14142
14829
  display: grid;
14143
- grid-template-columns: auto 1fr auto;
14830
+ grid-template-columns: auto minmax(0, 1fr);
14144
14831
  align-items: start;
14145
14832
  gap: var(--_gap);
14833
+ min-width: 0;
14834
+ overflow-wrap: anywhere;
14146
14835
  padding: var(--_padding);
14147
14836
  box-sizing: border-box;
14148
14837
  border: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
@@ -14159,31 +14848,39 @@ textarea {
14159
14848
  align-items: center;
14160
14849
  justify-content: center;
14161
14850
  grid-column: 1;
14851
+ grid-row: 1 / span 3;
14162
14852
  width: var(--_icon-size);
14163
14853
  min-width: var(--_icon-size);
14164
14854
  height: var(--_icon-size);
14165
- color: var(--dsx-color-accent-indicator, var(--dsx-color-primary));
14855
+ color: var(--_callout-icon-color);
14166
14856
  }
14167
14857
 
14168
14858
  .dsx-callout__text {
14169
14859
  grid-column: 2;
14860
+ margin: 0;
14861
+ min-width: 0;
14170
14862
  }
14171
14863
 
14172
14864
  .dsx-callout__title { grid-column: 2; margin: 0; color: var(--dsx-color-on-surface); font-family: var(--dsx-typography-label-large-font-family); font-size: var(--dsx-typography-label-large-font-size); font-weight: var(--dsx-typography-label-large-font-weight); line-height: var(--dsx-typography-label-large-line-height); }
14173
14865
 
14174
- .dsx-callout[data-tone='warning'] { border-color: var(--dsx-color-warning); }
14866
+ .dsx-callout[data-tone='warning'] { border-color: var(--dsx-color-warning); --_callout-icon-color: var(--dsx-color-warning); }
14175
14867
 
14176
- .dsx-callout[data-tone='success'] { border-color: var(--dsx-color-success); }
14868
+ .dsx-callout[data-tone='success'] { border-color: var(--dsx-color-success); --_callout-icon-color: var(--dsx-color-success); }
14177
14869
 
14178
- .dsx-callout[data-tone='danger'] { border-color: var(--dsx-color-error); }
14870
+ .dsx-callout[data-tone='danger'] { border-color: var(--dsx-color-error); --_callout-icon-color: var(--dsx-color-error); }
14179
14871
 
14180
14872
  .dsx-callout__actions {
14181
14873
  display: flex;
14182
14874
  align-items: center;
14183
14875
  gap: var(--dsx-space-xs);
14184
- grid-column: 3;
14876
+ grid-column: 2;
14877
+ flex-wrap: wrap;
14185
14878
  }
14186
14879
 
14880
+ .dsx-callout:not(:has(.dsx-callout__icon)) { grid-template-columns: minmax(0, 1fr); }
14881
+
14882
+ .dsx-callout:where(:not(:has(.dsx-callout__icon))) > :where(.dsx-callout__text, .dsx-callout__title, .dsx-callout__actions) { grid-column: 1; }
14883
+
14187
14884
  .dsx-callout--soft {
14188
14885
  background-color: var(--dsx-color-surface-raised);
14189
14886
  border-color: var(--dsx-color-accent-surface, var(--dsx-color-outline-variant));
@@ -14210,33 +14907,50 @@ textarea {
14210
14907
  border-color: var(--dsx-color-high-contrast-border);
14211
14908
  }
14212
14909
 
14213
- .dsx-callout[data-high-contrast='true'] .dsx-text {
14910
+ .dsx-callout[data-high-contrast='true'] .dsx-text,
14911
+ .dsx-callout[data-high-contrast='true'] .dsx-callout__title {
14214
14912
  color: var(--dsx-color-high-contrast);
14215
14913
  }
14216
14914
 
14217
- .dsx-comment-thread { display: grid; gap: var(--dsx-space-md); }
14915
+ :where(.dsx-callout[data-high-contrast='true']) .dsx-callout__icon { color: var(--dsx-color-high-contrast); }
14916
+
14917
+ .dsx-comment-thread { display: grid; gap: var(--dsx-space-md); min-width: 0; }
14218
14918
 
14219
- .dsx-comment-thread__comment { display: grid; grid-template-columns: auto 1fr; gap: var(--dsx-space-sm); padding: var(--dsx-space-md); border-block-end: var(--dsx-border-width-sm) solid var(--dsx-color-outline); }
14919
+ .dsx-comment-thread__comment { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--dsx-space-sm); padding: var(--dsx-space-md); border-block-end: var(--dsx-border-width-sm) solid var(--dsx-color-outline); min-width: 0; overflow-wrap: anywhere; }
14220
14920
 
14221
14921
  .dsx-comment-thread__avatar { display: inline-flex; align-items: center; justify-content: center; width: var(--dsx-size-xl); height: var(--dsx-size-xl); overflow: hidden; border-radius: var(--dsx-rounded-full); background: var(--dsx-color-surface); color: var(--dsx-color-on-surface-variant); }
14222
14922
 
14223
14923
  .dsx-comment-thread__avatar img { width: 100%; height: 100%; object-fit: cover; }
14224
14924
 
14225
- .dsx-comment-thread__comment header { display: flex; align-items: baseline; gap: var(--dsx-space-sm); }
14925
+ .dsx-comment-thread__comment header { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--dsx-space-sm); min-width: 0; }
14926
+
14927
+ .dsx-comment-thread__comment :where(header > *) { min-width: 0; }
14226
14928
 
14227
14929
  .dsx-comment-thread__comment time { color: var(--dsx-color-on-surface-variant); }
14228
14930
 
14229
- .dsx-comment-thread__body, .dsx-comment-thread__actions { grid-column: 2; }
14931
+ .dsx-comment-thread__body, .dsx-comment-thread__actions { grid-column: 2; min-width: 0; }
14230
14932
 
14231
- .dsx-comment-thread__actions { display: flex; gap: var(--dsx-space-sm); }
14933
+ .dsx-comment-thread__actions { display: flex; flex-wrap: wrap; gap: var(--dsx-space-sm); }
14232
14934
 
14233
14935
  .dsx-comment-thread__replies { margin-inline-start: var(--dsx-space-xl); }
14234
14936
 
14235
14937
  .dsx-comment-thread__tombstone, .dsx-comment-thread__locked { padding: var(--dsx-space-md); color: var(--dsx-color-on-surface-variant); background: var(--dsx-color-surface-sunken); }
14236
14938
 
14237
- .dsx-comment-thread__composer { display: grid; gap: var(--dsx-space-sm); }
14939
+ .dsx-comment-thread__composer { display: grid; gap: var(--dsx-space-sm); min-width: 0; }
14940
+
14941
+ .dsx-comment-thread__composer :where(textarea) { box-sizing: border-box; width: 100%; min-width: 0; min-height: var(--dsx-size-4xl); padding: var(--dsx-space-md); border: var(--dsx-border-width-sm) solid var(--dsx-color-outline); border-radius: var(--dsx-rounded-md); background: var(--dsx-color-surface-sunken); color: var(--dsx-color-on-surface); font-family: var(--dsx-typography-body-medium-font-family), sans-serif; font-size: var(--dsx-typography-body-medium-font-size); font-weight: var(--dsx-typography-body-medium-font-weight); line-height: var(--dsx-typography-body-medium-line-height); resize: vertical; }
14942
+
14943
+ .dsx-comment-thread__composer :where(textarea:focus-visible) { outline: none; border-color: var(--dsx-color-accent-indicator); box-shadow: var(--dsx-shadow-focus-ring); }
14944
+
14945
+ .dsx-comment-thread__composer :where(textarea:disabled) { background: var(--dsx-color-disabled-surface); color: var(--dsx-color-disabled-text); border-color: var(--dsx-color-disabled-border); cursor: var(--dsx-cursor-disabled, not-allowed); }
14946
+
14947
+ .dsx-comment-thread__count { color: var(--dsx-color-on-surface-variant); font-size: var(--dsx-typography-body-small-font-size); }
14948
+
14949
+ .dsx-comment-thread__submit { justify-self: start; max-width: 100%; }
14238
14950
 
14239
- .dsx-comment-thread__composer textarea { min-height: var(--dsx-size-4xl); padding: var(--dsx-space-md); border: var(--dsx-border-width-sm) solid var(--dsx-color-outline); border-radius: var(--dsx-rounded-md); background: var(--dsx-color-surface-sunken); color: var(--dsx-color-on-surface); }
14951
+ .dsx-comment-thread__actions .dsx-button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
14952
+
14953
+ .dsx-comment-thread__actions .dsx-button__content { min-width: 0; }
14240
14954
 
14241
14955
  .dsx-article-image, .dsx-before-after { margin: var(--dsx-space-md) 0; }
14242
14956
 
@@ -14246,13 +14960,43 @@ textarea {
14246
14960
 
14247
14961
  .dsx-article-embed, .dsx-article-poll { display: grid; gap: var(--dsx-space-sm); padding: var(--dsx-space-md); border: var(--dsx-border-width-sm) solid var(--dsx-color-outline); border-radius: var(--dsx-rounded-md); background: var(--dsx-color-surface-raised); }
14248
14962
 
14963
+ .dsx-article-image, .dsx-article-embed, .dsx-article-poll, .dsx-before-after { min-width: 0; overflow-wrap: anywhere; }
14964
+
14249
14965
  .dsx-before-after { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dsx-space-sm); overflow-x: auto; }
14250
14966
 
14251
14967
  .dsx-before-after > div { min-width: var(--dsx-size-3xl); }
14252
14968
 
14253
14969
  .dsx-before-after span { display: block; margin-block-start: var(--dsx-space-xs); color: var(--dsx-color-on-surface-variant); }
14254
14970
 
14255
- .dsx-article-poll button { min-height: var(--dsx-size-lg); }
14971
+ .dsx-article-poll__option { min-width: 0; width: 100%; }
14972
+
14973
+ .dsx-article-video { margin: var(--dsx-space-md) 0; min-width: 0; }
14974
+
14975
+ .dsx-article-video__media { display: block; width: 100%; border-radius: var(--dsx-rounded-md); }
14976
+
14977
+ .dsx-article-video figcaption { margin-block-start: var(--dsx-space-sm); color: var(--dsx-color-on-surface-variant); }
14978
+
14979
+ .dsx-article-platform-tabs { min-width: 0; }
14980
+
14981
+ .dsx-article-poll__result { display: grid; gap: var(--dsx-space-xs); min-width: 0; }
14982
+
14983
+ .dsx-article-poll__result progress { width: 100%; accent-color: var(--dsx-color-accent-indicator); }
14984
+
14985
+ .dsx-article-poll__actions { display: flex; flex-wrap: wrap; gap: var(--dsx-space-sm); }
14986
+
14987
+ .dsx-article-editor-block { display: grid; gap: var(--dsx-space-md); min-width: 0; margin-block: var(--dsx-space-md); padding: var(--dsx-space-md); border: var(--dsx-border-width-sm) solid var(--dsx-color-outline); border-radius: var(--dsx-rounded-md); background: var(--dsx-color-surface); }
14988
+
14989
+ .dsx-article-editor-block[aria-current='true'] { border-color: var(--dsx-color-accent-border); }
14990
+
14991
+ .dsx-article-editor-block__controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--dsx-space-sm); }
14992
+
14993
+ .dsx-article-editor-block__actions { display: flex; flex-wrap: wrap; gap: var(--dsx-space-xs); }
14994
+
14995
+ .dsx-article-editor-block__fields { display: grid; gap: var(--dsx-space-sm); min-width: 0; }
14996
+
14997
+ .dsx-article-editor-block__content { min-width: 0; }
14998
+
14999
+ .dsx-article-editor-block__textarea { width: 100%; min-height: var(--dsx-size-4xl); display: block; padding: var(--dsx-space-sm); border: var(--dsx-border-width-sm) solid var(--dsx-color-outline); border-radius: var(--dsx-rounded-sm); background: var(--dsx-color-surface-raised); color: var(--dsx-color-on-surface); font: inherit; }
14256
15000
 
14257
15001
  .dsx-prose { width: 100%; min-width: 0; max-width: 68ch; overflow-wrap: anywhere; color: var(--dsx-color-on-surface); font-family: var(--dsx-typography-body-medium-font-family); line-height: 1.65; }
14258
15002
 
@@ -14266,11 +15010,11 @@ textarea {
14266
15010
 
14267
15011
  .dsx-prose a { color: var(--dsx-color-accent-indicator); text-underline-offset: var(--dsx-space-xs); }
14268
15012
 
14269
- .dsx-prose blockquote { margin-inline: 0; padding-inline-start: var(--dsx-space-md); border-inline-start: var(--dsx-border-width-md) solid var(--dsx-color-accent-indicator); color: var(--dsx-color-on-surface-variant); }
15013
+ .dsx-prose blockquote { margin-inline: 0; padding-inline-start: var(--dsx-space-md); border-inline-start: var(--dsx-boundary-divider-width) solid var(--dsx-color-accent-border); color: var(--dsx-color-on-surface-variant); }
14270
15014
 
14271
- .dsx-prose code { padding: 0 var(--dsx-space-xs); border-radius: var(--dsx-rounded-sm); background: var(--dsx-color-surface-sunken); }
15015
+ .dsx-prose code { padding: 0 var(--dsx-space-xs); border-radius: var(--dsx-rounded-sm); background: var(--dsx-code-soft-background); }
14272
15016
 
14273
- .dsx-prose pre { overflow-x: auto; padding: var(--dsx-space-md); border-radius: var(--dsx-rounded-md); background: var(--dsx-color-surface-sunken); }
15017
+ .dsx-prose pre { overflow-x: auto; padding: var(--dsx-space-md); border-radius: var(--dsx-rounded-md); background: var(--dsx-code-soft-background); }
14274
15018
 
14275
15019
  .dsx-prose pre code { padding: 0; background: transparent; }
14276
15020
 
@@ -14324,7 +15068,7 @@ textarea {
14324
15068
 
14325
15069
  .dsx-table-of-contents { color: var(--dsx-color-on-surface-variant); font-family: var(--dsx-typography-body-small-font-family); font-size: var(--dsx-typography-body-small-font-size); line-height: var(--dsx-typography-body-small-line-height); }
14326
15070
 
14327
- .dsx-table-of-contents[data-sticky='true'] { position: static; }
15071
+ .dsx-table-of-contents[data-sticky='true'] { position: sticky; top: var(--dsx-space-lg); }
14328
15072
 
14329
15073
  .dsx-table-of-contents ol { display: grid; gap: var(--dsx-space-xs); margin: 0; padding: 0; list-style: none; }
14330
15074
 
@@ -14336,7 +15080,19 @@ textarea {
14336
15080
 
14337
15081
  .dsx-table-of-contents__link[aria-current='location'] { color: var(--dsx-color-accent-indicator); font-weight: var(--dsx-typography-label-large-font-weight); }
14338
15082
 
14339
- @media (min-width: 640px) { .dsx-table-of-contents[data-sticky='true'] { position: sticky; top: var(--dsx-space-lg); } }
15083
+ .dsx-table-of-contents { min-width: 0; max-width: 100%; }
15084
+
15085
+ .dsx-table-of-contents__link {
15086
+ display: flex;
15087
+ align-items: center;
15088
+ box-sizing: border-box;
15089
+ min-height: var(--dsx-size-md);
15090
+ padding-block: var(--dsx-space-xs);
15091
+ border-radius: var(--dsx-rounded-sm);
15092
+ overflow-wrap: anywhere;
15093
+ }
15094
+
15095
+ .dsx-table-of-contents__link:focus-visible { outline: none; box-shadow: var(--dsx-shadow-focus-ring); }
14340
15096
 
14341
15097
  .dsx-code {
14342
15098
  font-family: var(--dsx-typography-code-font-family);
@@ -14348,20 +15104,19 @@ textarea {
14348
15104
  text-transform: var(--dsx-typography-code-text-transform);
14349
15105
  text-decoration: var(--dsx-typography-code-text-decoration);
14350
15106
  border-radius: var(--dsx-rounded-sm);
14351
- padding: var(--dsx-space-0-5, 2px) var(--dsx-space-1-5, 6px);
15107
+ padding: var(--dsx-space-0-5) var(--dsx-space-1-5);
14352
15108
  box-sizing: border-box;
14353
15109
  height: fit-content;
14354
15110
  }
14355
15111
 
14356
15112
  .dsx-code--soft {
14357
- background-color: var(--dsx-color-surface-sunken);
15113
+ background-color: var(--dsx-code-soft-background);
14358
15114
  color: var(--dsx-color-on-surface);
14359
- box-shadow: inset 0 0 0 1px var(--dsx-color-outline-variant);
14360
15115
  }
14361
15116
 
14362
15117
  .dsx-code--solid {
14363
- background-color: var(--dsx-color-primary);
14364
- color: var(--dsx-color-on-primary);
15118
+ background-color: var(--dsx-color-accent-track);
15119
+ color: var(--dsx-color-accent-contrast);
14365
15120
  }
14366
15121
 
14367
15122
  .dsx-code--outline {
@@ -14381,7 +15136,7 @@ textarea {
14381
15136
  }
14382
15137
 
14383
15138
  .dsx-code--solid.dsx-code--muted {
14384
- color: color-mix(in srgb, var(--dsx-color-on-primary) 65%, transparent);
15139
+ color: var(--dsx-color-accent-contrast);
14385
15140
  }
14386
15141
 
14387
15142
  .dsx-code--inverse {
@@ -14389,15 +15144,15 @@ textarea {
14389
15144
  }
14390
15145
 
14391
15146
  .dsx-code--soft.dsx-code--inverse {
14392
- background-color: color-mix(in srgb, var(--dsx-color-on-high-contrast) 15%, transparent);
14393
- color: var(--dsx-color-on-high-contrast);
15147
+ background-color: var(--dsx-color-inverse-background);
15148
+ color: var(--dsx-color-on-inverse-background);
14394
15149
  box-shadow: none;
14395
15150
  }
14396
15151
 
14397
15152
  /* solid already supplies its own on-primary/background pairing — tone must not override it */
14398
15153
 
14399
15154
  .dsx-code--solid.dsx-code--inverse {
14400
- color: var(--dsx-color-on-primary);
15155
+ color: var(--dsx-color-accent-contrast);
14401
15156
  }
14402
15157
 
14403
15158
  /* Size */
@@ -14406,15 +15161,33 @@ textarea {
14406
15161
  font-size: calc(var(--dsx-typography-code-font-size, 0.875em) * 0.85);
14407
15162
  }
14408
15163
 
14409
- .dsx-code[data-size='lg'] {
15164
+ .dsx-code:where([data-size='lg']) {
14410
15165
  font-size: calc(var(--dsx-typography-code-font-size, 0.875em) * 1.15);
14411
- padding: var(--dsx-space-1-5, 6px) var(--dsx-space-sm, 8px);
14412
15166
  }
14413
15167
 
14414
15168
  /* Accent color — solid already tracks --dsx-color-primary via the [data-accent-color] token rescope */
14415
15169
 
14416
- .dsx-code[data-accent-color]:not(.dsx-code--solid) {
14417
- color: var(--dsx-color-accent-9);
15170
+ .dsx-code:where([data-accent-color]):not(.dsx-code--solid, .dsx-code--inverse) {
15171
+ color: var(--dsx-color-accent-indicator);
15172
+ }
15173
+
15174
+ /* Contrast keeps each filled treatment paired with its own foreground. */
15175
+
15176
+ .dsx-code:where(:not(.dsx-code--inverse))[data-high-contrast='true'] {
15177
+ color: var(--dsx-color-high-contrast);
15178
+ }
15179
+
15180
+ .dsx-code--soft:where(:not(.dsx-code--inverse))[data-high-contrast='true'] {
15181
+ background-color: var(--dsx-color-high-contrast-container);
15182
+ }
15183
+
15184
+ .dsx-code--solid[data-high-contrast='true'] {
15185
+ background-color: var(--dsx-color-high-contrast);
15186
+ color: var(--dsx-color-on-high-contrast);
15187
+ }
15188
+
15189
+ .dsx-code--inverse:is(.dsx-code--outline, .dsx-code--ghost) {
15190
+ color: var(--dsx-color-on-inverse-background);
14418
15191
  }
14419
15192
 
14420
15193
  .dsx-copy-button {
@@ -14511,13 +15284,38 @@ textarea {
14511
15284
  line-height: var(--dsx-typography-body-small-line-height);
14512
15285
  }
14513
15286
 
15287
+ :where(.dsx-heading) {
15288
+ --dsx-r-m: initial;
15289
+ --dsx-r-mx: initial;
15290
+ --dsx-r-my: initial;
15291
+ --dsx-r-mt: initial;
15292
+ --dsx-r-mr: initial;
15293
+ --dsx-r-mb: initial;
15294
+ --dsx-r-ml: initial;
15295
+ --dsx-r-margin-top: initial;
15296
+ --dsx-r-margin-right: initial;
15297
+ --dsx-r-margin-bottom: initial;
15298
+ --dsx-r-margin-left: initial;
15299
+ --dsx-r-margin-top-override: initial;
15300
+ --dsx-r-margin-right-override: initial;
15301
+ --dsx-r-margin-bottom-override: initial;
15302
+ --dsx-r-margin-left-override: initial;
15303
+ --dsx-r-p: initial;
15304
+ --dsx-r-px: initial;
15305
+ --dsx-r-py: initial;
15306
+ --dsx-r-pt: initial;
15307
+ --dsx-r-pr: initial;
15308
+ --dsx-r-pb: initial;
15309
+ --dsx-r-pl: initial;
15310
+ }
15311
+
14514
15312
  .dsx-heading {
14515
15313
  box-sizing: border-box;
14516
15314
  margin: var(--dsx-r-m, 0);
14517
- margin-top: var(--dsx-r-mt, var(--dsx-r-my, var(--dsx-r-m, 0)));
14518
- margin-right: var(--dsx-r-mr, var(--dsx-r-mx, var(--dsx-r-m, 0)));
14519
- margin-bottom: var(--dsx-r-mb, var(--dsx-r-my, var(--dsx-r-m, 0)));
14520
- margin-left: var(--dsx-r-ml, var(--dsx-r-mx, var(--dsx-r-m, 0)));
15315
+ margin-top: var(--dsx-r-margin-top-override, var(--dsx-r-margin-top, 0));
15316
+ margin-right: var(--dsx-r-margin-right-override, var(--dsx-r-margin-right, 0));
15317
+ margin-bottom: var(--dsx-r-margin-bottom-override, var(--dsx-r-margin-bottom, 0));
15318
+ margin-left: var(--dsx-r-margin-left-override, var(--dsx-r-margin-left, 0));
14521
15319
  padding: var(--dsx-r-p, 0);
14522
15320
  padding-top: var(--dsx-r-pt, var(--dsx-r-py, var(--dsx-r-p, 0)));
14523
15321
  padding-right: var(--dsx-r-pr, var(--dsx-r-px, var(--dsx-r-p, 0)));
@@ -14588,612 +15386,107 @@ textarea {
14588
15386
 
14589
15387
  /* High-contrast mode — shift heading color to HC family (Pattern 3) */
14590
15388
 
14591
- .dsx-heading[data-high-contrast='true'] {
15389
+ .dsx-heading:where(:not(.dsx-heading--inverse))[data-high-contrast='true'] {
14592
15390
  color: var(--dsx-color-high-contrast);
14593
15391
  }
14594
15392
 
14595
15393
  .dsx-r-heading-size-1 {
14596
- font-family: var(--dsx-typography-label-small-font-family), sans-serif;
14597
- font-size: var(--dsx-typography-label-small-font-size);
14598
- font-weight: var(--dsx-typography-label-small-font-weight);
14599
- line-height: var(--dsx-typography-label-small-line-height);
14600
- letter-spacing: var(--dsx-typography-label-small-letter-spacing);
14601
- font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
14602
- text-transform: var(--dsx-typography-label-small-text-transform);
14603
- text-decoration: var(--dsx-typography-label-small-text-decoration);
14604
- }
15394
+ font-family: var(--dsx-typography-label-small-font-family), sans-serif;
15395
+ font-size: var(--dsx-typography-label-small-font-size);
15396
+ font-weight: var(--dsx-typography-label-small-font-weight);
15397
+ line-height: var(--dsx-typography-label-small-line-height);
15398
+ letter-spacing: var(--dsx-typography-label-small-letter-spacing);
15399
+ font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
15400
+ text-transform: var(--dsx-typography-label-small-text-transform);
15401
+ text-decoration: var(--dsx-typography-label-small-text-decoration);
15402
+ }
14605
15403
 
14606
15404
  .dsx-r-heading-size-2 {
14607
- font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
14608
- font-size: var(--dsx-typography-label-medium-font-size);
14609
- font-weight: var(--dsx-typography-label-medium-font-weight);
14610
- line-height: var(--dsx-typography-label-medium-line-height);
14611
- letter-spacing: var(--dsx-typography-label-medium-letter-spacing);
14612
- font-variation-settings: var(--dsx-typography-label-medium-font-variation-settings);
14613
- text-transform: var(--dsx-typography-label-medium-text-transform);
14614
- text-decoration: var(--dsx-typography-label-medium-text-decoration);
14615
- }
15405
+ font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
15406
+ font-size: var(--dsx-typography-label-medium-font-size);
15407
+ font-weight: var(--dsx-typography-label-medium-font-weight);
15408
+ line-height: var(--dsx-typography-label-medium-line-height);
15409
+ letter-spacing: var(--dsx-typography-label-medium-letter-spacing);
15410
+ font-variation-settings: var(--dsx-typography-label-medium-font-variation-settings);
15411
+ text-transform: var(--dsx-typography-label-medium-text-transform);
15412
+ text-decoration: var(--dsx-typography-label-medium-text-decoration);
15413
+ }
14616
15414
 
14617
15415
  .dsx-r-heading-size-3 {
14618
- font-family: var(--dsx-typography-label-large-font-family), sans-serif;
14619
- font-size: var(--dsx-typography-label-large-font-size);
14620
- font-weight: var(--dsx-typography-label-large-font-weight);
14621
- line-height: var(--dsx-typography-label-large-line-height);
14622
- letter-spacing: var(--dsx-typography-label-large-letter-spacing);
14623
- font-variation-settings: var(--dsx-typography-label-large-font-variation-settings);
14624
- text-transform: var(--dsx-typography-label-large-text-transform);
14625
- text-decoration: var(--dsx-typography-label-large-text-decoration);
14626
- }
15416
+ font-family: var(--dsx-typography-label-large-font-family), sans-serif;
15417
+ font-size: var(--dsx-typography-label-large-font-size);
15418
+ font-weight: var(--dsx-typography-label-large-font-weight);
15419
+ line-height: var(--dsx-typography-label-large-line-height);
15420
+ letter-spacing: var(--dsx-typography-label-large-letter-spacing);
15421
+ font-variation-settings: var(--dsx-typography-label-large-font-variation-settings);
15422
+ text-transform: var(--dsx-typography-label-large-text-transform);
15423
+ text-decoration: var(--dsx-typography-label-large-text-decoration);
15424
+ }
14627
15425
 
14628
15426
  .dsx-r-heading-size-4 {
14629
- font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
14630
- font-size: var(--dsx-typography-body-medium-font-size);
14631
- font-weight: var(--dsx-typography-body-medium-font-weight);
14632
- line-height: var(--dsx-typography-body-medium-line-height);
14633
- letter-spacing: var(--dsx-typography-body-medium-letter-spacing);
14634
- font-variation-settings: var(--dsx-typography-body-medium-font-variation-settings);
14635
- text-transform: var(--dsx-typography-body-medium-text-transform);
14636
- text-decoration: var(--dsx-typography-body-medium-text-decoration);
14637
- }
15427
+ font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
15428
+ font-size: var(--dsx-typography-body-medium-font-size);
15429
+ font-weight: var(--dsx-typography-body-medium-font-weight);
15430
+ line-height: var(--dsx-typography-body-medium-line-height);
15431
+ letter-spacing: var(--dsx-typography-body-medium-letter-spacing);
15432
+ font-variation-settings: var(--dsx-typography-body-medium-font-variation-settings);
15433
+ text-transform: var(--dsx-typography-body-medium-text-transform);
15434
+ text-decoration: var(--dsx-typography-body-medium-text-decoration);
15435
+ }
14638
15436
 
14639
15437
  .dsx-r-heading-size-5 {
14640
- font-family: var(--dsx-typography-body-large-font-family), sans-serif;
14641
- font-size: var(--dsx-typography-body-large-font-size);
14642
- font-weight: var(--dsx-typography-body-large-font-weight);
14643
- line-height: var(--dsx-typography-body-large-line-height);
14644
- letter-spacing: var(--dsx-typography-body-large-letter-spacing);
14645
- font-variation-settings: var(--dsx-typography-body-large-font-variation-settings);
14646
- text-transform: var(--dsx-typography-body-large-text-transform);
14647
- text-decoration: var(--dsx-typography-body-large-text-decoration);
14648
- }
14649
-
14650
- .dsx-r-heading-size-6 {
14651
- font-family: var(--dsx-typography-headline-medium-font-family), sans-serif;
14652
- font-size: var(--dsx-typography-headline-medium-font-size);
14653
- font-weight: var(--dsx-typography-headline-medium-font-weight);
14654
- line-height: var(--dsx-typography-headline-medium-line-height);
14655
- letter-spacing: var(--dsx-typography-headline-medium-letter-spacing);
14656
- font-variation-settings: var(--dsx-typography-headline-medium-font-variation-settings);
14657
- text-transform: var(--dsx-typography-headline-medium-text-transform);
14658
- text-decoration: var(--dsx-typography-headline-medium-text-decoration);
14659
- }
14660
-
14661
- .dsx-r-heading-size-7 {
14662
- font-family: var(--dsx-typography-headline-large-font-family), sans-serif;
14663
- font-size: var(--dsx-typography-headline-large-font-size);
14664
- font-weight: var(--dsx-typography-headline-large-font-weight);
14665
- line-height: var(--dsx-typography-headline-large-line-height);
14666
- letter-spacing: var(--dsx-typography-headline-large-letter-spacing);
14667
- font-variation-settings: var(--dsx-typography-headline-large-font-variation-settings);
14668
- text-transform: var(--dsx-typography-headline-large-text-transform);
14669
- text-decoration: var(--dsx-typography-headline-large-text-decoration);
14670
- }
14671
-
14672
- .dsx-r-heading-size-8 {
14673
- font-family: var(--dsx-typography-display-medium-font-family), sans-serif;
14674
- font-size: var(--dsx-typography-display-medium-font-size);
14675
- font-weight: var(--dsx-typography-display-medium-font-weight);
14676
- line-height: var(--dsx-typography-display-medium-line-height);
14677
- letter-spacing: var(--dsx-typography-display-medium-letter-spacing);
14678
- font-variation-settings: var(--dsx-typography-display-medium-font-variation-settings);
14679
- text-transform: var(--dsx-typography-display-medium-text-transform);
14680
- text-decoration: var(--dsx-typography-display-medium-text-decoration);
14681
- }
14682
-
14683
- .dsx-r-heading-size-9 {
14684
- font-family: var(--dsx-typography-display-large-font-family), sans-serif;
14685
- font-size: var(--dsx-typography-display-large-font-size);
14686
- font-weight: var(--dsx-typography-display-large-font-weight);
14687
- line-height: var(--dsx-typography-display-large-line-height);
14688
- letter-spacing: var(--dsx-typography-display-large-letter-spacing);
14689
- font-variation-settings: var(--dsx-typography-display-large-font-variation-settings);
14690
- text-transform: var(--dsx-typography-display-large-text-transform);
14691
- text-decoration: var(--dsx-typography-display-large-text-decoration);
14692
- }
14693
-
14694
- @media(min-width: 640px) {
14695
- .sm\:dsx-r-heading-size-1 {
14696
- font-family: var(--dsx-typography-label-small-font-family), sans-serif;
14697
- font-size: var(--dsx-typography-label-small-font-size);
14698
- font-weight: var(--dsx-typography-label-small-font-weight);
14699
- line-height: var(--dsx-typography-label-small-line-height);
14700
- letter-spacing: var(--dsx-typography-label-small-letter-spacing);
14701
- font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
14702
- text-transform: var(--dsx-typography-label-small-text-transform);
14703
- text-decoration: var(--dsx-typography-label-small-text-decoration);
14704
- }
14705
-
14706
- .sm\:dsx-r-heading-size-2 {
14707
- font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
14708
- font-size: var(--dsx-typography-label-medium-font-size);
14709
- font-weight: var(--dsx-typography-label-medium-font-weight);
14710
- line-height: var(--dsx-typography-label-medium-line-height);
14711
- letter-spacing: var(--dsx-typography-label-medium-letter-spacing);
14712
- font-variation-settings: var(--dsx-typography-label-medium-font-variation-settings);
14713
- text-transform: var(--dsx-typography-label-medium-text-transform);
14714
- text-decoration: var(--dsx-typography-label-medium-text-decoration);
14715
- }
14716
-
14717
- .sm\:dsx-r-heading-size-3 {
14718
- font-family: var(--dsx-typography-label-large-font-family), sans-serif;
14719
- font-size: var(--dsx-typography-label-large-font-size);
14720
- font-weight: var(--dsx-typography-label-large-font-weight);
14721
- line-height: var(--dsx-typography-label-large-line-height);
14722
- letter-spacing: var(--dsx-typography-label-large-letter-spacing);
14723
- font-variation-settings: var(--dsx-typography-label-large-font-variation-settings);
14724
- text-transform: var(--dsx-typography-label-large-text-transform);
14725
- text-decoration: var(--dsx-typography-label-large-text-decoration);
14726
- }
14727
-
14728
- .sm\:dsx-r-heading-size-4 {
14729
- font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
14730
- font-size: var(--dsx-typography-body-medium-font-size);
14731
- font-weight: var(--dsx-typography-body-medium-font-weight);
14732
- line-height: var(--dsx-typography-body-medium-line-height);
14733
- letter-spacing: var(--dsx-typography-body-medium-letter-spacing);
14734
- font-variation-settings: var(--dsx-typography-body-medium-font-variation-settings);
14735
- text-transform: var(--dsx-typography-body-medium-text-transform);
14736
- text-decoration: var(--dsx-typography-body-medium-text-decoration);
14737
- }
14738
-
14739
- .sm\:dsx-r-heading-size-5 {
14740
- font-family: var(--dsx-typography-body-large-font-family), sans-serif;
14741
- font-size: var(--dsx-typography-body-large-font-size);
14742
- font-weight: var(--dsx-typography-body-large-font-weight);
14743
- line-height: var(--dsx-typography-body-large-line-height);
14744
- letter-spacing: var(--dsx-typography-body-large-letter-spacing);
14745
- font-variation-settings: var(--dsx-typography-body-large-font-variation-settings);
14746
- text-transform: var(--dsx-typography-body-large-text-transform);
14747
- text-decoration: var(--dsx-typography-body-large-text-decoration);
14748
- }
14749
-
14750
- .sm\:dsx-r-heading-size-6 {
14751
- font-family: var(--dsx-typography-headline-medium-font-family), sans-serif;
14752
- font-size: var(--dsx-typography-headline-medium-font-size);
14753
- font-weight: var(--dsx-typography-headline-medium-font-weight);
14754
- line-height: var(--dsx-typography-headline-medium-line-height);
14755
- letter-spacing: var(--dsx-typography-headline-medium-letter-spacing);
14756
- font-variation-settings: var(--dsx-typography-headline-medium-font-variation-settings);
14757
- text-transform: var(--dsx-typography-headline-medium-text-transform);
14758
- text-decoration: var(--dsx-typography-headline-medium-text-decoration);
14759
- }
14760
-
14761
- .sm\:dsx-r-heading-size-7 {
14762
- font-family: var(--dsx-typography-headline-large-font-family), sans-serif;
14763
- font-size: var(--dsx-typography-headline-large-font-size);
14764
- font-weight: var(--dsx-typography-headline-large-font-weight);
14765
- line-height: var(--dsx-typography-headline-large-line-height);
14766
- letter-spacing: var(--dsx-typography-headline-large-letter-spacing);
14767
- font-variation-settings: var(--dsx-typography-headline-large-font-variation-settings);
14768
- text-transform: var(--dsx-typography-headline-large-text-transform);
14769
- text-decoration: var(--dsx-typography-headline-large-text-decoration);
14770
- }
14771
-
14772
- .sm\:dsx-r-heading-size-8 {
14773
- font-family: var(--dsx-typography-display-medium-font-family), sans-serif;
14774
- font-size: var(--dsx-typography-display-medium-font-size);
14775
- font-weight: var(--dsx-typography-display-medium-font-weight);
14776
- line-height: var(--dsx-typography-display-medium-line-height);
14777
- letter-spacing: var(--dsx-typography-display-medium-letter-spacing);
14778
- font-variation-settings: var(--dsx-typography-display-medium-font-variation-settings);
14779
- text-transform: var(--dsx-typography-display-medium-text-transform);
14780
- text-decoration: var(--dsx-typography-display-medium-text-decoration);
14781
- }
14782
-
14783
- .sm\:dsx-r-heading-size-9 {
14784
- font-family: var(--dsx-typography-display-large-font-family), sans-serif;
14785
- font-size: var(--dsx-typography-display-large-font-size);
14786
- font-weight: var(--dsx-typography-display-large-font-weight);
14787
- line-height: var(--dsx-typography-display-large-line-height);
14788
- letter-spacing: var(--dsx-typography-display-large-letter-spacing);
14789
- font-variation-settings: var(--dsx-typography-display-large-font-variation-settings);
14790
- text-transform: var(--dsx-typography-display-large-text-transform);
14791
- text-decoration: var(--dsx-typography-display-large-text-decoration);
14792
- }
15438
+ font-family: var(--dsx-typography-body-large-font-family), sans-serif;
15439
+ font-size: var(--dsx-typography-body-large-font-size);
15440
+ font-weight: var(--dsx-typography-body-large-font-weight);
15441
+ line-height: var(--dsx-typography-body-large-line-height);
15442
+ letter-spacing: var(--dsx-typography-body-large-letter-spacing);
15443
+ font-variation-settings: var(--dsx-typography-body-large-font-variation-settings);
15444
+ text-transform: var(--dsx-typography-body-large-text-transform);
15445
+ text-decoration: var(--dsx-typography-body-large-text-decoration);
14793
15446
  }
14794
15447
 
14795
- @media(min-width: 768px) {
14796
- .md\:dsx-r-heading-size-1 {
14797
- font-family: var(--dsx-typography-label-small-font-family), sans-serif;
14798
- font-size: var(--dsx-typography-label-small-font-size);
14799
- font-weight: var(--dsx-typography-label-small-font-weight);
14800
- line-height: var(--dsx-typography-label-small-line-height);
14801
- letter-spacing: var(--dsx-typography-label-small-letter-spacing);
14802
- font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
14803
- text-transform: var(--dsx-typography-label-small-text-transform);
14804
- text-decoration: var(--dsx-typography-label-small-text-decoration);
14805
- }
14806
-
14807
- .md\:dsx-r-heading-size-2 {
14808
- font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
14809
- font-size: var(--dsx-typography-label-medium-font-size);
14810
- font-weight: var(--dsx-typography-label-medium-font-weight);
14811
- line-height: var(--dsx-typography-label-medium-line-height);
14812
- letter-spacing: var(--dsx-typography-label-medium-letter-spacing);
14813
- font-variation-settings: var(--dsx-typography-label-medium-font-variation-settings);
14814
- text-transform: var(--dsx-typography-label-medium-text-transform);
14815
- text-decoration: var(--dsx-typography-label-medium-text-decoration);
14816
- }
14817
-
14818
- .md\:dsx-r-heading-size-3 {
14819
- font-family: var(--dsx-typography-label-large-font-family), sans-serif;
14820
- font-size: var(--dsx-typography-label-large-font-size);
14821
- font-weight: var(--dsx-typography-label-large-font-weight);
14822
- line-height: var(--dsx-typography-label-large-line-height);
14823
- letter-spacing: var(--dsx-typography-label-large-letter-spacing);
14824
- font-variation-settings: var(--dsx-typography-label-large-font-variation-settings);
14825
- text-transform: var(--dsx-typography-label-large-text-transform);
14826
- text-decoration: var(--dsx-typography-label-large-text-decoration);
14827
- }
14828
-
14829
- .md\:dsx-r-heading-size-4 {
14830
- font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
14831
- font-size: var(--dsx-typography-body-medium-font-size);
14832
- font-weight: var(--dsx-typography-body-medium-font-weight);
14833
- line-height: var(--dsx-typography-body-medium-line-height);
14834
- letter-spacing: var(--dsx-typography-body-medium-letter-spacing);
14835
- font-variation-settings: var(--dsx-typography-body-medium-font-variation-settings);
14836
- text-transform: var(--dsx-typography-body-medium-text-transform);
14837
- text-decoration: var(--dsx-typography-body-medium-text-decoration);
14838
- }
14839
-
14840
- .md\:dsx-r-heading-size-5 {
14841
- font-family: var(--dsx-typography-body-large-font-family), sans-serif;
14842
- font-size: var(--dsx-typography-body-large-font-size);
14843
- font-weight: var(--dsx-typography-body-large-font-weight);
14844
- line-height: var(--dsx-typography-body-large-line-height);
14845
- letter-spacing: var(--dsx-typography-body-large-letter-spacing);
14846
- font-variation-settings: var(--dsx-typography-body-large-font-variation-settings);
14847
- text-transform: var(--dsx-typography-body-large-text-transform);
14848
- text-decoration: var(--dsx-typography-body-large-text-decoration);
14849
- }
14850
-
14851
- .md\:dsx-r-heading-size-6 {
14852
- font-family: var(--dsx-typography-headline-medium-font-family), sans-serif;
14853
- font-size: var(--dsx-typography-headline-medium-font-size);
14854
- font-weight: var(--dsx-typography-headline-medium-font-weight);
14855
- line-height: var(--dsx-typography-headline-medium-line-height);
14856
- letter-spacing: var(--dsx-typography-headline-medium-letter-spacing);
14857
- font-variation-settings: var(--dsx-typography-headline-medium-font-variation-settings);
14858
- text-transform: var(--dsx-typography-headline-medium-text-transform);
14859
- text-decoration: var(--dsx-typography-headline-medium-text-decoration);
14860
- }
14861
-
14862
- .md\:dsx-r-heading-size-7 {
14863
- font-family: var(--dsx-typography-headline-large-font-family), sans-serif;
14864
- font-size: var(--dsx-typography-headline-large-font-size);
14865
- font-weight: var(--dsx-typography-headline-large-font-weight);
14866
- line-height: var(--dsx-typography-headline-large-line-height);
14867
- letter-spacing: var(--dsx-typography-headline-large-letter-spacing);
14868
- font-variation-settings: var(--dsx-typography-headline-large-font-variation-settings);
14869
- text-transform: var(--dsx-typography-headline-large-text-transform);
14870
- text-decoration: var(--dsx-typography-headline-large-text-decoration);
14871
- }
14872
-
14873
- .md\:dsx-r-heading-size-8 {
14874
- font-family: var(--dsx-typography-display-medium-font-family), sans-serif;
14875
- font-size: var(--dsx-typography-display-medium-font-size);
14876
- font-weight: var(--dsx-typography-display-medium-font-weight);
14877
- line-height: var(--dsx-typography-display-medium-line-height);
14878
- letter-spacing: var(--dsx-typography-display-medium-letter-spacing);
14879
- font-variation-settings: var(--dsx-typography-display-medium-font-variation-settings);
14880
- text-transform: var(--dsx-typography-display-medium-text-transform);
14881
- text-decoration: var(--dsx-typography-display-medium-text-decoration);
14882
- }
14883
-
14884
- .md\:dsx-r-heading-size-9 {
14885
- font-family: var(--dsx-typography-display-large-font-family), sans-serif;
14886
- font-size: var(--dsx-typography-display-large-font-size);
14887
- font-weight: var(--dsx-typography-display-large-font-weight);
14888
- line-height: var(--dsx-typography-display-large-line-height);
14889
- letter-spacing: var(--dsx-typography-display-large-letter-spacing);
14890
- font-variation-settings: var(--dsx-typography-display-large-font-variation-settings);
14891
- text-transform: var(--dsx-typography-display-large-text-transform);
14892
- text-decoration: var(--dsx-typography-display-large-text-decoration);
14893
- }
15448
+ .dsx-r-heading-size-6 {
15449
+ font-family: var(--dsx-typography-headline-medium-font-family), sans-serif;
15450
+ font-size: var(--dsx-typography-headline-medium-font-size);
15451
+ font-weight: var(--dsx-typography-headline-medium-font-weight);
15452
+ line-height: var(--dsx-typography-headline-medium-line-height);
15453
+ letter-spacing: var(--dsx-typography-headline-medium-letter-spacing);
15454
+ font-variation-settings: var(--dsx-typography-headline-medium-font-variation-settings);
15455
+ text-transform: var(--dsx-typography-headline-medium-text-transform);
15456
+ text-decoration: var(--dsx-typography-headline-medium-text-decoration);
14894
15457
  }
14895
15458
 
14896
- @media(min-width: 1024px) {
14897
- .lg\:dsx-r-heading-size-1 {
14898
- font-family: var(--dsx-typography-label-small-font-family), sans-serif;
14899
- font-size: var(--dsx-typography-label-small-font-size);
14900
- font-weight: var(--dsx-typography-label-small-font-weight);
14901
- line-height: var(--dsx-typography-label-small-line-height);
14902
- letter-spacing: var(--dsx-typography-label-small-letter-spacing);
14903
- font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
14904
- text-transform: var(--dsx-typography-label-small-text-transform);
14905
- text-decoration: var(--dsx-typography-label-small-text-decoration);
14906
- }
14907
-
14908
- .lg\:dsx-r-heading-size-2 {
14909
- font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
14910
- font-size: var(--dsx-typography-label-medium-font-size);
14911
- font-weight: var(--dsx-typography-label-medium-font-weight);
14912
- line-height: var(--dsx-typography-label-medium-line-height);
14913
- letter-spacing: var(--dsx-typography-label-medium-letter-spacing);
14914
- font-variation-settings: var(--dsx-typography-label-medium-font-variation-settings);
14915
- text-transform: var(--dsx-typography-label-medium-text-transform);
14916
- text-decoration: var(--dsx-typography-label-medium-text-decoration);
14917
- }
14918
-
14919
- .lg\:dsx-r-heading-size-3 {
14920
- font-family: var(--dsx-typography-label-large-font-family), sans-serif;
14921
- font-size: var(--dsx-typography-label-large-font-size);
14922
- font-weight: var(--dsx-typography-label-large-font-weight);
14923
- line-height: var(--dsx-typography-label-large-line-height);
14924
- letter-spacing: var(--dsx-typography-label-large-letter-spacing);
14925
- font-variation-settings: var(--dsx-typography-label-large-font-variation-settings);
14926
- text-transform: var(--dsx-typography-label-large-text-transform);
14927
- text-decoration: var(--dsx-typography-label-large-text-decoration);
14928
- }
14929
-
14930
- .lg\:dsx-r-heading-size-4 {
14931
- font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
14932
- font-size: var(--dsx-typography-body-medium-font-size);
14933
- font-weight: var(--dsx-typography-body-medium-font-weight);
14934
- line-height: var(--dsx-typography-body-medium-line-height);
14935
- letter-spacing: var(--dsx-typography-body-medium-letter-spacing);
14936
- font-variation-settings: var(--dsx-typography-body-medium-font-variation-settings);
14937
- text-transform: var(--dsx-typography-body-medium-text-transform);
14938
- text-decoration: var(--dsx-typography-body-medium-text-decoration);
14939
- }
14940
-
14941
- .lg\:dsx-r-heading-size-5 {
14942
- font-family: var(--dsx-typography-body-large-font-family), sans-serif;
14943
- font-size: var(--dsx-typography-body-large-font-size);
14944
- font-weight: var(--dsx-typography-body-large-font-weight);
14945
- line-height: var(--dsx-typography-body-large-line-height);
14946
- letter-spacing: var(--dsx-typography-body-large-letter-spacing);
14947
- font-variation-settings: var(--dsx-typography-body-large-font-variation-settings);
14948
- text-transform: var(--dsx-typography-body-large-text-transform);
14949
- text-decoration: var(--dsx-typography-body-large-text-decoration);
14950
- }
14951
-
14952
- .lg\:dsx-r-heading-size-6 {
14953
- font-family: var(--dsx-typography-headline-medium-font-family), sans-serif;
14954
- font-size: var(--dsx-typography-headline-medium-font-size);
14955
- font-weight: var(--dsx-typography-headline-medium-font-weight);
14956
- line-height: var(--dsx-typography-headline-medium-line-height);
14957
- letter-spacing: var(--dsx-typography-headline-medium-letter-spacing);
14958
- font-variation-settings: var(--dsx-typography-headline-medium-font-variation-settings);
14959
- text-transform: var(--dsx-typography-headline-medium-text-transform);
14960
- text-decoration: var(--dsx-typography-headline-medium-text-decoration);
14961
- }
14962
-
14963
- .lg\:dsx-r-heading-size-7 {
14964
- font-family: var(--dsx-typography-headline-large-font-family), sans-serif;
14965
- font-size: var(--dsx-typography-headline-large-font-size);
14966
- font-weight: var(--dsx-typography-headline-large-font-weight);
14967
- line-height: var(--dsx-typography-headline-large-line-height);
14968
- letter-spacing: var(--dsx-typography-headline-large-letter-spacing);
14969
- font-variation-settings: var(--dsx-typography-headline-large-font-variation-settings);
14970
- text-transform: var(--dsx-typography-headline-large-text-transform);
14971
- text-decoration: var(--dsx-typography-headline-large-text-decoration);
14972
- }
14973
-
14974
- .lg\:dsx-r-heading-size-8 {
14975
- font-family: var(--dsx-typography-display-medium-font-family), sans-serif;
14976
- font-size: var(--dsx-typography-display-medium-font-size);
14977
- font-weight: var(--dsx-typography-display-medium-font-weight);
14978
- line-height: var(--dsx-typography-display-medium-line-height);
14979
- letter-spacing: var(--dsx-typography-display-medium-letter-spacing);
14980
- font-variation-settings: var(--dsx-typography-display-medium-font-variation-settings);
14981
- text-transform: var(--dsx-typography-display-medium-text-transform);
14982
- text-decoration: var(--dsx-typography-display-medium-text-decoration);
14983
- }
14984
-
14985
- .lg\:dsx-r-heading-size-9 {
14986
- font-family: var(--dsx-typography-display-large-font-family), sans-serif;
14987
- font-size: var(--dsx-typography-display-large-font-size);
14988
- font-weight: var(--dsx-typography-display-large-font-weight);
14989
- line-height: var(--dsx-typography-display-large-line-height);
14990
- letter-spacing: var(--dsx-typography-display-large-letter-spacing);
14991
- font-variation-settings: var(--dsx-typography-display-large-font-variation-settings);
14992
- text-transform: var(--dsx-typography-display-large-text-transform);
14993
- text-decoration: var(--dsx-typography-display-large-text-decoration);
14994
- }
15459
+ .dsx-r-heading-size-7 {
15460
+ font-family: var(--dsx-typography-headline-large-font-family), sans-serif;
15461
+ font-size: var(--dsx-typography-headline-large-font-size);
15462
+ font-weight: var(--dsx-typography-headline-large-font-weight);
15463
+ line-height: var(--dsx-typography-headline-large-line-height);
15464
+ letter-spacing: var(--dsx-typography-headline-large-letter-spacing);
15465
+ font-variation-settings: var(--dsx-typography-headline-large-font-variation-settings);
15466
+ text-transform: var(--dsx-typography-headline-large-text-transform);
15467
+ text-decoration: var(--dsx-typography-headline-large-text-decoration);
14995
15468
  }
14996
15469
 
14997
- @media(min-width: 1280px) {
14998
- .xl\:dsx-r-heading-size-1 {
14999
- font-family: var(--dsx-typography-label-small-font-family), sans-serif;
15000
- font-size: var(--dsx-typography-label-small-font-size);
15001
- font-weight: var(--dsx-typography-label-small-font-weight);
15002
- line-height: var(--dsx-typography-label-small-line-height);
15003
- letter-spacing: var(--dsx-typography-label-small-letter-spacing);
15004
- font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
15005
- text-transform: var(--dsx-typography-label-small-text-transform);
15006
- text-decoration: var(--dsx-typography-label-small-text-decoration);
15007
- }
15008
-
15009
- .xl\:dsx-r-heading-size-2 {
15010
- font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
15011
- font-size: var(--dsx-typography-label-medium-font-size);
15012
- font-weight: var(--dsx-typography-label-medium-font-weight);
15013
- line-height: var(--dsx-typography-label-medium-line-height);
15014
- letter-spacing: var(--dsx-typography-label-medium-letter-spacing);
15015
- font-variation-settings: var(--dsx-typography-label-medium-font-variation-settings);
15016
- text-transform: var(--dsx-typography-label-medium-text-transform);
15017
- text-decoration: var(--dsx-typography-label-medium-text-decoration);
15018
- }
15019
-
15020
- .xl\:dsx-r-heading-size-3 {
15021
- font-family: var(--dsx-typography-label-large-font-family), sans-serif;
15022
- font-size: var(--dsx-typography-label-large-font-size);
15023
- font-weight: var(--dsx-typography-label-large-font-weight);
15024
- line-height: var(--dsx-typography-label-large-line-height);
15025
- letter-spacing: var(--dsx-typography-label-large-letter-spacing);
15026
- font-variation-settings: var(--dsx-typography-label-large-font-variation-settings);
15027
- text-transform: var(--dsx-typography-label-large-text-transform);
15028
- text-decoration: var(--dsx-typography-label-large-text-decoration);
15029
- }
15030
-
15031
- .xl\:dsx-r-heading-size-4 {
15032
- font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
15033
- font-size: var(--dsx-typography-body-medium-font-size);
15034
- font-weight: var(--dsx-typography-body-medium-font-weight);
15035
- line-height: var(--dsx-typography-body-medium-line-height);
15036
- letter-spacing: var(--dsx-typography-body-medium-letter-spacing);
15037
- font-variation-settings: var(--dsx-typography-body-medium-font-variation-settings);
15038
- text-transform: var(--dsx-typography-body-medium-text-transform);
15039
- text-decoration: var(--dsx-typography-body-medium-text-decoration);
15040
- }
15041
-
15042
- .xl\:dsx-r-heading-size-5 {
15043
- font-family: var(--dsx-typography-body-large-font-family), sans-serif;
15044
- font-size: var(--dsx-typography-body-large-font-size);
15045
- font-weight: var(--dsx-typography-body-large-font-weight);
15046
- line-height: var(--dsx-typography-body-large-line-height);
15047
- letter-spacing: var(--dsx-typography-body-large-letter-spacing);
15048
- font-variation-settings: var(--dsx-typography-body-large-font-variation-settings);
15049
- text-transform: var(--dsx-typography-body-large-text-transform);
15050
- text-decoration: var(--dsx-typography-body-large-text-decoration);
15051
- }
15052
-
15053
- .xl\:dsx-r-heading-size-6 {
15054
- font-family: var(--dsx-typography-headline-medium-font-family), sans-serif;
15055
- font-size: var(--dsx-typography-headline-medium-font-size);
15056
- font-weight: var(--dsx-typography-headline-medium-font-weight);
15057
- line-height: var(--dsx-typography-headline-medium-line-height);
15058
- letter-spacing: var(--dsx-typography-headline-medium-letter-spacing);
15059
- font-variation-settings: var(--dsx-typography-headline-medium-font-variation-settings);
15060
- text-transform: var(--dsx-typography-headline-medium-text-transform);
15061
- text-decoration: var(--dsx-typography-headline-medium-text-decoration);
15062
- }
15063
-
15064
- .xl\:dsx-r-heading-size-7 {
15065
- font-family: var(--dsx-typography-headline-large-font-family), sans-serif;
15066
- font-size: var(--dsx-typography-headline-large-font-size);
15067
- font-weight: var(--dsx-typography-headline-large-font-weight);
15068
- line-height: var(--dsx-typography-headline-large-line-height);
15069
- letter-spacing: var(--dsx-typography-headline-large-letter-spacing);
15070
- font-variation-settings: var(--dsx-typography-headline-large-font-variation-settings);
15071
- text-transform: var(--dsx-typography-headline-large-text-transform);
15072
- text-decoration: var(--dsx-typography-headline-large-text-decoration);
15073
- }
15074
-
15075
- .xl\:dsx-r-heading-size-8 {
15076
- font-family: var(--dsx-typography-display-medium-font-family), sans-serif;
15077
- font-size: var(--dsx-typography-display-medium-font-size);
15078
- font-weight: var(--dsx-typography-display-medium-font-weight);
15079
- line-height: var(--dsx-typography-display-medium-line-height);
15080
- letter-spacing: var(--dsx-typography-display-medium-letter-spacing);
15081
- font-variation-settings: var(--dsx-typography-display-medium-font-variation-settings);
15082
- text-transform: var(--dsx-typography-display-medium-text-transform);
15083
- text-decoration: var(--dsx-typography-display-medium-text-decoration);
15084
- }
15085
-
15086
- .xl\:dsx-r-heading-size-9 {
15087
- font-family: var(--dsx-typography-display-large-font-family), sans-serif;
15088
- font-size: var(--dsx-typography-display-large-font-size);
15089
- font-weight: var(--dsx-typography-display-large-font-weight);
15090
- line-height: var(--dsx-typography-display-large-line-height);
15091
- letter-spacing: var(--dsx-typography-display-large-letter-spacing);
15092
- font-variation-settings: var(--dsx-typography-display-large-font-variation-settings);
15093
- text-transform: var(--dsx-typography-display-large-text-transform);
15094
- text-decoration: var(--dsx-typography-display-large-text-decoration);
15095
- }
15470
+ .dsx-r-heading-size-8 {
15471
+ font-family: var(--dsx-typography-display-medium-font-family), sans-serif;
15472
+ font-size: var(--dsx-typography-display-medium-font-size);
15473
+ font-weight: var(--dsx-typography-display-medium-font-weight);
15474
+ line-height: var(--dsx-typography-display-medium-line-height);
15475
+ letter-spacing: var(--dsx-typography-display-medium-letter-spacing);
15476
+ font-variation-settings: var(--dsx-typography-display-medium-font-variation-settings);
15477
+ text-transform: var(--dsx-typography-display-medium-text-transform);
15478
+ text-decoration: var(--dsx-typography-display-medium-text-decoration);
15096
15479
  }
15097
15480
 
15098
- @media(min-width: 1536px) {
15099
- .\32 xl\:dsx-r-heading-size-1 {
15100
- font-family: var(--dsx-typography-label-small-font-family), sans-serif;
15101
- font-size: var(--dsx-typography-label-small-font-size);
15102
- font-weight: var(--dsx-typography-label-small-font-weight);
15103
- line-height: var(--dsx-typography-label-small-line-height);
15104
- letter-spacing: var(--dsx-typography-label-small-letter-spacing);
15105
- font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
15106
- text-transform: var(--dsx-typography-label-small-text-transform);
15107
- text-decoration: var(--dsx-typography-label-small-text-decoration);
15108
- }
15109
-
15110
- .\32 xl\:dsx-r-heading-size-2 {
15111
- font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
15112
- font-size: var(--dsx-typography-label-medium-font-size);
15113
- font-weight: var(--dsx-typography-label-medium-font-weight);
15114
- line-height: var(--dsx-typography-label-medium-line-height);
15115
- letter-spacing: var(--dsx-typography-label-medium-letter-spacing);
15116
- font-variation-settings: var(--dsx-typography-label-medium-font-variation-settings);
15117
- text-transform: var(--dsx-typography-label-medium-text-transform);
15118
- text-decoration: var(--dsx-typography-label-medium-text-decoration);
15119
- }
15120
-
15121
- .\32 xl\:dsx-r-heading-size-3 {
15122
- font-family: var(--dsx-typography-label-large-font-family), sans-serif;
15123
- font-size: var(--dsx-typography-label-large-font-size);
15124
- font-weight: var(--dsx-typography-label-large-font-weight);
15125
- line-height: var(--dsx-typography-label-large-line-height);
15126
- letter-spacing: var(--dsx-typography-label-large-letter-spacing);
15127
- font-variation-settings: var(--dsx-typography-label-large-font-variation-settings);
15128
- text-transform: var(--dsx-typography-label-large-text-transform);
15129
- text-decoration: var(--dsx-typography-label-large-text-decoration);
15130
- }
15131
-
15132
- .\32 xl\:dsx-r-heading-size-4 {
15133
- font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
15134
- font-size: var(--dsx-typography-body-medium-font-size);
15135
- font-weight: var(--dsx-typography-body-medium-font-weight);
15136
- line-height: var(--dsx-typography-body-medium-line-height);
15137
- letter-spacing: var(--dsx-typography-body-medium-letter-spacing);
15138
- font-variation-settings: var(--dsx-typography-body-medium-font-variation-settings);
15139
- text-transform: var(--dsx-typography-body-medium-text-transform);
15140
- text-decoration: var(--dsx-typography-body-medium-text-decoration);
15141
- }
15142
-
15143
- .\32 xl\:dsx-r-heading-size-5 {
15144
- font-family: var(--dsx-typography-body-large-font-family), sans-serif;
15145
- font-size: var(--dsx-typography-body-large-font-size);
15146
- font-weight: var(--dsx-typography-body-large-font-weight);
15147
- line-height: var(--dsx-typography-body-large-line-height);
15148
- letter-spacing: var(--dsx-typography-body-large-letter-spacing);
15149
- font-variation-settings: var(--dsx-typography-body-large-font-variation-settings);
15150
- text-transform: var(--dsx-typography-body-large-text-transform);
15151
- text-decoration: var(--dsx-typography-body-large-text-decoration);
15152
- }
15153
-
15154
- .\32 xl\:dsx-r-heading-size-6 {
15155
- font-family: var(--dsx-typography-headline-medium-font-family), sans-serif;
15156
- font-size: var(--dsx-typography-headline-medium-font-size);
15157
- font-weight: var(--dsx-typography-headline-medium-font-weight);
15158
- line-height: var(--dsx-typography-headline-medium-line-height);
15159
- letter-spacing: var(--dsx-typography-headline-medium-letter-spacing);
15160
- font-variation-settings: var(--dsx-typography-headline-medium-font-variation-settings);
15161
- text-transform: var(--dsx-typography-headline-medium-text-transform);
15162
- text-decoration: var(--dsx-typography-headline-medium-text-decoration);
15163
- }
15164
-
15165
- .\32 xl\:dsx-r-heading-size-7 {
15166
- font-family: var(--dsx-typography-headline-large-font-family), sans-serif;
15167
- font-size: var(--dsx-typography-headline-large-font-size);
15168
- font-weight: var(--dsx-typography-headline-large-font-weight);
15169
- line-height: var(--dsx-typography-headline-large-line-height);
15170
- letter-spacing: var(--dsx-typography-headline-large-letter-spacing);
15171
- font-variation-settings: var(--dsx-typography-headline-large-font-variation-settings);
15172
- text-transform: var(--dsx-typography-headline-large-text-transform);
15173
- text-decoration: var(--dsx-typography-headline-large-text-decoration);
15174
- }
15175
-
15176
- .\32 xl\:dsx-r-heading-size-8 {
15177
- font-family: var(--dsx-typography-display-medium-font-family), sans-serif;
15178
- font-size: var(--dsx-typography-display-medium-font-size);
15179
- font-weight: var(--dsx-typography-display-medium-font-weight);
15180
- line-height: var(--dsx-typography-display-medium-line-height);
15181
- letter-spacing: var(--dsx-typography-display-medium-letter-spacing);
15182
- font-variation-settings: var(--dsx-typography-display-medium-font-variation-settings);
15183
- text-transform: var(--dsx-typography-display-medium-text-transform);
15184
- text-decoration: var(--dsx-typography-display-medium-text-decoration);
15185
- }
15186
-
15187
- .\32 xl\:dsx-r-heading-size-9 {
15188
- font-family: var(--dsx-typography-display-large-font-family), sans-serif;
15189
- font-size: var(--dsx-typography-display-large-font-size);
15190
- font-weight: var(--dsx-typography-display-large-font-weight);
15191
- line-height: var(--dsx-typography-display-large-line-height);
15192
- letter-spacing: var(--dsx-typography-display-large-letter-spacing);
15193
- font-variation-settings: var(--dsx-typography-display-large-font-variation-settings);
15194
- text-transform: var(--dsx-typography-display-large-text-transform);
15195
- text-decoration: var(--dsx-typography-display-large-text-decoration);
15196
- }
15481
+ .dsx-r-heading-size-9 {
15482
+ font-family: var(--dsx-typography-display-large-font-family), sans-serif;
15483
+ font-size: var(--dsx-typography-display-large-font-size);
15484
+ font-weight: var(--dsx-typography-display-large-font-weight);
15485
+ line-height: var(--dsx-typography-display-large-line-height);
15486
+ letter-spacing: var(--dsx-typography-display-large-letter-spacing);
15487
+ font-variation-settings: var(--dsx-typography-display-large-font-variation-settings);
15488
+ text-transform: var(--dsx-typography-display-large-text-transform);
15489
+ text-decoration: var(--dsx-typography-display-large-text-decoration);
15197
15490
  }
15198
15491
 
15199
15492
  .dsx-icon-button {
@@ -15417,35 +15710,34 @@ textarea {
15417
15710
  color: currentColor;
15418
15711
  }
15419
15712
 
15713
+ /* Native inline flow keeps links inside the surrounding sentence. */
15714
+
15420
15715
  .dsx-link {
15421
15716
  box-sizing: border-box;
15422
- display: inline-flex;
15423
- align-items: center;
15424
- gap: var(--dsx-space-xs);
15717
+ display: inline;
15718
+ /* Native inline boxes ignore these; standalone flex/grid items keep a 24px floor. */
15719
+ min-inline-size: calc(var(--dsx-size-md) / var(--dsx-density-scale));
15720
+ min-block-size: calc(var(--dsx-size-md) / var(--dsx-density-scale));
15425
15721
  cursor: pointer;
15722
+ overflow-wrap: anywhere;
15426
15723
  text-decoration: none;
15427
- color: var(--dsx-color-primary);
15428
- transition: color var(--dsx-motion-duration-fast, 150ms) var(--dsx-motion-easing-standard, ease);
15429
- }
15430
-
15431
- /* Accent color overrides */
15432
-
15433
- .dsx-link[data-accent-color='rift'] {
15434
- color: var(--dsx-color-accent-9);
15435
- }
15436
-
15437
- .dsx-link[data-accent-color='warp'] {
15438
- color: var(--dsx-color-accent-9);
15724
+ text-decoration-color: currentColor;
15725
+ text-decoration-style: solid;
15726
+ text-decoration-thickness: min(2px, max(1px, 0.05em));
15727
+ text-underline-offset: calc(0.025em + 2px);
15728
+ color: var(--dsx-color-accent-indicator);
15729
+ transition: color var(--dsx-motion-duration-fast) var(--dsx-motion-easing-standard);
15439
15730
  }
15440
15731
 
15441
- .dsx-link[data-accent-color='ray'] {
15442
- color: var(--dsx-color-accent-9);
15732
+ .dsx-link :where(svg) {
15733
+ vertical-align: middle;
15734
+ margin-inline-end: var(--dsx-space-xs);
15443
15735
  }
15444
15736
 
15445
- .dsx-link:focus-visible {
15737
+ .dsx-link:where(:focus-visible) {
15446
15738
  border-radius: var(--dsx-rounded-sm);
15447
- outline: 2px solid var(--dsx-effect-ring-focus);
15448
- outline-offset: var(--dsx-focus-ring-offset, 2px);
15739
+ outline: var(--dsx-border-width-lg) solid var(--dsx-effect-ring-focus);
15740
+ outline-offset: var(--dsx-space-0-5);
15449
15741
  }
15450
15742
 
15451
15743
  .dsx-link--muted {
@@ -15458,88 +15750,34 @@ textarea {
15458
15750
 
15459
15751
  .dsx-link--always {
15460
15752
  text-decoration-line: underline;
15461
- text-decoration-style: solid;
15462
- /* Browser-native underline thickness heuristic: min(2px, max(1px, 0.05em)) adapts to font size */
15463
- text-decoration-thickness: min(2px, max(1px, 0.05em));
15464
- /* Browser-native underline offset heuristic: calc(0.025em + 2px) for optical alignment */
15465
- text-underline-offset: calc(0.025em + 2px);
15466
- text-decoration-color: var(--dsx-color-primary);
15467
- }
15468
-
15469
- .dsx-link[data-accent-color='rift'].dsx-link--always {
15470
- text-decoration-color: var(--dsx-color-accent-9);
15471
- }
15472
-
15473
- .dsx-link[data-accent-color='warp'].dsx-link--always {
15474
- text-decoration-color: var(--dsx-color-accent-9);
15475
- }
15476
-
15477
- .dsx-link[data-accent-color='ray'].dsx-link--always {
15478
- text-decoration-color: var(--dsx-color-accent-9);
15479
15753
  }
15480
15754
 
15481
- .dsx-link--hover {
15755
+ .dsx-link--auto,
15756
+ .dsx-link--hover,
15757
+ .dsx-link--none {
15482
15758
  text-decoration-line: none;
15483
15759
  }
15484
15760
 
15485
15761
  @media (hover: hover) {
15486
- .dsx-link--hover:hover {
15762
+ .dsx-link:where(.dsx-link--auto, .dsx-link--hover):hover {
15487
15763
  text-decoration-line: underline;
15488
- text-decoration-style: solid;
15489
- /* Browser-native underline thickness heuristic: min(2px, max(1px, 0.05em)) adapts to font size */
15490
- text-decoration-thickness: min(2px, max(1px, 0.05em));
15491
- /* Browser-native underline offset heuristic: calc(0.025em + 2px) for optical alignment */
15492
- text-underline-offset: calc(0.025em + 2px);
15493
- text-decoration-color: var(--dsx-color-primary);
15494
- }
15495
-
15496
- .dsx-link[data-accent-color='rift'].dsx-link--hover:hover {
15497
- text-decoration-color: var(--dsx-color-accent-9);
15498
- }
15499
-
15500
- .dsx-link[data-accent-color='warp'].dsx-link--hover:hover {
15501
- text-decoration-color: var(--dsx-color-accent-9);
15502
- }
15503
-
15504
- .dsx-link[data-accent-color='ray'].dsx-link--hover:hover {
15505
- text-decoration-color: var(--dsx-color-accent-9);
15506
15764
  }
15507
15765
  }
15508
15766
 
15509
- .dsx-link--auto {
15510
- text-decoration-line: none;
15511
- }
15767
+ /* Default links remain identifiable on touch; explicit hover/none stay opt-in. */
15512
15768
 
15513
- @media (hover: hover) {
15514
- .dsx-link--auto:hover {
15769
+ @media (hover: none) {
15770
+ .dsx-link--auto {
15515
15771
  text-decoration-line: underline;
15516
- text-decoration-style: solid;
15517
- /* Browser-native underline thickness heuristic: min(2px, max(1px, 0.05em)) adapts to font size */
15518
- text-decoration-thickness: min(2px, max(1px, 0.05em));
15519
- /* Browser-native underline offset heuristic: calc(0.025em + 2px) for optical alignment */
15520
- text-underline-offset: calc(0.025em + 2px);
15521
- text-decoration-color: var(--dsx-color-primary);
15522
- }
15523
-
15524
- .dsx-link[data-accent-color='rift'].dsx-link--auto:hover {
15525
- text-decoration-color: var(--dsx-color-accent-9);
15526
- }
15527
-
15528
- .dsx-link[data-accent-color='warp'].dsx-link--auto:hover {
15529
- text-decoration-color: var(--dsx-color-accent-9);
15530
- }
15531
-
15532
- .dsx-link[data-accent-color='ray'].dsx-link--auto:hover {
15533
- text-decoration-color: var(--dsx-color-accent-9);
15534
15772
  }
15535
15773
  }
15536
15774
 
15537
- a.dsx-link--none,
15538
- button.dsx-link--none {
15539
- text-decoration-line: none;
15775
+ .dsx-link:where(.dsx-link--auto, .dsx-link--hover):focus-visible,
15776
+ .dsx-link:where(.dsx-link--auto, .dsx-link--hover):active {
15777
+ text-decoration-line: underline;
15540
15778
  }
15541
15779
 
15542
- /* Size scale — mirrors Text/Heading's responsive 1-9 font-size mapping */
15780
+ /* Preserve the existing single-value font-size mapping. */
15543
15781
 
15544
15782
  .dsx-link[data-size='1'] { font-size: var(--dsx-typography-label-small-font-size); }
15545
15783
 
@@ -15559,20 +15797,13 @@ button.dsx-link--none {
15559
15797
 
15560
15798
  .dsx-link[data-size='9'] { font-size: var(--dsx-typography-display-large-font-size); }
15561
15799
 
15562
- /* High-contrast mode — shift link color to HC family (Pattern 3) */
15563
-
15564
- .dsx-link[data-high-contrast='true'] {
15800
+ .dsx-link:where(:not(.dsx-link--inverse))[data-high-contrast='true'] {
15565
15801
  color: var(--dsx-color-high-contrast);
15566
15802
  }
15567
15803
 
15568
- .dsx-link[data-high-contrast='true'].dsx-link--always {
15569
- text-decoration-color: var(--dsx-color-high-contrast);
15570
- }
15571
-
15572
- @media (hover: hover) {
15573
- .dsx-link[data-high-contrast='true'].dsx-link--hover:hover,
15574
- .dsx-link[data-high-contrast='true'].dsx-link--auto:hover {
15575
- text-decoration-color: var(--dsx-color-high-contrast);
15804
+ @media (prefers-reduced-motion: reduce) {
15805
+ .dsx-link {
15806
+ transition: none;
15576
15807
  }
15577
15808
  }
15578
15809
 
@@ -16249,13 +16480,39 @@ button.dsx-link--none {
16249
16480
  background: var(--dsx-color-tertiary);
16250
16481
  }
16251
16482
 
16483
+ :where(.dsx-text) {
16484
+ --dsx-r-margin-top: initial;
16485
+ --dsx-r-margin-right: initial;
16486
+ --dsx-r-margin-bottom: initial;
16487
+ --dsx-r-margin-left: initial;
16488
+ --dsx-r-margin-top-override: initial;
16489
+ --dsx-r-margin-right-override: initial;
16490
+ --dsx-r-margin-bottom-override: initial;
16491
+ --dsx-r-margin-left-override: initial;
16492
+ }
16493
+
16252
16494
  .dsx-text {
16495
+ /* Spacing belongs to this element, not an enclosing layout primitive. */
16496
+ --dsx-r-m: initial;
16497
+ --dsx-r-mx: initial;
16498
+ --dsx-r-my: initial;
16499
+ --dsx-r-mt: initial;
16500
+ --dsx-r-mr: initial;
16501
+ --dsx-r-mb: initial;
16502
+ --dsx-r-ml: initial;
16503
+ --dsx-r-p: initial;
16504
+ --dsx-r-px: initial;
16505
+ --dsx-r-py: initial;
16506
+ --dsx-r-pt: initial;
16507
+ --dsx-r-pr: initial;
16508
+ --dsx-r-pb: initial;
16509
+ --dsx-r-pl: initial;
16253
16510
  box-sizing: border-box;
16254
16511
  margin: var(--dsx-r-m, 0);
16255
- margin-top: var(--dsx-r-mt, var(--dsx-r-my, var(--dsx-r-m, 0)));
16256
- margin-right: var(--dsx-r-mr, var(--dsx-r-mx, var(--dsx-r-m, 0)));
16257
- margin-bottom: var(--dsx-r-mb, var(--dsx-r-my, var(--dsx-r-m, 0)));
16258
- margin-left: var(--dsx-r-ml, var(--dsx-r-mx, var(--dsx-r-m, 0)));
16512
+ margin-top: var(--dsx-r-margin-top-override, var(--dsx-r-margin-top, 0));
16513
+ margin-right: var(--dsx-r-margin-right-override, var(--dsx-r-margin-right, 0));
16514
+ margin-bottom: var(--dsx-r-margin-bottom-override, var(--dsx-r-margin-bottom, 0));
16515
+ margin-left: var(--dsx-r-margin-left-override, var(--dsx-r-margin-left, 0));
16259
16516
  padding: var(--dsx-r-p, 0);
16260
16517
  padding-top: var(--dsx-r-pt, var(--dsx-r-py, var(--dsx-r-p, 0)));
16261
16518
  padding-right: var(--dsx-r-pr, var(--dsx-r-px, var(--dsx-r-p, 0)));
@@ -16338,42 +16595,51 @@ button.dsx-link--none {
16338
16595
  text-decoration: var(--dsx-typography-label-small-text-decoration);
16339
16596
  }
16340
16597
 
16341
- /* Responsive size scale (1-9) — font-size only, overrides variant when both provided */
16598
+ /* Existing size scale (1-9) — font size and matching role rhythm. */
16342
16599
 
16343
16600
  .dsx-r-text-size-1 {
16344
16601
  font-size: var(--dsx-typography-label-small-font-size);
16602
+ line-height: var(--dsx-typography-label-small-line-height);
16345
16603
  }
16346
16604
 
16347
16605
  .dsx-r-text-size-2 {
16348
16606
  font-size: var(--dsx-typography-label-medium-font-size);
16607
+ line-height: var(--dsx-typography-label-medium-line-height);
16349
16608
  }
16350
16609
 
16351
16610
  .dsx-r-text-size-3 {
16352
16611
  font-size: var(--dsx-typography-body-medium-font-size);
16612
+ line-height: var(--dsx-typography-body-medium-line-height);
16353
16613
  }
16354
16614
 
16355
16615
  .dsx-r-text-size-4 {
16356
16616
  font-size: var(--dsx-typography-body-large-font-size);
16617
+ line-height: var(--dsx-typography-body-large-line-height);
16357
16618
  }
16358
16619
 
16359
16620
  .dsx-r-text-size-5 {
16360
16621
  font-size: var(--dsx-typography-label-large-font-size);
16622
+ line-height: var(--dsx-typography-label-large-line-height);
16361
16623
  }
16362
16624
 
16363
16625
  .dsx-r-text-size-6 {
16364
16626
  font-size: var(--dsx-typography-headline-medium-font-size);
16627
+ line-height: var(--dsx-typography-headline-medium-line-height);
16365
16628
  }
16366
16629
 
16367
16630
  .dsx-r-text-size-7 {
16368
16631
  font-size: var(--dsx-typography-headline-large-font-size);
16632
+ line-height: var(--dsx-typography-headline-large-line-height);
16369
16633
  }
16370
16634
 
16371
16635
  .dsx-r-text-size-8 {
16372
16636
  font-size: var(--dsx-typography-display-medium-font-size);
16637
+ line-height: var(--dsx-typography-display-medium-line-height);
16373
16638
  }
16374
16639
 
16375
16640
  .dsx-r-text-size-9 {
16376
16641
  font-size: var(--dsx-typography-display-large-font-size);
16642
+ line-height: var(--dsx-typography-display-large-line-height);
16377
16643
  }
16378
16644
 
16379
16645
  .dsx-text--muted {
@@ -16395,11 +16661,14 @@ button.dsx-link--none {
16395
16661
 
16396
16662
  /* High-contrast mode — shift text color to HC family (Pattern 3) */
16397
16663
 
16398
- .dsx-text[data-high-contrast='true'] {
16664
+ .dsx-text:where(:not(.dsx-text--inverse))[data-high-contrast='true'] {
16399
16665
  color: var(--dsx-color-high-contrast);
16400
16666
  }
16401
16667
 
16402
16668
  .dsx-theme-panel {
16669
+ box-sizing: border-box;
16670
+ min-width: 0;
16671
+ max-width: 100%;
16403
16672
  display: flex;
16404
16673
  flex-direction: column;
16405
16674
  gap: var(--dsx-space-xs);
@@ -16412,6 +16681,8 @@ button.dsx-link--none {
16412
16681
  }
16413
16682
 
16414
16683
  .dsx-theme-panel__row {
16684
+ flex-wrap: wrap;
16685
+ min-width: 0;
16415
16686
  display: flex;
16416
16687
  align-items: center;
16417
16688
  justify-content: space-between;
@@ -16420,6 +16691,7 @@ button.dsx-link--none {
16420
16691
  }
16421
16692
 
16422
16693
  .dsx-theme-panel__label {
16694
+ overflow-wrap: anywhere;
16423
16695
  color: var(--dsx-color-on-surface-variant);
16424
16696
  }
16425
16697
 
@@ -16462,6 +16734,7 @@ button.dsx-link--none {
16462
16734
 
16463
16735
  .dsx-text-field__input {
16464
16736
  flex: 1;
16737
+ min-inline-size: 0;
16465
16738
  border: 0;
16466
16739
  background: transparent;
16467
16740
  color: var(--dsx-color-on-surface);
@@ -17214,8 +17487,12 @@ span.dsx-filter-bar__condition-label {
17214
17487
  }
17215
17488
 
17216
17489
  .dsx-stepper {
17490
+ --dsx-stepper-indicator-size: var(--dsx-size-lg);
17217
17491
  display: flex;
17492
+ flex-wrap: wrap;
17218
17493
  box-sizing: border-box;
17494
+ min-width: 0;
17495
+ max-width: 100%;
17219
17496
  }
17220
17497
 
17221
17498
  .dsx-stepper--horizontal {
@@ -17268,25 +17545,25 @@ span.dsx-filter-bar__condition-label {
17268
17545
  }
17269
17546
 
17270
17547
  /* Connector, ported from vertical mode's already-correct technique: an absolutely-positioned
17271
- line anchored directly to the Indicator's own known geometry (--dsx-size-md is its
17548
+ line anchored directly to the Indicator's own known geometry (--dsx-stepper-indicator-size is its
17272
17549
  diameter), not a flex-sibling that only knows about leftover space between item boxes.
17273
17550
  Starts right at the Indicator's own right edge (left: --dsx-size-md) and extends past this
17274
17551
  item's own right edge into the inter-item `gap` above (right: -gap), landing exactly at the
17275
17552
  start of the next item's box — which is where its Indicator begins, since Indicator is
17276
17553
  always flush-left in the item column. */
17277
17554
 
17278
- .dsx-stepper--horizontal .dsx-stepper__item:not(:last-child)::after {
17555
+ .dsx-stepper--horizontal .dsx-stepper__item:has(~ .dsx-stepper__item)::after {
17279
17556
  content: '';
17280
17557
  position: absolute;
17281
- top: calc(var(--dsx-size-md) / 2 - var(--dsx-border-width-lg) / 2);
17282
- left: var(--dsx-size-md);
17558
+ top: calc(var(--dsx-stepper-indicator-size) / 2 - var(--dsx-border-width-lg) / 2);
17559
+ left: var(--dsx-stepper-indicator-size);
17283
17560
  right: calc(-1 * var(--dsx-space-lg));
17284
17561
  height: var(--dsx-border-width-lg);
17285
17562
  background: var(--dsx-color-outline-variant);
17286
17563
  border-radius: var(--dsx-rounded-full);
17287
17564
  }
17288
17565
 
17289
- .dsx-stepper--horizontal .dsx-stepper__item--complete:not(:last-child)::after {
17566
+ .dsx-stepper--horizontal .dsx-stepper__item--complete:has(~ .dsx-stepper__item)::after {
17290
17567
  background: var(--dsx-color-primary);
17291
17568
  }
17292
17569
 
@@ -17308,24 +17585,24 @@ span.dsx-filter-bar__condition-label {
17308
17585
  width: 100%;
17309
17586
  }
17310
17587
 
17311
- .dsx-stepper--vertical .dsx-stepper__item:last-child {
17588
+ .dsx-stepper--vertical .dsx-stepper__item:not(:has(~ .dsx-stepper__item)) {
17312
17589
  padding-bottom: 0;
17313
17590
  }
17314
17591
 
17315
17592
  /* Connector line drawn from bottom of indicator to bottom of item (padding area) */
17316
17593
 
17317
- .dsx-stepper--vertical .dsx-stepper__item:not(:last-child)::after {
17594
+ .dsx-stepper--vertical .dsx-stepper__item:has(~ .dsx-stepper__item)::after {
17318
17595
  content: '';
17319
17596
  position: absolute;
17320
- top: var(--dsx-size-md);
17321
- left: calc(var(--dsx-size-md) / 2 - var(--dsx-border-width-lg) / 2);
17597
+ top: var(--dsx-stepper-indicator-size);
17598
+ left: calc(var(--dsx-stepper-indicator-size) / 2 - var(--dsx-border-width-lg) / 2);
17322
17599
  bottom: 0;
17323
17600
  width: var(--dsx-border-width-lg);
17324
17601
  background: var(--dsx-color-outline-variant);
17325
17602
  border-radius: var(--dsx-rounded-full);
17326
17603
  }
17327
17604
 
17328
- .dsx-stepper--vertical .dsx-stepper__item--complete:not(:last-child)::after {
17605
+ .dsx-stepper--vertical .dsx-stepper__item--complete:has(~ .dsx-stepper__item)::after {
17329
17606
  background: var(--dsx-color-primary);
17330
17607
  }
17331
17608
 
@@ -17336,12 +17613,13 @@ span.dsx-filter-bar__condition-label {
17336
17613
  }
17337
17614
 
17338
17615
  .dsx-stepper__indicator {
17616
+ box-sizing: border-box;
17339
17617
  display: inline-flex;
17340
17618
  align-items: center;
17341
17619
  justify-content: center;
17342
17620
  flex-shrink: 0;
17343
- width: var(--dsx-size-md);
17344
- height: var(--dsx-size-md);
17621
+ width: var(--dsx-stepper-indicator-size);
17622
+ height: var(--dsx-stepper-indicator-size);
17345
17623
  border-radius: var(--dsx-rounded-full);
17346
17624
  border: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
17347
17625
  font-family: var(--dsx-typography-label-medium-font-family), sans-serif;
@@ -17375,6 +17653,7 @@ span.dsx-filter-bar__condition-label {
17375
17653
  }
17376
17654
 
17377
17655
  .dsx-stepper__label {
17656
+ overflow-wrap: anywhere;
17378
17657
  font-family: var(--dsx-typography-label-large-font-family), sans-serif;
17379
17658
  font-size: var(--dsx-typography-label-large-font-size);
17380
17659
  font-weight: var(--dsx-typography-label-large-font-weight);
@@ -17390,6 +17669,7 @@ span.dsx-filter-bar__condition-label {
17390
17669
  }
17391
17670
 
17392
17671
  .dsx-stepper__description {
17672
+ overflow-wrap: anywhere;
17393
17673
  font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
17394
17674
  font-size: var(--dsx-typography-body-medium-font-size);
17395
17675
  color: var(--dsx-color-on-surface-variant);
@@ -17417,12 +17697,22 @@ span.dsx-filter-bar__condition-label {
17417
17697
  margin-top: var(--dsx-space-lg);
17418
17698
  }
17419
17699
 
17700
+ .dsx-stepper[data-size='sm'] { --dsx-stepper-indicator-size: var(--dsx-size-md); }
17701
+
17702
+ .dsx-stepper[data-size='lg'] { --dsx-stepper-indicator-size: var(--dsx-size-xl); }
17703
+
17704
+ .dsx-stepper__item > :not(.dsx-stepper__indicator) { min-width: 0; max-width: 100%; }
17705
+
17420
17706
  .dsx-notification-center {
17421
17707
  box-sizing: border-box;
17708
+ display: flex;
17709
+ flex-direction: column;
17710
+ min-width: 0;
17711
+ max-width: 100%;
17422
17712
  }
17423
17713
 
17424
17714
  .dsx-notification-center--popover {
17425
- width: 320px;
17715
+ width: var(--dsx-sheet-width-sm);
17426
17716
  border-radius: var(--dsx-rounded-lg);
17427
17717
  border: var(--dsx-border-width-sm) solid var(--dsx-panel-border-color);
17428
17718
  background: var(--dsx-color-panel-translucent);
@@ -17440,6 +17730,9 @@ span.dsx-filter-bar__condition-label {
17440
17730
  display: flex;
17441
17731
  align-items: center;
17442
17732
  justify-content: space-between;
17733
+ flex-wrap: wrap;
17734
+ flex-shrink: 0;
17735
+ gap: var(--dsx-space-sm);
17443
17736
  padding: var(--dsx-space-md);
17444
17737
  border-bottom: var(--dsx-border-width-sm) solid var(--dsx-color-outline-variant);
17445
17738
  }
@@ -17452,6 +17745,8 @@ span.dsx-filter-bar__condition-label {
17452
17745
  }
17453
17746
 
17454
17747
  .dsx-notification-center__list {
17748
+ flex: 1 1 auto;
17749
+ min-height: 0;
17455
17750
  overflow-y: auto;
17456
17751
  max-height: 400px;
17457
17752
  }
@@ -17463,16 +17758,36 @@ span.dsx-filter-bar__condition-label {
17463
17758
  padding: var(--dsx-space-md);
17464
17759
  border-bottom: var(--dsx-border-width-sm) solid var(--dsx-color-outline-variant);
17465
17760
  cursor: pointer;
17761
+ width: 100%;
17762
+ box-sizing: border-box;
17763
+ text-align: start;
17764
+ font: inherit;
17765
+ color: inherit;
17766
+ background: transparent;
17767
+ border-top: 0;
17768
+ border-right: 0;
17769
+ border-left: var(--dsx-border-width-sm) solid transparent;
17770
+ overflow-wrap: anywhere;
17466
17771
  }
17467
17772
 
17468
17773
  .dsx-notification-center__item:last-child {
17469
17774
  border-bottom: none;
17470
17775
  }
17471
17776
 
17472
- .dsx-notification-center__item:hover {
17777
+ .dsx-notification-center__item:hover,
17778
+ .dsx-notification-center__item:focus-visible {
17473
17779
  background: var(--dsx-effect-hover-ghost);
17474
17780
  }
17475
17781
 
17782
+ .dsx-notification-center__item:focus-visible {
17783
+ outline: var(--dsx-border-width-md) solid var(--dsx-color-primary);
17784
+ outline-offset: calc(-1 * var(--dsx-border-width-md));
17785
+ }
17786
+
17787
+ .dsx-notification-center__item:active {
17788
+ background: var(--dsx-effect-pressed-layer);
17789
+ }
17790
+
17476
17791
  .dsx-notification-center__item--unread {
17477
17792
  background: var(--dsx-color-surface-raised);
17478
17793
  border-left: var(--dsx-border-width-sm) solid var(--dsx-color-primary);
@@ -17501,26 +17816,37 @@ span.dsx-filter-bar__condition-label {
17501
17816
  display: flex;
17502
17817
  align-items: center;
17503
17818
  justify-content: center;
17819
+ flex-shrink: 0;
17504
17820
  padding: var(--dsx-space-sm);
17505
17821
  border-top: var(--dsx-border-width-sm) solid var(--dsx-color-outline-variant);
17506
17822
  }
17507
17823
 
17508
- .dsx-notification-center__trigger {
17824
+ .dsx-notification-center__trigger.dsx-icon-button {
17509
17825
  position: relative;
17510
17826
  display: inline-flex;
17511
17827
  align-items: center;
17828
+ gap: 0;
17829
+ width: auto;
17830
+ min-width: calc(var(--dsx-size-xl) + var(--dsx-space-xs));
17831
+ height: calc(var(--dsx-size-xl) + var(--dsx-space-xs));
17832
+ padding-inline: var(--dsx-space-sm);
17833
+ }
17834
+
17835
+ .dsx-notification-center__trigger .dsx-icon-button__content {
17836
+ gap: 0;
17512
17837
  }
17513
17838
 
17514
17839
  .dsx-notification-center__badge {
17515
- position: absolute;
17516
- top: calc(-1 * var(--dsx-space-xs));
17517
- right: calc(-1 * var(--dsx-space-xs));
17518
- min-width: var(--dsx-size-xs);
17519
- height: var(--dsx-size-xs);
17840
+ position: relative;
17841
+ top: calc(-1 * var(--dsx-space-sm));
17842
+ margin-inline-start: calc(-1 * var(--dsx-space-xs));
17843
+ flex-shrink: 0;
17844
+ min-width: var(--dsx-size-sm);
17845
+ height: var(--dsx-size-sm);
17520
17846
  padding: 0 var(--dsx-space-xs);
17521
17847
  border-radius: var(--dsx-rounded-full);
17522
17848
  font-size: var(--dsx-typography-label-small-font-size);
17523
- line-height: var(--dsx-size-xs);
17849
+ line-height: var(--dsx-size-sm);
17524
17850
  text-align: center;
17525
17851
  }
17526
17852
 
@@ -17731,6 +18057,9 @@ span.dsx-filter-bar__condition-label {
17731
18057
 
17732
18058
  .dsx-pill {
17733
18059
  display: inline-flex;
18060
+ min-width: 0;
18061
+ max-width: 100%;
18062
+ overflow-wrap: anywhere;
17734
18063
  align-items: center;
17735
18064
  gap: var(--dsx-space-xs);
17736
18065
  cursor: default;
@@ -17871,6 +18200,9 @@ span.dsx-filter-bar__condition-label {
17871
18200
 
17872
18201
  .dsx-pill__remove {
17873
18202
  display: inline-flex;
18203
+ flex: none;
18204
+ min-width: max(var(--dsx-size-md), calc(var(--dsx-size-md) / var(--dsx-density-scale, 1)));
18205
+ min-height: max(var(--dsx-size-md), calc(var(--dsx-size-md) / var(--dsx-density-scale, 1)));
17874
18206
  align-items: center;
17875
18207
  justify-content: center;
17876
18208
  padding: 0;