@usefragments/ui 1.6.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 (685) hide show
  1. package/README.md +54 -66
  2. package/dist/assets/fragments-wordmark.cjs +2 -2
  3. package/dist/assets/fragments-wordmark.d.ts.map +1 -1
  4. package/dist/assets/fragments-wordmark.js +2 -2
  5. package/dist/assets/nav-glyph.cjs +139 -0
  6. package/dist/assets/nav-glyph.d.ts +28 -0
  7. package/dist/assets/nav-glyph.d.ts.map +1 -0
  8. package/dist/assets/nav-glyph.js +139 -0
  9. package/dist/assets/nav-glyph.module.scss.cjs +71 -0
  10. package/dist/assets/nav-glyph.module.scss.js +71 -0
  11. package/dist/assets/ui.css +6885 -6308
  12. package/dist/blocks/components/StatsCard.d.ts +1 -1
  13. package/dist/blocks/components/StatsCard.d.ts.map +1 -1
  14. package/dist/chart.cjs +24 -6
  15. package/dist/chart.js +24 -6
  16. package/dist/codeblock.cjs +76 -43
  17. package/dist/codeblock.js +71 -38
  18. package/dist/colorpicker.cjs +4 -1
  19. package/dist/colorpicker.js +4 -1
  20. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  21. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  22. package/dist/components/Alert/Alert.module.scss.cjs +23 -20
  23. package/dist/components/Alert/Alert.module.scss.js +23 -20
  24. package/dist/components/Alert/index.cjs +20 -8
  25. package/dist/components/Alert/index.d.ts +17 -11
  26. package/dist/components/Alert/index.d.ts.map +1 -1
  27. package/dist/components/Alert/index.js +20 -8
  28. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  29. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  30. package/dist/components/AppShell/index.cjs +2 -2
  31. package/dist/components/AppShell/index.js +2 -2
  32. package/dist/components/Avatar/Avatar.module.scss.cjs +14 -14
  33. package/dist/components/Avatar/Avatar.module.scss.js +14 -14
  34. package/dist/components/Badge/Badge.module.scss.cjs +33 -31
  35. package/dist/components/Badge/Badge.module.scss.js +33 -31
  36. package/dist/components/Badge/index.cjs +13 -3
  37. package/dist/components/Badge/index.d.ts +18 -13
  38. package/dist/components/Badge/index.d.ts.map +1 -1
  39. package/dist/components/Badge/index.js +13 -3
  40. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  41. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  42. package/dist/components/Box/Box.module.scss.cjs +152 -152
  43. package/dist/components/Box/Box.module.scss.js +152 -152
  44. package/dist/components/Box/index.cjs +64 -75
  45. package/dist/components/Box/index.d.ts +16 -16
  46. package/dist/components/Box/index.d.ts.map +1 -1
  47. package/dist/components/Box/index.js +64 -75
  48. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +11 -8
  49. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +11 -8
  50. package/dist/components/Breadcrumbs/index.cjs +1 -1
  51. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  52. package/dist/components/Breadcrumbs/index.js +1 -1
  53. package/dist/components/Button/Button.module.scss.cjs +36 -27
  54. package/dist/components/Button/Button.module.scss.js +36 -27
  55. package/dist/components/Button/index.cjs +20 -4
  56. package/dist/components/Button/index.d.ts +18 -10
  57. package/dist/components/Button/index.d.ts.map +1 -1
  58. package/dist/components/Button/index.js +20 -4
  59. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  60. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  61. package/dist/components/Card/Card.module.scss.cjs +31 -26
  62. package/dist/components/Card/Card.module.scss.js +32 -27
  63. package/dist/components/Card/index.cjs +16 -3
  64. package/dist/components/Card/index.d.ts +23 -15
  65. package/dist/components/Card/index.d.ts.map +1 -1
  66. package/dist/components/Card/index.js +16 -3
  67. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  68. package/dist/components/Chart/Chart.module.scss.js +15 -15
  69. package/dist/components/Chart/index.d.ts.map +1 -1
  70. package/dist/components/Checkbox/Checkbox.module.scss.cjs +11 -11
  71. package/dist/components/Checkbox/Checkbox.module.scss.js +11 -11
  72. package/dist/components/Checkbox/index.cjs +4 -4
  73. package/dist/components/Checkbox/index.d.ts +4 -6
  74. package/dist/components/Checkbox/index.d.ts.map +1 -1
  75. package/dist/components/Checkbox/index.js +4 -4
  76. package/dist/components/Chip/Chip.module.scss.cjs +19 -19
  77. package/dist/components/Chip/Chip.module.scss.js +19 -19
  78. package/dist/components/Chip/index.cjs +3 -3
  79. package/dist/components/Chip/index.d.ts +8 -3
  80. package/dist/components/Chip/index.d.ts.map +1 -1
  81. package/dist/components/Chip/index.js +3 -3
  82. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +26 -23
  83. package/dist/components/CodeBlock/CodeBlock.module.scss.js +26 -23
  84. package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
  85. package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
  86. package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
  87. package/dist/components/CodeBlock/css-variables-theme.js +98 -0
  88. package/dist/components/CodeBlock/index.d.ts +20 -5
  89. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  90. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -9
  91. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -9
  92. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
  93. package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
  94. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  95. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -21
  96. package/dist/components/Combobox/Combobox.module.scss.js +21 -21
  97. package/dist/components/Combobox/index.cjs +26 -6
  98. package/dist/components/Combobox/index.d.ts.map +1 -1
  99. package/dist/components/Combobox/index.js +26 -6
  100. package/dist/components/Command/Command.module.scss.cjs +14 -11
  101. package/dist/components/Command/Command.module.scss.js +14 -11
  102. package/dist/components/Command/index.cjs +28 -16
  103. package/dist/components/Command/index.d.ts +8 -3
  104. package/dist/components/Command/index.d.ts.map +1 -1
  105. package/dist/components/Command/index.js +28 -16
  106. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  107. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  108. package/dist/components/ConversationList/index.cjs +2 -2
  109. package/dist/components/ConversationList/index.js +2 -2
  110. package/dist/components/DataTable/DataTable.icons.cjs +6 -33
  111. package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
  112. package/dist/components/DataTable/DataTable.icons.js +6 -33
  113. package/dist/components/DataTable/DataTable.module.scss.cjs +31 -28
  114. package/dist/components/DataTable/DataTable.module.scss.js +31 -28
  115. package/dist/components/DataTable/DataTable.virtual.d.ts.map +1 -1
  116. package/dist/components/DataTable/index.d.ts.map +1 -1
  117. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  118. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  119. package/dist/components/DatePicker/index.d.ts.map +1 -1
  120. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  121. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  122. package/dist/components/Dialog/index.cjs +13 -16
  123. package/dist/components/Dialog/index.d.ts +11 -10
  124. package/dist/components/Dialog/index.d.ts.map +1 -1
  125. package/dist/components/Dialog/index.js +13 -16
  126. package/dist/components/Drawer/Drawer.module.scss.cjs +39 -39
  127. package/dist/components/Drawer/Drawer.module.scss.js +40 -40
  128. package/dist/components/Drawer/index.cjs +2 -2
  129. package/dist/components/Drawer/index.d.ts +5 -4
  130. package/dist/components/Drawer/index.d.ts.map +1 -1
  131. package/dist/components/Drawer/index.js +2 -2
  132. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  133. package/dist/components/Editor/Editor.module.scss.js +17 -17
  134. package/dist/components/Editor/index.d.ts +10 -10
  135. package/dist/components/Editor/index.d.ts.map +1 -1
  136. package/dist/components/EmptyState/EmptyState.module.scss.cjs +11 -8
  137. package/dist/components/EmptyState/EmptyState.module.scss.js +11 -8
  138. package/dist/components/EmptyState/index.cjs +13 -6
  139. package/dist/components/EmptyState/index.d.ts +13 -5
  140. package/dist/components/EmptyState/index.d.ts.map +1 -1
  141. package/dist/components/EmptyState/index.js +13 -6
  142. package/dist/components/Field/Field.module.scss.cjs +5 -5
  143. package/dist/components/Field/Field.module.scss.js +5 -5
  144. package/dist/components/Field/index.cjs +9 -1
  145. package/dist/components/Field/index.d.ts.map +1 -1
  146. package/dist/components/Field/index.js +9 -1
  147. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  148. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  149. package/dist/components/Grid/Grid.module.scss.cjs +54 -54
  150. package/dist/components/Grid/Grid.module.scss.js +54 -54
  151. package/dist/components/Grid/index.cjs +1 -1
  152. package/dist/components/Grid/index.js +1 -1
  153. package/dist/components/Header/Header.module.scss.cjs +33 -33
  154. package/dist/components/Header/Header.module.scss.js +33 -33
  155. package/dist/components/Header/index.cjs +17 -38
  156. package/dist/components/Header/index.d.ts +15 -11
  157. package/dist/components/Header/index.d.ts.map +1 -1
  158. package/dist/components/Header/index.js +17 -38
  159. package/dist/components/Icon/Icon.module.scss.cjs +30 -33
  160. package/dist/components/Icon/Icon.module.scss.js +30 -33
  161. package/dist/components/Icon/index.cjs +15 -14
  162. package/dist/components/Icon/index.d.ts +23 -12
  163. package/dist/components/Icon/index.d.ts.map +1 -1
  164. package/dist/components/Icon/index.js +15 -14
  165. package/dist/components/IconButton/IconButton.module.scss.cjs +12 -12
  166. package/dist/components/IconButton/IconButton.module.scss.js +12 -12
  167. package/dist/components/IconButton/index.cjs +2 -1
  168. package/dist/components/IconButton/index.d.ts +4 -4
  169. package/dist/components/IconButton/index.d.ts.map +1 -1
  170. package/dist/components/IconButton/index.js +2 -1
  171. package/dist/components/Image/Image.module.scss.cjs +27 -27
  172. package/dist/components/Image/Image.module.scss.js +27 -27
  173. package/dist/components/Input/Input.module.scss.cjs +15 -21
  174. package/dist/components/Input/Input.module.scss.js +15 -21
  175. package/dist/components/Input/index.cjs +2 -14
  176. package/dist/components/Input/index.d.ts +0 -2
  177. package/dist/components/Input/index.d.ts.map +1 -1
  178. package/dist/components/Input/index.js +2 -14
  179. package/dist/components/Link/Link.module.scss.cjs +26 -14
  180. package/dist/components/Link/Link.module.scss.js +26 -14
  181. package/dist/components/Link/index.cjs +13 -2
  182. package/dist/components/Link/index.d.ts +11 -4
  183. package/dist/components/Link/index.d.ts.map +1 -1
  184. package/dist/components/Link/index.js +13 -2
  185. package/dist/components/List/List.module.scss.cjs +23 -19
  186. package/dist/components/List/List.module.scss.js +23 -19
  187. package/dist/components/List/index.cjs +7 -7
  188. package/dist/components/List/index.d.ts +10 -7
  189. package/dist/components/List/index.d.ts.map +1 -1
  190. package/dist/components/List/index.js +7 -7
  191. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  192. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  193. package/dist/components/Loading/Loading.module.scss.cjs +34 -34
  194. package/dist/components/Loading/Loading.module.scss.js +34 -34
  195. package/dist/components/Loading/index.cjs +5 -5
  196. package/dist/components/Loading/index.d.ts +8 -7
  197. package/dist/components/Loading/index.d.ts.map +1 -1
  198. package/dist/components/Loading/index.js +5 -5
  199. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  200. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  201. package/dist/components/Markdown/index.d.ts +2 -2
  202. package/dist/components/Markdown/index.d.ts.map +1 -1
  203. package/dist/components/Menu/Menu.module.scss.cjs +14 -14
  204. package/dist/components/Menu/Menu.module.scss.js +14 -14
  205. package/dist/components/Message/Message.module.scss.cjs +20 -20
  206. package/dist/components/Message/Message.module.scss.js +20 -20
  207. package/dist/components/Message/index.cjs +1 -1
  208. package/dist/components/Message/index.d.ts +1 -1
  209. package/dist/components/Message/index.js +1 -1
  210. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +34 -31
  211. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +34 -31
  212. package/dist/components/NavigationMenu/index.cjs +32 -15
  213. package/dist/components/NavigationMenu/index.d.ts +12 -6
  214. package/dist/components/NavigationMenu/index.d.ts.map +1 -1
  215. package/dist/components/NavigationMenu/index.js +32 -15
  216. package/dist/components/Pagination/Pagination.module.scss.cjs +10 -10
  217. package/dist/components/Pagination/Pagination.module.scss.js +10 -10
  218. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  219. package/dist/components/Popover/Popover.module.scss.js +10 -10
  220. package/dist/components/Progress/Progress.module.scss.cjs +28 -25
  221. package/dist/components/Progress/Progress.module.scss.js +28 -25
  222. package/dist/components/Progress/index.cjs +21 -12
  223. package/dist/components/Progress/index.d.ts +10 -6
  224. package/dist/components/Progress/index.d.ts.map +1 -1
  225. package/dist/components/Progress/index.js +21 -12
  226. package/dist/components/Prompt/Prompt.module.scss.cjs +30 -30
  227. package/dist/components/Prompt/Prompt.module.scss.js +30 -30
  228. package/dist/components/Prompt/index.cjs +7 -7
  229. package/dist/components/Prompt/index.d.ts +11 -9
  230. package/dist/components/Prompt/index.d.ts.map +1 -1
  231. package/dist/components/Prompt/index.js +7 -7
  232. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +20 -17
  233. package/dist/components/RadioGroup/RadioGroup.module.scss.js +20 -17
  234. package/dist/components/RadioGroup/index.cjs +10 -5
  235. package/dist/components/RadioGroup/index.d.ts +11 -7
  236. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  237. package/dist/components/RadioGroup/index.js +10 -5
  238. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +5 -5
  239. package/dist/components/ScrollArea/ScrollArea.module.scss.js +5 -5
  240. package/dist/components/ScrollArea/index.d.ts +4 -4
  241. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  242. package/dist/components/ScrollArea/scroll-state.d.ts +5 -5
  243. package/dist/components/Select/Select.module.scss.cjs +21 -21
  244. package/dist/components/Select/Select.module.scss.js +21 -21
  245. package/dist/components/Select/index.cjs +26 -20
  246. package/dist/components/Select/index.d.ts +5 -5
  247. package/dist/components/Select/index.d.ts.map +1 -1
  248. package/dist/components/Select/index.js +26 -20
  249. package/dist/components/Separator/Separator.module.scss.cjs +25 -19
  250. package/dist/components/Separator/Separator.module.scss.js +25 -19
  251. package/dist/components/Separator/index.cjs +10 -8
  252. package/dist/components/Separator/index.d.ts +4 -2
  253. package/dist/components/Separator/index.d.ts.map +1 -1
  254. package/dist/components/Separator/index.js +10 -8
  255. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  256. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  257. package/dist/components/Sidebar/index.cjs +15 -38
  258. package/dist/components/Sidebar/index.d.ts +19 -19
  259. package/dist/components/Sidebar/index.d.ts.map +1 -1
  260. package/dist/components/Sidebar/index.js +15 -38
  261. package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -46
  262. package/dist/components/Skeleton/Skeleton.module.scss.js +50 -46
  263. package/dist/components/Skeleton/index.cjs +7 -7
  264. package/dist/components/Skeleton/index.d.ts +8 -7
  265. package/dist/components/Skeleton/index.d.ts.map +1 -1
  266. package/dist/components/Skeleton/index.js +7 -7
  267. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  268. package/dist/components/Slider/Slider.module.scss.js +12 -12
  269. package/dist/components/Stack/Stack.module.scss.cjs +25 -25
  270. package/dist/components/Stack/Stack.module.scss.js +25 -25
  271. package/dist/components/Stack/index.cjs +1 -1
  272. package/dist/components/Stack/index.js +1 -1
  273. package/dist/components/Switch/Switch.module.scss.cjs +9 -9
  274. package/dist/components/Switch/Switch.module.scss.js +9 -9
  275. package/dist/components/Table/Table.module.scss.cjs +19 -19
  276. package/dist/components/Table/Table.module.scss.js +19 -19
  277. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  278. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  279. package/dist/components/TableOfContents/index.cjs +14 -10
  280. package/dist/components/TableOfContents/index.d.ts +5 -3
  281. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  282. package/dist/components/TableOfContents/index.js +14 -10
  283. package/dist/components/Tabs/Tabs.module.scss.cjs +18 -18
  284. package/dist/components/Tabs/Tabs.module.scss.js +18 -18
  285. package/dist/components/Tabs/index.cjs +30 -11
  286. package/dist/components/Tabs/index.d.ts +8 -6
  287. package/dist/components/Tabs/index.d.ts.map +1 -1
  288. package/dist/components/Tabs/index.js +30 -11
  289. package/dist/components/Text/Text.module.scss.cjs +109 -97
  290. package/dist/components/Text/Text.module.scss.js +109 -97
  291. package/dist/components/Text/index.cjs +45 -41
  292. package/dist/components/Text/index.d.ts +24 -19
  293. package/dist/components/Text/index.d.ts.map +1 -1
  294. package/dist/components/Text/index.js +45 -41
  295. package/dist/components/Textarea/Textarea.module.scss.cjs +22 -28
  296. package/dist/components/Textarea/Textarea.module.scss.js +22 -28
  297. package/dist/components/Textarea/index.cjs +3 -10
  298. package/dist/components/Textarea/index.d.ts +0 -2
  299. package/dist/components/Textarea/index.d.ts.map +1 -1
  300. package/dist/components/Textarea/index.js +3 -10
  301. package/dist/components/Theme/index.cjs +22 -5
  302. package/dist/components/Theme/index.d.ts +6 -12
  303. package/dist/components/Theme/index.d.ts.map +1 -1
  304. package/dist/components/Theme/index.js +22 -5
  305. package/dist/components/ThemeToggle/ThemeButton.cjs +51 -0
  306. package/dist/components/ThemeToggle/ThemeButton.d.ts +16 -0
  307. package/dist/components/ThemeToggle/ThemeButton.d.ts.map +1 -0
  308. package/dist/components/ThemeToggle/ThemeButton.js +34 -0
  309. package/dist/components/ThemeToggle/ThemeToggle.module.scss.cjs +6 -6
  310. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +6 -6
  311. package/dist/components/ThemeToggle/icons.cjs +48 -0
  312. package/dist/components/ThemeToggle/icons.d.ts +10 -0
  313. package/dist/components/ThemeToggle/icons.d.ts.map +1 -0
  314. package/dist/components/ThemeToggle/icons.js +48 -0
  315. package/dist/components/ThemeToggle/index.cjs +6 -50
  316. package/dist/components/ThemeToggle/index.d.ts +5 -3
  317. package/dist/components/ThemeToggle/index.d.ts.map +1 -1
  318. package/dist/components/ThemeToggle/index.js +3 -47
  319. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +18 -15
  320. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +18 -15
  321. package/dist/components/ThinkingIndicator/index.cjs +7 -8
  322. package/dist/components/ThinkingIndicator/index.d.ts +6 -5
  323. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  324. package/dist/components/ThinkingIndicator/index.js +7 -8
  325. package/dist/components/Toast/Toast.module.scss.cjs +28 -29
  326. package/dist/components/Toast/Toast.module.scss.js +29 -30
  327. package/dist/components/Toast/index.cjs +28 -30
  328. package/dist/components/Toast/index.d.ts +9 -8
  329. package/dist/components/Toast/index.d.ts.map +1 -1
  330. package/dist/components/Toast/index.js +28 -30
  331. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +21 -19
  332. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +22 -20
  333. package/dist/components/ToggleGroup/index.cjs +4 -5
  334. package/dist/components/ToggleGroup/index.d.ts +7 -6
  335. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  336. package/dist/components/ToggleGroup/index.js +4 -5
  337. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  338. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  339. package/dist/components/Tooltip/index.cjs +24 -40
  340. package/dist/components/Tooltip/index.d.ts +4 -4
  341. package/dist/components/Tooltip/index.d.ts.map +1 -1
  342. package/dist/components/Tooltip/index.js +24 -40
  343. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  344. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  345. package/dist/components/VisuallyHidden/index.d.ts +2 -2
  346. package/dist/data-table-virtual.cjs +3 -2
  347. package/dist/data-table-virtual.js +3 -2
  348. package/dist/data-table.cjs +3 -2
  349. package/dist/data-table.js +3 -2
  350. package/dist/datepicker.cjs +26 -13
  351. package/dist/datepicker.js +26 -13
  352. package/dist/editor.cjs +68 -28
  353. package/dist/editor.js +68 -28
  354. package/dist/index.cjs +6 -2
  355. package/dist/index.d.ts +9 -9
  356. package/dist/index.d.ts.map +1 -1
  357. package/dist/index.js +8 -4
  358. package/dist/markdown.cjs +21 -29
  359. package/dist/markdown.js +21 -29
  360. package/dist/measurements/generated.cjs +46 -94
  361. package/dist/measurements/generated.d.ts +44 -92
  362. package/dist/measurements/generated.d.ts.map +1 -1
  363. package/dist/measurements/generated.js +46 -94
  364. package/dist/measurements/index.d.ts +1 -1
  365. package/dist/measurements/index.d.ts.map +1 -1
  366. package/dist/utils/a11y.cjs +5 -2
  367. package/dist/utils/a11y.d.ts +5 -5
  368. package/dist/utils/a11y.d.ts.map +1 -1
  369. package/dist/utils/a11y.js +5 -2
  370. package/dist/utils/canonical-stamp.cjs +2 -8
  371. package/dist/utils/canonical-stamp.d.ts.map +1 -1
  372. package/dist/utils/canonical-stamp.js +1 -7
  373. package/dist/utils/css-warning.cjs +1 -1
  374. package/dist/utils/css-warning.js +1 -1
  375. package/dist/utils/env.cjs +17 -0
  376. package/dist/utils/env.d.ts +3 -0
  377. package/dist/utils/env.d.ts.map +1 -0
  378. package/dist/utils/env.js +17 -0
  379. package/dist/utils/keyboard-shortcuts.cjs +3 -10
  380. package/dist/utils/keyboard-shortcuts.d.ts +4 -4
  381. package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
  382. package/dist/utils/keyboard-shortcuts.js +3 -10
  383. package/dist/utils/seed-derivation.cjs +10 -7
  384. package/dist/utils/seed-derivation.d.ts +1 -3
  385. package/dist/utils/seed-derivation.d.ts.map +1 -1
  386. package/dist/utils/seed-derivation.js +10 -7
  387. package/dist/utils/theme-presets.cjs +5 -10
  388. package/dist/utils/theme-presets.d.ts +1 -2
  389. package/dist/utils/theme-presets.d.ts.map +1 -1
  390. package/dist/utils/theme-presets.js +5 -10
  391. package/fragments.json +1 -1
  392. package/package.json +9 -10
  393. package/src/assets/fragments-logo.tsx +2 -2
  394. package/src/assets/fragments-wordmark.tsx +4 -2
  395. package/src/assets/nav-glyph.module.scss +166 -0
  396. package/src/assets/nav-glyph.tsx +188 -0
  397. package/src/components/Accordion/Accordion.contract.json +24 -48
  398. package/src/components/Accordion/Accordion.module.scss +5 -3
  399. package/src/components/Alert/Alert.contract.json +49 -65
  400. package/src/components/Alert/Alert.module.scss +57 -47
  401. package/src/components/Alert/index.tsx +72 -39
  402. package/src/components/AppShell/AppShell.contract.json +34 -51
  403. package/src/components/AppShell/AppShell.module.scss +99 -54
  404. package/src/components/AppShell/index.tsx +2 -2
  405. package/src/components/Avatar/Avatar.contract.json +31 -48
  406. package/src/components/Avatar/Avatar.module.scss +4 -2
  407. package/src/components/Badge/Badge.contract.json +86 -55
  408. package/src/components/Badge/Badge.module.scss +80 -48
  409. package/src/components/Badge/index.tsx +34 -17
  410. package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
  411. package/src/components/BentoGrid/BentoGrid.module.scss +4 -8
  412. package/src/components/Box/Box.contract.json +40 -148
  413. package/src/components/Box/Box.module.scss +7 -6
  414. package/src/components/Box/index.tsx +92 -99
  415. package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
  416. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +27 -12
  417. package/src/components/Breadcrumbs/index.tsx +5 -1
  418. package/src/components/Button/Button.module.scss +261 -185
  419. package/src/components/Button/index.tsx +41 -28
  420. package/src/components/ButtonGroup/ButtonGroup.contract.json +34 -49
  421. package/src/components/ButtonGroup/ButtonGroup.module.scss +8 -6
  422. package/src/components/Card/Card.consumer-fixture.module.scss +5 -2
  423. package/src/components/Card/Card.module.scss +97 -76
  424. package/src/components/Card/index.tsx +44 -20
  425. package/src/components/Chart/Chart.contract.json +21 -29
  426. package/src/components/Chart/Chart.module.scss +6 -5
  427. package/src/components/Chart/index.tsx +36 -6
  428. package/src/components/Checkbox/Checkbox.contract.json +28 -27
  429. package/src/components/Checkbox/Checkbox.module.scss +47 -54
  430. package/src/components/Checkbox/index.tsx +10 -10
  431. package/src/components/Chip/Chip.contract.json +38 -45
  432. package/src/components/Chip/Chip.module.scss +24 -23
  433. package/src/components/Chip/index.tsx +12 -7
  434. package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
  435. package/src/components/CodeBlock/CodeBlock.module.scss +75 -73
  436. package/src/components/CodeBlock/css-variables-theme.ts +102 -0
  437. package/src/components/CodeBlock/index.tsx +114 -51
  438. package/src/components/Collapsible/Collapsible.contract.json +21 -36
  439. package/src/components/Collapsible/Collapsible.module.scss +1 -7
  440. package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
  441. package/src/components/ColorPicker/ColorPicker.module.scss +34 -24
  442. package/src/components/ColorPicker/index.tsx +6 -1
  443. package/src/components/Combobox/Combobox.contract.json +36 -37
  444. package/src/components/Combobox/Combobox.module.scss +16 -19
  445. package/src/components/Combobox/index.tsx +41 -6
  446. package/src/components/Command/Command.contract.json +28 -44
  447. package/src/components/Command/Command.module.scss +19 -21
  448. package/src/components/Command/index.tsx +64 -47
  449. package/src/components/ComponentDefaults/ComponentDefaults.contract.json +91 -0
  450. package/src/components/ConversationList/ConversationList.contract.json +27 -32
  451. package/src/components/ConversationList/ConversationList.module.scss +2 -3
  452. package/src/components/ConversationList/index.tsx +2 -2
  453. package/src/components/DataTable/DataTable.icons.tsx +4 -21
  454. package/src/components/DataTable/DataTable.module.scss +24 -17
  455. package/src/components/DataTable/DataTable.virtual.tsx +3 -2
  456. package/src/components/DataTable/index.tsx +9 -8
  457. package/src/components/DatePicker/DatePicker.contract.json +27 -28
  458. package/src/components/DatePicker/DatePicker.module.scss +41 -44
  459. package/src/components/DatePicker/index.tsx +23 -9
  460. package/src/components/Dialog/Dialog.module.scss +26 -32
  461. package/src/components/Dialog/index.tsx +51 -39
  462. package/src/components/Drawer/Drawer.contract.json +28 -42
  463. package/src/components/Drawer/Drawer.module.scss +123 -64
  464. package/src/components/Drawer/index.tsx +7 -5
  465. package/src/components/Editor/Editor.contract.json +32 -49
  466. package/src/components/Editor/Editor.module.scss +60 -25
  467. package/src/components/Editor/index.tsx +240 -179
  468. package/src/components/EmptyState/EmptyState.contract.json +33 -45
  469. package/src/components/EmptyState/EmptyState.module.scss +37 -21
  470. package/src/components/EmptyState/index.tsx +56 -23
  471. package/src/components/Field/Field.contract.json +28 -46
  472. package/src/components/Field/Field.module.scss +2 -1
  473. package/src/components/Field/index.tsx +5 -1
  474. package/src/components/Fieldset/Fieldset.contract.json +21 -38
  475. package/src/components/Fieldset/Fieldset.module.scss +15 -7
  476. package/src/components/Form/Form.contract.json +23 -23
  477. package/src/components/Grid/Grid.contract.json +28 -64
  478. package/src/components/Grid/Grid.module.scss +2 -2
  479. package/src/components/Grid/index.tsx +10 -10
  480. package/src/components/Header/Header.contract.json +31 -67
  481. package/src/components/Header/Header.module.scss +57 -54
  482. package/src/components/Header/index.tsx +134 -122
  483. package/src/components/Icon/Icon.contract.json +37 -81
  484. package/src/components/Icon/Icon.module.scss +13 -12
  485. package/src/components/Icon/index.tsx +31 -31
  486. package/src/components/IconButton/IconButton.contract.json +37 -21
  487. package/src/components/IconButton/IconButton.module.scss +19 -11
  488. package/src/components/IconButton/index.tsx +6 -5
  489. package/src/components/Image/Image.contract.json +23 -56
  490. package/src/components/Input/Input.contract.json +25 -44
  491. package/src/components/Input/Input.module.scss +6 -55
  492. package/src/components/Input/index.tsx +2 -18
  493. package/src/components/Link/Link.contract.json +46 -58
  494. package/src/components/Link/Link.module.scss +41 -10
  495. package/src/components/Link/index.tsx +27 -6
  496. package/src/components/List/List.contract.json +33 -62
  497. package/src/components/List/List.module.scss +10 -5
  498. package/src/components/List/index.tsx +17 -13
  499. package/src/components/Listbox/Listbox.contract.json +21 -37
  500. package/src/components/Listbox/Listbox.module.scss +14 -20
  501. package/src/components/Loading/Loading.contract.json +41 -65
  502. package/src/components/Loading/Loading.module.scss +37 -31
  503. package/src/components/Loading/index.tsx +15 -14
  504. package/src/components/Main/Main.contract.json +17 -9
  505. package/src/components/Markdown/Markdown.contract.json +22 -43
  506. package/src/components/Markdown/Markdown.module.scss +45 -6
  507. package/src/components/Markdown/index.tsx +48 -49
  508. package/src/components/Menu/Menu.contract.json +30 -46
  509. package/src/components/Menu/Menu.module.scss +32 -16
  510. package/src/components/Message/Message.contract.json +31 -54
  511. package/src/components/Message/Message.module.scss +18 -9
  512. package/src/components/Message/index.tsx +2 -2
  513. package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
  514. package/src/components/NavigationMenu/NavigationMenu.module.scss +66 -66
  515. package/src/components/NavigationMenu/index.tsx +105 -81
  516. package/src/components/Pagination/Pagination.contract.json +22 -40
  517. package/src/components/Pagination/Pagination.module.scss +9 -16
  518. package/src/components/Popover/Popover.contract.json +28 -50
  519. package/src/components/Popover/Popover.module.scss +30 -28
  520. package/src/components/Progress/Progress.contract.json +39 -35
  521. package/src/components/Progress/Progress.module.scss +16 -10
  522. package/src/components/Progress/index.tsx +34 -16
  523. package/src/components/Prompt/Prompt.contract.json +40 -56
  524. package/src/components/Prompt/Prompt.module.scss +49 -48
  525. package/src/components/Prompt/index.tsx +17 -15
  526. package/src/components/RadioGroup/RadioGroup.contract.json +29 -28
  527. package/src/components/RadioGroup/RadioGroup.module.scss +50 -45
  528. package/src/components/RadioGroup/index.tsx +23 -10
  529. package/src/components/ScrollArea/ScrollArea.contract.json +18 -19
  530. package/src/components/ScrollArea/ScrollArea.module.scss +45 -48
  531. package/src/components/ScrollArea/index.tsx +16 -16
  532. package/src/components/ScrollArea/scroll-state.ts +24 -24
  533. package/src/components/Select/Select.module.scss +20 -19
  534. package/src/components/Select/index.tsx +26 -24
  535. package/src/components/Separator/Separator.contract.json +29 -53
  536. package/src/components/Separator/Separator.module.scss +24 -40
  537. package/src/components/Separator/index.tsx +16 -11
  538. package/src/components/Sidebar/Sidebar.contract.json +35 -67
  539. package/src/components/Sidebar/Sidebar.module.scss +94 -88
  540. package/src/components/Sidebar/index.tsx +167 -167
  541. package/src/components/Skeleton/Skeleton.contract.json +34 -60
  542. package/src/components/Skeleton/Skeleton.module.scss +50 -26
  543. package/src/components/Skeleton/index.tsx +16 -15
  544. package/src/components/Slider/Slider.contract.json +27 -39
  545. package/src/components/Slider/Slider.module.scss +9 -22
  546. package/src/components/Stack/Stack.contract.json +30 -57
  547. package/src/components/Stack/Stack.module.scss +26 -24
  548. package/src/components/Stack/index.tsx +3 -3
  549. package/src/components/Switch/Switch.contract.json +33 -46
  550. package/src/components/Switch/Switch.module.scss +106 -59
  551. package/src/components/Table/Table.contract.json +28 -46
  552. package/src/components/Table/Table.module.scss +24 -16
  553. package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
  554. package/src/components/TableOfContents/TableOfContents.module.scss +17 -13
  555. package/src/components/TableOfContents/index.tsx +27 -10
  556. package/src/components/Tabs/Tabs.contract.json +35 -56
  557. package/src/components/Tabs/Tabs.module.scss +27 -31
  558. package/src/components/Tabs/index.tsx +30 -15
  559. package/src/components/Text/Text.contract.json +52 -72
  560. package/src/components/Text/Text.module.scss +34 -18
  561. package/src/components/Text/index.tsx +123 -83
  562. package/src/components/Textarea/Textarea.contract.json +24 -55
  563. package/src/components/Textarea/Textarea.module.scss +22 -52
  564. package/src/components/Textarea/index.tsx +3 -14
  565. package/src/components/Theme/Theme.contract.json +35 -53
  566. package/src/components/Theme/index.tsx +41 -13
  567. package/src/components/ThemeToggle/ThemeButton.tsx +49 -0
  568. package/src/components/ThemeToggle/ThemeToggle.module.scss +20 -27
  569. package/src/components/ThemeToggle/icons.tsx +46 -0
  570. package/src/components/ThemeToggle/index.tsx +9 -55
  571. package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +34 -50
  572. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +9 -7
  573. package/src/components/ThinkingIndicator/index.tsx +12 -14
  574. package/src/components/Toast/Toast.contract.json +55 -49
  575. package/src/components/Toast/Toast.module.scss +50 -105
  576. package/src/components/Toast/index.tsx +39 -34
  577. package/src/components/ToggleGroup/ToggleGroup.contract.json +39 -40
  578. package/src/components/ToggleGroup/ToggleGroup.module.scss +30 -27
  579. package/src/components/ToggleGroup/index.tsx +11 -11
  580. package/src/components/Tooltip/Tooltip.contract.json +31 -52
  581. package/src/components/Tooltip/Tooltip.module.scss +16 -10
  582. package/src/components/Tooltip/index.tsx +19 -24
  583. package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
  584. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +4 -14
  585. package/src/components/VisuallyHidden/index.tsx +5 -5
  586. package/src/index.ts +16 -12
  587. package/src/measurements/MeasurementTargets.module.scss +6 -7
  588. package/src/measurements/generated.ts +46 -97
  589. package/src/measurements/index.ts +0 -1
  590. package/src/measurements/measurements.json +44 -116
  591. package/src/recipes/_action.scss +4 -4
  592. package/src/recipes/_boolean-range.scss +12 -16
  593. package/src/recipes/_feedback.scss +17 -16
  594. package/src/recipes/_field.scss +28 -16
  595. package/src/recipes/_layout.scss +14 -7
  596. package/src/recipes/_navigation.scss +84 -29
  597. package/src/recipes/_overlay.scss +143 -43
  598. package/src/recipes/_popup.scss +54 -34
  599. package/src/recipes/_prose.scss +48 -28
  600. package/src/recipes/_representation.scss +10 -9
  601. package/src/recipes/_segmented.scss +1 -1
  602. package/src/recipes/_table-chrome.scss +42 -17
  603. package/src/recipes/_target.scss +2 -4
  604. package/src/recipes/_typography.scss +10 -0
  605. package/src/scss.d.ts +1 -1
  606. package/src/styles/globals.scss +31 -25
  607. package/src/tokens/_component-properties.scss +19 -1
  608. package/src/tokens/_computed.scss +32 -49
  609. package/src/tokens/_derive.scss +112 -210
  610. package/src/tokens/_measurements.catalog.generated.css +62 -44
  611. package/src/tokens/_measurements.generated.scss +119 -249
  612. package/src/tokens/_mixins.scss +49 -48
  613. package/src/tokens/_palettes.scss +39 -167
  614. package/src/tokens/_property-registrations.scss +9 -0
  615. package/src/tokens/_seeds.scss +20 -31
  616. package/src/tokens/_variables.scss +251 -94
  617. package/src/utils/a11y.tsx +69 -69
  618. package/src/utils/aria.ts +3 -3
  619. package/src/utils/canonical-stamp.ts +2 -12
  620. package/src/utils/css-warning.ts +7 -7
  621. package/src/utils/env.ts +25 -0
  622. package/src/utils/keyboard-shortcuts.ts +131 -126
  623. package/src/utils/seed-derivation.ts +11 -14
  624. package/src/utils/theme-presets.ts +5 -12
  625. package/dist/blocks/AccountSettings.block.d.ts +0 -3
  626. package/dist/blocks/AccountSettings.block.d.ts.map +0 -1
  627. package/dist/blocks/ActivityFeedSkeleton.block.d.ts +0 -3
  628. package/dist/blocks/ActivityFeedSkeleton.block.d.ts.map +0 -1
  629. package/dist/blocks/BlogEditor.block.d.ts +0 -3
  630. package/dist/blocks/BlogEditor.block.d.ts.map +0 -1
  631. package/dist/blocks/ChatInterface.block.d.ts +0 -3
  632. package/dist/blocks/ChatInterface.block.d.ts.map +0 -1
  633. package/dist/blocks/ChatMessages.block.d.ts +0 -3
  634. package/dist/blocks/ChatMessages.block.d.ts.map +0 -1
  635. package/dist/blocks/CheckoutForm.block.d.ts +0 -3
  636. package/dist/blocks/CheckoutForm.block.d.ts.map +0 -1
  637. package/dist/blocks/CommandPalette.block.d.ts +0 -3
  638. package/dist/blocks/CommandPalette.block.d.ts.map +0 -1
  639. package/dist/blocks/ContactForm.block.d.ts +0 -3
  640. package/dist/blocks/ContactForm.block.d.ts.map +0 -1
  641. package/dist/blocks/DashboardPage.block.d.ts +0 -3
  642. package/dist/blocks/DashboardPage.block.d.ts.map +0 -1
  643. package/dist/blocks/DashboardSkeleton.block.d.ts +0 -3
  644. package/dist/blocks/DashboardSkeleton.block.d.ts.map +0 -1
  645. package/dist/blocks/DataTable.block.d.ts +0 -3
  646. package/dist/blocks/DataTable.block.d.ts.map +0 -1
  647. package/dist/blocks/EmptyState.block.d.ts +0 -3
  648. package/dist/blocks/EmptyState.block.d.ts.map +0 -1
  649. package/dist/blocks/FAQSection.block.d.ts +0 -3
  650. package/dist/blocks/FAQSection.block.d.ts.map +0 -1
  651. package/dist/blocks/FeatureGrid.block.d.ts +0 -3
  652. package/dist/blocks/FeatureGrid.block.d.ts.map +0 -1
  653. package/dist/blocks/HeroSection.block.d.ts +0 -3
  654. package/dist/blocks/HeroSection.block.d.ts.map +0 -1
  655. package/dist/blocks/NavigationHeader.block.d.ts +0 -3
  656. package/dist/blocks/NavigationHeader.block.d.ts.map +0 -1
  657. package/dist/blocks/PaginatedTable.block.d.ts +0 -3
  658. package/dist/blocks/PaginatedTable.block.d.ts.map +0 -1
  659. package/dist/blocks/PricingComparison.block.d.ts +0 -3
  660. package/dist/blocks/PricingComparison.block.d.ts.map +0 -1
  661. package/dist/blocks/ProductCard.block.d.ts +0 -3
  662. package/dist/blocks/ProductCard.block.d.ts.map +0 -1
  663. package/dist/blocks/RegistrationForm.block.d.ts +0 -3
  664. package/dist/blocks/RegistrationForm.block.d.ts.map +0 -1
  665. package/dist/blocks/SettingsDrawer.block.d.ts +0 -3
  666. package/dist/blocks/SettingsDrawer.block.d.ts.map +0 -1
  667. package/dist/blocks/SettingsPanel.block.d.ts +0 -3
  668. package/dist/blocks/SettingsPanel.block.d.ts.map +0 -1
  669. package/dist/blocks/ShoppingCart.block.d.ts +0 -3
  670. package/dist/blocks/ShoppingCart.block.d.ts.map +0 -1
  671. package/dist/blocks/StatsCardSkeleton.block.d.ts +0 -3
  672. package/dist/blocks/StatsCardSkeleton.block.d.ts.map +0 -1
  673. package/dist/blocks/TableSkeleton.block.d.ts +0 -3
  674. package/dist/blocks/TableSkeleton.block.d.ts.map +0 -1
  675. package/dist/blocks/ThinkingStates.block.d.ts +0 -3
  676. package/dist/blocks/ThinkingStates.block.d.ts.map +0 -1
  677. package/dist/components/Toggle/index.d.ts +0 -3
  678. package/dist/components/Toggle/index.d.ts.map +0 -1
  679. package/src/components/Button/Button.contract.json +0 -218
  680. package/src/components/Card/Card.contract.json +0 -175
  681. package/src/components/DataTable/DataTable.contract.json +0 -302
  682. package/src/components/Dialog/Dialog.contract.json +0 -159
  683. package/src/components/Select/Select.contract.json +0 -259
  684. package/src/components/Toggle/index.ts +0 -7
  685. package/src/tokens/_density.scss +0 -85
@@ -1,16 +1,9 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "Header",
4
- "description": "Composable header with slots for brand, navigation, search, and actions. Supports dropdown nav groups via Header.NavMenu. Designed for use within AppShell with responsive mobile support.",
5
- "category": "navigation",
6
- "tags": [
7
- "header",
8
- "navigation",
9
- "navbar",
10
- "brand",
11
- "layout",
12
- "dropdown"
13
- ],
4
+ "description": "Composes brand, navigation, search, and actions into one responsive app bar.",
5
+ "category": "layout",
6
+ "tags": ["header", "navigation", "navbar", "brand", "layout", "dropdown"],
14
7
  "status": "stable",
15
8
  "sourcePath": "src/components/Header/index.tsx",
16
9
  "exportName": "Header",
@@ -41,11 +34,7 @@
41
34
  "description": "Position behavior (usually controlled by AppShell)",
42
35
  "default": "static",
43
36
  "required": false,
44
- "values": [
45
- "static",
46
- "fixed",
47
- "sticky"
48
- ]
37
+ "values": ["static", "fixed", "sticky"]
49
38
  },
50
39
  "elevatedOnScroll": {
51
40
  "type": "boolean|object",
@@ -80,37 +69,22 @@
80
69
  },
81
70
  "usage": {
82
71
  "when": [
83
- "Primary site or app header inside AppShell",
84
- "Navigation bar with branding (default layout)",
85
- "Search and actions bar (sidebar layout)",
86
- "Header with responsive mobile menu trigger",
87
- "Grouping related nav items under a dropdown menu"
72
+ "Top-level navigation for an app or site",
73
+ "Inside AppShell.Header",
74
+ "Anywhere brand, nav, and actions share one row"
88
75
  ],
89
76
  "whenNot": [
90
- "Simple page titles (use heading elements)",
91
- "Footer navigation (use Footer component)",
92
- "Standalone sidebar navigation (use Sidebar directly)"
77
+ "Section headings inside a page (use a heading)",
78
+ "Toolbars scoped to one panel (use Toolbar)",
79
+ "Sidebar-only navigation (use Sidebar)"
93
80
  ],
94
81
  "guidelines": [
95
- "Use Header.SkipLink for accessibility (skip to main content)",
96
- "In default layout: include Header.Brand for logo",
97
- "In sidebar layout: omit Header.Brand (logo in sidebar)",
98
- "Header.Trigger integrates with SidebarProvider for mobile menus",
99
- "Header.Trigger composes your onClick handler with sidebar toggle behavior",
100
- "Header.Nav is hidden on mobile; use sidebar for mobile navigation",
101
- "Use Header.Spacer to push items apart",
102
- "Use Header.NavMenu to group related nav items under a dropdown",
103
- "Use Header.NavMenuItem inside Header.NavMenu for dropdown items",
104
- "Header sub-components forward DOM props (id, aria-*, data-*, handlers) to their rendered elements",
105
- "Header.Brand asChild composes custom link components while preserving canonical brand styling",
106
- "Header.NavItem asChild composes click handlers instead of overwriting the child handler",
107
- "Use elevatedOnScroll on sticky marketing headers that need a boundary after scrolling",
108
- "Use navAlign=\"center\" when navigation must stay centered independently of brand and actions",
109
- "Use container=\"page\" when the header should share a bounded page gutter",
110
- "Use Header.MobileNavActions for the primary action row inside Header.MobileNav",
111
- "Use the Header icons prop to replace internal mobile trigger and dropdown chevron icons with any icon package",
112
- "For rich dropdown content (titles, descriptions, icons), use NavigationMenu instead of Header.Nav",
113
- "NavigationMenu also provides an automatic mobile drawer, replacing Header.Trigger + Sidebar for mobile nav"
82
+ "Header.Spacer pushes the actions cluster to the right",
83
+ "Omit Header.Brand when the sidebar already shows the logo",
84
+ "container=\"page\" caps the content at page width for marketing bars",
85
+ "elevatedOnScroll adds a bottom border once the page scrolls",
86
+ "Pair Header.Trigger with Header.MobileNav for small screens",
87
+ "Header.SkipLink should be the first child"
114
88
  ],
115
89
  "accessibility": [
116
90
  "Include Header.SkipLink for keyboard users",
@@ -123,43 +97,38 @@
123
97
  "examples": [
124
98
  {
125
99
  "name": "For Default Layout",
126
- "description": "Header with brand, nav, and actions. Use with AppShell layout=\"default\".",
127
- "code": "<ThemeProvider defaultMode=\"light\">\n <Header>\n <Header.SkipLink />\n <Header.Trigger />\n <Header.Brand href=\"/\">MyApp</Header.Brand>\n <Header.Nav>\n <Header.NavItem href=\"/dashboard\" active>Dashboard</Header.NavItem>\n <Header.NavItem href=\"/projects\">Projects</Header.NavItem>\n <Header.NavItem href=\"/settings\">Settings</Header.NavItem>\n </Header.Nav>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n <Button variant=\"secondary\" size=\"sm\">Sign In</Button>\n </Header.Actions>\n </Header>\n</ThemeProvider>"
100
+ "description": "Brand, nav, and actions for AppShell layout=\"default\".",
101
+ "code": "import { Box } from '@/components/Box';\nimport { Button } from '@/components/Button';\nimport { Header } from '@/components/Header';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box width=\"100%\" border rounded=\"md\" overflow=\"hidden\">\n <Header>\n <Header.SkipLink />\n <Header.Trigger />\n <Header.Brand href=\"/\">MyApp</Header.Brand>\n <Header.Nav>\n <Header.NavItem href=\"/dashboard\" active>Dashboard</Header.NavItem>\n <Header.NavItem href=\"/projects\">Projects</Header.NavItem>\n <Header.NavItem href=\"/settings\">Settings</Header.NavItem>\n </Header.Nav>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n <Button variant=\"soft\" size=\"sm\">Sign In</Button>\n </Header.Actions>\n </Header>\n</Box>"
128
102
  },
129
103
  {
130
104
  "name": "Marketing Header",
131
- "description": "Sticky, page-width marketing header with centered navigation, scroll elevation, custom link composition, and mobile actions.",
132
- "code": "<Header position=\"sticky\" elevatedOnScroll navAlign=\"center\" container=\"page\">\n <Header.SkipLink href=\"#main-content\" />\n <Header.Brand asChild>\n <a href=\"/\" aria-label=\"Home\">Logo</a>\n </Header.Brand>\n <Header.Nav aria-label=\"Main navigation\">\n <Header.NavItem href=\"/docs\">Docs</Header.NavItem>\n </Header.Nav>\n <Header.Actions>\n <Button size=\"sm\">Start free</Button>\n </Header.Actions>\n <Header.Trigger />\n <Header.MobileNav>\n <Header.MobileNavLink href=\"/docs\">Docs</Header.MobileNavLink>\n <Header.MobileNavActions>\n <Button size=\"sm\">Start free</Button>\n </Header.MobileNavActions>\n </Header.MobileNav>\n</Header>"
105
+ "description": "Sticky page-width bar that gains a border on scroll, with a mobile drawer.",
106
+ "code": "import { Box } from '@/components/Box';\nimport { Button } from '@/components/Button';\nimport { Header } from '@/components/Header';\n\n<Box width=\"100%\" border rounded=\"md\" overflow=\"hidden\">\n <Header position=\"sticky\" elevatedOnScroll navAlign=\"center\" container=\"page\">\n <Header.SkipLink href=\"#main-content\" />\n <Header.Brand asChild>\n <a href=\"/\" aria-label=\"Home\">Logo</a>\n </Header.Brand>\n <Header.Nav aria-label=\"Main navigation\">\n <Header.NavItem href=\"/docs\">Docs</Header.NavItem>\n <Header.NavItem href=\"/pricing\">Pricing</Header.NavItem>\n </Header.Nav>\n <Header.Actions>\n <Button size=\"sm\">Start free</Button>\n </Header.Actions>\n <Header.Trigger />\n <Header.MobileNav>\n <Header.MobileNavLink href=\"/docs\">Docs</Header.MobileNavLink>\n <Header.MobileNavLink href=\"/pricing\">Pricing</Header.MobileNavLink>\n <Header.MobileNavActions>\n <Button size=\"sm\">Start free</Button>\n </Header.MobileNavActions>\n </Header.MobileNav>\n </Header>\n</Box>"
133
107
  },
134
108
  {
135
109
  "name": "With Dropdown Nav",
136
- "description": "Header with a dropdown menu grouping related navigation links.",
137
- "code": "<ThemeProvider defaultMode=\"light\">\n <Header>\n <Header.Brand href=\"/\">MyApp</Header.Brand>\n <Header.Nav>\n <Header.NavItem href=\"/components\" active>Components</Header.NavItem>\n <Header.NavItem href=\"/blocks\">Blocks</Header.NavItem>\n <Header.NavMenu label=\"Docs\">\n <Header.NavMenuItem href=\"/getting-started\">Getting Started</Header.NavMenuItem>\n <Header.NavMenuItem href=\"/cli\">CLI Reference</Header.NavMenuItem>\n <Header.NavMenuItem href=\"/mcp\">MCP Tools</Header.NavMenuItem>\n </Header.NavMenu>\n <Header.NavItem href=\"/blog\">Blog</Header.NavItem>\n </Header.Nav>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n </Header.Actions>\n </Header>\n</ThemeProvider>"
110
+ "description": "Header.NavMenu groups related links behind one trigger.",
111
+ "code": "import { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box width=\"100%\" border rounded=\"md\" overflow=\"hidden\">\n <Header>\n <Header.Brand href=\"/\">MyApp</Header.Brand>\n <Header.Nav>\n <Header.NavItem href=\"/components\" active>Components</Header.NavItem>\n <Header.NavItem href=\"/blocks\">Blocks</Header.NavItem>\n <Header.NavMenu label=\"Docs\">\n <Header.NavMenuItem href=\"/getting-started\">Getting Started</Header.NavMenuItem>\n <Header.NavMenuItem href=\"/cli\">CLI Reference</Header.NavMenuItem>\n <Header.NavMenuItem href=\"/mcp\">MCP Tools</Header.NavMenuItem>\n </Header.NavMenu>\n <Header.NavItem href=\"/blog\">Blog</Header.NavItem>\n </Header.Nav>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n </Header.Actions>\n </Header>\n</Box>"
138
112
  },
139
113
  {
140
114
  "name": "For Sidebar Layout",
141
- "description": "Header without brand (logo is in sidebar). Use with AppShell layout=\"sidebar\" or \"sidebar-floating\".",
142
- "code": "<ThemeProvider defaultMode=\"light\">\n <Header>\n <Header.SkipLink />\n <Header.Trigger />\n <Header.Search>\n <Input placeholder=\"Search...\" style={{ width: '240px' }} />\n </Header.Search>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n </Header.Actions>\n </Header>\n</ThemeProvider>"
115
+ "description": "No brand — the logo lives in the sidebar instead.",
116
+ "code": "import { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { Input } from '@/components/Input';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box width=\"100%\" border rounded=\"md\" overflow=\"hidden\">\n <Header>\n <Header.SkipLink />\n <Header.Trigger />\n <Header.Search>\n <Input placeholder=\"Search...\" style={{ width: '240px' }} />\n </Header.Search>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n </Header.Actions>\n </Header>\n</Box>"
143
117
  },
144
118
  {
145
119
  "name": "Minimal",
146
- "description": "Clean header with just trigger and actions",
147
- "code": "<ThemeProvider defaultMode=\"light\">\n <Header>\n <Header.Trigger />\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n </Header.Actions>\n </Header>\n</ThemeProvider>"
148
- },
149
- {
150
- "name": "With Search",
151
- "description": "Header featuring a prominent search input",
152
- "code": "<ThemeProvider defaultMode=\"light\">\n <Header>\n <Header.Brand>Docs</Header.Brand>\n <Header.Search>\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n padding: '8px 12px',\n background: 'var(--fui-bg-secondary)',\n borderRadius: '6px',\n color: 'var(--fui-text-tertiary)',\n fontSize: '14px',\n width: '280px'\n }}>\n <MagnifyingGlass size={16} /> Search documentation...\n </div>\n </Header.Search>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n </Header.Actions>\n </Header>\n</ThemeProvider>"
120
+ "description": "Just the drawer trigger and actions.",
121
+ "code": "import { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box width=\"100%\" border rounded=\"md\" overflow=\"hidden\">\n <Header>\n <Header.Trigger />\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n </Header.Actions>\n </Header>\n</Box>"
153
122
  },
154
123
  {
155
124
  "name": "With Skip Link",
156
- "description": "Accessible header with skip link for keyboard navigation",
157
- "code": "<Header>\n <Header.SkipLink href=\"#main-content\">Skip to content</Header.SkipLink>\n <Header.Brand>Accessible App</Header.Brand>\n <Header.Nav>\n <Header.NavItem href=\"/\" active>Home</Header.NavItem>\n <Header.NavItem href=\"/about\">About</Header.NavItem>\n </Header.Nav>\n</Header>"
125
+ "description": "Header.SkipLink gives keyboard users a jump to main content.",
126
+ "code": "import { Box } from '@/components/Box';\nimport { Header } from '@/components/Header';\n\n<Box width=\"100%\" border rounded=\"md\" overflow=\"hidden\">\n <Header>\n <Header.SkipLink href=\"#main-content\">Skip to content</Header.SkipLink>\n <Header.Brand>Accessible App</Header.Brand>\n <Header.Nav>\n <Header.NavItem href=\"/\" active>Home</Header.NavItem>\n <Header.NavItem href=\"/about\">About</Header.NavItem>\n </Header.Nav>\n </Header>\n</Box>"
158
127
  },
159
128
  {
160
129
  "name": "With NavigationMenu",
161
- "description": "Header using NavigationMenu for rich dropdown content panels with titles, descriptions, and automatic mobile drawer.",
162
- "code": "<ThemeProvider defaultMode=\"light\">\n <Header>\n <Header.Brand href=\"/\">MyApp</Header.Brand>\n <NavigationMenu aria-label=\"Site navigation\">\n <NavigationMenu.List>\n <NavigationMenu.Item value=\"products\">\n <NavigationMenu.Trigger>Products</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <div style={{ display: 'flex', flexDirection: 'column', padding: '4px', minWidth: '200px' }}>\n <NavigationMenu.Link href=\"/analytics\" title=\"Analytics\" description=\"Track your metrics.\" />\n <NavigationMenu.Link href=\"/automation\" title=\"Automation\" description=\"Automate workflows.\" />\n </div>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n <NavigationMenu.Item>\n <NavigationMenu.Link href=\"/pricing\">Pricing</NavigationMenu.Link>\n </NavigationMenu.Item>\n </NavigationMenu.List>\n <NavigationMenu.Viewport />\n </NavigationMenu>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n <Button variant=\"primary\" size=\"sm\">Sign Up</Button>\n </Header.Actions>\n </Header>\n</ThemeProvider>"
130
+ "description": "Rich dropdown panels with titles and descriptions.",
131
+ "code": "import { Box } from '@/components/Box';\nimport { Button } from '@/components/Button';\nimport { Header } from '@/components/Header';\nimport { NavigationMenu } from '@/components/NavigationMenu';\nimport { Stack } from '@/components/Stack';\nimport { ThemeToggle } from '@/components/Theme';\n\n<Box width=\"100%\" border rounded=\"md\" overflow=\"hidden\">\n <Header>\n <Header.Brand href=\"/\">MyApp</Header.Brand>\n <Header.Nav>\n <NavigationMenu aria-label=\"Site navigation\">\n <NavigationMenu.List>\n <NavigationMenu.Item value=\"products\">\n <NavigationMenu.Trigger>Products</NavigationMenu.Trigger>\n <NavigationMenu.Content>\n <Box padding=\"xs\" style={{ minWidth: '200px' }}>\n <Stack gap=\"none\">\n <NavigationMenu.Link href=\"/analytics\" title=\"Analytics\" description=\"Track your metrics.\" />\n <NavigationMenu.Link href=\"/automation\" title=\"Automation\" description=\"Automate workflows.\" />\n </Stack>\n </Box>\n </NavigationMenu.Content>\n </NavigationMenu.Item>\n <NavigationMenu.Item>\n <NavigationMenu.Link href=\"/pricing\">Pricing</NavigationMenu.Link>\n </NavigationMenu.Item>\n </NavigationMenu.List>\n <NavigationMenu.Viewport />\n </NavigationMenu>\n </Header.Nav>\n <Header.Spacer />\n <Header.Actions>\n <ThemeToggle size=\"md\" />\n <Button variant=\"solid\" size=\"sm\">Sign Up</Button>\n </Header.Actions>\n </Header>\n</Box>"
163
132
  }
164
133
  ],
165
134
  "relations": [
@@ -197,12 +166,7 @@
197
166
  "Header.NavMenu provides dropdown groups via Base UI Menu",
198
167
  "Header.MobileNavActions provides an action row inside the mobile drawer"
199
168
  ],
200
- "a11yRules": [
201
- "A11Y_HEADER_LANDMARK",
202
- "A11Y_NAV_LABEL",
203
- "A11Y_SKIP_LINK",
204
- "A11Y_BUTTON_LABEL"
205
- ]
169
+ "a11yRules": ["A11Y_HEADER_LANDMARK", "A11Y_NAV_LABEL", "A11Y_SKIP_LINK", "A11Y_BUTTON_LABEL"]
206
170
  },
207
171
  "ai": {
208
172
  "compositionPattern": "compound",
@@ -1,9 +1,11 @@
1
- @use '../../tokens/variables' as *;
2
- @use '../../tokens/mixins' as *;
3
- @use '../../recipes/action' as action;
4
- @use '../../recipes/layout' as layout;
5
- @use '../../recipes/navigation' as navigation;
6
- @use '../../recipes/popup' as popup;
1
+ @use "../../tokens/variables" as *;
2
+ @use "../../tokens/measurements.generated" as measurements;
3
+ @use "../../tokens/mixins" as *;
4
+ @use "../../recipes/action" as action;
5
+ @use "../../recipes/layout" as layout;
6
+ @use "../../recipes/navigation" as navigation;
7
+ @use "../../recipes/overlay" as overlay;
8
+ @use "../../recipes/popup" as popup;
7
9
 
8
10
  // ============================================
9
11
  // Header Root
@@ -16,9 +18,12 @@
16
18
 
17
19
  display: flex;
18
20
  align-items: center;
21
+ // A header always spans its container. Without this it collapses to
22
+ // min-content when placed inside a flex/grid parent that centers its items.
23
+ width: 100%;
19
24
  height: var(--header-height, var(--fui-appshell-header-height, $fui-appshell-header-height));
20
25
  min-height: var(--header-height, var(--fui-appshell-header-height, $fui-appshell-header-height));
21
- background-color: var(--fui-bg-primary, $fui-bg-primary);
26
+ background-color: var(--fui-app-main-bg, var(--fui-main-bg, #{$fui-main-bg}));
22
27
  padding: 0 var(--fui-space-4, $fui-space-4);
23
28
  z-index: var(--fui-header-z-index, $fui-header-z-index);
24
29
  }
@@ -36,7 +41,7 @@
36
41
  }
37
42
 
38
43
  .elevatedOnScroll {
39
- border-bottom: var(--fui-space-px, $fui-space-px) solid transparent;
44
+ border-bottom: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid transparent;
40
45
  transition: border-color var(--fui-transition-fast, $fui-transition-fast);
41
46
  }
42
47
 
@@ -124,8 +129,8 @@
124
129
  align-items: center;
125
130
  gap: var(--fui-space-1, $fui-space-1);
126
131
  list-style: none;
127
- margin: 0;
128
- padding: 0;
132
+ margin: var(--fui-raw-space-0, #{measurements.raw-space(0)});
133
+ padding: var(--fui-raw-space-0, #{measurements.raw-space(0)});
129
134
  }
130
135
 
131
136
  .navItem {
@@ -152,14 +157,16 @@
152
157
  }
153
158
 
154
159
  .navItemActive {
155
- // Match sidebar active state: secondary surface + primary text
160
+ // Persistent navigation selection shares the same neutral role as Sidebar
161
+ // and Tabs. Do not use --fui-bg-active here: that token is for the brief
162
+ // pointer-down state.
156
163
  color: var(--fui-text-primary, $fui-text-primary);
157
164
  font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
158
- background-color: var(--fui-bg-secondary, $fui-bg-secondary);
165
+ background-color: var(--fui-control-selected-bg, var(--fui-bg-active, $fui-bg-active));
159
166
 
160
167
  &.navItem:hover,
161
168
  &.navItem:active {
162
- background-color: var(--fui-bg-secondary, $fui-bg-secondary);
169
+ background-color: var(--fui-control-selected-bg, var(--fui-bg-active, $fui-bg-active));
163
170
  color: var(--fui-text-primary, $fui-text-primary);
164
171
  }
165
172
  }
@@ -187,7 +194,7 @@
187
194
  // ============================================
188
195
 
189
196
  .navMenuPositioner {
190
- z-index: 52;
197
+ z-index: var(--fui-overlay-layer-anchored, #{$fui-overlay-layer-anchored});
191
198
  outline: none;
192
199
  }
193
200
 
@@ -195,7 +202,6 @@
195
202
  @include popup.container;
196
203
 
197
204
  min-width: layout.measure("field-minimum");
198
- box-shadow: var(--fui-shadow-md, $fui-shadow-md);
199
205
 
200
206
  opacity: 0;
201
207
  transform: scale(0.95);
@@ -236,13 +242,13 @@
236
242
  }
237
243
 
238
244
  .navMenuItemActive {
239
- // Match active nav item treatment in both light and dark themes
240
- background-color: var(--fui-bg-secondary, $fui-bg-secondary);
245
+ // Match the persistent navigation treatment in both light and dark themes.
246
+ background-color: var(--fui-control-selected-bg, var(--fui-bg-active, $fui-bg-active));
241
247
  color: var(--fui-text-primary, $fui-text-primary);
242
248
  font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
243
249
 
244
250
  &[data-highlighted] {
245
- background-color: var(--fui-bg-secondary, $fui-bg-secondary);
251
+ background-color: var(--fui-control-selected-bg, var(--fui-bg-active, $fui-bg-active));
246
252
  color: var(--fui-text-primary, $fui-text-primary);
247
253
  }
248
254
  }
@@ -269,6 +275,8 @@
269
275
 
270
276
  .search {
271
277
  display: none;
278
+ background-color: var(--fui-header-search-bg, var(--fui-bg-subtle, #{$fui-bg-subtle}));
279
+ border-radius: var(--fui-button-radius, var(--fui-radius-lg, #{$fui-radius-lg}));
272
280
 
273
281
  // Show search when header has enough space
274
282
  @include container-min($fui-breakpoint-md, fui-header) {
@@ -331,25 +339,16 @@
331
339
  // ============================================
332
340
 
333
341
  .mobileNavBackdrop {
334
- position: fixed;
335
- inset: 0;
336
- z-index: 98;
337
- background: var(--fui-backdrop, $fui-backdrop);
338
- animation: mobileNavFadeIn var(--fui-transition-normal, $fui-transition-normal) ease;
342
+ @include overlay.backdrop;
343
+
344
+ animation: mobileNavFadeIn var(--fui-transition-normal, $fui-transition-normal);
339
345
  }
340
346
 
347
+ // The mobile nav is the Drawer surface: same frame, width, layer and chrome.
341
348
  .mobileNavDrawer {
342
- position: fixed;
343
- top: 0;
344
- right: 0;
345
- bottom: 0;
346
- z-index: 99;
347
- width: min(320px, 85vw);
348
- background-color: var(--fui-bg-primary, $fui-bg-primary);
349
- border-left: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
350
- display: flex;
351
- flex-direction: column;
352
- animation: mobileNavSlideIn var(--fui-transition-normal, $fui-transition-normal) ease;
349
+ @include overlay.side-panel("end");
350
+
351
+ animation: mobileNavSlideIn var(--fui-transition-normal, $fui-transition-normal);
353
352
  }
354
353
 
355
354
  .mobileNavHeader {
@@ -357,7 +356,8 @@
357
356
  align-items: center;
358
357
  justify-content: flex-end;
359
358
  padding: var(--fui-space-3, $fui-space-3) var(--fui-space-4, $fui-space-4);
360
- border-bottom: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
359
+ border-bottom: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid
360
+ var(--fui-border, $fui-border);
361
361
  }
362
362
 
363
363
  .mobileNavClose {
@@ -381,30 +381,23 @@
381
381
  .mobileNavBody {
382
382
  flex: 1;
383
383
  overflow-y: auto;
384
- padding: var(--fui-space-3, $fui-space-3) var(--fui-space-4, $fui-space-4);
384
+ // Same gutter as NavigationMenu.drawerBody so both mobile navs inset their
385
+ // rows identically (UIR-D42).
386
+ padding: var(--fui-space-2, $fui-space-2) var(--fui-navigation-gutter, #{navigation.gutter()});
385
387
  }
386
388
 
387
389
  .mobileNavLink {
388
390
  @include button-reset;
389
391
  @include navigation.row;
392
+ @include navigation.link-states;
390
393
 
391
394
  display: flex;
392
395
  align-items: center;
393
396
  width: 100%;
394
- border-radius: var(--fui-radius-md, $fui-radius-md);
395
- color: var(--fui-text-secondary, $fui-text-secondary);
396
- text-decoration: none;
397
- font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
398
-
399
- &:hover {
400
- background-color: var(--fui-bg-hover, $fui-bg-hover);
401
- color: var(--fui-text-primary, $fui-text-primary);
402
- }
403
397
  }
404
398
 
405
399
  .mobileNavLinkActive {
406
- color: var(--fui-text-primary, $fui-text-primary);
407
- background-color: var(--fui-bg-secondary, $fui-bg-secondary);
400
+ @include navigation.link-active;
408
401
  }
409
402
 
410
403
  .mobileNavActions {
@@ -415,13 +408,21 @@
415
408
  }
416
409
 
417
410
  @keyframes mobileNavFadeIn {
418
- from { opacity: 0; }
419
- to { opacity: 1; }
411
+ from {
412
+ opacity: 0;
413
+ }
414
+ to {
415
+ opacity: 1;
416
+ }
420
417
  }
421
418
 
422
419
  @keyframes mobileNavSlideIn {
423
- from { transform: translateX(100%); }
424
- to { transform: translateX(0); }
420
+ from {
421
+ transform: translateX(overlay.side-panel-offscreen("end"));
422
+ }
423
+ to {
424
+ transform: translateX(0);
425
+ }
425
426
  }
426
427
 
427
428
  @media (prefers-reduced-motion: reduce) {
@@ -441,11 +442,13 @@
441
442
  position: absolute;
442
443
  top: var(--fui-space-2, $fui-space-2);
443
444
  left: var(--fui-space-2, $fui-space-2);
444
- z-index: 100;
445
+ // Top of the layer scale: a skip link must win over every overlay.
446
+ z-index: var(--fui-overlay-layer-tooltip, #{$fui-overlay-layer-tooltip});
445
447
  padding: var(--fui-space-2, $fui-space-2) var(--fui-space-4, $fui-space-4);
446
448
  background-color: var(--fui-bg-primary, $fui-bg-primary);
447
449
  color: var(--fui-text-primary, $fui-text-primary);
448
- border: var(--fui-stroke-default, 2px) solid var(--fui-color-accent, $fui-color-accent);
450
+ border: var(--fui-stroke-default, #{$fui-stroke-default}) solid
451
+ var(--fui-color-accent, $fui-color-accent);
449
452
  border-radius: var(--fui-radius-md, $fui-radius-md);
450
453
  text-decoration: none;
451
454
  font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
@@ -456,7 +459,7 @@
456
459
  height: auto;
457
460
  clip: auto;
458
461
  white-space: normal;
459
- margin: 0;
462
+ margin: var(--fui-raw-space-0, #{measurements.raw-space(0)});
460
463
  padding: var(--fui-space-2, $fui-space-2) var(--fui-space-4, $fui-space-4);
461
464
  overflow: visible;
462
465