@usefragments/ui 1.7.0 → 2.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 (551) hide show
  1. package/README.md +54 -66
  2. package/dist/assets/nav-glyph.cjs +139 -0
  3. package/dist/assets/nav-glyph.d.ts +28 -0
  4. package/dist/assets/nav-glyph.d.ts.map +1 -0
  5. package/dist/assets/nav-glyph.js +139 -0
  6. package/dist/assets/nav-glyph.module.scss.cjs +71 -0
  7. package/dist/assets/nav-glyph.module.scss.js +71 -0
  8. package/dist/assets/ui.css +4975 -4959
  9. package/dist/blocks/components/StatsCard.d.ts +1 -1
  10. package/dist/blocks/components/StatsCard.d.ts.map +1 -1
  11. package/dist/codeblock.cjs +23 -16
  12. package/dist/codeblock.js +16 -9
  13. package/dist/colorpicker.cjs +1 -0
  14. package/dist/colorpicker.js +1 -0
  15. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  16. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  17. package/dist/components/Alert/Alert.module.scss.cjs +21 -21
  18. package/dist/components/Alert/Alert.module.scss.js +21 -21
  19. package/dist/components/Alert/index.cjs +14 -8
  20. package/dist/components/Alert/index.d.ts +9 -9
  21. package/dist/components/Alert/index.d.ts.map +1 -1
  22. package/dist/components/Alert/index.js +14 -8
  23. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  24. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  25. package/dist/components/AppShell/index.cjs +2 -2
  26. package/dist/components/AppShell/index.js +2 -2
  27. package/dist/components/Avatar/Avatar.module.scss.cjs +14 -14
  28. package/dist/components/Avatar/Avatar.module.scss.js +14 -14
  29. package/dist/components/Badge/Badge.module.scss.cjs +33 -31
  30. package/dist/components/Badge/Badge.module.scss.js +33 -31
  31. package/dist/components/Badge/index.cjs +13 -3
  32. package/dist/components/Badge/index.d.ts +18 -13
  33. package/dist/components/Badge/index.d.ts.map +1 -1
  34. package/dist/components/Badge/index.js +13 -3
  35. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  36. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  37. package/dist/components/Box/Box.module.scss.cjs +152 -152
  38. package/dist/components/Box/Box.module.scss.js +152 -152
  39. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +11 -8
  40. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +11 -8
  41. package/dist/components/Breadcrumbs/index.cjs +1 -1
  42. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  43. package/dist/components/Breadcrumbs/index.js +1 -1
  44. package/dist/components/Button/Button.module.scss.cjs +36 -27
  45. package/dist/components/Button/Button.module.scss.js +36 -27
  46. package/dist/components/Button/index.cjs +20 -4
  47. package/dist/components/Button/index.d.ts +18 -10
  48. package/dist/components/Button/index.d.ts.map +1 -1
  49. package/dist/components/Button/index.js +20 -4
  50. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  51. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  52. package/dist/components/Card/Card.module.scss.cjs +27 -34
  53. package/dist/components/Card/Card.module.scss.js +27 -34
  54. package/dist/components/Card/index.cjs +13 -8
  55. package/dist/components/Card/index.d.ts +23 -25
  56. package/dist/components/Card/index.d.ts.map +1 -1
  57. package/dist/components/Card/index.js +13 -8
  58. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  59. package/dist/components/Chart/Chart.module.scss.js +15 -15
  60. package/dist/components/Checkbox/Checkbox.module.scss.cjs +11 -11
  61. package/dist/components/Checkbox/Checkbox.module.scss.js +11 -11
  62. package/dist/components/Checkbox/index.cjs +2 -2
  63. package/dist/components/Checkbox/index.d.ts +4 -6
  64. package/dist/components/Checkbox/index.d.ts.map +1 -1
  65. package/dist/components/Checkbox/index.js +2 -2
  66. package/dist/components/Chip/Chip.module.scss.cjs +19 -19
  67. package/dist/components/Chip/Chip.module.scss.js +19 -19
  68. package/dist/components/Chip/index.cjs +1 -2
  69. package/dist/components/Chip/index.d.ts +8 -3
  70. package/dist/components/Chip/index.d.ts.map +1 -1
  71. package/dist/components/Chip/index.js +1 -2
  72. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +22 -22
  73. package/dist/components/CodeBlock/CodeBlock.module.scss.js +22 -22
  74. package/dist/components/CodeBlock/index.d.ts +3 -2
  75. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  76. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -9
  77. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -9
  78. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
  79. package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
  80. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  81. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -21
  82. package/dist/components/Combobox/Combobox.module.scss.js +21 -21
  83. package/dist/components/Combobox/index.cjs +9 -5
  84. package/dist/components/Combobox/index.d.ts.map +1 -1
  85. package/dist/components/Combobox/index.js +9 -5
  86. package/dist/components/Command/Command.module.scss.cjs +14 -11
  87. package/dist/components/Command/Command.module.scss.js +14 -11
  88. package/dist/components/Command/index.cjs +2 -1
  89. package/dist/components/Command/index.d.ts +6 -1
  90. package/dist/components/Command/index.d.ts.map +1 -1
  91. package/dist/components/Command/index.js +2 -1
  92. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  93. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  94. package/dist/components/ConversationList/index.cjs +2 -2
  95. package/dist/components/ConversationList/index.js +2 -2
  96. package/dist/components/DataTable/DataTable.module.scss.cjs +31 -28
  97. package/dist/components/DataTable/DataTable.module.scss.js +31 -28
  98. package/dist/components/DataTable/DataTable.virtual.d.ts.map +1 -1
  99. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  100. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  101. package/dist/components/DatePicker/index.d.ts.map +1 -1
  102. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  103. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  104. package/dist/components/Dialog/index.cjs +2 -2
  105. package/dist/components/Dialog/index.d.ts +5 -4
  106. package/dist/components/Dialog/index.d.ts.map +1 -1
  107. package/dist/components/Dialog/index.js +2 -2
  108. package/dist/components/Drawer/Drawer.module.scss.cjs +39 -39
  109. package/dist/components/Drawer/Drawer.module.scss.js +40 -40
  110. package/dist/components/Drawer/index.cjs +2 -2
  111. package/dist/components/Drawer/index.d.ts +5 -4
  112. package/dist/components/Drawer/index.d.ts.map +1 -1
  113. package/dist/components/Drawer/index.js +2 -2
  114. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  115. package/dist/components/Editor/Editor.module.scss.js +17 -17
  116. package/dist/components/EmptyState/EmptyState.module.scss.cjs +11 -11
  117. package/dist/components/EmptyState/EmptyState.module.scss.js +11 -11
  118. package/dist/components/EmptyState/index.cjs +9 -4
  119. package/dist/components/EmptyState/index.d.ts +8 -5
  120. package/dist/components/EmptyState/index.d.ts.map +1 -1
  121. package/dist/components/EmptyState/index.js +9 -4
  122. package/dist/components/Field/Field.module.scss.cjs +5 -5
  123. package/dist/components/Field/Field.module.scss.js +5 -5
  124. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  125. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  126. package/dist/components/Grid/Grid.module.scss.cjs +54 -54
  127. package/dist/components/Grid/Grid.module.scss.js +54 -54
  128. package/dist/components/Header/Header.module.scss.cjs +33 -33
  129. package/dist/components/Header/Header.module.scss.js +33 -33
  130. package/dist/components/Icon/Icon.module.scss.cjs +30 -33
  131. package/dist/components/Icon/Icon.module.scss.js +30 -33
  132. package/dist/components/Icon/index.cjs +15 -14
  133. package/dist/components/Icon/index.d.ts +23 -12
  134. package/dist/components/Icon/index.d.ts.map +1 -1
  135. package/dist/components/Icon/index.js +15 -14
  136. package/dist/components/IconButton/IconButton.module.scss.cjs +12 -12
  137. package/dist/components/IconButton/IconButton.module.scss.js +12 -12
  138. package/dist/components/IconButton/index.d.ts +4 -4
  139. package/dist/components/IconButton/index.d.ts.map +1 -1
  140. package/dist/components/Input/Input.module.scss.cjs +15 -21
  141. package/dist/components/Input/Input.module.scss.js +15 -21
  142. package/dist/components/Input/index.cjs +2 -14
  143. package/dist/components/Input/index.d.ts +0 -2
  144. package/dist/components/Input/index.d.ts.map +1 -1
  145. package/dist/components/Input/index.js +2 -14
  146. package/dist/components/Link/Link.module.scss.cjs +24 -16
  147. package/dist/components/Link/Link.module.scss.js +24 -16
  148. package/dist/components/Link/index.cjs +13 -2
  149. package/dist/components/Link/index.d.ts +10 -3
  150. package/dist/components/Link/index.d.ts.map +1 -1
  151. package/dist/components/Link/index.js +13 -2
  152. package/dist/components/List/List.module.scss.cjs +23 -19
  153. package/dist/components/List/List.module.scss.js +23 -19
  154. package/dist/components/List/index.cjs +7 -7
  155. package/dist/components/List/index.d.ts +10 -7
  156. package/dist/components/List/index.d.ts.map +1 -1
  157. package/dist/components/List/index.js +7 -7
  158. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  159. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  160. package/dist/components/Loading/Loading.module.scss.cjs +30 -30
  161. package/dist/components/Loading/Loading.module.scss.js +30 -30
  162. package/dist/components/Loading/index.cjs +5 -5
  163. package/dist/components/Loading/index.d.ts +8 -7
  164. package/dist/components/Loading/index.d.ts.map +1 -1
  165. package/dist/components/Loading/index.js +5 -5
  166. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  167. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  168. package/dist/components/Menu/Menu.module.scss.cjs +14 -14
  169. package/dist/components/Menu/Menu.module.scss.js +14 -14
  170. package/dist/components/Message/Message.module.scss.cjs +20 -20
  171. package/dist/components/Message/Message.module.scss.js +20 -20
  172. package/dist/components/Message/index.cjs +1 -1
  173. package/dist/components/Message/index.d.ts +1 -1
  174. package/dist/components/Message/index.js +1 -1
  175. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +29 -29
  176. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +29 -29
  177. package/dist/components/Pagination/Pagination.module.scss.cjs +10 -10
  178. package/dist/components/Pagination/Pagination.module.scss.js +10 -10
  179. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  180. package/dist/components/Popover/Popover.module.scss.js +10 -10
  181. package/dist/components/Progress/Progress.module.scss.cjs +28 -25
  182. package/dist/components/Progress/Progress.module.scss.js +28 -25
  183. package/dist/components/Progress/index.cjs +21 -12
  184. package/dist/components/Progress/index.d.ts +10 -6
  185. package/dist/components/Progress/index.d.ts.map +1 -1
  186. package/dist/components/Progress/index.js +21 -12
  187. package/dist/components/Prompt/Prompt.module.scss.cjs +30 -30
  188. package/dist/components/Prompt/Prompt.module.scss.js +30 -30
  189. package/dist/components/Prompt/index.cjs +7 -7
  190. package/dist/components/Prompt/index.d.ts +11 -9
  191. package/dist/components/Prompt/index.d.ts.map +1 -1
  192. package/dist/components/Prompt/index.js +7 -7
  193. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +20 -17
  194. package/dist/components/RadioGroup/RadioGroup.module.scss.js +20 -17
  195. package/dist/components/RadioGroup/index.cjs +10 -5
  196. package/dist/components/RadioGroup/index.d.ts +11 -7
  197. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  198. package/dist/components/RadioGroup/index.js +10 -5
  199. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +5 -5
  200. package/dist/components/ScrollArea/ScrollArea.module.scss.js +5 -5
  201. package/dist/components/Select/Select.module.scss.cjs +21 -21
  202. package/dist/components/Select/Select.module.scss.js +21 -21
  203. package/dist/components/Select/index.cjs +26 -20
  204. package/dist/components/Select/index.d.ts +5 -5
  205. package/dist/components/Select/index.d.ts.map +1 -1
  206. package/dist/components/Select/index.js +26 -20
  207. package/dist/components/Separator/Separator.module.scss.cjs +25 -19
  208. package/dist/components/Separator/Separator.module.scss.js +25 -19
  209. package/dist/components/Separator/index.cjs +10 -8
  210. package/dist/components/Separator/index.d.ts +4 -2
  211. package/dist/components/Separator/index.d.ts.map +1 -1
  212. package/dist/components/Separator/index.js +10 -8
  213. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  214. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  215. package/dist/components/Sidebar/index.cjs +3 -3
  216. package/dist/components/Sidebar/index.js +3 -3
  217. package/dist/components/Skeleton/Skeleton.module.scss.cjs +46 -46
  218. package/dist/components/Skeleton/Skeleton.module.scss.js +46 -46
  219. package/dist/components/Skeleton/index.cjs +7 -7
  220. package/dist/components/Skeleton/index.d.ts +8 -7
  221. package/dist/components/Skeleton/index.d.ts.map +1 -1
  222. package/dist/components/Skeleton/index.js +7 -7
  223. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  224. package/dist/components/Slider/Slider.module.scss.js +12 -12
  225. package/dist/components/Switch/Switch.module.scss.cjs +9 -9
  226. package/dist/components/Switch/Switch.module.scss.js +9 -9
  227. package/dist/components/Table/Table.module.scss.cjs +15 -15
  228. package/dist/components/Table/Table.module.scss.js +15 -15
  229. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  230. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  231. package/dist/components/TableOfContents/index.cjs +1 -1
  232. package/dist/components/TableOfContents/index.js +1 -1
  233. package/dist/components/Tabs/Tabs.module.scss.cjs +18 -18
  234. package/dist/components/Tabs/Tabs.module.scss.js +18 -18
  235. package/dist/components/Tabs/index.cjs +5 -6
  236. package/dist/components/Tabs/index.d.ts +8 -6
  237. package/dist/components/Tabs/index.d.ts.map +1 -1
  238. package/dist/components/Tabs/index.js +5 -6
  239. package/dist/components/Text/Text.module.scss.cjs +105 -105
  240. package/dist/components/Text/Text.module.scss.js +105 -105
  241. package/dist/components/Text/index.cjs +5 -9
  242. package/dist/components/Text/index.d.ts +15 -11
  243. package/dist/components/Text/index.d.ts.map +1 -1
  244. package/dist/components/Text/index.js +5 -9
  245. package/dist/components/Textarea/Textarea.module.scss.cjs +22 -28
  246. package/dist/components/Textarea/Textarea.module.scss.js +22 -28
  247. package/dist/components/Textarea/index.cjs +3 -10
  248. package/dist/components/Textarea/index.d.ts +0 -2
  249. package/dist/components/Textarea/index.d.ts.map +1 -1
  250. package/dist/components/Textarea/index.js +3 -10
  251. package/dist/components/Theme/index.cjs +20 -4
  252. package/dist/components/Theme/index.d.ts +6 -12
  253. package/dist/components/Theme/index.d.ts.map +1 -1
  254. package/dist/components/Theme/index.js +20 -4
  255. package/dist/components/ThemeToggle/ThemeButton.cjs +51 -0
  256. package/dist/components/ThemeToggle/ThemeButton.d.ts +16 -0
  257. package/dist/components/ThemeToggle/ThemeButton.d.ts.map +1 -0
  258. package/dist/components/ThemeToggle/ThemeButton.js +34 -0
  259. package/dist/components/ThemeToggle/ThemeToggle.module.scss.cjs +6 -9
  260. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +6 -9
  261. package/dist/components/ThemeToggle/icons.cjs +48 -0
  262. package/dist/components/ThemeToggle/icons.d.ts +10 -0
  263. package/dist/components/ThemeToggle/icons.d.ts.map +1 -0
  264. package/dist/components/ThemeToggle/icons.js +48 -0
  265. package/dist/components/ThemeToggle/index.cjs +5 -74
  266. package/dist/components/ThemeToggle/index.d.ts +5 -8
  267. package/dist/components/ThemeToggle/index.d.ts.map +1 -1
  268. package/dist/components/ThemeToggle/index.js +3 -72
  269. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +18 -15
  270. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +18 -15
  271. package/dist/components/ThinkingIndicator/index.cjs +7 -8
  272. package/dist/components/ThinkingIndicator/index.d.ts +6 -5
  273. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  274. package/dist/components/ThinkingIndicator/index.js +7 -8
  275. package/dist/components/Toast/Toast.module.scss.cjs +28 -29
  276. package/dist/components/Toast/Toast.module.scss.js +29 -30
  277. package/dist/components/Toast/index.cjs +28 -30
  278. package/dist/components/Toast/index.d.ts +9 -8
  279. package/dist/components/Toast/index.d.ts.map +1 -1
  280. package/dist/components/Toast/index.js +28 -30
  281. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +21 -19
  282. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +22 -20
  283. package/dist/components/ToggleGroup/index.cjs +4 -5
  284. package/dist/components/ToggleGroup/index.d.ts +7 -6
  285. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  286. package/dist/components/ToggleGroup/index.js +4 -5
  287. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  288. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  289. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  290. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  291. package/dist/data-table-virtual.cjs +3 -2
  292. package/dist/data-table-virtual.js +3 -2
  293. package/dist/data-table.cjs +1 -1
  294. package/dist/data-table.js +1 -1
  295. package/dist/datepicker.cjs +23 -11
  296. package/dist/datepicker.js +23 -11
  297. package/dist/index.cjs +5 -1
  298. package/dist/index.d.ts +8 -8
  299. package/dist/index.d.ts.map +1 -1
  300. package/dist/index.js +6 -2
  301. package/dist/measurements/generated.cjs +37 -93
  302. package/dist/measurements/generated.d.ts +37 -92
  303. package/dist/measurements/generated.d.ts.map +1 -1
  304. package/dist/measurements/generated.js +37 -93
  305. package/dist/measurements/index.d.ts +1 -1
  306. package/dist/measurements/index.d.ts.map +1 -1
  307. package/dist/utils/seed-derivation.cjs +0 -1
  308. package/dist/utils/seed-derivation.d.ts +1 -3
  309. package/dist/utils/seed-derivation.d.ts.map +1 -1
  310. package/dist/utils/seed-derivation.js +0 -1
  311. package/dist/utils/theme-presets.cjs +5 -10
  312. package/dist/utils/theme-presets.d.ts +1 -2
  313. package/dist/utils/theme-presets.d.ts.map +1 -1
  314. package/dist/utils/theme-presets.js +5 -10
  315. package/fragments.json +1 -1
  316. package/package.json +5 -8
  317. package/src/assets/nav-glyph.module.scss +166 -0
  318. package/src/assets/nav-glyph.tsx +188 -0
  319. package/src/components/Accordion/Accordion.module.scss +5 -3
  320. package/src/components/Alert/Alert.contract.json +18 -18
  321. package/src/components/Alert/Alert.module.scss +50 -64
  322. package/src/components/Alert/index.tsx +24 -17
  323. package/src/components/AppShell/AppShell.contract.json +7 -7
  324. package/src/components/AppShell/AppShell.module.scss +49 -17
  325. package/src/components/AppShell/index.tsx +2 -2
  326. package/src/components/Avatar/Avatar.module.scss +0 -1
  327. package/src/components/Badge/Badge.contract.json +58 -22
  328. package/src/components/Badge/Badge.module.scss +72 -47
  329. package/src/components/Badge/index.tsx +34 -17
  330. package/src/components/BentoGrid/BentoGrid.module.scss +4 -8
  331. package/src/components/Box/Box.module.scss +7 -6
  332. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +15 -5
  333. package/src/components/Breadcrumbs/index.tsx +5 -1
  334. package/src/components/Button/Button.module.scss +261 -186
  335. package/src/components/Button/index.tsx +41 -28
  336. package/src/components/ButtonGroup/ButtonGroup.contract.json +5 -5
  337. package/src/components/ButtonGroup/ButtonGroup.module.scss +8 -6
  338. package/src/components/Card/Card.consumer-fixture.module.scss +5 -2
  339. package/src/components/Card/Card.module.scss +73 -133
  340. package/src/components/Card/index.tsx +41 -36
  341. package/src/components/Chart/Chart.module.scss +6 -5
  342. package/src/components/Checkbox/Checkbox.contract.json +4 -3
  343. package/src/components/Checkbox/Checkbox.module.scss +16 -32
  344. package/src/components/Checkbox/index.tsx +6 -8
  345. package/src/components/Chip/Chip.contract.json +10 -10
  346. package/src/components/Chip/Chip.module.scss +23 -22
  347. package/src/components/Chip/index.tsx +10 -6
  348. package/src/components/CodeBlock/CodeBlock.module.scss +47 -70
  349. package/src/components/CodeBlock/index.tsx +23 -16
  350. package/src/components/Collapsible/Collapsible.module.scss +1 -7
  351. package/src/components/ColorPicker/ColorPicker.module.scss +20 -13
  352. package/src/components/ColorPicker/index.tsx +1 -0
  353. package/src/components/Combobox/Combobox.module.scss +16 -19
  354. package/src/components/Combobox/index.tsx +10 -1
  355. package/src/components/Command/Command.contract.json +7 -1
  356. package/src/components/Command/Command.module.scss +19 -21
  357. package/src/components/Command/index.tsx +7 -1
  358. package/src/components/ComponentDefaults/ComponentDefaults.contract.json +91 -0
  359. package/src/components/ConversationList/ConversationList.module.scss +2 -3
  360. package/src/components/ConversationList/index.tsx +2 -2
  361. package/src/components/DataTable/DataTable.module.scss +12 -9
  362. package/src/components/DataTable/DataTable.virtual.tsx +3 -2
  363. package/src/components/DataTable/index.tsx +1 -1
  364. package/src/components/DatePicker/DatePicker.module.scss +32 -42
  365. package/src/components/DatePicker/index.tsx +18 -7
  366. package/src/components/Dialog/Dialog.module.scss +23 -29
  367. package/src/components/Dialog/index.tsx +7 -5
  368. package/src/components/Drawer/Drawer.contract.json +6 -6
  369. package/src/components/Drawer/Drawer.module.scss +123 -64
  370. package/src/components/Drawer/index.tsx +7 -5
  371. package/src/components/Editor/Editor.contract.json +1 -1
  372. package/src/components/Editor/Editor.module.scss +26 -13
  373. package/src/components/EmptyState/EmptyState.contract.json +6 -6
  374. package/src/components/EmptyState/EmptyState.module.scss +31 -23
  375. package/src/components/EmptyState/index.tsx +17 -9
  376. package/src/components/Field/Field.module.scss +2 -1
  377. package/src/components/Fieldset/Fieldset.module.scss +5 -4
  378. package/src/components/Form/Form.contract.json +4 -4
  379. package/src/components/Grid/Grid.module.scss +2 -2
  380. package/src/components/Header/Header.contract.json +2 -2
  381. package/src/components/Header/Header.module.scss +24 -36
  382. package/src/components/Icon/Icon.contract.json +19 -23
  383. package/src/components/Icon/Icon.module.scss +13 -12
  384. package/src/components/Icon/index.tsx +31 -31
  385. package/src/components/IconButton/IconButton.contract.json +8 -8
  386. package/src/components/IconButton/IconButton.module.scss +13 -4
  387. package/src/components/IconButton/index.tsx +4 -4
  388. package/src/components/Input/Input.contract.json +0 -13
  389. package/src/components/Input/Input.module.scss +4 -54
  390. package/src/components/Input/index.tsx +2 -18
  391. package/src/components/Link/Link.contract.json +19 -11
  392. package/src/components/Link/Link.module.scss +24 -10
  393. package/src/components/Link/index.tsx +26 -5
  394. package/src/components/List/List.contract.json +11 -11
  395. package/src/components/List/List.module.scss +10 -5
  396. package/src/components/List/index.tsx +17 -13
  397. package/src/components/Listbox/Listbox.module.scss +14 -20
  398. package/src/components/Loading/Loading.contract.json +6 -6
  399. package/src/components/Loading/Loading.module.scss +29 -26
  400. package/src/components/Loading/index.tsx +13 -12
  401. package/src/components/Markdown/Markdown.module.scss +2 -1
  402. package/src/components/Menu/Menu.contract.json +5 -5
  403. package/src/components/Menu/Menu.module.scss +11 -10
  404. package/src/components/Message/Message.contract.json +5 -5
  405. package/src/components/Message/Message.module.scss +8 -6
  406. package/src/components/Message/index.tsx +2 -2
  407. package/src/components/NavigationMenu/NavigationMenu.module.scss +22 -67
  408. package/src/components/Pagination/Pagination.module.scss +7 -14
  409. package/src/components/Popover/Popover.contract.json +4 -4
  410. package/src/components/Popover/Popover.module.scss +24 -23
  411. package/src/components/Progress/Progress.contract.json +11 -11
  412. package/src/components/Progress/Progress.module.scss +13 -8
  413. package/src/components/Progress/index.tsx +34 -16
  414. package/src/components/Prompt/Prompt.contract.json +12 -12
  415. package/src/components/Prompt/Prompt.module.scss +40 -47
  416. package/src/components/Prompt/index.tsx +17 -15
  417. package/src/components/RadioGroup/RadioGroup.contract.json +6 -4
  418. package/src/components/RadioGroup/RadioGroup.module.scss +38 -32
  419. package/src/components/RadioGroup/index.tsx +23 -10
  420. package/src/components/ScrollArea/ScrollArea.module.scss +30 -33
  421. package/src/components/Select/Select.module.scss +19 -18
  422. package/src/components/Select/index.tsx +26 -24
  423. package/src/components/Separator/Separator.contract.json +10 -10
  424. package/src/components/Separator/Separator.module.scss +24 -40
  425. package/src/components/Separator/index.tsx +16 -11
  426. package/src/components/Sidebar/Sidebar.contract.json +1 -1
  427. package/src/components/Sidebar/Sidebar.module.scss +92 -95
  428. package/src/components/Sidebar/index.tsx +3 -3
  429. package/src/components/Skeleton/Skeleton.contract.json +9 -9
  430. package/src/components/Skeleton/Skeleton.module.scss +23 -16
  431. package/src/components/Skeleton/index.tsx +16 -15
  432. package/src/components/Slider/Slider.module.scss +6 -19
  433. package/src/components/Stack/Stack.contract.json +1 -1
  434. package/src/components/Stack/Stack.module.scss +13 -12
  435. package/src/components/Switch/Switch.module.scss +44 -35
  436. package/src/components/Table/Table.module.scss +9 -13
  437. package/src/components/TableOfContents/TableOfContents.module.scss +12 -18
  438. package/src/components/TableOfContents/index.tsx +1 -1
  439. package/src/components/Tabs/Tabs.contract.json +14 -14
  440. package/src/components/Tabs/Tabs.module.scss +27 -31
  441. package/src/components/Tabs/index.tsx +15 -12
  442. package/src/components/Text/Text.contract.json +36 -14
  443. package/src/components/Text/Text.module.scss +19 -20
  444. package/src/components/Text/index.tsx +23 -21
  445. package/src/components/Textarea/Textarea.contract.json +0 -13
  446. package/src/components/Textarea/Textarea.module.scss +24 -52
  447. package/src/components/Textarea/index.tsx +3 -14
  448. package/src/components/Theme/Theme.contract.json +9 -8
  449. package/src/components/Theme/index.tsx +39 -12
  450. package/src/components/ThemeToggle/ThemeButton.tsx +49 -0
  451. package/src/components/ThemeToggle/ThemeToggle.module.scss +21 -44
  452. package/src/components/ThemeToggle/icons.tsx +46 -0
  453. package/src/components/ThemeToggle/index.tsx +8 -90
  454. package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +11 -10
  455. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +9 -7
  456. package/src/components/ThinkingIndicator/index.tsx +12 -14
  457. package/src/components/Toast/Toast.contract.json +29 -13
  458. package/src/components/Toast/Toast.module.scss +49 -104
  459. package/src/components/Toast/index.tsx +39 -34
  460. package/src/components/ToggleGroup/ToggleGroup.contract.json +13 -13
  461. package/src/components/ToggleGroup/ToggleGroup.module.scss +16 -46
  462. package/src/components/ToggleGroup/index.tsx +11 -11
  463. package/src/components/Tooltip/Tooltip.contract.json +3 -3
  464. package/src/components/Tooltip/Tooltip.module.scss +16 -10
  465. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +4 -14
  466. package/src/index.ts +14 -10
  467. package/src/measurements/MeasurementTargets.module.scss +6 -7
  468. package/src/measurements/generated.ts +38 -96
  469. package/src/measurements/index.ts +0 -1
  470. package/src/measurements/measurements.json +37 -116
  471. package/src/recipes/_action.scss +4 -4
  472. package/src/recipes/_boolean-range.scss +9 -5
  473. package/src/recipes/_feedback.scss +17 -16
  474. package/src/recipes/_field.scss +28 -20
  475. package/src/recipes/_navigation.scss +84 -29
  476. package/src/recipes/_overlay.scss +143 -43
  477. package/src/recipes/_popup.scss +46 -36
  478. package/src/recipes/_prose.scss +35 -23
  479. package/src/recipes/_representation.scss +10 -9
  480. package/src/recipes/_segmented.scss +1 -1
  481. package/src/recipes/_table-chrome.scss +27 -16
  482. package/src/recipes/_target.scss +2 -4
  483. package/src/recipes/_typography.scss +10 -0
  484. package/src/styles/globals.scss +14 -9
  485. package/src/tokens/_component-properties.scss +19 -1
  486. package/src/tokens/_computed.scss +27 -33
  487. package/src/tokens/_measurements.catalog.generated.css +58 -45
  488. package/src/tokens/_measurements.generated.scss +107 -250
  489. package/src/tokens/_mixins.scss +42 -40
  490. package/src/tokens/_palettes.scss +1 -1
  491. package/src/tokens/_property-registrations.scss +9 -0
  492. package/src/tokens/_seeds.scss +1 -12
  493. package/src/tokens/_variables.scss +71 -59
  494. package/src/utils/seed-derivation.ts +1 -8
  495. package/src/utils/theme-presets.ts +5 -12
  496. package/dist/blocks/AccountSettings.block.d.ts +0 -3
  497. package/dist/blocks/AccountSettings.block.d.ts.map +0 -1
  498. package/dist/blocks/ActivityFeedSkeleton.block.d.ts +0 -3
  499. package/dist/blocks/ActivityFeedSkeleton.block.d.ts.map +0 -1
  500. package/dist/blocks/BlogEditor.block.d.ts +0 -3
  501. package/dist/blocks/BlogEditor.block.d.ts.map +0 -1
  502. package/dist/blocks/ChatInterface.block.d.ts +0 -3
  503. package/dist/blocks/ChatInterface.block.d.ts.map +0 -1
  504. package/dist/blocks/ChatMessages.block.d.ts +0 -3
  505. package/dist/blocks/ChatMessages.block.d.ts.map +0 -1
  506. package/dist/blocks/CheckoutForm.block.d.ts +0 -3
  507. package/dist/blocks/CheckoutForm.block.d.ts.map +0 -1
  508. package/dist/blocks/CommandPalette.block.d.ts +0 -3
  509. package/dist/blocks/CommandPalette.block.d.ts.map +0 -1
  510. package/dist/blocks/ContactForm.block.d.ts +0 -3
  511. package/dist/blocks/ContactForm.block.d.ts.map +0 -1
  512. package/dist/blocks/DashboardPage.block.d.ts +0 -3
  513. package/dist/blocks/DashboardPage.block.d.ts.map +0 -1
  514. package/dist/blocks/DashboardSkeleton.block.d.ts +0 -3
  515. package/dist/blocks/DashboardSkeleton.block.d.ts.map +0 -1
  516. package/dist/blocks/DataTable.block.d.ts +0 -3
  517. package/dist/blocks/DataTable.block.d.ts.map +0 -1
  518. package/dist/blocks/EmptyState.block.d.ts +0 -3
  519. package/dist/blocks/EmptyState.block.d.ts.map +0 -1
  520. package/dist/blocks/FAQSection.block.d.ts +0 -3
  521. package/dist/blocks/FAQSection.block.d.ts.map +0 -1
  522. package/dist/blocks/FeatureGrid.block.d.ts +0 -3
  523. package/dist/blocks/FeatureGrid.block.d.ts.map +0 -1
  524. package/dist/blocks/HeroSection.block.d.ts +0 -3
  525. package/dist/blocks/HeroSection.block.d.ts.map +0 -1
  526. package/dist/blocks/NavigationHeader.block.d.ts +0 -3
  527. package/dist/blocks/NavigationHeader.block.d.ts.map +0 -1
  528. package/dist/blocks/PaginatedTable.block.d.ts +0 -3
  529. package/dist/blocks/PaginatedTable.block.d.ts.map +0 -1
  530. package/dist/blocks/PricingComparison.block.d.ts +0 -3
  531. package/dist/blocks/PricingComparison.block.d.ts.map +0 -1
  532. package/dist/blocks/ProductCard.block.d.ts +0 -3
  533. package/dist/blocks/ProductCard.block.d.ts.map +0 -1
  534. package/dist/blocks/RegistrationForm.block.d.ts +0 -3
  535. package/dist/blocks/RegistrationForm.block.d.ts.map +0 -1
  536. package/dist/blocks/SettingsDrawer.block.d.ts +0 -3
  537. package/dist/blocks/SettingsDrawer.block.d.ts.map +0 -1
  538. package/dist/blocks/SettingsPanel.block.d.ts +0 -3
  539. package/dist/blocks/SettingsPanel.block.d.ts.map +0 -1
  540. package/dist/blocks/ShoppingCart.block.d.ts +0 -3
  541. package/dist/blocks/ShoppingCart.block.d.ts.map +0 -1
  542. package/dist/blocks/StatsCardSkeleton.block.d.ts +0 -3
  543. package/dist/blocks/StatsCardSkeleton.block.d.ts.map +0 -1
  544. package/dist/blocks/TableSkeleton.block.d.ts +0 -3
  545. package/dist/blocks/TableSkeleton.block.d.ts.map +0 -1
  546. package/dist/blocks/ThinkingStates.block.d.ts +0 -3
  547. package/dist/blocks/ThinkingStates.block.d.ts.map +0 -1
  548. package/dist/components/Toggle/index.d.ts +0 -3
  549. package/dist/components/Toggle/index.d.ts.map +0 -1
  550. package/src/components/Toggle/index.ts +0 -7
  551. package/src/tokens/_density.scss +0 -85
@@ -8,11 +8,14 @@ import styles from "./Separator.module.scss";
8
8
  // Types
9
9
  // ============================================
10
10
 
11
+ export type SeparatorGap = "none" | "xs" | "sm" | "md" | "lg" | "xl";
12
+
11
13
  export interface SeparatorProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
12
14
  /** Orientation of the separator */
13
15
  orientation?: "horizontal" | "vertical";
14
- /** Spacing around the separator */
15
- spacing?: "none" | "sm" | "md" | "lg";
16
+ /** Breathing room around the rule
17
+ * @default "none" */
18
+ gap?: SeparatorGap;
16
19
  /** Softer visual appearance */
17
20
  soft?: boolean;
18
21
  /** Optional label text (creates a labeled divider) */
@@ -20,14 +23,16 @@ export interface SeparatorProps extends Omit<React.HTMLAttributes<HTMLDivElement
20
23
  }
21
24
 
22
25
  // ============================================
23
- // Spacing class map
26
+ // Gap class map
24
27
  // ============================================
25
28
 
26
- const spacingClasses = {
27
- none: styles.spacingNone,
28
- sm: styles.spacingSm,
29
- md: styles.spacingMd,
30
- lg: styles.spacingLg,
29
+ const GAP_CLASS: Record<SeparatorGap, string> = {
30
+ none: styles.gapNone,
31
+ xs: styles.gapXs,
32
+ sm: styles.gapSm,
33
+ md: styles.gapMd,
34
+ lg: styles.gapLg,
35
+ xl: styles.gapXl,
31
36
  };
32
37
 
33
38
  // ============================================
@@ -37,7 +42,7 @@ const spacingClasses = {
37
42
  const SeparatorRoot = React.forwardRef<HTMLDivElement, SeparatorProps>(function Separator(
38
43
  {
39
44
  orientation = "horizontal",
40
- spacing = "none",
45
+ gap = "none",
41
46
  soft = false,
42
47
  label,
43
48
  className,
@@ -51,7 +56,7 @@ const SeparatorRoot = React.forwardRef<HTMLDivElement, SeparatorProps>(function
51
56
  const classes = [
52
57
  styles.separator,
53
58
  styles.withLabel,
54
- spacingClasses[spacing],
59
+ GAP_CLASS[gap],
55
60
  soft && styles.soft,
56
61
  className,
57
62
  ]
@@ -76,7 +81,7 @@ const SeparatorRoot = React.forwardRef<HTMLDivElement, SeparatorProps>(function
76
81
  const classes = [
77
82
  styles.separator,
78
83
  orientation === "horizontal" ? styles.horizontal : styles.vertical,
79
- spacingClasses[spacing],
84
+ GAP_CLASS[gap],
80
85
  soft && styles.soft,
81
86
  className,
82
87
  ]
@@ -157,7 +157,7 @@
157
157
  {
158
158
  "name": "With Provider & External Trigger",
159
159
  "description": "useSidebar drives the sidebar from anywhere, plus Cmd/Ctrl+B.",
160
- "code": "function App() {\n return (\n <SidebarProvider>\n <Stack direction=\"row\" gap=\"lg\" align=\"start\">\n <Sidebar>\n <Sidebar.Header>\n <Logo />\n <span>Acme App</span>\n </Sidebar.Header>\n <Sidebar.Nav>\n <Sidebar.Section>\n <Sidebar.Item icon={<HomeIcon />} active>Dashboard</Sidebar.Item>\n <Sidebar.Item icon={<ChartIcon />}>Analytics</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n </Sidebar>\n <MainContent />\n </Stack>\n </SidebarProvider>\n );\n}\n\nfunction MainContent() {\n const { toggleSidebar, state } = useSidebar();\n\n return (\n <Stack gap=\"sm\" align=\"start\">\n <Text size=\"sm\" color=\"secondary\">State: {state}</Text>\n <Button size=\"sm\" variant=\"secondary\" onClick={toggleSidebar}>\n Toggle sidebar\n </Button>\n </Stack>\n );\n}"
160
+ "code": "function App() {\n return (\n <SidebarProvider>\n <Stack direction=\"row\" gap=\"lg\" align=\"start\">\n <Sidebar>\n <Sidebar.Header>\n <Logo />\n <span>Acme App</span>\n </Sidebar.Header>\n <Sidebar.Nav>\n <Sidebar.Section>\n <Sidebar.Item icon={<HomeIcon />} active>Dashboard</Sidebar.Item>\n <Sidebar.Item icon={<ChartIcon />}>Analytics</Sidebar.Item>\n </Sidebar.Section>\n </Sidebar.Nav>\n </Sidebar>\n <MainContent />\n </Stack>\n </SidebarProvider>\n );\n}\n\nfunction MainContent() {\n const { toggleSidebar, state } = useSidebar();\n\n return (\n <Stack gap=\"sm\" align=\"start\">\n <Text scale=\"sm\" color=\"secondary\">State: {state}</Text>\n <Button size=\"sm\" variant=\"soft\" onClick={toggleSidebar}>\n Toggle sidebar\n </Button>\n </Stack>\n );\n}"
161
161
  },
162
162
  {
163
163
  "name": "With asChild (Polymorphic)",
@@ -1,20 +1,20 @@
1
+ @use "../../tokens/measurements.generated" as measurements;
1
2
  @use "../../tokens/variables" as *;
2
3
  @use "../../tokens/mixins" as *;
3
4
  @use "../../recipes/action" as action;
4
5
  @use "../../recipes/navigation" as navigation;
6
+ @use "../../recipes/overlay" as overlay;
5
7
  @use "../../recipes/target" as target;
6
8
 
9
+ $_gutter: navigation.gutter();
10
+ $_leading-box: navigation.leading-box();
11
+ $_active-rail: navigation.active-rail();
12
+
7
13
  .root {
8
14
  @include navigation.properties;
9
15
 
10
- --fui-sidebar-row-height: var(--fui-navigation-row-track);
11
- --fui-sidebar-row-radius: var(--fui-radius-full, #{$fui-radius-full});
12
- --fui-sidebar-gutter: var(--fui-navigation-gutter);
13
- --fui-sidebar-row-gap: var(--fui-navigation-content-gap);
14
- --fui-sidebar-row-padding-x: var(--fui-navigation-inline-inset);
15
- --fui-sidebar-icon-size: var(--fui-icon-md, #{$fui-icon-md});
16
- --fui-sidebar-leading-size: var(--fui-navigation-leading-box);
17
- --fui-sidebar-active-dot-size: var(--fui-navigation-active-dot);
16
+ // Folded reads of the public `--fui-sidebar-item-*` hooks (declared in
17
+ // tokens/_variables.scss); every read below carries the Sass twin.
18
18
  --fui-sidebar-muted: var(
19
19
  --fui-sidebar-item-color,
20
20
  var(--fui-text-secondary, #{$fui-text-secondary})
@@ -36,7 +36,7 @@
36
36
  width: var(--sidebar-width);
37
37
  height: 100%;
38
38
  background: var(--fui-sidebar-bg, var(--fui-bg-primary, #{$fui-bg-primary}));
39
- border-inline-end: var(--fui-stroke-hairline, 1px) solid
39
+ border-inline-end: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid
40
40
  var(--fui-sidebar-border, var(--fui-border-default, #{$fui-border-default}));
41
41
  transition: width var(--fui-transition-normal, $fui-transition-normal);
42
42
  overflow: hidden;
@@ -52,7 +52,7 @@
52
52
  }
53
53
 
54
54
  .positionRight {
55
- border-inline-start: var(--fui-stroke-hairline, 1px) solid
55
+ border-inline-start: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid
56
56
  var(--fui-sidebar-border, var(--fui-border-default, #{$fui-border-default}));
57
57
  border-inline-end: 0;
58
58
  }
@@ -63,7 +63,7 @@
63
63
  .header,
64
64
  .nav,
65
65
  .footer {
66
- padding: var(--fui-navigation-gutter);
66
+ padding: var(--fui-navigation-gutter, #{$_gutter});
67
67
  }
68
68
 
69
69
  .header,
@@ -83,12 +83,12 @@
83
83
 
84
84
  .item {
85
85
  justify-content: center;
86
- padding: 0;
87
- min-height: var(--fui-sidebar-row-height);
86
+ padding: var(--fui-raw-space-0, #{measurements.raw-space(0)});
87
+ min-height: var(--fui-navigation-row-track, #{navigation.row-track()});
88
88
  }
89
89
 
90
90
  .itemIcon {
91
- margin: 0;
91
+ margin: var(--fui-raw-space-0, #{measurements.raw-space(0)});
92
92
  }
93
93
  .collapseToggle {
94
94
  margin: 0 auto;
@@ -128,7 +128,7 @@
128
128
  position: fixed;
129
129
  top: 0;
130
130
  left: 0;
131
- z-index: 51;
131
+ z-index: var(--fui-overlay-layer-modal, #{$fui-overlay-layer-modal});
132
132
  transform: translateX(-100%);
133
133
  transition: transform var(--fui-transition-normal, $fui-transition-normal);
134
134
  box-shadow: var(--fui-shadow-md, $fui-shadow-md);
@@ -147,8 +147,7 @@
147
147
  .header {
148
148
  display: flex;
149
149
  align-items: center;
150
- gap: 0;
151
- padding: var(--fui-sidebar-gutter) var(--fui-sidebar-gutter) 0;
150
+ padding: var(--fui-navigation-gutter, #{$_gutter}) var(--fui-navigation-gutter, #{$_gutter}) 0;
152
151
  flex-shrink: 0;
153
152
  min-height: 0;
154
153
  }
@@ -159,7 +158,8 @@
159
158
  display: flex;
160
159
  flex-direction: column;
161
160
  overflow: hidden;
162
- padding: var(--fui-sidebar-gutter) var(--fui-sidebar-gutter) var(--fui-space-3, $fui-space-3);
161
+ padding: var(--fui-navigation-gutter, #{$_gutter}) var(--fui-navigation-gutter, #{$_gutter})
162
+ var(--fui-space-3, $fui-space-3);
163
163
  }
164
164
 
165
165
  .navScrollArea {
@@ -168,9 +168,7 @@
168
168
  }
169
169
 
170
170
  .section:not(:first-child) {
171
- // Consumers with sparse, reading-oriented navigation (docs sites) can open
172
- // this up via --fui-sidebar-section-gap without touching the raw scale.
173
- margin-top: var(--fui-sidebar-section-gap, var(--fui-raw-space-16, 16px));
171
+ margin-top: var(--fui-raw-space-16, #{measurements.raw-space(16)});
174
172
  }
175
173
 
176
174
  .sectionHeader {
@@ -178,28 +176,31 @@
178
176
 
179
177
  display: flex;
180
178
  align-items: center;
181
- padding-block-end: var(--fui-raw-space-4, 4px);
179
+ // Items carry a hairline border inside the same inset; the header mirrors
180
+ // it so the group label and the item glyphs below share one left edge.
181
+ padding-inline: calc(
182
+ var(--fui-navigation-inline-inset, #{$_gutter}) +
183
+ var(--fui-stroke-hairline, #{$fui-stroke-hairline})
184
+ );
185
+ padding-block-end: var(--fui-raw-space-4, #{measurements.raw-space(4)});
182
186
  }
183
187
 
184
188
  .sectionTrigger {
185
189
  flex: 1;
186
190
  }
187
191
 
188
- // Override section-label-text inheritance sidebar groups read as quiet
189
- // title-case headings, not shouty all-caps labels.
190
- // Section labels read as small tracked eyebrows — a clearly different voice
191
- // from the nav items beneath them, so groups can't be mistaken for links.
192
+ // A group name is not a row: it is heavier and fainter than the items
193
+ // beneath it, sits on a shorter track with no hover surface, carries no
194
+ // glyph, and keeps its natural case.
192
195
  .sectionLabel {
193
196
  flex: 1;
194
197
  min-width: 0;
195
- font-size: var(--fui-sidebar-section-label-size, var(--fui-font-size-2xs, #{$fui-font-size-2xs}));
196
- letter-spacing: var(--fui-sidebar-section-label-tracking, 0.07em);
197
- text-transform: var(--fui-sidebar-section-label-transform, uppercase);
198
- color: var(--fui-sidebar-section-label-color, var(--fui-sidebar-faint));
199
- font-weight: var(
200
- --fui-sidebar-section-label-weight,
201
- var(--fui-font-weight-medium, #{$fui-font-weight-medium})
202
- );
198
+ font-size: var(--fui-sidebar-section-label-size, #{$fui-font-size-xs});
199
+ font-weight: var(--fui-font-weight-semibold, #{$fui-font-weight-semibold});
200
+ color: var(--fui-sidebar-faint, #{$fui-text-tertiary});
201
+ white-space: nowrap;
202
+ overflow: hidden;
203
+ text-overflow: ellipsis;
203
204
  }
204
205
 
205
206
  .sectionActionWrapper {
@@ -213,11 +214,11 @@
213
214
  @include action.icon-only("micro");
214
215
  @include target.hit-area("compact");
215
216
 
216
- border-radius: var(--fui-sidebar-row-radius);
217
- color: var(--fui-sidebar-faint);
217
+ border-radius: var(--fui-radius-full, #{$fui-radius-full});
218
+ color: var(--fui-sidebar-faint, #{$fui-text-tertiary});
218
219
 
219
220
  &:hover {
220
- background-color: var(--fui-sidebar-hover-bg);
221
+ background-color: var(--fui-sidebar-hover-bg, #{$fui-bg-hover});
221
222
  color: var(--fui-text-secondary, $fui-text-secondary);
222
223
  }
223
224
 
@@ -229,11 +230,11 @@
229
230
  .sectionList,
230
231
  .submenu {
231
232
  list-style: none;
232
- margin: 0;
233
- padding: 0;
233
+ margin: var(--fui-raw-space-0, #{measurements.raw-space(0)});
234
+ padding: var(--fui-raw-space-0, #{measurements.raw-space(0)});
234
235
  display: flex;
235
236
  flex-direction: column;
236
- gap: var(--fui-sidebar-item-gap, var(--fui-raw-space-2, 2px));
237
+ gap: var(--fui-raw-space-2, #{measurements.raw-space(2)});
237
238
  }
238
239
 
239
240
  .sectionCollapsible .sectionTrigger {
@@ -243,8 +244,8 @@
243
244
  align-items: center;
244
245
  justify-content: flex-start;
245
246
  width: 100%;
246
- padding: 0;
247
- border-radius: var(--fui-sidebar-row-radius);
247
+ padding: var(--fui-raw-space-0, #{measurements.raw-space(0)});
248
+ border-radius: var(--fui-radius-full, #{$fui-radius-full});
248
249
  background: transparent;
249
250
 
250
251
  &:hover {
@@ -261,9 +262,9 @@
261
262
 
262
263
  // Trailing caret reads as a quiet disclosure twistie.
263
264
  svg {
264
- width: var(--fui-raw-space-10, 10px);
265
- height: var(--fui-raw-space-10, 10px);
266
- color: var(--fui-sidebar-faint);
265
+ width: var(--fui-raw-space-10, #{measurements.raw-space(10)});
266
+ height: var(--fui-raw-space-10, #{measurements.raw-space(10)});
267
+ color: var(--fui-sidebar-faint, #{$fui-text-tertiary});
267
268
  }
268
269
  }
269
270
 
@@ -286,27 +287,25 @@
286
287
  display: flex;
287
288
  align-items: center;
288
289
  width: 100%;
289
- font-size: var(--fui-sidebar-item-font-size, var(--fui-type-ui-compact-size, 12px));
290
- line-height: var(--fui-sidebar-item-line-height, var(--fui-type-ui-compact-line, 16px));
291
- border: var(--fui-stroke-hairline, 1px) solid transparent;
292
- border-radius: var(--fui-sidebar-row-radius);
293
- color: var(--fui-sidebar-muted);
290
+ border: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid transparent;
291
+ border-radius: var(--fui-sidebar-item-radius, #{$fui-radius-full});
292
+ color: var(--fui-sidebar-muted, #{$fui-text-secondary});
294
293
  text-decoration: none;
295
294
  font-weight: var(--fui-font-weight-normal, $fui-font-weight-normal);
296
- outline-offset: calc(-1 * var(--fui-stroke-hairline, 1px));
295
+ outline-offset: calc(-1 * var(--fui-stroke-hairline, #{$fui-stroke-hairline}));
297
296
  transition:
298
297
  background-color var(--fui-transition-fast, $fui-transition-fast),
299
298
  border-color var(--fui-transition-fast, $fui-transition-fast),
300
299
  color var(--fui-transition-fast, $fui-transition-fast);
301
300
 
302
301
  &:hover:not(.itemDisabled) {
303
- background-color: var(--fui-sidebar-hover-bg);
302
+ background-color: var(--fui-sidebar-hover-bg, #{$fui-bg-hover});
304
303
  color: var(--fui-sidebar-item-hover-color, var(--fui-text-primary, #{$fui-text-primary}));
305
304
  text-decoration: none;
306
305
  }
307
306
 
308
307
  &:active:not(.itemDisabled) {
309
- background-color: var(--fui-sidebar-active-bg);
308
+ background-color: var(--fui-sidebar-active-bg, #{$fui-bg-active});
310
309
  }
311
310
  }
312
311
 
@@ -315,14 +314,14 @@
315
314
  .itemActive {
316
315
  @include navigation.active-indicator("start");
317
316
 
318
- background-color: var(--fui-sidebar-active-bg);
319
- border-color: var(--fui-sidebar-active-border);
317
+ background-color: var(--fui-sidebar-active-bg, #{$fui-bg-active});
318
+ border-color: var(--fui-sidebar-active-border, transparent);
320
319
  color: var(--fui-sidebar-item-active-color, var(--fui-text-primary, #{$fui-text-primary}));
321
320
  font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
322
321
 
323
322
  &::before {
324
- border-start-end-radius: var(--fui-navigation-active-rail);
325
- border-end-end-radius: var(--fui-navigation-active-rail);
323
+ border-start-end-radius: var(--fui-navigation-active-rail, #{$_active-rail});
324
+ border-end-end-radius: var(--fui-navigation-active-rail, #{$_active-rail});
326
325
  background: var(
327
326
  --fui-sidebar-item-active-indicator,
328
327
  var(--fui-color-accent, #{$fui-color-accent})
@@ -331,8 +330,8 @@
331
330
 
332
331
  &.item:hover,
333
332
  &.item:active {
334
- background-color: var(--fui-sidebar-active-bg);
335
- border-color: var(--fui-sidebar-active-border);
333
+ background-color: var(--fui-sidebar-active-bg, #{$fui-bg-active});
334
+ border-color: var(--fui-sidebar-active-border, transparent);
336
335
  color: var(--fui-sidebar-item-active-color, var(--fui-text-primary, #{$fui-text-primary}));
337
336
  text-decoration: none;
338
337
  }
@@ -348,7 +347,8 @@
348
347
  @include navigation.active-indicator("end");
349
348
 
350
349
  padding-inline-end: calc(
351
- var(--fui-navigation-inline-inset) * 2 + var(--fui-navigation-active-dot)
350
+ var(--fui-navigation-inline-inset, #{$_gutter}) * 2 +
351
+ var(--fui-navigation-active-dot, #{navigation.active-dot()})
352
352
  );
353
353
 
354
354
  &::before {
@@ -365,8 +365,7 @@
365
365
 
366
366
  .itemDisabled,
367
367
  .subItemDisabled {
368
- opacity: 0.46;
369
- cursor: not-allowed;
368
+ @include disabled-state;
370
369
  }
371
370
 
372
371
  .itemIcon {
@@ -375,15 +374,15 @@
375
374
  display: flex;
376
375
  align-items: center;
377
376
  justify-content: center;
378
- color: var(--fui-sidebar-faint);
377
+ color: var(--fui-sidebar-faint, #{$fui-text-tertiary});
379
378
 
380
379
  svg {
381
- width: var(--fui-sidebar-leading-size);
382
- height: var(--fui-sidebar-leading-size);
380
+ width: var(--fui-navigation-leading-box, #{$_leading-box});
381
+ height: var(--fui-navigation-leading-box, #{$_leading-box});
383
382
  }
384
383
 
385
384
  .item:hover:not(.itemDisabled) & {
386
- color: var(--fui-sidebar-muted);
385
+ color: var(--fui-sidebar-muted, #{$fui-text-secondary});
387
386
  }
388
387
 
389
388
  .itemActive & {
@@ -397,7 +396,7 @@
397
396
  white-space: nowrap;
398
397
  overflow: hidden;
399
398
  text-overflow: ellipsis;
400
- transform: translateY(var(--fui-navigation-label-optical-y));
399
+ transform: translateY(var(--fui-navigation-label-optical-y, #{navigation.label-optical-y()}));
401
400
  }
402
401
 
403
402
  // A row whose label is a block rather than a link: a title over a status line,
@@ -422,14 +421,14 @@
422
421
  display: flex;
423
422
  align-items: center;
424
423
  justify-content: center;
425
- width: var(--fui-sidebar-icon-size);
426
- height: var(--fui-sidebar-icon-size);
424
+ width: var(--fui-icon-md, #{$fui-icon-md});
425
+ height: var(--fui-icon-md, #{$fui-icon-md});
427
426
  flex-shrink: 0;
428
427
  transition: transform var(--fui-transition-fast, $fui-transition-fast);
429
428
 
430
429
  svg {
431
- width: var(--fui-sidebar-icon-size);
432
- height: var(--fui-sidebar-icon-size);
430
+ width: var(--fui-icon-md, #{$fui-icon-md});
431
+ height: var(--fui-icon-md, #{$fui-icon-md});
433
432
  }
434
433
  }
435
434
 
@@ -438,7 +437,7 @@
438
437
  }
439
438
 
440
439
  .submenu {
441
- padding-inline-start: var(--fui-raw-space-24, 24px);
440
+ padding-inline-start: var(--fui-raw-space-24, #{measurements.raw-space(24)});
442
441
  min-height: 0;
443
442
  overflow: hidden;
444
443
  }
@@ -460,8 +459,8 @@
460
459
 
461
460
  display: inline-flex;
462
461
  align-items: center;
463
- border-radius: var(--fui-sidebar-row-radius);
464
- color: var(--fui-sidebar-muted);
462
+ border-radius: var(--fui-sidebar-item-radius, #{$fui-radius-full});
463
+ color: var(--fui-sidebar-muted, #{$fui-text-secondary});
465
464
  text-decoration: none;
466
465
  position: relative;
467
466
 
@@ -471,21 +470,21 @@
471
470
  inset-inline-start: 0;
472
471
  top: 50%;
473
472
  transform: translateY(-50%);
474
- width: var(--fui-navigation-active-rail);
475
- height: var(--fui-navigation-leading-box);
473
+ width: var(--fui-navigation-active-rail, #{$_active-rail});
474
+ height: var(--fui-navigation-leading-box, #{$_leading-box});
476
475
  background-color: transparent;
477
476
  border-radius: var(--fui-radius-full, $fui-radius-full);
478
477
  transition: background-color var(--fui-transition-fast, $fui-transition-fast);
479
478
  }
480
479
 
481
480
  &:hover:not(.subItemDisabled) {
482
- background-color: var(--fui-sidebar-hover-bg);
481
+ background-color: var(--fui-sidebar-hover-bg, #{$fui-bg-hover});
483
482
  color: var(--fui-sidebar-item-hover-color, var(--fui-text-primary, #{$fui-text-primary}));
484
483
  text-decoration: none;
485
484
  }
486
485
 
487
486
  &:active:not(.subItemDisabled) {
488
- background-color: var(--fui-sidebar-active-bg);
487
+ background-color: var(--fui-sidebar-active-bg, #{$fui-bg-active});
489
488
  }
490
489
  }
491
490
 
@@ -504,11 +503,11 @@
504
503
  .footer {
505
504
  display: flex;
506
505
  flex-direction: column;
507
- gap: var(--fui-sidebar-row-gap);
508
- padding: var(--fui-sidebar-gutter);
506
+ gap: var(--fui-navigation-content-gap, #{$_gutter});
507
+ padding: var(--fui-navigation-gutter, #{$_gutter});
509
508
  margin-top: auto;
510
509
  flex-shrink: 0;
511
- border-top: var(--fui-stroke-hairline, 1px) solid
510
+ border-top: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid
512
511
  var(
513
512
  --fui-sidebar-footer-border,
514
513
  color-mix(in srgb, var(--fui-border-default, #{$fui-border-default}) 58%, transparent)
@@ -537,10 +536,8 @@
537
536
  }
538
537
 
539
538
  .overlay {
540
- position: fixed;
541
- inset: 0;
542
- z-index: 50;
543
- background-color: var(--fui-backdrop, $fui-backdrop);
539
+ @include overlay.backdrop;
540
+
544
541
  opacity: 0;
545
542
  transition: opacity var(--fui-transition-normal, $fui-transition-normal);
546
543
 
@@ -576,10 +573,10 @@
576
573
  position: absolute;
577
574
  top: var(--fui-space-3, $fui-space-3);
578
575
  left: calc(100% + var(--fui-space-2, $fui-space-2));
579
- z-index: 20;
580
- margin: 0;
576
+ z-index: 2;
577
+ margin: var(--fui-raw-space-0, #{measurements.raw-space(0)});
581
578
  background-color: var(--fui-bg-primary, $fui-bg-primary);
582
- border: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
579
+ border: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
583
580
  box-shadow: var(--fui-shadow-sm, $fui-shadow-sm);
584
581
 
585
582
  .positionRight & {
@@ -594,9 +591,9 @@
594
591
  position: absolute;
595
592
  top: 0;
596
593
  right: 0;
597
- width: var(--fui-navigation-leading-box);
594
+ width: var(--fui-navigation-leading-box, #{$_leading-box});
598
595
  height: 100%;
599
- z-index: 10;
596
+ z-index: 1;
600
597
 
601
598
  .positionRight & {
602
599
  right: auto;
@@ -608,8 +605,8 @@
608
605
  position: absolute;
609
606
  top: 50%;
610
607
  transform: translateY(-50%);
611
- right: var(--fui-raw-space-4, 4px);
612
- width: var(--fui-raw-space-4, 4px);
608
+ right: var(--fui-raw-space-4, #{measurements.raw-space(4)});
609
+ width: var(--fui-raw-space-4, #{measurements.raw-space(4)});
613
610
  height: #{action.track("lg")};
614
611
  border-radius: var(--fui-radius-full, $fui-radius-full);
615
612
  background-color: var(--fui-border, $fui-border);
@@ -621,7 +618,7 @@
621
618
 
622
619
  .positionRight & {
623
620
  right: auto;
624
- left: var(--fui-raw-space-4, 4px);
621
+ left: var(--fui-raw-space-4, #{measurements.raw-space(4)});
625
622
  }
626
623
  }
627
624
 
@@ -632,12 +629,12 @@
632
629
  }
633
630
 
634
631
  &:hover::before {
635
- height: var(--fui-navigation-sidebar-collapsed-width, 56px);
632
+ height: #{navigation.collapsed-width()};
636
633
  }
637
634
  }
638
635
 
639
636
  .railCollapsed::before {
640
- opacity: 0.7;
637
+ opacity: var(--fui-opacity-muted, #{$fui-opacity-muted});
641
638
  }
642
639
 
643
640
  .menuSkeleton {
@@ -35,7 +35,7 @@ function renderSidebarBadge(badge: React.ReactNode) {
35
35
  }
36
36
 
37
37
  return (
38
- <Badge variant="default" size="sm">
38
+ <Badge tone="neutral" size="sm">
39
39
  {badge}
40
40
  </Badge>
41
41
  );
@@ -1122,10 +1122,10 @@ function SidebarMenuSkeleton({
1122
1122
  <div {...htmlProps} className={classes} aria-hidden="true">
1123
1123
  {Array.from({ length: count }).map((_, i) => (
1124
1124
  <div key={i} className={styles.skeletonItem}>
1125
- {showIcon && <Skeleton variant="avatar" size="sm" />}
1125
+ {showIcon && <Skeleton shape="avatar" size="sm" />}
1126
1126
  {!isCollapsed && (
1127
1127
  <Skeleton
1128
- variant="text"
1128
+ shape="text"
1129
1129
  className={styles.skeletonLabel}
1130
1130
  width={labelWidths[i % labelWidths.length]}
1131
1131
  />
@@ -8,7 +8,7 @@
8
8
  "sourcePath": "src/components/Skeleton/index.tsx",
9
9
  "exportName": "Skeleton",
10
10
  "propsSummary": [
11
- "variant: text|heading|avatar|button|input|rect (default: rect)",
11
+ "shape: text|heading|avatar|button|input|rect (default: rect)",
12
12
  "size: sm|md|lg (default: md)",
13
13
  "width: union",
14
14
  "height: union",
@@ -17,16 +17,16 @@
17
17
  "static: boolean (default: false)"
18
18
  ],
19
19
  "props": {
20
- "variant": {
20
+ "shape": {
21
21
  "type": "enum",
22
- "description": "Semantic variant that auto-sizes",
22
+ "description": "Semantic shape that auto-sizes",
23
23
  "default": "rect",
24
24
  "required": false,
25
25
  "values": ["text", "heading", "avatar", "button", "input", "rect"]
26
26
  },
27
27
  "size": {
28
28
  "type": "enum",
29
- "description": "Size for avatar/button variants",
29
+ "description": "Size for avatar/button shapes",
30
30
  "default": "md",
31
31
  "required": false,
32
32
  "values": ["sm", "md", "lg"]
@@ -73,7 +73,7 @@
73
73
  ],
74
74
  "guidelines": [
75
75
  "Match the shape and size of the real content",
76
- "Prefer the text, heading, and avatar variants over hand-rolled boxes",
76
+ "Prefer the text, heading, and avatar shapes over hand-rolled boxes",
77
77
  "Give Skeleton.Text an ancestor with a real width — percentage lines collapse without one",
78
78
  "A few big shapes beat many small ones",
79
79
  "Skeleton and Skeleton.Text forward id, aria-*, data-* and handlers"
@@ -96,9 +96,9 @@
96
96
  "code": "<div style={{ width: 260 }}>\n <Skeleton.Text lines={3} />\n</div>"
97
97
  },
98
98
  {
99
- "name": "Semantic Variants",
99
+ "name": "Semantic Shapes",
100
100
  "description": "Heading sits taller than the body lines under it.",
101
- "code": "<div\n style={{\n width: 260,\n display: 'flex',\n flexDirection: 'column',\n gap: 'var(--fui-space-2)',\n }}\n>\n <Skeleton variant=\"heading\" width={200} />\n <Skeleton variant=\"text\" width=\"100%\" />\n <Skeleton variant=\"text\" width=\"80%\" />\n</div>"
101
+ "code": "<div\n style={{\n width: 260,\n display: 'flex',\n flexDirection: 'column',\n gap: 'var(--fui-space-2)',\n }}\n>\n <Skeleton shape=\"heading\" width={200} />\n <Skeleton shape=\"text\" width=\"100%\" />\n <Skeleton shape=\"text\" width=\"80%\" />\n</div>"
102
102
  },
103
103
  {
104
104
  "name": "Avatar Skeleton",
@@ -108,7 +108,7 @@
108
108
  {
109
109
  "name": "Card Skeleton",
110
110
  "description": "Media, title, then body — the card before it loads.",
111
- "code": "<div\n style={{\n width: 300,\n padding: 'var(--fui-space-2)',\n border: '1px solid var(--fui-border)',\n borderRadius: 'var(--fui-radius-lg)',\n }}\n>\n <Skeleton variant=\"rect\" height={120} radius=\"md\" />\n <div style={{ marginTop: 'var(--fui-space-2)' }}>\n <Skeleton variant=\"heading\" width=\"60%\" />\n </div>\n <div style={{ marginTop: 'var(--fui-space-1)' }}>\n <Skeleton.Text lines={2} />\n </div>\n</div>"
111
+ "code": "<div\n style={{\n width: 300,\n padding: 'var(--fui-space-2)',\n border: '1px solid var(--fui-border)',\n borderRadius: 'var(--fui-radius-lg)',\n }}\n>\n <Skeleton shape=\"rect\" height={120} radius=\"md\" />\n <div style={{ marginTop: 'var(--fui-space-2)' }}>\n <Skeleton shape=\"heading\" width=\"60%\" />\n </div>\n <div style={{ marginTop: 'var(--fui-space-1)' }}>\n <Skeleton.Text lines={2} />\n </div>\n</div>"
112
112
  }
113
113
  ],
114
114
  "relations": [
@@ -120,7 +120,7 @@
120
120
  ],
121
121
  "contract": {
122
122
  "propsSummary": [
123
- "variant: text|heading|avatar|button|input|rect",
123
+ "shape: text|heading|avatar|button|input|rect",
124
124
  "size: sm|md|lg (for avatar/button)",
125
125
  "width/height: custom dimensions",
126
126
  "fill: boolean - fill parent",