@usefragments/ui 1.5.4 → 1.6.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 (497) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/ui.css +8808 -5810
  3. package/dist/chart.cjs +7 -20
  4. package/dist/chart.js +7 -20
  5. package/dist/colorpicker.cjs +2 -1
  6. package/dist/colorpicker.js +2 -1
  7. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  8. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  9. package/dist/components/Alert/Alert.module.scss.cjs +12 -12
  10. package/dist/components/Alert/Alert.module.scss.js +12 -12
  11. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  12. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  13. package/dist/components/AppShell/index.cjs +5 -3
  14. package/dist/components/AppShell/index.d.ts +4 -2
  15. package/dist/components/AppShell/index.d.ts.map +1 -1
  16. package/dist/components/AppShell/index.js +5 -3
  17. package/dist/components/Avatar/Avatar.module.scss.cjs +17 -14
  18. package/dist/components/Avatar/Avatar.module.scss.js +17 -14
  19. package/dist/components/Avatar/index.cjs +100 -118
  20. package/dist/components/Avatar/index.d.ts +7 -5
  21. package/dist/components/Avatar/index.d.ts.map +1 -1
  22. package/dist/components/Avatar/index.js +100 -118
  23. package/dist/components/Badge/Badge.module.scss.cjs +19 -19
  24. package/dist/components/Badge/Badge.module.scss.js +19 -19
  25. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  26. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  27. package/dist/components/Box/Box.module.scss.cjs +152 -152
  28. package/dist/components/Box/Box.module.scss.js +152 -152
  29. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +8 -8
  30. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +8 -8
  31. package/dist/components/Button/Button.module.scss.cjs +14 -14
  32. package/dist/components/Button/Button.module.scss.js +14 -14
  33. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  34. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  35. package/dist/components/Card/Card.module.scss.cjs +18 -18
  36. package/dist/components/Card/Card.module.scss.js +18 -18
  37. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  38. package/dist/components/Chart/Chart.module.scss.js +15 -15
  39. package/dist/components/Chart/index.d.ts +7 -7
  40. package/dist/components/Chart/index.d.ts.map +1 -1
  41. package/dist/components/Checkbox/Checkbox.module.scss.cjs +9 -15
  42. package/dist/components/Checkbox/Checkbox.module.scss.js +9 -15
  43. package/dist/components/Checkbox/index.cjs +4 -6
  44. package/dist/components/Checkbox/index.d.ts.map +1 -1
  45. package/dist/components/Checkbox/index.js +4 -6
  46. package/dist/components/Chip/Chip.module.scss.cjs +15 -15
  47. package/dist/components/Chip/Chip.module.scss.js +15 -15
  48. package/dist/components/Chip/index.cjs +4 -5
  49. package/dist/components/Chip/index.d.ts +1 -1
  50. package/dist/components/Chip/index.d.ts.map +1 -1
  51. package/dist/components/Chip/index.js +2 -3
  52. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +22 -22
  53. package/dist/components/CodeBlock/CodeBlock.module.scss.js +22 -22
  54. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -12
  55. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -12
  56. package/dist/components/Collapsible/index.cjs +3 -2
  57. package/dist/components/Collapsible/index.d.ts +3 -3
  58. package/dist/components/Collapsible/index.d.ts.map +1 -1
  59. package/dist/components/Collapsible/index.js +3 -2
  60. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +16 -16
  61. package/dist/components/ColorPicker/ColorPicker.module.scss.js +16 -16
  62. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  63. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -27
  64. package/dist/components/Combobox/Combobox.module.scss.js +21 -27
  65. package/dist/components/Combobox/index.cjs +4 -4
  66. package/dist/components/Combobox/index.d.ts.map +1 -1
  67. package/dist/components/Combobox/index.js +4 -4
  68. package/dist/components/Command/Command.module.scss.cjs +11 -11
  69. package/dist/components/Command/Command.module.scss.js +11 -11
  70. package/dist/components/ConversationList/ConversationList.module.scss.cjs +11 -14
  71. package/dist/components/ConversationList/ConversationList.module.scss.js +11 -14
  72. package/dist/components/ConversationList/index.cjs +40 -44
  73. package/dist/components/ConversationList/index.d.ts +3 -3
  74. package/dist/components/ConversationList/index.d.ts.map +1 -1
  75. package/dist/components/ConversationList/index.js +40 -44
  76. package/dist/components/DataTable/DataTable.module.scss.cjs +32 -56
  77. package/dist/components/DataTable/DataTable.module.scss.js +32 -56
  78. package/dist/components/DataTable/index.d.ts +5 -4
  79. package/dist/components/DataTable/index.d.ts.map +1 -1
  80. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  81. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  82. package/dist/components/DatePicker/index.d.ts.map +1 -1
  83. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  84. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  85. package/dist/components/Drawer/Drawer.module.scss.cjs +31 -28
  86. package/dist/components/Drawer/Drawer.module.scss.js +31 -28
  87. package/dist/components/Drawer/index.cjs +1 -1
  88. package/dist/components/Drawer/index.js +1 -1
  89. package/dist/components/Editor/Editor.module.scss.cjs +23 -23
  90. package/dist/components/Editor/Editor.module.scss.js +23 -23
  91. package/dist/components/EmptyState/EmptyState.module.scss.cjs +12 -12
  92. package/dist/components/EmptyState/EmptyState.module.scss.js +12 -12
  93. package/dist/components/Field/Field.module.scss.cjs +8 -5
  94. package/dist/components/Field/Field.module.scss.js +8 -5
  95. package/dist/components/Field/index.cjs +10 -1
  96. package/dist/components/Field/index.d.ts +9 -2
  97. package/dist/components/Field/index.d.ts.map +1 -1
  98. package/dist/components/Field/index.js +10 -1
  99. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  100. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  101. package/dist/components/Form/Form.module.scss.cjs +5 -2
  102. package/dist/components/Form/Form.module.scss.js +5 -2
  103. package/dist/components/Form/index.cjs +6 -1
  104. package/dist/components/Form/index.d.ts +8 -3
  105. package/dist/components/Form/index.d.ts.map +1 -1
  106. package/dist/components/Form/index.js +6 -1
  107. package/dist/components/Grid/Grid.module.scss.cjs +54 -72
  108. package/dist/components/Grid/Grid.module.scss.js +54 -72
  109. package/dist/components/Grid/index.cjs +57 -77
  110. package/dist/components/Grid/index.d.ts +11 -11
  111. package/dist/components/Grid/index.d.ts.map +1 -1
  112. package/dist/components/Grid/index.js +57 -77
  113. package/dist/components/Header/Header.module.scss.cjs +33 -33
  114. package/dist/components/Header/Header.module.scss.js +33 -33
  115. package/dist/components/Header/index.cjs +2 -1
  116. package/dist/components/Header/index.d.ts.map +1 -1
  117. package/dist/components/Header/index.js +2 -1
  118. package/dist/components/Icon/Icon.module.scss.cjs +29 -8
  119. package/dist/components/Icon/Icon.module.scss.js +30 -9
  120. package/dist/components/Icon/index.cjs +30 -48
  121. package/dist/components/Icon/index.d.ts +6 -6
  122. package/dist/components/Icon/index.d.ts.map +1 -1
  123. package/dist/components/Icon/index.js +30 -48
  124. package/dist/components/IconButton/IconButton.module.scss.cjs +8 -8
  125. package/dist/components/IconButton/IconButton.module.scss.js +8 -8
  126. package/dist/components/Input/Input.module.scss.cjs +19 -25
  127. package/dist/components/Input/Input.module.scss.js +19 -25
  128. package/dist/components/Input/index.cjs +1 -2
  129. package/dist/components/Input/index.d.ts.map +1 -1
  130. package/dist/components/Input/index.js +1 -2
  131. package/dist/components/Link/Link.module.scss.cjs +10 -10
  132. package/dist/components/Link/Link.module.scss.js +10 -10
  133. package/dist/components/List/List.module.scss.cjs +19 -19
  134. package/dist/components/List/List.module.scss.js +19 -19
  135. package/dist/components/List/index.cjs +4 -7
  136. package/dist/components/List/index.d.ts.map +1 -1
  137. package/dist/components/List/index.js +4 -7
  138. package/dist/components/Listbox/Listbox.module.scss.cjs +9 -9
  139. package/dist/components/Listbox/Listbox.module.scss.js +9 -9
  140. package/dist/components/Loading/Loading.module.scss.cjs +30 -30
  141. package/dist/components/Loading/Loading.module.scss.js +30 -30
  142. package/dist/components/Loading/index.cjs +39 -67
  143. package/dist/components/Loading/index.d.ts +6 -6
  144. package/dist/components/Loading/index.d.ts.map +1 -1
  145. package/dist/components/Loading/index.js +39 -67
  146. package/dist/components/Main/Main.module.scss.cjs +7 -7
  147. package/dist/components/Main/Main.module.scss.js +7 -7
  148. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  149. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  150. package/dist/components/Menu/Menu.module.scss.cjs +16 -16
  151. package/dist/components/Menu/Menu.module.scss.js +16 -16
  152. package/dist/components/Menu/index.cjs +19 -61
  153. package/dist/components/Menu/index.d.ts +10 -10
  154. package/dist/components/Menu/index.d.ts.map +1 -1
  155. package/dist/components/Menu/index.js +19 -61
  156. package/dist/components/Message/Message.module.scss.cjs +18 -21
  157. package/dist/components/Message/Message.module.scss.js +18 -21
  158. package/dist/components/Message/index.cjs +15 -2
  159. package/dist/components/Message/index.d.ts.map +1 -1
  160. package/dist/components/Message/index.js +15 -2
  161. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
  162. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
  163. package/dist/components/Pagination/Pagination.module.scss.cjs +18 -9
  164. package/dist/components/Pagination/Pagination.module.scss.js +19 -10
  165. package/dist/components/Pagination/index.cjs +5 -2
  166. package/dist/components/Pagination/index.d.ts +3 -1
  167. package/dist/components/Pagination/index.d.ts.map +1 -1
  168. package/dist/components/Pagination/index.js +5 -2
  169. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  170. package/dist/components/Popover/Popover.module.scss.js +10 -10
  171. package/dist/components/Progress/Progress.module.scss.cjs +29 -32
  172. package/dist/components/Progress/Progress.module.scss.js +29 -32
  173. package/dist/components/Progress/geometry.cjs +30 -0
  174. package/dist/components/Progress/geometry.d.ts +8 -0
  175. package/dist/components/Progress/geometry.d.ts.map +1 -0
  176. package/dist/components/Progress/geometry.js +30 -0
  177. package/dist/components/Progress/index.cjs +40 -29
  178. package/dist/components/Progress/index.d.ts +4 -3
  179. package/dist/components/Progress/index.d.ts.map +1 -1
  180. package/dist/components/Progress/index.js +40 -29
  181. package/dist/components/Prompt/Prompt.module.scss.cjs +29 -29
  182. package/dist/components/Prompt/Prompt.module.scss.js +29 -29
  183. package/dist/components/Prompt/index.cjs +5 -4
  184. package/dist/components/Prompt/index.d.ts.map +1 -1
  185. package/dist/components/Prompt/index.js +5 -4
  186. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +15 -21
  187. package/dist/components/RadioGroup/RadioGroup.module.scss.js +15 -21
  188. package/dist/components/RadioGroup/index.cjs +7 -6
  189. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  190. package/dist/components/RadioGroup/index.js +7 -6
  191. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +7 -22
  192. package/dist/components/ScrollArea/ScrollArea.module.scss.js +7 -22
  193. package/dist/components/ScrollArea/index.cjs +66 -42
  194. package/dist/components/ScrollArea/index.d.ts +3 -2
  195. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  196. package/dist/components/ScrollArea/index.js +66 -42
  197. package/dist/components/ScrollArea/scroll-state.cjs +58 -0
  198. package/dist/components/ScrollArea/scroll-state.d.ts +16 -0
  199. package/dist/components/ScrollArea/scroll-state.d.ts.map +1 -0
  200. package/dist/components/ScrollArea/scroll-state.js +58 -0
  201. package/dist/components/Select/Select.module.scss.cjs +21 -21
  202. package/dist/components/Select/Select.module.scss.js +21 -21
  203. package/dist/components/Select/index.cjs +3 -2
  204. package/dist/components/Select/index.d.ts.map +1 -1
  205. package/dist/components/Select/index.js +3 -2
  206. package/dist/components/Separator/Separator.module.scss.cjs +13 -10
  207. package/dist/components/Separator/Separator.module.scss.js +13 -10
  208. package/dist/components/Separator/index.cjs +37 -38
  209. package/dist/components/Separator/index.d.ts +4 -4
  210. package/dist/components/Separator/index.d.ts.map +1 -1
  211. package/dist/components/Separator/index.js +37 -38
  212. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  213. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  214. package/dist/components/Sidebar/index.cjs +5 -3
  215. package/dist/components/Sidebar/index.d.ts +6 -1
  216. package/dist/components/Sidebar/index.d.ts.map +1 -1
  217. package/dist/components/Sidebar/index.js +5 -3
  218. package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -38
  219. package/dist/components/Skeleton/Skeleton.module.scss.js +50 -38
  220. package/dist/components/Skeleton/index.cjs +41 -55
  221. package/dist/components/Skeleton/index.d.ts +7 -7
  222. package/dist/components/Skeleton/index.d.ts.map +1 -1
  223. package/dist/components/Skeleton/index.js +41 -55
  224. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  225. package/dist/components/Slider/Slider.module.scss.js +12 -12
  226. package/dist/components/Stack/Stack.module.scss.cjs +25 -45
  227. package/dist/components/Stack/Stack.module.scss.js +25 -45
  228. package/dist/components/Stack/index.cjs +106 -101
  229. package/dist/components/Stack/index.d.ts +7 -7
  230. package/dist/components/Stack/index.d.ts.map +1 -1
  231. package/dist/components/Stack/index.js +106 -101
  232. package/dist/components/Switch/Switch.module.scss.cjs +32 -0
  233. package/dist/components/Switch/Switch.module.scss.js +32 -0
  234. package/dist/components/{Toggle → Switch}/index.cjs +9 -14
  235. package/dist/components/Switch/index.d.ts +37 -1
  236. package/dist/components/Switch/index.d.ts.map +1 -1
  237. package/dist/components/{Toggle → Switch}/index.js +5 -10
  238. package/dist/components/Table/Table.module.scss.cjs +18 -27
  239. package/dist/components/Table/Table.module.scss.js +18 -27
  240. package/dist/components/Table/index.d.ts +6 -5
  241. package/dist/components/Table/index.d.ts.map +1 -1
  242. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  243. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  244. package/dist/components/Tabs/Tabs.module.scss.cjs +12 -12
  245. package/dist/components/Tabs/Tabs.module.scss.js +12 -12
  246. package/dist/components/Tabs/index.cjs +2 -2
  247. package/dist/components/Tabs/index.js +2 -2
  248. package/dist/components/Text/Text.module.scss.cjs +93 -57
  249. package/dist/components/Text/Text.module.scss.js +93 -57
  250. package/dist/components/Text/index.cjs +14 -6
  251. package/dist/components/Text/index.d.ts +25 -15
  252. package/dist/components/Text/index.d.ts.map +1 -1
  253. package/dist/components/Text/index.js +14 -6
  254. package/dist/components/Textarea/Textarea.module.scss.cjs +26 -23
  255. package/dist/components/Textarea/Textarea.module.scss.js +26 -23
  256. package/dist/components/Textarea/index.cjs +5 -10
  257. package/dist/components/Textarea/index.d.ts.map +1 -1
  258. package/dist/components/Textarea/index.js +5 -10
  259. package/dist/components/Theme/context.cjs +39 -0
  260. package/dist/components/Theme/context.d.ts +21 -0
  261. package/dist/components/Theme/context.d.ts.map +1 -0
  262. package/dist/components/Theme/context.js +22 -0
  263. package/dist/components/Theme/index.cjs +14 -209
  264. package/dist/components/Theme/index.d.ts +4 -37
  265. package/dist/components/Theme/index.d.ts.map +1 -1
  266. package/dist/components/Theme/index.js +9 -204
  267. package/dist/components/{Theme → ThemeToggle}/ThemeToggle.module.scss.cjs +6 -6
  268. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +23 -0
  269. package/dist/components/ThemeToggle/index.cjs +115 -0
  270. package/dist/components/ThemeToggle/index.d.ts +21 -0
  271. package/dist/components/ThemeToggle/index.d.ts.map +1 -0
  272. package/dist/components/ThemeToggle/index.js +115 -0
  273. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
  274. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
  275. package/dist/components/ThinkingIndicator/index.cjs +34 -41
  276. package/dist/components/ThinkingIndicator/index.d.ts +4 -4
  277. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  278. package/dist/components/ThinkingIndicator/index.js +34 -41
  279. package/dist/components/Toast/Toast.module.scss.cjs +20 -20
  280. package/dist/components/Toast/Toast.module.scss.js +20 -20
  281. package/dist/components/Toggle/index.d.ts +2 -42
  282. package/dist/components/Toggle/index.d.ts.map +1 -1
  283. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +20 -20
  284. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +20 -20
  285. package/dist/components/ToggleGroup/index.cjs +3 -2
  286. package/dist/components/ToggleGroup/index.d.ts +2 -1
  287. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  288. package/dist/components/ToggleGroup/index.js +3 -2
  289. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  290. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  291. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  292. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  293. package/dist/data-table.cjs +12 -9
  294. package/dist/data-table.js +12 -9
  295. package/dist/datepicker.cjs +2 -1
  296. package/dist/datepicker.js +2 -1
  297. package/dist/index.cjs +100 -98
  298. package/dist/index.d.ts +2 -2
  299. package/dist/index.d.ts.map +1 -1
  300. package/dist/index.js +4 -2
  301. package/dist/markdown.cjs +1 -1
  302. package/dist/markdown.js +2 -2
  303. package/dist/measurements/generated.cjs +296 -0
  304. package/dist/measurements/generated.d.ts +261 -0
  305. package/dist/measurements/generated.d.ts.map +1 -0
  306. package/dist/measurements/generated.js +296 -0
  307. package/dist/measurements/index.d.ts +2 -0
  308. package/dist/measurements/index.d.ts.map +1 -0
  309. package/dist/measurements.cjs +6 -0
  310. package/dist/measurements.js +6 -0
  311. package/dist/recipes/popup.cjs +14 -0
  312. package/dist/recipes/popup.d.ts +4 -0
  313. package/dist/recipes/popup.d.ts.map +1 -0
  314. package/dist/recipes/popup.js +14 -0
  315. package/dist/recipes/table-chrome.cjs +18 -0
  316. package/dist/recipes/table-chrome.d.ts +10 -0
  317. package/dist/recipes/table-chrome.d.ts.map +1 -0
  318. package/dist/recipes/table-chrome.js +18 -0
  319. package/dist/table.cjs +5 -2
  320. package/dist/table.js +5 -2
  321. package/dist/utils/layout-spacing.cjs +27 -0
  322. package/dist/utils/layout-spacing.d.ts +5 -0
  323. package/dist/utils/layout-spacing.d.ts.map +1 -0
  324. package/dist/utils/layout-spacing.js +27 -0
  325. package/dist/utils/seed-derivation.cjs +4 -42
  326. package/dist/utils/seed-derivation.d.ts +4 -3
  327. package/dist/utils/seed-derivation.d.ts.map +1 -1
  328. package/dist/utils/seed-derivation.js +4 -42
  329. package/dist/utils/theme-presets.cjs +1 -0
  330. package/dist/utils/theme-presets.d.ts +3 -2
  331. package/dist/utils/theme-presets.d.ts.map +1 -1
  332. package/dist/utils/theme-presets.js +1 -0
  333. package/fragments.json +1 -1
  334. package/package.json +23 -4
  335. package/src/components/Accordion/Accordion.module.scss +31 -52
  336. package/src/components/Alert/Alert.module.scss +28 -44
  337. package/src/components/AppShell/AppShell.module.scss +6 -3
  338. package/src/components/AppShell/index.tsx +8 -4
  339. package/src/components/Avatar/Avatar.module.scss +22 -60
  340. package/src/components/Avatar/index.tsx +152 -146
  341. package/src/components/Badge/Badge.module.scss +51 -46
  342. package/src/components/BentoGrid/BentoGrid.module.scss +11 -32
  343. package/src/components/Box/Box.module.scss +253 -81
  344. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +10 -11
  345. package/src/components/Button/Button.module.scss +52 -57
  346. package/src/components/ButtonGroup/ButtonGroup.module.scss +5 -5
  347. package/src/components/Card/Card.consumer-fixture.module.scss +8 -0
  348. package/src/components/Card/Card.module.scss +211 -175
  349. package/src/components/Chart/Chart.module.scss +28 -29
  350. package/src/components/Chart/index.tsx +40 -53
  351. package/src/components/Checkbox/Checkbox.module.scss +43 -64
  352. package/src/components/Checkbox/index.tsx +4 -9
  353. package/src/components/Chip/Chip.contract.json +4 -3
  354. package/src/components/Chip/Chip.module.scss +23 -34
  355. package/src/components/Chip/index.tsx +3 -4
  356. package/src/components/CodeBlock/CodeBlock.module.scss +102 -215
  357. package/src/components/Collapsible/Collapsible.module.scss +29 -63
  358. package/src/components/Collapsible/index.tsx +22 -26
  359. package/src/components/ColorPicker/ColorPicker.module.scss +42 -24
  360. package/src/components/ColorPicker/index.tsx +2 -1
  361. package/src/components/Combobox/Combobox.module.scss +60 -73
  362. package/src/components/Combobox/index.tsx +7 -5
  363. package/src/components/Command/Command.module.scss +47 -77
  364. package/src/components/ConversationList/ConversationList.module.scss +20 -78
  365. package/src/components/ConversationList/index.tsx +55 -59
  366. package/src/components/DataTable/DataTable.module.scss +76 -216
  367. package/src/components/DataTable/index.tsx +20 -25
  368. package/src/components/DatePicker/DatePicker.module.scss +54 -33
  369. package/src/components/DatePicker/index.tsx +2 -1
  370. package/src/components/Dialog/Dialog.module.scss +42 -66
  371. package/src/components/Drawer/Drawer.module.scss +93 -99
  372. package/src/components/Drawer/index.tsx +1 -1
  373. package/src/components/Editor/Editor.module.scss +115 -220
  374. package/src/components/EmptyState/EmptyState.module.scss +38 -85
  375. package/src/components/Field/Field.contract.json +2 -1
  376. package/src/components/Field/Field.module.scss +9 -11
  377. package/src/components/Field/index.tsx +27 -1
  378. package/src/components/Fieldset/Fieldset.module.scss +14 -6
  379. package/src/components/Form/Form.contract.json +10 -23
  380. package/src/components/Form/Form.module.scss +9 -4
  381. package/src/components/Form/index.tsx +22 -7
  382. package/src/components/Grid/Grid.module.scss +159 -63
  383. package/src/components/Grid/index.tsx +107 -126
  384. package/src/components/Header/Header.module.scss +25 -32
  385. package/src/components/Header/index.tsx +2 -1
  386. package/src/components/Icon/Icon.module.scss +16 -0
  387. package/src/components/Icon/index.tsx +74 -86
  388. package/src/components/IconButton/IconButton.module.scss +11 -21
  389. package/src/components/Input/Input.module.scss +67 -55
  390. package/src/components/Input/index.tsx +1 -2
  391. package/src/components/Link/Link.module.scss +8 -9
  392. package/src/components/List/List.module.scss +16 -21
  393. package/src/components/List/index.tsx +4 -10
  394. package/src/components/Listbox/Listbox.module.scss +26 -54
  395. package/src/components/Loading/Loading.module.scss +23 -33
  396. package/src/components/Loading/index.tsx +68 -97
  397. package/src/components/Main/Main.module.scss +3 -5
  398. package/src/components/Markdown/Markdown.module.scss +36 -184
  399. package/src/components/Markdown/index.tsx +2 -2
  400. package/src/components/Menu/Menu.module.scss +48 -133
  401. package/src/components/Menu/index.tsx +57 -89
  402. package/src/components/Message/Message.module.scss +52 -142
  403. package/src/components/Message/index.tsx +16 -6
  404. package/src/components/NavigationMenu/NavigationMenu.module.scss +59 -52
  405. package/src/components/Pagination/Pagination.module.scss +32 -25
  406. package/src/components/Pagination/index.tsx +7 -2
  407. package/src/components/Popover/Popover.module.scss +37 -73
  408. package/src/components/Progress/Progress.module.scss +61 -41
  409. package/src/components/Progress/geometry.ts +41 -0
  410. package/src/components/Progress/index.tsx +44 -30
  411. package/src/components/Prompt/Prompt.module.scss +45 -82
  412. package/src/components/Prompt/index.tsx +6 -5
  413. package/src/components/RadioGroup/RadioGroup.module.scss +50 -69
  414. package/src/components/RadioGroup/index.tsx +7 -9
  415. package/src/components/ScrollArea/ScrollArea.contract.json +8 -24
  416. package/src/components/ScrollArea/ScrollArea.module.scss +122 -96
  417. package/src/components/ScrollArea/index.tsx +78 -60
  418. package/src/components/ScrollArea/scroll-state.ts +87 -0
  419. package/src/components/Select/Select.module.scss +53 -41
  420. package/src/components/Select/index.tsx +6 -2
  421. package/src/components/Separator/Separator.module.scss +29 -19
  422. package/src/components/Separator/index.tsx +55 -51
  423. package/src/components/Sidebar/Sidebar.contract.json +12 -0
  424. package/src/components/Sidebar/Sidebar.module.scss +101 -99
  425. package/src/components/Sidebar/index.tsx +10 -3
  426. package/src/components/Skeleton/Skeleton.module.scss +26 -26
  427. package/src/components/Skeleton/index.tsx +65 -72
  428. package/src/components/Slider/Slider.module.scss +31 -25
  429. package/src/components/Stack/Stack.module.scss +101 -30
  430. package/src/components/Stack/index.tsx +157 -127
  431. package/src/components/{Toggle/Toggle.contract.json → Switch/Switch.contract.json} +1 -1
  432. package/src/components/{Toggle/Toggle.module.scss → Switch/Switch.module.scss} +55 -82
  433. package/src/components/{Toggle → Switch}/index.tsx +5 -21
  434. package/src/components/Table/Table.module.scss +38 -129
  435. package/src/components/Table/index.tsx +13 -6
  436. package/src/components/TableOfContents/TableOfContents.module.scss +20 -177
  437. package/src/components/Tabs/Tabs.module.scss +27 -22
  438. package/src/components/Tabs/index.tsx +2 -2
  439. package/src/components/Text/Text.module.scss +22 -3
  440. package/src/components/Text/index.tsx +56 -21
  441. package/src/components/Textarea/Textarea.module.scss +59 -39
  442. package/src/components/Textarea/index.tsx +5 -12
  443. package/src/components/Theme/context.ts +42 -0
  444. package/src/components/Theme/index.tsx +14 -309
  445. package/src/components/ThemeToggle/ThemeToggle.module.scss +73 -0
  446. package/src/components/ThemeToggle/index.tsx +144 -0
  447. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +24 -19
  448. package/src/components/ThinkingIndicator/index.tsx +44 -54
  449. package/src/components/Toast/Toast.contract.json +5 -21
  450. package/src/components/Toast/Toast.module.scss +61 -138
  451. package/src/components/Toggle/index.ts +7 -0
  452. package/src/components/ToggleGroup/ToggleGroup.contract.json +12 -39
  453. package/src/components/ToggleGroup/ToggleGroup.module.scss +132 -88
  454. package/src/components/ToggleGroup/index.tsx +5 -3
  455. package/src/components/Tooltip/Tooltip.module.scss +23 -39
  456. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +3 -0
  457. package/src/index.ts +2 -1
  458. package/src/measurements/MeasurementTargets.module.scss +229 -0
  459. package/src/measurements/generated.ts +317 -0
  460. package/src/measurements/index.ts +8 -0
  461. package/src/measurements/measurements.json +361 -0
  462. package/src/recipes/_action.scss +138 -0
  463. package/src/recipes/_boolean-range.scss +124 -0
  464. package/src/recipes/_feedback.scss +171 -0
  465. package/src/recipes/_field.scss +98 -0
  466. package/src/recipes/_layout.scss +67 -0
  467. package/src/recipes/_navigation.scss +110 -0
  468. package/src/recipes/_overlay.scss +191 -0
  469. package/src/recipes/_popup.scss +92 -0
  470. package/src/recipes/_prose.scss +174 -0
  471. package/src/recipes/_representation.scss +193 -0
  472. package/src/recipes/_segmented.scss +26 -0
  473. package/src/recipes/_surface.scss +13 -0
  474. package/src/recipes/_table-chrome.scss +105 -0
  475. package/src/recipes/_target.scss +31 -0
  476. package/src/recipes/_typography.scss +38 -0
  477. package/src/recipes/popup.ts +12 -0
  478. package/src/recipes/table-chrome.ts +30 -0
  479. package/src/styles/globals.scss +2 -2
  480. package/src/tokens/_component-properties.scss +2 -2
  481. package/src/tokens/_computed.scss +9 -9
  482. package/src/tokens/_density.scss +41 -132
  483. package/src/tokens/_measurements.catalog.generated.css +91 -0
  484. package/src/tokens/_measurements.generated.scss +604 -0
  485. package/src/tokens/_mixins.scss +0 -276
  486. package/src/tokens/_property-registrations.scss +96 -92
  487. package/src/tokens/_radius.scss +16 -70
  488. package/src/tokens/_seeds.scss +8 -7
  489. package/src/tokens/_variables.scss +163 -148
  490. package/src/utils/layout-spacing.ts +31 -0
  491. package/src/utils/seed-derivation.ts +134 -172
  492. package/src/utils/theme-presets.ts +58 -30
  493. package/dist/components/Theme/ThemeToggle.module.scss.js +0 -23
  494. package/dist/components/Toggle/Toggle.module.scss.cjs +0 -44
  495. package/dist/components/Toggle/Toggle.module.scss.js +0 -44
  496. package/src/components/Switch/index.ts +0 -3
  497. package/src/components/Theme/ThemeToggle.module.scss +0 -91
@@ -0,0 +1,229 @@
1
+ @use "../recipes/typography";
2
+ @use "../tokens/measurements.generated" as measurements;
3
+ @use "../tokens/variables" as tokens;
4
+
5
+ .lineup {
6
+ display: grid;
7
+ gap: var(--fui-raw-space-24, #{measurements.raw-space("24")});
8
+ min-inline-size: 0;
9
+ padding: var(--fui-raw-space-24, #{measurements.raw-space("24")});
10
+ color: var(--fui-text-primary, #{tokens.$fui-text-primary});
11
+ background: var(--fui-bg-primary, #{tokens.$fui-bg-primary});
12
+ }
13
+
14
+ .header,
15
+ .section,
16
+ .specimenList,
17
+ .specimenRow,
18
+ .typographySpecimen {
19
+ display: grid;
20
+ min-inline-size: 0;
21
+ }
22
+
23
+ .header {
24
+ gap: var(--fui-raw-space-8, #{measurements.raw-space("8")});
25
+ }
26
+
27
+ .eyebrow,
28
+ .specimenName {
29
+ @include typography.role("ui-compact");
30
+ }
31
+
32
+ .eyebrow {
33
+ margin: 0;
34
+ color: var(--fui-text-tertiary, #{tokens.$fui-text-tertiary});
35
+ text-transform: uppercase;
36
+ }
37
+
38
+ .title {
39
+ @include typography.role("title-lg");
40
+
41
+ margin: 0;
42
+ }
43
+
44
+ .description {
45
+ @include typography.role("body-compact");
46
+
47
+ margin: 0;
48
+ color: var(--fui-text-secondary, #{tokens.$fui-text-secondary});
49
+ }
50
+
51
+ .context {
52
+ display: flex;
53
+ flex-wrap: wrap;
54
+ gap: var(--fui-raw-space-8, #{measurements.raw-space("8")});
55
+ }
56
+
57
+ .contextValue,
58
+ .specimenValue {
59
+ @include typography.role("code");
60
+ }
61
+
62
+ .contextValue {
63
+ padding: var(--fui-raw-space-4, #{measurements.raw-space("4")})
64
+ var(--fui-raw-space-8, #{measurements.raw-space("8")});
65
+ border-radius: var(--fui-radius-sm, #{tokens.$fui-radius-sm});
66
+ color: var(--fui-text-secondary, #{tokens.$fui-text-secondary});
67
+ background: var(--fui-bg-tertiary, #{tokens.$fui-bg-tertiary});
68
+ }
69
+
70
+ .section {
71
+ gap: var(--fui-raw-space-16, #{measurements.raw-space("16")});
72
+ padding: var(--fui-raw-space-16, #{measurements.raw-space("16")});
73
+ border-radius: var(--fui-radius-lg, #{tokens.$fui-radius-lg});
74
+ background: var(--fui-bg-secondary, #{tokens.$fui-bg-secondary});
75
+ box-shadow: var(--fui-shadow-sm, #{tokens.$fui-shadow-sm});
76
+ }
77
+
78
+ .sectionTitle {
79
+ @include typography.role("title-sm");
80
+
81
+ margin: 0;
82
+ }
83
+
84
+ .specimenList {
85
+ gap: var(--fui-raw-space-12, #{measurements.raw-space("12")});
86
+ }
87
+
88
+ .specimenRow {
89
+ gap: var(--fui-raw-space-8, #{measurements.raw-space("8")});
90
+ }
91
+
92
+ .specimenMeta {
93
+ display: flex;
94
+ flex-wrap: wrap;
95
+ align-items: baseline;
96
+ justify-content: space-between;
97
+ gap: var(--fui-raw-space-12, #{measurements.raw-space("12")});
98
+ }
99
+
100
+ .specimenName,
101
+ .specimenValue {
102
+ margin: 0;
103
+ }
104
+
105
+ .specimenName {
106
+ color: var(--fui-text-secondary, #{tokens.$fui-text-secondary});
107
+ }
108
+
109
+ .specimenValue {
110
+ min-inline-size: 0;
111
+ overflow-wrap: anywhere;
112
+ color: var(--fui-text-tertiary, #{tokens.$fui-text-tertiary});
113
+ }
114
+
115
+ .controlTrack,
116
+ .fieldTrack {
117
+ box-sizing: border-box;
118
+ display: flex;
119
+ align-items: center;
120
+ min-inline-size: 0;
121
+ overflow: hidden;
122
+ white-space: nowrap;
123
+ }
124
+
125
+ .controlTrack {
126
+ @include typography.role("ui-compact");
127
+
128
+ inline-size: fit-content;
129
+ justify-content: center;
130
+ padding-inline: var(--fui-raw-space-12, #{measurements.raw-space("12")});
131
+ border-radius: var(--fui-radius-md, #{tokens.$fui-radius-md});
132
+ color: var(--fui-color-on-accent, #{tokens.$fui-color-on-accent});
133
+ background: var(--fui-color-accent, #{tokens.$fui-color-accent});
134
+ }
135
+
136
+ .controlTrackMicro {
137
+ block-size: var(--fui-control-track-micro, #{measurements.target-value("controlTrack", "micro")});
138
+ }
139
+
140
+ .controlTrackSm {
141
+ block-size: var(--fui-control-track-sm, #{measurements.target-value("controlTrack", "sm")});
142
+ }
143
+
144
+ .controlTrackMd {
145
+ block-size: var(--fui-control-track-md, #{measurements.target-value("controlTrack", "md")});
146
+ }
147
+
148
+ .controlTrackLg {
149
+ block-size: var(--fui-control-track-lg, #{measurements.target-value("controlTrack", "lg")});
150
+ }
151
+
152
+ .fieldTrack {
153
+ @include typography.role("ui-standard");
154
+
155
+ inline-size: 100%;
156
+ border-radius: var(--fui-radius-md, #{tokens.$fui-radius-md});
157
+ color: var(--fui-text-secondary, #{tokens.$fui-text-secondary});
158
+ background: var(--fui-bg-elevated, #{tokens.$fui-bg-elevated});
159
+ }
160
+
161
+ .fieldTrackSm {
162
+ block-size: var(--fui-field-track-sm, #{measurements.target-value("fieldTrack", "sm")});
163
+ padding-inline: var(
164
+ --fui-field-inline-inset-sm,
165
+ #{measurements.target-value("fieldInlineInset", "sm")}
166
+ );
167
+ }
168
+
169
+ .fieldTrackMd {
170
+ block-size: var(--fui-field-track-md, #{measurements.target-value("fieldTrack", "md")});
171
+ padding-inline: var(
172
+ --fui-field-inline-inset-md,
173
+ #{measurements.target-value("fieldInlineInset", "md")}
174
+ );
175
+ }
176
+
177
+ .fieldTrackLg {
178
+ block-size: var(--fui-field-track-lg, #{measurements.target-value("fieldTrack", "lg")});
179
+ padding-inline: var(
180
+ --fui-field-inline-inset-lg,
181
+ #{measurements.target-value("fieldInlineInset", "lg")}
182
+ );
183
+ }
184
+
185
+ .typographySpecimen {
186
+ gap: var(--fui-raw-space-4, #{measurements.raw-space("4")});
187
+ padding-block: var(--fui-raw-space-4, #{measurements.raw-space("4")});
188
+ }
189
+
190
+ .typographySample {
191
+ margin: 0;
192
+ overflow-wrap: anywhere;
193
+ }
194
+
195
+ .caption {
196
+ @include typography.role("caption");
197
+ }
198
+
199
+ .uiCompact {
200
+ @include typography.role("ui-compact");
201
+ }
202
+
203
+ .uiStandard {
204
+ @include typography.role("ui-standard");
205
+ }
206
+
207
+ .bodyCompact {
208
+ @include typography.role("body-compact");
209
+ }
210
+
211
+ .bodyRelaxed {
212
+ @include typography.role("body-relaxed");
213
+ }
214
+
215
+ .titleSm {
216
+ @include typography.role("title-sm");
217
+ }
218
+
219
+ .titleMd {
220
+ @include typography.role("title-md");
221
+ }
222
+
223
+ .titleLg {
224
+ @include typography.role("title-lg");
225
+ }
226
+
227
+ .code {
228
+ @include typography.role("code");
229
+ }
@@ -0,0 +1,317 @@
1
+ // This file is generated by scripts/generate-measurements.mjs. Do not edit.
2
+ // Source SHA-256: 1e8a256c12eaf2f8f4a2a5c4ed25477bf303b56dc2184ac3e29dec71207853bd
3
+
4
+ export const MEASUREMENT_PROFILES = {
5
+ density: {
6
+ compact: {
7
+ baseUnit: "6px",
8
+ baseFontSize: "14px",
9
+ spacingMultipliers: {
10
+ "1": 1,
11
+ "2": 2,
12
+ "3": 3,
13
+ "4": 4,
14
+ "5": 5,
15
+ "6": 6,
16
+ "8": 8,
17
+ "10": 10,
18
+ "12": 12,
19
+ px: "1px",
20
+ "0-5": 0.3,
21
+ "0-75": 0.43,
22
+ },
23
+ controlHeight: {
24
+ xs: "32px",
25
+ sm: "32px",
26
+ md: "32px",
27
+ lg: "36px",
28
+ },
29
+ touch: {
30
+ sm: "32px",
31
+ md: "32px",
32
+ lg: "40px",
33
+ },
34
+ sidebarItemHeight: "32px",
35
+ },
36
+ default: {
37
+ baseUnit: "7px",
38
+ baseFontSize: "14px",
39
+ spacingMultipliers: {
40
+ "1": 1,
41
+ "2": 2,
42
+ "3": 3,
43
+ "4": 4,
44
+ "5": 5,
45
+ "6": 6,
46
+ "8": 8,
47
+ "10": 10,
48
+ "12": 12,
49
+ px: "1px",
50
+ "0-5": 0.3,
51
+ "0-75": 0.43,
52
+ },
53
+ controlHeight: {
54
+ xs: "32px",
55
+ sm: "32px",
56
+ md: "40px",
57
+ lg: "44px",
58
+ },
59
+ touch: {
60
+ sm: "32px",
61
+ md: "32px",
62
+ lg: "44px",
63
+ },
64
+ sidebarItemHeight: "32px",
65
+ },
66
+ relaxed: {
67
+ baseUnit: "8px",
68
+ baseFontSize: "14px",
69
+ spacingMultipliers: {
70
+ "1": 1,
71
+ "2": 2,
72
+ "3": 3,
73
+ "4": 4,
74
+ "5": 5,
75
+ "6": 6,
76
+ "8": 8,
77
+ "10": 10,
78
+ "12": 12,
79
+ px: "1px",
80
+ "0-5": 0.3,
81
+ "0-75": 0.43,
82
+ },
83
+ controlHeight: {
84
+ xs: "32px",
85
+ sm: "32px",
86
+ md: "44px",
87
+ lg: "48px",
88
+ },
89
+ touch: {
90
+ sm: "32px",
91
+ md: "40px",
92
+ lg: "48px",
93
+ },
94
+ sidebarItemHeight: "36px",
95
+ },
96
+ },
97
+ radius: {
98
+ sharp: {
99
+ sm: "0",
100
+ md: "0",
101
+ lg: "0",
102
+ xl: "0",
103
+ },
104
+ subtle: {
105
+ sm: "0.125rem",
106
+ md: "0.25rem",
107
+ lg: "0.375rem",
108
+ xl: "0.5rem",
109
+ },
110
+ default: {
111
+ sm: "0.25rem",
112
+ md: "0.429rem",
113
+ lg: "0.571rem",
114
+ xl: "0.857rem",
115
+ },
116
+ rounded: {
117
+ sm: "0.375rem",
118
+ md: "0.5rem",
119
+ lg: "0.75rem",
120
+ xl: "1rem",
121
+ },
122
+ pill: {
123
+ sm: "0.5rem",
124
+ md: "0.75rem",
125
+ lg: "1rem",
126
+ xl: "1.5rem",
127
+ },
128
+ },
129
+ rawSpace: {
130
+ "0": "0",
131
+ "2": "2px",
132
+ "4": "4px",
133
+ "6": "6px",
134
+ "8": "8px",
135
+ "10": "10px",
136
+ "12": "12px",
137
+ "16": "16px",
138
+ "20": "20px",
139
+ "24": "24px",
140
+ "32": "32px",
141
+ "40": "40px",
142
+ "48": "48px",
143
+ "64": "64px",
144
+ },
145
+ targets: {
146
+ controlTrack: {
147
+ micro: "24px",
148
+ sm: "28px",
149
+ md: "32px",
150
+ lg: "40px",
151
+ },
152
+ fieldTrack: {
153
+ sm: "28px",
154
+ md: "32px",
155
+ lg: "40px",
156
+ },
157
+ fieldInlineInset: {
158
+ sm: "10px",
159
+ md: "12px",
160
+ lg: "16px",
161
+ },
162
+ surfaceInset: {
163
+ panel: "0",
164
+ compact: "12px",
165
+ default: "16px",
166
+ roomy: "24px",
167
+ },
168
+ icon: {
169
+ xs: "12px",
170
+ sm: "14px",
171
+ md: "16px",
172
+ lg: "20px",
173
+ xl: "24px",
174
+ "2xl": "32px",
175
+ },
176
+ stroke: {
177
+ hairline: "1px",
178
+ default: "2px",
179
+ strong: "3px",
180
+ },
181
+ layoutMeasure: {
182
+ "field-minimum": "140px",
183
+ "inline-floor": "56px",
184
+ "compact-content": "168px",
185
+ "grid-cell": "224px",
186
+ "composer-item": "210px",
187
+ "page-narrow": "800px",
188
+ },
189
+ },
190
+ typography: {
191
+ caption: {
192
+ size: "12px",
193
+ line: "16px",
194
+ weight: 400,
195
+ tracking: "0",
196
+ },
197
+ "ui-compact": {
198
+ size: "12px",
199
+ line: "16px",
200
+ weight: 500,
201
+ tracking: "-0.01em",
202
+ },
203
+ "ui-standard": {
204
+ size: "14px",
205
+ line: "20px",
206
+ weight: 500,
207
+ tracking: "-0.01em",
208
+ },
209
+ "body-compact": {
210
+ size: "14px",
211
+ line: "20px",
212
+ weight: 400,
213
+ tracking: "0",
214
+ },
215
+ "body-relaxed": {
216
+ size: "16px",
217
+ line: "24px",
218
+ weight: 400,
219
+ tracking: "0",
220
+ },
221
+ "title-sm": {
222
+ size: "16px",
223
+ line: "24px",
224
+ weight: 600,
225
+ tracking: "-0.01em",
226
+ },
227
+ "title-md": {
228
+ size: "20px",
229
+ line: "28px",
230
+ weight: 600,
231
+ tracking: "-0.02em",
232
+ },
233
+ "title-lg": {
234
+ size: "24px",
235
+ line: "32px",
236
+ weight: 600,
237
+ tracking: "-0.02em",
238
+ },
239
+ code: {
240
+ size: "14px",
241
+ line: "20px",
242
+ weight: 400,
243
+ tracking: "0",
244
+ },
245
+ },
246
+ navigation: {
247
+ appShellHeaderHeight: "56px",
248
+ sidebarGutter: "8px",
249
+ sidebarLeadingBox: "16px",
250
+ sidebarDot: "6px",
251
+ sidebarRail: "2px",
252
+ sidebarLabelOffset: "1px",
253
+ sidebarCollapsedWidth: "56px",
254
+ },
255
+ } as const;
256
+
257
+ export type MeasurementDensity = keyof typeof MEASUREMENT_PROFILES.density;
258
+ export type MeasurementRadiusStyle = keyof typeof MEASUREMENT_PROFILES.radius;
259
+
260
+ export type MeasurementSelection = Readonly<{
261
+ density?: MeasurementDensity;
262
+ radiusStyle?: MeasurementRadiusStyle;
263
+ }>;
264
+
265
+ export function measurementPx(value: string, path = "measurement"): number {
266
+ const match = /^([0-9]+(?:\.[0-9]+)?)px$/.exec(value);
267
+ const pixels = match === null ? Number.NaN : Number(match[1]);
268
+ if (!Number.isFinite(pixels)) {
269
+ throw new TypeError(
270
+ path + " must be a finite non-negative px length; received " + JSON.stringify(value)
271
+ );
272
+ }
273
+ return pixels;
274
+ }
275
+
276
+ type MeasurementAttribute = "data-fui-density" | "data-fui-radius-style";
277
+
278
+ function setRestorableAttribute(
279
+ element: HTMLElement,
280
+ attribute: MeasurementAttribute,
281
+ value: string
282
+ ): () => void {
283
+ const hadAttribute = element.hasAttribute(attribute);
284
+ const previousValue = element.getAttribute(attribute);
285
+ element.setAttribute(attribute, value);
286
+
287
+ return () => {
288
+ if (hadAttribute) {
289
+ element.setAttribute(attribute, previousValue ?? "");
290
+ } else {
291
+ element.removeAttribute(attribute);
292
+ }
293
+ };
294
+ }
295
+
296
+ export function applyMeasurementSelection(
297
+ element: HTMLElement,
298
+ selection: MeasurementSelection
299
+ ): () => void {
300
+ const restore: Array<() => void> = [];
301
+
302
+ if (selection.density !== undefined) {
303
+ restore.push(setRestorableAttribute(element, "data-fui-density", selection.density));
304
+ }
305
+ if (selection.radiusStyle !== undefined) {
306
+ restore.push(setRestorableAttribute(element, "data-fui-radius-style", selection.radiusStyle));
307
+ }
308
+
309
+ let cleaned = false;
310
+ return () => {
311
+ if (cleaned) return;
312
+ cleaned = true;
313
+ for (let index = restore.length - 1; index >= 0; index -= 1) {
314
+ restore[index]();
315
+ }
316
+ };
317
+ }
@@ -0,0 +1,8 @@
1
+ export {
2
+ MEASUREMENT_PROFILES,
3
+ applyMeasurementSelection,
4
+ measurementPx,
5
+ type MeasurementDensity,
6
+ type MeasurementRadiusStyle,
7
+ type MeasurementSelection,
8
+ } from "./generated";