@fragments-sdk/ui 0.12.0 → 0.14.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 (675) hide show
  1. package/dist/assets/ui.css +1642 -1679
  2. package/dist/chart.cjs.map +1 -1
  3. package/dist/chart.js.map +1 -1
  4. package/dist/codeblock.cjs +26 -18
  5. package/dist/codeblock.cjs.map +1 -1
  6. package/dist/codeblock.js +26 -18
  7. package/dist/codeblock.js.map +1 -1
  8. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  9. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  10. package/dist/components/Accordion/index.cjs +17 -6
  11. package/dist/components/Accordion/index.cjs.map +1 -1
  12. package/dist/components/Accordion/index.d.ts +25 -12
  13. package/dist/components/Accordion/index.d.ts.map +1 -1
  14. package/dist/components/Accordion/index.js +17 -6
  15. package/dist/components/Accordion/index.js.map +1 -1
  16. package/dist/components/Alert/Alert.module.scss.cjs +12 -12
  17. package/dist/components/Alert/Alert.module.scss.js +12 -12
  18. package/dist/components/Alert/index.cjs +37 -15
  19. package/dist/components/Alert/index.cjs.map +1 -1
  20. package/dist/components/Alert/index.d.ts +15 -22
  21. package/dist/components/Alert/index.d.ts.map +1 -1
  22. package/dist/components/Alert/index.js +37 -15
  23. package/dist/components/Alert/index.js.map +1 -1
  24. package/dist/components/AppShell/AppShell.module.scss.cjs +14 -14
  25. package/dist/components/AppShell/AppShell.module.scss.js +14 -14
  26. package/dist/components/AppShell/index.cjs +3 -1
  27. package/dist/components/AppShell/index.cjs.map +1 -1
  28. package/dist/components/AppShell/index.d.ts.map +1 -1
  29. package/dist/components/AppShell/index.js +3 -1
  30. package/dist/components/AppShell/index.js.map +1 -1
  31. package/dist/components/Avatar/index.cjs +9 -1
  32. package/dist/components/Avatar/index.cjs.map +1 -1
  33. package/dist/components/Avatar/index.d.ts +2 -0
  34. package/dist/components/Avatar/index.d.ts.map +1 -1
  35. package/dist/components/Avatar/index.js +9 -1
  36. package/dist/components/Avatar/index.js.map +1 -1
  37. package/dist/components/Badge/index.cjs +4 -2
  38. package/dist/components/Badge/index.cjs.map +1 -1
  39. package/dist/components/Badge/index.d.ts +3 -0
  40. package/dist/components/Badge/index.d.ts.map +1 -1
  41. package/dist/components/Badge/index.js +4 -2
  42. package/dist/components/Badge/index.js.map +1 -1
  43. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +11 -11
  44. package/dist/components/BentoGrid/BentoGrid.module.scss.js +11 -11
  45. package/dist/components/BentoGrid/index.cjs +8 -5
  46. package/dist/components/BentoGrid/index.cjs.map +1 -1
  47. package/dist/components/BentoGrid/index.d.ts +2 -8
  48. package/dist/components/BentoGrid/index.d.ts.map +1 -1
  49. package/dist/components/BentoGrid/index.js +8 -5
  50. package/dist/components/BentoGrid/index.js.map +1 -1
  51. package/dist/components/Box/index.cjs +12 -2
  52. package/dist/components/Box/index.cjs.map +1 -1
  53. package/dist/components/Box/index.d.ts +1 -1
  54. package/dist/components/Box/index.d.ts.map +1 -1
  55. package/dist/components/Box/index.js +12 -2
  56. package/dist/components/Box/index.js.map +1 -1
  57. package/dist/components/Breadcrumbs/index.cjs +3 -1
  58. package/dist/components/Breadcrumbs/index.cjs.map +1 -1
  59. package/dist/components/Breadcrumbs/index.d.ts +3 -1
  60. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  61. package/dist/components/Breadcrumbs/index.js +3 -1
  62. package/dist/components/Breadcrumbs/index.js.map +1 -1
  63. package/dist/components/Button/Button.module.scss.cjs +11 -11
  64. package/dist/components/Button/Button.module.scss.js +11 -11
  65. package/dist/components/Button/index.cjs +5 -2
  66. package/dist/components/Button/index.cjs.map +1 -1
  67. package/dist/components/Button/index.d.ts +3 -3
  68. package/dist/components/Button/index.d.ts.map +1 -1
  69. package/dist/components/Button/index.js +5 -2
  70. package/dist/components/Button/index.js.map +1 -1
  71. package/dist/components/ButtonGroup/index.cjs +3 -2
  72. package/dist/components/ButtonGroup/index.cjs.map +1 -1
  73. package/dist/components/ButtonGroup/index.d.ts +1 -2
  74. package/dist/components/ButtonGroup/index.d.ts.map +1 -1
  75. package/dist/components/ButtonGroup/index.js +3 -2
  76. package/dist/components/ButtonGroup/index.js.map +1 -1
  77. package/dist/components/Card/Card.module.scss.cjs +14 -14
  78. package/dist/components/Card/Card.module.scss.js +14 -14
  79. package/dist/components/Card/index.cjs +3 -22
  80. package/dist/components/Card/index.cjs.map +1 -1
  81. package/dist/components/Card/index.d.ts +6 -11
  82. package/dist/components/Card/index.d.ts.map +1 -1
  83. package/dist/components/Card/index.js +3 -22
  84. package/dist/components/Card/index.js.map +1 -1
  85. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  86. package/dist/components/Chart/Chart.module.scss.js +15 -15
  87. package/dist/components/Chart/index.d.ts +3 -3
  88. package/dist/components/Chart/index.d.ts.map +1 -1
  89. package/dist/components/Checkbox/Checkbox.module.scss.cjs +10 -10
  90. package/dist/components/Checkbox/Checkbox.module.scss.js +10 -10
  91. package/dist/components/Checkbox/index.cjs +11 -4
  92. package/dist/components/Checkbox/index.cjs.map +1 -1
  93. package/dist/components/Checkbox/index.d.ts +6 -0
  94. package/dist/components/Checkbox/index.d.ts.map +1 -1
  95. package/dist/components/Checkbox/index.js +11 -4
  96. package/dist/components/Checkbox/index.js.map +1 -1
  97. package/dist/components/Chip/index.cjs +11 -3
  98. package/dist/components/Chip/index.cjs.map +1 -1
  99. package/dist/components/Chip/index.d.ts +1 -2
  100. package/dist/components/Chip/index.d.ts.map +1 -1
  101. package/dist/components/Chip/index.js +11 -3
  102. package/dist/components/Chip/index.js.map +1 -1
  103. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +20 -20
  104. package/dist/components/CodeBlock/CodeBlock.module.scss.js +20 -20
  105. package/dist/components/CodeBlock/index.d.ts +8 -2
  106. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  107. package/dist/components/Collapsible/Collapsible.module.scss.cjs +10 -10
  108. package/dist/components/Collapsible/Collapsible.module.scss.js +10 -10
  109. package/dist/components/Collapsible/index.cjs +45 -10
  110. package/dist/components/Collapsible/index.cjs.map +1 -1
  111. package/dist/components/Collapsible/index.d.ts +6 -12
  112. package/dist/components/Collapsible/index.d.ts.map +1 -1
  113. package/dist/components/Collapsible/index.js +45 -10
  114. package/dist/components/Collapsible/index.js.map +1 -1
  115. package/dist/components/Combobox/Combobox.module.scss.cjs +15 -15
  116. package/dist/components/Combobox/Combobox.module.scss.js +15 -15
  117. package/dist/components/Combobox/index.cjs +86 -27
  118. package/dist/components/Combobox/index.cjs.map +1 -1
  119. package/dist/components/Combobox/index.d.ts +40 -23
  120. package/dist/components/Combobox/index.d.ts.map +1 -1
  121. package/dist/components/Combobox/index.js +86 -27
  122. package/dist/components/Combobox/index.js.map +1 -1
  123. package/dist/components/Command/Command.module.scss.cjs +11 -11
  124. package/dist/components/Command/Command.module.scss.js +11 -11
  125. package/dist/components/Command/index.cjs +55 -22
  126. package/dist/components/Command/index.cjs.map +1 -1
  127. package/dist/components/Command/index.d.ts +3 -3
  128. package/dist/components/Command/index.d.ts.map +1 -1
  129. package/dist/components/Command/index.js +55 -22
  130. package/dist/components/Command/index.js.map +1 -1
  131. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  132. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  133. package/dist/components/ConversationList/index.cjs +6 -3
  134. package/dist/components/ConversationList/index.cjs.map +1 -1
  135. package/dist/components/ConversationList/index.d.ts +1 -1
  136. package/dist/components/ConversationList/index.d.ts.map +1 -1
  137. package/dist/components/ConversationList/index.js +6 -3
  138. package/dist/components/ConversationList/index.js.map +1 -1
  139. package/dist/components/DataTable/DataTable.module.scss.cjs +26 -26
  140. package/dist/components/DataTable/DataTable.module.scss.js +26 -26
  141. package/dist/components/DataTable/index.cjs +25 -4
  142. package/dist/components/DataTable/index.cjs.map +1 -1
  143. package/dist/components/DataTable/index.d.ts +7 -2
  144. package/dist/components/DataTable/index.d.ts.map +1 -1
  145. package/dist/components/DataTable/index.js +25 -4
  146. package/dist/components/DataTable/index.js.map +1 -1
  147. package/dist/components/DatePicker/DatePicker.module.scss.cjs +26 -26
  148. package/dist/components/DatePicker/DatePicker.module.scss.js +26 -26
  149. package/dist/components/DatePicker/index.d.ts +4 -5
  150. package/dist/components/DatePicker/index.d.ts.map +1 -1
  151. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  152. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  153. package/dist/components/Dialog/index.cjs +14 -10
  154. package/dist/components/Dialog/index.cjs.map +1 -1
  155. package/dist/components/Dialog/index.d.ts +26 -17
  156. package/dist/components/Dialog/index.d.ts.map +1 -1
  157. package/dist/components/Dialog/index.js +14 -10
  158. package/dist/components/Dialog/index.js.map +1 -1
  159. package/dist/components/Drawer/Drawer.module.scss.cjs +26 -26
  160. package/dist/components/Drawer/Drawer.module.scss.js +26 -26
  161. package/dist/components/Drawer/index.cjs +41 -11
  162. package/dist/components/Drawer/index.cjs.map +1 -1
  163. package/dist/components/Drawer/index.d.ts +11 -13
  164. package/dist/components/Drawer/index.d.ts.map +1 -1
  165. package/dist/components/Drawer/index.js +24 -11
  166. package/dist/components/Drawer/index.js.map +1 -1
  167. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  168. package/dist/components/Editor/Editor.module.scss.js +17 -17
  169. package/dist/components/Editor/index.cjs +32 -7
  170. package/dist/components/Editor/index.cjs.map +1 -1
  171. package/dist/components/Editor/index.d.ts +16 -3
  172. package/dist/components/Editor/index.d.ts.map +1 -1
  173. package/dist/components/Editor/index.js +32 -7
  174. package/dist/components/Editor/index.js.map +1 -1
  175. package/dist/components/EmptyState/EmptyState.module.scss.cjs +8 -8
  176. package/dist/components/EmptyState/EmptyState.module.scss.js +8 -8
  177. package/dist/components/EmptyState/index.cjs +12 -8
  178. package/dist/components/EmptyState/index.cjs.map +1 -1
  179. package/dist/components/EmptyState/index.d.ts +8 -12
  180. package/dist/components/EmptyState/index.d.ts.map +1 -1
  181. package/dist/components/EmptyState/index.js +12 -8
  182. package/dist/components/EmptyState/index.js.map +1 -1
  183. package/dist/components/Fieldset/index.cjs +2 -2
  184. package/dist/components/Fieldset/index.cjs.map +1 -1
  185. package/dist/components/Fieldset/index.d.ts +2 -3
  186. package/dist/components/Fieldset/index.d.ts.map +1 -1
  187. package/dist/components/Fieldset/index.js +2 -2
  188. package/dist/components/Fieldset/index.js.map +1 -1
  189. package/dist/components/Form/index.cjs +13 -13
  190. package/dist/components/Form/index.cjs.map +1 -1
  191. package/dist/components/Form/index.d.ts +5 -2
  192. package/dist/components/Form/index.d.ts.map +1 -1
  193. package/dist/components/Form/index.js +13 -13
  194. package/dist/components/Form/index.js.map +1 -1
  195. package/dist/components/Grid/Grid.module.scss.cjs +57 -57
  196. package/dist/components/Grid/Grid.module.scss.js +57 -57
  197. package/dist/components/Grid/index.cjs +7 -4
  198. package/dist/components/Grid/index.cjs.map +1 -1
  199. package/dist/components/Grid/index.d.ts +5 -3
  200. package/dist/components/Grid/index.d.ts.map +1 -1
  201. package/dist/components/Grid/index.js +7 -4
  202. package/dist/components/Grid/index.js.map +1 -1
  203. package/dist/components/Header/Header.module.scss.cjs +21 -21
  204. package/dist/components/Header/Header.module.scss.js +21 -21
  205. package/dist/components/Header/index.cjs +61 -23
  206. package/dist/components/Header/index.cjs.map +1 -1
  207. package/dist/components/Header/index.d.ts +27 -34
  208. package/dist/components/Header/index.d.ts.map +1 -1
  209. package/dist/components/Header/index.js +61 -23
  210. package/dist/components/Header/index.js.map +1 -1
  211. package/dist/components/Icon/index.cjs +11 -1
  212. package/dist/components/Icon/index.cjs.map +1 -1
  213. package/dist/components/Icon/index.d.ts +28 -9
  214. package/dist/components/Icon/index.d.ts.map +1 -1
  215. package/dist/components/Icon/index.js +11 -1
  216. package/dist/components/Icon/index.js.map +1 -1
  217. package/dist/components/Image/index.cjs +15 -4
  218. package/dist/components/Image/index.cjs.map +1 -1
  219. package/dist/components/Image/index.d.ts +7 -1
  220. package/dist/components/Image/index.d.ts.map +1 -1
  221. package/dist/components/Image/index.js +15 -4
  222. package/dist/components/Image/index.js.map +1 -1
  223. package/dist/components/Input/Input.module.scss.cjs +13 -13
  224. package/dist/components/Input/Input.module.scss.js +13 -13
  225. package/dist/components/Input/index.cjs +79 -31
  226. package/dist/components/Input/index.cjs.map +1 -1
  227. package/dist/components/Input/index.d.ts +17 -3
  228. package/dist/components/Input/index.d.ts.map +1 -1
  229. package/dist/components/Input/index.js +79 -31
  230. package/dist/components/Input/index.js.map +1 -1
  231. package/dist/components/Link/index.cjs +17 -0
  232. package/dist/components/Link/index.cjs.map +1 -1
  233. package/dist/components/Link/index.d.ts.map +1 -1
  234. package/dist/components/Link/index.js +17 -0
  235. package/dist/components/Link/index.js.map +1 -1
  236. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  237. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  238. package/dist/components/Listbox/index.cjs +10 -6
  239. package/dist/components/Listbox/index.cjs.map +1 -1
  240. package/dist/components/Listbox/index.d.ts +2 -2
  241. package/dist/components/Listbox/index.d.ts.map +1 -1
  242. package/dist/components/Listbox/index.js +10 -6
  243. package/dist/components/Listbox/index.js.map +1 -1
  244. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  245. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  246. package/dist/components/Markdown/index.d.ts +4 -2
  247. package/dist/components/Markdown/index.d.ts.map +1 -1
  248. package/dist/components/Menu/Menu.module.scss.cjs +13 -13
  249. package/dist/components/Menu/Menu.module.scss.js +13 -13
  250. package/dist/components/Menu/index.cjs +41 -16
  251. package/dist/components/Menu/index.cjs.map +1 -1
  252. package/dist/components/Menu/index.d.ts +24 -27
  253. package/dist/components/Menu/index.d.ts.map +1 -1
  254. package/dist/components/Menu/index.js +41 -16
  255. package/dist/components/Menu/index.js.map +1 -1
  256. package/dist/components/Message/Message.module.scss.cjs +18 -18
  257. package/dist/components/Message/Message.module.scss.js +18 -18
  258. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
  259. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
  260. package/dist/components/NavigationMenu/NavigationMenuContext.cjs.map +1 -1
  261. package/dist/components/NavigationMenu/NavigationMenuContext.d.ts +9 -0
  262. package/dist/components/NavigationMenu/NavigationMenuContext.d.ts.map +1 -1
  263. package/dist/components/NavigationMenu/NavigationMenuContext.js.map +1 -1
  264. package/dist/components/NavigationMenu/index.cjs +92 -21
  265. package/dist/components/NavigationMenu/index.cjs.map +1 -1
  266. package/dist/components/NavigationMenu/index.d.ts +5 -1
  267. package/dist/components/NavigationMenu/index.d.ts.map +1 -1
  268. package/dist/components/NavigationMenu/index.js +92 -21
  269. package/dist/components/NavigationMenu/index.js.map +1 -1
  270. package/dist/components/NavigationMenu/useNavigationMenu.cjs +2 -0
  271. package/dist/components/NavigationMenu/useNavigationMenu.cjs.map +1 -1
  272. package/dist/components/NavigationMenu/useNavigationMenu.d.ts +1 -0
  273. package/dist/components/NavigationMenu/useNavigationMenu.d.ts.map +1 -1
  274. package/dist/components/NavigationMenu/useNavigationMenu.js +2 -0
  275. package/dist/components/NavigationMenu/useNavigationMenu.js.map +1 -1
  276. package/dist/components/Pagination/index.cjs +37 -9
  277. package/dist/components/Pagination/index.cjs.map +1 -1
  278. package/dist/components/Pagination/index.d.ts +2 -3
  279. package/dist/components/Pagination/index.d.ts.map +1 -1
  280. package/dist/components/Pagination/index.js +37 -9
  281. package/dist/components/Pagination/index.js.map +1 -1
  282. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  283. package/dist/components/Popover/Popover.module.scss.js +10 -10
  284. package/dist/components/Popover/index.cjs +52 -10
  285. package/dist/components/Popover/index.cjs.map +1 -1
  286. package/dist/components/Popover/index.d.ts +22 -16
  287. package/dist/components/Popover/index.d.ts.map +1 -1
  288. package/dist/components/Popover/index.js +35 -10
  289. package/dist/components/Popover/index.js.map +1 -1
  290. package/dist/components/Progress/index.cjs +3 -1
  291. package/dist/components/Progress/index.cjs.map +1 -1
  292. package/dist/components/Progress/index.d.ts.map +1 -1
  293. package/dist/components/Progress/index.js +3 -1
  294. package/dist/components/Progress/index.js.map +1 -1
  295. package/dist/components/Prompt/Prompt.module.scss.cjs +14 -14
  296. package/dist/components/Prompt/Prompt.module.scss.js +14 -14
  297. package/dist/components/Prompt/index.cjs +14 -2
  298. package/dist/components/Prompt/index.cjs.map +1 -1
  299. package/dist/components/Prompt/index.d.ts +8 -5
  300. package/dist/components/Prompt/index.d.ts.map +1 -1
  301. package/dist/components/Prompt/index.js +14 -2
  302. package/dist/components/Prompt/index.js.map +1 -1
  303. package/dist/components/RadioGroup/index.cjs +14 -6
  304. package/dist/components/RadioGroup/index.cjs.map +1 -1
  305. package/dist/components/RadioGroup/index.d.ts +12 -2
  306. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  307. package/dist/components/RadioGroup/index.js +14 -6
  308. package/dist/components/RadioGroup/index.js.map +1 -1
  309. package/dist/components/Select/Select.module.scss.cjs +10 -10
  310. package/dist/components/Select/Select.module.scss.js +10 -10
  311. package/dist/components/Select/index.cjs +43 -29
  312. package/dist/components/Select/index.cjs.map +1 -1
  313. package/dist/components/Select/index.d.ts +12 -11
  314. package/dist/components/Select/index.d.ts.map +1 -1
  315. package/dist/components/Select/index.js +43 -29
  316. package/dist/components/Select/index.js.map +1 -1
  317. package/dist/components/Sidebar/Sidebar.module.scss.cjs +42 -42
  318. package/dist/components/Sidebar/Sidebar.module.scss.js +42 -42
  319. package/dist/components/Sidebar/index.cjs +73 -26
  320. package/dist/components/Sidebar/index.cjs.map +1 -1
  321. package/dist/components/Sidebar/index.d.ts +23 -35
  322. package/dist/components/Sidebar/index.d.ts.map +1 -1
  323. package/dist/components/Sidebar/index.js +73 -26
  324. package/dist/components/Sidebar/index.js.map +1 -1
  325. package/dist/components/Skeleton/index.cjs +6 -3
  326. package/dist/components/Skeleton/index.cjs.map +1 -1
  327. package/dist/components/Skeleton/index.d.ts +3 -7
  328. package/dist/components/Skeleton/index.d.ts.map +1 -1
  329. package/dist/components/Skeleton/index.js +6 -3
  330. package/dist/components/Skeleton/index.js.map +1 -1
  331. package/dist/components/Slider/Slider.module.scss.cjs +13 -10
  332. package/dist/components/Slider/Slider.module.scss.cjs.map +1 -1
  333. package/dist/components/Slider/Slider.module.scss.js +13 -10
  334. package/dist/components/Slider/Slider.module.scss.js.map +1 -1
  335. package/dist/components/Slider/index.cjs +33 -1
  336. package/dist/components/Slider/index.cjs.map +1 -1
  337. package/dist/components/Slider/index.d.ts +2 -0
  338. package/dist/components/Slider/index.d.ts.map +1 -1
  339. package/dist/components/Slider/index.js +33 -1
  340. package/dist/components/Slider/index.js.map +1 -1
  341. package/dist/components/Stack/index.cjs +12 -2
  342. package/dist/components/Stack/index.cjs.map +1 -1
  343. package/dist/components/Stack/index.d.ts +3 -2
  344. package/dist/components/Stack/index.d.ts.map +1 -1
  345. package/dist/components/Stack/index.js +12 -2
  346. package/dist/components/Stack/index.js.map +1 -1
  347. package/dist/components/Table/Table.module.scss.cjs +16 -16
  348. package/dist/components/Table/Table.module.scss.js +16 -16
  349. package/dist/components/Table/index.d.ts +10 -4
  350. package/dist/components/Table/index.d.ts.map +1 -1
  351. package/dist/components/TableOfContents/index.cjs +8 -5
  352. package/dist/components/TableOfContents/index.cjs.map +1 -1
  353. package/dist/components/TableOfContents/index.d.ts +2 -2
  354. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  355. package/dist/components/TableOfContents/index.js +8 -5
  356. package/dist/components/TableOfContents/index.js.map +1 -1
  357. package/dist/components/Tabs/Tabs.module.scss.cjs +9 -9
  358. package/dist/components/Tabs/Tabs.module.scss.js +9 -9
  359. package/dist/components/Tabs/index.cjs +9 -6
  360. package/dist/components/Tabs/index.cjs.map +1 -1
  361. package/dist/components/Tabs/index.d.ts +4 -1
  362. package/dist/components/Tabs/index.d.ts.map +1 -1
  363. package/dist/components/Tabs/index.js +9 -6
  364. package/dist/components/Tabs/index.js.map +1 -1
  365. package/dist/components/Textarea/index.cjs +61 -43
  366. package/dist/components/Textarea/index.cjs.map +1 -1
  367. package/dist/components/Textarea/index.d.ts +9 -1
  368. package/dist/components/Textarea/index.d.ts.map +1 -1
  369. package/dist/components/Textarea/index.js +61 -43
  370. package/dist/components/Textarea/index.js.map +1 -1
  371. package/dist/components/Theme/index.cjs +3 -1
  372. package/dist/components/Theme/index.cjs.map +1 -1
  373. package/dist/components/Theme/index.d.ts +2 -4
  374. package/dist/components/Theme/index.d.ts.map +1 -1
  375. package/dist/components/Theme/index.js +3 -1
  376. package/dist/components/Theme/index.js.map +1 -1
  377. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +22 -22
  378. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +22 -22
  379. package/dist/components/Toast/Toast.module.scss.cjs +20 -20
  380. package/dist/components/Toast/Toast.module.scss.js +20 -20
  381. package/dist/components/Toast/index.cjs +15 -14
  382. package/dist/components/Toast/index.cjs.map +1 -1
  383. package/dist/components/Toast/index.d.ts +9 -5
  384. package/dist/components/Toast/index.d.ts.map +1 -1
  385. package/dist/components/Toast/index.js +15 -14
  386. package/dist/components/Toast/index.js.map +1 -1
  387. package/dist/components/Toggle/Toggle.module.scss.cjs +11 -11
  388. package/dist/components/Toggle/Toggle.module.scss.js +11 -11
  389. package/dist/components/Toggle/index.cjs +1 -1
  390. package/dist/components/Toggle/index.cjs.map +1 -1
  391. package/dist/components/Toggle/index.js +1 -1
  392. package/dist/components/Toggle/index.js.map +1 -1
  393. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +17 -17
  394. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +17 -17
  395. package/dist/components/ToggleGroup/index.cjs +27 -8
  396. package/dist/components/ToggleGroup/index.cjs.map +1 -1
  397. package/dist/components/ToggleGroup/index.d.ts +8 -3
  398. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  399. package/dist/components/ToggleGroup/index.js +27 -8
  400. package/dist/components/ToggleGroup/index.js.map +1 -1
  401. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  402. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  403. package/dist/components/Tooltip/index.cjs +32 -10
  404. package/dist/components/Tooltip/index.cjs.map +1 -1
  405. package/dist/components/Tooltip/index.d.ts +3 -1
  406. package/dist/components/Tooltip/index.d.ts.map +1 -1
  407. package/dist/components/Tooltip/index.js +32 -10
  408. package/dist/components/Tooltip/index.js.map +1 -1
  409. package/dist/components/VisuallyHidden/index.cjs +10 -2
  410. package/dist/components/VisuallyHidden/index.cjs.map +1 -1
  411. package/dist/components/VisuallyHidden/index.d.ts +1 -1
  412. package/dist/components/VisuallyHidden/index.d.ts.map +1 -1
  413. package/dist/components/VisuallyHidden/index.js +10 -2
  414. package/dist/components/VisuallyHidden/index.js.map +1 -1
  415. package/dist/datepicker.cjs +32 -11
  416. package/dist/datepicker.cjs.map +1 -1
  417. package/dist/datepicker.js +32 -11
  418. package/dist/datepicker.js.map +1 -1
  419. package/dist/index.cjs.map +1 -1
  420. package/dist/index.d.ts +2 -1
  421. package/dist/index.d.ts.map +1 -1
  422. package/dist/index.js.map +1 -1
  423. package/dist/markdown.cjs +5 -5
  424. package/dist/markdown.cjs.map +1 -1
  425. package/dist/markdown.js +5 -5
  426. package/dist/markdown.js.map +1 -1
  427. package/dist/table.cjs +19 -3
  428. package/dist/table.cjs.map +1 -1
  429. package/dist/table.js +19 -3
  430. package/dist/table.js.map +1 -1
  431. package/fragments.json +1 -1
  432. package/package.json +2 -2
  433. package/src/blocks/AccountSettings.block.ts +1 -1
  434. package/src/blocks/ActivityFeed.block.ts +1 -1
  435. package/src/blocks/ActivityFeedSkeleton.block.ts +1 -1
  436. package/src/blocks/BlogEditor.block.ts +1 -1
  437. package/src/blocks/ChatInterface.block.ts +1 -1
  438. package/src/blocks/ChatMessages.block.ts +1 -1
  439. package/src/blocks/CheckoutForm.block.ts +1 -1
  440. package/src/blocks/CommandPalette.block.ts +1 -1
  441. package/src/blocks/ContactForm.block.ts +1 -1
  442. package/src/blocks/DashboardLayout.block.ts +1 -1
  443. package/src/blocks/DashboardPage.block.ts +1 -1
  444. package/src/blocks/DashboardSkeleton.block.ts +1 -1
  445. package/src/blocks/DataTable.block.ts +1 -1
  446. package/src/blocks/EmptyState.block.ts +1 -1
  447. package/src/blocks/FAQSection.block.ts +1 -1
  448. package/src/blocks/FeatureGrid.block.ts +1 -1
  449. package/src/blocks/HeroSection.block.ts +1 -1
  450. package/src/blocks/LoginForm.block.ts +1 -1
  451. package/src/blocks/NavigationHeader.block.ts +1 -1
  452. package/src/blocks/PaginatedTable.block.ts +1 -1
  453. package/src/blocks/PricingComparison.block.ts +1 -1
  454. package/src/blocks/ProductCard.block.ts +1 -1
  455. package/src/blocks/RegistrationForm.block.ts +1 -1
  456. package/src/blocks/SettingsDrawer.block.ts +1 -1
  457. package/src/blocks/SettingsPanel.block.ts +1 -1
  458. package/src/blocks/ShoppingCart.block.ts +1 -1
  459. package/src/blocks/StatsCard.block.ts +1 -1
  460. package/src/blocks/StatsCardSkeleton.block.ts +1 -1
  461. package/src/blocks/TableSkeleton.block.ts +1 -1
  462. package/src/blocks/ThinkingStates.block.ts +1 -1
  463. package/src/components/Accordion/Accordion.fragment.tsx +7 -7
  464. package/src/components/Accordion/Accordion.module.scss +2 -2
  465. package/src/components/Accordion/Accordion.test.tsx +41 -5
  466. package/src/components/Accordion/index.tsx +41 -14
  467. package/src/components/Alert/Alert.fragment.tsx +5 -1
  468. package/src/components/Alert/Alert.module.scss +1 -1
  469. package/src/components/Alert/Alert.test.tsx +25 -0
  470. package/src/components/Alert/index.tsx +49 -30
  471. package/src/components/AppShell/AppShell.fragment.tsx +1 -1
  472. package/src/components/AppShell/AppShell.module.scss +5 -5
  473. package/src/components/AppShell/AppShell.test.tsx +12 -0
  474. package/src/components/AppShell/index.tsx +2 -0
  475. package/src/components/Avatar/Avatar.fragment.tsx +7 -1
  476. package/src/components/Avatar/Avatar.test.tsx +24 -2
  477. package/src/components/Avatar/index.tsx +13 -1
  478. package/src/components/Badge/Badge.fragment.tsx +16 -1
  479. package/src/components/Badge/Badge.test.tsx +8 -1
  480. package/src/components/Badge/index.tsx +7 -2
  481. package/src/components/BentoGrid/BentoGrid.fragment.tsx +3 -1
  482. package/src/components/BentoGrid/BentoGrid.module.scss +52 -16
  483. package/src/components/BentoGrid/BentoGrid.test.tsx +20 -0
  484. package/src/components/BentoGrid/index.tsx +9 -12
  485. package/src/components/Box/Box.fragment.tsx +3 -1
  486. package/src/components/Box/Box.test.tsx +14 -0
  487. package/src/components/Box/index.tsx +8 -2
  488. package/src/components/Breadcrumbs/Breadcrumbs.fragment.tsx +19 -1
  489. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +13 -0
  490. package/src/components/Breadcrumbs/index.tsx +5 -1
  491. package/src/components/Button/Button.fragment.tsx +28 -6
  492. package/src/components/Button/Button.module.scss +3 -3
  493. package/src/components/Button/Button.test.tsx +11 -0
  494. package/src/components/Button/index.tsx +16 -6
  495. package/src/components/ButtonGroup/ButtonGroup.fragment.tsx +4 -2
  496. package/src/components/ButtonGroup/ButtonGroup.test.tsx +10 -0
  497. package/src/components/ButtonGroup/index.tsx +3 -3
  498. package/src/components/Card/Card.fragment.tsx +24 -9
  499. package/src/components/Card/Card.module.scss +8 -8
  500. package/src/components/Card/Card.test.tsx +4 -5
  501. package/src/components/Card/index.tsx +8 -38
  502. package/src/components/Chart/Chart.fragment.tsx +5 -3
  503. package/src/components/Chart/Chart.module.scss +1 -1
  504. package/src/components/Chart/index.tsx +12 -10
  505. package/src/components/Checkbox/Checkbox.fragment.tsx +27 -1
  506. package/src/components/Checkbox/Checkbox.module.scss +3 -3
  507. package/src/components/Checkbox/index.tsx +16 -3
  508. package/src/components/Chip/Chip.fragment.tsx +20 -3
  509. package/src/components/Chip/Chip.test.tsx +28 -0
  510. package/src/components/Chip/index.tsx +14 -6
  511. package/src/components/CodeBlock/CodeBlock.fragment.tsx +3 -1
  512. package/src/components/CodeBlock/CodeBlock.module.scss +9 -9
  513. package/src/components/CodeBlock/CodeBlock.test.tsx +21 -0
  514. package/src/components/CodeBlock/index.tsx +23 -9
  515. package/src/components/Collapsible/Collapsible.fragment.tsx +1 -1
  516. package/src/components/Collapsible/Collapsible.module.scss +1 -1
  517. package/src/components/Collapsible/Collapsible.test.tsx +41 -0
  518. package/src/components/Collapsible/index.tsx +53 -16
  519. package/src/components/ColorPicker/ColorPicker.fragment.tsx +1 -1
  520. package/src/components/Combobox/Combobox.fragment.tsx +63 -9
  521. package/src/components/Combobox/Combobox.module.scss +4 -7
  522. package/src/components/Combobox/Combobox.test.tsx +79 -3
  523. package/src/components/Combobox/index.tsx +140 -51
  524. package/src/components/Command/Command.fragment.tsx +3 -3
  525. package/src/components/Command/Command.module.scss +5 -5
  526. package/src/components/Command/Command.test.tsx +110 -0
  527. package/src/components/Command/index.tsx +66 -20
  528. package/src/components/ConversationList/ConversationList.fragment.tsx +4 -3
  529. package/src/components/ConversationList/ConversationList.module.scss +5 -5
  530. package/src/components/ConversationList/ConversationList.test.tsx +21 -0
  531. package/src/components/ConversationList/index.tsx +8 -4
  532. package/src/components/DataTable/DataTable.fragment.tsx +12 -2
  533. package/src/components/DataTable/DataTable.module.scss +3 -3
  534. package/src/components/DataTable/DataTable.test.tsx +34 -4
  535. package/src/components/DataTable/index.tsx +44 -6
  536. package/src/components/DatePicker/DatePicker.fragment.tsx +3 -1
  537. package/src/components/DatePicker/DatePicker.module.scss +1 -1
  538. package/src/components/DatePicker/DatePicker.test.tsx +96 -0
  539. package/src/components/DatePicker/index.tsx +38 -16
  540. package/src/components/Dialog/Dialog.fragment.tsx +28 -1
  541. package/src/components/Dialog/Dialog.module.scss +6 -6
  542. package/src/components/Dialog/Dialog.test.tsx +23 -0
  543. package/src/components/Dialog/index.tsx +38 -21
  544. package/src/components/Drawer/Drawer.fragment.tsx +4 -1
  545. package/src/components/Drawer/Drawer.module.scss +3 -3
  546. package/src/components/Drawer/Drawer.test.tsx +35 -0
  547. package/src/components/Drawer/index.tsx +29 -18
  548. package/src/components/Editor/Editor.fragment.tsx +10 -3
  549. package/src/components/Editor/Editor.module.scss +4 -4
  550. package/src/components/Editor/Editor.test.tsx +68 -1
  551. package/src/components/Editor/index.tsx +60 -9
  552. package/src/components/EmptyState/EmptyState.fragment.tsx +3 -1
  553. package/src/components/EmptyState/EmptyState.module.scss +3 -3
  554. package/src/components/EmptyState/EmptyState.test.tsx +18 -0
  555. package/src/components/EmptyState/index.tsx +16 -16
  556. package/src/components/Field/Field.fragment.tsx +1 -1
  557. package/src/components/Fieldset/Fieldset.fragment.tsx +3 -1
  558. package/src/components/Fieldset/Fieldset.test.tsx +14 -0
  559. package/src/components/Fieldset/index.tsx +3 -4
  560. package/src/components/Form/Form.fragment.tsx +12 -7
  561. package/src/components/Form/index.tsx +13 -17
  562. package/src/components/Grid/Grid.fragment.tsx +4 -3
  563. package/src/components/Grid/Grid.module.scss +3 -3
  564. package/src/components/Grid/index.tsx +11 -6
  565. package/src/components/Header/Header.fragment.tsx +31 -1
  566. package/src/components/Header/Header.module.scss +6 -6
  567. package/src/components/Header/Header.test.tsx +95 -1
  568. package/src/components/Header/index.tsx +95 -46
  569. package/src/components/Icon/Icon.fragment.tsx +21 -8
  570. package/src/components/Icon/Icon.test.tsx +27 -3
  571. package/src/components/Icon/index.tsx +39 -15
  572. package/src/components/Image/Image.fragment.tsx +15 -1
  573. package/src/components/Image/Image.test.tsx +32 -1
  574. package/src/components/Image/index.tsx +24 -4
  575. package/src/components/Input/Input.fragment.tsx +49 -1
  576. package/src/components/Input/Input.module.scss +4 -2
  577. package/src/components/Input/Input.test.tsx +3 -3
  578. package/src/components/Input/index.tsx +103 -37
  579. package/src/components/Link/Link.fragment.tsx +7 -6
  580. package/src/components/Link/Link.test.tsx +17 -1
  581. package/src/components/Link/index.tsx +22 -0
  582. package/src/components/List/List.fragment.tsx +1 -1
  583. package/src/components/Listbox/Listbox.fragment.tsx +3 -3
  584. package/src/components/Listbox/Listbox.module.scss +4 -4
  585. package/src/components/Listbox/Listbox.test.tsx +14 -0
  586. package/src/components/Listbox/index.tsx +12 -2
  587. package/src/components/Loading/Loading.fragment.tsx +1 -1
  588. package/src/components/Markdown/Markdown.fragment.tsx +5 -3
  589. package/src/components/Markdown/Markdown.module.scss +5 -5
  590. package/src/components/Markdown/Markdown.test.tsx +6 -0
  591. package/src/components/Markdown/index.tsx +12 -9
  592. package/src/components/Menu/Menu.fragment.tsx +19 -1
  593. package/src/components/Menu/Menu.module.scss +11 -11
  594. package/src/components/Menu/index.tsx +50 -33
  595. package/src/components/Message/Message.fragment.tsx +1 -1
  596. package/src/components/Message/Message.module.scss +3 -3
  597. package/src/components/NavigationMenu/NavigationMenu.fragment.tsx +10 -2
  598. package/src/components/NavigationMenu/NavigationMenu.module.scss +7 -7
  599. package/src/components/NavigationMenu/NavigationMenu.test.tsx +88 -4
  600. package/src/components/NavigationMenu/NavigationMenuContext.ts +17 -0
  601. package/src/components/NavigationMenu/index.tsx +119 -20
  602. package/src/components/NavigationMenu/useNavigationMenu.ts +4 -0
  603. package/src/components/Pagination/Pagination.fragment.tsx +4 -1
  604. package/src/components/Pagination/Pagination.test.tsx +39 -0
  605. package/src/components/Pagination/index.tsx +36 -10
  606. package/src/components/Popover/Popover.fragment.tsx +18 -1
  607. package/src/components/Popover/Popover.module.scss +13 -13
  608. package/src/components/Popover/Popover.test.tsx +23 -0
  609. package/src/components/Popover/index.tsx +44 -22
  610. package/src/components/Progress/Progress.fragment.tsx +3 -1
  611. package/src/components/Progress/Progress.test.tsx +8 -0
  612. package/src/components/Progress/index.tsx +9 -1
  613. package/src/components/Prompt/Prompt.fragment.tsx +4 -1
  614. package/src/components/Prompt/Prompt.module.scss +3 -3
  615. package/src/components/Prompt/Prompt.test.tsx +19 -0
  616. package/src/components/Prompt/index.tsx +24 -6
  617. package/src/components/RadioGroup/RadioGroup.fragment.tsx +31 -1
  618. package/src/components/RadioGroup/index.tsx +22 -3
  619. package/src/components/ScrollArea/ScrollArea.fragment.tsx +1 -1
  620. package/src/components/Select/Select.fragment.tsx +30 -3
  621. package/src/components/Select/Select.module.scss +3 -3
  622. package/src/components/Select/Select.test.tsx +41 -0
  623. package/src/components/Select/index.tsx +55 -44
  624. package/src/components/Separator/Separator.fragment.tsx +1 -1
  625. package/src/components/Sidebar/Sidebar.fragment.tsx +3 -1
  626. package/src/components/Sidebar/Sidebar.module.scss +20 -20
  627. package/src/components/Sidebar/Sidebar.test.tsx +108 -4
  628. package/src/components/Sidebar/index.tsx +93 -51
  629. package/src/components/Skeleton/Skeleton.fragment.tsx +3 -1
  630. package/src/components/Skeleton/Skeleton.test.tsx +12 -0
  631. package/src/components/Skeleton/index.tsx +6 -7
  632. package/src/components/Slider/Slider.fragment.tsx +21 -1
  633. package/src/components/Slider/Slider.module.scss +31 -0
  634. package/src/components/Slider/Slider.test.tsx +16 -0
  635. package/src/components/Slider/index.tsx +40 -1
  636. package/src/components/Stack/Stack.fragment.tsx +3 -1
  637. package/src/components/Stack/index.tsx +13 -6
  638. package/src/components/Table/Table.fragment.tsx +43 -2
  639. package/src/components/Table/Table.module.scss +2 -2
  640. package/src/components/Table/index.tsx +23 -5
  641. package/src/components/TableOfContents/TableOfContents.fragment.tsx +4 -2
  642. package/src/components/TableOfContents/TableOfContents.test.tsx +34 -9
  643. package/src/components/TableOfContents/index.tsx +9 -5
  644. package/src/components/Tabs/Tabs.fragment.tsx +33 -8
  645. package/src/components/Tabs/Tabs.module.scss +8 -8
  646. package/src/components/Tabs/index.tsx +22 -14
  647. package/src/components/Text/Text.fragment.tsx +1 -1
  648. package/src/components/Textarea/Textarea.fragment.tsx +27 -1
  649. package/src/components/Textarea/index.tsx +39 -14
  650. package/src/components/Theme/Theme.fragment.tsx +3 -1
  651. package/src/components/Theme/Theme.test.tsx +11 -0
  652. package/src/components/Theme/index.tsx +3 -3
  653. package/src/components/ThinkingIndicator/ThinkingIndicator.fragment.tsx +1 -1
  654. package/src/components/ThinkingIndicator/ThinkingIndicator.module.scss +1 -1
  655. package/src/components/Toast/Toast.fragment.tsx +6 -3
  656. package/src/components/Toast/Toast.module.scss +8 -6
  657. package/src/components/Toast/index.tsx +24 -20
  658. package/src/components/Toggle/Toggle.fragment.tsx +1 -1
  659. package/src/components/Toggle/Toggle.module.scss +61 -21
  660. package/src/components/Toggle/index.tsx +3 -3
  661. package/src/components/ToggleGroup/ToggleGroup.fragment.tsx +33 -8
  662. package/src/components/ToggleGroup/ToggleGroup.module.scss +3 -3
  663. package/src/components/ToggleGroup/index.tsx +29 -9
  664. package/src/components/Tooltip/Tooltip.fragment.tsx +16 -1
  665. package/src/components/Tooltip/Tooltip.module.scss +1 -1
  666. package/src/components/Tooltip/Tooltip.test.tsx +17 -0
  667. package/src/components/Tooltip/index.tsx +60 -31
  668. package/src/components/VisuallyHidden/VisuallyHidden.fragment.tsx +3 -1
  669. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +12 -0
  670. package/src/components/VisuallyHidden/index.tsx +7 -3
  671. package/src/index.ts +3 -2
  672. package/src/tokens/_computed.scss +1 -19
  673. package/src/tokens/_density.scss +0 -42
  674. package/src/tokens/_mixins.scss +4 -0
  675. package/src/tokens/_variables.scss +12 -114
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const container = "_container_1gwoj_1";
4
- const topleft = "_topleft_1gwoj_15";
5
- const topcenter = "_topcenter_1gwoj_20";
6
- const topright = "_topright_1gwoj_26";
7
- const bottomleft = "_bottomleft_1gwoj_31";
8
- const bottomcenter = "_bottomcenter_1gwoj_37";
9
- const bottomright = "_bottomright_1gwoj_44";
10
- const toast = "_toast_1gwoj_50";
11
- const toastEnter = "_toastEnter_1gwoj_1";
12
- const icon = "_icon_1gwoj_73";
13
- const success = "_success_1gwoj_77";
14
- const error = "_error_1gwoj_84";
15
- const warning = "_warning_1gwoj_91";
16
- const info = "_info_1gwoj_98";
17
- const content = "_content_1gwoj_116";
18
- const title = "_title_1gwoj_121";
19
- const description = "_description_1gwoj_128";
20
- const action = "_action_1gwoj_135";
21
- const close = "_close_1gwoj_160";
3
+ const container = "_container_1cd0d_1";
4
+ const topleft = "_topleft_1cd0d_15";
5
+ const topcenter = "_topcenter_1cd0d_20";
6
+ const topright = "_topright_1cd0d_26";
7
+ const bottomleft = "_bottomleft_1cd0d_31";
8
+ const bottomcenter = "_bottomcenter_1cd0d_37";
9
+ const bottomright = "_bottomright_1cd0d_44";
10
+ const toast = "_toast_1cd0d_50";
11
+ const toastEnter = "_toastEnter_1cd0d_1";
12
+ const icon = "_icon_1cd0d_73";
13
+ const success = "_success_1cd0d_77";
14
+ const error = "_error_1cd0d_84";
15
+ const warning = "_warning_1cd0d_91";
16
+ const info = "_info_1cd0d_98";
17
+ const content = "_content_1cd0d_116";
18
+ const title = "_title_1cd0d_121";
19
+ const description = "_description_1cd0d_128";
20
+ const action = "_action_1cd0d_135";
21
+ const close = "_close_1cd0d_160";
22
22
  const styles = {
23
23
  container,
24
24
  topleft,
@@ -29,7 +29,7 @@ const styles = {
29
29
  bottomright,
30
30
  toast,
31
31
  toastEnter,
32
- "default": "_default_1gwoj_73",
32
+ "default": "_default_1cd0d_73",
33
33
  icon,
34
34
  success,
35
35
  error,
@@ -1,22 +1,22 @@
1
- const container = "_container_1gwoj_1";
2
- const topleft = "_topleft_1gwoj_15";
3
- const topcenter = "_topcenter_1gwoj_20";
4
- const topright = "_topright_1gwoj_26";
5
- const bottomleft = "_bottomleft_1gwoj_31";
6
- const bottomcenter = "_bottomcenter_1gwoj_37";
7
- const bottomright = "_bottomright_1gwoj_44";
8
- const toast = "_toast_1gwoj_50";
9
- const toastEnter = "_toastEnter_1gwoj_1";
10
- const icon = "_icon_1gwoj_73";
11
- const success = "_success_1gwoj_77";
12
- const error = "_error_1gwoj_84";
13
- const warning = "_warning_1gwoj_91";
14
- const info = "_info_1gwoj_98";
15
- const content = "_content_1gwoj_116";
16
- const title = "_title_1gwoj_121";
17
- const description = "_description_1gwoj_128";
18
- const action = "_action_1gwoj_135";
19
- const close = "_close_1gwoj_160";
1
+ const container = "_container_1cd0d_1";
2
+ const topleft = "_topleft_1cd0d_15";
3
+ const topcenter = "_topcenter_1cd0d_20";
4
+ const topright = "_topright_1cd0d_26";
5
+ const bottomleft = "_bottomleft_1cd0d_31";
6
+ const bottomcenter = "_bottomcenter_1cd0d_37";
7
+ const bottomright = "_bottomright_1cd0d_44";
8
+ const toast = "_toast_1cd0d_50";
9
+ const toastEnter = "_toastEnter_1cd0d_1";
10
+ const icon = "_icon_1cd0d_73";
11
+ const success = "_success_1cd0d_77";
12
+ const error = "_error_1cd0d_84";
13
+ const warning = "_warning_1cd0d_91";
14
+ const info = "_info_1cd0d_98";
15
+ const content = "_content_1cd0d_116";
16
+ const title = "_title_1cd0d_121";
17
+ const description = "_description_1cd0d_128";
18
+ const action = "_action_1cd0d_135";
19
+ const close = "_close_1cd0d_160";
20
20
  const styles = {
21
21
  container,
22
22
  topleft,
@@ -27,7 +27,7 @@ const styles = {
27
27
  bottomright,
28
28
  toast,
29
29
  toastEnter,
30
- "default": "_default_1gwoj_73",
30
+ "default": "_default_1cd0d_73",
31
31
  icon,
32
32
  success,
33
33
  error,
@@ -29,18 +29,19 @@ function useToast() {
29
29
  const toast = React__namespace.useCallback((options) => {
30
30
  return context.addToast(options);
31
31
  }, [context]);
32
- const success = React__namespace.useCallback((title, description) => {
33
- return context.addToast({ title, description, variant: "success" });
34
- }, [context]);
35
- const error = React__namespace.useCallback((title, description) => {
36
- return context.addToast({ title, description, variant: "error" });
37
- }, [context]);
38
- const warning = React__namespace.useCallback((title, description) => {
39
- return context.addToast({ title, description, variant: "warning" });
40
- }, [context]);
41
- const info = React__namespace.useCallback((title, description) => {
42
- return context.addToast({ title, description, variant: "info" });
43
- }, [context]);
32
+ const makeVariantHelper = React__namespace.useCallback(
33
+ (variant) => (titleOrOptions, description) => {
34
+ if (typeof titleOrOptions === "string") {
35
+ return context.addToast({ title: titleOrOptions, description, variant });
36
+ }
37
+ return context.addToast({ ...titleOrOptions, variant });
38
+ },
39
+ [context]
40
+ );
41
+ const success = React__namespace.useMemo(() => makeVariantHelper("success"), [makeVariantHelper]);
42
+ const error = React__namespace.useMemo(() => makeVariantHelper("error"), [makeVariantHelper]);
43
+ const warning = React__namespace.useMemo(() => makeVariantHelper("warning"), [makeVariantHelper]);
44
+ const info = React__namespace.useMemo(() => makeVariantHelper("info"), [makeVariantHelper]);
44
45
  return {
45
46
  toast,
46
47
  success,
@@ -193,7 +194,6 @@ function ToastContainer({
193
194
  toast.id
194
195
  )) });
195
196
  }
196
- let toastCounter = 0;
197
197
  function ToastProvider({
198
198
  position = "bottom-right",
199
199
  duration = 8e3,
@@ -201,6 +201,7 @@ function ToastProvider({
201
201
  children
202
202
  }) {
203
203
  const [toasts, setToasts] = React__namespace.useState([]);
204
+ const idCounterRef = React__namespace.useRef(0);
204
205
  const timeoutRef = React__namespace.useRef(/* @__PURE__ */ new Map());
205
206
  const remainingRef = React__namespace.useRef(/* @__PURE__ */ new Map());
206
207
  const startTimeRef = React__namespace.useRef(/* @__PURE__ */ new Map());
@@ -228,7 +229,7 @@ function ToastProvider({
228
229
  [clearRemovalTimer]
229
230
  );
230
231
  const addToast = React__namespace.useCallback((toast) => {
231
- const id = `toast-${++toastCounter}`;
232
+ const id = toast.id ?? `toast-${++idCounterRef.current}`;
232
233
  const toastDuration = toast.duration ?? (toast.action ? 0 : duration);
233
234
  setToasts((prev) => {
234
235
  const nextToasts = [...prev, { ...toast, id }];
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/Toast/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport styles from './Toast.module.scss';\n\n// ============================================\n// Types\n// ============================================\n\nexport type ToastVariant = 'default' | 'success' | 'error' | 'warning' | 'info';\nexport type ToastPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport interface ToastData {\n id: string;\n title?: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport interface ToastProps extends Omit<ToastData, 'id'>, Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Callback when toast should be dismissed */\n onDismiss?: () => void;\n}\n\nexport interface ToastProviderProps {\n /** Position of the toast container */\n position?: ToastPosition;\n /** Default duration in ms (0 = no auto-dismiss) */\n duration?: number;\n /** Maximum number of toasts to show */\n max?: number;\n /** Children */\n children: React.ReactNode;\n}\n\n// ============================================\n// Context\n// ============================================\n\ninterface ToastContextValue {\n toasts: ToastData[];\n addToast: (toast: Omit<ToastData, 'id'>) => string;\n removeToast: (id: string) => void;\n clearToasts: () => void;\n}\n\nconst ToastContext = React.createContext<ToastContextValue | null>(null);\n\n// ============================================\n// Hook to use toast\n// ============================================\n\nexport function useToast() {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n\n const toast = React.useCallback((options: Omit<ToastData, 'id'>) => {\n return context.addToast(options);\n }, [context]);\n\n const success = React.useCallback((title: string, description?: string) => {\n return context.addToast({ title, description, variant: 'success' });\n }, [context]);\n\n const error = React.useCallback((title: string, description?: string) => {\n return context.addToast({ title, description, variant: 'error' });\n }, [context]);\n\n const warning = React.useCallback((title: string, description?: string) => {\n return context.addToast({ title, description, variant: 'warning' });\n }, [context]);\n\n const info = React.useCallback((title: string, description?: string) => {\n return context.addToast({ title, description, variant: 'info' });\n }, [context]);\n\n return {\n toast,\n success,\n error,\n warning,\n info,\n dismiss: context.removeToast,\n dismissAll: context.clearToasts,\n };\n}\n\n// ============================================\n// Icons\n// ============================================\n\nfunction SuccessIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n </svg>\n );\n}\n\nfunction ErrorIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n );\n}\n\nfunction WarningIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n );\n}\n\nfunction InfoIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n );\n}\n\nfunction CloseIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n );\n}\n\nconst variantIcons: Record<ToastVariant, React.ComponentType | null> = {\n default: null,\n success: SuccessIcon,\n error: ErrorIcon,\n warning: WarningIcon,\n info: InfoIcon,\n};\n\n// ============================================\n// Toast Component\n// ============================================\n\nfunction ToastItem({\n id,\n title,\n description,\n variant = 'default',\n action,\n onDismiss,\n onPause,\n onResume,\n className,\n ...htmlProps\n}: ToastProps & {\n id?: string;\n onPause?: () => void;\n onResume?: () => void;\n}) {\n const Icon = variantIcons[variant];\n const uniqueId = React.useId();\n const toastRef = React.useRef<HTMLDivElement>(null);\n const titleId = title ? `toast-title-${id || uniqueId}` : undefined;\n const descId = description ? `toast-desc-${id || uniqueId}` : undefined;\n const liveRole = variant === 'error' || variant === 'warning' ? 'alert' : 'status';\n\n const toastClasses = [\n styles.toast,\n styles[variant],\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div\n ref={toastRef}\n {...htmlProps}\n className={toastClasses}\n role={liveRole}\n aria-atomic=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descId}\n onMouseEnter={onPause}\n onMouseLeave={() => {\n requestAnimationFrame(() => {\n if (!toastRef.current?.contains(document.activeElement)) {\n onResume?.();\n }\n });\n }}\n onFocusCapture={onPause}\n onBlurCapture={() => {\n requestAnimationFrame(() => {\n if (!toastRef.current?.contains(document.activeElement)) {\n onResume?.();\n }\n });\n }}\n >\n {Icon && (\n <span className={styles.icon}>\n <Icon />\n </span>\n )}\n <div className={styles.content}>\n {title && <div id={titleId} className={styles.title}>{title}</div>}\n {description && <div id={descId} className={styles.description}>{description}</div>}\n </div>\n {action && (\n <button\n type=\"button\"\n className={styles.action}\n onClick={action.onClick}\n >\n {action.label}\n </button>\n )}\n {onDismiss && (\n <button\n type=\"button\"\n className={styles.close}\n onClick={onDismiss}\n aria-label=\"Dismiss notification\"\n >\n <CloseIcon />\n </button>\n )}\n </div>\n );\n}\n\n// ============================================\n// Toast Container\n// ============================================\n\nfunction ToastContainer({\n toasts,\n position,\n onDismiss,\n onPause,\n onResume,\n}: {\n toasts: ToastData[];\n position: ToastPosition;\n onDismiss: (id: string) => void;\n onPause: (id: string) => void;\n onResume: (id: string) => void;\n}) {\n const containerClasses = [\n styles.container,\n styles[position.replace('-', '')],\n ].filter(Boolean).join(' ');\n\n // Always render the container for screen reader live region to work properly\n // The live region must exist before announcements are made\n return (\n <div className={containerClasses} role=\"region\" aria-label=\"Notifications\">\n {toasts.map((toast) => (\n <ToastItem\n key={toast.id}\n {...toast}\n onDismiss={() => onDismiss(toast.id)}\n onPause={() => onPause(toast.id)}\n onResume={() => onResume(toast.id)}\n />\n ))}\n </div>\n );\n}\n\n// ============================================\n// Toast Provider\n// ============================================\n\nlet toastCounter = 0;\n\nexport function ToastProvider({\n position = 'bottom-right',\n duration = 8000,\n max = 5,\n children,\n}: ToastProviderProps) {\n const [toasts, setToasts] = React.useState<ToastData[]>([]);\n const timeoutRef = React.useRef(new Map<string, ReturnType<typeof setTimeout>>());\n const remainingRef = React.useRef(new Map<string, number>());\n const startTimeRef = React.useRef(new Map<string, number>());\n\n const clearRemovalTimer = React.useCallback((id: string) => {\n const timeout = timeoutRef.current.get(id);\n if (timeout) {\n clearTimeout(timeout);\n timeoutRef.current.delete(id);\n }\n }, []);\n\n const scheduleRemoval = React.useCallback(\n (id: string, delay: number) => {\n if (delay <= 0) return;\n clearRemovalTimer(id);\n remainingRef.current.set(id, delay);\n startTimeRef.current.set(id, Date.now());\n\n const timeout = setTimeout(() => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n clearRemovalTimer(id);\n remainingRef.current.delete(id);\n startTimeRef.current.delete(id);\n }, delay);\n\n timeoutRef.current.set(id, timeout);\n },\n [clearRemovalTimer]\n );\n\n const addToast = React.useCallback((toast: Omit<ToastData, 'id'>) => {\n const id = `toast-${++toastCounter}`;\n const toastDuration = toast.duration ?? (toast.action ? 0 : duration);\n\n setToasts((prev) => {\n const nextToasts = [...prev, { ...toast, id }];\n const overflowCount = Math.max(0, nextToasts.length - max);\n\n if (overflowCount > 0) {\n const removedToasts = nextToasts.slice(0, overflowCount);\n removedToasts.forEach((removedToast) => {\n clearRemovalTimer(removedToast.id);\n remainingRef.current.delete(removedToast.id);\n startTimeRef.current.delete(removedToast.id);\n });\n }\n\n return overflowCount > 0 ? nextToasts.slice(overflowCount) : nextToasts;\n });\n\n // Auto-dismiss\n if (toastDuration > 0) {\n scheduleRemoval(id, toastDuration);\n }\n\n return id;\n }, [clearRemovalTimer, duration, max, scheduleRemoval]);\n\n const removeToast = React.useCallback((id: string) => {\n clearRemovalTimer(id);\n remainingRef.current.delete(id);\n startTimeRef.current.delete(id);\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, [clearRemovalTimer]);\n\n const pauseToast = React.useCallback((id: string) => {\n const remaining = remainingRef.current.get(id);\n if (remaining === undefined) return;\n\n const startedAt = startTimeRef.current.get(id);\n if (startedAt) {\n const elapsed = Date.now() - startedAt;\n remainingRef.current.set(id, Math.max(remaining - elapsed, 0));\n }\n clearRemovalTimer(id);\n }, [clearRemovalTimer]);\n\n const resumeToast = React.useCallback((id: string) => {\n const remaining = remainingRef.current.get(id);\n if (remaining === undefined || remaining <= 0) return;\n scheduleRemoval(id, remaining);\n }, [scheduleRemoval]);\n\n const clearToasts = React.useCallback(() => {\n timeoutRef.current.forEach((timeout) => {\n clearTimeout(timeout);\n });\n timeoutRef.current.clear();\n remainingRef.current.clear();\n startTimeRef.current.clear();\n setToasts([]);\n }, []);\n\n React.useEffect(\n () => () => {\n timeoutRef.current.forEach((timeout) => {\n clearTimeout(timeout);\n });\n timeoutRef.current.clear();\n remainingRef.current.clear();\n startTimeRef.current.clear();\n },\n []\n );\n\n const value = React.useMemo(\n () => ({ toasts, addToast, removeToast, clearToasts }),\n [toasts, addToast, removeToast, clearToasts]\n );\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n <ToastContainer\n toasts={toasts}\n position={position}\n onDismiss={removeToast}\n onPause={pauseToast}\n onResume={resumeToast}\n />\n </ToastContext.Provider>\n );\n}\n\n// ============================================\n// Export Toast as compound component\n// ============================================\n\nexport const Toast = Object.assign(ToastItem, {\n Provider: ToastProvider,\n});\n"],"names":["React","jsx","styles","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Toast/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport styles from './Toast.module.scss';\n\n// ============================================\n// Types\n// ============================================\n\nexport type ToastVariant = 'default' | 'success' | 'error' | 'warning' | 'info';\nexport type ToastPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport interface ToastData {\n id: string;\n title?: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport interface ToastInput extends Omit<ToastData, 'id'> {\n /** Optional explicit id (useful for deterministic tests / replacing a known toast) */\n id?: string;\n}\n\nexport interface ToastProps extends Omit<ToastData, 'id'>, Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Callback when toast should be dismissed */\n onDismiss?: () => void;\n}\n\nexport interface ToastProviderProps {\n /** Position of the toast container */\n position?: ToastPosition;\n /** Default duration in ms (0 = no auto-dismiss) */\n duration?: number;\n /** Maximum number of toasts to show */\n max?: number;\n /** Children */\n children: React.ReactNode;\n}\n\n// ============================================\n// Context\n// ============================================\n\ninterface ToastContextValue {\n toasts: ToastData[];\n addToast: (toast: ToastInput) => string;\n removeToast: (id: string) => void;\n clearToasts: () => void;\n}\n\nconst ToastContext = React.createContext<ToastContextValue | null>(null);\n\n// ============================================\n// Hook to use toast\n// ============================================\n\nexport function useToast() {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n\n const toast = React.useCallback((options: ToastInput) => {\n return context.addToast(options);\n }, [context]);\n\n const makeVariantHelper = React.useCallback(\n (variant: ToastVariant) =>\n (titleOrOptions: string | Omit<ToastInput, 'variant'>, description?: string) => {\n if (typeof titleOrOptions === 'string') {\n return context.addToast({ title: titleOrOptions, description, variant });\n }\n return context.addToast({ ...titleOrOptions, variant });\n },\n [context]\n );\n\n const success = React.useMemo(() => makeVariantHelper('success'), [makeVariantHelper]);\n const error = React.useMemo(() => makeVariantHelper('error'), [makeVariantHelper]);\n const warning = React.useMemo(() => makeVariantHelper('warning'), [makeVariantHelper]);\n const info = React.useMemo(() => makeVariantHelper('info'), [makeVariantHelper]);\n\n return {\n toast,\n success,\n error,\n warning,\n info,\n dismiss: context.removeToast,\n dismissAll: context.clearToasts,\n };\n}\n\n// ============================================\n// Icons\n// ============================================\n\nfunction SuccessIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n </svg>\n );\n}\n\nfunction ErrorIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n );\n}\n\nfunction WarningIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n );\n}\n\nfunction InfoIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n );\n}\n\nfunction CloseIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n );\n}\n\nconst variantIcons: Record<ToastVariant, React.ComponentType | null> = {\n default: null,\n success: SuccessIcon,\n error: ErrorIcon,\n warning: WarningIcon,\n info: InfoIcon,\n};\n\n// ============================================\n// Toast Component\n// ============================================\n\nfunction ToastItem({\n id,\n title,\n description,\n variant = 'default',\n action,\n onDismiss,\n onPause,\n onResume,\n className,\n ...htmlProps\n}: ToastProps & {\n id?: string;\n onPause?: () => void;\n onResume?: () => void;\n}) {\n const Icon = variantIcons[variant];\n const uniqueId = React.useId();\n const toastRef = React.useRef<HTMLDivElement>(null);\n const titleId = title ? `toast-title-${id || uniqueId}` : undefined;\n const descId = description ? `toast-desc-${id || uniqueId}` : undefined;\n const liveRole = variant === 'error' || variant === 'warning' ? 'alert' : 'status';\n\n const toastClasses = [\n styles.toast,\n styles[variant],\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div\n ref={toastRef}\n {...htmlProps}\n className={toastClasses}\n role={liveRole}\n aria-atomic=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descId}\n onMouseEnter={onPause}\n onMouseLeave={() => {\n requestAnimationFrame(() => {\n if (!toastRef.current?.contains(document.activeElement)) {\n onResume?.();\n }\n });\n }}\n onFocusCapture={onPause}\n onBlurCapture={() => {\n requestAnimationFrame(() => {\n if (!toastRef.current?.contains(document.activeElement)) {\n onResume?.();\n }\n });\n }}\n >\n {Icon && (\n <span className={styles.icon}>\n <Icon />\n </span>\n )}\n <div className={styles.content}>\n {title && <div id={titleId} className={styles.title}>{title}</div>}\n {description && <div id={descId} className={styles.description}>{description}</div>}\n </div>\n {action && (\n <button\n type=\"button\"\n className={styles.action}\n onClick={action.onClick}\n >\n {action.label}\n </button>\n )}\n {onDismiss && (\n <button\n type=\"button\"\n className={styles.close}\n onClick={onDismiss}\n aria-label=\"Dismiss notification\"\n >\n <CloseIcon />\n </button>\n )}\n </div>\n );\n}\n\n// ============================================\n// Toast Container\n// ============================================\n\nfunction ToastContainer({\n toasts,\n position,\n onDismiss,\n onPause,\n onResume,\n}: {\n toasts: ToastData[];\n position: ToastPosition;\n onDismiss: (id: string) => void;\n onPause: (id: string) => void;\n onResume: (id: string) => void;\n}) {\n const containerClasses = [\n styles.container,\n styles[position.replace('-', '')],\n ].filter(Boolean).join(' ');\n\n // Always render the container for screen reader live region to work properly\n // The live region must exist before announcements are made\n return (\n <div className={containerClasses} role=\"region\" aria-label=\"Notifications\">\n {toasts.map((toast) => (\n <ToastItem\n key={toast.id}\n {...toast}\n onDismiss={() => onDismiss(toast.id)}\n onPause={() => onPause(toast.id)}\n onResume={() => onResume(toast.id)}\n />\n ))}\n </div>\n );\n}\n\n// ============================================\n// Toast Provider\n// ============================================\n\nexport function ToastProvider({\n position = 'bottom-right',\n duration = 8000,\n max = 5,\n children,\n}: ToastProviderProps) {\n const [toasts, setToasts] = React.useState<ToastData[]>([]);\n const idCounterRef = React.useRef(0);\n const timeoutRef = React.useRef(new Map<string, ReturnType<typeof setTimeout>>());\n const remainingRef = React.useRef(new Map<string, number>());\n const startTimeRef = React.useRef(new Map<string, number>());\n\n const clearRemovalTimer = React.useCallback((id: string) => {\n const timeout = timeoutRef.current.get(id);\n if (timeout) {\n clearTimeout(timeout);\n timeoutRef.current.delete(id);\n }\n }, []);\n\n const scheduleRemoval = React.useCallback(\n (id: string, delay: number) => {\n if (delay <= 0) return;\n clearRemovalTimer(id);\n remainingRef.current.set(id, delay);\n startTimeRef.current.set(id, Date.now());\n\n const timeout = setTimeout(() => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n clearRemovalTimer(id);\n remainingRef.current.delete(id);\n startTimeRef.current.delete(id);\n }, delay);\n\n timeoutRef.current.set(id, timeout);\n },\n [clearRemovalTimer]\n );\n\n const addToast = React.useCallback((toast: ToastInput) => {\n const id = toast.id ?? `toast-${++idCounterRef.current}`;\n const toastDuration = toast.duration ?? (toast.action ? 0 : duration);\n\n setToasts((prev) => {\n const nextToasts = [...prev, { ...toast, id }];\n const overflowCount = Math.max(0, nextToasts.length - max);\n\n if (overflowCount > 0) {\n const removedToasts = nextToasts.slice(0, overflowCount);\n removedToasts.forEach((removedToast) => {\n clearRemovalTimer(removedToast.id);\n remainingRef.current.delete(removedToast.id);\n startTimeRef.current.delete(removedToast.id);\n });\n }\n\n return overflowCount > 0 ? nextToasts.slice(overflowCount) : nextToasts;\n });\n\n // Auto-dismiss\n if (toastDuration > 0) {\n scheduleRemoval(id, toastDuration);\n }\n\n return id;\n }, [clearRemovalTimer, duration, max, scheduleRemoval]);\n\n const removeToast = React.useCallback((id: string) => {\n clearRemovalTimer(id);\n remainingRef.current.delete(id);\n startTimeRef.current.delete(id);\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, [clearRemovalTimer]);\n\n const pauseToast = React.useCallback((id: string) => {\n const remaining = remainingRef.current.get(id);\n if (remaining === undefined) return;\n\n const startedAt = startTimeRef.current.get(id);\n if (startedAt) {\n const elapsed = Date.now() - startedAt;\n remainingRef.current.set(id, Math.max(remaining - elapsed, 0));\n }\n clearRemovalTimer(id);\n }, [clearRemovalTimer]);\n\n const resumeToast = React.useCallback((id: string) => {\n const remaining = remainingRef.current.get(id);\n if (remaining === undefined || remaining <= 0) return;\n scheduleRemoval(id, remaining);\n }, [scheduleRemoval]);\n\n const clearToasts = React.useCallback(() => {\n timeoutRef.current.forEach((timeout) => {\n clearTimeout(timeout);\n });\n timeoutRef.current.clear();\n remainingRef.current.clear();\n startTimeRef.current.clear();\n setToasts([]);\n }, []);\n\n React.useEffect(\n () => () => {\n timeoutRef.current.forEach((timeout) => {\n clearTimeout(timeout);\n });\n timeoutRef.current.clear();\n remainingRef.current.clear();\n startTimeRef.current.clear();\n },\n []\n );\n\n const value = React.useMemo(\n () => ({ toasts, addToast, removeToast, clearToasts }),\n [toasts, addToast, removeToast, clearToasts]\n );\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n <ToastContainer\n toasts={toasts}\n position={position}\n onDismiss={removeToast}\n onPause={pauseToast}\n onResume={resumeToast}\n />\n </ToastContext.Provider>\n );\n}\n\n// ============================================\n// Export Toast as compound component\n// ============================================\n\nexport const Toast = Object.assign(ToastItem, {\n Provider: ToastProvider,\n});\n"],"names":["React","jsx","styles","jsxs"],"mappings":"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"}
@@ -12,6 +12,10 @@ export interface ToastData {
12
12
  onClick: () => void;
13
13
  };
14
14
  }
15
+ export interface ToastInput extends Omit<ToastData, 'id'> {
16
+ /** Optional explicit id (useful for deterministic tests / replacing a known toast) */
17
+ id?: string;
18
+ }
15
19
  export interface ToastProps extends Omit<ToastData, 'id'>, Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
16
20
  /** Callback when toast should be dismissed */
17
21
  onDismiss?: () => void;
@@ -27,11 +31,11 @@ export interface ToastProviderProps {
27
31
  children: React.ReactNode;
28
32
  }
29
33
  export declare function useToast(): {
30
- toast: (options: Omit<ToastData, "id">) => string;
31
- success: (title: string, description?: string) => string;
32
- error: (title: string, description?: string) => string;
33
- warning: (title: string, description?: string) => string;
34
- info: (title: string, description?: string) => string;
34
+ toast: (options: ToastInput) => string;
35
+ success: (titleOrOptions: string | Omit<ToastInput, "variant">, description?: string) => string;
36
+ error: (titleOrOptions: string | Omit<ToastInput, "variant">, description?: string) => string;
37
+ warning: (titleOrOptions: string | Omit<ToastInput, "variant">, description?: string) => string;
38
+ info: (titleOrOptions: string | Omit<ToastInput, "variant">, description?: string) => string;
35
39
  dismiss: (id: string) => void;
36
40
  dismissAll: () => void;
37
41
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAChF,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,CAAC;AAEnB,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC5G,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAmBD,wBAAgB,QAAQ;qBAMoB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;qBAIrB,MAAM,gBAAgB,MAAM;mBAI9B,MAAM,gBAAgB,MAAM;qBAI1B,MAAM,gBAAgB,MAAM;kBAI/B,MAAM,gBAAgB,MAAM;kBAhCjD,MAAM,KAAK,IAAI;sBACd,IAAI;EA4CxB;AAkED,iBAAS,SAAS,CAAC,EACjB,EAAE,EACF,KAAK,EACL,WAAW,EACX,OAAmB,EACnB,MAAM,EACN,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,SAAS,EACb,EAAE,UAAU,GAAG;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,2CAsEA;AA+CD,wBAAgB,aAAa,CAAC,EAC5B,QAAyB,EACzB,QAAe,EACf,GAAO,EACP,QAAQ,GACT,EAAE,kBAAkB,2CA6HpB;AAMD,eAAO,MAAM,KAAK;;CAEhB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAChF,MAAM,MAAM,aAAa,GACrB,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,CAAC;AAEnB,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;IACvD,sFAAsF;IACtF,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC5G,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAmBD,wBAAgB,QAAQ;qBAMoB,UAAU;8BAM/B,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,gBAAgB,MAAM;4BAA1D,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,gBAAgB,MAAM;8BAA1D,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,gBAAgB,MAAM;2BAA1D,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,gBAAgB,MAAM;kBAtB7D,MAAM,KAAK,IAAI;sBACd,IAAI;EA4CxB;AAkED,iBAAS,SAAS,CAAC,EACjB,EAAE,EACF,KAAK,EACL,WAAW,EACX,OAAmB,EACnB,MAAM,EACN,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,SAAS,EACb,EAAE,UAAU,GAAG;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,2CAsEA;AA6CD,wBAAgB,aAAa,CAAC,EAC5B,QAAyB,EACzB,QAAe,EACf,GAAO,EACP,QAAQ,GACT,EAAE,kBAAkB,2CA8HpB;AAMD,eAAO,MAAM,KAAK;;CAEhB,CAAC"}
@@ -10,18 +10,19 @@ function useToast() {
10
10
  const toast = React.useCallback((options) => {
11
11
  return context.addToast(options);
12
12
  }, [context]);
13
- const success = React.useCallback((title, description) => {
14
- return context.addToast({ title, description, variant: "success" });
15
- }, [context]);
16
- const error = React.useCallback((title, description) => {
17
- return context.addToast({ title, description, variant: "error" });
18
- }, [context]);
19
- const warning = React.useCallback((title, description) => {
20
- return context.addToast({ title, description, variant: "warning" });
21
- }, [context]);
22
- const info = React.useCallback((title, description) => {
23
- return context.addToast({ title, description, variant: "info" });
24
- }, [context]);
13
+ const makeVariantHelper = React.useCallback(
14
+ (variant) => (titleOrOptions, description) => {
15
+ if (typeof titleOrOptions === "string") {
16
+ return context.addToast({ title: titleOrOptions, description, variant });
17
+ }
18
+ return context.addToast({ ...titleOrOptions, variant });
19
+ },
20
+ [context]
21
+ );
22
+ const success = React.useMemo(() => makeVariantHelper("success"), [makeVariantHelper]);
23
+ const error = React.useMemo(() => makeVariantHelper("error"), [makeVariantHelper]);
24
+ const warning = React.useMemo(() => makeVariantHelper("warning"), [makeVariantHelper]);
25
+ const info = React.useMemo(() => makeVariantHelper("info"), [makeVariantHelper]);
25
26
  return {
26
27
  toast,
27
28
  success,
@@ -174,7 +175,6 @@ function ToastContainer({
174
175
  toast.id
175
176
  )) });
176
177
  }
177
- let toastCounter = 0;
178
178
  function ToastProvider({
179
179
  position = "bottom-right",
180
180
  duration = 8e3,
@@ -182,6 +182,7 @@ function ToastProvider({
182
182
  children
183
183
  }) {
184
184
  const [toasts, setToasts] = React.useState([]);
185
+ const idCounterRef = React.useRef(0);
185
186
  const timeoutRef = React.useRef(/* @__PURE__ */ new Map());
186
187
  const remainingRef = React.useRef(/* @__PURE__ */ new Map());
187
188
  const startTimeRef = React.useRef(/* @__PURE__ */ new Map());
@@ -209,7 +210,7 @@ function ToastProvider({
209
210
  [clearRemovalTimer]
210
211
  );
211
212
  const addToast = React.useCallback((toast) => {
212
- const id = `toast-${++toastCounter}`;
213
+ const id = toast.id ?? `toast-${++idCounterRef.current}`;
213
214
  const toastDuration = toast.duration ?? (toast.action ? 0 : duration);
214
215
  setToasts((prev) => {
215
216
  const nextToasts = [...prev, { ...toast, id }];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Toast/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport styles from './Toast.module.scss';\n\n// ============================================\n// Types\n// ============================================\n\nexport type ToastVariant = 'default' | 'success' | 'error' | 'warning' | 'info';\nexport type ToastPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport interface ToastData {\n id: string;\n title?: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport interface ToastProps extends Omit<ToastData, 'id'>, Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Callback when toast should be dismissed */\n onDismiss?: () => void;\n}\n\nexport interface ToastProviderProps {\n /** Position of the toast container */\n position?: ToastPosition;\n /** Default duration in ms (0 = no auto-dismiss) */\n duration?: number;\n /** Maximum number of toasts to show */\n max?: number;\n /** Children */\n children: React.ReactNode;\n}\n\n// ============================================\n// Context\n// ============================================\n\ninterface ToastContextValue {\n toasts: ToastData[];\n addToast: (toast: Omit<ToastData, 'id'>) => string;\n removeToast: (id: string) => void;\n clearToasts: () => void;\n}\n\nconst ToastContext = React.createContext<ToastContextValue | null>(null);\n\n// ============================================\n// Hook to use toast\n// ============================================\n\nexport function useToast() {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n\n const toast = React.useCallback((options: Omit<ToastData, 'id'>) => {\n return context.addToast(options);\n }, [context]);\n\n const success = React.useCallback((title: string, description?: string) => {\n return context.addToast({ title, description, variant: 'success' });\n }, [context]);\n\n const error = React.useCallback((title: string, description?: string) => {\n return context.addToast({ title, description, variant: 'error' });\n }, [context]);\n\n const warning = React.useCallback((title: string, description?: string) => {\n return context.addToast({ title, description, variant: 'warning' });\n }, [context]);\n\n const info = React.useCallback((title: string, description?: string) => {\n return context.addToast({ title, description, variant: 'info' });\n }, [context]);\n\n return {\n toast,\n success,\n error,\n warning,\n info,\n dismiss: context.removeToast,\n dismissAll: context.clearToasts,\n };\n}\n\n// ============================================\n// Icons\n// ============================================\n\nfunction SuccessIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n </svg>\n );\n}\n\nfunction ErrorIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n );\n}\n\nfunction WarningIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n );\n}\n\nfunction InfoIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n );\n}\n\nfunction CloseIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n );\n}\n\nconst variantIcons: Record<ToastVariant, React.ComponentType | null> = {\n default: null,\n success: SuccessIcon,\n error: ErrorIcon,\n warning: WarningIcon,\n info: InfoIcon,\n};\n\n// ============================================\n// Toast Component\n// ============================================\n\nfunction ToastItem({\n id,\n title,\n description,\n variant = 'default',\n action,\n onDismiss,\n onPause,\n onResume,\n className,\n ...htmlProps\n}: ToastProps & {\n id?: string;\n onPause?: () => void;\n onResume?: () => void;\n}) {\n const Icon = variantIcons[variant];\n const uniqueId = React.useId();\n const toastRef = React.useRef<HTMLDivElement>(null);\n const titleId = title ? `toast-title-${id || uniqueId}` : undefined;\n const descId = description ? `toast-desc-${id || uniqueId}` : undefined;\n const liveRole = variant === 'error' || variant === 'warning' ? 'alert' : 'status';\n\n const toastClasses = [\n styles.toast,\n styles[variant],\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div\n ref={toastRef}\n {...htmlProps}\n className={toastClasses}\n role={liveRole}\n aria-atomic=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descId}\n onMouseEnter={onPause}\n onMouseLeave={() => {\n requestAnimationFrame(() => {\n if (!toastRef.current?.contains(document.activeElement)) {\n onResume?.();\n }\n });\n }}\n onFocusCapture={onPause}\n onBlurCapture={() => {\n requestAnimationFrame(() => {\n if (!toastRef.current?.contains(document.activeElement)) {\n onResume?.();\n }\n });\n }}\n >\n {Icon && (\n <span className={styles.icon}>\n <Icon />\n </span>\n )}\n <div className={styles.content}>\n {title && <div id={titleId} className={styles.title}>{title}</div>}\n {description && <div id={descId} className={styles.description}>{description}</div>}\n </div>\n {action && (\n <button\n type=\"button\"\n className={styles.action}\n onClick={action.onClick}\n >\n {action.label}\n </button>\n )}\n {onDismiss && (\n <button\n type=\"button\"\n className={styles.close}\n onClick={onDismiss}\n aria-label=\"Dismiss notification\"\n >\n <CloseIcon />\n </button>\n )}\n </div>\n );\n}\n\n// ============================================\n// Toast Container\n// ============================================\n\nfunction ToastContainer({\n toasts,\n position,\n onDismiss,\n onPause,\n onResume,\n}: {\n toasts: ToastData[];\n position: ToastPosition;\n onDismiss: (id: string) => void;\n onPause: (id: string) => void;\n onResume: (id: string) => void;\n}) {\n const containerClasses = [\n styles.container,\n styles[position.replace('-', '')],\n ].filter(Boolean).join(' ');\n\n // Always render the container for screen reader live region to work properly\n // The live region must exist before announcements are made\n return (\n <div className={containerClasses} role=\"region\" aria-label=\"Notifications\">\n {toasts.map((toast) => (\n <ToastItem\n key={toast.id}\n {...toast}\n onDismiss={() => onDismiss(toast.id)}\n onPause={() => onPause(toast.id)}\n onResume={() => onResume(toast.id)}\n />\n ))}\n </div>\n );\n}\n\n// ============================================\n// Toast Provider\n// ============================================\n\nlet toastCounter = 0;\n\nexport function ToastProvider({\n position = 'bottom-right',\n duration = 8000,\n max = 5,\n children,\n}: ToastProviderProps) {\n const [toasts, setToasts] = React.useState<ToastData[]>([]);\n const timeoutRef = React.useRef(new Map<string, ReturnType<typeof setTimeout>>());\n const remainingRef = React.useRef(new Map<string, number>());\n const startTimeRef = React.useRef(new Map<string, number>());\n\n const clearRemovalTimer = React.useCallback((id: string) => {\n const timeout = timeoutRef.current.get(id);\n if (timeout) {\n clearTimeout(timeout);\n timeoutRef.current.delete(id);\n }\n }, []);\n\n const scheduleRemoval = React.useCallback(\n (id: string, delay: number) => {\n if (delay <= 0) return;\n clearRemovalTimer(id);\n remainingRef.current.set(id, delay);\n startTimeRef.current.set(id, Date.now());\n\n const timeout = setTimeout(() => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n clearRemovalTimer(id);\n remainingRef.current.delete(id);\n startTimeRef.current.delete(id);\n }, delay);\n\n timeoutRef.current.set(id, timeout);\n },\n [clearRemovalTimer]\n );\n\n const addToast = React.useCallback((toast: Omit<ToastData, 'id'>) => {\n const id = `toast-${++toastCounter}`;\n const toastDuration = toast.duration ?? (toast.action ? 0 : duration);\n\n setToasts((prev) => {\n const nextToasts = [...prev, { ...toast, id }];\n const overflowCount = Math.max(0, nextToasts.length - max);\n\n if (overflowCount > 0) {\n const removedToasts = nextToasts.slice(0, overflowCount);\n removedToasts.forEach((removedToast) => {\n clearRemovalTimer(removedToast.id);\n remainingRef.current.delete(removedToast.id);\n startTimeRef.current.delete(removedToast.id);\n });\n }\n\n return overflowCount > 0 ? nextToasts.slice(overflowCount) : nextToasts;\n });\n\n // Auto-dismiss\n if (toastDuration > 0) {\n scheduleRemoval(id, toastDuration);\n }\n\n return id;\n }, [clearRemovalTimer, duration, max, scheduleRemoval]);\n\n const removeToast = React.useCallback((id: string) => {\n clearRemovalTimer(id);\n remainingRef.current.delete(id);\n startTimeRef.current.delete(id);\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, [clearRemovalTimer]);\n\n const pauseToast = React.useCallback((id: string) => {\n const remaining = remainingRef.current.get(id);\n if (remaining === undefined) return;\n\n const startedAt = startTimeRef.current.get(id);\n if (startedAt) {\n const elapsed = Date.now() - startedAt;\n remainingRef.current.set(id, Math.max(remaining - elapsed, 0));\n }\n clearRemovalTimer(id);\n }, [clearRemovalTimer]);\n\n const resumeToast = React.useCallback((id: string) => {\n const remaining = remainingRef.current.get(id);\n if (remaining === undefined || remaining <= 0) return;\n scheduleRemoval(id, remaining);\n }, [scheduleRemoval]);\n\n const clearToasts = React.useCallback(() => {\n timeoutRef.current.forEach((timeout) => {\n clearTimeout(timeout);\n });\n timeoutRef.current.clear();\n remainingRef.current.clear();\n startTimeRef.current.clear();\n setToasts([]);\n }, []);\n\n React.useEffect(\n () => () => {\n timeoutRef.current.forEach((timeout) => {\n clearTimeout(timeout);\n });\n timeoutRef.current.clear();\n remainingRef.current.clear();\n startTimeRef.current.clear();\n },\n []\n );\n\n const value = React.useMemo(\n () => ({ toasts, addToast, removeToast, clearToasts }),\n [toasts, addToast, removeToast, clearToasts]\n );\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n <ToastContainer\n toasts={toasts}\n position={position}\n onDismiss={removeToast}\n onPause={pauseToast}\n onResume={resumeToast}\n />\n </ToastContext.Provider>\n );\n}\n\n// ============================================\n// Export Toast as compound component\n// ============================================\n\nexport const Toast = Object.assign(ToastItem, {\n Provider: ToastProvider,\n});\n"],"names":[],"mappings":";;;AAyDA,MAAM,eAAe,MAAM,cAAwC,IAAI;AAMhE,SAAS,WAAW;AACzB,QAAM,UAAU,MAAM,WAAW,YAAY;AAC7C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AAEA,QAAM,QAAQ,MAAM,YAAY,CAAC,YAAmC;AAClE,WAAO,QAAQ,SAAS,OAAO;AAAA,EACjC,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,UAAU,MAAM,YAAY,CAAC,OAAe,gBAAyB;AACzE,WAAO,QAAQ,SAAS,EAAE,OAAO,aAAa,SAAS,WAAW;AAAA,EACpE,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,QAAQ,MAAM,YAAY,CAAC,OAAe,gBAAyB;AACvE,WAAO,QAAQ,SAAS,EAAE,OAAO,aAAa,SAAS,SAAS;AAAA,EAClE,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,UAAU,MAAM,YAAY,CAAC,OAAe,gBAAyB;AACzE,WAAO,QAAQ,SAAS,EAAE,OAAO,aAAa,SAAS,WAAW;AAAA,EACpE,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,OAAO,MAAM,YAAY,CAAC,OAAe,gBAAyB;AACtE,WAAO,QAAQ,SAAS,EAAE,OAAO,aAAa,SAAS,QAAQ;AAAA,EACjE,GAAG,CAAC,OAAO,CAAC;AAEZ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,QAAQ;AAAA,IACjB,YAAY,QAAQ;AAAA,EAAA;AAExB;AAMA,SAAS,cAAc;AACrB,8BACG,OAAA,EAAI,OAAM,8BAA6B,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,eAAY,QACrK,UAAA;AAAA,IAAA,oBAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK;AAAA,IAC/B,oBAAC,QAAA,EAAK,GAAE,gBAAA,CAAgB;AAAA,EAAA,GAC1B;AAEJ;AAEA,SAAS,YAAY;AACnB,8BACG,OAAA,EAAI,OAAM,8BAA6B,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,eAAY,QACrK,UAAA;AAAA,IAAA,oBAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK;AAAA,IAC/B,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAA,CAAK;AAAA,IACpC,oBAAC,UAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,KAAA,CAAK;AAAA,EAAA,GACtC;AAEJ;AAEA,SAAS,cAAc;AACrB,8BACG,OAAA,EAAI,OAAM,8BAA6B,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,eAAY,QACrK,UAAA;AAAA,IAAA,oBAAC,QAAA,EAAK,GAAE,2EAAA,CAA2E;AAAA,IACnF,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAA,CAAK;AAAA,IACrC,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,IAAG,KAAA,CAAK;AAAA,EAAA,GAC3C;AAEJ;AAEA,SAAS,WAAW;AAClB,8BACG,OAAA,EAAI,OAAM,8BAA6B,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,eAAY,QACrK,UAAA;AAAA,IAAA,oBAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK;AAAA,IAC/B,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAA,CAAK;AAAA,IACtC,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,SAAQ,IAAG,IAAA,CAAI;AAAA,EAAA,GACzC;AAEJ;AAEA,SAAS,YAAY;AACnB,8BACG,OAAA,EAAI,OAAM,8BAA6B,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,eAAY,QACrK,UAAA;AAAA,IAAA,oBAAC,QAAA,EAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAA,CAAK;AAAA,IACpC,oBAAC,UAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,KAAA,CAAK;AAAA,EAAA,GACtC;AAEJ;AAEA,MAAM,eAAiE;AAAA,EACrE,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AACR;AAMA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAIG;AACD,QAAM,OAAO,aAAa,OAAO;AACjC,QAAM,WAAW,MAAM,MAAA;AACvB,QAAM,WAAW,MAAM,OAAuB,IAAI;AAClD,QAAM,UAAU,QAAQ,eAAe,MAAM,QAAQ,KAAK;AAC1D,QAAM,SAAS,cAAc,cAAc,MAAM,QAAQ,KAAK;AAC9D,QAAM,WAAW,YAAY,WAAW,YAAY,YAAY,UAAU;AAE1E,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,IACP,OAAO,OAAO;AAAA,IACd;AAAA,EAAA,EACA,OAAO,OAAO,EAAE,KAAK,GAAG;AAE1B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACJ,GAAG;AAAA,MACJ,WAAW;AAAA,MACX,MAAM;AAAA,MACN,eAAY;AAAA,MACZ,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,cAAc;AAAA,MACd,cAAc,MAAM;AAClB,8BAAsB,MAAM;;AAC1B,cAAI,GAAC,cAAS,YAAT,mBAAkB,SAAS,SAAS,iBAAgB;AACvD;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,gBAAgB;AAAA,MAChB,eAAe,MAAM;AACnB,8BAAsB,MAAM;;AAC1B,cAAI,GAAC,cAAS,YAAT,mBAAkB,SAAS,SAAS,iBAAgB;AACvD;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MAEC,UAAA;AAAA,QAAA,4BACE,QAAA,EAAK,WAAW,OAAO,MACtB,UAAA,oBAAC,QAAK,EAAA,CACR;AAAA,QAEF,qBAAC,OAAA,EAAI,WAAW,OAAO,SACpB,UAAA;AAAA,UAAA,6BAAU,OAAA,EAAI,IAAI,SAAS,WAAW,OAAO,OAAQ,UAAA,MAAA,CAAM;AAAA,UAC3D,mCAAgB,OAAA,EAAI,IAAI,QAAQ,WAAW,OAAO,aAAc,UAAA,YAAA,CAAY;AAAA,QAAA,GAC/E;AAAA,QACC,UACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAW,OAAO;AAAA,YAClB,SAAS,OAAO;AAAA,YAEf,UAAA,OAAO;AAAA,UAAA;AAAA,QAAA;AAAA,QAGX,aACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAW,OAAO;AAAA,YAClB,SAAS;AAAA,YACT,cAAW;AAAA,YAEX,8BAAC,WAAA,CAAA,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACb;AAAA,IAAA;AAAA,EAAA;AAIR;AAMA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMG;AACD,QAAM,mBAAmB;AAAA,IACvB,OAAO;AAAA,IACP,OAAO,SAAS,QAAQ,KAAK,EAAE,CAAC;AAAA,EAAA,EAChC,OAAO,OAAO,EAAE,KAAK,GAAG;AAI1B,SACE,oBAAC,OAAA,EAAI,WAAW,kBAAkB,MAAK,UAAS,cAAW,iBACxD,UAAA,OAAO,IAAI,CAAC,UACX;AAAA,IAAC;AAAA,IAAA;AAAA,MAEE,GAAG;AAAA,MACJ,WAAW,MAAM,UAAU,MAAM,EAAE;AAAA,MACnC,SAAS,MAAM,QAAQ,MAAM,EAAE;AAAA,MAC/B,UAAU,MAAM,SAAS,MAAM,EAAE;AAAA,IAAA;AAAA,IAJ5B,MAAM;AAAA,EAAA,CAMd,GACH;AAEJ;AAMA,IAAI,eAAe;AAEZ,SAAS,cAAc;AAAA,EAC5B,WAAW;AAAA,EACX,WAAW;AAAA,EACX,MAAM;AAAA,EACN;AACF,GAAuB;AACrB,QAAM,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAsB,CAAA,CAAE;AAC1D,QAAM,aAAa,MAAM,OAAO,oBAAI,KAA4C;AAChF,QAAM,eAAe,MAAM,OAAO,oBAAI,KAAqB;AAC3D,QAAM,eAAe,MAAM,OAAO,oBAAI,KAAqB;AAE3D,QAAM,oBAAoB,MAAM,YAAY,CAAC,OAAe;AAC1D,UAAM,UAAU,WAAW,QAAQ,IAAI,EAAE;AACzC,QAAI,SAAS;AACX,mBAAa,OAAO;AACpB,iBAAW,QAAQ,OAAO,EAAE;AAAA,IAC9B;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,QAAM,kBAAkB,MAAM;AAAA,IAC5B,CAAC,IAAY,UAAkB;AAC7B,UAAI,SAAS,EAAG;AAChB,wBAAkB,EAAE;AACpB,mBAAa,QAAQ,IAAI,IAAI,KAAK;AAClC,mBAAa,QAAQ,IAAI,IAAI,KAAK,KAAK;AAEvC,YAAM,UAAU,WAAW,MAAM;AAC/B,kBAAU,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACnD,0BAAkB,EAAE;AACpB,qBAAa,QAAQ,OAAO,EAAE;AAC9B,qBAAa,QAAQ,OAAO,EAAE;AAAA,MAChC,GAAG,KAAK;AAER,iBAAW,QAAQ,IAAI,IAAI,OAAO;AAAA,IACpC;AAAA,IACA,CAAC,iBAAiB;AAAA,EAAA;AAGpB,QAAM,WAAW,MAAM,YAAY,CAAC,UAAiC;AACnE,UAAM,KAAK,SAAS,EAAE,YAAY;AAClC,UAAM,gBAAgB,MAAM,aAAa,MAAM,SAAS,IAAI;AAE5D,cAAU,CAAC,SAAS;AAClB,YAAM,aAAa,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,IAAI;AAC7C,YAAM,gBAAgB,KAAK,IAAI,GAAG,WAAW,SAAS,GAAG;AAEzD,UAAI,gBAAgB,GAAG;AACrB,cAAM,gBAAgB,WAAW,MAAM,GAAG,aAAa;AACvD,sBAAc,QAAQ,CAAC,iBAAiB;AACtC,4BAAkB,aAAa,EAAE;AACjC,uBAAa,QAAQ,OAAO,aAAa,EAAE;AAC3C,uBAAa,QAAQ,OAAO,aAAa,EAAE;AAAA,QAC7C,CAAC;AAAA,MACH;AAEA,aAAO,gBAAgB,IAAI,WAAW,MAAM,aAAa,IAAI;AAAA,IAC/D,CAAC;AAGD,QAAI,gBAAgB,GAAG;AACrB,sBAAgB,IAAI,aAAa;AAAA,IACnC;AAEA,WAAO;AAAA,EACT,GAAG,CAAC,mBAAmB,UAAU,KAAK,eAAe,CAAC;AAEtD,QAAM,cAAc,MAAM,YAAY,CAAC,OAAe;AACpD,sBAAkB,EAAE;AACpB,iBAAa,QAAQ,OAAO,EAAE;AAC9B,iBAAa,QAAQ,OAAO,EAAE;AAC9B,cAAU,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAAA,EACrD,GAAG,CAAC,iBAAiB,CAAC;AAEtB,QAAM,aAAa,MAAM,YAAY,CAAC,OAAe;AACnD,UAAM,YAAY,aAAa,QAAQ,IAAI,EAAE;AAC7C,QAAI,cAAc,OAAW;AAE7B,UAAM,YAAY,aAAa,QAAQ,IAAI,EAAE;AAC7C,QAAI,WAAW;AACb,YAAM,UAAU,KAAK,IAAA,IAAQ;AAC7B,mBAAa,QAAQ,IAAI,IAAI,KAAK,IAAI,YAAY,SAAS,CAAC,CAAC;AAAA,IAC/D;AACA,sBAAkB,EAAE;AAAA,EACtB,GAAG,CAAC,iBAAiB,CAAC;AAEtB,QAAM,cAAc,MAAM,YAAY,CAAC,OAAe;AACpD,UAAM,YAAY,aAAa,QAAQ,IAAI,EAAE;AAC7C,QAAI,cAAc,UAAa,aAAa,EAAG;AAC/C,oBAAgB,IAAI,SAAS;AAAA,EAC/B,GAAG,CAAC,eAAe,CAAC;AAEpB,QAAM,cAAc,MAAM,YAAY,MAAM;AAC1C,eAAW,QAAQ,QAAQ,CAAC,YAAY;AACtC,mBAAa,OAAO;AAAA,IACtB,CAAC;AACD,eAAW,QAAQ,MAAA;AACnB,iBAAa,QAAQ,MAAA;AACrB,iBAAa,QAAQ,MAAA;AACrB,cAAU,CAAA,CAAE;AAAA,EACd,GAAG,CAAA,CAAE;AAEL,QAAM;AAAA,IACJ,MAAM,MAAM;AACV,iBAAW,QAAQ,QAAQ,CAAC,YAAY;AACtC,qBAAa,OAAO;AAAA,MACtB,CAAC;AACD,iBAAW,QAAQ,MAAA;AACnB,mBAAa,QAAQ,MAAA;AACrB,mBAAa,QAAQ,MAAA;AAAA,IACvB;AAAA,IACA,CAAA;AAAA,EAAC;AAGH,QAAM,QAAQ,MAAM;AAAA,IAClB,OAAO,EAAE,QAAQ,UAAU,aAAa,YAAA;AAAA,IACxC,CAAC,QAAQ,UAAU,aAAa,WAAW;AAAA,EAAA;AAG7C,SACE,qBAAC,aAAa,UAAb,EAAsB,OACpB,UAAA;AAAA,IAAA;AAAA,IACD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACZ,GACF;AAEJ;AAMO,MAAM,QAAQ,OAAO,OAAO,WAAW;AAAA,EAC5C,UAAU;AACZ,CAAC;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Toast/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport styles from './Toast.module.scss';\n\n// ============================================\n// Types\n// ============================================\n\nexport type ToastVariant = 'default' | 'success' | 'error' | 'warning' | 'info';\nexport type ToastPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport interface ToastData {\n id: string;\n title?: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n action?: {\n label: string;\n onClick: () => void;\n };\n}\n\nexport interface ToastInput extends Omit<ToastData, 'id'> {\n /** Optional explicit id (useful for deterministic tests / replacing a known toast) */\n id?: string;\n}\n\nexport interface ToastProps extends Omit<ToastData, 'id'>, Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Callback when toast should be dismissed */\n onDismiss?: () => void;\n}\n\nexport interface ToastProviderProps {\n /** Position of the toast container */\n position?: ToastPosition;\n /** Default duration in ms (0 = no auto-dismiss) */\n duration?: number;\n /** Maximum number of toasts to show */\n max?: number;\n /** Children */\n children: React.ReactNode;\n}\n\n// ============================================\n// Context\n// ============================================\n\ninterface ToastContextValue {\n toasts: ToastData[];\n addToast: (toast: ToastInput) => string;\n removeToast: (id: string) => void;\n clearToasts: () => void;\n}\n\nconst ToastContext = React.createContext<ToastContextValue | null>(null);\n\n// ============================================\n// Hook to use toast\n// ============================================\n\nexport function useToast() {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n\n const toast = React.useCallback((options: ToastInput) => {\n return context.addToast(options);\n }, [context]);\n\n const makeVariantHelper = React.useCallback(\n (variant: ToastVariant) =>\n (titleOrOptions: string | Omit<ToastInput, 'variant'>, description?: string) => {\n if (typeof titleOrOptions === 'string') {\n return context.addToast({ title: titleOrOptions, description, variant });\n }\n return context.addToast({ ...titleOrOptions, variant });\n },\n [context]\n );\n\n const success = React.useMemo(() => makeVariantHelper('success'), [makeVariantHelper]);\n const error = React.useMemo(() => makeVariantHelper('error'), [makeVariantHelper]);\n const warning = React.useMemo(() => makeVariantHelper('warning'), [makeVariantHelper]);\n const info = React.useMemo(() => makeVariantHelper('info'), [makeVariantHelper]);\n\n return {\n toast,\n success,\n error,\n warning,\n info,\n dismiss: context.removeToast,\n dismissAll: context.clearToasts,\n };\n}\n\n// ============================================\n// Icons\n// ============================================\n\nfunction SuccessIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n </svg>\n );\n}\n\nfunction ErrorIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n );\n}\n\nfunction WarningIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n );\n}\n\nfunction InfoIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n );\n}\n\nfunction CloseIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n );\n}\n\nconst variantIcons: Record<ToastVariant, React.ComponentType | null> = {\n default: null,\n success: SuccessIcon,\n error: ErrorIcon,\n warning: WarningIcon,\n info: InfoIcon,\n};\n\n// ============================================\n// Toast Component\n// ============================================\n\nfunction ToastItem({\n id,\n title,\n description,\n variant = 'default',\n action,\n onDismiss,\n onPause,\n onResume,\n className,\n ...htmlProps\n}: ToastProps & {\n id?: string;\n onPause?: () => void;\n onResume?: () => void;\n}) {\n const Icon = variantIcons[variant];\n const uniqueId = React.useId();\n const toastRef = React.useRef<HTMLDivElement>(null);\n const titleId = title ? `toast-title-${id || uniqueId}` : undefined;\n const descId = description ? `toast-desc-${id || uniqueId}` : undefined;\n const liveRole = variant === 'error' || variant === 'warning' ? 'alert' : 'status';\n\n const toastClasses = [\n styles.toast,\n styles[variant],\n className,\n ].filter(Boolean).join(' ');\n\n return (\n <div\n ref={toastRef}\n {...htmlProps}\n className={toastClasses}\n role={liveRole}\n aria-atomic=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descId}\n onMouseEnter={onPause}\n onMouseLeave={() => {\n requestAnimationFrame(() => {\n if (!toastRef.current?.contains(document.activeElement)) {\n onResume?.();\n }\n });\n }}\n onFocusCapture={onPause}\n onBlurCapture={() => {\n requestAnimationFrame(() => {\n if (!toastRef.current?.contains(document.activeElement)) {\n onResume?.();\n }\n });\n }}\n >\n {Icon && (\n <span className={styles.icon}>\n <Icon />\n </span>\n )}\n <div className={styles.content}>\n {title && <div id={titleId} className={styles.title}>{title}</div>}\n {description && <div id={descId} className={styles.description}>{description}</div>}\n </div>\n {action && (\n <button\n type=\"button\"\n className={styles.action}\n onClick={action.onClick}\n >\n {action.label}\n </button>\n )}\n {onDismiss && (\n <button\n type=\"button\"\n className={styles.close}\n onClick={onDismiss}\n aria-label=\"Dismiss notification\"\n >\n <CloseIcon />\n </button>\n )}\n </div>\n );\n}\n\n// ============================================\n// Toast Container\n// ============================================\n\nfunction ToastContainer({\n toasts,\n position,\n onDismiss,\n onPause,\n onResume,\n}: {\n toasts: ToastData[];\n position: ToastPosition;\n onDismiss: (id: string) => void;\n onPause: (id: string) => void;\n onResume: (id: string) => void;\n}) {\n const containerClasses = [\n styles.container,\n styles[position.replace('-', '')],\n ].filter(Boolean).join(' ');\n\n // Always render the container for screen reader live region to work properly\n // The live region must exist before announcements are made\n return (\n <div className={containerClasses} role=\"region\" aria-label=\"Notifications\">\n {toasts.map((toast) => (\n <ToastItem\n key={toast.id}\n {...toast}\n onDismiss={() => onDismiss(toast.id)}\n onPause={() => onPause(toast.id)}\n onResume={() => onResume(toast.id)}\n />\n ))}\n </div>\n );\n}\n\n// ============================================\n// Toast Provider\n// ============================================\n\nexport function ToastProvider({\n position = 'bottom-right',\n duration = 8000,\n max = 5,\n children,\n}: ToastProviderProps) {\n const [toasts, setToasts] = React.useState<ToastData[]>([]);\n const idCounterRef = React.useRef(0);\n const timeoutRef = React.useRef(new Map<string, ReturnType<typeof setTimeout>>());\n const remainingRef = React.useRef(new Map<string, number>());\n const startTimeRef = React.useRef(new Map<string, number>());\n\n const clearRemovalTimer = React.useCallback((id: string) => {\n const timeout = timeoutRef.current.get(id);\n if (timeout) {\n clearTimeout(timeout);\n timeoutRef.current.delete(id);\n }\n }, []);\n\n const scheduleRemoval = React.useCallback(\n (id: string, delay: number) => {\n if (delay <= 0) return;\n clearRemovalTimer(id);\n remainingRef.current.set(id, delay);\n startTimeRef.current.set(id, Date.now());\n\n const timeout = setTimeout(() => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n clearRemovalTimer(id);\n remainingRef.current.delete(id);\n startTimeRef.current.delete(id);\n }, delay);\n\n timeoutRef.current.set(id, timeout);\n },\n [clearRemovalTimer]\n );\n\n const addToast = React.useCallback((toast: ToastInput) => {\n const id = toast.id ?? `toast-${++idCounterRef.current}`;\n const toastDuration = toast.duration ?? (toast.action ? 0 : duration);\n\n setToasts((prev) => {\n const nextToasts = [...prev, { ...toast, id }];\n const overflowCount = Math.max(0, nextToasts.length - max);\n\n if (overflowCount > 0) {\n const removedToasts = nextToasts.slice(0, overflowCount);\n removedToasts.forEach((removedToast) => {\n clearRemovalTimer(removedToast.id);\n remainingRef.current.delete(removedToast.id);\n startTimeRef.current.delete(removedToast.id);\n });\n }\n\n return overflowCount > 0 ? nextToasts.slice(overflowCount) : nextToasts;\n });\n\n // Auto-dismiss\n if (toastDuration > 0) {\n scheduleRemoval(id, toastDuration);\n }\n\n return id;\n }, [clearRemovalTimer, duration, max, scheduleRemoval]);\n\n const removeToast = React.useCallback((id: string) => {\n clearRemovalTimer(id);\n remainingRef.current.delete(id);\n startTimeRef.current.delete(id);\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, [clearRemovalTimer]);\n\n const pauseToast = React.useCallback((id: string) => {\n const remaining = remainingRef.current.get(id);\n if (remaining === undefined) return;\n\n const startedAt = startTimeRef.current.get(id);\n if (startedAt) {\n const elapsed = Date.now() - startedAt;\n remainingRef.current.set(id, Math.max(remaining - elapsed, 0));\n }\n clearRemovalTimer(id);\n }, [clearRemovalTimer]);\n\n const resumeToast = React.useCallback((id: string) => {\n const remaining = remainingRef.current.get(id);\n if (remaining === undefined || remaining <= 0) return;\n scheduleRemoval(id, remaining);\n }, [scheduleRemoval]);\n\n const clearToasts = React.useCallback(() => {\n timeoutRef.current.forEach((timeout) => {\n clearTimeout(timeout);\n });\n timeoutRef.current.clear();\n remainingRef.current.clear();\n startTimeRef.current.clear();\n setToasts([]);\n }, []);\n\n React.useEffect(\n () => () => {\n timeoutRef.current.forEach((timeout) => {\n clearTimeout(timeout);\n });\n timeoutRef.current.clear();\n remainingRef.current.clear();\n startTimeRef.current.clear();\n },\n []\n );\n\n const value = React.useMemo(\n () => ({ toasts, addToast, removeToast, clearToasts }),\n [toasts, addToast, removeToast, clearToasts]\n );\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n <ToastContainer\n toasts={toasts}\n position={position}\n onDismiss={removeToast}\n onPause={pauseToast}\n onResume={resumeToast}\n />\n </ToastContext.Provider>\n );\n}\n\n// ============================================\n// Export Toast as compound component\n// ============================================\n\nexport const Toast = Object.assign(ToastItem, {\n Provider: ToastProvider,\n});\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const root = "_root_wjgd1_1";
4
- const rootWithDescription = "_rootWithDescription_wjgd1_13";
5
- const track = "_track_wjgd1_16";
6
- const trackSm = "_trackSm_wjgd1_60";
7
- const trackMd = "_trackMd_wjgd1_72";
8
- const thumb = "_thumb_wjgd1_84";
9
- const content = "_content_wjgd1_99";
10
- const label = "_label_wjgd1_103";
11
- const labelSm = "_labelSm_wjgd1_110";
12
- const description = "_description_wjgd1_114";
13
- const descriptionSm = "_descriptionSm_wjgd1_122";
3
+ const root = "_root_1199k_1";
4
+ const rootWithDescription = "_rootWithDescription_1199k_14";
5
+ const track = "_track_1199k_17";
6
+ const trackSm = "_trackSm_1199k_47";
7
+ const trackMd = "_trackMd_1199k_59";
8
+ const thumb = "_thumb_1199k_71";
9
+ const content = "_content_1199k_95";
10
+ const label = "_label_1199k_99";
11
+ const labelSm = "_labelSm_1199k_106";
12
+ const description = "_description_1199k_110";
13
+ const descriptionSm = "_descriptionSm_1199k_118";
14
14
  const styles = {
15
15
  root,
16
16
  rootWithDescription,
@@ -1,14 +1,14 @@
1
- const root = "_root_wjgd1_1";
2
- const rootWithDescription = "_rootWithDescription_wjgd1_13";
3
- const track = "_track_wjgd1_16";
4
- const trackSm = "_trackSm_wjgd1_60";
5
- const trackMd = "_trackMd_wjgd1_72";
6
- const thumb = "_thumb_wjgd1_84";
7
- const content = "_content_wjgd1_99";
8
- const label = "_label_wjgd1_103";
9
- const labelSm = "_labelSm_wjgd1_110";
10
- const description = "_description_wjgd1_114";
11
- const descriptionSm = "_descriptionSm_wjgd1_122";
1
+ const root = "_root_1199k_1";
2
+ const rootWithDescription = "_rootWithDescription_1199k_14";
3
+ const track = "_track_1199k_17";
4
+ const trackSm = "_trackSm_1199k_47";
5
+ const trackMd = "_trackMd_1199k_59";
6
+ const thumb = "_thumb_1199k_71";
7
+ const content = "_content_1199k_95";
8
+ const label = "_label_1199k_99";
9
+ const labelSm = "_labelSm_1199k_106";
10
+ const description = "_description_1199k_110";
11
+ const descriptionSm = "_descriptionSm_1199k_118";
12
12
  const styles = {
13
13
  root,
14
14
  rootWithDescription,
@@ -68,7 +68,7 @@ const SwitchRoot = React__namespace.forwardRef(
68
68
  "aria-labelledby": ariaLabelledBy,
69
69
  "aria-describedby": ariaDescribedBy,
70
70
  children: [
71
- /* @__PURE__ */ jsxRuntime.jsx(_switch.Switch.Thumb, { className: trackClasses, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: thumbClasses, "aria-hidden": "true" }) }),
71
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: trackClasses, "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(_switch.Switch.Thumb, { className: thumbClasses }) }),
72
72
  (label || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Toggle_module.default.content, children: [
73
73
  label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: labelClasses, children: label }),
74
74
  description && /* @__PURE__ */ jsxRuntime.jsx("span", { className: descClasses, children: description })
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/Toggle/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Switch as BaseSwitch } from '@base-ui/react/switch';\nimport styles from './Toggle.module.scss';\n\n/**\n * Binary on/off switch for settings and preferences.\n * @see https://usefragments.com/components/switch\n */\nexport interface SwitchProps {\n /** Whether the switch is on */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Called when the switch is toggled */\n onChange?: (checked: boolean) => void;\n /** Alias for onChange (Radix convention) */\n onCheckedChange?: (checked: boolean) => void;\n label?: string;\n description?: string;\n disabled?: boolean;\n size?: 'sm' | 'md';\n className?: string;\n name?: string;\n id?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n}\n\nexport type ToggleProps = SwitchProps;\n\nconst SwitchRoot = React.forwardRef<HTMLButtonElement, SwitchProps>(\n function Switch(\n {\n checked,\n defaultChecked,\n onChange,\n onCheckedChange,\n label,\n description,\n disabled = false,\n size = 'md',\n className,\n name,\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n },\n ref\n ) {\n const trackClasses = [\n styles.track,\n size === 'sm' ? styles.trackSm : styles.trackMd,\n ].join(' ');\n\n const thumbClasses = styles.thumb;\n\n const labelClasses = [styles.label, size === 'sm' && styles.labelSm]\n .filter(Boolean)\n .join(' ');\n\n const descClasses = [\n styles.description,\n size === 'sm' && styles.descriptionSm,\n ]\n .filter(Boolean)\n .join(' ');\n\n const rootClasses = [\n styles.root,\n description && styles.rootWithDescription,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <BaseSwitch.Root\n ref={ref}\n id={id}\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onChange ?? onCheckedChange}\n disabled={disabled}\n name={name}\n className={rootClasses}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n >\n <BaseSwitch.Thumb className={trackClasses}>\n <span className={thumbClasses} aria-hidden=\"true\" />\n </BaseSwitch.Thumb>\n\n {(label || description) && (\n <div className={styles.content}>\n {label && <span className={labelClasses}>{label}</span>}\n {description && <span className={descClasses}>{description}</span>}\n </div>\n )}\n </BaseSwitch.Root>\n );\n }\n);\n\nexport const Switch = Object.assign(SwitchRoot, {\n Root: SwitchRoot,\n});\n\n/** @deprecated Use `Switch` instead. */\nexport const Toggle = Switch;\n"],"names":["React","Switch","styles","jsxs","BaseSwitch","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,aAAaA,iBAAM;AAAA,EACvB,SAASC,QACP;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,EAAA,GAEtB,KACA;AACA,UAAM,eAAe;AAAA,MACnBC,cAAAA,QAAO;AAAA,MACP,SAAS,OAAOA,sBAAO,UAAUA,cAAAA,QAAO;AAAA,IAAA,EACxC,KAAK,GAAG;AAEV,UAAM,eAAeA,cAAAA,QAAO;AAE5B,UAAM,eAAe,CAACA,cAAAA,QAAO,OAAO,SAAS,QAAQA,sBAAO,OAAO,EAChE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAM,cAAc;AAAA,MAClBA,cAAAA,QAAO;AAAA,MACP,SAAS,QAAQA,sBAAO;AAAA,IAAA,EAEvB,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAM,cAAc;AAAA,MAClBA,cAAAA,QAAO;AAAA,MACP,eAAeA,cAAAA,QAAO;AAAA,MACtB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACEC,2BAAAA;AAAAA,MAACC,QAAAA,OAAW;AAAA,MAAX;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAiB,YAAY;AAAA,QAC7B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,cAAY;AAAA,QACZ,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAElB,UAAA;AAAA,UAAAC,2BAAAA,IAACD,QAAAA,OAAW,OAAX,EAAiB,WAAW,cAC3B,UAAAC,2BAAAA,IAAC,QAAA,EAAK,WAAW,cAAc,eAAY,OAAA,CAAO,EAAA,CACpD;AAAA,WAEE,SAAS,gBACTF,gCAAC,OAAA,EAAI,WAAWD,cAAAA,QAAO,SACpB,UAAA;AAAA,YAAA,SAASG,2BAAAA,IAAC,QAAA,EAAK,WAAW,cAAe,UAAA,OAAM;AAAA,YAC/C,eAAeA,2BAAAA,IAAC,QAAA,EAAK,WAAW,aAAc,UAAA,YAAA,CAAY;AAAA,UAAA,EAAA,CAC7D;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEO,MAAM,SAAS,OAAO,OAAO,YAAY;AAAA,EAC9C,MAAM;AACR,CAAC;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/Toggle/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Switch as BaseSwitch } from '@base-ui/react/switch';\nimport styles from './Toggle.module.scss';\n\n/**\n * Binary on/off switch for settings and preferences.\n * @see https://usefragments.com/components/switch\n */\nexport interface SwitchProps {\n /** Whether the switch is on */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Called when the switch is toggled */\n onChange?: (checked: boolean) => void;\n /** Alias for onChange (Radix convention) */\n onCheckedChange?: (checked: boolean) => void;\n label?: string;\n description?: string;\n disabled?: boolean;\n size?: 'sm' | 'md';\n className?: string;\n name?: string;\n id?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n}\n\nexport type ToggleProps = SwitchProps;\n\nconst SwitchRoot = React.forwardRef<HTMLButtonElement, SwitchProps>(\n function Switch(\n {\n checked,\n defaultChecked,\n onChange,\n onCheckedChange,\n label,\n description,\n disabled = false,\n size = 'md',\n className,\n name,\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n },\n ref\n ) {\n const trackClasses = [\n styles.track,\n size === 'sm' ? styles.trackSm : styles.trackMd,\n ].join(' ');\n\n const thumbClasses = styles.thumb;\n\n const labelClasses = [styles.label, size === 'sm' && styles.labelSm]\n .filter(Boolean)\n .join(' ');\n\n const descClasses = [\n styles.description,\n size === 'sm' && styles.descriptionSm,\n ]\n .filter(Boolean)\n .join(' ');\n\n const rootClasses = [\n styles.root,\n description && styles.rootWithDescription,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <BaseSwitch.Root\n ref={ref}\n id={id}\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onChange ?? onCheckedChange}\n disabled={disabled}\n name={name}\n className={rootClasses}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n >\n <span className={trackClasses} aria-hidden=\"true\">\n <BaseSwitch.Thumb className={thumbClasses} />\n </span>\n\n {(label || description) && (\n <div className={styles.content}>\n {label && <span className={labelClasses}>{label}</span>}\n {description && <span className={descClasses}>{description}</span>}\n </div>\n )}\n </BaseSwitch.Root>\n );\n }\n);\n\nexport const Switch = Object.assign(SwitchRoot, {\n Root: SwitchRoot,\n});\n\n/** @deprecated Use `Switch` instead. */\nexport const Toggle = Switch;\n"],"names":["React","Switch","styles","jsxs","BaseSwitch","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAM,aAAaA,iBAAM;AAAA,EACvB,SAASC,QACP;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,EAAA,GAEtB,KACA;AACA,UAAM,eAAe;AAAA,MACnBC,cAAAA,QAAO;AAAA,MACP,SAAS,OAAOA,sBAAO,UAAUA,cAAAA,QAAO;AAAA,IAAA,EACxC,KAAK,GAAG;AAEV,UAAM,eAAeA,cAAAA,QAAO;AAE5B,UAAM,eAAe,CAACA,cAAAA,QAAO,OAAO,SAAS,QAAQA,sBAAO,OAAO,EAChE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAM,cAAc;AAAA,MAClBA,cAAAA,QAAO;AAAA,MACP,SAAS,QAAQA,sBAAO;AAAA,IAAA,EAEvB,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAM,cAAc;AAAA,MAClBA,cAAAA,QAAO;AAAA,MACP,eAAeA,cAAAA,QAAO;AAAA,MACtB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACEC,2BAAAA;AAAAA,MAACC,QAAAA,OAAW;AAAA,MAAX;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAiB,YAAY;AAAA,QAC7B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,cAAY;AAAA,QACZ,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAElB,UAAA;AAAA,UAAAC,2BAAAA,IAAC,QAAA,EAAK,WAAW,cAAc,eAAY,QACzC,UAAAA,2BAAAA,IAACD,QAAAA,OAAW,OAAX,EAAiB,WAAW,aAAA,CAAc,EAAA,CAC7C;AAAA,WAEE,SAAS,gBACTD,gCAAC,OAAA,EAAI,WAAWD,cAAAA,QAAO,SACpB,UAAA;AAAA,YAAA,SAASG,2BAAAA,IAAC,QAAA,EAAK,WAAW,cAAe,UAAA,OAAM;AAAA,YAC/C,eAAeA,2BAAAA,IAAC,QAAA,EAAK,WAAW,aAAc,UAAA,YAAA,CAAY;AAAA,UAAA,EAAA,CAC7D;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEO,MAAM,SAAS,OAAO,OAAO,YAAY;AAAA,EAC9C,MAAM;AACR,CAAC;;"}
@@ -49,7 +49,7 @@ const SwitchRoot = React.forwardRef(
49
49
  "aria-labelledby": ariaLabelledBy,
50
50
  "aria-describedby": ariaDescribedBy,
51
51
  children: [
52
- /* @__PURE__ */ jsx(Switch$1.Thumb, { className: trackClasses, children: /* @__PURE__ */ jsx("span", { className: thumbClasses, "aria-hidden": "true" }) }),
52
+ /* @__PURE__ */ jsx("span", { className: trackClasses, "aria-hidden": "true", children: /* @__PURE__ */ jsx(Switch$1.Thumb, { className: thumbClasses }) }),
53
53
  (label || description) && /* @__PURE__ */ jsxs("div", { className: styles.content, children: [
54
54
  label && /* @__PURE__ */ jsx("span", { className: labelClasses, children: label }),
55
55
  description && /* @__PURE__ */ jsx("span", { className: descClasses, children: description })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Toggle/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Switch as BaseSwitch } from '@base-ui/react/switch';\nimport styles from './Toggle.module.scss';\n\n/**\n * Binary on/off switch for settings and preferences.\n * @see https://usefragments.com/components/switch\n */\nexport interface SwitchProps {\n /** Whether the switch is on */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Called when the switch is toggled */\n onChange?: (checked: boolean) => void;\n /** Alias for onChange (Radix convention) */\n onCheckedChange?: (checked: boolean) => void;\n label?: string;\n description?: string;\n disabled?: boolean;\n size?: 'sm' | 'md';\n className?: string;\n name?: string;\n id?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n}\n\nexport type ToggleProps = SwitchProps;\n\nconst SwitchRoot = React.forwardRef<HTMLButtonElement, SwitchProps>(\n function Switch(\n {\n checked,\n defaultChecked,\n onChange,\n onCheckedChange,\n label,\n description,\n disabled = false,\n size = 'md',\n className,\n name,\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n },\n ref\n ) {\n const trackClasses = [\n styles.track,\n size === 'sm' ? styles.trackSm : styles.trackMd,\n ].join(' ');\n\n const thumbClasses = styles.thumb;\n\n const labelClasses = [styles.label, size === 'sm' && styles.labelSm]\n .filter(Boolean)\n .join(' ');\n\n const descClasses = [\n styles.description,\n size === 'sm' && styles.descriptionSm,\n ]\n .filter(Boolean)\n .join(' ');\n\n const rootClasses = [\n styles.root,\n description && styles.rootWithDescription,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <BaseSwitch.Root\n ref={ref}\n id={id}\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onChange ?? onCheckedChange}\n disabled={disabled}\n name={name}\n className={rootClasses}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n >\n <BaseSwitch.Thumb className={trackClasses}>\n <span className={thumbClasses} aria-hidden=\"true\" />\n </BaseSwitch.Thumb>\n\n {(label || description) && (\n <div className={styles.content}>\n {label && <span className={labelClasses}>{label}</span>}\n {description && <span className={descClasses}>{description}</span>}\n </div>\n )}\n </BaseSwitch.Root>\n );\n }\n);\n\nexport const Switch = Object.assign(SwitchRoot, {\n Root: SwitchRoot,\n});\n\n/** @deprecated Use `Switch` instead. */\nexport const Toggle = Switch;\n"],"names":["Switch","BaseSwitch"],"mappings":";;;;AAiCA,MAAM,aAAa,MAAM;AAAA,EACvB,SAASA,QACP;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,EAAA,GAEtB,KACA;AACA,UAAM,eAAe;AAAA,MACnB,OAAO;AAAA,MACP,SAAS,OAAO,OAAO,UAAU,OAAO;AAAA,IAAA,EACxC,KAAK,GAAG;AAEV,UAAM,eAAe,OAAO;AAE5B,UAAM,eAAe,CAAC,OAAO,OAAO,SAAS,QAAQ,OAAO,OAAO,EAChE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAM,cAAc;AAAA,MAClB,OAAO;AAAA,MACP,SAAS,QAAQ,OAAO;AAAA,IAAA,EAEvB,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAM,cAAc;AAAA,MAClB,OAAO;AAAA,MACP,eAAe,OAAO;AAAA,MACtB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACE;AAAA,MAACC,SAAW;AAAA,MAAX;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAiB,YAAY;AAAA,QAC7B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,cAAY;AAAA,QACZ,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAElB,UAAA;AAAA,UAAA,oBAACA,SAAW,OAAX,EAAiB,WAAW,cAC3B,UAAA,oBAAC,QAAA,EAAK,WAAW,cAAc,eAAY,OAAA,CAAO,EAAA,CACpD;AAAA,WAEE,SAAS,gBACT,qBAAC,OAAA,EAAI,WAAW,OAAO,SACpB,UAAA;AAAA,YAAA,SAAS,oBAAC,QAAA,EAAK,WAAW,cAAe,UAAA,OAAM;AAAA,YAC/C,eAAe,oBAAC,QAAA,EAAK,WAAW,aAAc,UAAA,YAAA,CAAY;AAAA,UAAA,EAAA,CAC7D;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEO,MAAM,SAAS,OAAO,OAAO,YAAY;AAAA,EAC9C,MAAM;AACR,CAAC;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Toggle/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Switch as BaseSwitch } from '@base-ui/react/switch';\nimport styles from './Toggle.module.scss';\n\n/**\n * Binary on/off switch for settings and preferences.\n * @see https://usefragments.com/components/switch\n */\nexport interface SwitchProps {\n /** Whether the switch is on */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Called when the switch is toggled */\n onChange?: (checked: boolean) => void;\n /** Alias for onChange (Radix convention) */\n onCheckedChange?: (checked: boolean) => void;\n label?: string;\n description?: string;\n disabled?: boolean;\n size?: 'sm' | 'md';\n className?: string;\n name?: string;\n id?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n}\n\nexport type ToggleProps = SwitchProps;\n\nconst SwitchRoot = React.forwardRef<HTMLButtonElement, SwitchProps>(\n function Switch(\n {\n checked,\n defaultChecked,\n onChange,\n onCheckedChange,\n label,\n description,\n disabled = false,\n size = 'md',\n className,\n name,\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n },\n ref\n ) {\n const trackClasses = [\n styles.track,\n size === 'sm' ? styles.trackSm : styles.trackMd,\n ].join(' ');\n\n const thumbClasses = styles.thumb;\n\n const labelClasses = [styles.label, size === 'sm' && styles.labelSm]\n .filter(Boolean)\n .join(' ');\n\n const descClasses = [\n styles.description,\n size === 'sm' && styles.descriptionSm,\n ]\n .filter(Boolean)\n .join(' ');\n\n const rootClasses = [\n styles.root,\n description && styles.rootWithDescription,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <BaseSwitch.Root\n ref={ref}\n id={id}\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onChange ?? onCheckedChange}\n disabled={disabled}\n name={name}\n className={rootClasses}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n >\n <span className={trackClasses} aria-hidden=\"true\">\n <BaseSwitch.Thumb className={thumbClasses} />\n </span>\n\n {(label || description) && (\n <div className={styles.content}>\n {label && <span className={labelClasses}>{label}</span>}\n {description && <span className={descClasses}>{description}</span>}\n </div>\n )}\n </BaseSwitch.Root>\n );\n }\n);\n\nexport const Switch = Object.assign(SwitchRoot, {\n Root: SwitchRoot,\n});\n\n/** @deprecated Use `Switch` instead. */\nexport const Toggle = Switch;\n"],"names":["Switch","BaseSwitch"],"mappings":";;;;AAiCA,MAAM,aAAa,MAAM;AAAA,EACvB,SAASA,QACP;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,EAAA,GAEtB,KACA;AACA,UAAM,eAAe;AAAA,MACnB,OAAO;AAAA,MACP,SAAS,OAAO,OAAO,UAAU,OAAO;AAAA,IAAA,EACxC,KAAK,GAAG;AAEV,UAAM,eAAe,OAAO;AAE5B,UAAM,eAAe,CAAC,OAAO,OAAO,SAAS,QAAQ,OAAO,OAAO,EAChE,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAM,cAAc;AAAA,MAClB,OAAO;AAAA,MACP,SAAS,QAAQ,OAAO;AAAA,IAAA,EAEvB,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,UAAM,cAAc;AAAA,MAClB,OAAO;AAAA,MACP,eAAe,OAAO;AAAA,MACtB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACE;AAAA,MAACC,SAAW;AAAA,MAAX;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAiB,YAAY;AAAA,QAC7B;AAAA,QACA;AAAA,QACA,WAAW;AAAA,QACX,cAAY;AAAA,QACZ,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAElB,UAAA;AAAA,UAAA,oBAAC,QAAA,EAAK,WAAW,cAAc,eAAY,QACzC,UAAA,oBAACA,SAAW,OAAX,EAAiB,WAAW,aAAA,CAAc,EAAA,CAC7C;AAAA,WAEE,SAAS,gBACT,qBAAC,OAAA,EAAI,WAAW,OAAO,SACpB,UAAA;AAAA,YAAA,SAAS,oBAAC,QAAA,EAAK,WAAW,cAAe,UAAA,OAAM;AAAA,YAC/C,eAAe,oBAAC,QAAA,EAAK,WAAW,aAAc,UAAA,YAAA,CAAY;AAAA,UAAA,EAAA,CAC7D;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEO,MAAM,SAAS,OAAO,OAAO,YAAY;AAAA,EAC9C,MAAM;AACR,CAAC;"}