@spark-ui/components 14.0.0-beta.1 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/dist/Button-B6rA3-e5.js +2 -0
  2. package/dist/{Button-C3xHNaGl.js.map → Button-B6rA3-e5.js.map} +1 -1
  3. package/dist/{Button-D32Avk2j.mjs → Button-C3C0aixy.mjs} +4 -4
  4. package/dist/{Button-D32Avk2j.mjs.map → Button-C3C0aixy.mjs.map} +1 -1
  5. package/dist/DialogContent.styles-BSfXHt21.mjs +61 -0
  6. package/dist/DialogContent.styles-BSfXHt21.mjs.map +1 -0
  7. package/dist/DialogContent.styles-bBs6l8Cy.js +2 -0
  8. package/dist/DialogContent.styles-bBs6l8Cy.js.map +1 -0
  9. package/dist/Icon-CF0W0LKr.js +2 -0
  10. package/dist/{Icon-Bf0XrmiR.js.map → Icon-CF0W0LKr.js.map} +1 -1
  11. package/dist/{Icon-D1RueiPY.mjs → Icon-Ck-dhfLd.mjs} +6 -6
  12. package/dist/{Icon-D1RueiPY.mjs.map → Icon-Ck-dhfLd.mjs.map} +1 -1
  13. package/dist/{IconButton-BY3gYXtU.mjs → IconButton-C62-axzv.mjs} +6 -6
  14. package/dist/{IconButton-BY3gYXtU.mjs.map → IconButton-C62-axzv.mjs.map} +1 -1
  15. package/dist/IconButton-D3g86WpZ.js +2 -0
  16. package/dist/{IconButton-Bf-EDzpI.js.map → IconButton-D3g86WpZ.js.map} +1 -1
  17. package/dist/Slot-D2Bbf8Gw.mjs +14 -0
  18. package/dist/{Slot-C98rL4yy.mjs.map → Slot-D2Bbf8Gw.mjs.map} +1 -1
  19. package/dist/Slot-DQ8z2zsy.js +2 -0
  20. package/dist/{Slot-ghrohQLA.js.map → Slot-DQ8z2zsy.js.map} +1 -1
  21. package/dist/Spinner-_Kffli3B.js +2 -0
  22. package/dist/{Spinner-DK8VEsaR.js.map → Spinner-_Kffli3B.js.map} +1 -1
  23. package/dist/{Spinner-CYL5kyzM.mjs → Spinner-jF3-zoh_.mjs} +3 -3
  24. package/dist/{Spinner-CYL5kyzM.mjs.map → Spinner-jF3-zoh_.mjs.map} +1 -1
  25. package/dist/{TextLink-3MEVs3No.mjs → TextLink-BuzFRWO6.mjs} +3 -3
  26. package/dist/{TextLink-3MEVs3No.mjs.map → TextLink-BuzFRWO6.mjs.map} +1 -1
  27. package/dist/TextLink-C3xDLsbC.js +2 -0
  28. package/dist/{TextLink-DD0VO37q.js.map → TextLink-C3xDLsbC.js.map} +1 -1
  29. package/dist/{VisuallyHidden-AoRh4WRK.js → VisuallyHidden-CB6Nx76j.js} +2 -2
  30. package/dist/{VisuallyHidden-AoRh4WRK.js.map → VisuallyHidden-CB6Nx76j.js.map} +1 -1
  31. package/dist/{VisuallyHidden-ByNP7ZUI.mjs → VisuallyHidden-KH1biLx-.mjs} +2 -2
  32. package/dist/{VisuallyHidden-ByNP7ZUI.mjs.map → VisuallyHidden-KH1biLx-.mjs.map} +1 -1
  33. package/dist/accordion/index.d.mts +15 -0
  34. package/dist/accordion/index.js +1 -1
  35. package/dist/accordion/index.js.map +1 -1
  36. package/dist/accordion/index.mjs +90 -608
  37. package/dist/accordion/index.mjs.map +1 -1
  38. package/dist/alert-dialog/AlertDialogPortal.d.ts +1 -1
  39. package/dist/alert-dialog/index.d.mts +38 -0
  40. package/dist/alert-dialog/index.js +1 -34
  41. package/dist/alert-dialog/index.js.map +1 -1
  42. package/dist/alert-dialog/index.mjs +139 -2475
  43. package/dist/alert-dialog/index.mjs.map +1 -1
  44. package/dist/avatar/index.d.mts +15 -0
  45. package/dist/avatar/index.js +1 -1
  46. package/dist/avatar/index.js.map +1 -1
  47. package/dist/avatar/index.mjs +4 -4
  48. package/dist/badge/index.d.mts +1 -0
  49. package/dist/badge/index.js +1 -1
  50. package/dist/badge/index.js.map +1 -1
  51. package/dist/badge/index.mjs +6 -6
  52. package/dist/breadcrumb/index.d.mts +12 -0
  53. package/dist/breadcrumb/index.js +1 -1
  54. package/dist/breadcrumb/index.js.map +1 -1
  55. package/dist/breadcrumb/index.mjs +21 -21
  56. package/dist/button/Button.d.ts +1 -1
  57. package/dist/button/index.d.mts +1 -0
  58. package/dist/button/index.js +1 -1
  59. package/dist/button/index.mjs +1 -1
  60. package/dist/button/variants/index.d.mts +5 -0
  61. package/dist/card/index.d.mts +8 -0
  62. package/dist/card/index.js +1 -1
  63. package/dist/card/index.js.map +1 -1
  64. package/dist/card/index.mjs +2 -2
  65. package/dist/carousel/index.d.mts +19 -0
  66. package/dist/carousel/index.js +1 -1
  67. package/dist/carousel/index.js.map +1 -1
  68. package/dist/carousel/index.mjs +3 -3
  69. package/dist/checkbox/index.d.mts +2 -0
  70. package/dist/checkbox/index.js +1 -1
  71. package/dist/checkbox/index.js.map +1 -1
  72. package/dist/checkbox/index.mjs +128 -364
  73. package/dist/checkbox/index.mjs.map +1 -1
  74. package/dist/chip/index.d.mts +15 -0
  75. package/dist/chip/index.js +1 -1
  76. package/dist/chip/index.js.map +1 -1
  77. package/dist/chip/index.mjs +196 -370
  78. package/dist/chip/index.mjs.map +1 -1
  79. package/dist/chip/variants/index.d.mts +3 -0
  80. package/dist/collapsible/index.d.mts +7 -0
  81. package/dist/collapsible/index.js +1 -1
  82. package/dist/collapsible/index.js.map +1 -1
  83. package/dist/collapsible/index.mjs +38 -213
  84. package/dist/collapsible/index.mjs.map +1 -1
  85. package/dist/combobox/index.d.mts +35 -0
  86. package/dist/combobox/index.js +1 -1
  87. package/dist/combobox/index.js.map +1 -1
  88. package/dist/combobox/index.mjs +7 -7
  89. package/dist/combobox/utils/index.d.mts +14 -0
  90. package/dist/dialog/Dialog.d.ts +13 -13
  91. package/dist/dialog/DialogClose.d.ts +9 -8
  92. package/dist/dialog/DialogContent.d.ts +4 -4
  93. package/dist/dialog/DialogDescription.d.ts +3 -3
  94. package/dist/dialog/DialogOverlay.d.ts +5 -5
  95. package/dist/dialog/DialogPortal.d.ts +4 -4
  96. package/dist/dialog/DialogTitle.d.ts +3 -3
  97. package/dist/dialog/DialogTrigger.d.ts +5 -9
  98. package/dist/dialog/index.d.mts +37 -0
  99. package/dist/dialog/index.js +1 -1
  100. package/dist/dialog/index.js.map +1 -1
  101. package/dist/dialog/index.mjs +149 -159
  102. package/dist/dialog/index.mjs.map +1 -1
  103. package/dist/divider/index.d.mts +6 -0
  104. package/dist/divider/index.js +1 -1
  105. package/dist/divider/index.js.map +1 -1
  106. package/dist/divider/index.mjs +58 -76
  107. package/dist/divider/index.mjs.map +1 -1
  108. package/dist/drawer/Drawer.d.ts +12 -19
  109. package/dist/drawer/DrawerClose.d.ts +9 -5
  110. package/dist/drawer/DrawerContent.d.ts +5 -5
  111. package/dist/drawer/DrawerDescription.d.ts +4 -4
  112. package/dist/drawer/DrawerOverlay.d.ts +5 -5
  113. package/dist/drawer/DrawerPortal.d.ts +4 -4
  114. package/dist/drawer/DrawerTitle.d.ts +5 -5
  115. package/dist/drawer/DrawerTrigger.d.ts +5 -5
  116. package/dist/drawer/index.d.mts +37 -0
  117. package/dist/drawer/index.d.ts +2 -0
  118. package/dist/drawer/index.js +1 -1
  119. package/dist/drawer/index.js.map +1 -1
  120. package/dist/drawer/index.mjs +143 -114
  121. package/dist/drawer/index.mjs.map +1 -1
  122. package/dist/drawer/useRenderSlot.d.ts +3 -0
  123. package/dist/dropdown/index.d.mts +29 -0
  124. package/dist/dropdown/index.js +1 -1
  125. package/dist/dropdown/index.js.map +1 -1
  126. package/dist/dropdown/index.mjs +5 -5
  127. package/dist/file-upload/index.d.mts +22 -0
  128. package/dist/file-upload/index.js +1 -1
  129. package/dist/file-upload/index.js.map +1 -1
  130. package/dist/file-upload/index.mjs +6 -6
  131. package/dist/form-field/index.d.mts +31 -0
  132. package/dist/form-field/index.js +1 -1
  133. package/dist/form-field/index.js.map +1 -1
  134. package/dist/form-field/index.mjs +47 -47
  135. package/dist/icon/index.d.mts +1 -0
  136. package/dist/icon/index.js +1 -1
  137. package/dist/icon/index.mjs +1 -1
  138. package/dist/icon-button/index.d.mts +1 -0
  139. package/dist/icon-button/index.js +1 -1
  140. package/dist/icon-button/index.mjs +1 -1
  141. package/dist/input/index.d.mts +21 -0
  142. package/dist/input/index.js +1 -1
  143. package/dist/input/index.js.map +1 -1
  144. package/dist/input/index.mjs +4 -4
  145. package/dist/input-otp/index.d.mts +14 -0
  146. package/dist/input-otp/index.js +1 -1
  147. package/dist/input-otp/index.js.map +1 -1
  148. package/dist/input-otp/index.mjs +139 -137
  149. package/dist/input-otp/index.mjs.map +1 -1
  150. package/dist/kbd/index.d.mts +1 -0
  151. package/dist/label/index.d.mts +7 -0
  152. package/dist/label/index.js +1 -1
  153. package/dist/label/index.js.map +1 -1
  154. package/dist/label/index.mjs +37 -2
  155. package/dist/label/index.mjs.map +1 -1
  156. package/dist/link-box/index.d.mts +9 -0
  157. package/dist/link-box/index.js +1 -1
  158. package/dist/link-box/index.js.map +1 -1
  159. package/dist/link-box/index.mjs +7 -7
  160. package/dist/pagination/index.d.mts +18 -0
  161. package/dist/pagination/index.js +1 -1
  162. package/dist/pagination/index.js.map +1 -1
  163. package/dist/pagination/index.mjs +126 -844
  164. package/dist/pagination/index.mjs.map +1 -1
  165. package/dist/popover/index.d.mts +17 -0
  166. package/dist/popover/index.js +1 -1
  167. package/dist/popover/index.js.map +1 -1
  168. package/dist/popover/index.mjs +119 -1748
  169. package/dist/popover/index.mjs.map +1 -1
  170. package/dist/portal/index.d.mts +1 -0
  171. package/dist/portal/index.js +1 -1
  172. package/dist/portal/index.js.map +1 -1
  173. package/dist/portal/index.mjs +3 -3
  174. package/dist/portal/index.mjs.map +1 -1
  175. package/dist/progress/index.d.mts +13 -0
  176. package/dist/progress/index.js +1 -6
  177. package/dist/progress/index.js.map +1 -1
  178. package/dist/progress/index.mjs +87 -162
  179. package/dist/progress/index.mjs.map +1 -1
  180. package/dist/progress-tracker/index.d.mts +10 -0
  181. package/dist/progress-tracker/index.js +1 -1
  182. package/dist/progress-tracker/index.js.map +1 -1
  183. package/dist/progress-tracker/index.mjs +14 -14
  184. package/dist/radio-group/index.d.mts +7 -0
  185. package/dist/radio-group/index.js +1 -1
  186. package/dist/radio-group/index.js.map +1 -1
  187. package/dist/radio-group/index.mjs +85 -312
  188. package/dist/radio-group/index.mjs.map +1 -1
  189. package/dist/rating/index.d.mts +1 -0
  190. package/dist/rating/index.js +1 -1
  191. package/dist/rating/index.js.map +1 -1
  192. package/dist/rating/index.mjs +11 -11
  193. package/dist/scrolling-list/index.d.mts +15 -0
  194. package/dist/scrolling-list/index.js +1 -1
  195. package/dist/scrolling-list/index.js.map +1 -1
  196. package/dist/scrolling-list/index.mjs +168 -333
  197. package/dist/scrolling-list/index.mjs.map +1 -1
  198. package/dist/segmented-gauge/index.d.mts +13 -0
  199. package/dist/segmented-gauge/index.js +1 -1
  200. package/dist/segmented-gauge/index.js.map +1 -1
  201. package/dist/segmented-gauge/index.mjs +1 -1
  202. package/dist/select/index.d.mts +21 -0
  203. package/dist/select/index.js +1 -1
  204. package/dist/select/index.js.map +1 -1
  205. package/dist/select/index.mjs +21 -21
  206. package/dist/skeleton/index.d.mts +8 -0
  207. package/dist/skeleton/index.js +1 -1
  208. package/dist/skeleton/index.js.map +1 -1
  209. package/dist/skeleton/index.mjs +2 -2
  210. package/dist/slider/Slider.d.ts +6 -1
  211. package/dist/slider/SliderContext.d.ts +4 -1
  212. package/dist/slider/index.d.mts +8 -0
  213. package/dist/slider/index.js +1 -1
  214. package/dist/slider/index.js.map +1 -1
  215. package/dist/slider/index.mjs +96 -496
  216. package/dist/slider/index.mjs.map +1 -1
  217. package/dist/slot/index.d.mts +1 -0
  218. package/dist/slot/index.js +1 -1
  219. package/dist/slot/index.mjs +1 -1
  220. package/dist/snackbar/index.d.mts +13 -0
  221. package/dist/snackbar/index.js +1 -1
  222. package/dist/snackbar/index.js.map +1 -1
  223. package/dist/snackbar/index.mjs +189 -1105
  224. package/dist/snackbar/index.mjs.map +1 -1
  225. package/dist/spinner/index.d.mts +1 -0
  226. package/dist/spinner/index.js +1 -1
  227. package/dist/spinner/index.mjs +1 -1
  228. package/dist/stepper/index.d.mts +9 -0
  229. package/dist/stepper/index.js +1 -7
  230. package/dist/stepper/index.js.map +1 -1
  231. package/dist/stepper/index.mjs +137 -2317
  232. package/dist/stepper/index.mjs.map +1 -1
  233. package/dist/switch/index.d.mts +1 -0
  234. package/dist/switch/index.js +1 -1
  235. package/dist/switch/index.js.map +1 -1
  236. package/dist/switch/index.mjs +85 -208
  237. package/dist/switch/index.mjs.map +1 -1
  238. package/dist/tabs/index.d.mts +13 -0
  239. package/dist/tabs/index.js +1 -1
  240. package/dist/tabs/index.js.map +1 -1
  241. package/dist/tabs/index.mjs +179 -329
  242. package/dist/tabs/index.mjs.map +1 -1
  243. package/dist/tag/index.d.mts +1 -0
  244. package/dist/tag/index.js +1 -1
  245. package/dist/tag/index.js.map +1 -1
  246. package/dist/tag/index.mjs +2 -2
  247. package/dist/tag/variants/index.d.mts +3 -0
  248. package/dist/text-link/index.d.mts +1 -0
  249. package/dist/text-link/index.js +1 -1
  250. package/dist/text-link/index.mjs +1 -1
  251. package/dist/textarea/index.d.mts +14 -0
  252. package/dist/textarea/index.js +1 -1
  253. package/dist/textarea/index.js.map +1 -1
  254. package/dist/textarea/index.mjs +6 -6
  255. package/dist/toast/index.d.mts +20 -0
  256. package/dist/toast/index.js +1 -1
  257. package/dist/toast/index.js.map +1 -1
  258. package/dist/toast/index.mjs +146 -1008
  259. package/dist/toast/index.mjs.map +1 -1
  260. package/dist/useRenderSlot-DATwjgpo.js +2 -0
  261. package/dist/useRenderSlot-DATwjgpo.js.map +1 -0
  262. package/dist/useRenderSlot-LwWj8QbC.mjs +10 -0
  263. package/dist/useRenderSlot-LwWj8QbC.mjs.map +1 -0
  264. package/dist/visually-hidden/index.d.mts +1 -0
  265. package/dist/visually-hidden/index.js +1 -1
  266. package/dist/visually-hidden/index.mjs +1 -1
  267. package/package.json +7 -6
  268. package/dist/Button-C3xHNaGl.js +0 -2
  269. package/dist/DialogContent.styles-BrhKaHc_.js +0 -2
  270. package/dist/DialogContent.styles-BrhKaHc_.js.map +0 -1
  271. package/dist/DialogContent.styles-WGWJS9dj.mjs +0 -48
  272. package/dist/DialogContent.styles-WGWJS9dj.mjs.map +0 -1
  273. package/dist/Icon-Bf0XrmiR.js +0 -2
  274. package/dist/IconButton-Bf-EDzpI.js +0 -2
  275. package/dist/Slot-C98rL4yy.mjs +0 -14
  276. package/dist/Slot-ghrohQLA.js +0 -2
  277. package/dist/Spinner-DK8VEsaR.js +0 -2
  278. package/dist/TextLink-DD0VO37q.js +0 -2
  279. package/dist/composite-Br3kM5N9.mjs +0 -40
  280. package/dist/composite-Br3kM5N9.mjs.map +0 -1
  281. package/dist/composite-fJD9R7R0.js +0 -2
  282. package/dist/composite-fJD9R7R0.js.map +0 -1
  283. package/dist/detectBrowser-Bc7rk5fI.mjs +0 -44
  284. package/dist/detectBrowser-Bc7rk5fI.mjs.map +0 -1
  285. package/dist/detectBrowser-DTbs_30X.js +0 -2
  286. package/dist/detectBrowser-DTbs_30X.js.map +0 -1
  287. package/dist/downshift.esm-Ncwetv0s.mjs +0 -3038
  288. package/dist/downshift.esm-Ncwetv0s.mjs.map +0 -1
  289. package/dist/downshift.esm-PfCOUbxq.js +0 -37
  290. package/dist/downshift.esm-PfCOUbxq.js.map +0 -1
  291. package/dist/floating-ui.utils.dom-CCN4I08l.js +0 -2
  292. package/dist/floating-ui.utils.dom-CCN4I08l.js.map +0 -1
  293. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs +0 -136
  294. package/dist/floating-ui.utils.dom-uiDUZc_y.mjs.map +0 -1
  295. package/dist/index-0KYGKeVg.js +0 -2
  296. package/dist/index-0KYGKeVg.js.map +0 -1
  297. package/dist/index-1WIgmEZh.js +0 -2
  298. package/dist/index-1WIgmEZh.js.map +0 -1
  299. package/dist/index-BRi38DTc.mjs +0 -21
  300. package/dist/index-BRi38DTc.mjs.map +0 -1
  301. package/dist/index-BZAtNKwE.mjs +0 -71
  302. package/dist/index-BZAtNKwE.mjs.map +0 -1
  303. package/dist/index-BZPx6jYI.mjs +0 -9
  304. package/dist/index-BZPx6jYI.mjs.map +0 -1
  305. package/dist/index-BlkdpEIe.mjs +0 -55
  306. package/dist/index-BlkdpEIe.mjs.map +0 -1
  307. package/dist/index-BmAFn37q.mjs +0 -49
  308. package/dist/index-BmAFn37q.mjs.map +0 -1
  309. package/dist/index-C-J_tHdS.js +0 -6
  310. package/dist/index-C-J_tHdS.js.map +0 -1
  311. package/dist/index-C1qb0595.mjs +0 -28
  312. package/dist/index-C1qb0595.mjs.map +0 -1
  313. package/dist/index-C34GgsKQ.mjs +0 -54
  314. package/dist/index-C34GgsKQ.mjs.map +0 -1
  315. package/dist/index-CCKe-Mpx.mjs +0 -7
  316. package/dist/index-CCKe-Mpx.mjs.map +0 -1
  317. package/dist/index-CDBBjNXc.js +0 -2
  318. package/dist/index-CDBBjNXc.js.map +0 -1
  319. package/dist/index-CYjGhVvU.mjs +0 -243
  320. package/dist/index-CYjGhVvU.mjs.map +0 -1
  321. package/dist/index-ChLwd62c.js +0 -2
  322. package/dist/index-ChLwd62c.js.map +0 -1
  323. package/dist/index-Cjj_rUPu.js +0 -2
  324. package/dist/index-Cjj_rUPu.js.map +0 -1
  325. package/dist/index-CyMbLkj0.js +0 -2
  326. package/dist/index-CyMbLkj0.js.map +0 -1
  327. package/dist/index-DFZozV_h.mjs +0 -69
  328. package/dist/index-DFZozV_h.mjs.map +0 -1
  329. package/dist/index-DKuHkHFX.js +0 -2
  330. package/dist/index-DKuHkHFX.js.map +0 -1
  331. package/dist/index-DLHLIYPI.mjs +0 -16
  332. package/dist/index-DLHLIYPI.mjs.map +0 -1
  333. package/dist/index-DO-atGp-.js +0 -2
  334. package/dist/index-DO-atGp-.js.map +0 -1
  335. package/dist/index-DWlg8lkk.mjs +0 -179
  336. package/dist/index-DWlg8lkk.mjs.map +0 -1
  337. package/dist/index-DYxWvftI.js +0 -2
  338. package/dist/index-DYxWvftI.js.map +0 -1
  339. package/dist/index-D_lWkK39.mjs +0 -803
  340. package/dist/index-D_lWkK39.mjs.map +0 -1
  341. package/dist/index-DdkVj7D0.js +0 -18
  342. package/dist/index-DdkVj7D0.js.map +0 -1
  343. package/dist/index-De-6atSi.js +0 -2
  344. package/dist/index-De-6atSi.js.map +0 -1
  345. package/dist/index-DhGWNzsz.mjs +0 -83
  346. package/dist/index-DhGWNzsz.mjs.map +0 -1
  347. package/dist/index-Dkj4QRX8.js +0 -2
  348. package/dist/index-Dkj4QRX8.js.map +0 -1
  349. package/dist/index-DlIFg0Eu.mjs +0 -60
  350. package/dist/index-DlIFg0Eu.mjs.map +0 -1
  351. package/dist/index-DnaHaH_0.js +0 -2
  352. package/dist/index-DnaHaH_0.js.map +0 -1
  353. package/dist/index-MHF2-CYX.js +0 -2
  354. package/dist/index-MHF2-CYX.js.map +0 -1
  355. package/dist/index-MQ0c3ZX_.js +0 -2
  356. package/dist/index-MQ0c3ZX_.js.map +0 -1
  357. package/dist/index-MSR-vgWR.mjs +0 -37
  358. package/dist/index-MSR-vgWR.mjs.map +0 -1
  359. package/dist/index-VL0YEmOW.mjs +0 -125
  360. package/dist/index-VL0YEmOW.mjs.map +0 -1
  361. package/dist/index-tXqxYME3.js +0 -42
  362. package/dist/index-tXqxYME3.js.map +0 -1
  363. package/dist/inertValue-Bif5Sqs6.mjs +0 -522
  364. package/dist/inertValue-Bif5Sqs6.mjs.map +0 -1
  365. package/dist/inertValue-ShwihJSN.js +0 -5
  366. package/dist/inertValue-ShwihJSN.js.map +0 -1
  367. package/dist/useCollapsiblePanel-D1dCo0lf.js +0 -4
  368. package/dist/useCollapsiblePanel-D1dCo0lf.js.map +0 -1
  369. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs +0 -287
  370. package/dist/useCollapsiblePanel-kbMNl4Z4.mjs.map +0 -1
  371. package/dist/useFocusWithin-CFNEka2I.js +0 -2
  372. package/dist/useFocusWithin-CFNEka2I.js.map +0 -1
  373. package/dist/useFocusWithin-CoL4390f.mjs +0 -796
  374. package/dist/useFocusWithin-CoL4390f.mjs.map +0 -1
  375. package/dist/useOpenChangeComplete-Dk-u_f2y.js +0 -2
  376. package/dist/useOpenChangeComplete-Dk-u_f2y.js.map +0 -1
  377. package/dist/useOpenChangeComplete-RUbg6RBw.mjs +0 -582
  378. package/dist/useOpenChangeComplete-RUbg6RBw.mjs.map +0 -1
  379. package/dist/useTransitionStatus-CktVVKxz.mjs +0 -46
  380. package/dist/useTransitionStatus-CktVVKxz.mjs.map +0 -1
  381. package/dist/useTransitionStatus-CqbEyvIj.js +0 -2
  382. package/dist/useTransitionStatus-CqbEyvIj.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../node_modules/@base-ui/utils/esm/generateId.js","../../../../node_modules/@base-ui/react/esm/toast/provider/ToastProviderContext.js","../../../../node_modules/@base-ui/react/esm/toast/utils/resolvePromiseOptions.js","../../../../node_modules/@base-ui/react/esm/toast/provider/ToastProvider.js","../../../../node_modules/@base-ui/react/esm/toast/viewport/ToastViewportContext.js","../../../../node_modules/@base-ui/react/esm/toast/viewport/ToastViewportCssVars.js","../../../../node_modules/@base-ui/react/esm/toast/viewport/ToastViewport.js","../../../../node_modules/@base-ui/react/esm/toast/root/ToastRootContext.js","../../../../node_modules/@base-ui/react/esm/toast/root/ToastRootCssVars.js","../../../../node_modules/@base-ui/react/esm/toast/root/ToastRoot.js","../../../../node_modules/@base-ui/react/esm/toast/description/ToastDescription.js","../../../../node_modules/@base-ui/react/esm/toast/title/ToastTitle.js","../../../../node_modules/@base-ui/react/esm/toast/close/ToastClose.js","../../../../node_modules/@base-ui/react/esm/toast/action/ToastAction.js","../../../../node_modules/@base-ui/react/esm/utils/FloatingPortalLite.js","../../../../node_modules/@base-ui/react/esm/toast/portal/ToastPortal.js","../../../../node_modules/@base-ui/react/esm/toast/useToastManager.js","../../../../node_modules/@base-ui/react/esm/toast/createToastManager.js","../../src/toast/Toast.styles.ts","../../src/toast/Toast.tsx","../../src/toast/useToastManager.ts","../../src/toast/index.tsx"],"sourcesContent":["let counter = 0;\nexport function generateId(prefix) {\n counter += 1;\n return `${prefix}-${Math.random().toString(36).slice(2, 6)}-${counter}`;\n}","import _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ToastContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ToastContext.displayName = \"ToastContext\";\nexport function useToastContext() {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: useToastManager must be used within <Toast.Provider>.' : _formatErrorMessage(73));\n }\n return context;\n}","export function resolvePromiseOptions(options, result) {\n if (typeof options === 'string') {\n return {\n description: options\n };\n }\n if (typeof options === 'function') {\n const resolvedOptions = options(result);\n return typeof resolvedOptions === 'string' ? {\n description: resolvedOptions\n } : resolvedOptions;\n }\n return options;\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { generateId } from '@base-ui/utils/generateId';\nimport { Timeout } from '@base-ui/utils/useTimeout';\nimport { activeElement, contains } from \"../../floating-ui-react/utils.js\";\nimport { ToastContext } from \"./ToastProviderContext.js\";\nimport { isFocusVisible } from \"../utils/focusVisible.js\";\nimport { resolvePromiseOptions } from \"../utils/resolvePromiseOptions.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Provides a context for creating and managing toasts.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastProvider = function ToastProvider(props) {\n const {\n children,\n timeout = 5000,\n limit = 3,\n toastManager\n } = props;\n const [toasts, setToasts] = React.useState([]);\n const [hovering, setHovering] = React.useState(false);\n const [focused, setFocused] = React.useState(false);\n const [prevFocusElement, setPrevFocusElement] = React.useState(null);\n if (toasts.length === 0) {\n if (hovering) {\n setHovering(false);\n }\n if (focused) {\n setFocused(false);\n }\n }\n const expanded = hovering || focused;\n const timersRef = React.useRef(new Map());\n const viewportRef = React.useRef(null);\n const windowFocusedRef = React.useRef(true);\n const isPausedRef = React.useRef(false);\n function handleFocusManagement(toastId) {\n const activeEl = activeElement(ownerDocument(viewportRef.current));\n if (!viewportRef.current || !contains(viewportRef.current, activeEl) || !isFocusVisible(activeEl)) {\n return;\n }\n const currentIndex = toasts.findIndex(toast => toast.id === toastId);\n let nextToast = null;\n\n // Try to find the next toast that isn't animating out\n let index = currentIndex + 1;\n while (index < toasts.length) {\n if (toasts[index].transitionStatus !== 'ending') {\n nextToast = toasts[index];\n break;\n }\n index += 1;\n }\n\n // Go backwards if no next toast is found\n if (!nextToast) {\n index = currentIndex - 1;\n while (index >= 0) {\n if (toasts[index].transitionStatus !== 'ending') {\n nextToast = toasts[index];\n break;\n }\n index -= 1;\n }\n }\n if (nextToast) {\n nextToast.ref?.current?.focus();\n } else {\n prevFocusElement?.focus({\n preventScroll: true\n });\n }\n }\n const pauseTimers = useStableCallback(() => {\n if (isPausedRef.current) {\n return;\n }\n isPausedRef.current = true;\n timersRef.current.forEach(timer => {\n if (timer.timeout) {\n timer.timeout.clear();\n const elapsed = Date.now() - timer.start;\n const remaining = timer.delay - elapsed;\n timer.remaining = remaining > 0 ? remaining : 0;\n }\n });\n });\n const resumeTimers = useStableCallback(() => {\n if (!isPausedRef.current) {\n return;\n }\n isPausedRef.current = false;\n timersRef.current.forEach((timer, id) => {\n timer.remaining = timer.remaining > 0 ? timer.remaining : timer.delay;\n timer.timeout ??= Timeout.create();\n timer.timeout.start(timer.remaining, () => {\n timersRef.current.delete(id);\n timer.callback();\n });\n timer.start = Date.now();\n });\n });\n const close = useStableCallback(toastId => {\n setToasts(prevToasts => {\n const toastsWithEnding = prevToasts.map(toast => toast.id === toastId ? {\n ...toast,\n transitionStatus: 'ending',\n height: 0\n } : toast);\n const activeToasts = toastsWithEnding.filter(t => t.transitionStatus !== 'ending');\n return toastsWithEnding.map(toast => {\n if (toast.transitionStatus === 'ending') {\n return toast;\n }\n const isActiveToastLimited = activeToasts.indexOf(toast) >= limit;\n return {\n ...toast,\n limited: isActiveToastLimited\n };\n });\n });\n const timer = timersRef.current.get(toastId);\n if (timer && timer.timeout) {\n timer.timeout.clear();\n timersRef.current.delete(toastId);\n }\n const toast = toasts.find(t => t.id === toastId);\n toast?.onClose?.();\n handleFocusManagement(toastId);\n if (toasts.length === 1) {\n setHovering(false);\n setFocused(false);\n }\n });\n const remove = useStableCallback(toastId => {\n setToasts(prev => prev.filter(toast => toast.id !== toastId));\n const toast = toasts.find(t => t.id === toastId);\n toast?.onRemove?.();\n });\n const scheduleTimer = useStableCallback((id, delay, callback) => {\n const start = Date.now();\n const shouldStartActive = windowFocusedRef.current && !hovering && !focused;\n const currentTimeout = shouldStartActive ? Timeout.create() : undefined;\n currentTimeout?.start(delay, () => {\n timersRef.current.delete(id);\n callback();\n });\n timersRef.current.set(id, {\n timeout: currentTimeout,\n start: shouldStartActive ? start : 0,\n delay,\n remaining: delay,\n callback\n });\n });\n const add = useStableCallback(toast => {\n const id = toast.id || generateId('toast');\n const toastToAdd = {\n ...toast,\n id,\n transitionStatus: 'starting'\n };\n setToasts(prev => {\n const updatedToasts = [toastToAdd, ...prev];\n const activeToasts = updatedToasts.filter(t => t.transitionStatus !== 'ending');\n\n // Mark oldest toasts for removal when over limit\n if (activeToasts.length > limit) {\n const excessCount = activeToasts.length - limit;\n const oldestActiveToasts = activeToasts.slice(-excessCount);\n return updatedToasts.map(t => oldestActiveToasts.some(old => old.id === t.id) ? {\n ...t,\n limited: true\n } : {\n ...t,\n limited: false\n });\n }\n return updatedToasts.map(t => ({\n ...t,\n limited: false\n }));\n });\n const duration = toastToAdd.timeout ?? timeout;\n if (toastToAdd.type !== 'loading' && duration > 0) {\n scheduleTimer(id, duration, () => close(id));\n }\n if (hovering || focused || !windowFocusedRef.current) {\n pauseTimers();\n }\n return id;\n });\n const update = useStableCallback((id, updates) => {\n setToasts(prev => prev.map(toast => toast.id === id ? {\n ...toast,\n ...updates\n } : toast));\n });\n const promise = useStableCallback((promiseValue, options) => {\n // Create a loading toast (which does not auto-dismiss).\n const loadingOptions = resolvePromiseOptions(options.loading);\n const id = add({\n ...loadingOptions,\n type: 'loading'\n });\n const handledPromise = promiseValue.then(result => {\n const successOptions = resolvePromiseOptions(options.success, result);\n update(id, {\n ...successOptions,\n type: 'success'\n });\n const successTimeout = successOptions.timeout ?? timeout;\n if (successTimeout > 0) {\n scheduleTimer(id, successTimeout, () => close(id));\n }\n if (hovering || focused || !windowFocusedRef.current) {\n pauseTimers();\n }\n return result;\n }).catch(error => {\n const errorOptions = resolvePromiseOptions(options.error, error);\n update(id, {\n ...errorOptions,\n type: 'error'\n });\n const errorTimeout = errorOptions.timeout ?? timeout;\n if (errorTimeout > 0) {\n scheduleTimer(id, errorTimeout, () => close(id));\n }\n if (hovering || focused || !windowFocusedRef.current) {\n pauseTimers();\n }\n return Promise.reject(error);\n });\n\n // Private API used exclusively by `Manager` to handoff the promise\n // back to the manager after it's handled here.\n if ({}.hasOwnProperty.call(options, 'setPromise')) {\n options.setPromise(handledPromise);\n }\n return handledPromise;\n });\n React.useEffect(function subscribeToToastManager() {\n if (!toastManager) {\n return undefined;\n }\n const unsubscribe = toastManager[' subscribe'](({\n action,\n options\n }) => {\n const id = options.id;\n if (action === 'promise' && options.promise) {\n promise(options.promise, options);\n } else if (action === 'update' && id) {\n update(id, options);\n } else if (action === 'close' && id) {\n close(id);\n } else {\n add(options);\n }\n });\n return unsubscribe;\n }, [add, update, scheduleTimer, timeout, toastManager, promise, close]);\n const contextValue = React.useMemo(() => ({\n toasts,\n setToasts,\n hovering,\n setHovering,\n focused,\n setFocused,\n expanded,\n add,\n close,\n remove,\n update,\n promise,\n pauseTimers,\n resumeTimers,\n prevFocusElement,\n setPrevFocusElement,\n viewportRef,\n scheduleTimer,\n windowFocusedRef\n }), [add, close, focused, hovering, expanded, pauseTimers, prevFocusElement, promise, remove, resumeTimers, scheduleTimer, toasts, update]);\n return /*#__PURE__*/_jsx(ToastContext.Provider, {\n value: contextValue,\n children: children\n });\n};\nif (process.env.NODE_ENV !== \"production\") ToastProvider.displayName = \"ToastProvider\";","import _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ToastViewportContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ToastViewportContext.displayName = \"ToastViewportContext\";\nexport function useToastViewportContext() {\n const context = React.useContext(ToastViewportContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ToastViewportContext is missing. Toast parts must be placed within <Toast.Viewport>.' : _formatErrorMessage(67));\n }\n return context;\n}","export let ToastViewportCssVars = /*#__PURE__*/function (ToastViewportCssVars) {\n /**\n * Indicates the height of the frontmost toast.\n * @type {number}\n */\n ToastViewportCssVars[\"frontmostHeight\"] = \"--toast-frontmost-height\";\n return ToastViewportCssVars;\n}({});","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { visuallyHidden } from '@base-ui/utils/visuallyHidden';\nimport { activeElement, contains, getTarget } from \"../../floating-ui-react/utils.js\";\nimport { FocusGuard } from \"../../utils/FocusGuard.js\";\nimport { ToastViewportContext } from \"./ToastViewportContext.js\";\nimport { useToastContext } from \"../provider/ToastProviderContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { isFocusVisible } from \"../utils/focusVisible.js\";\nimport { ToastViewportCssVars } from \"./ToastViewportCssVars.js\";\n\n/**\n * A container viewport for toasts.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ToastViewport = /*#__PURE__*/React.forwardRef(function ToastViewport(componentProps, forwardedRef) {\n const {\n render,\n className,\n children,\n ...elementProps\n } = componentProps;\n const {\n toasts,\n pauseTimers,\n resumeTimers,\n setHovering,\n setFocused,\n viewportRef,\n windowFocusedRef,\n prevFocusElement,\n setPrevFocusElement,\n expanded,\n focused\n } = useToastContext();\n const handlingFocusGuardRef = React.useRef(false);\n const markedReadyForMouseLeaveRef = React.useRef(false);\n const numToasts = toasts.length;\n const frontmostHeight = toasts[0]?.height ?? 0;\n const hasTransitioningToasts = React.useMemo(() => toasts.some(toast => toast.transitionStatus === 'ending'), [toasts]);\n\n // Listen globally for F6 so we can force-focus the viewport.\n React.useEffect(() => {\n if (!viewportRef.current) {\n return undefined;\n }\n function handleGlobalKeyDown(event) {\n if (numToasts === 0) {\n return;\n }\n if (event.key === 'F6' && event.target !== viewportRef.current) {\n event.preventDefault();\n setPrevFocusElement(activeElement(ownerDocument(viewportRef.current)));\n viewportRef.current?.focus({\n preventScroll: true\n });\n pauseTimers();\n setFocused(true);\n }\n }\n const win = ownerWindow(viewportRef.current);\n win.addEventListener('keydown', handleGlobalKeyDown);\n return () => {\n win.removeEventListener('keydown', handleGlobalKeyDown);\n };\n }, [pauseTimers, setFocused, setPrevFocusElement, numToasts, viewportRef]);\n React.useEffect(() => {\n if (!viewportRef.current || !numToasts) {\n return undefined;\n }\n const win = ownerWindow(viewportRef.current);\n function handleWindowBlur(event) {\n if (event.target !== win) {\n return;\n }\n windowFocusedRef.current = false;\n pauseTimers();\n }\n function handleWindowFocus(event) {\n if (event.relatedTarget || event.target === win) {\n return;\n }\n const target = getTarget(event);\n const activeEl = activeElement(ownerDocument(viewportRef.current));\n if (!contains(viewportRef.current, target) || !isFocusVisible(activeEl)) {\n resumeTimers();\n }\n\n // Wait for the `handleFocus` event to fire.\n setTimeout(() => {\n windowFocusedRef.current = true;\n });\n }\n win.addEventListener('blur', handleWindowBlur, true);\n win.addEventListener('focus', handleWindowFocus, true);\n return () => {\n win.removeEventListener('blur', handleWindowBlur, true);\n win.removeEventListener('focus', handleWindowFocus, true);\n };\n }, [pauseTimers, resumeTimers, viewportRef, windowFocusedRef, setFocused,\n // `viewportRef.current` isn't available on the first render,\n // since the portal node hasn't yet been created.\n // By adding this dependency, we ensure the window listeners\n // are added when toasts have been created, once the ref is available.\n numToasts]);\n React.useEffect(() => {\n const viewportNode = viewportRef.current;\n if (!viewportNode || numToasts === 0) {\n return undefined;\n }\n const doc = ownerDocument(viewportNode);\n function handlePointerDown(event) {\n if (event.pointerType !== 'touch') {\n return;\n }\n const target = getTarget(event);\n if (contains(viewportNode, target)) {\n return;\n }\n resumeTimers();\n setHovering(false);\n setFocused(false);\n }\n doc.addEventListener('pointerdown', handlePointerDown, true);\n return () => {\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n };\n }, [numToasts, resumeTimers, setFocused, setHovering, viewportRef]);\n function handleFocusGuard(event) {\n if (!viewportRef.current) {\n return;\n }\n handlingFocusGuardRef.current = true;\n\n // If we're coming off the container, move to the first toast\n if (event.relatedTarget === viewportRef.current) {\n toasts[0]?.ref?.current?.focus();\n } else {\n prevFocusElement?.focus({\n preventScroll: true\n });\n }\n }\n function handleKeyDown(event) {\n if (event.key === 'Tab' && event.shiftKey && event.target === viewportRef.current) {\n event.preventDefault();\n prevFocusElement?.focus({\n preventScroll: true\n });\n resumeTimers();\n }\n }\n React.useEffect(() => {\n if (!windowFocusedRef.current || hasTransitioningToasts || !markedReadyForMouseLeaveRef.current) {\n return;\n }\n\n // Once transitions have finished, see if a mouseleave was already triggered\n // but blocked from taking effect. If so, we can now safely resume timers and\n // collapse the viewport.\n resumeTimers();\n setHovering(false);\n markedReadyForMouseLeaveRef.current = false;\n }, [hasTransitioningToasts, resumeTimers, setHovering, windowFocusedRef]);\n function handleMouseEnter() {\n pauseTimers();\n setHovering(true);\n markedReadyForMouseLeaveRef.current = false;\n }\n function handleMouseLeave() {\n if (toasts.some(toast => toast.transitionStatus === 'ending')) {\n // When swiping to dismiss, wait until the transitions have settled\n // to avoid the viewport collapsing while the user is interacting.\n markedReadyForMouseLeaveRef.current = true;\n } else {\n resumeTimers();\n setHovering(false);\n }\n }\n function handleFocus() {\n if (handlingFocusGuardRef.current) {\n handlingFocusGuardRef.current = false;\n return;\n }\n if (focused) {\n return;\n }\n\n // Only set focused when the active element is focus-visible.\n // This prevents the viewport from staying expanded when clicking inside without\n // keyboard navigation.\n if (isFocusVisible(ownerDocument(viewportRef.current).activeElement)) {\n setFocused(true);\n pauseTimers();\n }\n }\n function handleBlur(event) {\n if (!focused || contains(viewportRef.current, event.relatedTarget)) {\n return;\n }\n setFocused(false);\n resumeTimers();\n }\n const defaultProps = {\n tabIndex: -1,\n role: 'region',\n 'aria-live': 'polite',\n 'aria-atomic': false,\n 'aria-relevant': 'additions text',\n 'aria-label': 'Notifications',\n onMouseEnter: handleMouseEnter,\n onMouseMove: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onClick: handleFocus\n };\n const state = React.useMemo(() => ({\n expanded\n }), [expanded]);\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, viewportRef],\n state,\n props: [defaultProps, {\n style: {\n [ToastViewportCssVars.frontmostHeight]: frontmostHeight ? `${frontmostHeight}px` : undefined\n }\n }, elementProps, {\n children: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [numToasts > 0 && prevFocusElement && /*#__PURE__*/_jsx(FocusGuard, {\n onFocus: handleFocusGuard\n }), children, numToasts > 0 && prevFocusElement && /*#__PURE__*/_jsx(FocusGuard, {\n onFocus: handleFocusGuard\n })]\n })\n }]\n });\n const contextValue = React.useMemo(() => ({\n viewportRef\n }), [viewportRef]);\n const highPriorityToasts = React.useMemo(() => toasts.filter(toast => toast.priority === 'high'), [toasts]);\n return /*#__PURE__*/_jsxs(ToastViewportContext.Provider, {\n value: contextValue,\n children: [numToasts > 0 && prevFocusElement && /*#__PURE__*/_jsx(FocusGuard, {\n onFocus: handleFocusGuard\n }), element, !focused && highPriorityToasts.length > 0 && /*#__PURE__*/_jsx(\"div\", {\n style: visuallyHidden,\n children: highPriorityToasts.map(toast => /*#__PURE__*/_jsxs(\"div\", {\n role: \"alert\",\n \"aria-atomic\": true,\n children: [/*#__PURE__*/_jsx(\"div\", {\n children: toast.title\n }), /*#__PURE__*/_jsx(\"div\", {\n children: toast.description\n })]\n }, toast.id))\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ToastViewport.displayName = \"ToastViewport\";","import _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ToastRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ToastRootContext.displayName = \"ToastRootContext\";\nexport function useToastRootContext() {\n const context = React.useContext(ToastRootContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ToastRootContext is missing. Toast parts must be used within <Toast.Root>.' : _formatErrorMessage(66));\n }\n return context;\n}","export let ToastRootCssVars = /*#__PURE__*/function (ToastRootCssVars) {\n /**\n * Indicates the index of the toast in the list.\n * @type {number}\n */\n ToastRootCssVars[\"index\"] = \"--toast-index\";\n /**\n * Indicates the vertical pixels offset of the toast in the list when expanded.\n * @type {number}\n */\n ToastRootCssVars[\"offsetY\"] = \"--toast-offset-y\";\n /**\n * Indicates the measured natural height of the toast in pixels.\n * @type {number}\n */\n ToastRootCssVars[\"height\"] = \"--toast-height\";\n /**\n * Indicates the horizontal swipe movement of the toast.\n * @type {number}\n */\n ToastRootCssVars[\"swipeMovementX\"] = \"--toast-swipe-movement-x\";\n /**\n * Indicates the vertical swipe movement of the toast.\n * @type {number}\n */\n ToastRootCssVars[\"swipeMovementY\"] = \"--toast-swipe-movement-y\";\n return ToastRootCssVars;\n}({});","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { inertValue } from '@base-ui/utils/inertValue';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { activeElement, contains, getTarget } from \"../../floating-ui-react/utils.js\";\nimport { ToastRootContext } from \"./ToastRootContext.js\";\nimport { transitionStatusMapping } from \"../../utils/stateAttributesMapping.js\";\nimport { useToastContext } from \"../provider/ToastProviderContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { useOpenChangeComplete } from \"../../utils/useOpenChangeComplete.js\";\nimport { ToastRootCssVars } from \"./ToastRootCssVars.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst stateAttributesMapping = {\n ...transitionStatusMapping,\n swipeDirection(value) {\n return value ? {\n 'data-swipe-direction': value\n } : null;\n }\n};\nconst SWIPE_THRESHOLD = 40;\nconst REVERSE_CANCEL_THRESHOLD = 10;\nconst OPPOSITE_DIRECTION_DAMPING_FACTOR = 0.5;\nconst MIN_DRAG_THRESHOLD = 1;\nfunction getDisplacement(direction, deltaX, deltaY) {\n switch (direction) {\n case 'up':\n return -deltaY;\n case 'down':\n return deltaY;\n case 'left':\n return -deltaX;\n case 'right':\n return deltaX;\n default:\n return 0;\n }\n}\nfunction getElementTransform(element) {\n const computedStyle = window.getComputedStyle(element);\n const transform = computedStyle.transform;\n let translateX = 0;\n let translateY = 0;\n let scale = 1;\n if (transform && transform !== 'none') {\n const matrix = transform.match(/matrix(?:3d)?\\(([^)]+)\\)/);\n if (matrix) {\n const values = matrix[1].split(', ').map(parseFloat);\n if (values.length === 6) {\n translateX = values[4];\n translateY = values[5];\n scale = Math.sqrt(values[0] * values[0] + values[1] * values[1]);\n } else if (values.length === 16) {\n translateX = values[12];\n translateY = values[13];\n scale = values[0];\n }\n }\n }\n return {\n x: translateX,\n y: translateY,\n scale\n };\n}\n\n/**\n * Groups all parts of an individual toast.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastRoot = /*#__PURE__*/React.forwardRef(function ToastRoot(componentProps, forwardedRef) {\n const {\n toast,\n render,\n className,\n swipeDirection = ['down', 'right'],\n ...elementProps\n } = componentProps;\n const isAnchored = toast.positionerProps?.anchor !== undefined;\n let swipeDirections = [];\n if (!isAnchored) {\n swipeDirections = Array.isArray(swipeDirection) ? swipeDirection : [swipeDirection];\n }\n const swipeEnabled = swipeDirections.length > 0;\n const {\n toasts,\n focused,\n close,\n remove,\n setToasts,\n pauseTimers,\n expanded,\n setHovering\n } = useToastContext();\n const [currentSwipeDirection, setCurrentSwipeDirection] = React.useState(undefined);\n const [isSwiping, setIsSwiping] = React.useState(false);\n const [isRealSwipe, setIsRealSwipe] = React.useState(false);\n const [dragDismissed, setDragDismissed] = React.useState(false);\n const [dragOffset, setDragOffset] = React.useState({\n x: 0,\n y: 0\n });\n const [initialTransform, setInitialTransform] = React.useState({\n x: 0,\n y: 0,\n scale: 1\n });\n const [titleId, setTitleId] = React.useState();\n const [descriptionId, setDescriptionId] = React.useState();\n const [lockedDirection, setLockedDirection] = React.useState(null);\n const rootRef = React.useRef(null);\n const dragStartPosRef = React.useRef({\n x: 0,\n y: 0\n });\n const initialTransformRef = React.useRef({\n x: 0,\n y: 0,\n scale: 1\n });\n const intendedSwipeDirectionRef = React.useRef(undefined);\n const maxSwipeDisplacementRef = React.useRef(0);\n const cancelledSwipeRef = React.useRef(false);\n const swipeCancelBaselineRef = React.useRef({\n x: 0,\n y: 0\n });\n const isFirstPointerMoveRef = React.useRef(false);\n const domIndex = React.useMemo(() => toasts.indexOf(toast), [toast, toasts]);\n const visibleIndex = React.useMemo(() => toasts.filter(t => t.transitionStatus !== 'ending').indexOf(toast), [toast, toasts]);\n const offsetY = React.useMemo(() => {\n return toasts.slice(0, toasts.indexOf(toast)).reduce((acc, t) => acc + (t.height || 0), 0);\n }, [toasts, toast]);\n useOpenChangeComplete({\n open: toast.transitionStatus !== 'ending',\n ref: rootRef,\n onComplete() {\n if (toast.transitionStatus === 'ending') {\n remove(toast.id);\n }\n }\n });\n\n /**\n * Recalculates the natural height of the toast and updates it in the toast manager.\n * @param flushSync Whether to flush the update synchronously. Use in observer\n * callbacks to avoid visual flickers.\n */\n const recalculateHeight = useStableCallback((flushSync = false) => {\n const element = rootRef.current;\n if (!element) {\n return;\n }\n const previousHeight = element.style.height;\n element.style.height = 'auto';\n const height = element.offsetHeight;\n element.style.height = previousHeight;\n function update() {\n setToasts(prev => prev.map(t => t.id === toast.id ? {\n ...t,\n ref: rootRef,\n height,\n transitionStatus: undefined\n } : t));\n }\n if (flushSync) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n });\n useIsoLayoutEffect(recalculateHeight, [recalculateHeight]);\n function applyDirectionalDamping(deltaX, deltaY) {\n let newDeltaX = deltaX;\n let newDeltaY = deltaY;\n if (!swipeDirections.includes('left') && !swipeDirections.includes('right')) {\n newDeltaX = deltaX > 0 ? deltaX ** OPPOSITE_DIRECTION_DAMPING_FACTOR : -(Math.abs(deltaX) ** OPPOSITE_DIRECTION_DAMPING_FACTOR);\n } else {\n if (!swipeDirections.includes('right') && deltaX > 0) {\n newDeltaX = deltaX ** OPPOSITE_DIRECTION_DAMPING_FACTOR;\n }\n if (!swipeDirections.includes('left') && deltaX < 0) {\n newDeltaX = -(Math.abs(deltaX) ** OPPOSITE_DIRECTION_DAMPING_FACTOR);\n }\n }\n if (!swipeDirections.includes('up') && !swipeDirections.includes('down')) {\n newDeltaY = deltaY > 0 ? deltaY ** OPPOSITE_DIRECTION_DAMPING_FACTOR : -(Math.abs(deltaY) ** OPPOSITE_DIRECTION_DAMPING_FACTOR);\n } else {\n if (!swipeDirections.includes('down') && deltaY > 0) {\n newDeltaY = deltaY ** OPPOSITE_DIRECTION_DAMPING_FACTOR;\n }\n if (!swipeDirections.includes('up') && deltaY < 0) {\n newDeltaY = -(Math.abs(deltaY) ** OPPOSITE_DIRECTION_DAMPING_FACTOR);\n }\n }\n return {\n x: newDeltaX,\n y: newDeltaY\n };\n }\n function handlePointerDown(event) {\n if (event.button !== 0) {\n return;\n }\n if (event.pointerType === 'touch') {\n pauseTimers();\n }\n const target = getTarget(event.nativeEvent);\n const isInteractiveElement = target ? target.closest('button,a,input,textarea,[role=\"button\"],[data-swipe-ignore]') : false;\n if (isInteractiveElement) {\n return;\n }\n cancelledSwipeRef.current = false;\n intendedSwipeDirectionRef.current = undefined;\n maxSwipeDisplacementRef.current = 0;\n dragStartPosRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n swipeCancelBaselineRef.current = dragStartPosRef.current;\n if (rootRef.current) {\n const transform = getElementTransform(rootRef.current);\n initialTransformRef.current = transform;\n setInitialTransform(transform);\n setDragOffset({\n x: transform.x,\n y: transform.y\n });\n }\n setHovering(true);\n setIsSwiping(true);\n setIsRealSwipe(false);\n setLockedDirection(null);\n isFirstPointerMoveRef.current = true;\n rootRef.current?.setPointerCapture(event.pointerId);\n }\n function handlePointerMove(event) {\n if (!isSwiping) {\n return;\n }\n\n // Prevent text selection on Safari\n event.preventDefault();\n if (isFirstPointerMoveRef.current) {\n // Adjust the starting position to the current position on the first move\n // to account for the delay between pointerdown and the first pointermove on iOS.\n dragStartPosRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n isFirstPointerMoveRef.current = false;\n }\n const {\n clientY,\n clientX,\n movementX,\n movementY\n } = event;\n if (movementY < 0 && clientY > swipeCancelBaselineRef.current.y || movementY > 0 && clientY < swipeCancelBaselineRef.current.y) {\n swipeCancelBaselineRef.current = {\n x: swipeCancelBaselineRef.current.x,\n y: clientY\n };\n }\n if (movementX < 0 && clientX > swipeCancelBaselineRef.current.x || movementX > 0 && clientX < swipeCancelBaselineRef.current.x) {\n swipeCancelBaselineRef.current = {\n x: clientX,\n y: swipeCancelBaselineRef.current.y\n };\n }\n const deltaX = clientX - dragStartPosRef.current.x;\n const deltaY = clientY - dragStartPosRef.current.y;\n const cancelDeltaY = clientY - swipeCancelBaselineRef.current.y;\n const cancelDeltaX = clientX - swipeCancelBaselineRef.current.x;\n if (!isRealSwipe) {\n const movementDistance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n if (movementDistance >= MIN_DRAG_THRESHOLD) {\n setIsRealSwipe(true);\n if (lockedDirection === null) {\n const hasHorizontal = swipeDirections.includes('left') || swipeDirections.includes('right');\n const hasVertical = swipeDirections.includes('up') || swipeDirections.includes('down');\n if (hasHorizontal && hasVertical) {\n const absX = Math.abs(deltaX);\n const absY = Math.abs(deltaY);\n setLockedDirection(absX > absY ? 'horizontal' : 'vertical');\n }\n }\n }\n }\n let candidate;\n if (!intendedSwipeDirectionRef.current) {\n if (lockedDirection === 'vertical') {\n if (deltaY > 0) {\n candidate = 'down';\n } else if (deltaY < 0) {\n candidate = 'up';\n }\n } else if (lockedDirection === 'horizontal') {\n if (deltaX > 0) {\n candidate = 'right';\n } else if (deltaX < 0) {\n candidate = 'left';\n }\n } else if (Math.abs(deltaX) >= Math.abs(deltaY)) {\n candidate = deltaX > 0 ? 'right' : 'left';\n } else {\n candidate = deltaY > 0 ? 'down' : 'up';\n }\n if (candidate && swipeDirections.includes(candidate)) {\n intendedSwipeDirectionRef.current = candidate;\n maxSwipeDisplacementRef.current = getDisplacement(candidate, deltaX, deltaY);\n setCurrentSwipeDirection(candidate);\n }\n } else {\n const direction = intendedSwipeDirectionRef.current;\n const currentDisplacement = getDisplacement(direction, cancelDeltaX, cancelDeltaY);\n if (currentDisplacement > SWIPE_THRESHOLD) {\n cancelledSwipeRef.current = false;\n setCurrentSwipeDirection(direction);\n } else if (!(swipeDirections.includes('left') && swipeDirections.includes('right')) && !(swipeDirections.includes('up') && swipeDirections.includes('down')) && maxSwipeDisplacementRef.current - currentDisplacement >= REVERSE_CANCEL_THRESHOLD) {\n // Mark that a change-of-mind has occurred\n cancelledSwipeRef.current = true;\n }\n }\n const dampedDelta = applyDirectionalDamping(deltaX, deltaY);\n let newOffsetX = initialTransformRef.current.x;\n let newOffsetY = initialTransformRef.current.y;\n if (lockedDirection === 'horizontal') {\n if (swipeDirections.includes('left') || swipeDirections.includes('right')) {\n newOffsetX += dampedDelta.x;\n }\n } else if (lockedDirection === 'vertical') {\n if (swipeDirections.includes('up') || swipeDirections.includes('down')) {\n newOffsetY += dampedDelta.y;\n }\n } else {\n if (swipeDirections.includes('left') || swipeDirections.includes('right')) {\n newOffsetX += dampedDelta.x;\n }\n if (swipeDirections.includes('up') || swipeDirections.includes('down')) {\n newOffsetY += dampedDelta.y;\n }\n }\n setDragOffset({\n x: newOffsetX,\n y: newOffsetY\n });\n }\n function handlePointerUp(event) {\n if (!isSwiping) {\n return;\n }\n setIsSwiping(false);\n setIsRealSwipe(false);\n setLockedDirection(null);\n rootRef.current?.releasePointerCapture(event.pointerId);\n if (cancelledSwipeRef.current) {\n setDragOffset({\n x: initialTransform.x,\n y: initialTransform.y\n });\n setCurrentSwipeDirection(undefined);\n return;\n }\n let shouldClose = false;\n const deltaX = dragOffset.x - initialTransform.x;\n const deltaY = dragOffset.y - initialTransform.y;\n let dismissDirection;\n for (const direction of swipeDirections) {\n switch (direction) {\n case 'right':\n if (deltaX > SWIPE_THRESHOLD) {\n shouldClose = true;\n dismissDirection = 'right';\n }\n break;\n case 'left':\n if (deltaX < -SWIPE_THRESHOLD) {\n shouldClose = true;\n dismissDirection = 'left';\n }\n break;\n case 'down':\n if (deltaY > SWIPE_THRESHOLD) {\n shouldClose = true;\n dismissDirection = 'down';\n }\n break;\n case 'up':\n if (deltaY < -SWIPE_THRESHOLD) {\n shouldClose = true;\n dismissDirection = 'up';\n }\n break;\n default:\n break;\n }\n if (shouldClose) {\n break;\n }\n }\n if (shouldClose) {\n setCurrentSwipeDirection(dismissDirection);\n setDragDismissed(true);\n close(toast.id);\n } else {\n setDragOffset({\n x: initialTransform.x,\n y: initialTransform.y\n });\n setCurrentSwipeDirection(undefined);\n }\n }\n function handleKeyDown(event) {\n if (event.key === 'Escape') {\n if (!rootRef.current || !contains(rootRef.current, activeElement(ownerDocument(rootRef.current)))) {\n return;\n }\n close(toast.id);\n }\n }\n React.useEffect(() => {\n if (!swipeEnabled) {\n return undefined;\n }\n const element = rootRef.current;\n if (!element) {\n return undefined;\n }\n function preventDefaultTouchStart(event) {\n if (contains(element, event.target)) {\n event.preventDefault();\n }\n }\n element.addEventListener('touchmove', preventDefaultTouchStart, {\n passive: false\n });\n return () => {\n element.removeEventListener('touchmove', preventDefaultTouchStart);\n };\n }, [swipeEnabled]);\n function getDragStyles() {\n if (!isSwiping && dragOffset.x === initialTransform.x && dragOffset.y === initialTransform.y && !dragDismissed) {\n return {\n [ToastRootCssVars.swipeMovementX]: '0px',\n [ToastRootCssVars.swipeMovementY]: '0px'\n };\n }\n const deltaX = dragOffset.x - initialTransform.x;\n const deltaY = dragOffset.y - initialTransform.y;\n return {\n transition: isSwiping ? 'none' : undefined,\n // While swiping, freeze the element at its current visual transform so it doesn't snap to the\n // end position.\n transform: isSwiping ? `translateX(${dragOffset.x}px) translateY(${dragOffset.y}px) scale(${initialTransform.scale})` : undefined,\n [ToastRootCssVars.swipeMovementX]: `${deltaX}px`,\n [ToastRootCssVars.swipeMovementY]: `${deltaY}px`\n };\n }\n const isHighPriority = toast.priority === 'high';\n const defaultProps = {\n role: isHighPriority ? 'alertdialog' : 'dialog',\n tabIndex: 0,\n 'aria-modal': false,\n 'aria-labelledby': titleId,\n 'aria-describedby': descriptionId,\n 'aria-hidden': isHighPriority && !focused ? true : undefined,\n onPointerDown: swipeEnabled ? handlePointerDown : undefined,\n onPointerMove: swipeEnabled ? handlePointerMove : undefined,\n onPointerUp: swipeEnabled ? handlePointerUp : undefined,\n onKeyDown: handleKeyDown,\n inert: inertValue(toast.limited),\n style: {\n ...getDragStyles(),\n [ToastRootCssVars.index]: toast.transitionStatus === 'ending' ? domIndex : visibleIndex,\n [ToastRootCssVars.offsetY]: `${offsetY}px`,\n [ToastRootCssVars.height]: toast.height ? `${toast.height}px` : undefined\n }\n };\n const toastRoot = React.useMemo(() => ({\n rootRef,\n toast,\n titleId,\n setTitleId,\n descriptionId,\n setDescriptionId,\n swiping: isSwiping,\n swipeDirection: currentSwipeDirection,\n recalculateHeight,\n index: domIndex,\n visibleIndex,\n expanded\n }), [toast, titleId, descriptionId, isSwiping, currentSwipeDirection, recalculateHeight, domIndex, visibleIndex, expanded]);\n const state = React.useMemo(() => ({\n transitionStatus: toast.transitionStatus,\n expanded,\n limited: toast.limited || false,\n type: toast.type,\n swiping: toastRoot.swiping,\n swipeDirection: toastRoot.swipeDirection\n }), [expanded, toast.transitionStatus, toast.limited, toast.type, toastRoot.swiping, toastRoot.swipeDirection]);\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, toastRoot.rootRef],\n state,\n stateAttributesMapping,\n props: [defaultProps, elementProps]\n });\n return /*#__PURE__*/_jsx(ToastRootContext.Provider, {\n value: toastRoot,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") ToastRoot.displayName = \"ToastRoot\";","'use client';\n\nimport * as React from 'react';\nimport { useId } from '@base-ui/utils/useId';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useToastRootContext } from \"../root/ToastRootContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\n\n/**\n * A description that describes the toast.\n * Can be used as the default message for the toast when no title is provided.\n * Renders a `<p>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastDescription = /*#__PURE__*/React.forwardRef(function ToastDescription(componentProps, forwardedRef) {\n const {\n render,\n className,\n id: idProp,\n children: childrenProp,\n ...elementProps\n } = componentProps;\n const {\n toast\n } = useToastRootContext();\n const children = childrenProp ?? toast.description;\n const shouldRender = Boolean(children);\n const id = useId(idProp);\n const {\n setDescriptionId\n } = useToastRootContext();\n useIsoLayoutEffect(() => {\n if (!shouldRender) {\n return undefined;\n }\n setDescriptionId(id);\n return () => {\n setDescriptionId(undefined);\n };\n }, [shouldRender, id, setDescriptionId]);\n const state = React.useMemo(() => ({\n type: toast.type\n }), [toast.type]);\n const element = useRenderElement('p', componentProps, {\n ref: forwardedRef,\n state,\n props: {\n ...elementProps,\n id,\n children\n }\n });\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ToastDescription.displayName = \"ToastDescription\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useId } from '@base-ui/utils/useId';\nimport { useToastRootContext } from \"../root/ToastRootContext.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\n\n/**\n * A title that labels the toast.\n * Renders an `<h2>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastTitle = /*#__PURE__*/React.forwardRef(function ToastTitle(componentProps, forwardedRef) {\n const {\n render,\n className,\n id: idProp,\n children: childrenProp,\n ...elementProps\n } = componentProps;\n const {\n toast\n } = useToastRootContext();\n const children = childrenProp ?? toast.title;\n const shouldRender = Boolean(children);\n const id = useId(idProp);\n const {\n setTitleId\n } = useToastRootContext();\n useIsoLayoutEffect(() => {\n if (!shouldRender) {\n return undefined;\n }\n setTitleId(id);\n return () => {\n setTitleId(undefined);\n };\n }, [shouldRender, id, setTitleId]);\n const state = React.useMemo(() => ({\n type: toast.type\n }), [toast.type]);\n const element = useRenderElement('h2', componentProps, {\n ref: forwardedRef,\n state,\n props: {\n ...elementProps,\n id,\n children\n }\n });\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ToastTitle.displayName = \"ToastTitle\";","'use client';\n\nimport * as React from 'react';\nimport { useToastRootContext } from \"../root/ToastRootContext.js\";\nimport { useToastContext } from \"../provider/ToastProviderContext.js\";\nimport { useButton } from \"../../use-button/useButton.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\n\n/**\n * Closes the toast when clicked.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastClose = /*#__PURE__*/React.forwardRef(function ToastClose(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled,\n nativeButton = true,\n ...elementProps\n } = componentProps;\n const {\n close,\n expanded\n } = useToastContext();\n const {\n toast\n } = useToastRootContext();\n const [hasFocus, setHasFocus] = React.useState(false);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const state = React.useMemo(() => ({\n type: toast.type\n }), [toast.type]);\n const element = useRenderElement('button', componentProps, {\n ref: [forwardedRef, buttonRef],\n state,\n props: [{\n 'aria-hidden': !expanded && !hasFocus,\n onClick() {\n close(toast.id);\n },\n onFocus() {\n setHasFocus(true);\n },\n onBlur() {\n setHasFocus(false);\n }\n }, elementProps, getButtonProps]\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ToastClose.displayName = \"ToastClose\";","'use client';\n\nimport * as React from 'react';\nimport { useToastRootContext } from \"../root/ToastRootContext.js\";\nimport { useButton } from \"../../use-button/useButton.js\";\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\n\n/**\n * Performs an action when clicked.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastAction = /*#__PURE__*/React.forwardRef(function ToastAction(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled,\n nativeButton = true,\n ...elementProps\n } = componentProps;\n const {\n toast\n } = useToastRootContext();\n const computedChildren = toast.actionProps?.children ?? elementProps.children;\n const shouldRender = Boolean(computedChildren);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const state = React.useMemo(() => ({\n type: toast.type\n }), [toast.type]);\n const element = useRenderElement('button', componentProps, {\n ref: [forwardedRef, buttonRef],\n state,\n props: [elementProps, toast.actionProps, getButtonProps, {\n children: computedChildren\n }]\n });\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ToastAction.displayName = \"ToastAction\";","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useFloatingPortalNode } from \"../floating-ui-react/index.js\";\n\n/**\n * `FloatingPortal` includes tabbable logic handling for focus management.\n * For components that don't need tabbable logic, use `FloatingPortalLite`.\n * @internal\n */\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const FloatingPortalLite = /*#__PURE__*/React.forwardRef(function FloatingPortalLite(componentProps, forwardedRef) {\n const {\n children,\n container,\n className,\n render,\n ...elementProps\n } = componentProps;\n const {\n portalNode,\n portalSubtree\n } = useFloatingPortalNode({\n container,\n ref: forwardedRef,\n componentProps,\n elementProps\n });\n if (!portalSubtree && !portalNode) {\n return null;\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [portalSubtree, portalNode && /*#__PURE__*/ReactDOM.createPortal(children, portalNode)]\n });\n});\nif (process.env.NODE_ENV !== \"production\") FloatingPortalLite.displayName = \"FloatingPortalLite\";","'use client';\n\nimport { FloatingPortalLite } from \"../../utils/FloatingPortalLite.js\";\n\n/**\n * A portal element that moves the viewport to a different part of the DOM.\n * By default, the portal element is appended to `<body>`.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Toast](https://base-ui.com/react/components/toast)\n */\nexport const ToastPortal = FloatingPortalLite;","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { ToastContext } from \"./provider/ToastProviderContext.js\";\n/**\n * Returns the array of toasts and methods to manage them.\n */\nexport function useToastManager() {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: useToastManager must be used within <Toast.Provider>.' : _formatErrorMessage(73));\n }\n const {\n toasts,\n add,\n close,\n update,\n promise\n } = context;\n return React.useMemo(() => ({\n toasts,\n add,\n close,\n update,\n promise\n }), [toasts, add, close, update, promise]);\n}","import { generateId } from '@base-ui/utils/generateId';\n/**\n * Creates a new toast manager.\n */\nexport function createToastManager() {\n const listeners = [];\n function emit(data) {\n listeners.forEach(listener => listener(data));\n }\n return {\n // This should be private aside from ToastProvider needing to access it.\n // https://x.com/drosenwasser/status/1816947740032872664\n ' subscribe': function subscribe(listener) {\n listeners.push(listener);\n return () => {\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n };\n },\n add(options) {\n const id = options.id || generateId('toast');\n const toastToAdd = {\n ...options,\n id,\n transitionStatus: 'starting'\n };\n emit({\n action: 'add',\n options: toastToAdd\n });\n return id;\n },\n close(id) {\n emit({\n action: 'close',\n options: {\n id\n }\n });\n },\n update(id, updates) {\n emit({\n action: 'update',\n options: {\n ...updates,\n id\n }\n });\n },\n promise(promiseValue, options) {\n let handledPromise = promiseValue;\n emit({\n action: 'promise',\n options: {\n ...options,\n promise: promiseValue,\n setPromise(promise) {\n handledPromise = promise;\n }\n }\n });\n return handledPromise;\n }\n };\n}","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const toastStyles = cva(\n [\n 'gap-lg p-md flex w-max !w-[min(400px,calc(100vw-2rem))] flex-col rounded-lg',\n 'absolute right-0 bottom-0 left-auto mr-0',\n 'bg-clip-padding shadow-md select-none',\n 'focus-visible:ring-focus focus-visible:ring-2 focus-visible:outline-none',\n 'z-[calc(1000-var(--toast-index))]',\n \"after:absolute after:bottom-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']\",\n // Stack effect while not focused\n '[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+calc(min(var(--toast-index),10)*-16px)))_scale(calc(max(0,1-(var(--toast-index)*0.1))))]',\n // Scale and translate\n 'ease-standard [transition-property:opacity,transform]',\n 'duration-400',\n // Present when the toast is animating in.\n 'data-[starting-style]:[transform:translateY(150%)]',\n // Expanded: Present when the toast is expanded in the viewport.\n 'data-[expanded]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y)))]',\n // Present when the toast is animating out.\n 'data-[ending-style]:duration-250',\n 'data-[ending-style]:opacity-0',\n 'data-[ending-style]:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]',\n 'data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]',\n 'data-[expanded]:data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]',\n // Limited: Present when the toast was removed due to exceeding the limit.\n 'data-[limited]:opacity-0',\n ],\n {\n variants: {\n design: {\n filled: '',\n tinted: '',\n },\n intent: {\n success: '',\n alert: '',\n error: '',\n info: '',\n neutral: '',\n main: '',\n basic: '',\n support: '',\n accent: '',\n surface: '',\n surfaceInverse: '',\n },\n },\n compoundVariants: [\n // Filled variants\n {\n design: 'filled',\n intent: 'success',\n class: ['bg-success text-on-success'],\n },\n {\n design: 'filled',\n intent: 'alert',\n class: ['bg-alert text-on-alert'],\n },\n {\n design: 'filled',\n intent: 'error',\n class: ['bg-error text-on-error'],\n },\n {\n design: 'filled',\n intent: 'info',\n class: ['bg-info text-on-info'],\n },\n {\n design: 'filled',\n intent: 'neutral',\n class: ['bg-neutral text-on-neutral'],\n },\n {\n design: 'filled',\n intent: 'main',\n class: ['bg-main text-on-main'],\n },\n {\n design: 'filled',\n intent: 'basic',\n class: ['bg-basic text-on-basic'],\n },\n {\n design: 'filled',\n intent: 'support',\n class: ['bg-support text-on-support'],\n },\n {\n design: 'filled',\n intent: 'accent',\n class: ['bg-accent text-on-accent'],\n },\n {\n design: 'filled',\n intent: 'surface',\n class: ['bg-surface text-on-surface'],\n },\n {\n design: 'filled',\n intent: 'surfaceInverse',\n class: ['bg-surface-inverse text-on-surface-inverse'],\n },\n\n // Tinted variants\n {\n design: 'tinted',\n intent: 'success',\n class: ['bg-success-container text-on-success-container'],\n },\n {\n design: 'tinted',\n intent: 'alert',\n class: ['bg-alert-container text-on-alert-container'],\n },\n {\n design: 'tinted',\n intent: 'error',\n class: ['bg-error-container text-on-error-container'],\n },\n {\n design: 'tinted',\n intent: 'info',\n class: ['bg-info-container text-on-info-container'],\n },\n {\n design: 'tinted',\n intent: 'neutral',\n class: ['bg-neutral-container text-on-neutral-container'],\n },\n {\n design: 'tinted',\n intent: 'main',\n class: ['bg-main-container text-on-main-container'],\n },\n {\n design: 'tinted',\n intent: 'basic',\n class: ['bg-basic-container text-on-basic-container'],\n },\n {\n design: 'tinted',\n intent: 'support',\n class: ['bg-support-container text-on-support-container'],\n },\n {\n design: 'tinted',\n intent: 'accent',\n class: ['bg-accent-container text-on-accent-container'],\n },\n {\n design: 'tinted',\n intent: 'surface',\n class: ['bg-surface text-on-surface'],\n },\n {\n design: 'tinted',\n intent: 'surfaceInverse',\n class: ['bg-surface-inverse text-on-surface-inverse'],\n },\n ],\n defaultVariants: {\n design: 'filled',\n intent: 'neutral',\n },\n }\n)\n\nexport const snackbarItemVariantContent = cva(\n [\n 'inline-grid items-center',\n 'col-start-1 row-start-1',\n 'pl-md pr-lg', // applying padding on the parent prevents VoiceOver on Safari from reading snackbar content 🤷\n ],\n {\n variants: {\n /**\n * Force action button displaying on a new line\n * @default false\n */\n actionOnNewline: {\n true: [\n 'grid-rows-[52px_1fr_52px]',\n 'grid-cols-[min-content_1fr_min-content]',\n \"[grid-template-areas:'icon_message_close'_'._message_.'_'action_action_action']\",\n ],\n false: [\n 'grid-cols-[min-content_1fr_min-content_min-content]',\n \"[grid-template-areas:'icon_message_action_close']\",\n ],\n },\n },\n defaultVariants: {\n actionOnNewline: false,\n },\n }\n)\n\nexport type ToastVariantProps = VariantProps<typeof toastStyles>\nexport type SnackbarItemVariantContentProps = VariantProps<typeof snackbarItemVariantContent>\n","import { Toast as BaseToast } from '@base-ui/react/toast'\nimport { Button, ButtonProps } from '@spark-ui/components/button'\nimport { Icon } from '@spark-ui/components/icon'\nimport { IconButton } from '@spark-ui/components/icon-button'\nimport { Close } from '@spark-ui/icons/Close'\nimport { cx } from 'class-variance-authority'\n\nimport { toastStyles } from './Toast.styles'\nimport type { ToastData, ToastDesign, ToastIntent, ToastObject } from './types'\n\nfunction getButtonIntent(intent?: ToastIntent): ButtonProps['intent'] {\n if (intent === 'surfaceInverse') return 'surface'\n if (intent === 'surface') return 'surfaceInverse'\n if (intent === 'error') return 'danger'\n\n return intent as ButtonProps['intent']\n}\n\nfunction getCloseButtonIntent(intent?: ToastIntent): ButtonProps['intent'] {\n if (intent === 'surfaceInverse') return 'surfaceInverse'\n if (intent === 'surface') return 'surface'\n if (intent === 'error') return 'danger'\n\n return intent as ButtonProps['intent']\n}\n\nconst getActionProps = (\n action: ToastData['action'],\n { toastDesign, toastIntent }: { toastDesign?: ToastDesign; toastIntent?: ToastIntent }\n): ButtonProps => {\n if (!action) return {}\n\n const { design, intent, className, onClick, ...rest } = action\n\n return {\n design: design ?? toastDesign,\n intent: intent ?? getButtonIntent(toastIntent),\n className: cx('ml-auto', className),\n onClick,\n ...rest,\n }\n}\n\nconst getToastRootProps = (toast: ToastObject, design: ToastDesign, intent: ToastIntent) => ({\n key: toast.id,\n swipeDirection: ['down', 'right'] as ['down', 'right'],\n toast,\n className: cx(toastStyles({ design, intent })),\n style: {\n ['--gap' as string]: 'var(--spacing-md)',\n ['--offset-y' as string]:\n 'calc(var(--toast-offset-y) * -1 + (var(--toast-index) * var(--gap) * -1) + var(--toast-swipe-movement-y))',\n },\n})\n\nexport function Toast({ toast }: { toast: ToastObject }) {\n const {\n icon: ToastIcon,\n intent = 'neutral',\n design = 'filled',\n action,\n isClosable,\n closeLabel = 'Close',\n compact = false,\n } = toast.data ?? {}\n\n const ActionButton = action?.close ? BaseToast.Close : BaseToast.Action\n const actionProps = getActionProps(action, { toastDesign: design, toastIntent: intent })\n const rootProps = getToastRootProps(toast, design, intent)\n\n const getCloseButton = (className?: string) => {\n if (!isClosable) return null\n\n return (\n <BaseToast.Close\n className={className}\n render={\n <IconButton\n aria-label={closeLabel}\n design={design}\n intent={getCloseButtonIntent(intent)}\n size=\"md\"\n />\n }\n >\n <Icon>\n <Close />\n </Icon>\n </BaseToast.Close>\n )\n }\n\n const renderTitle = () => {\n // Check ToastData first for JSX, then fallback to toast.title (string)\n const title = toast.data?.title ?? toast.title\n const hasDescription = !!(toast.data?.description ?? toast.description)\n\n if (typeof title !== 'string' && title !== undefined) {\n return (\n <BaseToast.Title\n className={hasDescription ? 'text-headline-2' : 'text-body-1'}\n render={<div />}\n >\n {title}\n </BaseToast.Title>\n )\n }\n\n return <BaseToast.Title className={hasDescription ? 'text-headline-2' : 'text-body-1'} />\n }\n\n const renderDescription = () => {\n // Check ToastData first for JSX, then fallback to toast.description (string)\n const description = toast.data?.description ?? toast.description\n\n if (!description) return null\n\n if (typeof description !== 'string') {\n return (\n <BaseToast.Description className=\"text-body-1\" render={<div />}>\n {description}\n </BaseToast.Description>\n )\n }\n\n return <BaseToast.Description className=\"text-body-1\" />\n }\n\n return (\n <BaseToast.Root {...rootProps}>\n <div className={cx('flex', compact ? 'gap-lg items-center' : 'gap-md flex-col')}>\n <div className=\"gap-lg p-md flex grow items-center\">\n {/* Icon */}\n {ToastIcon && <Icon size=\"md\">{ToastIcon}</Icon>}\n {/* Title and description */}\n <div\n className={cx(\n 'gap-sm flex flex-col',\n compact && 'flex-1',\n !compact && isClosable && 'pr-3xl'\n )}\n >\n {renderTitle()}\n {renderDescription()}\n </div>\n </div>\n\n <div className={cx('flex')}>\n {/* Action button */}\n {action && (\n <ActionButton render={<Button {...actionProps} />}>{action.label}</ActionButton>\n )}\n {/* Close button - compact layout only */}\n {compact && getCloseButton()}\n </div>\n\n {/* Close button - default layout only */}\n {!compact && getCloseButton('top-md right-md absolute')}\n </div>\n </BaseToast.Root>\n )\n}\n","import { Toast as BaseToast } from '@base-ui/react/toast'\nimport * as React from 'react'\n\nimport type { UseToastManagerReturnValue } from './types'\n\nexport function useToastManager(): UseToastManagerReturnValue {\n const baseToastManager = BaseToast.useToastManager()\n\n const closeAll = React.useCallback((): void => {\n baseToastManager.toasts.forEach(({ id }) => baseToastManager.close(id))\n }, [baseToastManager])\n\n return {\n ...baseToastManager,\n closeAll,\n } as UseToastManagerReturnValue\n}\n","import { Toast as BaseToast } from '@base-ui/react/toast'\nimport { Slot } from '@spark-ui/components/slot'\nimport { cx } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { Toast } from './Toast'\nimport type { ToastData, ToastObject } from './types'\nimport { useToastManager } from './useToastManager'\n\nexport * from './types'\n\nfunction ToastList() {\n const { toasts } = useToastManager()\n\n return toasts.map(toast => <Toast key={toast.id} toast={toast} />)\n}\n\ninterface ToastProviderProps extends React.ComponentProps<typeof BaseToast.Provider> {\n children: React.ReactNode\n}\n\nexport function ToastProvider({ children, limit = 3, ...props }: ToastProviderProps) {\n return (\n <BaseToast.Provider limit={limit} {...props}>\n <BaseToast.Portal>\n <BaseToast.Viewport\n className={cx(\n 'z-toast right-lg bottom-lg text-on-surfa- fixed top-auto mx-auto flex w-fit flex-col items-end'\n )}\n >\n <ToastList />\n </BaseToast.Viewport>\n </BaseToast.Portal>\n {children}\n </BaseToast.Provider>\n )\n}\n\ninterface ToastTriggerProps\n extends Omit<React.ComponentPropsWithRef<'button'>, 'title'>,\n Pick<ToastObject, 'priority'>,\n Pick<ToastData, 'design' | 'intent' | 'icon' | 'isClosable' | 'action' | 'compact'> {\n children: React.ReactNode\n asChild?: boolean\n title: string | React.ReactNode\n description?: string | React.ReactNode\n timeout?: number\n}\n\nexport function ToastTrigger({\n children,\n onClick,\n asChild = false,\n title,\n description,\n timeout = 5000,\n design = 'filled',\n intent = 'neutral',\n isClosable = true,\n icon,\n action,\n compact,\n priority = 'low',\n}: ToastTriggerProps) {\n const toastManager = useToastManager()\n\n const Component = asChild ? Slot : 'button'\n\n function createToast(e: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(e)\n toastManager.add({\n title,\n description,\n timeout,\n priority,\n data: {\n design,\n intent,\n isClosable,\n ...(icon && { icon }),\n action,\n ...(compact !== undefined && { compact }),\n },\n })\n }\n\n return (\n <Component {...(!asChild && { type: 'button' })} onClick={createToast}>\n {children}\n </Component>\n )\n}\n\nexport type ToastManager = ReturnType<typeof BaseToast.createToastManager>\n\nexport const createToastManager: () => ToastManager = BaseToast.createToastManager\n\nexport { useToastManager }\n"],"names":["counter","generateId","prefix","ToastContext","React","useToastContext","context","_formatErrorMessage","resolvePromiseOptions","options","result","resolvedOptions","ToastProvider","props","children","timeout","limit","toastManager","toasts","setToasts","hovering","setHovering","focused","setFocused","prevFocusElement","setPrevFocusElement","expanded","timersRef","viewportRef","windowFocusedRef","isPausedRef","handleFocusManagement","toastId","activeEl","activeElement","ownerDocument","contains","isFocusVisible","currentIndex","toast","nextToast","index","pauseTimers","useStableCallback","timer","elapsed","remaining","resumeTimers","id","Timeout","close","prevToasts","toastsWithEnding","activeToasts","t","isActiveToastLimited","remove","prev","scheduleTimer","delay","callback","start","shouldStartActive","currentTimeout","add","toastToAdd","updatedToasts","excessCount","oldestActiveToasts","old","duration","update","updates","promise","promiseValue","loadingOptions","handledPromise","successOptions","successTimeout","error","errorOptions","errorTimeout","action","contextValue","_jsx","ToastViewportContext","ToastViewportCssVars","ToastViewport","componentProps","forwardedRef","render","className","elementProps","handlingFocusGuardRef","markedReadyForMouseLeaveRef","numToasts","frontmostHeight","hasTransitioningToasts","handleGlobalKeyDown","event","win","ownerWindow","handleWindowBlur","handleWindowFocus","target","getTarget","viewportNode","doc","handlePointerDown","handleFocusGuard","handleKeyDown","handleMouseEnter","handleMouseLeave","handleFocus","handleBlur","defaultProps","state","element","useRenderElement","_jsxs","FocusGuard","highPriorityToasts","visuallyHidden","ToastRootContext","useToastRootContext","ToastRootCssVars","stateAttributesMapping","transitionStatusMapping","value","SWIPE_THRESHOLD","REVERSE_CANCEL_THRESHOLD","OPPOSITE_DIRECTION_DAMPING_FACTOR","MIN_DRAG_THRESHOLD","getDisplacement","direction","deltaX","deltaY","getElementTransform","transform","translateX","translateY","scale","matrix","values","ToastRoot","swipeDirection","isAnchored","swipeDirections","swipeEnabled","currentSwipeDirection","setCurrentSwipeDirection","isSwiping","setIsSwiping","isRealSwipe","setIsRealSwipe","dragDismissed","setDragDismissed","dragOffset","setDragOffset","initialTransform","setInitialTransform","titleId","setTitleId","descriptionId","setDescriptionId","lockedDirection","setLockedDirection","rootRef","dragStartPosRef","initialTransformRef","intendedSwipeDirectionRef","maxSwipeDisplacementRef","cancelledSwipeRef","swipeCancelBaselineRef","isFirstPointerMoveRef","domIndex","visibleIndex","offsetY","acc","useOpenChangeComplete","recalculateHeight","flushSync","previousHeight","height","ReactDOM","useIsoLayoutEffect","applyDirectionalDamping","newDeltaX","newDeltaY","handlePointerMove","clientY","clientX","movementX","movementY","cancelDeltaY","cancelDeltaX","hasHorizontal","hasVertical","absX","absY","candidate","currentDisplacement","dampedDelta","newOffsetX","newOffsetY","handlePointerUp","shouldClose","dismissDirection","preventDefaultTouchStart","getDragStyles","isHighPriority","inertValue","toastRoot","ToastDescription","idProp","childrenProp","shouldRender","useId","ToastTitle","ToastClose","disabled","nativeButton","hasFocus","setHasFocus","getButtonProps","buttonRef","useButton","ToastAction","computedChildren","FloatingPortalLite","container","portalNode","portalSubtree","useFloatingPortalNode","ToastPortal","useToastManager","createToastManager","listeners","emit","data","listener","toastStyles","cva","getButtonIntent","intent","getCloseButtonIntent","getActionProps","toastDesign","toastIntent","design","onClick","rest","cx","getToastRootProps","Toast","ToastIcon","isClosable","closeLabel","compact","ActionButton","BaseToast.Close","BaseToast.Action","actionProps","rootProps","getCloseButton","jsx","IconButton","Icon","Close","renderTitle","title","hasDescription","BaseToast.Title","renderDescription","description","BaseToast.Description","BaseToast.Root","jsxs","Button","baseToastManager","BaseToast.useToastManager","closeAll","ToastList","BaseToast.Provider","BaseToast.Portal","BaseToast.Viewport","ToastTrigger","asChild","icon","priority","Component","Slot","createToast","e","BaseToast.createToastManager"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/toast/Toast.styles.ts","../../src/toast/Toast.tsx","../../src/toast/useToastManager.ts","../../src/toast/index.tsx"],"sourcesContent":["import { cva, VariantProps } from 'class-variance-authority'\n\nexport const toastStyles = cva(\n [\n 'gap-lg p-md flex w-max !w-[min(400px,calc(100vw-2rem))] flex-col rounded-lg',\n 'absolute right-0 bottom-0 left-auto mr-0',\n 'bg-clip-padding shadow-md select-none',\n 'focus-visible:ring-focus focus-visible:ring-2 focus-visible:outline-none',\n 'z-[calc(1000-var(--toast-index))]',\n \"after:absolute after:bottom-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']\",\n // Stack effect while not focused\n '[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+calc(min(var(--toast-index),10)*-16px)))_scale(calc(max(0,1-(var(--toast-index)*0.1))))]',\n // Scale and translate\n 'ease-standard [transition-property:opacity,transform]',\n 'duration-400',\n // Present when the toast is animating in.\n 'data-[starting-style]:[transform:translateY(150%)]',\n // Expanded: Present when the toast is expanded in the viewport.\n 'data-[expanded]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y)))]',\n // Present when the toast is animating out.\n 'data-[ending-style]:duration-250',\n 'data-[ending-style]:opacity-0',\n 'data-[ending-style]:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]',\n 'data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]',\n 'data-[expanded]:data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]',\n // Limited: Present when the toast was removed due to exceeding the limit.\n 'data-[limited]:opacity-0',\n ],\n {\n variants: {\n design: {\n filled: '',\n tinted: '',\n },\n intent: {\n success: '',\n alert: '',\n error: '',\n info: '',\n neutral: '',\n main: '',\n basic: '',\n support: '',\n accent: '',\n surface: '',\n surfaceInverse: '',\n },\n },\n compoundVariants: [\n // Filled variants\n {\n design: 'filled',\n intent: 'success',\n class: ['bg-success text-on-success'],\n },\n {\n design: 'filled',\n intent: 'alert',\n class: ['bg-alert text-on-alert'],\n },\n {\n design: 'filled',\n intent: 'error',\n class: ['bg-error text-on-error'],\n },\n {\n design: 'filled',\n intent: 'info',\n class: ['bg-info text-on-info'],\n },\n {\n design: 'filled',\n intent: 'neutral',\n class: ['bg-neutral text-on-neutral'],\n },\n {\n design: 'filled',\n intent: 'main',\n class: ['bg-main text-on-main'],\n },\n {\n design: 'filled',\n intent: 'basic',\n class: ['bg-basic text-on-basic'],\n },\n {\n design: 'filled',\n intent: 'support',\n class: ['bg-support text-on-support'],\n },\n {\n design: 'filled',\n intent: 'accent',\n class: ['bg-accent text-on-accent'],\n },\n {\n design: 'filled',\n intent: 'surface',\n class: ['bg-surface text-on-surface'],\n },\n {\n design: 'filled',\n intent: 'surfaceInverse',\n class: ['bg-surface-inverse text-on-surface-inverse'],\n },\n\n // Tinted variants\n {\n design: 'tinted',\n intent: 'success',\n class: ['bg-success-container text-on-success-container'],\n },\n {\n design: 'tinted',\n intent: 'alert',\n class: ['bg-alert-container text-on-alert-container'],\n },\n {\n design: 'tinted',\n intent: 'error',\n class: ['bg-error-container text-on-error-container'],\n },\n {\n design: 'tinted',\n intent: 'info',\n class: ['bg-info-container text-on-info-container'],\n },\n {\n design: 'tinted',\n intent: 'neutral',\n class: ['bg-neutral-container text-on-neutral-container'],\n },\n {\n design: 'tinted',\n intent: 'main',\n class: ['bg-main-container text-on-main-container'],\n },\n {\n design: 'tinted',\n intent: 'basic',\n class: ['bg-basic-container text-on-basic-container'],\n },\n {\n design: 'tinted',\n intent: 'support',\n class: ['bg-support-container text-on-support-container'],\n },\n {\n design: 'tinted',\n intent: 'accent',\n class: ['bg-accent-container text-on-accent-container'],\n },\n {\n design: 'tinted',\n intent: 'surface',\n class: ['bg-surface text-on-surface'],\n },\n {\n design: 'tinted',\n intent: 'surfaceInverse',\n class: ['bg-surface-inverse text-on-surface-inverse'],\n },\n ],\n defaultVariants: {\n design: 'filled',\n intent: 'neutral',\n },\n }\n)\n\nexport const snackbarItemVariantContent = cva(\n [\n 'inline-grid items-center',\n 'col-start-1 row-start-1',\n 'pl-md pr-lg', // applying padding on the parent prevents VoiceOver on Safari from reading snackbar content 🤷\n ],\n {\n variants: {\n /**\n * Force action button displaying on a new line\n * @default false\n */\n actionOnNewline: {\n true: [\n 'grid-rows-[52px_1fr_52px]',\n 'grid-cols-[min-content_1fr_min-content]',\n \"[grid-template-areas:'icon_message_close'_'._message_.'_'action_action_action']\",\n ],\n false: [\n 'grid-cols-[min-content_1fr_min-content_min-content]',\n \"[grid-template-areas:'icon_message_action_close']\",\n ],\n },\n },\n defaultVariants: {\n actionOnNewline: false,\n },\n }\n)\n\nexport type ToastVariantProps = VariantProps<typeof toastStyles>\nexport type SnackbarItemVariantContentProps = VariantProps<typeof snackbarItemVariantContent>\n","import { Toast as BaseToast } from '@base-ui/react/toast'\nimport { Button, ButtonProps } from '@spark-ui/components/button'\nimport { Icon } from '@spark-ui/components/icon'\nimport { IconButton } from '@spark-ui/components/icon-button'\nimport { Close } from '@spark-ui/icons/Close'\nimport { cx } from 'class-variance-authority'\n\nimport { toastStyles } from './Toast.styles'\nimport type { ToastData, ToastDesign, ToastIntent, ToastObject } from './types'\n\nfunction getButtonIntent(intent?: ToastIntent): ButtonProps['intent'] {\n if (intent === 'surfaceInverse') return 'surface'\n if (intent === 'surface') return 'surfaceInverse'\n if (intent === 'error') return 'danger'\n\n return intent as ButtonProps['intent']\n}\n\nfunction getCloseButtonIntent(intent?: ToastIntent): ButtonProps['intent'] {\n if (intent === 'surfaceInverse') return 'surfaceInverse'\n if (intent === 'surface') return 'surface'\n if (intent === 'error') return 'danger'\n\n return intent as ButtonProps['intent']\n}\n\nconst getActionProps = (\n action: ToastData['action'],\n { toastDesign, toastIntent }: { toastDesign?: ToastDesign; toastIntent?: ToastIntent }\n): ButtonProps => {\n if (!action) return {}\n\n const { design, intent, className, onClick, ...rest } = action\n\n return {\n design: design ?? toastDesign,\n intent: intent ?? getButtonIntent(toastIntent),\n className: cx('ml-auto', className),\n onClick,\n ...rest,\n }\n}\n\nconst getToastRootProps = (toast: ToastObject, design: ToastDesign, intent: ToastIntent) => ({\n key: toast.id,\n swipeDirection: ['down', 'right'] as ['down', 'right'],\n toast,\n className: cx(toastStyles({ design, intent })),\n style: {\n ['--gap' as string]: 'var(--spacing-md)',\n ['--offset-y' as string]:\n 'calc(var(--toast-offset-y) * -1 + (var(--toast-index) * var(--gap) * -1) + var(--toast-swipe-movement-y))',\n },\n})\n\nexport function Toast({ toast }: { toast: ToastObject }) {\n const {\n icon: ToastIcon,\n intent = 'neutral',\n design = 'filled',\n action,\n isClosable,\n closeLabel = 'Close',\n compact = false,\n } = toast.data ?? {}\n\n const ActionButton = action?.close ? BaseToast.Close : BaseToast.Action\n const actionProps = getActionProps(action, { toastDesign: design, toastIntent: intent })\n const rootProps = getToastRootProps(toast, design, intent)\n\n const getCloseButton = (className?: string) => {\n if (!isClosable) return null\n\n return (\n <BaseToast.Close\n className={className}\n render={\n <IconButton\n aria-label={closeLabel}\n design={design}\n intent={getCloseButtonIntent(intent)}\n size=\"md\"\n />\n }\n >\n <Icon>\n <Close />\n </Icon>\n </BaseToast.Close>\n )\n }\n\n const renderTitle = () => {\n // Check ToastData first for JSX, then fallback to toast.title (string)\n const title = toast.data?.title ?? toast.title\n const hasDescription = !!(toast.data?.description ?? toast.description)\n\n if (typeof title !== 'string' && title !== undefined) {\n return (\n <BaseToast.Title\n className={hasDescription ? 'text-headline-2' : 'text-body-1'}\n render={<div />}\n >\n {title}\n </BaseToast.Title>\n )\n }\n\n return <BaseToast.Title className={hasDescription ? 'text-headline-2' : 'text-body-1'} />\n }\n\n const renderDescription = () => {\n // Check ToastData first for JSX, then fallback to toast.description (string)\n const description = toast.data?.description ?? toast.description\n\n if (!description) return null\n\n if (typeof description !== 'string') {\n return (\n <BaseToast.Description className=\"text-body-1\" render={<div />}>\n {description}\n </BaseToast.Description>\n )\n }\n\n return <BaseToast.Description className=\"text-body-1\" />\n }\n\n return (\n <BaseToast.Root {...rootProps}>\n <div className={cx('flex', compact ? 'gap-lg items-center' : 'gap-md flex-col')}>\n <div className=\"gap-lg p-md flex grow items-center\">\n {/* Icon */}\n {ToastIcon && <Icon size=\"md\">{ToastIcon}</Icon>}\n {/* Title and description */}\n <div\n className={cx(\n 'gap-sm flex flex-col',\n compact && 'flex-1',\n !compact && isClosable && 'pr-3xl'\n )}\n >\n {renderTitle()}\n {renderDescription()}\n </div>\n </div>\n\n <div className={cx('flex')}>\n {/* Action button */}\n {action && (\n <ActionButton render={<Button {...actionProps} />}>{action.label}</ActionButton>\n )}\n {/* Close button - compact layout only */}\n {compact && getCloseButton()}\n </div>\n\n {/* Close button - default layout only */}\n {!compact && getCloseButton('top-md right-md absolute')}\n </div>\n </BaseToast.Root>\n )\n}\n","import { Toast as BaseToast } from '@base-ui/react/toast'\nimport * as React from 'react'\n\nimport type { UseToastManagerReturnValue } from './types'\n\nexport function useToastManager(): UseToastManagerReturnValue {\n const baseToastManager = BaseToast.useToastManager()\n\n const closeAll = React.useCallback((): void => {\n baseToastManager.toasts.forEach(({ id }) => baseToastManager.close(id))\n }, [baseToastManager])\n\n return {\n ...baseToastManager,\n closeAll,\n } as UseToastManagerReturnValue\n}\n","import { Toast as BaseToast } from '@base-ui/react/toast'\nimport { Slot } from '@spark-ui/components/slot'\nimport { cx } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { Toast } from './Toast'\nimport type { ToastData, ToastObject } from './types'\nimport { useToastManager } from './useToastManager'\n\nexport * from './types'\n\nfunction ToastList() {\n const { toasts } = useToastManager()\n\n return toasts.map(toast => <Toast key={toast.id} toast={toast} />)\n}\n\ninterface ToastProviderProps extends React.ComponentProps<typeof BaseToast.Provider> {\n children: React.ReactNode\n}\n\nexport function ToastProvider({ children, limit = 3, ...props }: ToastProviderProps) {\n return (\n <BaseToast.Provider limit={limit} {...props}>\n <BaseToast.Portal>\n <BaseToast.Viewport\n className={cx(\n 'z-toast right-lg bottom-lg text-on-surfa- fixed top-auto mx-auto flex w-fit flex-col items-end'\n )}\n >\n <ToastList />\n </BaseToast.Viewport>\n </BaseToast.Portal>\n {children}\n </BaseToast.Provider>\n )\n}\n\ninterface ToastTriggerProps\n extends Omit<React.ComponentPropsWithRef<'button'>, 'title'>,\n Pick<ToastObject, 'priority'>,\n Pick<ToastData, 'design' | 'intent' | 'icon' | 'isClosable' | 'action' | 'compact'> {\n children: React.ReactNode\n asChild?: boolean\n title: string | React.ReactNode\n description?: string | React.ReactNode\n timeout?: number\n}\n\nexport function ToastTrigger({\n children,\n onClick,\n asChild = false,\n title,\n description,\n timeout = 5000,\n design = 'filled',\n intent = 'neutral',\n isClosable = true,\n icon,\n action,\n compact,\n priority = 'low',\n}: ToastTriggerProps) {\n const toastManager = useToastManager()\n\n const Component = asChild ? Slot : 'button'\n\n function createToast(e: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(e)\n toastManager.add({\n title,\n description,\n timeout,\n priority,\n data: {\n design,\n intent,\n isClosable,\n ...(icon && { icon }),\n action,\n ...(compact !== undefined && { compact }),\n },\n })\n }\n\n return (\n <Component {...(!asChild && { type: 'button' })} onClick={createToast}>\n {children}\n </Component>\n )\n}\n\nexport type ToastManager = ReturnType<typeof BaseToast.createToastManager>\n\nexport const createToastManager: () => ToastManager = BaseToast.createToastManager\n\nexport { useToastManager }\n"],"names":["toastStyles","cva","getButtonIntent","intent","getCloseButtonIntent","getActionProps","action","toastDesign","toastIntent","design","className","onClick","rest","cx","getToastRootProps","toast","Toast","ToastIcon","isClosable","closeLabel","compact","ActionButton","BaseToast","actionProps","rootProps","getCloseButton","jsx","IconButton","Icon","Close","renderTitle","title","hasDescription","renderDescription","description","jsxs","Button","useToastManager","baseToastManager","closeAll","React","id","ToastList","toasts","ToastProvider","children","limit","props","ToastTrigger","asChild","timeout","icon","priority","toastManager","Component","Slot","createToast","e","createToastManager"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const r=require("react/jsx-runtime"),s=require("./Slot-DQ8z2zsy.js");function u(e,t){const n=e?s.Slot:t;return e?({...o})=>r.jsx(n,{...o}):void 0}exports.useRenderSlot=u;
2
+ //# sourceMappingURL=useRenderSlot-DATwjgpo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRenderSlot-DATwjgpo.js","sources":["../src/drawer/useRenderSlot.tsx"],"sourcesContent":["import { Slot } from '../slot'\n\nexport function useRenderSlot(asChild: boolean, defaultTag: string) {\n const Component = asChild ? Slot : defaultTag\n\n return asChild ? ({ ...props }) => <Component {...props} /> : undefined\n}\n"],"names":["useRenderSlot","asChild","defaultTag","Component","Slot","props","jsx"],"mappings":"kFAEO,SAASA,EAAcC,EAAkBC,EAAoB,CAClE,MAAMC,EAAYF,EAAUG,EAAAA,KAAOF,EAEnC,OAAOD,EAAU,CAAC,CAAE,GAAGI,CAAA,IAAYC,MAACH,EAAA,CAAW,GAAGE,CAAA,CAAO,EAAK,MAChE"}
@@ -0,0 +1,10 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { a as m } from "./Slot-D2Bbf8Gw.mjs";
3
+ function u(o, t) {
4
+ const r = o ? m : t;
5
+ return o ? ({ ...n }) => /* @__PURE__ */ e(r, { ...n }) : void 0;
6
+ }
7
+ export {
8
+ u
9
+ };
10
+ //# sourceMappingURL=useRenderSlot-LwWj8QbC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRenderSlot-LwWj8QbC.mjs","sources":["../src/drawer/useRenderSlot.tsx"],"sourcesContent":["import { Slot } from '../slot'\n\nexport function useRenderSlot(asChild: boolean, defaultTag: string) {\n const Component = asChild ? Slot : defaultTag\n\n return asChild ? ({ ...props }) => <Component {...props} /> : undefined\n}\n"],"names":["useRenderSlot","asChild","defaultTag","Component","Slot","props","jsx"],"mappings":";;AAEO,SAASA,EAAcC,GAAkBC,GAAoB;AAClE,QAAMC,IAAYF,IAAUG,IAAOF;AAEnC,SAAOD,IAAU,CAAC,EAAE,GAAGI,EAAA,MAAY,gBAAAC,EAACH,GAAA,EAAW,GAAGE,EAAA,CAAO,IAAK;AAChE;"}
@@ -0,0 +1 @@
1
+ export * from './VisuallyHidden';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../VisuallyHidden-AoRh4WRK.js");exports.VisuallyHidden=e.VisuallyHidden;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../VisuallyHidden-CB6Nx76j.js");exports.VisuallyHidden=e.VisuallyHidden;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { V as e } from "../VisuallyHidden-ByNP7ZUI.mjs";
1
+ import { V as e } from "../VisuallyHidden-KH1biLx-.mjs";
2
2
  export {
3
3
  e as VisuallyHidden
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spark-ui/components",
3
- "version": "14.0.0-beta.1",
3
+ "version": "14.0.0",
4
4
  "license": "MIT",
5
5
  "description": "Spark (Leboncoin design system) components.",
6
6
  "exports": {
@@ -44,6 +44,7 @@
44
44
  "a11y"
45
45
  ],
46
46
  "scripts": {
47
+ "build:tsup": "NODE_OPTIONS='--max-old-space-size=16384' tsup",
47
48
  "build": "NODE_OPTIONS='--max-old-space-size=8192' vite build"
48
49
  },
49
50
  "dependencies": {
@@ -53,11 +54,11 @@
53
54
  "@react-aria/toast": "^3.0.0-beta.18",
54
55
  "@react-stately/numberfield": "3.9.11",
55
56
  "@react-stately/toast": "^3.0.0-beta.7",
56
- "@spark-ui/hooks": "^14.0.0-beta.1",
57
- "@spark-ui/icons": "^14.0.0-beta.1",
58
- "@spark-ui/internal-utils": "^14.0.0-beta.1",
59
- "@zag-js/pagination": "1.31.1",
60
- "@zag-js/react": "1.31.1",
57
+ "@spark-ui/hooks": "^14.0.0",
58
+ "@spark-ui/icons": "^14.0.0",
59
+ "@spark-ui/internal-utils": "^14.0.0",
60
+ "@zag-js/pagination": "1.30.0",
61
+ "@zag-js/react": "1.30.0",
61
62
  "class-variance-authority": "0.7.1",
62
63
  "downshift": "9.0.10",
63
64
  "emulate-tab": "^1.2.1",
@@ -1,2 +0,0 @@
1
- "use strict";const t=require("react/jsx-runtime"),l=require("./index-DnaHaH_0.js"),q=require("react"),b=require("./Slot-ghrohQLA.js"),I=require("./Spinner-DK8VEsaR.js"),e=require("@spark-ui/internal-utils"),M=[{intent:"main",design:"filled",class:e.tw(["bg-main","text-on-main","hover:bg-main-hovered","enabled:active:bg-main-hovered","focus-visible:bg-main-hovered"])},{intent:"support",design:"filled",class:e.tw(["bg-support","text-on-support","hover:bg-support-hovered","enabled:active:bg-support-hovered","focus-visible:bg-support-hovered"])},{intent:"accent",design:"filled",class:e.tw(["bg-accent","text-on-accent","hover:bg-accent-hovered","enabled:active:bg-accent-hovered","focus-visible:bg-accent-hovered"])},{intent:"basic",design:"filled",class:e.tw(["bg-basic","text-on-basic","hover:bg-basic-hovered","enabled:active:bg-basic-hovered","focus-visible:bg-basic-hovered"])},{intent:"success",design:"filled",class:e.tw(["bg-success","text-on-success","hover:bg-success-hovered","enabled:active:bg-success-hovered","focus-visible:bg-success-hovered"])},{intent:"alert",design:"filled",class:e.tw(["bg-alert","text-on-alert","hover:bg-alert-hovered","enabled:active:bg-alert-hovered","focus-visible:bg-alert-hovered"])},{intent:"danger",design:"filled",class:e.tw(["text-on-error bg-error","hover:bg-error-hovered enabled:active:bg-error-hovered","focus-visible:bg-error-hovered"])},{intent:"info",design:"filled",class:e.tw(["text-on-error bg-info","hover:bg-info-hovered enabled:active:bg-info-hovered","focus-visible:bg-info-hovered"])},{intent:"neutral",design:"filled",class:e.tw(["bg-neutral","text-on-neutral","hover:bg-neutral-hovered","enabled:active:bg-neutral-hovered","focus-visible:bg-neutral-hovered"])},{intent:"surface",design:"filled",class:e.tw(["bg-surface","text-on-surface","hover:bg-surface-hovered","enabled:active:bg-surface-hovered","focus-visible:bg-surface-hovered"])},{intent:"surfaceInverse",design:"filled",class:e.tw(["bg-surface-inverse","text-on-surface-inverse","hover:bg-surface-inverse-hovered","enabled:active:bg-surface-inverse-hovered","focus-visible:bg-surface-inverse-hovered"])}],j=[{intent:"main",design:"ghost",class:e.tw(["text-on-main-container","hover:bg-main/dim-5","enabled:active:bg-main/dim-5","focus-visible:bg-main/dim-5"])},{intent:"support",design:"ghost",class:e.tw(["text-on-support-container","hover:bg-support/dim-5","enabled:active:bg-support/dim-5","focus-visible:bg-support/dim-5"])},{intent:"accent",design:"ghost",class:e.tw(["text-on-accent-container","hover:bg-accent/dim-5","enabled:active:bg-accent/dim-5","focus-visible:bg-accent/dim-5"])},{intent:"basic",design:"ghost",class:e.tw(["text-on-basic-container","hover:bg-basic/dim-5","enabled:active:bg-basic/dim-5","focus-visible:bg-basic/dim-5"])},{intent:"success",design:"ghost",class:e.tw(["text-on-success-container","hover:bg-success/dim-5","enabled:active:bg-success/dim-5","focus-visible:bg-success/dim-5"])},{intent:"alert",design:"ghost",class:e.tw(["text-on-alert-container","hover:bg-alert/dim-5","enabled:active:bg-alert/dim-5","focus-visible:bg-alert/dim-5"])},{intent:"danger",design:"ghost",class:e.tw(["text-on-error-container","hover:bg-error/dim-5","enabled:active:bg-error/dim-5","focus-visible:bg-error/dim-5"])},{intent:"info",design:"ghost",class:e.tw(["text-on-info-container","hover:bg-info/dim-5","enabled:active:bg-info/dim-5","focus-visible:bg-info/dim-5"])},{intent:"neutral",design:"ghost",class:e.tw(["text-on-neutral-container","hover:bg-neutral/dim-5","enabled:active:bg-neutral/dim-5","focus-visible:bg-neutral/dim-5"])},{intent:"surface",design:"ghost",class:e.tw(["text-surface","hover:bg-surface/dim-5","enabled:active:bg-surface/dim-5","focus-visible:bg-surface/dim-5"])},{intent:"surfaceInverse",design:"ghost",class:e.tw(["text-surface-inverse","hover:bg-surface-inverse/dim-5","enabled:active:bg-surface-inverse/dim-5","focus-visible:bg-surface-inverse/dim-5"])}],N=[{intent:"main",design:"outlined",class:e.tw(["hover:bg-main/dim-5","enabled:active:bg-main/dim-5","focus-visible:bg-main/dim-5","text-main"])},{intent:"support",design:"outlined",class:e.tw(["hover:bg-support/dim-5","enabled:active:bg-support/dim-5","focus-visible:bg-support/dim-5","text-support"])},{intent:"accent",design:"outlined",class:e.tw(["hover:bg-accent/dim-5","enabled:active:bg-accent/dim-5","focus-visible:bg-accent/dim-5","text-accent"])},{intent:"basic",design:"outlined",class:e.tw(["hover:bg-basic/dim-5","enabled:active:bg-basic/dim-5","focus-visible:bg-basic/dim-5","text-basic"])},{intent:"success",design:"outlined",class:e.tw(["hover:bg-success/dim-5","enabled:active:bg-success/dim-5","focus-visible:bg-success/dim-5","text-success"])},{intent:"alert",design:"outlined",class:e.tw(["hover:bg-alert/dim-5","enabled:active:bg-alert/dim-5","focus-visible:bg-alert/dim-5","text-alert"])},{intent:"danger",design:"outlined",class:e.tw(["hover:bg-error/dim-5","enabled:active:bg-error/dim-5","focus-visible:bg-error/dim-5","text-error"])},{intent:"info",design:"outlined",class:e.tw(["hover:bg-info/dim-5","enabled:active:bg-info/dim-5","focus-visible:bg-info/dim-5","text-info"])},{intent:"neutral",design:"outlined",class:e.tw(["hover:bg-neutral/dim-5","enabled:active:bg-neutral/dim-5","focus-visible:bg-neutral/dim-5","text-neutral"])},{intent:"surface",design:"outlined",class:e.tw(["hover:bg-surface/dim-5","enabled:active:bg-surface/dim-5","focus-visible:bg-surface/dim-5","text-surface"])},{intent:"surfaceInverse",design:"outlined",class:e.tw(["hover:bg-surface-inverse/dim-5","enabled:active:bg-surface-inverse/dim-5","focus-visible:bg-surface-inverse/dim-5","text-surface-inverse"])}],E=[{intent:"main",design:"tinted",class:e.tw(["bg-main-container","text-on-main-container","hover:bg-main-container-hovered","enabled:active:bg-main-container-hovered","focus-visible:bg-main-container-hovered"])},{intent:"support",design:"tinted",class:e.tw(["bg-support-container","text-on-support-container","hover:bg-support-container-hovered","enabled:active:bg-support-container-hovered","focus-visible:bg-support-container-hovered"])},{intent:"accent",design:"tinted",class:e.tw(["bg-accent-container","text-on-accent-container","hover:bg-accent-container-hovered","enabled:active:bg-accent-container-hovered","focus-visible:bg-accent-container-hovered"])},{intent:"basic",design:"tinted",class:e.tw(["bg-basic-container","text-on-basic-container","hover:bg-basic-container-hovered","enabled:active:bg-basic-container-hovered","focus-visible:bg-basic-container-hovered"])},{intent:"success",design:"tinted",class:e.tw(["bg-success-container","text-on-success-container","hover:bg-success-container-hovered","enabled:active:bg-success-container-hovered","focus-visible:bg-success-container-hovered"])},{intent:"alert",design:"tinted",class:e.tw(["bg-alert-container","text-on-alert-container","hover:bg-alert-container-hovered","enabled:active:bg-alert-container-hovered","focus-visible:bg-alert-container-hovered"])},{intent:"danger",design:"tinted",class:e.tw(["bg-error-container","text-on-error-container","hover:bg-error-container-hovered","enabled:active:bg-error-container-hovered","focus-visible:bg-error-container-hovered"])},{intent:"info",design:"tinted",class:e.tw(["bg-info-container","text-on-info-container","hover:bg-info-container-hovered","enabled:active:bg-info-container-hovered","focus-visible:bg-info-container-hovered"])},{intent:"neutral",design:"tinted",class:e.tw(["bg-neutral-container","text-on-neutral-container","hover:bg-neutral-container-hovered","enabled:active:bg-neutral-container-hovered","focus-visible:bg-neutral-container-hovered"])},{intent:"surface",design:"tinted",class:e.tw(["bg-surface","text-on-surface","hover:bg-surface-hovered","enabled:active:bg-surface-hovered","focus-visible:bg-surface-hovered"])},{intent:"surfaceInverse",design:"tinted",class:e.tw(["bg-surface-inverse","text-on-surface-inverse","hover:bg-surface-inverse-hovered","enabled:active:bg-surface-inverse-hovered","focus-visible:bg-surface-inverse-hovered"])}],B=[{intent:"main",design:"contrast",class:e.tw(["text-on-main-contaier bg-surface","hover:bg-main-container-hovered","enabled:active:bg-main-container-hovered","focus-visible:bg-main-container-hovered"])},{intent:"support",design:"contrast",class:e.tw(["text-on-support-container bg-surface","hover:bg-support-container-hovered","enabled:active:bg-support-container-hovered","focus-visible:bg-support-container-hovered"])},{intent:"accent",design:"contrast",class:e.tw(["text-on-accent-container bg-surface","hover:bg-accent-container-hovered","enabled:active:bg-accent-container-hovered","focus-visible:bg-accent-container-hovered"])},{intent:"basic",design:"contrast",class:e.tw(["text-on-basic-container bg-surface","hover:bg-basic-container-hovered","enabled:active:bg-basic-container-hovered","focus-visible:bg-basic-container-hovered"])},{intent:"success",design:"contrast",class:e.tw(["text-on-success-container bg-surface","hover:bg-success-container-hovered","enabled:active:bg-success-container-hovered","focus-visible:bg-success-container-hovered"])},{intent:"alert",design:"contrast",class:e.tw(["text-on-alert-container bg-surface","hover:bg-alert-container-hovered","enabled:active:bg-alert-container-hovered","focus-visible:bg-alert-container-hovered"])},{intent:"danger",design:"contrast",class:e.tw(["text-on-error-container bg-surface","hover:bg-error-container-hovered","enabled:active:bg-error-container-hovered","focus-visible:bg-error-container-hovered"])},{intent:"info",design:"contrast",class:e.tw(["text-on-info-container bg-surface","hover:bg-info-container-hovered","enabled:active:bg-info-container-hovered","focus-visible:bg-info-container-hovered"])},{intent:"neutral",design:"contrast",class:e.tw(["text-on-neutral-container bg-surface","hover:bg-neutral-container-hovered","enabled:active:bg-neutral-container-hovered","focus-visible:bg-neutral-container-hovered"])},{intent:"surface",design:"contrast",class:e.tw(["text-on-surface bg-surface","hover:bg-surface-hovered","enabled:active:bg-surface-hovered","focus-visible:bg-surface-hovered"])},{intent:"surfaceInverse",design:"contrast",class:e.tw(["text-on-surface-inverse bg-surface-inverse","hover:bg-surface-inverse-hovered","enabled:active:bg-surface-inverse-hovered","focus-visible:bg-surface-inverse-hovered"])}],v=l.cva(["u-shadow-border-transition","box-border inline-flex items-center justify-center gap-md whitespace-nowrap","default:px-lg","text-body-1 font-bold","focus-visible:u-outline"],{variants:{design:e.makeVariants({filled:[],outlined:["bg-transparent","border-sm","border-current"],tinted:[],ghost:["default:-mx-md px-md hover:bg-main/dim-5"],contrast:[]}),underline:{true:["underline"]},intent:e.makeVariants({main:[],support:[],accent:[],basic:[],success:[],alert:[],danger:[],info:[],neutral:[],surface:[],surfaceInverse:[]}),size:e.makeVariants({sm:["min-w-sz-32","h-sz-32"],md:["min-w-sz-44","h-sz-44"],lg:["min-w-sz-56","h-sz-56"]}),shape:e.makeVariants({rounded:["rounded-lg"],square:["rounded-0"],pill:["rounded-full"]}),disabled:{true:["cursor-not-allowed","opacity-dim-3"],false:["cursor-pointer"]}},compoundVariants:[...M,...N,...E,...j,...B],defaultVariants:{design:"filled",intent:"main",size:"md",shape:"rounded"}}),K=["onClick","onMouseDown","onMouseUp","onMouseEnter","onMouseLeave","onMouseOver","onMouseOut","onKeyDown","onKeyPress","onKeyUp","onSubmit"],u=({children:g,design:h="filled",disabled:a=!1,intent:f="main",isLoading:i=!1,loadingLabel:o,loadingText:s,shape:m="rounded",size:p="md",asChild:c,className:x,underline:w=!1,ref:y,...V})=>{const d=c?b.Slot:"button",r=!!a||i,z=q.useMemo(()=>{const n={};return r&&K.forEach(S=>n[S]=void 0),n},[r]),k={size:"current",className:s?"inline-block":"absolute",...o&&{"aria-label":o}};return t.jsx(d,{"data-spark-component":"button",...d==="button"&&{type:"button"},ref:y,className:v({className:x,design:h,disabled:r,intent:f,shape:m,size:p,underline:w}),disabled:!!a,"aria-busy":i,"aria-live":i?"assertive":"off",...V,...z,children:b.wrapPolymorphicSlot(c,g,n=>i?t.jsxs(t.Fragment,{children:[t.jsx(I.Spinner,{...k}),s&&s,t.jsx("div",{"aria-hidden":!0,className:l.cx("gap-md",s?"hidden":"inline-flex opacity-0"),children:n})]}):n)})};u.displayName="Button";exports.Button=u;exports.buttonStyles=v;
2
- //# sourceMappingURL=Button-C3xHNaGl.js.map
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("./index-DnaHaH_0.js"),a=e.cva(["z-modal flex flex-col bg-surface group","focus-visible:outline-hidden focus-visible:u-outline","[&:not(:has(footer))]:pb-lg","[&:not(:has(header))]:pt-lg"],{variants:{size:{fullscreen:"fixed size-full top-0 left-0",sm:"max-w-sz-480",md:"max-w-sz-672",lg:"max-w-sz-864"},isNarrow:{true:[],false:[]}},compoundVariants:[{size:["sm","md","lg"],class:["fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2","max-h-[80%]","shadow-md rounded-lg","data-[state=open]:animate-fade-in","data-[state=closed]:animate-fade-out"]},{size:["sm","md","lg"],isNarrow:!1,class:["w-full"]}],defaultVariants:{size:"md",isNarrow:!1}});exports.dialogContentStyles=a;
2
- //# sourceMappingURL=DialogContent.styles-BrhKaHc_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogContent.styles-BrhKaHc_.js","sources":["../src/dialog/DialogContent.styles.tsx"],"sourcesContent":["import { cva, VariantProps } from 'class-variance-authority'\n\nexport const dialogContentStyles = cva(\n [\n 'z-modal flex flex-col bg-surface group',\n 'focus-visible:outline-hidden focus-visible:u-outline',\n '[&:not(:has(footer))]:pb-lg',\n '[&:not(:has(header))]:pt-lg',\n ],\n {\n variants: {\n size: {\n fullscreen: 'fixed size-full top-0 left-0',\n sm: 'max-w-sz-480',\n md: 'max-w-sz-672',\n lg: 'max-w-sz-864',\n },\n isNarrow: {\n true: [],\n false: [],\n },\n },\n compoundVariants: [\n {\n size: ['sm', 'md', 'lg'],\n class: [\n 'fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2',\n 'max-h-[80%]',\n 'shadow-md rounded-lg',\n 'data-[state=open]:animate-fade-in',\n 'data-[state=closed]:animate-fade-out',\n ],\n },\n {\n size: ['sm', 'md', 'lg'],\n isNarrow: false,\n class: ['w-full'],\n },\n ],\n defaultVariants: {\n size: 'md',\n isNarrow: false,\n },\n }\n)\n\nexport type DialogContentStylesProps = VariantProps<typeof dialogContentStyles>\n"],"names":["dialogContentStyles","cva"],"mappings":"oDAEaA,EAAsBC,EAAAA,IACjC,CACE,yCACA,uDACA,8BACA,6BAAA,EAEF,CACE,SAAU,CACR,KAAM,CACJ,WAAY,+BACZ,GAAI,eACJ,GAAI,eACJ,GAAI,cAAA,EAEN,SAAU,CACR,KAAM,CAAA,EACN,MAAO,CAAA,CAAC,CACV,EAEF,iBAAkB,CAChB,CACE,KAAM,CAAC,KAAM,KAAM,IAAI,EACvB,MAAO,CACL,2DACA,cACA,uBACA,oCACA,sCAAA,CACF,EAEF,CACE,KAAM,CAAC,KAAM,KAAM,IAAI,EACvB,SAAU,GACV,MAAO,CAAC,QAAQ,CAAA,CAClB,EAEF,gBAAiB,CACf,KAAM,KACN,SAAU,EAAA,CACZ,CAEJ"}
@@ -1,48 +0,0 @@
1
- import { c as a } from "./index-BmAFn37q.mjs";
2
- const e = a(
3
- [
4
- "z-modal flex flex-col bg-surface group",
5
- "focus-visible:outline-hidden focus-visible:u-outline",
6
- "[&:not(:has(footer))]:pb-lg",
7
- "[&:not(:has(header))]:pt-lg"
8
- ],
9
- {
10
- variants: {
11
- size: {
12
- fullscreen: "fixed size-full top-0 left-0",
13
- sm: "max-w-sz-480",
14
- md: "max-w-sz-672",
15
- lg: "max-w-sz-864"
16
- },
17
- isNarrow: {
18
- true: [],
19
- false: []
20
- }
21
- },
22
- compoundVariants: [
23
- {
24
- size: ["sm", "md", "lg"],
25
- class: [
26
- "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",
27
- "max-h-[80%]",
28
- "shadow-md rounded-lg",
29
- "data-[state=open]:animate-fade-in",
30
- "data-[state=closed]:animate-fade-out"
31
- ]
32
- },
33
- {
34
- size: ["sm", "md", "lg"],
35
- isNarrow: !1,
36
- class: ["w-full"]
37
- }
38
- ],
39
- defaultVariants: {
40
- size: "md",
41
- isNarrow: !1
42
- }
43
- }
44
- );
45
- export {
46
- e as d
47
- };
48
- //# sourceMappingURL=DialogContent.styles-WGWJS9dj.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogContent.styles-WGWJS9dj.mjs","sources":["../src/dialog/DialogContent.styles.tsx"],"sourcesContent":["import { cva, VariantProps } from 'class-variance-authority'\n\nexport const dialogContentStyles = cva(\n [\n 'z-modal flex flex-col bg-surface group',\n 'focus-visible:outline-hidden focus-visible:u-outline',\n '[&:not(:has(footer))]:pb-lg',\n '[&:not(:has(header))]:pt-lg',\n ],\n {\n variants: {\n size: {\n fullscreen: 'fixed size-full top-0 left-0',\n sm: 'max-w-sz-480',\n md: 'max-w-sz-672',\n lg: 'max-w-sz-864',\n },\n isNarrow: {\n true: [],\n false: [],\n },\n },\n compoundVariants: [\n {\n size: ['sm', 'md', 'lg'],\n class: [\n 'fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2',\n 'max-h-[80%]',\n 'shadow-md rounded-lg',\n 'data-[state=open]:animate-fade-in',\n 'data-[state=closed]:animate-fade-out',\n ],\n },\n {\n size: ['sm', 'md', 'lg'],\n isNarrow: false,\n class: ['w-full'],\n },\n ],\n defaultVariants: {\n size: 'md',\n isNarrow: false,\n },\n }\n)\n\nexport type DialogContentStylesProps = VariantProps<typeof dialogContentStyles>\n"],"names":["dialogContentStyles","cva"],"mappings":";AAEO,MAAMA,IAAsBC;AAAA,EACjC;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,UAAU;AAAA,QACR,MAAM,CAAA;AAAA,QACN,OAAO,CAAA;AAAA,MAAC;AAAA,IACV;AAAA,IAEF,kBAAkB;AAAA,MAChB;AAAA,QACE,MAAM,CAAC,MAAM,MAAM,IAAI;AAAA,QACvB,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,MAEF;AAAA,QACE,MAAM,CAAC,MAAM,MAAM,IAAI;AAAA,QACvB,UAAU;AAAA,QACV,OAAO,CAAC,QAAQ;AAAA,MAAA;AAAA,IAClB;AAAA,IAEF,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAEJ;"}
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),n=require("react"),x=require("./VisuallyHidden-AoRh4WRK.js"),r=require("@spark-ui/internal-utils"),d=require("./index-DnaHaH_0.js"),m=d.cva(["fill-current shrink-0"],{variants:{intent:r.makeVariants({current:["text-current"],main:["text-main"],support:["text-support"],accent:["text-accent"],basic:["text-basic"],success:["text-success"],alert:["text-alert"],error:["text-error"],info:["text-info"],neutral:["text-neutral"]}),size:r.makeVariants({current:["u-current-font-size"],sm:["w-sz-16","h-sz-16"],md:["w-sz-24","h-sz-24"],lg:["w-sz-32","h-sz-32"],xl:["w-sz-40","h-sz-40"]})}}),s=({label:t,className:c,size:i="current",intent:a="current",children:u,...o})=>{const l=n.Children.only(u);return e.jsxs(e.Fragment,{children:[n.cloneElement(l,{className:m({className:c,size:i,intent:a}),"data-spark-component":"icon","aria-hidden":"true",focusable:"false",...o}),t&&e.jsx(x.VisuallyHidden,{children:t})]})};s.displayName="Icon";exports.Icon=s;
2
- //# sourceMappingURL=Icon-Bf0XrmiR.js.map
@@ -1,2 +0,0 @@
1
- "use strict";const u=require("react/jsx-runtime"),d=require("./Button-C3xHNaGl.js"),l=require("@spark-ui/internal-utils"),m=require("./index-DnaHaH_0.js"),p=m.cva(["pl-0 pr-0"],{variants:{size:l.makeVariants({sm:["text-body-1"],md:["text-body-1"],lg:["text-display-3"]})}}),n=({design:e="filled",disabled:o=!1,intent:s="main",shape:a="rounded",size:t="md",className:i,ref:r,...c})=>u.jsx(d.Button,{"data-spark-component":"icon-button",ref:r,className:p({size:t,className:i}),design:e,disabled:o,intent:s,shape:a,size:t,...c});n.displayName="IconButton";exports.IconButton=n;
2
- //# sourceMappingURL=IconButton-Bf-EDzpI.js.map
@@ -1,14 +0,0 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { cloneElement as l, isValidElement as a } from "react";
3
- import { S as e, a as m } from "./index-DhGWNzsz.mjs";
4
- const i = m, f = ({ ref: t, ...o }) => /* @__PURE__ */ s(e, { ref: t, ...o }), u = (t, o, r) => t ? a(o) ? l(
5
- o,
6
- void 0,
7
- r(o.props.children)
8
- ) : null : r(o);
9
- export {
10
- i as S,
11
- f as a,
12
- u as w
13
- };
14
- //# sourceMappingURL=Slot-C98rL4yy.mjs.map
@@ -1,2 +0,0 @@
1
- "use strict";const n=require("react/jsx-runtime"),r=require("react"),l=require("./index-1WIgmEZh.js"),s=l.Slottable,i=({ref:o,...t})=>n.jsx(l.Slot,{ref:o,...t}),u=(o,t,e)=>o?r.isValidElement(t)?r.cloneElement(t,void 0,e(t.props.children)):null:e(t);exports.Slot=i;exports.Slottable=s;exports.wrapPolymorphicSlot=u;
2
- //# sourceMappingURL=Slot-ghrohQLA.js.map
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),c=require("./VisuallyHidden-AoRh4WRK.js"),u=require("@spark-ui/internal-utils"),l=require("./index-DnaHaH_0.js"),d={intent:"current",size:"current",isBackgroundVisible:!1},b=l.cva(["inline-block","border-solid","rounded-full","border-md","animate-spin"],{variants:{size:{current:["u-current-font-size"],sm:["w-sz-20","h-sz-20"],md:["w-sz-28","h-sz-28"],full:["w-full","h-full"]},intent:u.makeVariants({current:["border-current"],main:["border-main"],support:["border-support"],accent:["border-accent"],basic:["border-basic"],success:["border-success"],alert:["border-alert"],error:["border-error"],info:["border-info"],neutral:["border-neutral"]}),isBackgroundVisible:{true:["border-b-neutral-container","border-l-neutral-container"],false:["border-b-transparent","border-l-transparent"]}},defaultVariants:d}),p=({className:n,size:s="current",intent:t="current",label:r,isBackgroundVisible:i,ref:a,...o})=>e.jsx("span",{role:"status","data-spark-component":"spinner",ref:a,className:b({className:n,size:s,intent:t,isBackgroundVisible:i}),...o,children:r&&e.jsx(c.VisuallyHidden,{children:r})});exports.Spinner=p;
2
- //# sourceMappingURL=Spinner-DK8VEsaR.js.map
@@ -1,2 +0,0 @@
1
- "use strict";const u=require("react/jsx-runtime"),l=require("./index-DnaHaH_0.js"),x=require("./Slot-ghrohQLA.js"),v=l.cva(["inline-flex items-center focus-visible:u-outline"],{variants:{intent:{current:"text-current hover:opacity-dim-1",main:"text-main hover:text-main-hovered",support:"text-support hover:text-support-hovered",accent:"text-accent hover:text-accent-hovered",basic:"text-basic hover:text-basic-hovered",success:"text-success hover:text-success-hovered",alert:"text-alert hover:text-alert-hovered",danger:"text-error hover:text-error-hovered",info:"text-info hover:text-info-hovered",neutral:"text-neutral hover:text-neutral-hovered"},bold:{true:"font-bold"},underline:{true:"underline",false:"hover:underline focus:underline"}},defaultVariants:{intent:"current",bold:!1,underline:!0}}),d=({asChild:e=!1,bold:t=!1,children:r,className:n,intent:o="current",underline:s=!0,ref:i,...a})=>{const c=e?x.Slot:"a";return u.jsx(c,{"data-spark-component":"text-link",ref:i,className:v({className:n,bold:t,intent:o,underline:s}),...a,children:r})};exports.TextLink=d;
2
- //# sourceMappingURL=TextLink-DD0VO37q.js.map
@@ -1,40 +0,0 @@
1
- import { i, a as c } from "./detectBrowser-Bc7rk5fI.mjs";
2
- function f(t) {
3
- t.preventDefault(), t.stopPropagation();
4
- }
5
- function l(t) {
6
- return "nativeEvent" in t;
7
- }
8
- function A(t) {
9
- return t.mozInputSource === 0 && t.isTrusted ? !0 : i && t.pointerType ? t.type === "click" && t.buttons === 1 : t.detail === 0 && !t.pointerType;
10
- }
11
- function O(t) {
12
- return c ? !1 : !i && t.width === 0 && t.height === 0 || i && t.width === 1 && t.height === 1 && t.pressure === 0 && t.detail === 0 && t.pointerType === "mouse" || // iOS VoiceOver returns 0.333• for width/height.
13
- t.width < 1 && t.height < 1 && t.pressure === 0 && t.detail === 0 && t.pointerType === "touch";
14
- }
15
- function S(t, s) {
16
- return ["mouse", "pen"].includes(t);
17
- }
18
- function h(t) {
19
- const s = t.type;
20
- return s === "click" || s === "mousedown" || s === "keydown" || s === "keyup";
21
- }
22
- const o = "ArrowUp", r = "ArrowDown", n = "ArrowLeft", e = "ArrowRight", u = "Home", a = "End", p = /* @__PURE__ */ new Set([n, e]), E = /* @__PURE__ */ new Set([o, r]), w = /* @__PURE__ */ new Set([...p, ...E]);
23
- [...w];
24
- const T = /* @__PURE__ */ new Set([o, r, n, e, u, a]);
25
- export {
26
- r as A,
27
- T as C,
28
- a as E,
29
- u as H,
30
- o as a,
31
- e as b,
32
- n as c,
33
- O as d,
34
- S as e,
35
- h as f,
36
- l as g,
37
- A as i,
38
- f as s
39
- };
40
- //# sourceMappingURL=composite-Br3kM5N9.mjs.map