@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,33 +1,31 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import { createPortal } from 'react-dom';
5
- import { Menu as BaseMenu } from '@base-ui/react/menu';
6
- import { CaretDown, List, X } from '@phosphor-icons/react';
7
- import { useFocusTrap } from '../../utils/a11y';
8
- import { ScrollArea } from '../ScrollArea';
9
- import styles from './Header.module.scss';
10
- import { useSidebar } from '../Sidebar';
11
- import { POPUP_OFFSET_PX } from '../../recipes/popup';
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import { createPortal } from "react-dom";
5
+ import { Menu as BaseMenu } from "@base-ui/react/menu";
6
+ import { CaretDown, List, X } from "@phosphor-icons/react";
7
+ import { useFocusTrap } from "../../utils/a11y";
8
+ import { ScrollArea } from "../ScrollArea";
9
+ import styles from "./Header.module.scss";
10
+ import { useSidebar } from "../Sidebar";
11
+ import { POPUP_OFFSET_PX } from "../../recipes/popup";
12
12
 
13
13
  // ============================================
14
14
  // Types
15
15
  // ============================================
16
16
 
17
17
  export interface HeaderIconRenderState {
18
- slot: 'menu' | 'close' | 'navMenuChevron' | 'mobileClose';
18
+ slot: "menu" | "close" | "navMenuChevron" | "mobileClose";
19
19
  open?: boolean;
20
20
  active?: boolean;
21
21
  }
22
22
 
23
- export type HeaderIconSlot =
24
- | React.ReactNode
25
- | ((state: HeaderIconRenderState) => React.ReactNode);
23
+ export type HeaderIconSlot = React.ReactNode | ((state: HeaderIconRenderState) => React.ReactNode);
26
24
 
27
- export type HeaderIcons = Partial<Record<HeaderIconRenderState['slot'], HeaderIconSlot>>;
25
+ export type HeaderIcons = Partial<Record<HeaderIconRenderState["slot"], HeaderIconSlot>>;
28
26
 
29
- export type HeaderNavAlign = 'start' | 'center';
30
- export type HeaderContainer = 'full' | 'page';
27
+ export type HeaderNavAlign = "start" | "center";
28
+ export type HeaderContainer = "full" | "page";
31
29
 
32
30
  export interface HeaderElevatedOnScrollOptions {
33
31
  /** Scroll offset before the elevated surface is applied */
@@ -39,7 +37,7 @@ export interface HeaderProps extends React.HTMLAttributes<HTMLElement> {
39
37
  /** Header height (default: '56px') */
40
38
  height?: string;
41
39
  /** Position behavior */
42
- position?: 'static' | 'fixed' | 'sticky';
40
+ position?: "static" | "fixed" | "sticky";
43
41
  /** Apply the elevated header surface after scroll */
44
42
  elevatedOnScroll?: boolean | HeaderElevatedOnScrollOptions;
45
43
  /** Navigation alignment inside the header */
@@ -61,15 +59,19 @@ export interface HeaderBrandProps extends React.HTMLAttributes<HTMLElement> {
61
59
  export interface HeaderNavProps extends React.HTMLAttributes<HTMLElement> {
62
60
  children: React.ReactNode;
63
61
  /** Accessible label for navigation */
64
- 'aria-label'?: string;
62
+ "aria-label"?: string;
65
63
  }
66
64
 
67
- export interface HeaderNavItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'onClick'> {
65
+ export interface HeaderNavItemProps extends Omit<React.HTMLAttributes<HTMLElement>, "onClick"> {
68
66
  children: React.ReactNode;
69
67
  /** Whether this item is active/current */
70
68
  active?: boolean;
71
69
  /** Link destination */
72
70
  href?: string;
71
+ /** Anchor target, when `href` renders an anchor */
72
+ target?: React.AnchorHTMLAttributes<HTMLAnchorElement>["target"];
73
+ /** Anchor rel, when `href` renders an anchor */
74
+ rel?: React.AnchorHTMLAttributes<HTMLAnchorElement>["rel"];
73
75
  /** Render as child element (polymorphic) */
74
76
  asChild?: boolean;
75
77
  /** Click handler */
@@ -90,7 +92,7 @@ export interface HeaderTriggerProps extends React.ButtonHTMLAttributes<HTMLButto
90
92
  /** Custom trigger content */
91
93
  children?: React.ReactNode;
92
94
  /** Accessible label */
93
- 'aria-label'?: string;
95
+ "aria-label"?: string;
94
96
  }
95
97
 
96
98
  export interface HeaderNavMenuProps extends React.HTMLAttributes<HTMLLIElement> {
@@ -137,7 +139,7 @@ const HeaderContext = React.createContext<HeaderContextValue | null>(null);
137
139
  function useHeaderContext(): HeaderContextValue {
138
140
  const ctx = React.useContext(HeaderContext);
139
141
  if (!ctx) {
140
- throw new Error('Header compound components must be used within a Header');
142
+ throw new Error("Header compound components must be used within a Header");
141
143
  }
142
144
  return ctx;
143
145
  }
@@ -152,14 +154,17 @@ function useHeaderIcons(): HeaderIcons | undefined {
152
154
  return React.useContext(HeaderIconContext);
153
155
  }
154
156
 
155
- function renderHeaderIcon(slot: HeaderIconSlot | undefined, state: HeaderIconRenderState): React.ReactNode {
157
+ function renderHeaderIcon(
158
+ slot: HeaderIconSlot | undefined,
159
+ state: HeaderIconRenderState
160
+ ): React.ReactNode {
156
161
  if (slot === undefined) return undefined;
157
- return typeof slot === 'function' ? slot(state) : slot;
162
+ return typeof slot === "function" ? slot(state) : slot;
158
163
  }
159
164
 
160
165
  function composeEventHandlers<E extends { defaultPrevented: boolean }>(
161
166
  userHandler: ((event: E) => void) | undefined,
162
- internalHandler: (event: E) => void,
167
+ internalHandler: (event: E) => void
163
168
  ) {
164
169
  return (event: E) => {
165
170
  userHandler?.(event);
@@ -172,14 +177,14 @@ function useIsMobile() {
172
177
  const [isMobile, setIsMobile] = React.useState(false);
173
178
 
174
179
  React.useEffect(() => {
175
- if (typeof window === 'undefined') return;
180
+ if (typeof window === "undefined") return;
176
181
 
177
- const mq = window.matchMedia('(max-width: 767px)');
182
+ const mq = window.matchMedia("(max-width: 767px)");
178
183
  setIsMobile(mq.matches);
179
184
 
180
185
  const handler = (e: MediaQueryListEvent) => setIsMobile(e.matches);
181
- mq.addEventListener('change', handler);
182
- return () => mq.removeEventListener('change', handler);
186
+ mq.addEventListener("change", handler);
187
+ return () => mq.removeEventListener("change", handler);
183
188
  }, []);
184
189
 
185
190
  return isMobile;
@@ -194,11 +199,11 @@ function useIsMobile() {
194
199
  */
195
200
  function HeaderRoot({
196
201
  children,
197
- height = '56px',
198
- position = 'static',
202
+ height = "56px",
203
+ position = "static",
199
204
  elevatedOnScroll = false,
200
- navAlign = 'start',
201
- container = 'full',
205
+ navAlign = "start",
206
+ container = "full",
202
207
  icons,
203
208
  className,
204
209
  style: styleProp,
@@ -208,30 +213,32 @@ function HeaderRoot({
208
213
  const [scrolled, setScrolled] = React.useState(false);
209
214
  const shouldElevateOnScroll = Boolean(elevatedOnScroll);
210
215
  const scrollThreshold =
211
- typeof elevatedOnScroll === 'object' ? (elevatedOnScroll.threshold ?? 16) : 16;
216
+ typeof elevatedOnScroll === "object" ? (elevatedOnScroll.threshold ?? 16) : 16;
212
217
 
213
218
  React.useEffect(() => {
214
219
  if (!shouldElevateOnScroll) return;
215
220
 
216
221
  const updateScrolled = () => setScrolled(window.scrollY > scrollThreshold);
217
222
  updateScrolled();
218
- window.addEventListener('scroll', updateScrolled, { passive: true });
219
- return () => window.removeEventListener('scroll', updateScrolled);
223
+ window.addEventListener("scroll", updateScrolled, { passive: true });
224
+ return () => window.removeEventListener("scroll", updateScrolled);
220
225
  }, [scrollThreshold, shouldElevateOnScroll]);
221
226
 
222
227
  const classes = [
223
228
  styles.header,
224
- position === 'fixed' && styles.fixed,
225
- position === 'sticky' && styles.sticky,
229
+ position === "fixed" && styles.fixed,
230
+ position === "sticky" && styles.sticky,
226
231
  shouldElevateOnScroll && styles.elevatedOnScroll,
227
232
  shouldElevateOnScroll && scrolled && styles.scrolled,
228
- navAlign === 'center' && styles.navCentered,
229
- container === 'page' && styles.containerPage,
233
+ navAlign === "center" && styles.navCentered,
234
+ container === "page" && styles.containerPage,
230
235
  className,
231
- ].filter(Boolean).join(' ');
236
+ ]
237
+ .filter(Boolean)
238
+ .join(" ");
232
239
 
233
240
  const style: React.CSSProperties = {
234
- '--header-height': height,
241
+ "--header-height": height,
235
242
  ...styleProp,
236
243
  } as React.CSSProperties;
237
244
 
@@ -250,9 +257,7 @@ function HeaderRoot({
250
257
  data-position={position}
251
258
  data-scrolled={shouldElevateOnScroll ? scrolled : undefined}
252
259
  >
253
- <div className={styles.container}>
254
- {children}
255
- </div>
260
+ <div className={styles.container}>{children}</div>
256
261
  </header>
257
262
  </HeaderIconContext.Provider>
258
263
  </HeaderContext.Provider>
@@ -269,7 +274,7 @@ function HeaderBrand({
269
274
  className,
270
275
  ...htmlProps
271
276
  }: HeaderBrandProps) {
272
- const classes = [styles.brand, className].filter(Boolean).join(' ');
277
+ const classes = [styles.brand, className].filter(Boolean).join(" ");
273
278
 
274
279
  if (asChild && React.isValidElement(children)) {
275
280
  const childProps = children.props as {
@@ -281,7 +286,7 @@ function HeaderBrand({
281
286
  return React.cloneElement(children, {
282
287
  ...restHtmlProps,
283
288
  ...(href ? { href } : {}),
284
- className: [classes, childProps.className].filter(Boolean).join(' '),
289
+ className: [classes, childProps.className].filter(Boolean).join(" "),
285
290
  onClick: onClick ? composeEventHandlers(childProps.onClick, onClick) : childProps.onClick,
286
291
  } as React.HTMLAttributes<HTMLElement>);
287
292
  }
@@ -294,7 +299,11 @@ function HeaderBrand({
294
299
  );
295
300
  }
296
301
 
297
- return <div {...htmlProps} className={classes}>{children}</div>;
302
+ return (
303
+ <div {...htmlProps} className={classes}>
304
+ {children}
305
+ </div>
306
+ );
298
307
  }
299
308
 
300
309
  /**
@@ -302,17 +311,15 @@ function HeaderBrand({
302
311
  */
303
312
  function HeaderNav({
304
313
  children,
305
- 'aria-label': ariaLabel = 'Main navigation',
314
+ "aria-label": ariaLabel = "Main navigation",
306
315
  className,
307
316
  ...htmlProps
308
317
  }: HeaderNavProps) {
309
- const classes = [styles.nav, className].filter(Boolean).join(' ');
318
+ const classes = [styles.nav, className].filter(Boolean).join(" ");
310
319
 
311
320
  return (
312
321
  <nav {...htmlProps} className={classes} aria-label={ariaLabel}>
313
- <ul className={styles.navList}>
314
- {children}
315
- </ul>
322
+ <ul className={styles.navList}>{children}</ul>
316
323
  </nav>
317
324
  );
318
325
  }
@@ -329,16 +336,14 @@ function HeaderNavItem({
329
336
  className,
330
337
  ...htmlProps
331
338
  }: HeaderNavItemProps) {
332
- const classes = [
333
- styles.navItem,
334
- active && styles.navItemActive,
335
- className,
336
- ].filter(Boolean).join(' ');
339
+ const classes = [styles.navItem, active && styles.navItemActive, className]
340
+ .filter(Boolean)
341
+ .join(" ");
337
342
 
338
343
  const itemProps = {
339
344
  className: classes,
340
345
  onClick,
341
- 'aria-current': active ? 'page' as const : undefined,
346
+ "aria-current": active ? ("page" as const) : undefined,
342
347
  };
343
348
 
344
349
  if (asChild && React.isValidElement(children)) {
@@ -352,7 +357,7 @@ function HeaderNavItem({
352
357
  ...htmlProps,
353
358
  ...itemProps,
354
359
  onClick: composeEventHandlers(childProps.onClick, onClick ?? (() => {})),
355
- className: [classes, childProps.className].filter(Boolean).join(' '),
360
+ className: [classes, childProps.className].filter(Boolean).join(" "),
356
361
  } as React.HTMLAttributes<HTMLElement>)}
357
362
  </li>
358
363
  );
@@ -386,21 +391,27 @@ function HeaderSearch({
386
391
  className,
387
392
  ...htmlProps
388
393
  }: HeaderSearchProps) {
389
- const classes = [
390
- styles.search,
391
- expandable && styles.searchExpandable,
392
- className,
393
- ].filter(Boolean).join(' ');
394
+ const classes = [styles.search, expandable && styles.searchExpandable, className]
395
+ .filter(Boolean)
396
+ .join(" ");
394
397
 
395
- return <div {...htmlProps} className={classes}>{children}</div>;
398
+ return (
399
+ <div {...htmlProps} className={classes}>
400
+ {children}
401
+ </div>
402
+ );
396
403
  }
397
404
 
398
405
  /**
399
406
  * Header.Actions - Right-side actions container
400
407
  */
401
408
  function HeaderActions({ children, className, ...htmlProps }: HeaderActionsProps) {
402
- const classes = [styles.actions, className].filter(Boolean).join(' ');
403
- return <div {...htmlProps} className={classes}>{children}</div>;
409
+ const classes = [styles.actions, className].filter(Boolean).join(" ");
410
+ return (
411
+ <div {...htmlProps} className={classes}>
412
+ {children}
413
+ </div>
414
+ );
404
415
  }
405
416
 
406
417
  /**
@@ -412,7 +423,7 @@ function HeaderActions({ children, className, ...htmlProps }: HeaderActionsProps
412
423
  */
413
424
  function HeaderTrigger({
414
425
  children,
415
- 'aria-label': ariaLabel = 'Toggle navigation',
426
+ "aria-label": ariaLabel = "Toggle navigation",
416
427
  className,
417
428
  onClick,
418
429
  ...htmlProps
@@ -428,18 +439,18 @@ function HeaderTrigger({
428
439
  }
429
440
 
430
441
  // Determine which state to use: sidebar (if available with a real provider) or header internal
431
- const hasSidebarProvider = sidebar.open !== undefined && sidebar.setOpen !== undefined
432
- && typeof sidebar.setOpen === 'function';
442
+ const hasSidebarProvider =
443
+ sidebar.open !== undefined &&
444
+ sidebar.setOpen !== undefined &&
445
+ typeof sidebar.setOpen === "function";
433
446
  const isUsingSidebar = hasSidebarProvider && sidebar.isMobile;
434
447
 
435
448
  const open = isUsingSidebar ? sidebar.open : (headerCtx?.mobileOpen ?? false);
436
- const setOpen = isUsingSidebar
437
- ? sidebar.setOpen
438
- : (headerCtx?.setMobileOpen ?? (() => {}));
449
+ const setOpen = isUsingSidebar ? sidebar.setOpen : (headerCtx?.setMobileOpen ?? (() => {}));
439
450
 
440
- const classes = [styles.trigger, className].filter(Boolean).join(' ');
451
+ const classes = [styles.trigger, className].filter(Boolean).join(" ");
441
452
  const iconSlot = open ? icons?.close : icons?.menu;
442
- const iconState: HeaderIconRenderState = { slot: open ? 'close' : 'menu', open };
453
+ const iconState: HeaderIconRenderState = { slot: open ? "close" : "menu", open };
443
454
  const iconOverride = renderHeaderIcon(iconSlot, iconState);
444
455
 
445
456
  return (
@@ -451,7 +462,9 @@ function HeaderTrigger({
451
462
  aria-label={ariaLabel}
452
463
  aria-expanded={open}
453
464
  >
454
- {children || iconOverride || (open ? <X size={24} aria-hidden /> : <List size={24} aria-hidden />)}
465
+ {children ||
466
+ iconOverride ||
467
+ (open ? <X size={24} aria-hidden /> : <List size={24} aria-hidden />)}
455
468
  </button>
456
469
  );
457
470
  }
@@ -460,7 +473,7 @@ function HeaderTrigger({
460
473
  * Header.Spacer - Flexible spacer to push items apart
461
474
  */
462
475
  function HeaderSpacer({ className }: { className?: string }) {
463
- const classes = [styles.spacer, className].filter(Boolean).join(' ');
476
+ const classes = [styles.spacer, className].filter(Boolean).join(" ");
464
477
  return <div className={classes} />;
465
478
  }
466
479
 
@@ -480,9 +493,11 @@ function HeaderNavMenu({
480
493
  styles.navMenuTrigger,
481
494
  active && styles.navItemActive,
482
495
  className,
483
- ].filter(Boolean).join(' ');
496
+ ]
497
+ .filter(Boolean)
498
+ .join(" ");
484
499
  const chevronIcon = renderHeaderIcon(icons?.navMenuChevron, {
485
- slot: 'navMenuChevron',
500
+ slot: "navMenuChevron",
486
501
  active,
487
502
  });
488
503
 
@@ -491,15 +506,22 @@ function HeaderNavMenu({
491
506
  <BaseMenu.Root modal={false}>
492
507
  <BaseMenu.Trigger className={triggerClasses}>
493
508
  {label}
494
- {chevronIcon
495
- ? <span className={styles.navMenuChevron} aria-hidden>{chevronIcon}</span>
496
- : <CaretDown size={12} className={styles.navMenuChevron} aria-hidden />}
509
+ {chevronIcon ? (
510
+ <span className={styles.navMenuChevron} aria-hidden>
511
+ {chevronIcon}
512
+ </span>
513
+ ) : (
514
+ <CaretDown size={12} className={styles.navMenuChevron} aria-hidden />
515
+ )}
497
516
  </BaseMenu.Trigger>
498
517
  <BaseMenu.Portal>
499
- <BaseMenu.Positioner side="bottom" align="start" sideOffset={POPUP_OFFSET_PX} className={styles.navMenuPositioner}>
500
- <BaseMenu.Popup className={styles.navMenuPopup}>
501
- {children}
502
- </BaseMenu.Popup>
518
+ <BaseMenu.Positioner
519
+ side="bottom"
520
+ align="start"
521
+ sideOffset={POPUP_OFFSET_PX}
522
+ className={styles.navMenuPositioner}
523
+ >
524
+ <BaseMenu.Popup className={styles.navMenuPopup}>{children}</BaseMenu.Popup>
503
525
  </BaseMenu.Positioner>
504
526
  </BaseMenu.Portal>
505
527
  </BaseMenu.Root>
@@ -518,19 +540,13 @@ function HeaderNavMenuItem({
518
540
  className,
519
541
  ...htmlProps
520
542
  }: HeaderNavMenuItemProps) {
521
- const classes = [
522
- styles.navMenuItem,
523
- active && styles.navMenuItemActive,
524
- className,
525
- ].filter(Boolean).join(' ');
543
+ const classes = [styles.navMenuItem, active && styles.navMenuItemActive, className]
544
+ .filter(Boolean)
545
+ .join(" ");
526
546
 
527
547
  if (asChild && React.isValidElement(children)) {
528
548
  return (
529
- <BaseMenu.Item
530
- {...htmlProps}
531
- className={classes}
532
- render={children as React.ReactElement}
533
- />
549
+ <BaseMenu.Item {...htmlProps} className={classes} render={children as React.ReactElement} />
534
550
  );
535
551
  }
536
552
 
@@ -564,38 +580,36 @@ function HeaderMobileNav({ children, className }: HeaderMobileNavProps) {
564
580
  // Lock body scroll when open
565
581
  React.useEffect(() => {
566
582
  if (!mobileOpen) return;
567
- document.body.style.overflow = 'hidden';
568
- return () => { document.body.style.overflow = ''; };
583
+ document.body.style.overflow = "hidden";
584
+ return () => {
585
+ document.body.style.overflow = "";
586
+ };
569
587
  }, [mobileOpen]);
570
588
 
571
589
  // Handle Escape
572
590
  React.useEffect(() => {
573
591
  if (!mobileOpen) return;
574
592
  const handleKeyDown = (e: KeyboardEvent) => {
575
- if (e.key === 'Escape') setMobileOpen(false);
593
+ if (e.key === "Escape") setMobileOpen(false);
576
594
  };
577
- document.addEventListener('keydown', handleKeyDown);
578
- return () => document.removeEventListener('keydown', handleKeyDown);
595
+ document.addEventListener("keydown", handleKeyDown);
596
+ return () => document.removeEventListener("keydown", handleKeyDown);
579
597
  }, [mobileOpen, setMobileOpen]);
580
598
 
581
599
  if (!mobileOpen) return null;
582
- if (typeof document === 'undefined') return null;
600
+ if (typeof document === "undefined") return null;
583
601
 
584
602
  const closeIcon = renderHeaderIcon(icons?.mobileClose, {
585
- slot: 'mobileClose',
603
+ slot: "mobileClose",
586
604
  open: true,
587
605
  });
588
606
 
589
607
  const drawerContent = (
590
608
  <>
591
- <div
592
- className={styles.mobileNavBackdrop}
593
- onClick={() => setMobileOpen(false)}
594
- aria-hidden
595
- />
609
+ <div className={styles.mobileNavBackdrop} onClick={() => setMobileOpen(false)} aria-hidden />
596
610
  <div
597
611
  ref={drawerRef}
598
- className={[styles.mobileNavDrawer, className].filter(Boolean).join(' ')}
612
+ className={[styles.mobileNavDrawer, className].filter(Boolean).join(" ")}
599
613
  role="dialog"
600
614
  aria-modal
601
615
  aria-label="Navigation"
@@ -610,7 +624,7 @@ function HeaderMobileNav({ children, className }: HeaderMobileNavProps) {
610
624
  {closeIcon ?? <X size={20} aria-hidden />}
611
625
  </button>
612
626
  </div>
613
- <ScrollArea orientation="vertical" className={styles.mobileNavBody}>
627
+ <ScrollArea orientation="vertical" showFades className={styles.mobileNavBody}>
614
628
  {children}
615
629
  </ScrollArea>
616
630
  </div>
@@ -634,11 +648,9 @@ function HeaderMobileNavLink({
634
648
  }: HeaderNavItemProps) {
635
649
  const { setMobileOpen } = useHeaderContext();
636
650
 
637
- const classes = [
638
- styles.mobileNavLink,
639
- active && styles.mobileNavLinkActive,
640
- className,
641
- ].filter(Boolean).join(' ');
651
+ const classes = [styles.mobileNavLink, active && styles.mobileNavLinkActive, className]
652
+ .filter(Boolean)
653
+ .join(" ");
642
654
 
643
655
  const handleClick: React.MouseEventHandler<HTMLElement> = (e) => {
644
656
  onClick?.(e);
@@ -652,7 +664,7 @@ function HeaderMobileNavLink({
652
664
  };
653
665
  return React.cloneElement(children, {
654
666
  ...htmlProps,
655
- className: [classes, childProps.className].filter(Boolean).join(' '),
667
+ className: [classes, childProps.className].filter(Boolean).join(" "),
656
668
  onClick: composeEventHandlers(childProps.onClick, handleClick),
657
669
  } as React.HTMLAttributes<HTMLElement>);
658
670
  }
@@ -680,7 +692,7 @@ function HeaderMobileNavActions({
680
692
  className,
681
693
  ...htmlProps
682
694
  }: HeaderMobileNavActionsProps) {
683
- const classes = [styles.mobileNavActions, className].filter(Boolean).join(' ');
695
+ const classes = [styles.mobileNavActions, className].filter(Boolean).join(" ");
684
696
 
685
697
  return (
686
698
  <div {...htmlProps} className={classes}>
@@ -693,15 +705,15 @@ function HeaderMobileNavActions({
693
705
  * Header.SkipLink - Skip to main content link (accessibility)
694
706
  */
695
707
  function HeaderSkipLink({
696
- children = 'Skip to main content',
697
- href = '#main-content',
708
+ children = "Skip to main content",
709
+ href = "#main-content",
698
710
  className,
699
711
  }: {
700
712
  children?: React.ReactNode;
701
713
  href?: string;
702
714
  className?: string;
703
715
  }) {
704
- const classes = [styles.skipLink, className].filter(Boolean).join(' ');
716
+ const classes = [styles.skipLink, className].filter(Boolean).join(" ");
705
717
  return (
706
718
  <a href={href} className={classes}>
707
719
  {children}