@usefragments/ui 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (685) hide show
  1. package/README.md +54 -66
  2. package/dist/assets/fragments-wordmark.cjs +2 -2
  3. package/dist/assets/fragments-wordmark.d.ts.map +1 -1
  4. package/dist/assets/fragments-wordmark.js +2 -2
  5. package/dist/assets/nav-glyph.cjs +139 -0
  6. package/dist/assets/nav-glyph.d.ts +28 -0
  7. package/dist/assets/nav-glyph.d.ts.map +1 -0
  8. package/dist/assets/nav-glyph.js +139 -0
  9. package/dist/assets/nav-glyph.module.scss.cjs +71 -0
  10. package/dist/assets/nav-glyph.module.scss.js +71 -0
  11. package/dist/assets/ui.css +6885 -6308
  12. package/dist/blocks/components/StatsCard.d.ts +1 -1
  13. package/dist/blocks/components/StatsCard.d.ts.map +1 -1
  14. package/dist/chart.cjs +24 -6
  15. package/dist/chart.js +24 -6
  16. package/dist/codeblock.cjs +76 -43
  17. package/dist/codeblock.js +71 -38
  18. package/dist/colorpicker.cjs +4 -1
  19. package/dist/colorpicker.js +4 -1
  20. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  21. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  22. package/dist/components/Alert/Alert.module.scss.cjs +23 -20
  23. package/dist/components/Alert/Alert.module.scss.js +23 -20
  24. package/dist/components/Alert/index.cjs +20 -8
  25. package/dist/components/Alert/index.d.ts +17 -11
  26. package/dist/components/Alert/index.d.ts.map +1 -1
  27. package/dist/components/Alert/index.js +20 -8
  28. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  29. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  30. package/dist/components/AppShell/index.cjs +2 -2
  31. package/dist/components/AppShell/index.js +2 -2
  32. package/dist/components/Avatar/Avatar.module.scss.cjs +14 -14
  33. package/dist/components/Avatar/Avatar.module.scss.js +14 -14
  34. package/dist/components/Badge/Badge.module.scss.cjs +33 -31
  35. package/dist/components/Badge/Badge.module.scss.js +33 -31
  36. package/dist/components/Badge/index.cjs +13 -3
  37. package/dist/components/Badge/index.d.ts +18 -13
  38. package/dist/components/Badge/index.d.ts.map +1 -1
  39. package/dist/components/Badge/index.js +13 -3
  40. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  41. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  42. package/dist/components/Box/Box.module.scss.cjs +152 -152
  43. package/dist/components/Box/Box.module.scss.js +152 -152
  44. package/dist/components/Box/index.cjs +64 -75
  45. package/dist/components/Box/index.d.ts +16 -16
  46. package/dist/components/Box/index.d.ts.map +1 -1
  47. package/dist/components/Box/index.js +64 -75
  48. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +11 -8
  49. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +11 -8
  50. package/dist/components/Breadcrumbs/index.cjs +1 -1
  51. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  52. package/dist/components/Breadcrumbs/index.js +1 -1
  53. package/dist/components/Button/Button.module.scss.cjs +36 -27
  54. package/dist/components/Button/Button.module.scss.js +36 -27
  55. package/dist/components/Button/index.cjs +20 -4
  56. package/dist/components/Button/index.d.ts +18 -10
  57. package/dist/components/Button/index.d.ts.map +1 -1
  58. package/dist/components/Button/index.js +20 -4
  59. package/dist/components/ButtonGroup/ButtonGroup.module.scss.cjs +15 -15
  60. package/dist/components/ButtonGroup/ButtonGroup.module.scss.js +15 -15
  61. package/dist/components/Card/Card.module.scss.cjs +31 -26
  62. package/dist/components/Card/Card.module.scss.js +32 -27
  63. package/dist/components/Card/index.cjs +16 -3
  64. package/dist/components/Card/index.d.ts +23 -15
  65. package/dist/components/Card/index.d.ts.map +1 -1
  66. package/dist/components/Card/index.js +16 -3
  67. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  68. package/dist/components/Chart/Chart.module.scss.js +15 -15
  69. package/dist/components/Chart/index.d.ts.map +1 -1
  70. package/dist/components/Checkbox/Checkbox.module.scss.cjs +11 -11
  71. package/dist/components/Checkbox/Checkbox.module.scss.js +11 -11
  72. package/dist/components/Checkbox/index.cjs +4 -4
  73. package/dist/components/Checkbox/index.d.ts +4 -6
  74. package/dist/components/Checkbox/index.d.ts.map +1 -1
  75. package/dist/components/Checkbox/index.js +4 -4
  76. package/dist/components/Chip/Chip.module.scss.cjs +19 -19
  77. package/dist/components/Chip/Chip.module.scss.js +19 -19
  78. package/dist/components/Chip/index.cjs +3 -3
  79. package/dist/components/Chip/index.d.ts +8 -3
  80. package/dist/components/Chip/index.d.ts.map +1 -1
  81. package/dist/components/Chip/index.js +3 -3
  82. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +26 -23
  83. package/dist/components/CodeBlock/CodeBlock.module.scss.js +26 -23
  84. package/dist/components/CodeBlock/css-variables-theme.cjs +98 -0
  85. package/dist/components/CodeBlock/css-variables-theme.d.ts +27 -0
  86. package/dist/components/CodeBlock/css-variables-theme.d.ts.map +1 -0
  87. package/dist/components/CodeBlock/css-variables-theme.js +98 -0
  88. package/dist/components/CodeBlock/index.d.ts +20 -5
  89. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  90. package/dist/components/Collapsible/Collapsible.module.scss.cjs +9 -9
  91. package/dist/components/Collapsible/Collapsible.module.scss.js +9 -9
  92. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
  93. package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
  94. package/dist/components/ColorPicker/index.d.ts.map +1 -1
  95. package/dist/components/Combobox/Combobox.module.scss.cjs +21 -21
  96. package/dist/components/Combobox/Combobox.module.scss.js +21 -21
  97. package/dist/components/Combobox/index.cjs +26 -6
  98. package/dist/components/Combobox/index.d.ts.map +1 -1
  99. package/dist/components/Combobox/index.js +26 -6
  100. package/dist/components/Command/Command.module.scss.cjs +14 -11
  101. package/dist/components/Command/Command.module.scss.js +14 -11
  102. package/dist/components/Command/index.cjs +28 -16
  103. package/dist/components/Command/index.d.ts +8 -3
  104. package/dist/components/Command/index.d.ts.map +1 -1
  105. package/dist/components/Command/index.js +28 -16
  106. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  107. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  108. package/dist/components/ConversationList/index.cjs +2 -2
  109. package/dist/components/ConversationList/index.js +2 -2
  110. package/dist/components/DataTable/DataTable.icons.cjs +6 -33
  111. package/dist/components/DataTable/DataTable.icons.d.ts.map +1 -1
  112. package/dist/components/DataTable/DataTable.icons.js +6 -33
  113. package/dist/components/DataTable/DataTable.module.scss.cjs +31 -28
  114. package/dist/components/DataTable/DataTable.module.scss.js +31 -28
  115. package/dist/components/DataTable/DataTable.virtual.d.ts.map +1 -1
  116. package/dist/components/DataTable/index.d.ts.map +1 -1
  117. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  118. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  119. package/dist/components/DatePicker/index.d.ts.map +1 -1
  120. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  121. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  122. package/dist/components/Dialog/index.cjs +13 -16
  123. package/dist/components/Dialog/index.d.ts +11 -10
  124. package/dist/components/Dialog/index.d.ts.map +1 -1
  125. package/dist/components/Dialog/index.js +13 -16
  126. package/dist/components/Drawer/Drawer.module.scss.cjs +39 -39
  127. package/dist/components/Drawer/Drawer.module.scss.js +40 -40
  128. package/dist/components/Drawer/index.cjs +2 -2
  129. package/dist/components/Drawer/index.d.ts +5 -4
  130. package/dist/components/Drawer/index.d.ts.map +1 -1
  131. package/dist/components/Drawer/index.js +2 -2
  132. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  133. package/dist/components/Editor/Editor.module.scss.js +17 -17
  134. package/dist/components/Editor/index.d.ts +10 -10
  135. package/dist/components/Editor/index.d.ts.map +1 -1
  136. package/dist/components/EmptyState/EmptyState.module.scss.cjs +11 -8
  137. package/dist/components/EmptyState/EmptyState.module.scss.js +11 -8
  138. package/dist/components/EmptyState/index.cjs +13 -6
  139. package/dist/components/EmptyState/index.d.ts +13 -5
  140. package/dist/components/EmptyState/index.d.ts.map +1 -1
  141. package/dist/components/EmptyState/index.js +13 -6
  142. package/dist/components/Field/Field.module.scss.cjs +5 -5
  143. package/dist/components/Field/Field.module.scss.js +5 -5
  144. package/dist/components/Field/index.cjs +9 -1
  145. package/dist/components/Field/index.d.ts.map +1 -1
  146. package/dist/components/Field/index.js +9 -1
  147. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  148. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  149. package/dist/components/Grid/Grid.module.scss.cjs +54 -54
  150. package/dist/components/Grid/Grid.module.scss.js +54 -54
  151. package/dist/components/Grid/index.cjs +1 -1
  152. package/dist/components/Grid/index.js +1 -1
  153. package/dist/components/Header/Header.module.scss.cjs +33 -33
  154. package/dist/components/Header/Header.module.scss.js +33 -33
  155. package/dist/components/Header/index.cjs +17 -38
  156. package/dist/components/Header/index.d.ts +15 -11
  157. package/dist/components/Header/index.d.ts.map +1 -1
  158. package/dist/components/Header/index.js +17 -38
  159. package/dist/components/Icon/Icon.module.scss.cjs +30 -33
  160. package/dist/components/Icon/Icon.module.scss.js +30 -33
  161. package/dist/components/Icon/index.cjs +15 -14
  162. package/dist/components/Icon/index.d.ts +23 -12
  163. package/dist/components/Icon/index.d.ts.map +1 -1
  164. package/dist/components/Icon/index.js +15 -14
  165. package/dist/components/IconButton/IconButton.module.scss.cjs +12 -12
  166. package/dist/components/IconButton/IconButton.module.scss.js +12 -12
  167. package/dist/components/IconButton/index.cjs +2 -1
  168. package/dist/components/IconButton/index.d.ts +4 -4
  169. package/dist/components/IconButton/index.d.ts.map +1 -1
  170. package/dist/components/IconButton/index.js +2 -1
  171. package/dist/components/Image/Image.module.scss.cjs +27 -27
  172. package/dist/components/Image/Image.module.scss.js +27 -27
  173. package/dist/components/Input/Input.module.scss.cjs +15 -21
  174. package/dist/components/Input/Input.module.scss.js +15 -21
  175. package/dist/components/Input/index.cjs +2 -14
  176. package/dist/components/Input/index.d.ts +0 -2
  177. package/dist/components/Input/index.d.ts.map +1 -1
  178. package/dist/components/Input/index.js +2 -14
  179. package/dist/components/Link/Link.module.scss.cjs +26 -14
  180. package/dist/components/Link/Link.module.scss.js +26 -14
  181. package/dist/components/Link/index.cjs +13 -2
  182. package/dist/components/Link/index.d.ts +11 -4
  183. package/dist/components/Link/index.d.ts.map +1 -1
  184. package/dist/components/Link/index.js +13 -2
  185. package/dist/components/List/List.module.scss.cjs +23 -19
  186. package/dist/components/List/List.module.scss.js +23 -19
  187. package/dist/components/List/index.cjs +7 -7
  188. package/dist/components/List/index.d.ts +10 -7
  189. package/dist/components/List/index.d.ts.map +1 -1
  190. package/dist/components/List/index.js +7 -7
  191. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  192. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  193. package/dist/components/Loading/Loading.module.scss.cjs +34 -34
  194. package/dist/components/Loading/Loading.module.scss.js +34 -34
  195. package/dist/components/Loading/index.cjs +5 -5
  196. package/dist/components/Loading/index.d.ts +8 -7
  197. package/dist/components/Loading/index.d.ts.map +1 -1
  198. package/dist/components/Loading/index.js +5 -5
  199. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  200. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  201. package/dist/components/Markdown/index.d.ts +2 -2
  202. package/dist/components/Markdown/index.d.ts.map +1 -1
  203. package/dist/components/Menu/Menu.module.scss.cjs +14 -14
  204. package/dist/components/Menu/Menu.module.scss.js +14 -14
  205. package/dist/components/Message/Message.module.scss.cjs +20 -20
  206. package/dist/components/Message/Message.module.scss.js +20 -20
  207. package/dist/components/Message/index.cjs +1 -1
  208. package/dist/components/Message/index.d.ts +1 -1
  209. package/dist/components/Message/index.js +1 -1
  210. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +34 -31
  211. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +34 -31
  212. package/dist/components/NavigationMenu/index.cjs +32 -15
  213. package/dist/components/NavigationMenu/index.d.ts +12 -6
  214. package/dist/components/NavigationMenu/index.d.ts.map +1 -1
  215. package/dist/components/NavigationMenu/index.js +32 -15
  216. package/dist/components/Pagination/Pagination.module.scss.cjs +10 -10
  217. package/dist/components/Pagination/Pagination.module.scss.js +10 -10
  218. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  219. package/dist/components/Popover/Popover.module.scss.js +10 -10
  220. package/dist/components/Progress/Progress.module.scss.cjs +28 -25
  221. package/dist/components/Progress/Progress.module.scss.js +28 -25
  222. package/dist/components/Progress/index.cjs +21 -12
  223. package/dist/components/Progress/index.d.ts +10 -6
  224. package/dist/components/Progress/index.d.ts.map +1 -1
  225. package/dist/components/Progress/index.js +21 -12
  226. package/dist/components/Prompt/Prompt.module.scss.cjs +30 -30
  227. package/dist/components/Prompt/Prompt.module.scss.js +30 -30
  228. package/dist/components/Prompt/index.cjs +7 -7
  229. package/dist/components/Prompt/index.d.ts +11 -9
  230. package/dist/components/Prompt/index.d.ts.map +1 -1
  231. package/dist/components/Prompt/index.js +7 -7
  232. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +20 -17
  233. package/dist/components/RadioGroup/RadioGroup.module.scss.js +20 -17
  234. package/dist/components/RadioGroup/index.cjs +10 -5
  235. package/dist/components/RadioGroup/index.d.ts +11 -7
  236. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  237. package/dist/components/RadioGroup/index.js +10 -5
  238. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +5 -5
  239. package/dist/components/ScrollArea/ScrollArea.module.scss.js +5 -5
  240. package/dist/components/ScrollArea/index.d.ts +4 -4
  241. package/dist/components/ScrollArea/index.d.ts.map +1 -1
  242. package/dist/components/ScrollArea/scroll-state.d.ts +5 -5
  243. package/dist/components/Select/Select.module.scss.cjs +21 -21
  244. package/dist/components/Select/Select.module.scss.js +21 -21
  245. package/dist/components/Select/index.cjs +26 -20
  246. package/dist/components/Select/index.d.ts +5 -5
  247. package/dist/components/Select/index.d.ts.map +1 -1
  248. package/dist/components/Select/index.js +26 -20
  249. package/dist/components/Separator/Separator.module.scss.cjs +25 -19
  250. package/dist/components/Separator/Separator.module.scss.js +25 -19
  251. package/dist/components/Separator/index.cjs +10 -8
  252. package/dist/components/Separator/index.d.ts +4 -2
  253. package/dist/components/Separator/index.d.ts.map +1 -1
  254. package/dist/components/Separator/index.js +10 -8
  255. package/dist/components/Sidebar/Sidebar.module.scss.cjs +43 -43
  256. package/dist/components/Sidebar/Sidebar.module.scss.js +43 -43
  257. package/dist/components/Sidebar/index.cjs +15 -38
  258. package/dist/components/Sidebar/index.d.ts +19 -19
  259. package/dist/components/Sidebar/index.d.ts.map +1 -1
  260. package/dist/components/Sidebar/index.js +15 -38
  261. package/dist/components/Skeleton/Skeleton.module.scss.cjs +50 -46
  262. package/dist/components/Skeleton/Skeleton.module.scss.js +50 -46
  263. package/dist/components/Skeleton/index.cjs +7 -7
  264. package/dist/components/Skeleton/index.d.ts +8 -7
  265. package/dist/components/Skeleton/index.d.ts.map +1 -1
  266. package/dist/components/Skeleton/index.js +7 -7
  267. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  268. package/dist/components/Slider/Slider.module.scss.js +12 -12
  269. package/dist/components/Stack/Stack.module.scss.cjs +25 -25
  270. package/dist/components/Stack/Stack.module.scss.js +25 -25
  271. package/dist/components/Stack/index.cjs +1 -1
  272. package/dist/components/Stack/index.js +1 -1
  273. package/dist/components/Switch/Switch.module.scss.cjs +9 -9
  274. package/dist/components/Switch/Switch.module.scss.js +9 -9
  275. package/dist/components/Table/Table.module.scss.cjs +19 -19
  276. package/dist/components/Table/Table.module.scss.js +19 -19
  277. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  278. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  279. package/dist/components/TableOfContents/index.cjs +14 -10
  280. package/dist/components/TableOfContents/index.d.ts +5 -3
  281. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  282. package/dist/components/TableOfContents/index.js +14 -10
  283. package/dist/components/Tabs/Tabs.module.scss.cjs +18 -18
  284. package/dist/components/Tabs/Tabs.module.scss.js +18 -18
  285. package/dist/components/Tabs/index.cjs +30 -11
  286. package/dist/components/Tabs/index.d.ts +8 -6
  287. package/dist/components/Tabs/index.d.ts.map +1 -1
  288. package/dist/components/Tabs/index.js +30 -11
  289. package/dist/components/Text/Text.module.scss.cjs +109 -97
  290. package/dist/components/Text/Text.module.scss.js +109 -97
  291. package/dist/components/Text/index.cjs +45 -41
  292. package/dist/components/Text/index.d.ts +24 -19
  293. package/dist/components/Text/index.d.ts.map +1 -1
  294. package/dist/components/Text/index.js +45 -41
  295. package/dist/components/Textarea/Textarea.module.scss.cjs +22 -28
  296. package/dist/components/Textarea/Textarea.module.scss.js +22 -28
  297. package/dist/components/Textarea/index.cjs +3 -10
  298. package/dist/components/Textarea/index.d.ts +0 -2
  299. package/dist/components/Textarea/index.d.ts.map +1 -1
  300. package/dist/components/Textarea/index.js +3 -10
  301. package/dist/components/Theme/index.cjs +22 -5
  302. package/dist/components/Theme/index.d.ts +6 -12
  303. package/dist/components/Theme/index.d.ts.map +1 -1
  304. package/dist/components/Theme/index.js +22 -5
  305. package/dist/components/ThemeToggle/ThemeButton.cjs +51 -0
  306. package/dist/components/ThemeToggle/ThemeButton.d.ts +16 -0
  307. package/dist/components/ThemeToggle/ThemeButton.d.ts.map +1 -0
  308. package/dist/components/ThemeToggle/ThemeButton.js +34 -0
  309. package/dist/components/ThemeToggle/ThemeToggle.module.scss.cjs +6 -6
  310. package/dist/components/ThemeToggle/ThemeToggle.module.scss.js +6 -6
  311. package/dist/components/ThemeToggle/icons.cjs +48 -0
  312. package/dist/components/ThemeToggle/icons.d.ts +10 -0
  313. package/dist/components/ThemeToggle/icons.d.ts.map +1 -0
  314. package/dist/components/ThemeToggle/icons.js +48 -0
  315. package/dist/components/ThemeToggle/index.cjs +6 -50
  316. package/dist/components/ThemeToggle/index.d.ts +5 -3
  317. package/dist/components/ThemeToggle/index.d.ts.map +1 -1
  318. package/dist/components/ThemeToggle/index.js +3 -47
  319. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +18 -15
  320. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +18 -15
  321. package/dist/components/ThinkingIndicator/index.cjs +7 -8
  322. package/dist/components/ThinkingIndicator/index.d.ts +6 -5
  323. package/dist/components/ThinkingIndicator/index.d.ts.map +1 -1
  324. package/dist/components/ThinkingIndicator/index.js +7 -8
  325. package/dist/components/Toast/Toast.module.scss.cjs +28 -29
  326. package/dist/components/Toast/Toast.module.scss.js +29 -30
  327. package/dist/components/Toast/index.cjs +28 -30
  328. package/dist/components/Toast/index.d.ts +9 -8
  329. package/dist/components/Toast/index.d.ts.map +1 -1
  330. package/dist/components/Toast/index.js +28 -30
  331. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +21 -19
  332. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +22 -20
  333. package/dist/components/ToggleGroup/index.cjs +4 -5
  334. package/dist/components/ToggleGroup/index.d.ts +7 -6
  335. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  336. package/dist/components/ToggleGroup/index.js +4 -5
  337. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  338. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  339. package/dist/components/Tooltip/index.cjs +24 -40
  340. package/dist/components/Tooltip/index.d.ts +4 -4
  341. package/dist/components/Tooltip/index.d.ts.map +1 -1
  342. package/dist/components/Tooltip/index.js +24 -40
  343. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.cjs +1 -1
  344. package/dist/components/VisuallyHidden/VisuallyHidden.module.scss.js +1 -1
  345. package/dist/components/VisuallyHidden/index.d.ts +2 -2
  346. package/dist/data-table-virtual.cjs +3 -2
  347. package/dist/data-table-virtual.js +3 -2
  348. package/dist/data-table.cjs +3 -2
  349. package/dist/data-table.js +3 -2
  350. package/dist/datepicker.cjs +26 -13
  351. package/dist/datepicker.js +26 -13
  352. package/dist/editor.cjs +68 -28
  353. package/dist/editor.js +68 -28
  354. package/dist/index.cjs +6 -2
  355. package/dist/index.d.ts +9 -9
  356. package/dist/index.d.ts.map +1 -1
  357. package/dist/index.js +8 -4
  358. package/dist/markdown.cjs +21 -29
  359. package/dist/markdown.js +21 -29
  360. package/dist/measurements/generated.cjs +46 -94
  361. package/dist/measurements/generated.d.ts +44 -92
  362. package/dist/measurements/generated.d.ts.map +1 -1
  363. package/dist/measurements/generated.js +46 -94
  364. package/dist/measurements/index.d.ts +1 -1
  365. package/dist/measurements/index.d.ts.map +1 -1
  366. package/dist/utils/a11y.cjs +5 -2
  367. package/dist/utils/a11y.d.ts +5 -5
  368. package/dist/utils/a11y.d.ts.map +1 -1
  369. package/dist/utils/a11y.js +5 -2
  370. package/dist/utils/canonical-stamp.cjs +2 -8
  371. package/dist/utils/canonical-stamp.d.ts.map +1 -1
  372. package/dist/utils/canonical-stamp.js +1 -7
  373. package/dist/utils/css-warning.cjs +1 -1
  374. package/dist/utils/css-warning.js +1 -1
  375. package/dist/utils/env.cjs +17 -0
  376. package/dist/utils/env.d.ts +3 -0
  377. package/dist/utils/env.d.ts.map +1 -0
  378. package/dist/utils/env.js +17 -0
  379. package/dist/utils/keyboard-shortcuts.cjs +3 -10
  380. package/dist/utils/keyboard-shortcuts.d.ts +4 -4
  381. package/dist/utils/keyboard-shortcuts.d.ts.map +1 -1
  382. package/dist/utils/keyboard-shortcuts.js +3 -10
  383. package/dist/utils/seed-derivation.cjs +10 -7
  384. package/dist/utils/seed-derivation.d.ts +1 -3
  385. package/dist/utils/seed-derivation.d.ts.map +1 -1
  386. package/dist/utils/seed-derivation.js +10 -7
  387. package/dist/utils/theme-presets.cjs +5 -10
  388. package/dist/utils/theme-presets.d.ts +1 -2
  389. package/dist/utils/theme-presets.d.ts.map +1 -1
  390. package/dist/utils/theme-presets.js +5 -10
  391. package/fragments.json +1 -1
  392. package/package.json +9 -10
  393. package/src/assets/fragments-logo.tsx +2 -2
  394. package/src/assets/fragments-wordmark.tsx +4 -2
  395. package/src/assets/nav-glyph.module.scss +166 -0
  396. package/src/assets/nav-glyph.tsx +188 -0
  397. package/src/components/Accordion/Accordion.contract.json +24 -48
  398. package/src/components/Accordion/Accordion.module.scss +5 -3
  399. package/src/components/Alert/Alert.contract.json +49 -65
  400. package/src/components/Alert/Alert.module.scss +57 -47
  401. package/src/components/Alert/index.tsx +72 -39
  402. package/src/components/AppShell/AppShell.contract.json +34 -51
  403. package/src/components/AppShell/AppShell.module.scss +99 -54
  404. package/src/components/AppShell/index.tsx +2 -2
  405. package/src/components/Avatar/Avatar.contract.json +31 -48
  406. package/src/components/Avatar/Avatar.module.scss +4 -2
  407. package/src/components/Badge/Badge.contract.json +86 -55
  408. package/src/components/Badge/Badge.module.scss +80 -48
  409. package/src/components/Badge/index.tsx +34 -17
  410. package/src/components/BentoGrid/BentoGrid.contract.json +21 -45
  411. package/src/components/BentoGrid/BentoGrid.module.scss +4 -8
  412. package/src/components/Box/Box.contract.json +40 -148
  413. package/src/components/Box/Box.module.scss +7 -6
  414. package/src/components/Box/index.tsx +92 -99
  415. package/src/components/Breadcrumbs/Breadcrumbs.contract.json +21 -34
  416. package/src/components/Breadcrumbs/Breadcrumbs.module.scss +27 -12
  417. package/src/components/Breadcrumbs/index.tsx +5 -1
  418. package/src/components/Button/Button.module.scss +261 -185
  419. package/src/components/Button/index.tsx +41 -28
  420. package/src/components/ButtonGroup/ButtonGroup.contract.json +34 -49
  421. package/src/components/ButtonGroup/ButtonGroup.module.scss +8 -6
  422. package/src/components/Card/Card.consumer-fixture.module.scss +5 -2
  423. package/src/components/Card/Card.module.scss +97 -76
  424. package/src/components/Card/index.tsx +44 -20
  425. package/src/components/Chart/Chart.contract.json +21 -29
  426. package/src/components/Chart/Chart.module.scss +6 -5
  427. package/src/components/Chart/index.tsx +36 -6
  428. package/src/components/Checkbox/Checkbox.contract.json +28 -27
  429. package/src/components/Checkbox/Checkbox.module.scss +47 -54
  430. package/src/components/Checkbox/index.tsx +10 -10
  431. package/src/components/Chip/Chip.contract.json +38 -45
  432. package/src/components/Chip/Chip.module.scss +24 -23
  433. package/src/components/Chip/index.tsx +12 -7
  434. package/src/components/CodeBlock/CodeBlock.contract.json +46 -76
  435. package/src/components/CodeBlock/CodeBlock.module.scss +75 -73
  436. package/src/components/CodeBlock/css-variables-theme.ts +102 -0
  437. package/src/components/CodeBlock/index.tsx +114 -51
  438. package/src/components/Collapsible/Collapsible.contract.json +21 -36
  439. package/src/components/Collapsible/Collapsible.module.scss +1 -7
  440. package/src/components/ColorPicker/ColorPicker.contract.json +29 -48
  441. package/src/components/ColorPicker/ColorPicker.module.scss +34 -24
  442. package/src/components/ColorPicker/index.tsx +6 -1
  443. package/src/components/Combobox/Combobox.contract.json +36 -37
  444. package/src/components/Combobox/Combobox.module.scss +16 -19
  445. package/src/components/Combobox/index.tsx +41 -6
  446. package/src/components/Command/Command.contract.json +28 -44
  447. package/src/components/Command/Command.module.scss +19 -21
  448. package/src/components/Command/index.tsx +64 -47
  449. package/src/components/ComponentDefaults/ComponentDefaults.contract.json +91 -0
  450. package/src/components/ConversationList/ConversationList.contract.json +27 -32
  451. package/src/components/ConversationList/ConversationList.module.scss +2 -3
  452. package/src/components/ConversationList/index.tsx +2 -2
  453. package/src/components/DataTable/DataTable.icons.tsx +4 -21
  454. package/src/components/DataTable/DataTable.module.scss +24 -17
  455. package/src/components/DataTable/DataTable.virtual.tsx +3 -2
  456. package/src/components/DataTable/index.tsx +9 -8
  457. package/src/components/DatePicker/DatePicker.contract.json +27 -28
  458. package/src/components/DatePicker/DatePicker.module.scss +41 -44
  459. package/src/components/DatePicker/index.tsx +23 -9
  460. package/src/components/Dialog/Dialog.module.scss +26 -32
  461. package/src/components/Dialog/index.tsx +51 -39
  462. package/src/components/Drawer/Drawer.contract.json +28 -42
  463. package/src/components/Drawer/Drawer.module.scss +123 -64
  464. package/src/components/Drawer/index.tsx +7 -5
  465. package/src/components/Editor/Editor.contract.json +32 -49
  466. package/src/components/Editor/Editor.module.scss +60 -25
  467. package/src/components/Editor/index.tsx +240 -179
  468. package/src/components/EmptyState/EmptyState.contract.json +33 -45
  469. package/src/components/EmptyState/EmptyState.module.scss +37 -21
  470. package/src/components/EmptyState/index.tsx +56 -23
  471. package/src/components/Field/Field.contract.json +28 -46
  472. package/src/components/Field/Field.module.scss +2 -1
  473. package/src/components/Field/index.tsx +5 -1
  474. package/src/components/Fieldset/Fieldset.contract.json +21 -38
  475. package/src/components/Fieldset/Fieldset.module.scss +15 -7
  476. package/src/components/Form/Form.contract.json +23 -23
  477. package/src/components/Grid/Grid.contract.json +28 -64
  478. package/src/components/Grid/Grid.module.scss +2 -2
  479. package/src/components/Grid/index.tsx +10 -10
  480. package/src/components/Header/Header.contract.json +31 -67
  481. package/src/components/Header/Header.module.scss +57 -54
  482. package/src/components/Header/index.tsx +134 -122
  483. package/src/components/Icon/Icon.contract.json +37 -81
  484. package/src/components/Icon/Icon.module.scss +13 -12
  485. package/src/components/Icon/index.tsx +31 -31
  486. package/src/components/IconButton/IconButton.contract.json +37 -21
  487. package/src/components/IconButton/IconButton.module.scss +19 -11
  488. package/src/components/IconButton/index.tsx +6 -5
  489. package/src/components/Image/Image.contract.json +23 -56
  490. package/src/components/Input/Input.contract.json +25 -44
  491. package/src/components/Input/Input.module.scss +6 -55
  492. package/src/components/Input/index.tsx +2 -18
  493. package/src/components/Link/Link.contract.json +46 -58
  494. package/src/components/Link/Link.module.scss +41 -10
  495. package/src/components/Link/index.tsx +27 -6
  496. package/src/components/List/List.contract.json +33 -62
  497. package/src/components/List/List.module.scss +10 -5
  498. package/src/components/List/index.tsx +17 -13
  499. package/src/components/Listbox/Listbox.contract.json +21 -37
  500. package/src/components/Listbox/Listbox.module.scss +14 -20
  501. package/src/components/Loading/Loading.contract.json +41 -65
  502. package/src/components/Loading/Loading.module.scss +37 -31
  503. package/src/components/Loading/index.tsx +15 -14
  504. package/src/components/Main/Main.contract.json +17 -9
  505. package/src/components/Markdown/Markdown.contract.json +22 -43
  506. package/src/components/Markdown/Markdown.module.scss +45 -6
  507. package/src/components/Markdown/index.tsx +48 -49
  508. package/src/components/Menu/Menu.contract.json +30 -46
  509. package/src/components/Menu/Menu.module.scss +32 -16
  510. package/src/components/Message/Message.contract.json +31 -54
  511. package/src/components/Message/Message.module.scss +18 -9
  512. package/src/components/Message/index.tsx +2 -2
  513. package/src/components/NavigationMenu/NavigationMenu.contract.json +36 -45
  514. package/src/components/NavigationMenu/NavigationMenu.module.scss +66 -66
  515. package/src/components/NavigationMenu/index.tsx +105 -81
  516. package/src/components/Pagination/Pagination.contract.json +22 -40
  517. package/src/components/Pagination/Pagination.module.scss +9 -16
  518. package/src/components/Popover/Popover.contract.json +28 -50
  519. package/src/components/Popover/Popover.module.scss +30 -28
  520. package/src/components/Progress/Progress.contract.json +39 -35
  521. package/src/components/Progress/Progress.module.scss +16 -10
  522. package/src/components/Progress/index.tsx +34 -16
  523. package/src/components/Prompt/Prompt.contract.json +40 -56
  524. package/src/components/Prompt/Prompt.module.scss +49 -48
  525. package/src/components/Prompt/index.tsx +17 -15
  526. package/src/components/RadioGroup/RadioGroup.contract.json +29 -28
  527. package/src/components/RadioGroup/RadioGroup.module.scss +50 -45
  528. package/src/components/RadioGroup/index.tsx +23 -10
  529. package/src/components/ScrollArea/ScrollArea.contract.json +18 -19
  530. package/src/components/ScrollArea/ScrollArea.module.scss +45 -48
  531. package/src/components/ScrollArea/index.tsx +16 -16
  532. package/src/components/ScrollArea/scroll-state.ts +24 -24
  533. package/src/components/Select/Select.module.scss +20 -19
  534. package/src/components/Select/index.tsx +26 -24
  535. package/src/components/Separator/Separator.contract.json +29 -53
  536. package/src/components/Separator/Separator.module.scss +24 -40
  537. package/src/components/Separator/index.tsx +16 -11
  538. package/src/components/Sidebar/Sidebar.contract.json +35 -67
  539. package/src/components/Sidebar/Sidebar.module.scss +94 -88
  540. package/src/components/Sidebar/index.tsx +167 -167
  541. package/src/components/Skeleton/Skeleton.contract.json +34 -60
  542. package/src/components/Skeleton/Skeleton.module.scss +50 -26
  543. package/src/components/Skeleton/index.tsx +16 -15
  544. package/src/components/Slider/Slider.contract.json +27 -39
  545. package/src/components/Slider/Slider.module.scss +9 -22
  546. package/src/components/Stack/Stack.contract.json +30 -57
  547. package/src/components/Stack/Stack.module.scss +26 -24
  548. package/src/components/Stack/index.tsx +3 -3
  549. package/src/components/Switch/Switch.contract.json +33 -46
  550. package/src/components/Switch/Switch.module.scss +106 -59
  551. package/src/components/Table/Table.contract.json +28 -46
  552. package/src/components/Table/Table.module.scss +24 -16
  553. package/src/components/TableOfContents/TableOfContents.contract.json +34 -21
  554. package/src/components/TableOfContents/TableOfContents.module.scss +17 -13
  555. package/src/components/TableOfContents/index.tsx +27 -10
  556. package/src/components/Tabs/Tabs.contract.json +35 -56
  557. package/src/components/Tabs/Tabs.module.scss +27 -31
  558. package/src/components/Tabs/index.tsx +30 -15
  559. package/src/components/Text/Text.contract.json +52 -72
  560. package/src/components/Text/Text.module.scss +34 -18
  561. package/src/components/Text/index.tsx +123 -83
  562. package/src/components/Textarea/Textarea.contract.json +24 -55
  563. package/src/components/Textarea/Textarea.module.scss +22 -52
  564. package/src/components/Textarea/index.tsx +3 -14
  565. package/src/components/Theme/Theme.contract.json +35 -53
  566. package/src/components/Theme/index.tsx +41 -13
  567. package/src/components/ThemeToggle/ThemeButton.tsx +49 -0
  568. package/src/components/ThemeToggle/ThemeToggle.module.scss +20 -27
  569. package/src/components/ThemeToggle/icons.tsx +46 -0
  570. package/src/components/ThemeToggle/index.tsx +9 -55
  571. package/src/components/ThinkingIndicator/ThinkingIndicator.contract.json +34 -50
  572. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +9 -7
  573. package/src/components/ThinkingIndicator/index.tsx +12 -14
  574. package/src/components/Toast/Toast.contract.json +55 -49
  575. package/src/components/Toast/Toast.module.scss +50 -105
  576. package/src/components/Toast/index.tsx +39 -34
  577. package/src/components/ToggleGroup/ToggleGroup.contract.json +39 -40
  578. package/src/components/ToggleGroup/ToggleGroup.module.scss +30 -27
  579. package/src/components/ToggleGroup/index.tsx +11 -11
  580. package/src/components/Tooltip/Tooltip.contract.json +31 -52
  581. package/src/components/Tooltip/Tooltip.module.scss +16 -10
  582. package/src/components/Tooltip/index.tsx +19 -24
  583. package/src/components/VisuallyHidden/VisuallyHidden.contract.json +22 -44
  584. package/src/components/VisuallyHidden/VisuallyHidden.module.scss +4 -14
  585. package/src/components/VisuallyHidden/index.tsx +5 -5
  586. package/src/index.ts +16 -12
  587. package/src/measurements/MeasurementTargets.module.scss +6 -7
  588. package/src/measurements/generated.ts +46 -97
  589. package/src/measurements/index.ts +0 -1
  590. package/src/measurements/measurements.json +44 -116
  591. package/src/recipes/_action.scss +4 -4
  592. package/src/recipes/_boolean-range.scss +12 -16
  593. package/src/recipes/_feedback.scss +17 -16
  594. package/src/recipes/_field.scss +28 -16
  595. package/src/recipes/_layout.scss +14 -7
  596. package/src/recipes/_navigation.scss +84 -29
  597. package/src/recipes/_overlay.scss +143 -43
  598. package/src/recipes/_popup.scss +54 -34
  599. package/src/recipes/_prose.scss +48 -28
  600. package/src/recipes/_representation.scss +10 -9
  601. package/src/recipes/_segmented.scss +1 -1
  602. package/src/recipes/_table-chrome.scss +42 -17
  603. package/src/recipes/_target.scss +2 -4
  604. package/src/recipes/_typography.scss +10 -0
  605. package/src/scss.d.ts +1 -1
  606. package/src/styles/globals.scss +31 -25
  607. package/src/tokens/_component-properties.scss +19 -1
  608. package/src/tokens/_computed.scss +32 -49
  609. package/src/tokens/_derive.scss +112 -210
  610. package/src/tokens/_measurements.catalog.generated.css +62 -44
  611. package/src/tokens/_measurements.generated.scss +119 -249
  612. package/src/tokens/_mixins.scss +49 -48
  613. package/src/tokens/_palettes.scss +39 -167
  614. package/src/tokens/_property-registrations.scss +9 -0
  615. package/src/tokens/_seeds.scss +20 -31
  616. package/src/tokens/_variables.scss +251 -94
  617. package/src/utils/a11y.tsx +69 -69
  618. package/src/utils/aria.ts +3 -3
  619. package/src/utils/canonical-stamp.ts +2 -12
  620. package/src/utils/css-warning.ts +7 -7
  621. package/src/utils/env.ts +25 -0
  622. package/src/utils/keyboard-shortcuts.ts +131 -126
  623. package/src/utils/seed-derivation.ts +11 -14
  624. package/src/utils/theme-presets.ts +5 -12
  625. package/dist/blocks/AccountSettings.block.d.ts +0 -3
  626. package/dist/blocks/AccountSettings.block.d.ts.map +0 -1
  627. package/dist/blocks/ActivityFeedSkeleton.block.d.ts +0 -3
  628. package/dist/blocks/ActivityFeedSkeleton.block.d.ts.map +0 -1
  629. package/dist/blocks/BlogEditor.block.d.ts +0 -3
  630. package/dist/blocks/BlogEditor.block.d.ts.map +0 -1
  631. package/dist/blocks/ChatInterface.block.d.ts +0 -3
  632. package/dist/blocks/ChatInterface.block.d.ts.map +0 -1
  633. package/dist/blocks/ChatMessages.block.d.ts +0 -3
  634. package/dist/blocks/ChatMessages.block.d.ts.map +0 -1
  635. package/dist/blocks/CheckoutForm.block.d.ts +0 -3
  636. package/dist/blocks/CheckoutForm.block.d.ts.map +0 -1
  637. package/dist/blocks/CommandPalette.block.d.ts +0 -3
  638. package/dist/blocks/CommandPalette.block.d.ts.map +0 -1
  639. package/dist/blocks/ContactForm.block.d.ts +0 -3
  640. package/dist/blocks/ContactForm.block.d.ts.map +0 -1
  641. package/dist/blocks/DashboardPage.block.d.ts +0 -3
  642. package/dist/blocks/DashboardPage.block.d.ts.map +0 -1
  643. package/dist/blocks/DashboardSkeleton.block.d.ts +0 -3
  644. package/dist/blocks/DashboardSkeleton.block.d.ts.map +0 -1
  645. package/dist/blocks/DataTable.block.d.ts +0 -3
  646. package/dist/blocks/DataTable.block.d.ts.map +0 -1
  647. package/dist/blocks/EmptyState.block.d.ts +0 -3
  648. package/dist/blocks/EmptyState.block.d.ts.map +0 -1
  649. package/dist/blocks/FAQSection.block.d.ts +0 -3
  650. package/dist/blocks/FAQSection.block.d.ts.map +0 -1
  651. package/dist/blocks/FeatureGrid.block.d.ts +0 -3
  652. package/dist/blocks/FeatureGrid.block.d.ts.map +0 -1
  653. package/dist/blocks/HeroSection.block.d.ts +0 -3
  654. package/dist/blocks/HeroSection.block.d.ts.map +0 -1
  655. package/dist/blocks/NavigationHeader.block.d.ts +0 -3
  656. package/dist/blocks/NavigationHeader.block.d.ts.map +0 -1
  657. package/dist/blocks/PaginatedTable.block.d.ts +0 -3
  658. package/dist/blocks/PaginatedTable.block.d.ts.map +0 -1
  659. package/dist/blocks/PricingComparison.block.d.ts +0 -3
  660. package/dist/blocks/PricingComparison.block.d.ts.map +0 -1
  661. package/dist/blocks/ProductCard.block.d.ts +0 -3
  662. package/dist/blocks/ProductCard.block.d.ts.map +0 -1
  663. package/dist/blocks/RegistrationForm.block.d.ts +0 -3
  664. package/dist/blocks/RegistrationForm.block.d.ts.map +0 -1
  665. package/dist/blocks/SettingsDrawer.block.d.ts +0 -3
  666. package/dist/blocks/SettingsDrawer.block.d.ts.map +0 -1
  667. package/dist/blocks/SettingsPanel.block.d.ts +0 -3
  668. package/dist/blocks/SettingsPanel.block.d.ts.map +0 -1
  669. package/dist/blocks/ShoppingCart.block.d.ts +0 -3
  670. package/dist/blocks/ShoppingCart.block.d.ts.map +0 -1
  671. package/dist/blocks/StatsCardSkeleton.block.d.ts +0 -3
  672. package/dist/blocks/StatsCardSkeleton.block.d.ts.map +0 -1
  673. package/dist/blocks/TableSkeleton.block.d.ts +0 -3
  674. package/dist/blocks/TableSkeleton.block.d.ts.map +0 -1
  675. package/dist/blocks/ThinkingStates.block.d.ts +0 -3
  676. package/dist/blocks/ThinkingStates.block.d.ts.map +0 -1
  677. package/dist/components/Toggle/index.d.ts +0 -3
  678. package/dist/components/Toggle/index.d.ts.map +0 -1
  679. package/src/components/Button/Button.contract.json +0 -218
  680. package/src/components/Card/Card.contract.json +0 -175
  681. package/src/components/DataTable/DataTable.contract.json +0 -302
  682. package/src/components/Dialog/Dialog.contract.json +0 -159
  683. package/src/components/Select/Select.contract.json +0 -259
  684. package/src/components/Toggle/index.ts +0 -7
  685. package/src/tokens/_density.scss +0 -85
@@ -1,4 +1,5 @@
1
1
  @use "../../tokens/variables" as *;
2
+ @use "../../tokens/measurements.generated" as measurements;
2
3
  @use "../../tokens/mixins" as *;
3
4
  @use "../../recipes/feedback" as feedback;
4
5
 
@@ -6,7 +7,7 @@
6
7
  width: 100%;
7
8
 
8
9
  > * {
9
- border-bottom: var(--fui-stroke-hairline, 1px) solid var(--fui-border, $fui-border);
10
+ border-bottom: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid var(--fui-border, $fui-border);
10
11
 
11
12
  &:last-child {
12
13
  border-bottom: none;
@@ -15,12 +16,13 @@
15
16
  }
16
17
 
17
18
  .item[data-disabled] {
18
- opacity: 0.5;
19
+ @include disabled-state;
20
+
19
21
  pointer-events: none;
20
22
  }
21
23
 
22
24
  .heading {
23
- margin: 0;
25
+ margin: var(--fui-raw-space-0, #{measurements.raw-space(0)});
24
26
  font: inherit;
25
27
  }
26
28
 
@@ -1,21 +1,16 @@
1
1
  {
2
2
  "$schema": "https://usefragments.com/schemas/contract.v1.json",
3
3
  "name": "Alert",
4
- "description": "Contextual feedback messages for user actions or system status. Supports multiple severity levels with optional actions and dismissibility.",
4
+ "description": "Tells the user what just happened, or what is about to.",
5
5
  "category": "feedback",
6
- "tags": [
7
- "notification",
8
- "message",
9
- "feedback",
10
- "banner",
11
- "toast"
12
- ],
6
+ "tags": ["notification", "message", "feedback", "banner", "toast"],
13
7
  "status": "stable",
14
8
  "sourcePath": "src/components/Alert/index.tsx",
15
9
  "exportName": "Alert",
16
10
  "propsSummary": [
17
11
  "children: node (required)",
18
- "severity: info|success|warning|error (default: info)"
12
+ "tone: info|success|warning|danger (default: info)",
13
+ "emphasis: tint|surface (default: tint)"
19
14
  ],
20
15
  "props": {
21
16
  "children": {
@@ -23,79 +18,78 @@
23
18
  "description": "Alert content - use Alert.Icon, Alert.Body, Alert.Title, Alert.Content, Alert.Actions, Alert.Close sub-components",
24
19
  "required": true
25
20
  },
26
- "severity": {
21
+ "tone": {
27
22
  "type": "enum",
28
- "description": "Visual severity level",
23
+ "description": "Tone; controls colour, icon and live-region role",
29
24
  "default": "info",
30
25
  "required": false,
31
- "values": [
32
- "info",
33
- "success",
34
- "warning",
35
- "error"
36
- ]
26
+ "values": ["info", "success", "warning", "danger"]
27
+ },
28
+ "emphasis": {
29
+ "type": "enum",
30
+ "description": "How much surface the tone claims. `tint` washes the card in the tone colour; `surface` keeps the page background and colours only the hairline and title.",
31
+ "default": "tint",
32
+ "required": false,
33
+ "values": ["tint", "surface"]
37
34
  }
38
35
  },
39
36
  "usage": {
40
37
  "when": [
41
- "Communicating the result of a user action (success, error)",
42
- "Warning about potential issues before they occur",
43
- "Providing important contextual information inline",
44
- "System status notifications that require attention"
38
+ "Reporting the outcome of something the user did",
39
+ "Flagging a risk before the user hits it",
40
+ "Standing status that must stay on screen"
45
41
  ],
46
42
  "whenNot": [
47
- "Brief status labels (use Badge instead)",
48
- "Transient notifications (use Toast/Snackbar)",
49
- "Form-field-level errors (use Input error prop)",
50
- "Confirmation before destructive actions (use Dialog)"
43
+ "A one-word status (use Badge)",
44
+ "A message that should fade away (use Toast)",
45
+ "An invalid field (use the Input error prop)",
46
+ "A decision the user must make first (use Dialog)"
51
47
  ],
52
48
  "guidelines": [
53
- "Match severity to the actual importance: info for context, warning for potential issues, error for failures",
54
- "Always provide actionable guidance in error alerts",
55
- "Use Alert.Title for complex messages; skip titles for brief one-liners",
56
- "Limit to one action per alert to avoid decision paralysis",
57
- "Use Alert.Close only for non-critical information",
58
- "Alert.Action and Alert.Close render buttons with type=\"button\" by default (safe inside forms)",
59
- "Alert.Close composes your onClick handler with built-in dismiss behavior and respects preventDefault()",
60
- "Alert sub-components forward DOM props (aria-*, data-*, id, handlers) to their rendered elements"
49
+ "Match tone to real stakes \u2014 an error that is not an error trains people to ignore you",
50
+ "Every danger alert says what to do next",
51
+ "Add Alert.Title only when the message needs two lines",
52
+ "One action per alert",
53
+ "Only dismissible when losing the message costs nothing",
54
+ "Alert.Action and Alert.Close default to type=\"button\", so they are safe inside a form",
55
+ "Alert.Close runs your onClick and still respects preventDefault()"
61
56
  ],
62
57
  "accessibility": [
63
- "Uses role=\"alert\" for screen reader announcement",
64
- "Error and warning alerts are announced immediately by assistive technology",
65
- "Alert.Close must have an accessible label",
66
- "Color alone must not convey meaning - icons and text reinforce severity"
58
+ "role=\"alert\" means assistive tech announces it on arrival",
59
+ "Alert.Close needs its own label",
60
+ "Icon plus wording carry the tone \u2014 never color alone"
67
61
  ]
68
62
  },
69
63
  "examples": [
70
64
  {
71
65
  "name": "Info",
72
- "description": "Informational context for the user",
73
- "code": "import { Alert } from '@/components/Alert';\n\n<Alert severity=\"info\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Content>\n Your session will expire in 15 minutes. Save your work to avoid losing changes.\n </Alert.Content>\n </Alert.Body>\n</Alert>"
66
+ "description": "Neutral context \u2014 nothing went wrong, nothing needs doing.",
67
+ "code": "import { Alert } from '@/components/Alert';\n\n<Alert tone=\"info\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Content>\n Your session will expire in 15 minutes. Save your work to avoid losing changes.\n </Alert.Content>\n </Alert.Body>\n</Alert>"
74
68
  },
75
69
  {
76
70
  "name": "Success",
77
- "description": "Positive confirmation of completed action",
78
- "code": "import { Alert } from '@/components/Alert';\n\n<Alert severity=\"success\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Title>Payment processed</Alert.Title>\n <Alert.Content>\n Your order #12345 has been confirmed. You will receive a confirmation email shortly.\n </Alert.Content>\n </Alert.Body>\n</Alert>"
71
+ "description": "Confirms the thing the user just did actually landed.",
72
+ "code": "import { Alert } from '@/components/Alert';\n\n<Alert tone=\"success\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Title>Payment processed</Alert.Title>\n <Alert.Content>\n Your order #12345 has been confirmed. You will receive a confirmation email shortly.\n </Alert.Content>\n </Alert.Body>\n</Alert>"
79
73
  },
80
74
  {
81
75
  "name": "Warning",
82
- "description": "Caution about potential issues",
83
- "code": "import { Alert } from '@/components/Alert';\n\n<Alert severity=\"warning\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Title>Storage almost full</Alert.Title>\n <Alert.Content>\n You have used 90% of your storage quota. Consider deleting unused files.\n </Alert.Content>\n </Alert.Body>\n</Alert>"
76
+ "description": "Nothing is broken yet \u2014 act before it is.",
77
+ "code": "import { Alert } from '@/components/Alert';\n\n<Alert tone=\"warning\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Title>Storage almost full</Alert.Title>\n <Alert.Content>\n You have used 90% of your storage quota. Consider deleting unused files.\n </Alert.Content>\n </Alert.Body>\n</Alert>"
84
78
  },
85
79
  {
86
80
  "name": "Error",
87
- "description": "Error state requiring user attention",
88
- "code": "import { Alert } from '@/components/Alert';\n\n<Alert severity=\"error\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Title>Upload failed</Alert.Title>\n <Alert.Content>\n The file could not be uploaded. Check your connection and try again.\n </Alert.Content>\n </Alert.Body>\n</Alert>"
81
+ "description": "Something failed; say what to do about it.",
82
+ "code": "import { Alert } from '@/components/Alert';\n\n<Alert tone=\"danger\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Title>Upload failed</Alert.Title>\n <Alert.Content>\n The file could not be uploaded. Check your connection and try again.\n </Alert.Content>\n </Alert.Body>\n</Alert>"
89
83
  },
90
84
  {
91
85
  "name": "With Action",
92
- "description": "Alert with an actionable button",
93
- "code": "import { Alert } from '@/components/Alert';\n\n<Alert severity=\"warning\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Title>Update available</Alert.Title>\n <Alert.Content>\n A new version is available with important security fixes.\n </Alert.Content>\n <Alert.Actions>\n <Alert.Action onClick={() => {}}>Update now</Alert.Action>\n </Alert.Actions>\n </Alert.Body>\n</Alert>"
86
+ "description": "One button, one job \u2014 more than one stalls the reader.",
87
+ "code": "import { Alert } from '@/components/Alert';\n\n<Alert tone=\"warning\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Title>Update available</Alert.Title>\n <Alert.Content>\n A new version is available with important security fixes.\n </Alert.Content>\n <Alert.Actions>\n <Alert.Action onClick={() => {}}>Update now</Alert.Action>\n </Alert.Actions>\n </Alert.Body>\n</Alert>"
94
88
  },
95
89
  {
96
90
  "name": "Dismissible",
97
- "description": "Alert that can be closed by the user",
98
- "code": "import { Alert } from '@/components/Alert';\n\n<Alert severity=\"info\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Content>\n You can customize your notification preferences in Settings.\n </Alert.Content>\n </Alert.Body>\n <Alert.Close />\n</Alert>"
91
+ "description": "A close button suits news the user can safely ignore.",
92
+ "code": "import { Alert } from '@/components/Alert';\n\n<Alert tone=\"info\">\n <Alert.Icon />\n <Alert.Body>\n <Alert.Content>\n You can customize your notification preferences in Settings.\n </Alert.Content>\n </Alert.Body>\n <Alert.Close />\n</Alert>"
99
93
  }
100
94
  ],
101
95
  "relations": [
@@ -117,7 +111,7 @@
117
111
  ],
118
112
  "contract": {
119
113
  "propsSummary": [
120
- "severity: info|success|warning|error - visual severity",
114
+ "tone: info|success|warning|danger - colour, icon and live-region role",
121
115
  "Sub-components: Alert.Icon, Alert.Body, Alert.Title, Alert.Content, Alert.Actions, Alert.Action, Alert.Close",
122
116
  "Alert.Action / Alert.Close accept button props and default type=\"button\""
123
117
  ],
@@ -130,22 +124,12 @@
130
124
  },
131
125
  "ai": {
132
126
  "compositionPattern": "compound",
133
- "subComponents": [
134
- "Icon",
135
- "Body",
136
- "Title",
137
- "Content",
138
- "Actions",
139
- "Action",
140
- "Close"
141
- ],
142
- "requiredChildren": [
143
- "Body"
144
- ],
127
+ "subComponents": ["Icon", "Body", "Title", "Content", "Actions", "Action", "Close"],
128
+ "requiredChildren": ["Body"],
145
129
  "commonPatterns": [
146
- "<Alert severity=\"info\"><Alert.Icon /><Alert.Body><Alert.Content>{message}</Alert.Content></Alert.Body></Alert>",
147
- "<Alert severity=\"warning\"><Alert.Icon /><Alert.Body><Alert.Title>{title}</Alert.Title><Alert.Content>{message}</Alert.Content></Alert.Body></Alert>",
148
- "<Alert severity=\"error\"><Alert.Icon /><Alert.Body><Alert.Title>{title}</Alert.Title><Alert.Content>{message}</Alert.Content></Alert.Body><Alert.Close /></Alert>"
130
+ "<Alert tone=\"info\"><Alert.Icon /><Alert.Body><Alert.Content>{message}</Alert.Content></Alert.Body></Alert>",
131
+ "<Alert tone=\"warning\"><Alert.Icon /><Alert.Body><Alert.Title>{title}</Alert.Title><Alert.Content>{message}</Alert.Content></Alert.Body></Alert>",
132
+ "<Alert tone=\"danger\"><Alert.Icon /><Alert.Body><Alert.Title>{title}</Alert.Title><Alert.Content>{message}</Alert.Content></Alert.Body><Alert.Close /></Alert>"
149
133
  ]
150
134
  },
151
135
  "provenance": {
@@ -1,42 +1,70 @@
1
1
  @use "../../tokens/variables" as *;
2
2
  @use "../../tokens/mixins" as *;
3
+ @use "../../tokens/measurements.generated" as measurements;
3
4
  @use "../../recipes/feedback" as feedback;
4
5
 
6
+ // The tone publishes its ramp on three channels; the alert paints wash, hairline
7
+ // and ink from them, and `emphasis="surface"` keeps only the hairline + title.
5
8
  .alert {
6
9
  @include feedback.contextual;
10
+ @include high-contrast-outline;
7
11
 
12
+ --_alert-tint: var(--fui-color-info-bg, #{$fui-color-info-bg});
13
+ --_alert-ink: var(--fui-color-info-text, #{$fui-color-info-text});
14
+ --_alert-line: var(--fui-color-info-border, #{$fui-color-info-border});
15
+
16
+ border: var(--fui-stroke-hairline, #{$fui-stroke-hairline}) solid
17
+ var(--_alert-line, var(--fui-color-info-border, #{$fui-color-info-border}));
8
18
  border-radius: var(--fui-card-radius, var(--fui-radius-lg, $fui-radius-lg));
19
+ background: var(--_alert-tint, var(--fui-color-info-bg, #{$fui-color-info-bg}));
20
+ color: var(--_alert-ink, var(--fui-color-info-text, #{$fui-color-info-text}));
9
21
  }
10
22
 
11
23
  .alert:has(.title) {
12
24
  align-items: flex-start;
13
25
  }
14
26
 
15
- .info {
16
- background: var(--fui-color-info-bg, $fui-color-info-bg);
17
- border: var(--fui-stroke-hairline, 1px) solid var(--fui-color-info-border, $fui-color-info-border);
18
- color: var(--fui-color-info-text, $fui-color-info-text);
27
+ @mixin _tone($tone, $bg, $text, $border) {
28
+ --_alert-tint: var(--fui-color-#{$tone}-bg, #{$bg});
29
+ --_alert-ink: var(--fui-color-#{$tone}-text, #{$text});
30
+ --_alert-line: var(--fui-color-#{$tone}-border, #{$border});
31
+ }
32
+
33
+ .toneInfo {
34
+ @include _tone("info", $fui-color-info-bg, $fui-color-info-text, $fui-color-info-border);
19
35
  }
20
36
 
21
- .success {
22
- background: var(--fui-color-success-bg, $fui-color-success-bg);
23
- border: var(--fui-stroke-hairline, 1px) solid
24
- var(--fui-color-success-border, $fui-color-success-border);
25
- color: var(--fui-color-success-text, $fui-color-success-text);
37
+ .toneSuccess {
38
+ @include _tone(
39
+ "success",
40
+ $fui-color-success-bg,
41
+ $fui-color-success-text,
42
+ $fui-color-success-border
43
+ );
26
44
  }
27
45
 
28
- .warning {
29
- background: var(--fui-color-warning-bg, $fui-color-warning-bg);
30
- border: var(--fui-stroke-hairline, 1px) solid
31
- var(--fui-color-warning-border, $fui-color-warning-border);
32
- color: var(--fui-color-warning-text, $fui-color-warning-text);
46
+ .toneWarning {
47
+ @include _tone(
48
+ "warning",
49
+ $fui-color-warning-bg,
50
+ $fui-color-warning-text,
51
+ $fui-color-warning-border
52
+ );
33
53
  }
34
54
 
35
- .error {
36
- background: var(--fui-color-danger-bg, $fui-color-danger-bg);
37
- border: var(--fui-stroke-hairline, 1px) solid
38
- var(--fui-color-danger-border, $fui-color-danger-border);
39
- color: var(--fui-color-danger-text, $fui-color-danger-text);
55
+ .toneDanger {
56
+ @include _tone("danger", $fui-color-danger-bg, $fui-color-danger-text, $fui-color-danger-border);
57
+ }
58
+
59
+ // `emphasis="surface"`: the card keeps the page's own surface and spends the
60
+ // tone only on the hairline and the title.
61
+ .surface {
62
+ background: var(--fui-bg-secondary, $fui-bg-secondary);
63
+ color: var(--fui-text-secondary, $fui-text-secondary);
64
+
65
+ .title {
66
+ color: var(--_alert-ink, var(--fui-color-info-text, #{$fui-color-info-text}));
67
+ }
40
68
  }
41
69
 
42
70
  .icon {
@@ -45,35 +73,20 @@
45
73
  display: flex;
46
74
  align-items: center;
47
75
  justify-content: center;
48
- border-radius: 50%;
76
+ border-radius: var(--fui-radius-full, #{$fui-radius-full});
77
+ background-color: var(--_alert-ink, var(--fui-color-info-text, #{$fui-color-info-text}));
49
78
  color: var(--fui-text-inverse, $fui-text-inverse);
50
79
  font: inherit;
51
80
  }
52
81
 
53
82
  .alert:has(.title) .icon {
54
- margin-block-start: var(--fui-stroke-hairline, 1px);
55
- }
56
-
57
- .info .icon {
58
- background-color: var(--fui-color-info-text, $fui-color-info-text);
59
- }
60
-
61
- .success .icon {
62
- background-color: var(--fui-color-success-text, $fui-color-success-text);
63
- }
64
-
65
- .warning .icon {
66
- background-color: var(--fui-color-warning-text, $fui-color-warning-text);
67
- }
68
-
69
- .error .icon {
70
- background-color: var(--fui-color-danger-text, $fui-color-danger-text);
83
+ margin-block-start: var(--fui-stroke-hairline, #{$fui-stroke-hairline});
71
84
  }
72
85
 
73
86
  .body {
74
87
  display: grid;
75
88
  flex: 1;
76
- gap: var(--fui-feedback-text-gap, var(--fui-raw-space-4, 4px));
89
+ gap: var(--fui-feedback-text-gap, var(--fui-raw-space-4, #{measurements.raw-space(4)}));
77
90
  min-inline-size: 0;
78
91
  }
79
92
 
@@ -83,14 +96,12 @@
83
96
 
84
97
  .content {
85
98
  @include feedback.body;
86
-
87
- opacity: 0.9;
88
99
  }
89
100
 
90
101
  .actions {
91
102
  display: flex;
92
103
  align-items: center;
93
- gap: var(--fui-feedback-transient-gap, var(--fui-raw-space-8, 8px));
104
+ gap: var(--fui-feedback-transient-gap, var(--fui-raw-space-8, #{measurements.raw-space(8)}));
94
105
  }
95
106
 
96
107
  .close {
@@ -99,13 +110,12 @@
99
110
  @include feedback.close;
100
111
 
101
112
  margin-inline-start: auto;
102
- border-radius: var(--fui-radius-sm, $fui-radius-sm);
103
- color: inherit;
113
+ border-radius: var(--fui-radius-l3, $fui-radius-l3);
114
+ color: color-mix(in srgb, currentColor 60%, transparent);
104
115
  line-height: 1;
105
- opacity: 0.6;
106
116
 
107
117
  &:hover {
108
- opacity: 1;
118
+ color: currentColor;
109
119
  }
110
120
  }
111
121
 
@@ -113,12 +123,12 @@
113
123
  @include button-reset;
114
124
  @include feedback.compact-action;
115
125
 
116
- border-radius: var(--fui-radius-sm, $fui-radius-sm);
126
+ border-radius: var(--fui-radius-l3, $fui-radius-l3);
117
127
  color: inherit;
118
128
  text-decoration: underline;
119
129
 
120
130
  &:hover {
121
- opacity: 0.8;
131
+ color: color-mix(in srgb, currentColor 80%, transparent);
122
132
  }
123
133
 
124
134
  &:focus-visible {
@@ -1,25 +1,31 @@
1
- 'use client';
1
+ "use client";
2
2
 
3
- import * as React from 'react';
4
- import { Button as BaseButton } from '@base-ui/react/button';
5
- import styles from './Alert.module.scss';
3
+ import * as React from "react";
4
+ import { Button as BaseButton } from "@base-ui/react/button";
5
+ import styles from "./Alert.module.scss";
6
6
 
7
7
  // ============================================
8
8
  // Types
9
9
  // ============================================
10
10
 
11
- export type AlertSeverity = 'info' | 'success' | 'warning' | 'error';
11
+ export type AlertTone = "info" | "success" | "warning" | "danger";
12
12
 
13
13
  /**
14
- * Alert for contextual feedback messages (info, success, warning, error).
14
+ * Alert for contextual feedback messages (info, success, warning, danger).
15
15
  * @see https://usefragments.com/components/alert
16
16
  */
17
17
  export interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {
18
18
  children: React.ReactNode;
19
- /** Alert severity level. Controls color and default icon.
19
+ /** Tone. Controls color and default icon.
20
20
  * @default "info"
21
- * @see https://usefragments.com/components/alert#variants */
22
- severity?: AlertSeverity;
21
+ * @see https://usefragments.com/components/alert#tones */
22
+ tone?: AlertTone;
23
+ /** How much surface the tone claims. `tint` washes the whole card in the
24
+ * tone colour. `surface` keeps the card on the page's own background and
25
+ * spends the colour only on the hairline and the title — for a standing
26
+ * failure that owns the view, where a full wash would read as a red page.
27
+ * @default "tint" */
28
+ emphasis?: "tint" | "surface";
23
29
  }
24
30
 
25
31
  export interface AlertIconProps extends React.HTMLAttributes<HTMLSpanElement> {
@@ -38,12 +44,18 @@ export interface AlertActionsProps extends React.HTMLAttributes<HTMLDivElement>
38
44
  children: React.ReactNode;
39
45
  }
40
46
 
41
- export interface AlertActionProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'> {
47
+ export interface AlertActionProps extends Omit<
48
+ React.ButtonHTMLAttributes<HTMLButtonElement>,
49
+ "onClick"
50
+ > {
42
51
  children: React.ReactNode;
43
52
  onClick?: React.MouseEventHandler<HTMLButtonElement>;
44
53
  }
45
54
 
46
- export interface AlertCloseProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
55
+ export interface AlertCloseProps extends Omit<
56
+ React.ButtonHTMLAttributes<HTMLButtonElement>,
57
+ "children"
58
+ > {
47
59
  children?: React.ReactNode;
48
60
  }
49
61
 
@@ -56,7 +68,7 @@ export interface AlertBodyProps extends React.HTMLAttributes<HTMLDivElement> {
56
68
  // ============================================
57
69
 
58
70
  interface AlertContextValue {
59
- severity: AlertSeverity;
71
+ tone: AlertTone;
60
72
  titleId: string;
61
73
  descId: string;
62
74
  dismiss: () => void;
@@ -67,7 +79,7 @@ const AlertContext = React.createContext<AlertContextValue | null>(null);
67
79
  function useAlertContext() {
68
80
  const context = React.useContext(AlertContext);
69
81
  if (!context) {
70
- throw new Error('Alert compound components must be used within an Alert');
82
+ throw new Error("Alert compound components must be used within an Alert");
71
83
  }
72
84
  return context;
73
85
  }
@@ -84,14 +96,21 @@ function composeEventHandlers<E extends { defaultPrevented: boolean }>(
84
96
  }
85
97
 
86
98
  // ============================================
87
- // Severity Icons
99
+ // Tone Icons
88
100
  // ============================================
89
101
 
90
- const severityIcons: Record<AlertSeverity, string> = {
91
- info: 'i',
92
- success: '\u2713',
93
- warning: '!',
94
- error: '\u2717',
102
+ const toneIcons: Record<AlertTone, string> = {
103
+ info: "i",
104
+ success: "\u2713",
105
+ warning: "!",
106
+ danger: "\u2717",
107
+ };
108
+
109
+ const TONE_CLASS: Record<AlertTone, string> = {
110
+ info: styles.toneInfo,
111
+ success: styles.toneSuccess,
112
+ warning: styles.toneWarning,
113
+ danger: styles.toneDanger,
95
114
  };
96
115
 
97
116
  // ============================================
@@ -100,7 +119,8 @@ const severityIcons: Record<AlertSeverity, string> = {
100
119
 
101
120
  function AlertRoot({
102
121
  children,
103
- severity = 'info',
122
+ tone = "info",
123
+ emphasis = "tint",
104
124
  className,
105
125
  ...htmlProps
106
126
  }: AlertProps) {
@@ -114,13 +134,18 @@ function AlertRoot({
114
134
 
115
135
  if (dismissed) return null;
116
136
 
117
- const classes = [styles.alert, styles[severity], className]
137
+ const classes = [
138
+ styles.alert,
139
+ TONE_CLASS[tone],
140
+ emphasis === "surface" ? styles.surface : null,
141
+ className,
142
+ ]
118
143
  .filter(Boolean)
119
- .join(' ');
120
- const role = severity === 'warning' || severity === 'error' ? 'alert' : 'status';
144
+ .join(" ");
145
+ const role = tone === "warning" || tone === "danger" ? "alert" : "status";
121
146
 
122
147
  const contextValue: AlertContextValue = {
123
- severity,
148
+ tone,
124
149
  titleId,
125
150
  descId,
126
151
  dismiss,
@@ -142,24 +167,28 @@ function AlertRoot({
142
167
  }
143
168
 
144
169
  function AlertIcon({ children, className, ...htmlProps }: AlertIconProps) {
145
- const { severity } = useAlertContext();
146
- const classes = [styles.icon, className].filter(Boolean).join(' ');
170
+ const { tone } = useAlertContext();
171
+ const classes = [styles.icon, className].filter(Boolean).join(" ");
147
172
 
148
173
  return (
149
174
  <span {...htmlProps} className={classes} aria-hidden="true">
150
- {children ?? severityIcons[severity]}
175
+ {children ?? toneIcons[tone]}
151
176
  </span>
152
177
  );
153
178
  }
154
179
 
155
180
  function AlertBody({ children, className, ...htmlProps }: AlertBodyProps) {
156
- const classes = [styles.body, className].filter(Boolean).join(' ');
157
- return <div {...htmlProps} className={classes}>{children}</div>;
181
+ const classes = [styles.body, className].filter(Boolean).join(" ");
182
+ return (
183
+ <div {...htmlProps} className={classes}>
184
+ {children}
185
+ </div>
186
+ );
158
187
  }
159
188
 
160
189
  function AlertTitle({ children, className, ...htmlProps }: AlertTitleProps) {
161
190
  const { titleId } = useAlertContext();
162
- const classes = [styles.title, className].filter(Boolean).join(' ');
191
+ const classes = [styles.title, className].filter(Boolean).join(" ");
163
192
  return (
164
193
  <div {...htmlProps} id={htmlProps.id ?? titleId} className={classes}>
165
194
  {children}
@@ -169,7 +198,7 @@ function AlertTitle({ children, className, ...htmlProps }: AlertTitleProps) {
169
198
 
170
199
  function AlertContent({ children, className, ...htmlProps }: AlertContentProps) {
171
200
  const { descId } = useAlertContext();
172
- const classes = [styles.content, className].filter(Boolean).join(' ');
201
+ const classes = [styles.content, className].filter(Boolean).join(" ");
173
202
  return (
174
203
  <div {...htmlProps} id={htmlProps.id ?? descId} className={classes}>
175
204
  {children}
@@ -178,18 +207,22 @@ function AlertContent({ children, className, ...htmlProps }: AlertContentProps)
178
207
  }
179
208
 
180
209
  function AlertActions({ children, className, ...htmlProps }: AlertActionsProps) {
181
- const classes = [styles.actions, className].filter(Boolean).join(' ');
182
- return <div {...htmlProps} className={classes}>{children}</div>;
210
+ const classes = [styles.actions, className].filter(Boolean).join(" ");
211
+ return (
212
+ <div {...htmlProps} className={classes}>
213
+ {children}
214
+ </div>
215
+ );
183
216
  }
184
217
 
185
218
  function AlertAction({
186
219
  children,
187
220
  onClick,
188
- type = 'button',
221
+ type = "button",
189
222
  className,
190
223
  ...htmlProps
191
224
  }: AlertActionProps) {
192
- const classes = [styles.action, className].filter(Boolean).join(' ');
225
+ const classes = [styles.action, className].filter(Boolean).join(" ");
193
226
  return (
194
227
  <BaseButton {...htmlProps} onClick={onClick} type={type} className={classes}>
195
228
  {children}
@@ -201,12 +234,12 @@ function AlertClose({
201
234
  children,
202
235
  className,
203
236
  onClick,
204
- type = 'button',
205
- 'aria-label': ariaLabel = 'Dismiss alert',
237
+ type = "button",
238
+ "aria-label": ariaLabel = "Dismiss alert",
206
239
  ...htmlProps
207
240
  }: AlertCloseProps) {
208
241
  const { dismiss } = useAlertContext();
209
- const classes = [styles.close, className].filter(Boolean).join(' ');
242
+ const classes = [styles.close, className].filter(Boolean).join(" ");
210
243
 
211
244
  return (
212
245
  <BaseButton
@@ -216,7 +249,7 @@ function AlertClose({
216
249
  aria-label={ariaLabel}
217
250
  className={classes}
218
251
  >
219
- {children ?? '\u00D7'}
252
+ {children ?? "\u00D7"}
220
253
  </BaseButton>
221
254
  );
222
255
  }