@usefragments/ui 1.5.4 → 1.7.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 (667) hide show
  1. package/README.md +4 -4
  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/ui.css +10468 -6909
  6. package/dist/chart.cjs +31 -26
  7. package/dist/chart.js +31 -26
  8. package/dist/codeblock.cjs +55 -29
  9. package/dist/codeblock.js +55 -29
  10. package/dist/colorpicker.cjs +5 -2
  11. package/dist/colorpicker.js +5 -2
  12. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  13. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  14. package/dist/components/Alert/Alert.module.scss.cjs +15 -12
  15. package/dist/components/Alert/Alert.module.scss.js +15 -12
  16. package/dist/components/Alert/index.cjs +7 -1
  17. package/dist/components/Alert/index.d.ts +12 -6
  18. package/dist/components/Alert/index.d.ts.map +1 -1
  19. package/dist/components/Alert/index.js +7 -1
  20. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  21. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  22. package/dist/components/AppShell/index.cjs +5 -3
  23. package/dist/components/AppShell/index.d.ts +4 -2
  24. package/dist/components/AppShell/index.d.ts.map +1 -1
  25. package/dist/components/AppShell/index.js +5 -3
  26. package/dist/components/Avatar/Avatar.module.scss.cjs +17 -14
  27. package/dist/components/Avatar/Avatar.module.scss.js +17 -14
  28. package/dist/components/Avatar/index.cjs +100 -118
  29. package/dist/components/Avatar/index.d.ts +7 -5
  30. package/dist/components/Avatar/index.d.ts.map +1 -1
  31. package/dist/components/Avatar/index.js +100 -118
  32. package/dist/components/Badge/Badge.module.scss.cjs +19 -19
  33. package/dist/components/Badge/Badge.module.scss.js +19 -19
  34. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  35. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  36. package/dist/components/Box/Box.module.scss.cjs +152 -152
  37. package/dist/components/Box/Box.module.scss.js +152 -152
  38. package/dist/components/Box/index.cjs +64 -75
  39. package/dist/components/Box/index.d.ts +16 -16
  40. package/dist/components/Box/index.d.ts.map +1 -1
  41. package/dist/components/Box/index.js +64 -75
  42. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +8 -8
  43. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +8 -8
  44. package/dist/components/Button/Button.module.scss.cjs +14 -14
  45. package/dist/components/Button/Button.module.scss.js +14 -14
  46. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  47. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  48. package/dist/components/Card/Card.module.scss.cjs +30 -18
  49. package/dist/components/Card/Card.module.scss.js +31 -19
  50. package/dist/components/Card/index.cjs +8 -0
  51. package/dist/components/Card/index.d.ts +12 -2
  52. package/dist/components/Card/index.d.ts.map +1 -1
  53. package/dist/components/Card/index.js +8 -0
  54. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  55. package/dist/components/Chart/Chart.module.scss.js +15 -15
  56. package/dist/components/Chart/index.d.ts +7 -7
  57. package/dist/components/Chart/index.d.ts.map +1 -1
  58. package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -15
  59. package/dist/components/Checkbox/Checkbox.module.scss.js +9 -15
  60. package/dist/components/Checkbox/index.cjs +6 -8
  61. package/dist/components/Checkbox/index.d.ts.map +1 -1
  62. package/dist/components/Checkbox/index.js +6 -8
  63. package/dist/components/Chip/Chip.module.scss.cjs +15 -15
  64. package/dist/components/Chip/Chip.module.scss.js +15 -15
  65. package/dist/components/Chip/index.cjs +6 -6
  66. package/dist/components/Chip/index.d.ts +1 -1
  67. package/dist/components/Chip/index.js +4 -4
  68. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +27 -24
  69. package/dist/components/CodeBlock/CodeBlock.module.scss.js +27 -24
  70. package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
  71. package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
  72. package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
  73. package/dist/components/CodeBlock/css-variables-theme.js +98 -0
  74. package/dist/components/CodeBlock/index.d.ts +17 -3
  75. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  76. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -12
  77. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -12
  78. package/dist/components/Collapsible/index.cjs +3 -2
  79. package/dist/components/Collapsible/index.d.ts +3 -3
  80. package/dist/components/Collapsible/index.d.ts.map +1 -1
  81. package/dist/components/Collapsible/index.js +3 -2
  82. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +16 -16
  83. package/dist/components/ColorPicker/ColorPicker.module.scss.js +16 -16
  84. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  85. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -27
  86. package/dist/components/Combobox/Combobox.module.scss.js +21 -27
  87. package/dist/components/Combobox/index.cjs +21 -5
  88. package/dist/components/Combobox/index.d.ts.map +1 -1
  89. package/dist/components/Combobox/index.js +21 -5
  90. package/dist/components/Command/Command.module.scss.cjs +11 -11
  91. package/dist/components/Command/Command.module.scss.js +11 -11
  92. package/dist/components/Command/index.cjs +26 -15
  93. package/dist/components/Command/index.d.ts +2 -2
  94. package/dist/components/Command/index.d.ts.map +1 -1
  95. package/dist/components/Command/index.js +26 -15
  96. package/dist/components/ConversationList/ConversationList.module.scss.cjs +11 -14
  97. package/dist/components/ConversationList/ConversationList.module.scss.js +11 -14
  98. package/dist/components/ConversationList/index.cjs +40 -44
  99. package/dist/components/ConversationList/index.d.ts +3 -3
  100. package/dist/components/ConversationList/index.d.ts.map +1 -1
  101. package/dist/components/ConversationList/index.js +40 -44
  102. package/dist/components/DataTable/DataTable.icons.cjs +6 -33
  103. package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
  104. package/dist/components/DataTable/DataTable.icons.js +6 -33
  105. package/dist/components/DataTable/DataTable.module.scss.cjs +32 -56
  106. package/dist/components/DataTable/DataTable.module.scss.js +32 -56
  107. package/dist/components/DataTable/index.d.ts +5 -4
  108. package/dist/components/DataTable/index.d.ts.map +1 -1
  109. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  110. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  111. package/dist/components/DatePicker/index.d.ts.map +1 -1
  112. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  113. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  114. package/dist/components/Dialog/index.cjs +11 -14
  115. package/dist/components/Dialog/index.d.ts +7 -7
  116. package/dist/components/Dialog/index.d.ts.map +1 -1
  117. package/dist/components/Dialog/index.js +11 -14
  118. package/dist/components/Drawer/Drawer.module.scss.cjs +31 -28
  119. package/dist/components/Drawer/Drawer.module.scss.js +31 -28
  120. package/dist/components/Drawer/index.cjs +1 -1
  121. package/dist/components/Drawer/index.js +1 -1
  122. package/dist/components/Editor/Editor.module.scss.cjs +23 -23
  123. package/dist/components/Editor/Editor.module.scss.js +23 -23
  124. package/dist/components/Editor/index.d.ts +10 -10
  125. package/dist/components/Editor/index.d.ts.map +1 -1
  126. package/dist/components/EmptyState/EmptyState.module.scss.cjs +15 -12
  127. package/dist/components/EmptyState/EmptyState.module.scss.js +15 -12
  128. package/dist/components/EmptyState/index.cjs +8 -6
  129. package/dist/components/EmptyState/index.d.ts +9 -4
  130. package/dist/components/EmptyState/index.d.ts.map +1 -1
  131. package/dist/components/EmptyState/index.js +8 -6
  132. package/dist/components/Field/Field.module.scss.cjs +8 -5
  133. package/dist/components/Field/Field.module.scss.js +8 -5
  134. package/dist/components/Field/index.cjs +18 -1
  135. package/dist/components/Field/index.d.ts +9 -2
  136. package/dist/components/Field/index.d.ts.map +1 -1
  137. package/dist/components/Field/index.js +18 -1
  138. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  139. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  140. package/dist/components/Form/Form.module.scss.cjs +5 -2
  141. package/dist/components/Form/Form.module.scss.js +5 -2
  142. package/dist/components/Form/index.cjs +6 -1
  143. package/dist/components/Form/index.d.ts +8 -3
  144. package/dist/components/Form/index.d.ts.map +1 -1
  145. package/dist/components/Form/index.js +6 -1
  146. package/dist/components/Grid/Grid.module.scss.cjs +54 -72
  147. package/dist/components/Grid/Grid.module.scss.js +54 -72
  148. package/dist/components/Grid/index.cjs +57 -77
  149. package/dist/components/Grid/index.d.ts +11 -11
  150. package/dist/components/Grid/index.d.ts.map +1 -1
  151. package/dist/components/Grid/index.js +57 -77
  152. package/dist/components/Header/Header.module.scss.cjs +33 -33
  153. package/dist/components/Header/Header.module.scss.js +33 -33
  154. package/dist/components/Header/index.cjs +18 -38
  155. package/dist/components/Header/index.d.ts +15 -11
  156. package/dist/components/Header/index.d.ts.map +1 -1
  157. package/dist/components/Header/index.js +18 -38
  158. package/dist/components/Icon/Icon.module.scss.cjs +29 -8
  159. package/dist/components/Icon/Icon.module.scss.js +30 -9
  160. package/dist/components/Icon/index.cjs +30 -48
  161. package/dist/components/Icon/index.d.ts +6 -6
  162. package/dist/components/Icon/index.d.ts.map +1 -1
  163. package/dist/components/Icon/index.js +30 -48
  164. package/dist/components/IconButton/IconButton.module.scss.cjs +8 -8
  165. package/dist/components/IconButton/IconButton.module.scss.js +8 -8
  166. package/dist/components/IconButton/index.cjs +2 -1
  167. package/dist/components/IconButton/index.d.ts.map +1 -1
  168. package/dist/components/IconButton/index.js +2 -1
  169. package/dist/components/Image/Image.module.scss.cjs +27 -27
  170. package/dist/components/Image/Image.module.scss.js +27 -27
  171. package/dist/components/Input/Input.module.scss.cjs +19 -25
  172. package/dist/components/Input/Input.module.scss.js +19 -25
  173. package/dist/components/Input/index.cjs +1 -2
  174. package/dist/components/Input/index.d.ts.map +1 -1
  175. package/dist/components/Input/index.js +1 -2
  176. package/dist/components/Link/Link.module.scss.cjs +14 -10
  177. package/dist/components/Link/Link.module.scss.js +14 -10
  178. package/dist/components/Link/index.d.ts +1 -1
  179. package/dist/components/Link/index.d.ts.map +1 -1
  180. package/dist/components/List/List.module.scss.cjs +19 -19
  181. package/dist/components/List/List.module.scss.js +19 -19
  182. package/dist/components/List/index.cjs +4 -7
  183. package/dist/components/List/index.d.ts.map +1 -1
  184. package/dist/components/List/index.js +4 -7
  185. package/dist/components/Listbox/Listbox.module.scss.cjs +9 -9
  186. package/dist/components/Listbox/Listbox.module.scss.js +9 -9
  187. package/dist/components/Loading/Loading.module.scss.cjs +34 -34
  188. package/dist/components/Loading/Loading.module.scss.js +34 -34
  189. package/dist/components/Loading/index.cjs +39 -67
  190. package/dist/components/Loading/index.d.ts +6 -6
  191. package/dist/components/Loading/index.d.ts.map +1 -1
  192. package/dist/components/Loading/index.js +39 -67
  193. package/dist/components/Main/Main.module.scss.cjs +7 -7
  194. package/dist/components/Main/Main.module.scss.js +7 -7
  195. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  196. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  197. package/dist/components/Markdown/index.d.ts +2 -2
  198. package/dist/components/Markdown/index.d.ts.map +1 -1
  199. package/dist/components/Menu/Menu.module.scss.cjs +16 -16
  200. package/dist/components/Menu/Menu.module.scss.js +16 -16
  201. package/dist/components/Menu/index.cjs +19 -61
  202. package/dist/components/Menu/index.d.ts +10 -10
  203. package/dist/components/Menu/index.d.ts.map +1 -1
  204. package/dist/components/Menu/index.js +19 -61
  205. package/dist/components/Message/Message.module.scss.cjs +18 -21
  206. package/dist/components/Message/Message.module.scss.js +18 -21
  207. package/dist/components/Message/index.cjs +15 -2
  208. package/dist/components/Message/index.d.ts.map +1 -1
  209. package/dist/components/Message/index.js +15 -2
  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 +18 -9
  217. package/dist/components/Pagination/Pagination.module.scss.js +19 -10
  218. package/dist/components/Pagination/index.cjs +5 -2
  219. package/dist/components/Pagination/index.d.ts +3 -1
  220. package/dist/components/Pagination/index.d.ts.map +1 -1
  221. package/dist/components/Pagination/index.js +5 -2
  222. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  223. package/dist/components/Popover/Popover.module.scss.js +10 -10
  224. package/dist/components/Progress/Progress.module.scss.cjs +29 -32
  225. package/dist/components/Progress/Progress.module.scss.js +29 -32
  226. package/dist/components/Progress/geometry.cjs +30 -0
  227. package/dist/components/Progress/geometry.d.ts +8 -0
  228. package/dist/components/Progress/geometry.d.ts.map +1 -0
  229. package/dist/components/Progress/geometry.js +30 -0
  230. package/dist/components/Progress/index.cjs +40 -29
  231. package/dist/components/Progress/index.d.ts +4 -3
  232. package/dist/components/Progress/index.d.ts.map +1 -1
  233. package/dist/components/Progress/index.js +40 -29
  234. package/dist/components/Prompt/Prompt.module.scss.cjs +29 -29
  235. package/dist/components/Prompt/Prompt.module.scss.js +29 -29
  236. package/dist/components/Prompt/index.cjs +5 -4
  237. package/dist/components/Prompt/index.d.ts.map +1 -1
  238. package/dist/components/Prompt/index.js +5 -4
  239. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +15 -21
  240. package/dist/components/RadioGroup/RadioGroup.module.scss.js +15 -21
  241. package/dist/components/RadioGroup/index.cjs +7 -6
  242. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  243. package/dist/components/RadioGroup/index.js +7 -6
  244. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +7 -22
  245. package/dist/components/ScrollArea/ScrollArea.module.scss.js +7 -22
  246. package/dist/components/ScrollArea/index.cjs +66 -42
  247. package/dist/components/ScrollArea/index.d.ts +6 -5
  248. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  249. package/dist/components/ScrollArea/index.js +66 -42
  250. package/dist/components/ScrollArea/scroll-state.cjs +58 -0
  251. package/dist/components/ScrollArea/scroll-state.d.ts +16 -0
  252. package/dist/components/ScrollArea/scroll-state.d.ts.map +1 -0
  253. package/dist/components/ScrollArea/scroll-state.js +58 -0
  254. package/dist/components/Select/Select.module.scss.cjs +21 -21
  255. package/dist/components/Select/Select.module.scss.js +21 -21
  256. package/dist/components/Select/index.cjs +3 -2
  257. package/dist/components/Select/index.d.ts.map +1 -1
  258. package/dist/components/Select/index.js +3 -2
  259. package/dist/components/Separator/Separator.module.scss.cjs +13 -10
  260. package/dist/components/Separator/Separator.module.scss.js +13 -10
  261. package/dist/components/Separator/index.cjs +37 -38
  262. package/dist/components/Separator/index.d.ts +4 -4
  263. package/dist/components/Separator/index.d.ts.map +1 -1
  264. package/dist/components/Separator/index.js +37 -38
  265. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  266. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  267. package/dist/components/Sidebar/index.cjs +17 -38
  268. package/dist/components/Sidebar/index.d.ts +23 -18
  269. package/dist/components/Sidebar/index.d.ts.map +1 -1
  270. package/dist/components/Sidebar/index.js +17 -38
  271. package/dist/components/Skeleton/Skeleton.module.scss.cjs +56 -40
  272. package/dist/components/Skeleton/Skeleton.module.scss.js +56 -40
  273. package/dist/components/Skeleton/index.cjs +41 -55
  274. package/dist/components/Skeleton/index.d.ts +7 -7
  275. package/dist/components/Skeleton/index.d.ts.map +1 -1
  276. package/dist/components/Skeleton/index.js +41 -55
  277. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  278. package/dist/components/Slider/Slider.module.scss.js +12 -12
  279. package/dist/components/Stack/Stack.module.scss.cjs +25 -45
  280. package/dist/components/Stack/Stack.module.scss.js +25 -45
  281. package/dist/components/Stack/index.cjs +106 -101
  282. package/dist/components/Stack/index.d.ts +7 -7
  283. package/dist/components/Stack/index.d.ts.map +1 -1
  284. package/dist/components/Stack/index.js +106 -101
  285. package/dist/components/Switch/Switch.module.scss.cjs +32 -0
  286. package/dist/components/Switch/Switch.module.scss.js +32 -0
  287. package/dist/components/{Toggle → Switch}/index.cjs +9 -14
  288. package/dist/components/Switch/index.d.ts +37 -1
  289. package/dist/components/Switch/index.d.ts.map +1 -1
  290. package/dist/components/{Toggle → Switch}/index.js +5 -10
  291. package/dist/components/Table/Table.module.scss.cjs +21 -30
  292. package/dist/components/Table/Table.module.scss.js +21 -30
  293. package/dist/components/Table/index.d.ts +6 -5
  294. package/dist/components/Table/index.d.ts.map +1 -1
  295. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  296. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  297. package/dist/components/TableOfContents/index.cjs +13 -9
  298. package/dist/components/TableOfContents/index.d.ts +5 -3
  299. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  300. package/dist/components/TableOfContents/index.js +13 -9
  301. package/dist/components/Tabs/Tabs.module.scss.cjs +12 -12
  302. package/dist/components/Tabs/Tabs.module.scss.js +12 -12
  303. package/dist/components/Tabs/index.cjs +28 -8
  304. package/dist/components/Tabs/index.d.ts.map +1 -1
  305. package/dist/components/Tabs/index.js +28 -8
  306. package/dist/components/Text/Text.module.scss.cjs +105 -57
  307. package/dist/components/Text/Text.module.scss.js +105 -57
  308. package/dist/components/Text/index.cjs +49 -33
  309. package/dist/components/Text/index.d.ts +30 -19
  310. package/dist/components/Text/index.d.ts.map +1 -1
  311. package/dist/components/Text/index.js +49 -33
  312. package/dist/components/Textarea/Textarea.module.scss.cjs +26 -23
  313. package/dist/components/Textarea/Textarea.module.scss.js +26 -23
  314. package/dist/components/Textarea/index.cjs +5 -10
  315. package/dist/components/Textarea/index.d.ts.map +1 -1
  316. package/dist/components/Textarea/index.js +5 -10
  317. package/dist/components/Theme/context.cjs +39 -0
  318. package/dist/components/Theme/context.d.ts +21 -0
  319. package/dist/components/Theme/context.d.ts.map +1 -0
  320. package/dist/components/Theme/context.js +22 -0
  321. package/dist/components/Theme/index.cjs +16 -210
  322. package/dist/components/Theme/index.d.ts +4 -37
  323. package/dist/components/Theme/index.d.ts.map +1 -1
  324. package/dist/components/Theme/index.js +11 -205
  325. package/dist/components/{Theme → ThemeToggle}/ThemeToggle.module.scss.cjs +9 -6
  326. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +26 -0
  327. package/dist/components/ThemeToggle/index.cjs +140 -0
  328. package/dist/components/ThemeToggle/index.d.ts +26 -0
  329. package/dist/components/ThemeToggle/index.d.ts.map +1 -0
  330. package/dist/components/ThemeToggle/index.js +140 -0
  331. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
  332. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
  333. package/dist/components/ThinkingIndicator/index.cjs +34 -41
  334. package/dist/components/ThinkingIndicator/index.d.ts +4 -4
  335. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  336. package/dist/components/ThinkingIndicator/index.js +34 -41
  337. package/dist/components/Toast/Toast.module.scss.cjs +20 -20
  338. package/dist/components/Toast/Toast.module.scss.js +20 -20
  339. package/dist/components/Toggle/index.d.ts +2 -42
  340. package/dist/components/Toggle/index.d.ts.map +1 -1
  341. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +20 -20
  342. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +20 -20
  343. package/dist/components/ToggleGroup/index.cjs +3 -2
  344. package/dist/components/ToggleGroup/index.d.ts +2 -1
  345. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  346. package/dist/components/ToggleGroup/index.js +3 -2
  347. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  348. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  349. package/dist/components/Tooltip/index.cjs +24 -40
  350. package/dist/components/Tooltip/index.d.ts +4 -4
  351. package/dist/components/Tooltip/index.d.ts.map +1 -1
  352. package/dist/components/Tooltip/index.js +24 -40
  353. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  354. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  355. package/dist/components/VisuallyHidden/index.d.ts +2 -2
  356. package/dist/data-table.cjs +14 -10
  357. package/dist/data-table.js +14 -10
  358. package/dist/datepicker.cjs +5 -3
  359. package/dist/datepicker.js +5 -3
  360. package/dist/editor.cjs +68 -28
  361. package/dist/editor.js +68 -28
  362. package/dist/index.cjs +101 -99
  363. package/dist/index.d.ts +3 -3
  364. package/dist/index.d.ts.map +1 -1
  365. package/dist/index.js +6 -4
  366. package/dist/markdown.cjs +21 -29
  367. package/dist/markdown.js +22 -30
  368. package/dist/measurements/generated.cjs +304 -0
  369. package/dist/measurements/generated.d.ts +268 -0
  370. package/dist/measurements/generated.d.ts.map +1 -0
  371. package/dist/measurements/generated.js +304 -0
  372. package/dist/measurements/index.d.ts +2 -0
  373. package/dist/measurements/index.d.ts.map +1 -0
  374. package/dist/measurements.cjs +6 -0
  375. package/dist/measurements.js +6 -0
  376. package/dist/recipes/popup.cjs +14 -0
  377. package/dist/recipes/popup.d.ts +4 -0
  378. package/dist/recipes/popup.d.ts.map +1 -0
  379. package/dist/recipes/popup.js +14 -0
  380. package/dist/recipes/table-chrome.cjs +18 -0
  381. package/dist/recipes/table-chrome.d.ts +10 -0
  382. package/dist/recipes/table-chrome.d.ts.map +1 -0
  383. package/dist/recipes/table-chrome.js +18 -0
  384. package/dist/table.cjs +5 -2
  385. package/dist/table.js +5 -2
  386. package/dist/utils/a11y.cjs +5 -2
  387. package/dist/utils/a11y.d.ts +5 -5
  388. package/dist/utils/a11y.d.ts.map +1 -1
  389. package/dist/utils/a11y.js +5 -2
  390. package/dist/utils/canonical-stamp.cjs +2 -8
  391. package/dist/utils/canonical-stamp.d.ts.map +1 -1
  392. package/dist/utils/canonical-stamp.js +1 -7
  393. package/dist/utils/css-warning.cjs +1 -1
  394. package/dist/utils/css-warning.js +1 -1
  395. package/dist/utils/env.cjs +17 -0
  396. package/dist/utils/env.d.ts +3 -0
  397. package/dist/utils/env.d.ts.map +1 -0
  398. package/dist/utils/env.js +17 -0
  399. package/dist/utils/keyboard-shortcuts.cjs +3 -10
  400. package/dist/utils/keyboard-shortcuts.d.ts +4 -4
  401. package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
  402. package/dist/utils/keyboard-shortcuts.js +3 -10
  403. package/dist/utils/layout-spacing.cjs +27 -0
  404. package/dist/utils/layout-spacing.d.ts +5 -0
  405. package/dist/utils/layout-spacing.d.ts.map +1 -0
  406. package/dist/utils/layout-spacing.js +27 -0
  407. package/dist/utils/seed-derivation.cjs +14 -48
  408. package/dist/utils/seed-derivation.d.ts +4 -3
  409. package/dist/utils/seed-derivation.d.ts.map +1 -1
  410. package/dist/utils/seed-derivation.js +14 -48
  411. package/dist/utils/theme-presets.cjs +1 -0
  412. package/dist/utils/theme-presets.d.ts +3 -2
  413. package/dist/utils/theme-presets.d.ts.map +1 -1
  414. package/dist/utils/theme-presets.js +1 -0
  415. package/fragments.json +1 -1
  416. package/package.json +25 -4
  417. package/src/assets/fragments-logo.tsx +2 -2
  418. package/src/assets/fragments-wordmark.tsx +4 -2
  419. package/src/components/Accordion/Accordion.contract.json +24 -48
  420. package/src/components/Accordion/Accordion.module.scss +31 -52
  421. package/src/components/Alert/Alert.contract.json +37 -53
  422. package/src/components/Alert/Alert.module.scss +52 -44
  423. package/src/components/Alert/index.tsx +55 -29
  424. package/src/components/AppShell/AppShell.contract.json +34 -51
  425. package/src/components/AppShell/AppShell.module.scss +59 -43
  426. package/src/components/AppShell/index.tsx +8 -4
  427. package/src/components/Avatar/Avatar.contract.json +31 -48
  428. package/src/components/Avatar/Avatar.module.scss +25 -60
  429. package/src/components/Avatar/index.tsx +152 -146
  430. package/src/components/Badge/Badge.contract.json +37 -42
  431. package/src/components/Badge/Badge.module.scss +59 -47
  432. package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
  433. package/src/components/BentoGrid/BentoGrid.module.scss +11 -32
  434. package/src/components/Box/Box.contract.json +40 -148
  435. package/src/components/Box/Box.module.scss +253 -81
  436. package/src/components/Box/index.tsx +92 -99
  437. package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
  438. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +19 -15
  439. package/src/components/Button/Button.module.scss +60 -64
  440. package/src/components/ButtonGroup/ButtonGroup.contract.json +32 -47
  441. package/src/components/ButtonGroup/ButtonGroup.module.scss +5 -5
  442. package/src/components/Card/Card.consumer-fixture.module.scss +8 -0
  443. package/src/components/Card/Card.module.scss +284 -167
  444. package/src/components/Card/index.tsx +21 -2
  445. package/src/components/Chart/Chart.contract.json +21 -29
  446. package/src/components/Chart/Chart.module.scss +28 -29
  447. package/src/components/Chart/index.tsx +72 -55
  448. package/src/components/Checkbox/Checkbox.contract.json +24 -24
  449. package/src/components/Checkbox/Checkbox.module.scss +75 -87
  450. package/src/components/Checkbox/index.tsx +8 -11
  451. package/src/components/Chip/Chip.contract.json +36 -42
  452. package/src/components/Chip/Chip.module.scss +25 -36
  453. package/src/components/Chip/index.tsx +5 -5
  454. package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
  455. package/src/components/CodeBlock/CodeBlock.module.scss +129 -217
  456. package/src/components/CodeBlock/css-variables-theme.ts +102 -0
  457. package/src/components/CodeBlock/index.tsx +91 -35
  458. package/src/components/Collapsible/Collapsible.contract.json +21 -36
  459. package/src/components/Collapsible/Collapsible.module.scss +29 -63
  460. package/src/components/Collapsible/index.tsx +22 -26
  461. package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
  462. package/src/components/ColorPicker/ColorPicker.module.scss +54 -33
  463. package/src/components/ColorPicker/index.tsx +7 -2
  464. package/src/components/Combobox/Combobox.contract.json +36 -37
  465. package/src/components/Combobox/Combobox.module.scss +61 -74
  466. package/src/components/Combobox/index.tsx +34 -6
  467. package/src/components/Command/Command.contract.json +21 -43
  468. package/src/components/Command/Command.module.scss +47 -77
  469. package/src/components/Command/index.tsx +58 -47
  470. package/src/components/ConversationList/ConversationList.contract.json +27 -32
  471. package/src/components/ConversationList/ConversationList.module.scss +20 -78
  472. package/src/components/ConversationList/index.tsx +55 -59
  473. package/src/components/DataTable/DataTable.icons.tsx +4 -21
  474. package/src/components/DataTable/DataTable.module.scss +81 -217
  475. package/src/components/DataTable/index.tsx +28 -32
  476. package/src/components/DatePicker/DatePicker.contract.json +27 -28
  477. package/src/components/DatePicker/DatePicker.module.scss +66 -38
  478. package/src/components/DatePicker/index.tsx +7 -3
  479. package/src/components/Dialog/Dialog.module.scss +45 -69
  480. package/src/components/Dialog/index.tsx +47 -37
  481. package/src/components/Drawer/Drawer.contract.json +22 -36
  482. package/src/components/Drawer/Drawer.module.scss +93 -99
  483. package/src/components/Drawer/index.tsx +1 -1
  484. package/src/components/Editor/Editor.contract.json +31 -48
  485. package/src/components/Editor/Editor.module.scss +137 -220
  486. package/src/components/Editor/index.tsx +240 -179
  487. package/src/components/EmptyState/EmptyState.contract.json +31 -43
  488. package/src/components/EmptyState/EmptyState.module.scss +45 -84
  489. package/src/components/EmptyState/index.tsx +48 -23
  490. package/src/components/Field/Field.contract.json +28 -45
  491. package/src/components/Field/Field.module.scss +9 -11
  492. package/src/components/Field/index.tsx +31 -1
  493. package/src/components/Fieldset/Fieldset.contract.json +21 -38
  494. package/src/components/Fieldset/Fieldset.module.scss +23 -8
  495. package/src/components/Form/Form.contract.json +27 -40
  496. package/src/components/Form/Form.module.scss +9 -4
  497. package/src/components/Form/index.tsx +22 -7
  498. package/src/components/Grid/Grid.contract.json +28 -64
  499. package/src/components/Grid/Grid.module.scss +159 -63
  500. package/src/components/Grid/index.tsx +114 -133
  501. package/src/components/Header/Header.contract.json +31 -67
  502. package/src/components/Header/Header.module.scss +56 -48
  503. package/src/components/Header/index.tsx +134 -121
  504. package/src/components/Icon/Icon.contract.json +22 -62
  505. package/src/components/Icon/Icon.module.scss +16 -0
  506. package/src/components/Icon/index.tsx +74 -86
  507. package/src/components/IconButton/IconButton.contract.json +34 -18
  508. package/src/components/IconButton/IconButton.module.scss +15 -26
  509. package/src/components/IconButton/index.tsx +2 -1
  510. package/src/components/Image/Image.contract.json +23 -56
  511. package/src/components/Input/Input.contract.json +26 -32
  512. package/src/components/Input/Input.module.scss +69 -56
  513. package/src/components/Input/index.tsx +1 -2
  514. package/src/components/Link/Link.contract.json +32 -52
  515. package/src/components/Link/Link.module.scss +29 -13
  516. package/src/components/Link/index.tsx +1 -1
  517. package/src/components/List/List.contract.json +23 -52
  518. package/src/components/List/List.module.scss +16 -21
  519. package/src/components/List/index.tsx +4 -10
  520. package/src/components/Listbox/Listbox.contract.json +21 -37
  521. package/src/components/Listbox/Listbox.module.scss +26 -54
  522. package/src/components/Loading/Loading.contract.json +37 -61
  523. package/src/components/Loading/Loading.module.scss +33 -40
  524. package/src/components/Loading/index.tsx +68 -97
  525. package/src/components/Main/Main.contract.json +17 -9
  526. package/src/components/Main/Main.module.scss +3 -5
  527. package/src/components/Markdown/Markdown.contract.json +22 -43
  528. package/src/components/Markdown/Markdown.module.scss +72 -182
  529. package/src/components/Markdown/index.tsx +50 -51
  530. package/src/components/Menu/Menu.contract.json +25 -41
  531. package/src/components/Menu/Menu.module.scss +63 -133
  532. package/src/components/Menu/index.tsx +57 -89
  533. package/src/components/Message/Message.contract.json +29 -52
  534. package/src/components/Message/Message.module.scss +60 -143
  535. package/src/components/Message/index.tsx +16 -6
  536. package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
  537. package/src/components/NavigationMenu/NavigationMenu.module.scss +123 -71
  538. package/src/components/NavigationMenu/index.tsx +105 -81
  539. package/src/components/Pagination/Pagination.contract.json +22 -40
  540. package/src/components/Pagination/Pagination.module.scss +34 -27
  541. package/src/components/Pagination/index.tsx +7 -2
  542. package/src/components/Popover/Popover.contract.json +24 -46
  543. package/src/components/Popover/Popover.module.scss +43 -78
  544. package/src/components/Progress/Progress.contract.json +32 -28
  545. package/src/components/Progress/Progress.module.scss +64 -43
  546. package/src/components/Progress/geometry.ts +41 -0
  547. package/src/components/Progress/index.tsx +44 -30
  548. package/src/components/Prompt/Prompt.contract.json +31 -47
  549. package/src/components/Prompt/Prompt.module.scss +58 -87
  550. package/src/components/Prompt/index.tsx +6 -5
  551. package/src/components/RadioGroup/RadioGroup.contract.json +23 -24
  552. package/src/components/RadioGroup/RadioGroup.module.scss +63 -83
  553. package/src/components/RadioGroup/index.tsx +7 -9
  554. package/src/components/ScrollArea/ScrollArea.contract.json +23 -40
  555. package/src/components/ScrollArea/ScrollArea.module.scss +123 -97
  556. package/src/components/ScrollArea/index.tsx +85 -67
  557. package/src/components/ScrollArea/scroll-state.ts +87 -0
  558. package/src/components/Select/Select.module.scss +55 -43
  559. package/src/components/Select/index.tsx +6 -2
  560. package/src/components/Separator/Separator.contract.json +24 -48
  561. package/src/components/Separator/Separator.module.scss +29 -19
  562. package/src/components/Separator/index.tsx +55 -51
  563. package/src/components/Sidebar/Sidebar.contract.json +42 -62
  564. package/src/components/Sidebar/Sidebar.module.scss +117 -106
  565. package/src/components/Sidebar/index.tsx +169 -162
  566. package/src/components/Skeleton/Skeleton.contract.json +28 -54
  567. package/src/components/Skeleton/Skeleton.module.scss +51 -34
  568. package/src/components/Skeleton/index.tsx +65 -72
  569. package/src/components/Slider/Slider.contract.json +27 -39
  570. package/src/components/Slider/Slider.module.scss +33 -27
  571. package/src/components/Stack/Stack.contract.json +29 -56
  572. package/src/components/Stack/Stack.module.scss +110 -38
  573. package/src/components/Stack/index.tsx +157 -127
  574. package/src/components/{Toggle/Toggle.contract.json → Switch/Switch.contract.json} +34 -47
  575. package/src/components/Switch/Switch.module.scss +255 -0
  576. package/src/components/{Toggle → Switch}/index.tsx +5 -21
  577. package/src/components/Table/Table.contract.json +28 -46
  578. package/src/components/Table/Table.module.scss +50 -129
  579. package/src/components/Table/index.tsx +13 -6
  580. package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
  581. package/src/components/TableOfContents/TableOfContents.module.scss +35 -182
  582. package/src/components/TableOfContents/index.tsx +26 -9
  583. package/src/components/Tabs/Tabs.contract.json +24 -45
  584. package/src/components/Tabs/Tabs.module.scss +28 -23
  585. package/src/components/Tabs/index.tsx +17 -5
  586. package/src/components/Text/Text.contract.json +30 -72
  587. package/src/components/Text/Text.module.scss +43 -7
  588. package/src/components/Text/index.tsx +136 -63
  589. package/src/components/Textarea/Textarea.contract.json +25 -43
  590. package/src/components/Textarea/Textarea.module.scss +58 -40
  591. package/src/components/Textarea/index.tsx +5 -12
  592. package/src/components/Theme/Theme.contract.json +32 -51
  593. package/src/components/Theme/context.ts +42 -0
  594. package/src/components/Theme/index.tsx +16 -310
  595. package/src/components/ThemeToggle/ThemeToggle.module.scss +89 -0
  596. package/src/components/ThemeToggle/index.tsx +180 -0
  597. package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +23 -40
  598. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +24 -19
  599. package/src/components/ThinkingIndicator/index.tsx +44 -54
  600. package/src/components/Toast/Toast.contract.json +35 -61
  601. package/src/components/Toast/Toast.module.scss +62 -139
  602. package/src/components/Toggle/index.ts +7 -0
  603. package/src/components/ToggleGroup/ToggleGroup.contract.json +40 -68
  604. package/src/components/ToggleGroup/ToggleGroup.module.scss +166 -89
  605. package/src/components/ToggleGroup/index.tsx +5 -3
  606. package/src/components/Tooltip/Tooltip.contract.json +31 -52
  607. package/src/components/Tooltip/Tooltip.module.scss +23 -39
  608. package/src/components/Tooltip/index.tsx +19 -24
  609. package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
  610. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +3 -0
  611. package/src/components/VisuallyHidden/index.tsx +5 -5
  612. package/src/index.ts +4 -3
  613. package/src/measurements/MeasurementTargets.module.scss +229 -0
  614. package/src/measurements/generated.ts +324 -0
  615. package/src/measurements/index.ts +8 -0
  616. package/src/measurements/measurements.json +368 -0
  617. package/src/recipes/_action.scss +138 -0
  618. package/src/recipes/_boolean-range.scss +116 -0
  619. package/src/recipes/_feedback.scss +171 -0
  620. package/src/recipes/_field.scss +102 -0
  621. package/src/recipes/_layout.scss +74 -0
  622. package/src/recipes/_navigation.scss +110 -0
  623. package/src/recipes/_overlay.scss +191 -0
  624. package/src/recipes/_popup.scss +102 -0
  625. package/src/recipes/_prose.scss +182 -0
  626. package/src/recipes/_representation.scss +193 -0
  627. package/src/recipes/_segmented.scss +26 -0
  628. package/src/recipes/_surface.scss +13 -0
  629. package/src/recipes/_table-chrome.scss +119 -0
  630. package/src/recipes/_target.scss +31 -0
  631. package/src/recipes/_typography.scss +38 -0
  632. package/src/recipes/popup.ts +12 -0
  633. package/src/recipes/table-chrome.ts +30 -0
  634. package/src/scss.d.ts +1 -1
  635. package/src/styles/globals.scss +21 -20
  636. package/src/tokens/_component-properties.scss +2 -2
  637. package/src/tokens/_computed.scss +14 -25
  638. package/src/tokens/_density.scss +41 -132
  639. package/src/tokens/_derive.scss +112 -210
  640. package/src/tokens/_measurements.catalog.generated.css +96 -0
  641. package/src/tokens/_measurements.generated.scss +617 -0
  642. package/src/tokens/_mixins.scss +7 -284
  643. package/src/tokens/_palettes.scss +39 -167
  644. package/src/tokens/_property-registrations.scss +96 -92
  645. package/src/tokens/_radius.scss +16 -70
  646. package/src/tokens/_seeds.scss +24 -23
  647. package/src/tokens/_variables.scss +338 -178
  648. package/src/utils/a11y.tsx +69 -69
  649. package/src/utils/aria.ts +3 -3
  650. package/src/utils/canonical-stamp.ts +2 -12
  651. package/src/utils/css-warning.ts +7 -7
  652. package/src/utils/env.ts +25 -0
  653. package/src/utils/keyboard-shortcuts.ts +131 -126
  654. package/src/utils/layout-spacing.ts +31 -0
  655. package/src/utils/seed-derivation.ts +144 -178
  656. package/src/utils/theme-presets.ts +58 -30
  657. package/dist/components/Theme/ThemeToggle.module.scss.js +0 -23
  658. package/dist/components/Toggle/Toggle.module.scss.cjs +0 -44
  659. package/dist/components/Toggle/Toggle.module.scss.js +0 -44
  660. package/src/components/Button/Button.contract.json +0 -218
  661. package/src/components/Card/Card.contract.json +0 -175
  662. package/src/components/DataTable/DataTable.contract.json +0 -302
  663. package/src/components/Dialog/Dialog.contract.json +0 -159
  664. package/src/components/Select/Select.contract.json +0 -259
  665. package/src/components/Switch/index.ts +0 -3
  666. package/src/components/Theme/ThemeToggle.module.scss +0 -91
  667. package/src/components/Toggle/Toggle.module.scss +0 -244
@@ -1,48 +1,25 @@
1
1
  @use "../../tokens/variables" as *;
2
2
  @use "../../tokens/mixins" as *;
3
-
4
- // ============================================
5
- // Dormant single-rail geometry
6
- // ============================================
7
- //
8
- // The public default is the quiet, flush index disabled below. These values
9
- // retain the existing optional rail geometry without making its inset part of
10
- // the default list contract.
11
-
12
- $rail-x-0: 7px;
13
- $rail-indent: 14px;
14
- $rail-x-1: 21px; // = $rail-x-0 + $rail-indent
15
- $rail-pad: 18px; // optional rail inset; never default <ul> padding
16
- $rail-curve: 14px;
17
- $rail-thickness: 1px;
18
- $rail-active-thickness: 1px;
19
-
20
- $rail-from-item-0: $rail-x-0 - $rail-pad; // -11px
21
- $rail-from-item-1: $rail-x-1 - $rail-pad; // 3px
3
+ @use "../../recipes/navigation" as navigation;
4
+ @use "../../recipes/typography" as typography;
22
5
 
23
6
  .root {
24
- // Solid rail color that adapts to light/dark and tracks the page background.
25
- // 18% mix gives clearly-visible contrast against bg-primary at 1px width
26
- // (subtler --fui-bg-tertiary blends into the bg at this thickness).
27
- --toc-rail: color-mix(
28
- in srgb,
29
- var(--fui-bg-primary, #{$fui-bg-primary}),
30
- var(--fui-text-primary, #{$fui-text-primary}) 18%
31
- );
32
- font-family: var(--fui-font-sans, $fui-font-sans);
33
- font-size: var(--fui-font-size-sm, $fui-font-size-sm);
34
- line-height: var(--fui-line-height-normal, $fui-line-height-normal);
7
+ @include navigation.properties;
8
+ @include typography.role("body-compact");
35
9
  color: var(--fui-text-secondary, $fui-text-secondary);
36
10
  }
37
11
 
38
12
  .title {
39
- margin: 0 0 var(--fui-space-2, $fui-space-2);
40
- padding: 0 var(--fui-space-2, $fui-space-2);
13
+ @include navigation.properties;
14
+
15
+ margin: 0 0 var(--fui-toc-title-gap, var(--fui-space-2, #{$fui-space-2}));
16
+ // Same inline inset as `.link` (navigation.row) so the label and the index
17
+ // share one left edge — extra title padding made "On This Page" sit inward
18
+ // of the items below it.
19
+ padding-inline: var(--fui-toc-inline-inset, var(--fui-navigation-inline-inset));
41
20
  }
42
21
 
43
- // Plain index (the design-system default, see below) draws no rail, so the
44
- // list is flush — its links/group headers share the same inline inset as
45
- // .title. A future rail variant must reinstate its own $rail-pad inset.
22
+ // The quiet index is flush; links and group headers share the title inset.
46
23
  .list {
47
24
  list-style: none;
48
25
  margin: 0;
@@ -50,156 +27,36 @@ $rail-from-item-1: $rail-x-1 - $rail-pad; // 3px
50
27
  position: relative;
51
28
  display: flex;
52
29
  flex-direction: column;
53
- gap: 1px;
30
+ gap: var(--fui-stroke-hairline, 1px);
54
31
  }
55
32
 
56
33
  // ============================================
57
- // Per-row rail
34
+ // Item link
58
35
  // ============================================
59
36
 
60
37
  .item,
61
38
  .groupHeaderRow {
62
39
  position: relative;
63
40
  list-style: none;
64
-
65
- // Fade rail + elbows when [data-active] moves between items so the accent
66
- // colour hands off smoothly rather than snapping as the user scrolls.
67
- &::before,
68
- &::after {
69
- transition:
70
- background-color var(--fui-transition-normal, $fui-transition-normal),
71
- border-color var(--fui-transition-normal, $fui-transition-normal);
72
- }
73
- }
74
-
75
- [data-depth="0"]::before {
76
- content: "";
77
- position: absolute;
78
- left: $rail-from-item-0;
79
- top: 0;
80
- // Extend 1px past the bottom so the rail spans the 1px list gap between
81
- // adjacent items, preserving a continuous rail under `gap: 1px` on .list.
82
- bottom: -1px;
83
- width: $rail-thickness;
84
- background-color: var(--toc-rail);
85
- pointer-events: none;
86
- }
87
-
88
- [data-depth="1"]::before {
89
- content: "";
90
- position: absolute;
91
- left: $rail-from-item-1;
92
- top: 0;
93
- bottom: -1px;
94
- width: $rail-thickness;
95
- background-color: var(--toc-rail);
96
- pointer-events: none;
97
- }
98
-
99
- // First depth-1 after a depth-0: shorten rail at top so opening curve has
100
- // a clean run-in.
101
- [data-depth="0"] + [data-depth="1"]::before {
102
- top: $rail-curve;
103
- }
104
-
105
- // Last depth-1 before a depth-0: shorten rail at bottom so closing curve
106
- // has a clean run-out.
107
- [data-depth="1"]:has(+ [data-depth="0"])::before {
108
- bottom: $rail-curve;
109
- }
110
-
111
- // ============================================
112
- // Opening elbow (depth-0 → depth-1)
113
- // ============================================
114
-
115
- [data-depth="0"] + [data-depth="1"]::after {
116
- content: "";
117
- position: absolute;
118
- left: $rail-from-item-0;
119
- top: 0;
120
- width: $rail-curve;
121
- height: $rail-curve;
122
- border-left: $rail-thickness solid var(--toc-rail);
123
- border-bottom: $rail-thickness solid var(--toc-rail);
124
- pointer-events: none;
125
- }
126
-
127
- // ============================================
128
- // Closing elbow (depth-1 → depth-0)
129
- // ============================================
130
-
131
- [data-depth="1"] + [data-depth="0"]::after {
132
- content: "";
133
- position: absolute;
134
- left: $rail-from-item-0;
135
- // Start 1px higher to bridge the `gap: 1px` between depth-1 and depth-0 so
136
- // the elbow's vertical stem meets the depth-1 rail end without a break.
137
- top: calc(-#{$rail-curve} - 1px);
138
- width: $rail-curve;
139
- height: calc(#{$rail-curve} + 1px);
140
- border-right: $rail-thickness solid var(--toc-rail);
141
- border-bottom: $rail-thickness solid var(--toc-rail);
142
- pointer-events: none;
143
- }
144
-
145
- // ============================================
146
- // Active state — paint rail + adjacent curves in accent
147
- // ============================================
148
-
149
- [data-active]::before {
150
- background-color: var(--fui-color-accent, $fui-color-accent);
151
- width: $rail-active-thickness;
152
- }
153
-
154
- [data-depth="0"]:has(+ [data-depth="1"][data-active])::before {
155
- background-color: var(--fui-color-accent, $fui-color-accent);
156
- width: $rail-active-thickness;
157
- }
158
-
159
- [data-depth="0"] + [data-depth="1"][data-active]::after {
160
- border-left-color: var(--fui-color-accent, $fui-color-accent);
161
- border-bottom-color: var(--fui-color-accent, $fui-color-accent);
162
- border-left-width: $rail-active-thickness;
163
- border-bottom-width: $rail-active-thickness;
164
- }
165
-
166
- [data-depth="1"][data-active] + [data-depth="0"]::after {
167
- border-right-color: var(--fui-color-accent, $fui-color-accent);
168
- border-bottom-color: var(--fui-color-accent, $fui-color-accent);
169
- border-right-width: $rail-active-thickness;
170
- border-bottom-width: $rail-active-thickness;
171
- }
172
-
173
- // ============================================
174
- // Item link
175
- // ============================================
176
-
177
- // ── Plain index (design-system default) ──────────────────────────────────────
178
- // The "on this page" index reads as a quiet list — the active row is signalled
179
- // by ink + medium weight (see .active), not a coloured rail. Drop the per-row
180
- // rail and elbow pseudo-elements the snake geometry above would otherwise draw.
181
- .root [data-depth]::before,
182
- .root [data-depth]::after {
183
- content: none;
184
41
  }
185
42
 
186
43
  .link {
44
+ @include navigation.row;
45
+
187
46
  display: flex;
188
47
  align-items: center;
189
- gap: var(--fui-space-2, $fui-space-2);
190
- padding: 0 var(--fui-space-2, $fui-space-2);
191
- min-height: var(--fui-sidebar-item-height, $fui-sidebar-item-height);
48
+ min-block-size: var(--fui-toc-row-track, var(--fui-navigation-row-track));
49
+ padding-inline: var(--fui-toc-inline-inset, var(--fui-navigation-inline-inset));
50
+ gap: var(--fui-toc-content-gap, var(--fui-navigation-content-gap));
192
51
  border-radius: var(--fui-radius-md, $fui-radius-md);
193
52
  color: var(--fui-text-secondary, $fui-text-secondary);
194
- line-height: var(--fui-line-height-normal, $fui-line-height-normal);
195
- letter-spacing: var(--fui-letter-spacing-tight, $fui-letter-spacing-tight);
196
53
  text-decoration: none;
197
54
  transition:
198
55
  background-color var(--fui-transition-fast, $fui-transition-fast),
199
56
  color var(--fui-transition-fast, $fui-transition-fast);
200
57
 
201
58
  &:hover {
202
- background-color: var(--fui-bg-hover, $fui-bg-hover);
59
+ background-color: var(--fui-toc-hover-bg, var(--fui-bg-hover, #{$fui-bg-hover}));
203
60
  color: var(--fui-text-primary, $fui-text-primary);
204
61
  }
205
62
 
@@ -212,7 +69,7 @@ $rail-from-item-1: $rail-x-1 - $rail-pad; // 3px
212
69
  // flush with the title and group headers.
213
70
  [data-depth="1"] .link {
214
71
  margin-left: var(--fui-space-2, $fui-space-2);
215
- padding-left: $rail-indent;
72
+ padding-inline-start: var(--fui-raw-space-16, 16px);
216
73
  }
217
74
 
218
75
  .linkLabel {
@@ -230,9 +87,14 @@ $rail-from-item-1: $rail-x-1 - $rail-pad; // 3px
230
87
  flex-shrink: 0;
231
88
  }
232
89
 
90
+ .leading {
91
+ @include navigation.leading;
92
+ }
93
+
233
94
  .trailing {
95
+ @include typography.role("caption");
96
+
234
97
  color: var(--fui-text-tertiary, $fui-text-tertiary);
235
- font-size: var(--fui-font-size-2xs, $fui-font-size-2xs);
236
98
  font-variant-numeric: tabular-nums;
237
99
  }
238
100
 
@@ -246,17 +108,16 @@ $rail-from-item-1: $rail-x-1 - $rail-pad; // 3px
246
108
  // ============================================
247
109
 
248
110
  .groupHeader {
111
+ @include navigation.section-row;
112
+
249
113
  display: flex;
250
114
  align-items: center;
251
- gap: var(--fui-space-1, $fui-space-1);
115
+ min-block-size: var(--fui-toc-section-track, var(--fui-navigation-section-track));
116
+ padding-inline: var(--fui-toc-inline-inset, var(--fui-navigation-inline-inset));
117
+ gap: var(--fui-toc-content-gap, var(--fui-navigation-content-gap));
252
118
  width: 100%;
253
- padding: 0 var(--fui-space-2, $fui-space-2);
254
- min-height: 32px;
255
119
  border-radius: var(--fui-radius-md, $fui-radius-md);
256
120
  color: var(--fui-text-tertiary, $fui-text-tertiary);
257
- font-size: var(--fui-font-size-2xs, $fui-font-size-2xs);
258
- font-weight: var(--fui-font-weight-semibold, $fui-font-weight-semibold);
259
- letter-spacing: var(--fui-letter-spacing-wide, $fui-letter-spacing-wide);
260
121
  text-transform: uppercase;
261
122
  background: transparent;
262
123
  border: 0;
@@ -272,7 +133,7 @@ $rail-from-item-1: $rail-x-1 - $rail-pad; // 3px
272
133
  color var(--fui-transition-fast, $fui-transition-fast);
273
134
 
274
135
  &:hover {
275
- background-color: var(--fui-bg-hover, $fui-bg-hover);
136
+ background-color: var(--fui-toc-hover-bg, var(--fui-bg-hover, #{$fui-bg-hover}));
276
137
  color: var(--fui-text-secondary, $fui-text-secondary);
277
138
  }
278
139
 
@@ -296,8 +157,8 @@ $rail-from-item-1: $rail-x-1 - $rail-pad; // 3px
296
157
  transition: transform var(--fui-transition-fast, $fui-transition-fast);
297
158
 
298
159
  svg {
299
- width: 10px;
300
- height: 10px;
160
+ width: var(--fui-raw-space-10, 10px);
161
+ height: var(--fui-raw-space-10, 10px);
301
162
  }
302
163
 
303
164
  &[data-open] {
@@ -319,12 +180,4 @@ $rail-from-item-1: $rail-x-1 - $rail-pad; // 3px
319
180
  .groupChevron {
320
181
  transition: none;
321
182
  }
322
-
323
- .item,
324
- .groupHeaderRow {
325
- &::before,
326
- &::after {
327
- transition: none;
328
- }
329
- }
330
183
  }
@@ -16,6 +16,8 @@ export interface TableOfContentsProps extends React.HTMLAttributes<HTMLElement>
16
16
  title?: string;
17
17
  /** Hide the title */
18
18
  hideTitle?: boolean;
19
+ /** Hide indented items and nested groups. Defaults to false. */
20
+ hideSubItems?: boolean;
19
21
  }
20
22
 
21
23
  export interface TableOfContentsItemProps extends Omit<
@@ -63,9 +65,10 @@ export interface TableOfContentsGroupProps {
63
65
 
64
66
  interface TocContextValue {
65
67
  depth: number;
68
+ hideSubItems: boolean;
66
69
  }
67
70
 
68
- const TocContext = React.createContext<TocContextValue>({ depth: 0 });
71
+ const TocContext = React.createContext<TocContextValue>({ depth: 0, hideSubItems: false });
69
72
 
70
73
  // ============================================
71
74
  // Icons
@@ -95,6 +98,7 @@ function TableOfContentsRoot({
95
98
  label = "Table of contents",
96
99
  title = "On This Page",
97
100
  hideTitle = false,
101
+ hideSubItems = false,
98
102
  className,
99
103
  "aria-label": ariaLabel,
100
104
  ...htmlProps
@@ -108,7 +112,7 @@ function TableOfContentsRoot({
108
112
  {title}
109
113
  </Text>
110
114
  )}
111
- <TocContext.Provider value={{ depth: 0 }}>
115
+ <TocContext.Provider value={{ depth: 0, hideSubItems }}>
112
116
  <ul className={styles.list}>{children}</ul>
113
117
  </TocContext.Provider>
114
118
  </nav>
@@ -124,22 +128,29 @@ function TableOfContentsItem({
124
128
  trailing,
125
129
  className,
126
130
  onClick,
127
- href: _href,
131
+ href,
128
132
  ...htmlProps
129
133
  }: TableOfContentsItemProps) {
130
- const { depth } = React.useContext(TocContext);
134
+ const { depth, hideSubItems } = React.useContext(TocContext);
131
135
  const effectiveDepth = depth > 0 ? depth : indent ? 1 : 0;
132
136
 
137
+ if (hideSubItems && effectiveDepth > 0) return null;
138
+
133
139
  const linkClasses = [styles.link, active && styles.active, className].filter(Boolean).join(" ");
134
140
 
135
141
  const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {
136
142
  onClick?.(e);
137
- if (e.defaultPrevented) return;
143
+ // An explicit href is a route, not an in-page anchor: let the browser
144
+ // (or a wrapping router link) own navigation.
145
+ if (e.defaultPrevented || href) return;
138
146
 
139
147
  e.preventDefault();
140
148
  const el = document.getElementById(id);
141
149
  if (el) {
142
- el.scrollIntoView({ behavior: "smooth" });
150
+ const prefersReducedMotion =
151
+ typeof window.matchMedia === "function" &&
152
+ window.matchMedia("(prefers-reduced-motion: reduce)").matches;
153
+ el.scrollIntoView({ behavior: prefersReducedMotion ? "auto" : "smooth" });
143
154
  window.history.replaceState(null, "", `#${id}`);
144
155
  }
145
156
  };
@@ -148,7 +159,7 @@ function TableOfContentsItem({
148
159
  <li className={styles.item} data-depth={effectiveDepth} data-active={active || undefined}>
149
160
  <a
150
161
  {...htmlProps}
151
- href={`#${id}`}
162
+ href={href ?? `#${id}`}
152
163
  className={linkClasses}
153
164
  onClick={handleClick}
154
165
  aria-current={active ? "location" : undefined}
@@ -194,9 +205,11 @@ function TableOfContentsGroup({
194
205
  disabled = false,
195
206
  active = false,
196
207
  }: TableOfContentsGroupProps) {
197
- const { depth } = React.useContext(TocContext);
208
+ const { depth, hideSubItems } = React.useContext(TocContext);
198
209
  const [open, setOpen] = useControlledOpen(controlledOpen, defaultOpen, onOpenChange);
199
210
 
211
+ if (hideSubItems) return null;
212
+
200
213
  const isToggleable = collapsible && !disabled;
201
214
  const isOpen = isToggleable ? open : true;
202
215
 
@@ -237,7 +250,11 @@ function TableOfContentsGroup({
237
250
  <div className={headerClasses}>{headerContent}</div>
238
251
  )}
239
252
  </li>
240
- {isOpen && <TocContext.Provider value={{ depth: depth + 1 }}>{children}</TocContext.Provider>}
253
+ {isOpen && (
254
+ <TocContext.Provider value={{ depth: depth + 1, hideSubItems }}>
255
+ {children}
256
+ </TocContext.Provider>
257
+ )}
241
258
  </>
242
259
  );
243
260
  }
@@ -1,14 +1,9 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "Tabs",
4
- "description": "Organize content into switchable panels. Use for related content that benefits from a compact, navigable layout.",
4
+ "description": "Swaps between sibling panels without leaving the page.",
5
5
  "category": "navigation",
6
- "tags": [
7
- "tabs",
8
- "navigation",
9
- "panels",
10
- "content-switcher"
11
- ],
6
+ "tags": ["tabs", "navigation", "panels", "content-switcher"],
12
7
  "status": "stable",
13
8
  "sourcePath": "src/components/Tabs/index.tsx",
14
9
  "exportName": "Tabs",
@@ -46,41 +41,35 @@
46
41
  "description": "Tab list orientation",
47
42
  "default": "horizontal",
48
43
  "required": false,
49
- "values": [
50
- "horizontal",
51
- "vertical"
52
- ]
44
+ "values": ["horizontal", "vertical"]
53
45
  },
54
46
  "variant": {
55
47
  "type": "enum",
56
48
  "description": "Default visual style for Tabs.List (can be overridden on Tabs.List)",
57
49
  "default": "underline",
58
50
  "required": false,
59
- "values": [
60
- "underline",
61
- "pills"
62
- ]
51
+ "values": ["underline", "pills"]
63
52
  }
64
53
  },
65
54
  "usage": {
66
55
  "when": [
67
- "Organizing related content into sections",
68
- "Reducing page scrolling by grouping content",
69
- "Settings pages with multiple categories",
70
- "Dashboard views with different data perspectives"
56
+ "Sibling sections of equal weight",
57
+ "Cutting scroll on a long page",
58
+ "Settings split by category",
59
+ "One data set seen several ways"
71
60
  ],
72
61
  "whenNot": [
73
- "Primary navigation (use sidebar or header nav)",
74
- "Sequential steps (use Stepper or wizard)",
75
- "Comparing content side-by-side",
76
- "Very long lists of options (use Select or Menu)"
62
+ "Moving between pages (use Sidebar or header navigation)",
63
+ "Steps in an order (use Stepper)",
64
+ "Content the user compares side by side",
65
+ "More options than fit in a row (use Select)"
77
66
  ],
78
67
  "guidelines": [
79
- "Keep tab labels short (1-2 words)",
80
- "Order tabs by usage frequency or logical sequence",
81
- "Avoid more than 5-6 tabs; consider sub-navigation for more",
82
- "Tab content should be roughly equivalent in scope",
83
- "Use pills variant for contained sections, underline for page-level tabs"
68
+ "One or two words per label",
69
+ "Order by how often each panel is used",
70
+ "Past five or six tabs, split the page instead",
71
+ "Keep panels comparable in depth",
72
+ "Pills inside cards, underline at page level"
84
73
  ],
85
74
  "accessibility": [
86
75
  "Keyboard navigation with arrow keys",
@@ -91,22 +80,22 @@
91
80
  "examples": [
92
81
  {
93
82
  "name": "Underline",
94
- "description": "Default underline style tabs",
83
+ "description": "A rule tracks the active panel.",
95
84
  "code": "<Tabs defaultValue=\"overview\" variant=\"underline\">\n <Tabs.List>\n <Tabs.Tab value=\"overview\">Overview</Tabs.Tab>\n <Tabs.Tab value=\"analytics\">Analytics</Tabs.Tab>\n <Tabs.Tab value=\"settings\">Settings</Tabs.Tab>\n </Tabs.List>\n <Tabs.Panel value=\"overview\">\n <p>Overview content goes here.</p>\n </Tabs.Panel>\n <Tabs.Panel value=\"analytics\">\n <p>Analytics content goes here.</p>\n </Tabs.Panel>\n <Tabs.Panel value=\"settings\">\n <p>Settings content goes here.</p>\n </Tabs.Panel>\n</Tabs>"
96
85
  },
97
86
  {
98
87
  "name": "Pills",
99
- "description": "Pill-style tabs for contained sections",
88
+ "description": "A filled track suits panels inside a card.",
100
89
  "code": "<Tabs defaultValue=\"all\" variant=\"pills\">\n <Tabs.List>\n <Tabs.Tab value=\"all\">All</Tabs.Tab>\n <Tabs.Tab value=\"active\">Active</Tabs.Tab>\n <Tabs.Tab value=\"archived\">Archived</Tabs.Tab>\n </Tabs.List>\n <Tabs.Panel value=\"all\">\n <p>Showing all items.</p>\n </Tabs.Panel>\n <Tabs.Panel value=\"active\">\n <p>Showing active items only.</p>\n </Tabs.Panel>\n <Tabs.Panel value=\"archived\">\n <p>Showing archived items.</p>\n </Tabs.Panel>\n</Tabs>"
101
90
  },
102
91
  {
103
92
  "name": "With Disabled",
104
- "description": "Tabs with a disabled option",
93
+ "description": "An unavailable panel stays visible but unreachable.",
105
94
  "code": "<Tabs defaultValue=\"general\" variant=\"underline\">\n <Tabs.List>\n <Tabs.Tab value=\"general\">General</Tabs.Tab>\n <Tabs.Tab value=\"security\">Security</Tabs.Tab>\n <Tabs.Tab value=\"billing\" disabled>Billing</Tabs.Tab>\n </Tabs.List>\n <Tabs.Panel value=\"general\">\n <p>General settings panel.</p>\n </Tabs.Panel>\n <Tabs.Panel value=\"security\">\n <p>Security settings panel.</p>\n </Tabs.Panel>\n</Tabs>"
106
95
  },
107
96
  {
108
97
  "name": "List Variant Override",
109
- "description": "Tabs sets a default variant, and Tabs.List can override it per list",
98
+ "description": "One list can opt out of the root's style.",
110
99
  "code": "<Tabs defaultValue=\"overview\" variant=\"pills\">\n <Tabs.List variant=\"underline\">\n <Tabs.Tab value=\"overview\">Overview</Tabs.Tab>\n <Tabs.Tab value=\"activity\">Activity</Tabs.Tab>\n </Tabs.List>\n <Tabs.Panel value=\"overview\">\n <p>Root sets pills, but this list overrides to underline.</p>\n </Tabs.Panel>\n <Tabs.Panel value=\"activity\">\n <p>Per-list variant override example.</p>\n </Tabs.Panel>\n</Tabs>"
111
100
  }
112
101
  ],
@@ -130,22 +119,12 @@
130
119
  "variant: underline|pills - default style for Tabs.List",
131
120
  "Tabs.List variant?: underline|pills - optional per-list override"
132
121
  ],
133
- "a11yRules": [
134
- "A11Y_TABS_KEYBOARD",
135
- "A11Y_TABS_LABELS"
136
- ]
122
+ "a11yRules": ["A11Y_TABS_KEYBOARD", "A11Y_TABS_LABELS"]
137
123
  },
138
124
  "ai": {
139
125
  "compositionPattern": "compound",
140
- "subComponents": [
141
- "List",
142
- "Tab",
143
- "Panel"
144
- ],
145
- "requiredChildren": [
146
- "List",
147
- "Panel"
148
- ],
126
+ "subComponents": ["List", "Tab", "Panel"],
127
+ "requiredChildren": ["List", "Panel"],
149
128
  "commonPatterns": [
150
129
  "<Tabs defaultValue=\"tab1\"><Tabs.List><Tabs.Tab value=\"tab1\">{label1}</Tabs.Tab><Tabs.Tab value=\"tab2\">{label2}</Tabs.Tab></Tabs.List><Tabs.Panel value=\"tab1\">{content1}</Tabs.Panel><Tabs.Panel value=\"tab2\">{content2}</Tabs.Panel></Tabs>"
151
130
  ]
@@ -1,5 +1,7 @@
1
1
  @use "../../tokens/variables" as *;
2
2
  @use "../../tokens/mixins" as *;
3
+ @use "../../recipes/layout";
4
+ @use "../../recipes/segmented";
3
5
 
4
6
  // Root container
5
7
  .root {
@@ -17,16 +19,17 @@
17
19
  position: relative;
18
20
  display: flex;
19
21
  align-items: center;
20
- gap: var(--fui-space-1, $fui-space-1);
21
- border-bottom: 1px solid var(--fui-border, $fui-border);
22
- padding: 0 var(--fui-space-1, $fui-space-1);
22
+ gap: layout.gap("xs");
23
+ border-bottom: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
24
+ padding-inline: layout.gap("xs");
23
25
 
24
26
  &[data-orientation="vertical"] {
25
27
  flex-direction: column;
26
28
  align-items: stretch;
27
29
  border-bottom: none;
28
- border-right: 1px solid var(--fui-border, $fui-border);
29
- padding: var(--fui-space-1, $fui-space-1) 0;
30
+ border-right: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
31
+ padding-block: layout.gap("xs");
32
+ padding-inline: 0;
30
33
  }
31
34
  }
32
35
 
@@ -41,7 +44,7 @@
41
44
  border-radius: var(--fui-radius-lg, $fui-radius-lg);
42
45
  padding: 0;
43
46
  gap: 0;
44
- box-shadow: inset 0 0 0 1px
47
+ box-shadow: inset 0 0 0 var(--fui-stroke-hairline, 1px)
45
48
  var(
46
49
  --fui-tabs-pills-border,
47
50
  color-mix(in srgb, var(--fui-border, #{$fui-border}) 72%, transparent)
@@ -60,12 +63,6 @@
60
63
  @include interactive-base;
61
64
 
62
65
  position: relative;
63
- display: inline-flex;
64
- align-items: center;
65
- justify-content: center;
66
- gap: var(--fui-space-2, $fui-space-2);
67
- font-size: var(--fui-font-size-sm, $fui-font-size-sm);
68
- font-weight: var(--fui-font-weight-medium, $fui-font-weight-medium);
69
66
  color: var(--fui-text-secondary, $fui-text-secondary);
70
67
  white-space: nowrap;
71
68
  border-radius: var(--fui-radius-sm, $fui-radius-sm);
@@ -85,25 +82,32 @@
85
82
  }
86
83
 
87
84
  .tabSm {
88
- min-height: var(--fui-button-height-sm, $fui-button-height-sm);
89
- padding: 0 var(--fui-space-2, $fui-space-2);
85
+ @include segmented.item("sm");
86
+
87
+ svg {
88
+ @include segmented.glyph("sm");
89
+ }
90
90
  }
91
91
 
92
92
  .tabMd {
93
- min-height: var(--fui-button-height-md, $fui-button-height-md);
94
- padding: 0 var(--fui-space-3, $fui-space-3);
93
+ @include segmented.item("md");
94
+
95
+ svg {
96
+ @include segmented.glyph("md");
97
+ }
95
98
  }
96
99
 
97
100
  .tabLg {
98
- min-height: var(--fui-button-height-lg, $fui-button-height-lg);
99
- padding: 0 var(--fui-space-4, $fui-space-4);
100
- font-size: var(--fui-font-size-base, $fui-font-size-base);
101
+ @include segmented.item("lg");
102
+
103
+ svg {
104
+ @include segmented.glyph("lg");
105
+ }
101
106
  }
102
107
 
103
108
  // Tab in underline variant
104
109
  .tabUnderline {
105
110
  border-radius: 0;
106
- margin-bottom: -1px;
107
111
 
108
112
  &:hover:not([data-disabled]) {
109
113
  background-color: transparent;
@@ -135,7 +139,7 @@
135
139
  position: absolute;
136
140
  bottom: 0;
137
141
  left: 0;
138
- height: 2px;
142
+ height: var(--fui-stroke-default, 2px);
139
143
  background-color: var(--fui-color-accent, $fui-color-accent);
140
144
  border-radius: var(--fui-radius-full, $fui-radius-full);
141
145
 
@@ -151,7 +155,7 @@
151
155
  left: auto;
152
156
  right: 0;
153
157
  top: 0;
154
- width: 2px;
158
+ width: var(--fui-stroke-default, 2px);
155
159
  height: var(--active-tab-height);
156
160
  transform: translateY(var(--active-tab-top));
157
161
  }
@@ -159,7 +163,8 @@
159
163
 
160
164
  // Tab panel content
161
165
  .panel {
162
- padding: var(--fui-space-2, $fui-space-2) 0;
166
+ padding-block: layout.gap("sm");
167
+ padding-inline: 0;
163
168
  outline: none;
164
169
 
165
170
  &[data-hidden] {