@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
@@ -6,14 +6,9 @@
6
6
 
7
7
  // Focus ring for keyboard accessibility
8
8
  @mixin focus-ring {
9
- outline: none;
10
- box-shadow:
11
- 0 0 0 1px
12
- color-mix(in srgb, var(--fui-focus-ring-color, #{$fui-focus-ring-color}) 28%, transparent),
13
- 0 0 0 calc(var(--fui-focus-ring-width, #{$fui-focus-ring-width}) + 1px)
14
- color-mix(in srgb, var(--fui-focus-ring-color, #{$fui-focus-ring-color}) 12%, transparent),
15
- 0 10px 24px -16px
16
- color-mix(in srgb, var(--fui-focus-ring-color, #{$fui-focus-ring-color}) 32%, transparent);
9
+ outline: var(--fui-focus-ring-width, #{$fui-focus-ring-width}) solid
10
+ var(--fui-focus-ring-color, #{$fui-focus-ring-color});
11
+ outline-offset: var(--fui-focus-ring-offset, #{$fui-focus-ring-offset});
17
12
  }
18
13
 
19
14
  // Reset button styles
@@ -26,6 +21,10 @@
26
21
  font: inherit;
27
22
  color: inherit;
28
23
  cursor: pointer;
24
+ // Pressables are controls, not prose: no text selection on repeated or
25
+ // shift-clicks, no mobile tap flash.
26
+ user-select: none;
27
+ -webkit-tap-highlight-color: transparent;
29
28
 
30
29
  &:disabled {
31
30
  cursor: not-allowed;
@@ -51,56 +50,6 @@
51
50
  }
52
51
  }
53
52
 
54
- // Enforce minimum pointer target dimensions for interactive controls.
55
- @mixin min-target-size($size: var(--fui-target-size-min, #{$fui-target-size-min})) {
56
- min-width: $size;
57
- min-height: $size;
58
- }
59
-
60
- // Centered interactive hit area with minimum dimensions.
61
- @mixin touch-target($size: var(--fui-target-size-min, #{$fui-target-size-min})) {
62
- @include min-target-size($size);
63
- display: inline-flex;
64
- align-items: center;
65
- justify-content: center;
66
- }
67
-
68
- // Typography base
69
- @mixin text-base {
70
- font-family: var(--fui-font-sans, #{$fui-font-sans});
71
- font-size: var(--fui-font-size-sm, #{$fui-font-size-sm});
72
- line-height: var(--fui-line-height-normal, #{$fui-line-height-normal});
73
- color: var(--fui-text-primary, #{$fui-text-primary});
74
- -webkit-font-smoothing: antialiased;
75
- -moz-osx-font-smoothing: grayscale;
76
- }
77
-
78
- // Label text
79
- @mixin label-text {
80
- font-family: var(--fui-font-sans, #{$fui-font-sans});
81
- font-size: var(--fui-font-size-sm, #{$fui-font-size-sm});
82
- font-weight: var(--fui-font-weight-medium, #{$fui-font-weight-medium});
83
- color: var(--fui-text-primary, #{$fui-text-primary});
84
- }
85
-
86
- // Helper/caption text
87
- @mixin helper-text {
88
- font-family: var(--fui-font-sans, #{$fui-font-sans});
89
- font-size: var(--fui-font-size-xs, #{$fui-font-size-xs});
90
- color: var(--fui-text-secondary, #{$fui-text-secondary});
91
- }
92
-
93
- // Section label text (e.g. sidebar headings, TOC label).
94
- // 11px uppercase reads cleanly where 10px starts to crush; semibold + 0.06em
95
- // tracking gives the label enough weight to register without shouting.
96
- @mixin section-label-text {
97
- @include helper-text;
98
- font-size: 0.786rem; // 11px at 14px root
99
- font-weight: var(--fui-font-weight-semibold, #{$fui-font-weight-semibold});
100
- text-transform: uppercase;
101
- letter-spacing: var(--fui-letter-spacing-wide, #{$fui-letter-spacing-wide});
102
- }
103
-
104
53
  // Card surface
105
54
  @mixin surface-elevated {
106
55
  background-color: var(--fui-bg-elevated, #{$fui-bg-elevated});
@@ -108,149 +57,6 @@
108
57
  border-radius: var(--fui-radius-lg, #{$fui-radius-lg});
109
58
  }
110
59
 
111
- // Dropdown / popup container base styles.
112
- // Compose with @include surface-elevated for the full treatment.
113
- // Consumer sets min-width and optionally max-height/overflow.
114
- @mixin popup-container {
115
- display: flex;
116
- flex-direction: column;
117
- gap: var(--fui-popup-row-gap, #{$fui-popup-row-gap});
118
- padding: var(--fui-popup-padding, #{$fui-popup-padding});
119
- box-shadow: var(--fui-shadow-md, #{$fui-shadow-md});
120
- }
121
-
122
- // Scroll viewport for the popups that peek — Select, Listbox, Combobox. Sets
123
- // `--_popup-scroll-max-h`; the consumer applies it, because Base UI puts an
124
- // inline `max-height: 100%` on some of these popups that only `!important` beats.
125
- //
126
- // Row *pitch*, not row height: `popup-container` is a flex column, so N rows
127
- // occupy N pitches less the trailing gap. (A grouped popup nests its rows one
128
- // level down, where that gap does not reach, so the peek there runs a few
129
- // pixels shy of half a row — visible only as a slightly smaller sliver.)
130
- // Every term here reads the token that actually draws it — which is the point.
131
- // Written out longhand in three separate stylesheets, this calc billed
132
- // $fui-space-2 of vertical padding for a row `popup-item` pads with
133
- // $fui-space-1, deriving a 46px row against a real 32px one, so all three
134
- // popups outgrew their own content and never scrolled at all.
135
- @mixin popup-scroll-viewport {
136
- --_popup-row-h: calc(
137
- var(--fui-popup-item-font-size, #{$fui-popup-item-font-size}) *
138
- var(--fui-line-height-normal, #{$fui-line-height-normal}) +
139
- var(--fui-popup-item-padding-block, #{$fui-popup-item-padding-block}) * 2 +
140
- var(--fui-popup-row-gap, #{$fui-popup-row-gap})
141
- );
142
-
143
- // The + 2px is the 1px border `surface-elevated` draws top and bottom: these
144
- // popups are border-box, so max-height pays for the frame before the rows.
145
- --_popup-scroll-max-h: calc(
146
- var(--_popup-row-h) *
147
- var(--fui-select-max-items, 4.5) - var(--fui-popup-row-gap, #{$fui-popup-row-gap}) +
148
- var(--fui-popup-padding, #{$fui-popup-padding}) * 2 + 2px
149
- );
150
- }
151
-
152
- // ============================================
153
- // Popup / menu item — canonical interaction model
154
- // ============================================
155
- // Shared by every list-popup surface (Combobox, Select, Menu, Listbox, Command,
156
- // NavigationMenu) so hover / keyboard-active / selected / disabled read identically
157
- // everywhere, in both light and dark mode.
158
- //
159
- // rest → transparent
160
- // highlight → @include popup-item-highlight (pointer hover AND keyboard-active —
161
- // one neutral indicator; map [data-highlighted], :hover, .active to it)
162
- // selected → @include popup-item-selected (accent-tinted + inset accent ring)
163
- // disabled → @include popup-item-disabled
164
- //
165
- // Base UI components set [data-highlighted] on both hover and keyboard nav, so a single
166
- // `&[data-highlighted] { @include popup-item-highlight; }` covers both. Custom popups
167
- // should map `&:hover, &.<active>, &[data-highlighted]` to the same mixin.
168
-
169
- // Dropdown/popup item base. Includes button-reset and text-base, then steps the
170
- // size down to the popup scale — see $fui-popup-item-font-size. Select, Listbox
171
- // and Combobox size their scroll viewport from the same token, so read it there
172
- // too rather than re-deriving an item height from the body size.
173
- @mixin popup-item {
174
- @include button-reset;
175
- @include text-base;
176
-
177
- font-size: var(--fui-popup-item-font-size, #{$fui-popup-item-font-size});
178
- display: flex;
179
- align-items: center;
180
- gap: var(--fui-space-1, #{$fui-space-1});
181
- width: 100%;
182
- padding: var(--fui-popup-item-padding-block, #{$fui-popup-item-padding-block})
183
- var(--fui-popup-item-padding-inline, #{$fui-popup-item-padding-inline});
184
- border-radius: var(--fui-radius-sm, #{$fui-radius-sm});
185
- cursor: pointer;
186
- outline: none;
187
- transition:
188
- background-color var(--fui-transition-fast, #{$fui-transition-fast}),
189
- color var(--fui-transition-fast, #{$fui-transition-fast});
190
- }
191
-
192
- // Active item — pointer-hover and keyboard-active share this single neutral highlight.
193
- // Falls back to --fui-bg-active then the SCSS value where --fui-bg-highlight is unset.
194
- @mixin popup-item-highlight {
195
- background-color: var(--fui-bg-highlight, var(--fui-bg-active, #{$fui-bg-active}));
196
- color: var(--fui-text-primary, #{$fui-text-primary});
197
- }
198
-
199
- // Disabled item — uniform across every popup.
200
- @mixin popup-item-disabled {
201
- opacity: 0.5;
202
- pointer-events: none;
203
- cursor: default;
204
- }
205
-
206
- // Group label within a dropdown/popup.
207
- @mixin popup-group-label {
208
- padding: var(--fui-space-1, #{$fui-space-1}) var(--fui-space-2, #{$fui-space-2});
209
- font-size: var(--fui-font-size-xs, #{$fui-font-size-xs});
210
- font-weight: var(--fui-font-weight-medium, #{$fui-font-weight-medium});
211
- color: var(--fui-text-tertiary, #{$fui-text-tertiary});
212
- text-transform: uppercase;
213
- letter-spacing: var(--fui-letter-spacing-wide, #{$fui-letter-spacing-wide});
214
- }
215
-
216
- // Shared shell for field-like controls.
217
- @mixin field-shell {
218
- background-color: var(--fui-field-bg, transparent);
219
- border: 1px solid var(--fui-field-border, var(--fui-border-strong, #{$fui-border-strong}));
220
- border-radius: var(--fui-radius-md, #{$fui-radius-md});
221
- transition:
222
- background-color var(--fui-transition-fast, #{$fui-transition-fast}),
223
- border-color var(--fui-transition-fast, #{$fui-transition-fast}),
224
- box-shadow var(--fui-transition-fast, #{$fui-transition-fast}),
225
- color var(--fui-transition-fast, #{$fui-transition-fast});
226
-
227
- &:hover:not(:disabled):not([data-disabled]):not(:focus-visible) {
228
- border-color: var(--fui-field-border-hover, var(--fui-text-tertiary, #{$fui-text-tertiary}));
229
- }
230
-
231
- &:focus:not(:disabled):not([data-disabled]) {
232
- border-color: var(--fui-field-border-focus, var(--fui-color-accent, #{$fui-color-accent}));
233
- }
234
-
235
- &:disabled,
236
- &[data-disabled] {
237
- background-color: var(--fui-field-bg-disabled, var(--fui-bg-tertiary, #{$fui-bg-tertiary}));
238
- color: var(--fui-text-tertiary, #{$fui-text-tertiary});
239
- }
240
- }
241
-
242
- @mixin field-shell-focus {
243
- @include focus-ring;
244
- border-color: var(--fui-field-border-focus, var(--fui-color-accent, #{$fui-color-accent}));
245
- }
246
-
247
- @mixin popup-item-selected {
248
- background-color: var(--fui-field-selection-bg, var(--fui-bg-hover, #{$fui-bg-hover}));
249
- color: var(--fui-field-selection-color, var(--fui-text-primary, #{$fui-text-primary}));
250
- box-shadow: inset 0 0 0 1px
251
- var(--fui-field-selection-border, var(--fui-color-accent, #{$fui-color-accent}));
252
- }
253
-
254
60
  @mixin form-group-surface {
255
61
  background-color: var(--fui-form-group-bg, var(--fui-bg-secondary, #{$fui-bg-secondary}));
256
62
  border: 1px solid var(--fui-form-group-border, var(--fui-border, #{$fui-border}));
@@ -421,86 +227,3 @@
421
227
  0 10px 24px -16px
422
228
  color-mix(in srgb, var(--fui-color-danger-text, #{$fui-color-danger-text}) 28%, transparent);
423
229
  }
424
-
425
- // ============================================
426
- // Size Variant Mixins
427
- // ============================================
428
-
429
- /// Control size mixin for standardized sizing across buttons, inputs, selects
430
- /// @param {String} $size - Size variant: 'sm', 'md', or 'lg'
431
- /// @param {String} $component - Component type: 'button', 'input', or 'select'
432
- @mixin control-size($size, $component: "button") {
433
- // Global accessibility floor: component-specific height tokens may be customized,
434
- // but controls should not shrink below the minimum target size.
435
- min-height: var(--fui-target-size-min, #{$fui-target-size-min});
436
-
437
- @if $size == "sm" {
438
- @if $component == "input" {
439
- height: var(--fui-input-height-sm, #{$fui-input-height-sm});
440
- padding: 0 var(--fui-space-2, #{$fui-space-2});
441
- font-size: var(--fui-font-size-xs, #{$fui-font-size-xs});
442
- } @else {
443
- height: var(--fui-button-height-sm, #{$fui-button-height-sm});
444
- padding: 0 var(--fui-space-2, #{$fui-space-2});
445
- font-size: var(--fui-font-size-xs, #{$fui-font-size-xs});
446
- }
447
- } @else if $size == "md" {
448
- @if $component == "input" {
449
- height: var(--fui-input-height, #{$fui-input-height});
450
- padding: 0 var(--fui-space-3, #{$fui-space-3});
451
- font-size: var(--fui-font-size-sm, #{$fui-font-size-sm});
452
- } @else {
453
- height: var(--fui-button-height-md, #{$fui-button-height-md});
454
- padding: 0 var(--fui-space-4, #{$fui-space-4});
455
- font-size: var(--fui-font-size-sm, #{$fui-font-size-sm});
456
- }
457
- } @else if $size == "lg" {
458
- @if $component == "input" {
459
- height: var(--fui-input-height-lg, #{$fui-input-height-lg});
460
- padding: 0 var(--fui-space-4, #{$fui-space-4});
461
- font-size: var(--fui-font-size-base, #{$fui-font-size-base});
462
- } @else {
463
- height: var(--fui-button-height-lg, #{$fui-button-height-lg});
464
- padding: 0 var(--fui-space-5, #{$fui-space-5});
465
- font-size: var(--fui-font-size-base, #{$fui-font-size-base});
466
- }
467
- }
468
- }
469
-
470
- // ============================================
471
- // Form Field Wrapper
472
- // Generates .wrapper, .label, .helper, .helperError, .errorMessage
473
- // for consistent form field layout across all form components.
474
- // ============================================
475
-
476
- @mixin form-field-wrapper {
477
- .wrapper {
478
- display: flex;
479
- flex-direction: column;
480
- }
481
-
482
- .label {
483
- @include label-text;
484
- margin-bottom: var(--fui-space-1, #{$fui-space-1});
485
- }
486
-
487
- .required {
488
- color: var(--fui-color-danger-text, #{$fui-color-danger-text});
489
- margin-left: 2px;
490
- }
491
-
492
- .helper {
493
- @include helper-text;
494
- margin-top: var(--fui-space-1, #{$fui-space-1});
495
- }
496
-
497
- .helperError {
498
- color: var(--fui-color-danger-text, #{$fui-color-danger-text});
499
- }
500
-
501
- .errorMessage {
502
- font-size: var(--fui-font-size-xs, #{$fui-font-size-xs});
503
- color: var(--fui-color-danger-text, #{$fui-color-danger-text});
504
- margin-top: var(--fui-space-1, #{$fui-space-1});
505
- }
506
- }
@@ -1,179 +1,51 @@
1
1
  // ============================================
2
- // @usefragments/ui Elemental Palettes
2
+ // @usefragments/ui Neutral Palette
3
3
  // ============================================
4
4
  //
5
- // Defines 5 elemental palettes with 11 shades (50-950).
6
- // Each palette has a distinct tonal character.
5
+ // One neutral ramp with 11 shades (50-950) powering one light theme and one
6
+ // dark theme. Theme variation comes from the seeds ($fui-brand, $fui-density,
7
+ // $fui-radius-style) — not from alternative neutral ramps.
7
8
  //
8
9
  // ============================================
9
10
 
10
- @use 'sass:color';
11
- @use 'sass:map';
12
- @use 'sass:math';
13
-
14
- // --------------------------------------------
15
- // Stone - Muted cool neutrals (Default)
16
- // Subtle, balanced feel - matches current zinc-like palette
17
- // --------------------------------------------
18
- $palette-stone: (
19
- 50: #fafafa,
20
- 100: #f4f4f5,
21
- 200: #e4e4e7,
22
- 300: #d4d4d8,
23
- 400: #a1a1aa,
24
- 500: #71717a,
25
- 600: #52525b,
26
- 700: #3f3f46,
27
- 800: #27272a,
28
- 900: #18181b,
29
- 950: #09090b
30
- );
31
-
32
- // --------------------------------------------
33
- // Mono - Restraint-first neutral palette
34
- // Dark mode is intentionally close to true black so product surfaces feel
35
- // unified, not like separate panels pasted onto a grey shell.
36
- // --------------------------------------------
37
- $palette-mono: (
38
- 50: #fafafa,
39
- 100: #f5f5f5,
40
- 200: #e5e5e5,
41
- 300: #d4d4d4,
42
- 400: #a3a3a3,
43
- 500: #737373,
44
- 600: #525252,
45
- 700: #404040,
46
- 800: #171717,
47
- 900: #0a0a0a,
48
- 950: #000000
49
- );
50
-
51
- // --------------------------------------------
52
- // Ice - Cool blue tones
53
- // Professional, tech feel
54
- // --------------------------------------------
55
- $palette-ice: (
56
- 50: #f0f9ff,
57
- 100: #e0f2fe,
58
- 200: #bae6fd,
59
- 300: #7dd3fc,
60
- 400: #38bdf8,
61
- 500: #0ea5e9,
62
- 600: #0284c7,
63
- 700: #0369a1,
64
- 800: #0f2d3d, // Darkened and desaturated for dark mode
65
- 900: #0a1f2c, // Darkened and desaturated for dark mode
66
- 950: #06141c // Very dark blue-gray for dark mode bg
67
- );
68
-
69
- // --------------------------------------------
70
- // Sand - Warm brown/terracotta tones
71
- // Organic, earthy feel
72
- // --------------------------------------------
73
- $palette-sand: (
74
- 50: #fdf8f3,
75
- 100: #f5ebe0,
76
- 200: #e8d5c4,
77
- 300: #d4b89c,
78
- 400: #c19a6b,
79
- 500: #a67c52,
80
- 600: #8b5e34,
81
- 700: #6f4518,
82
- 800: #231a12, // Darkened and desaturated for dark mode
83
- 900: #181210, // Darkened and desaturated for dark mode
84
- 950: #0f0c09 // Very dark warm gray for dark mode bg
85
- );
86
-
87
- // --------------------------------------------
88
- // Earth - Green/olive tones
89
- // Natural, growth feel
90
- // --------------------------------------------
91
- $palette-earth: (
92
- 50: #f5f7f2,
93
- 100: #e8ede3,
94
- 200: #d1dbc6,
95
- 300: #b3c4a0,
96
- 400: #8fa872,
97
- 500: #6b8c4e,
98
- 600: #517035,
99
- 700: #3d5527,
100
- 800: #1a2316, // Darkened and desaturated for dark mode
101
- 900: #121810, // Darkened and desaturated for dark mode
102
- 950: #0a0f08 // Very dark green-gray for dark mode bg
103
- );
104
-
105
- // --------------------------------------------
106
- // Fragments - Rich saturated green tones
107
- // The Fragments brand palette — deep forest greens
108
- // --------------------------------------------
109
- $palette-fragments: (
110
- 50: #f0f7f3,
111
- 100: #dceee3,
112
- 200: #b8ddc6,
113
- 300: #88c5a0,
114
- 400: #5aaa7a,
115
- 500: #3d8f60,
116
- 600: #2d7049,
117
- 700: #235536,
118
- 800: #1a3025, // Dark card surface
119
- 900: #142318, // Dark surface
120
- 950: #0d1f17 // Darkest bg
121
- );
122
-
123
- // --------------------------------------------
124
- // Carbon - Fragments brand neutral (DEFAULT)
125
- // The hybrid-skin charcoal ramp. Distinct from `mono` (true black) — carbon's
126
- // dark surfaces sit at #212121 (page) with #171717 recessed panels and #2f2f2f
127
- // raised/elevated so panels read as material, not voids. Dark surface/text/
128
- // border values are emitted explicitly by the derive-* branches; light mode
129
- // behaves like a neutral white palette. Key stops: 900 = page bg,
130
- // 950 = recessed surface, 800 = hairline, 700 = strong border, 500 = faint text.
131
- // --------------------------------------------
132
- $palette-carbon: (
133
- 50: #fafafa,
134
- 100: #f4f4f4,
135
- 200: #e4e4e4,
136
- 300: #d1d1d1,
137
- 400: #b0b0b0,
138
- 500: #8f8f8f, // faint / placeholder text
139
- 600: #5a5a5a,
140
- 700: #4b4b4b, // strong border
141
- 800: #323232, // hairline / default border
142
- 900: #212121, // page / body background
143
- 950: #171717 // recessed surface (cards, panels, code wells)
144
- );
145
-
146
- // --------------------------------------------
147
- // Fire - Warm red/orange tones
148
- // Energy, passion feel
149
- // --------------------------------------------
150
- $palette-fire: (
151
- 50: #fff7ed,
152
- 100: #ffedd5,
153
- 200: #fed7aa,
154
- 300: #fdba74,
155
- 400: #fb923c,
156
- 500: #f97316,
157
- 600: #ea580c,
158
- 700: #c2410c,
159
- 800: #2d1810, // Darkened and desaturated for dark mode
160
- 900: #1c100a, // Darkened and desaturated for dark mode
161
- 950: #120a06 // Very dark warm gray for dark mode bg
11
+ @use "sass:color";
12
+ @use "sass:map";
13
+ @use "sass:math";
14
+
15
+ // --------------------------------------------
16
+ // Paper - Warm cream neutral (the only ramp)
17
+ // Gallery-paper ramp: a warm cream canvas with warm-grey ink. Light surfaces
18
+ // sit on the #faf8f5 canvas with white cards floating above; dark mode moves
19
+ // the same warmth onto a charcoal plane. Key stops:
20
+ // 100 = light page canvas, 200 = tinted section band, 300 = warm chip/hover,
21
+ // 900 = ink / primary action fill, 950 = dark page bg.
22
+ // --------------------------------------------
23
+ $palette-paper: (
24
+ 50: #fdfcfa,
25
+ 100: #faf8f5,
26
+ // light page canvas
27
+ 200: #f2ede7,
28
+ // tinted section band
29
+ 300: #e9e2da,
30
+ // warm chip / secondary action
31
+ 400: #b3aca3,
32
+ 500: #8d8780,
33
+ // faint / placeholder text
34
+ 600: #6a6560,
35
+ 700: #4a4641,
36
+ // strong border (dark)
37
+ 800: #343029,
38
+ // hairline (dark)
39
+ 900: #1d1c1a,
40
+ // ink / primary action fill / dark elevated
41
+ 950: #171614, // dark page background
162
42
  );
163
43
 
164
44
  // --------------------------------------------
165
45
  // Palette Map for Dynamic Access
166
46
  // --------------------------------------------
167
47
  $palettes: (
168
- "stone": $palette-stone,
169
- "mono": $palette-mono,
170
- "ice": $palette-ice,
171
- "sand": $palette-sand,
172
- "earth": $palette-earth,
173
- "fire": $palette-fire,
174
- "fragments": $palette-fragments,
175
- "carbon": $palette-carbon,
176
- "wind": $palette-stone // Legacy alias — "wind" was renamed to "stone"
48
+ "paper": $palette-paper,
177
49
  );
178
50
 
179
51
  // --------------------------------------------
@@ -181,12 +53,12 @@ $palettes: (
181
53
  // --------------------------------------------
182
54
 
183
55
  /// Get a palette map by name
184
- /// @param {String} $name - Palette name (stone, ice, sand, earth, fire, fragments)
56
+ /// @param {String} $name - Palette name ("paper")
185
57
  /// @return {Map} The palette map with shades 50-950
186
58
  @function get-palette($name) {
187
59
  @if not map.has-key($palettes, $name) {
188
- @warn "Unknown palette '#{$name}'. Using 'stone' as fallback.";
189
- @return $palette-stone;
60
+ @warn "Unknown palette '#{$name}'. Using 'paper' as fallback.";
61
+ @return $palette-paper;
190
62
  }
191
63
  @return map.get($palettes, $name);
192
64
  }