@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,11 +1,11 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import { createPortal } from 'react-dom';
5
- import { CaretDown, List, X } from '@phosphor-icons/react';
6
- import { handleArrowNavigation, useFocusTrap } from '../../utils/a11y';
7
- import { Collapsible } from '../Collapsible';
8
- import { ScrollArea } from '../ScrollArea';
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import { createPortal } from "react-dom";
5
+ import { CaretDown, List, X } from "@phosphor-icons/react";
6
+ import { handleArrowNavigation, useFocusTrap } from "../../utils/a11y";
7
+ import { Collapsible } from "../Collapsible";
8
+ import { ScrollArea } from "../ScrollArea";
9
9
  import {
10
10
  NavigationMenuContext,
11
11
  NavigationMenuItemContext,
@@ -15,9 +15,9 @@ import {
15
15
  type NavigationMenuIcons,
16
16
  type NavigationMenuIconRenderState,
17
17
  type NavigationMenuIconSlot,
18
- } from './NavigationMenuContext';
19
- import { useNavigationMenu } from './useNavigationMenu';
20
- import styles from './NavigationMenu.module.scss';
18
+ } from "./NavigationMenuContext";
19
+ import { useNavigationMenu } from "./useNavigationMenu";
20
+ import styles from "./NavigationMenu.module.scss";
21
21
 
22
22
  // ============================================
23
23
  // Types
@@ -32,13 +32,19 @@ export interface NavigationMenuProps extends React.HTMLAttributes<HTMLElement> {
32
32
  /** Callback when open item changes */
33
33
  onValueChange?: (value: string) => void;
34
34
  /** Menu orientation */
35
- orientation?: 'horizontal' | 'vertical';
35
+ orientation?: "horizontal" | "vertical";
36
36
  /** Delay before opening on hover (ms) */
37
37
  delayDuration?: number;
38
38
  /** Duration to skip delays between triggers (ms) */
39
39
  skipDelayDuration?: number;
40
40
  /** Optional icon overrides for trigger chevrons and mobile drawer controls */
41
41
  icons?: NavigationMenuIcons;
42
+ /**
43
+ * Viewport width where the canonical drawer replaces desktop navigation.
44
+ * `md` preserves the default 768px switch; `lg` lets rail-based shells
45
+ * retire their sidebar and desktop navigation together below 1024px.
46
+ */
47
+ mobileBreakpoint?: "md" | "lg";
42
48
  }
43
49
 
44
50
  export interface NavigationMenuListProps {
@@ -65,7 +71,7 @@ export interface NavigationMenuContentProps {
65
71
 
66
72
  export interface NavigationMenuLinkProps extends Omit<
67
73
  React.AnchorHTMLAttributes<HTMLAnchorElement>,
68
- 'title'
74
+ "title"
69
75
  > {
70
76
  /** Simple mode: children as text content */
71
77
  children?: React.ReactNode;
@@ -120,19 +126,20 @@ export interface NavigationMenuMobileSectionProps {
120
126
  // Hooks
121
127
  // ============================================
122
128
 
123
- function useIsMobile() {
129
+ function useIsMobile(breakpoint: "md" | "lg") {
124
130
  const [isMobile, setIsMobile] = React.useState(false);
125
131
 
126
132
  React.useEffect(() => {
127
- if (typeof window === 'undefined') return;
133
+ if (typeof window === "undefined") return;
128
134
 
129
- const mq = window.matchMedia('(max-width: 767px)');
135
+ const maxWidth = breakpoint === "lg" ? 1023 : 767;
136
+ const mq = window.matchMedia(`(max-width: ${maxWidth}px)`);
130
137
  setIsMobile(mq.matches);
131
138
 
132
139
  const handler = (e: MediaQueryListEvent) => setIsMobile(e.matches);
133
- mq.addEventListener('change', handler);
134
- return () => mq.removeEventListener('change', handler);
135
- }, []);
140
+ mq.addEventListener("change", handler);
141
+ return () => mq.removeEventListener("change", handler);
142
+ }, [breakpoint]);
136
143
 
137
144
  return isMobile;
138
145
  }
@@ -142,7 +149,7 @@ function renderNavigationMenuIcon(
142
149
  state: NavigationMenuIconRenderState
143
150
  ): React.ReactNode {
144
151
  if (slot === undefined) return undefined;
145
- return typeof slot === 'function' ? slot(state) : slot;
152
+ return typeof slot === "function" ? slot(state) : slot;
146
153
  }
147
154
 
148
155
  // ============================================
@@ -154,16 +161,17 @@ function NavigationMenuRoot({
154
161
  value: controlledValue,
155
162
  defaultValue,
156
163
  onValueChange,
157
- orientation = 'horizontal',
164
+ orientation = "horizontal",
158
165
  delayDuration = 200,
159
166
  skipDelayDuration = 300,
160
167
  icons,
168
+ mobileBreakpoint = "md",
161
169
  className,
162
- 'aria-label': ariaLabel = 'Main navigation',
170
+ "aria-label": ariaLabel = "Main navigation",
163
171
  ...htmlProps
164
172
  }: NavigationMenuProps) {
165
173
  const rootId = React.useId();
166
- const isMobile = useIsMobile();
174
+ const isMobile = useIsMobile(mobileBreakpoint);
167
175
 
168
176
  const state = useNavigationMenu({
169
177
  value: controlledValue,
@@ -173,9 +181,9 @@ function NavigationMenuRoot({
173
181
  skipDelayDuration,
174
182
  });
175
183
 
176
- const classes = [styles.root, orientation === 'vertical' && styles.rootVertical, className]
184
+ const classes = [styles.root, orientation === "vertical" && styles.rootVertical, className]
177
185
  .filter(Boolean)
178
- .join(' ');
186
+ .join(" ");
179
187
 
180
188
  const contextValue = React.useMemo(
181
189
  () => ({
@@ -190,7 +198,13 @@ function NavigationMenuRoot({
190
198
 
191
199
  return (
192
200
  <NavigationMenuContext.Provider value={contextValue}>
193
- <nav {...htmlProps} className={classes} aria-label={ariaLabel} data-orientation={orientation}>
201
+ <nav
202
+ {...htmlProps}
203
+ className={classes}
204
+ aria-label={ariaLabel}
205
+ data-orientation={orientation}
206
+ data-mobile={isMobile || undefined}
207
+ >
194
208
  {children}
195
209
  {isMobile && <MobileHamburger />}
196
210
  {isMobile && state.mobileOpen && <MobileDrawer />}
@@ -211,13 +225,13 @@ function NavigationMenuList({ children, className }: NavigationMenuListProps) {
211
225
  const handleKeyDown = (e: React.KeyboardEvent) => {
212
226
  const order = triggerOrder.current;
213
227
  const focusedValue = (document.activeElement as HTMLElement | null)?.getAttribute(
214
- 'data-navmenu-value'
228
+ "data-navmenu-value"
215
229
  );
216
230
  const currentValue = focusedValue || value;
217
231
  const currentIdx = order.indexOf(currentValue);
218
232
 
219
233
  const newIdx = handleArrowNavigation(e, order, currentIdx >= 0 ? currentIdx : 0, {
220
- orientation: orientation === 'horizontal' ? 'horizontal' : 'vertical',
234
+ orientation: orientation === "horizontal" ? "horizontal" : "vertical",
221
235
  loop: true,
222
236
  });
223
237
 
@@ -228,9 +242,9 @@ function NavigationMenuList({ children, className }: NavigationMenuListProps) {
228
242
  }
229
243
  };
230
244
 
231
- const classes = [styles.list, orientation === 'vertical' && styles.listVertical, className]
245
+ const classes = [styles.list, orientation === "vertical" && styles.listVertical, className]
232
246
  .filter(Boolean)
233
- .join(' ');
247
+ .join(" ");
234
248
 
235
249
  return (
236
250
  <ul
@@ -265,7 +279,7 @@ function NavigationMenuItem({ children, value: valueProp, className }: Navigatio
265
279
  if (!existing) {
266
280
  rootCtx.itemInfoMap.current.set(autoValue, {
267
281
  value: autoValue,
268
- triggerLabel: '',
282
+ triggerLabel: "",
269
283
  contentChildren: null,
270
284
  });
271
285
  }
@@ -321,12 +335,12 @@ function NavigationMenuTrigger({ children, className }: NavigationMenuTriggerPro
321
335
 
322
336
  // Register item info for mobile drawer
323
337
  React.useEffect(() => {
324
- const label = typeof children === 'string' ? children : '';
338
+ const label = typeof children === "string" ? children : "";
325
339
  const existing = ctx.itemInfoMap.current.get(itemCtx.value);
326
340
  ctx.itemInfoMap.current.set(itemCtx.value, {
327
341
  ...existing,
328
342
  value: itemCtx.value,
329
- triggerLabel: label || existing?.triggerLabel || '',
343
+ triggerLabel: label || existing?.triggerLabel || "",
330
344
  } as NavigationMenuItemInfo);
331
345
  // eslint-disable-next-line react-hooks/exhaustive-deps
332
346
  }, [itemCtx.value, children]);
@@ -340,7 +354,7 @@ function NavigationMenuTrigger({ children, className }: NavigationMenuTriggerPro
340
354
  clearTimeout(ctx.closeTimerRef.current);
341
355
  ctx.closeTimerRef.current = null;
342
356
  }
343
- ctx.setValue(isOpen ? '' : itemCtx.value);
357
+ ctx.setValue(isOpen ? "" : itemCtx.value);
344
358
  };
345
359
 
346
360
  const handlePointerEnter = () => {
@@ -367,25 +381,25 @@ function NavigationMenuTrigger({ children, className }: NavigationMenuTriggerPro
367
381
  }
368
382
 
369
383
  ctx.closeTimerRef.current = setTimeout(() => {
370
- ctx.setValue('');
384
+ ctx.setValue("");
371
385
  }, ctx.delayDuration);
372
386
  };
373
387
 
374
388
  const handleKeyDown = (e: React.KeyboardEvent) => {
375
- if (e.key === 'Enter' || e.key === ' ') {
389
+ if (e.key === "Enter" || e.key === " ") {
376
390
  e.preventDefault();
377
- ctx.setValue(isOpen ? '' : itemCtx.value);
391
+ ctx.setValue(isOpen ? "" : itemCtx.value);
378
392
  }
379
- if (e.key === 'Escape' && isOpen) {
393
+ if (e.key === "Escape" && isOpen) {
380
394
  e.preventDefault();
381
- ctx.setValue('');
395
+ ctx.setValue("");
382
396
  triggerRef.current?.focus();
383
397
  }
384
398
  };
385
399
 
386
- const classes = [styles.trigger, className].filter(Boolean).join(' ');
400
+ const classes = [styles.trigger, className].filter(Boolean).join(" ");
387
401
  const chevronOverride = renderNavigationMenuIcon(ctx.icons?.triggerChevron, {
388
- slot: 'triggerChevron',
402
+ slot: "triggerChevron",
389
403
  open: isOpen,
390
404
  isMobile: ctx.isMobile,
391
405
  });
@@ -399,7 +413,7 @@ function NavigationMenuTrigger({ children, className }: NavigationMenuTriggerPro
399
413
  data-navmenu-value={itemCtx.value}
400
414
  aria-expanded={isOpen}
401
415
  aria-controls={itemCtx.contentId}
402
- data-state={isOpen ? 'open' : 'closed'}
416
+ data-state={isOpen ? "open" : "closed"}
403
417
  onClick={handleClick}
404
418
  onPointerEnter={handlePointerEnter}
405
419
  onPointerLeave={handlePointerLeave}
@@ -433,7 +447,7 @@ function NavigationMenuContent({ children, className }: NavigationMenuContentPro
433
447
  ctx.itemInfoMap.current.set(itemCtx.value, {
434
448
  ...existing,
435
449
  value: itemCtx.value,
436
- triggerLabel: existing?.triggerLabel || '',
450
+ triggerLabel: existing?.triggerLabel || "",
437
451
  contentChildren: children,
438
452
  } as NavigationMenuItemInfo);
439
453
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -471,7 +485,7 @@ function NavigationMenuContent({ children, className }: NavigationMenuContentPro
471
485
  const currentIdx = triggerOrder.indexOf(itemCtx.value);
472
486
  let motion: string | undefined;
473
487
  if (isOpen && prevValue && prevValue !== itemCtx.value) {
474
- motion = currentIdx > prevIdx ? 'from-end' : 'from-start';
488
+ motion = currentIdx > prevIdx ? "from-end" : "from-start";
475
489
  }
476
490
 
477
491
  // Update previousValue when this content becomes active
@@ -484,7 +498,7 @@ function NavigationMenuContent({ children, className }: NavigationMenuContentPro
484
498
 
485
499
  if (!isOpen) return null;
486
500
 
487
- const classes = [styles.content, className].filter(Boolean).join(' ');
501
+ const classes = [styles.content, className].filter(Boolean).join(" ");
488
502
 
489
503
  const handlePointerEnter = () => {
490
504
  if (ctx.closeTimerRef.current) {
@@ -495,7 +509,7 @@ function NavigationMenuContent({ children, className }: NavigationMenuContentPro
495
509
 
496
510
  const handlePointerLeave = () => {
497
511
  ctx.closeTimerRef.current = setTimeout(() => {
498
- ctx.setValue('');
512
+ ctx.setValue("");
499
513
  }, ctx.delayDuration);
500
514
  };
501
515
 
@@ -548,22 +562,22 @@ function NavigationMenuLink({
548
562
 
549
563
  const existing = ctx.itemInfoMap.current.get(itemCtx.value);
550
564
  const fallbackLabel =
551
- typeof children === 'string'
565
+ typeof children === "string"
552
566
  ? children
553
- : typeof title === 'string'
567
+ : typeof title === "string"
554
568
  ? title
555
569
  : React.Children.toArray(title ?? children)
556
570
  .filter(
557
571
  (node): node is string | number =>
558
- typeof node === 'string' || typeof node === 'number'
572
+ typeof node === "string" || typeof node === "number"
559
573
  )
560
- .join('');
561
- const resolvedHref = typeof href === 'string' ? href : existing?.linkHref;
574
+ .join("");
575
+ const resolvedHref = typeof href === "string" ? href : existing?.linkHref;
562
576
 
563
577
  ctx.itemInfoMap.current.set(itemCtx.value, {
564
578
  ...existing,
565
579
  value: itemCtx.value,
566
- triggerLabel: existing?.triggerLabel || fallbackLabel || '',
580
+ triggerLabel: existing?.triggerLabel || fallbackLabel || "",
567
581
  contentChildren: existing?.contentChildren ?? null,
568
582
  linkHref: resolvedHref,
569
583
  });
@@ -578,27 +592,31 @@ function NavigationMenuLink({
578
592
  }
579
593
  // Close desktop menu
580
594
  if (ctx) {
581
- ctx.setValue('');
595
+ ctx.setValue("");
582
596
  }
583
597
  };
584
598
 
599
+ // MobileContent portals into the drawer; use drawer geometry there instead of
600
+ // the desktop popup-panel link styles.
601
+ const inMobileDrawer = Boolean(ctx?.isMobile && ctx?.mobileOpen);
602
+
585
603
  // Structured mode (title + description + icon)
586
604
  if (isStructured) {
587
605
  const classes = [
588
- styles.link,
589
- styles.linkStructured,
590
- active && styles.linkActive,
591
- featured && styles.linkFeatured,
606
+ inMobileDrawer ? styles.drawerLink : styles.link,
607
+ !inMobileDrawer && styles.linkStructured,
608
+ active && (inMobileDrawer ? styles.drawerLinkActive : styles.linkActive),
609
+ !inMobileDrawer && featured && styles.linkFeatured,
592
610
  className,
593
611
  ]
594
612
  .filter(Boolean)
595
- .join(' ');
613
+ .join(" ");
596
614
 
597
615
  const linkProps = {
598
616
  ...htmlProps,
599
617
  className: classes,
600
618
  href,
601
- 'aria-current': active ? ('page' as const) : undefined,
619
+ "aria-current": active ? ("page" as const) : undefined,
602
620
  onClick: handleClick,
603
621
  };
604
622
 
@@ -610,7 +628,7 @@ function NavigationMenuLink({
610
628
  return React.cloneElement(children, {
611
629
  ...linkProps,
612
630
  onClick: composeNavMenuClickHandlers(childProps.onClick, handleClick),
613
- className: [classes, childProps.className].filter(Boolean).join(' '),
631
+ className: [classes, childProps.className].filter(Boolean).join(" "),
614
632
  children: (
615
633
  <>
616
634
  {icon && <span className={styles.linkIcon}>{icon}</span>}
@@ -635,13 +653,19 @@ function NavigationMenuLink({
635
653
  }
636
654
 
637
655
  // Simple link mode
638
- const classes = [styles.link, active && styles.linkActive, className].filter(Boolean).join(' ');
656
+ const classes = [
657
+ inMobileDrawer ? styles.drawerLink : styles.link,
658
+ active && (inMobileDrawer ? styles.drawerLinkActive : styles.linkActive),
659
+ className,
660
+ ]
661
+ .filter(Boolean)
662
+ .join(" ");
639
663
 
640
664
  const linkProps = {
641
665
  ...htmlProps,
642
666
  className: classes,
643
667
  href,
644
- 'aria-current': active ? ('page' as const) : undefined,
668
+ "aria-current": active ? ("page" as const) : undefined,
645
669
  onClick: handleClick,
646
670
  };
647
671
 
@@ -653,7 +677,7 @@ function NavigationMenuLink({
653
677
  return React.cloneElement(children, {
654
678
  ...linkProps,
655
679
  onClick: composeNavMenuClickHandlers(childProps.onClick, handleClick),
656
- className: [classes, childProps.className].filter(Boolean).join(' '),
680
+ className: [classes, childProps.className].filter(Boolean).join(" "),
657
681
  } as React.HTMLAttributes<HTMLElement>);
658
682
  }
659
683
 
@@ -675,7 +699,7 @@ function NavigationMenuIndicator({ className }: NavigationMenuIndicatorProps) {
675
699
  }
676
700
  const trigger = triggerRefs.current.get(value);
677
701
  if (trigger) {
678
- const parent = trigger.closest('ul');
702
+ const parent = trigger.closest("ul");
679
703
  if (parent) {
680
704
  const parentRect = parent.getBoundingClientRect();
681
705
  const triggerRect = trigger.getBoundingClientRect();
@@ -688,7 +712,7 @@ function NavigationMenuIndicator({ className }: NavigationMenuIndicatorProps) {
688
712
  }
689
713
  }, [value, triggerRefs]);
690
714
 
691
- const classes = [styles.indicator, className].filter(Boolean).join(' ');
715
+ const classes = [styles.indicator, className].filter(Boolean).join(" ");
692
716
 
693
717
  return <div className={classes} style={style} aria-hidden />;
694
718
  }
@@ -719,9 +743,9 @@ function NavigationMenuViewport({ className }: NavigationMenuViewportProps) {
719
743
  }, [isOpen, value, triggerRefs, viewportRef]);
720
744
 
721
745
  const cssVars = {
722
- '--fui-navmenu-viewport-width': isOpen ? `${viewportSize.width}px` : '0px',
723
- '--fui-navmenu-viewport-height': isOpen ? `${viewportSize.height}px` : '0px',
724
- '--fui-navmenu-viewport-left': `${triggerLeft}px`,
746
+ "--fui-navmenu-viewport-width": isOpen ? `${viewportSize.width}px` : "0px",
747
+ "--fui-navmenu-viewport-height": isOpen ? `${viewportSize.height}px` : "0px",
748
+ "--fui-navmenu-viewport-left": `${triggerLeft}px`,
725
749
  } as React.CSSProperties;
726
750
 
727
751
  // Mark skip-delay state
@@ -739,14 +763,14 @@ function NavigationMenuViewport({ className }: NavigationMenuViewportProps) {
739
763
  // eslint-disable-next-line react-hooks/exhaustive-deps
740
764
  }, [isOpen]);
741
765
 
742
- const classes = [styles.viewport, className].filter(Boolean).join(' ');
766
+ const classes = [styles.viewport, className].filter(Boolean).join(" ");
743
767
 
744
768
  return (
745
769
  <div
746
770
  ref={viewportRef}
747
771
  className={classes}
748
772
  style={cssVars}
749
- data-state={isOpen ? 'open' : 'closed'}
773
+ data-state={isOpen ? "open" : "closed"}
750
774
  role="presentation"
751
775
  />
752
776
  );
@@ -809,7 +833,7 @@ function MobileHamburger() {
809
833
  const iconOverride = renderNavigationMenuIcon(
810
834
  mobileOpen ? ctx.icons?.mobileClose : ctx.icons?.mobileMenu,
811
835
  {
812
- slot: mobileOpen ? 'mobileClose' : 'mobileMenu',
836
+ slot: mobileOpen ? "mobileClose" : "mobileMenu",
813
837
  open: mobileOpen,
814
838
  isMobile: true,
815
839
  }
@@ -840,21 +864,21 @@ function MobileDrawer() {
840
864
 
841
865
  // Lock body scroll
842
866
  React.useEffect(() => {
843
- document.body.style.overflow = 'hidden';
867
+ document.body.style.overflow = "hidden";
844
868
  return () => {
845
- document.body.style.overflow = '';
869
+ document.body.style.overflow = "";
846
870
  };
847
871
  }, []);
848
872
 
849
873
  // Handle Escape
850
874
  React.useEffect(() => {
851
875
  const handleKeyDown = (e: KeyboardEvent) => {
852
- if (e.key === 'Escape') {
876
+ if (e.key === "Escape") {
853
877
  ctx.setMobileOpen(false);
854
878
  }
855
879
  };
856
- document.addEventListener('keydown', handleKeyDown);
857
- return () => document.removeEventListener('keydown', handleKeyDown);
880
+ document.addEventListener("keydown", handleKeyDown);
881
+ return () => document.removeEventListener("keydown", handleKeyDown);
858
882
  }, [ctx]);
859
883
 
860
884
  // Build auto-converted nav items from item info registry
@@ -887,13 +911,13 @@ function MobileDrawer() {
887
911
  aria-label="Close navigation"
888
912
  >
889
913
  {renderNavigationMenuIcon(ctx.icons?.drawerClose, {
890
- slot: 'drawerClose',
914
+ slot: "drawerClose",
891
915
  open: ctx.mobileOpen,
892
916
  isMobile: true,
893
917
  }) ?? <X size={20} aria-hidden />}
894
918
  </button>
895
919
  </div>
896
- <ScrollArea orientation="vertical" className={styles.drawerBody}>
920
+ <ScrollArea orientation="vertical" showFades className={styles.drawerBody}>
897
921
  {/* When MobileContent is provided, it takes full control of the drawer nav.
898
922
  Otherwise, auto-convert registered Trigger+Content items. */}
899
923
  {ctx.mobileContentChildren ? (
@@ -927,7 +951,7 @@ function MobileDrawer() {
927
951
  </>
928
952
  );
929
953
 
930
- if (typeof document === 'undefined') return null;
954
+ if (typeof document === "undefined") return null;
931
955
  return createPortal(drawerContent, document.body);
932
956
  }
933
957
 
@@ -952,7 +976,7 @@ function MobileCollapsibleSection({
952
976
  className={styles.drawerCollapsibleContent}
953
977
  onClick={onLinkClick}
954
978
  onKeyDown={(e) => {
955
- if (e.key === 'Enter') onLinkClick();
979
+ if (e.key === "Enter") onLinkClick();
956
980
  }}
957
981
  role="group"
958
982
  >
@@ -998,4 +1022,4 @@ export type {
998
1022
  NavigationMenuIcons,
999
1023
  NavigationMenuIconSlot,
1000
1024
  NavigationMenuIconRenderState,
1001
- } from './NavigationMenuContext';
1025
+ } from "./NavigationMenuContext";
@@ -1,14 +1,9 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "Pagination",
4
- "description": "Page navigation for paginated data. Supports controlled/uncontrolled, page counts, and edge/sibling customization.",
4
+ "description": "Steps through content split across numbered pages.",
5
5
  "category": "navigation",
6
- "tags": [
7
- "pagination",
8
- "paging",
9
- "pages",
10
- "navigation"
11
- ],
6
+ "tags": ["pagination", "paging", "pages", "navigation"],
12
7
  "status": "stable",
13
8
  "sourcePath": "src/components/Pagination/index.tsx",
14
9
  "exportName": "Pagination",
@@ -63,25 +58,23 @@
63
58
  },
64
59
  "usage": {
65
60
  "when": [
66
- "Navigating through paginated data sets",
67
- "Table or list pagination controls",
68
- "Search results with multiple pages",
69
- "Any content split across multiple pages"
61
+ "Data sets served a page at a time",
62
+ "Tables and lists with a known total",
63
+ "Search results past the first screen"
70
64
  ],
71
65
  "whenNot": [
72
- "Small lists that fit on one page",
73
- "Infinite scroll patterns (use IntersectionObserver)",
74
- "Tab-based navigation (use Tabs)",
75
- "Step-by-step wizards (use Stepper)"
66
+ "Everything already fits on one page",
67
+ "Content that loads as the user scrolls",
68
+ "Switching between panels (use Tabs)",
69
+ "Steps in an order (use Stepper)"
76
70
  ],
77
71
  "guidelines": [
78
- "Place below the content being paginated",
79
- "Use edgeCount to always show first/last pages",
80
- "Use siblingCount to control how many pages surround the current page",
81
- "Pair with Table component for data table pagination",
82
- "Keep page labels on the body foreground; the current page uses a neutral active surface rather than brand accent",
83
- "Pagination forwards standard nav props (id, aria-*, data-*, event handlers) to the root <nav>",
84
- "Previous/Next/Item buttons compose your onClick handlers; call event.preventDefault() to stop the page change"
72
+ "Sit it directly below what it pages",
73
+ "edgeCount keeps the first and last pages reachable",
74
+ "siblingCount sets how many neighbours show",
75
+ "The current page uses a neutral surface, not the brand accent",
76
+ "The root forwards id, aria-*, data-*, and handlers to <nav>",
77
+ "Your onClick runs first call preventDefault() to stop the change"
85
78
  ],
86
79
  "accessibility": [
87
80
  "Uses nav element with aria-label=\"Pagination\"",
@@ -93,22 +86,22 @@
93
86
  "examples": [
94
87
  {
95
88
  "name": "Default",
96
- "description": "Basic pagination with 10 pages",
89
+ "description": "Neighbours around the current page, ends always reachable.",
97
90
  "code": "<Pagination totalPages={10} defaultPage={1}>\n <Pagination.Previous />\n <Pagination.Items />\n <Pagination.Next />\n</Pagination>"
98
91
  },
99
92
  {
100
93
  "name": "With Edge Pages",
101
- "description": "Shows 2 pages at each edge",
94
+ "description": "Two pages pinned at each end.",
102
95
  "code": "<Pagination totalPages={20} defaultPage={10} edgeCount={2} siblingCount={1}>\n <Pagination.Previous />\n <Pagination.Items />\n <Pagination.Next />\n</Pagination>"
103
96
  },
104
97
  {
105
98
  "name": "Compact",
106
- "description": "No siblings, minimal display",
99
+ "description": "Drops the neighbours when space is tight.",
107
100
  "code": "<Pagination totalPages={20} defaultPage={10} siblingCount={0}>\n <Pagination.Previous />\n <Pagination.Items />\n <Pagination.Next />\n</Pagination>"
108
101
  },
109
102
  {
110
103
  "name": "Controlled",
111
- "description": "Controlled pagination at page 3",
104
+ "description": "You hold the page number in state.",
112
105
  "code": "<Pagination totalPages={5} page={3}>\n <Pagination.Previous />\n <Pagination.Items />\n <Pagination.Next />\n</Pagination>"
113
106
  }
114
107
  ],
@@ -134,23 +127,12 @@
134
127
  "siblingCount: number - pages around current (default: 1)",
135
128
  "Forwards standard HTML nav attributes to the root element"
136
129
  ],
137
- "a11yRules": [
138
- "A11Y_NAV_LABEL",
139
- "A11Y_CURRENT_PAGE"
140
- ]
130
+ "a11yRules": ["A11Y_NAV_LABEL", "A11Y_CURRENT_PAGE"]
141
131
  },
142
132
  "ai": {
143
133
  "compositionPattern": "compound",
144
- "subComponents": [
145
- "Previous",
146
- "Next",
147
- "Items",
148
- "Item",
149
- "Ellipsis"
150
- ],
151
- "requiredChildren": [
152
- "Items"
153
- ],
134
+ "subComponents": ["Previous", "Next", "Items", "Item", "Ellipsis"],
135
+ "requiredChildren": ["Items"],
154
136
  "commonPatterns": [
155
137
  "<Pagination totalPages={totalPages} page={currentPage} onPageChange={setPage}><Pagination.Previous /><Pagination.Items /><Pagination.Next /></Pagination>"
156
138
  ]