@sprawlify/primitives 0.0.1

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 (378) hide show
  1. package/dist/anatomy.cjs +3 -0
  2. package/dist/anatomy.d.cts +2 -0
  3. package/dist/anatomy.d.mts +2 -0
  4. package/dist/anatomy.mjs +3 -0
  5. package/dist/aria-hidden-DqYx0f_y.mjs +177 -0
  6. package/dist/aria-hidden-DtLU6hSU.cjs +182 -0
  7. package/dist/aria-hidden.cjs +4 -0
  8. package/dist/aria-hidden.d.cts +16 -0
  9. package/dist/aria-hidden.d.mts +16 -0
  10. package/dist/aria-hidden.mjs +4 -0
  11. package/dist/auto-resize-D3qHtFy1.mjs +114 -0
  12. package/dist/auto-resize-xzlPFDyD.cjs +125 -0
  13. package/dist/auto-resize.cjs +5 -0
  14. package/dist/auto-resize.d.cts +17 -0
  15. package/dist/auto-resize.d.mts +17 -0
  16. package/dist/auto-resize.mjs +4 -0
  17. package/dist/chunk-CbDLau6x.cjs +34 -0
  18. package/dist/collection-8XqaNHs_.mjs +1279 -0
  19. package/dist/collection-DIoIDISa.cjs +1326 -0
  20. package/dist/collection.cjs +11 -0
  21. package/dist/collection.d.cts +5 -0
  22. package/dist/collection.d.mts +5 -0
  23. package/dist/collection.mjs +4 -0
  24. package/dist/color-BkAP1Tkd.d.mts +60 -0
  25. package/dist/color-VKewNv2e.d.cts +60 -0
  26. package/dist/color-utils-Cc5GVXZh.mjs +657 -0
  27. package/dist/color-utils-LER_6Zwu.cjs +680 -0
  28. package/dist/color-utils.cjs +7 -0
  29. package/dist/color-utils.d.cts +19 -0
  30. package/dist/color-utils.d.mts +19 -0
  31. package/dist/color-utils.mjs +4 -0
  32. package/dist/core-30pJjyC2.d.mts +49 -0
  33. package/dist/core-CQFbMdTl.cjs +176 -0
  34. package/dist/core-CefBjbst.d.cts +49 -0
  35. package/dist/core-DCFNMTZF.mjs +129 -0
  36. package/dist/core.cjs +12 -0
  37. package/dist/core.d.cts +3 -0
  38. package/dist/core.d.mts +3 -0
  39. package/dist/core.mjs +5 -0
  40. package/dist/create-anatomy-B3XYc-qG.d.mts +70 -0
  41. package/dist/create-anatomy-BGQ8pv8J.d.cts +70 -0
  42. package/dist/create-anatomy-BbDZbHpC.mjs +39 -0
  43. package/dist/create-anatomy-CDsIFUXg.cjs +45 -0
  44. package/dist/create-props-BnF_vl-E.mjs +5 -0
  45. package/dist/create-props-YKy7JIKj.cjs +11 -0
  46. package/dist/data-url-C3ITPVRX.d.cts +10 -0
  47. package/dist/data-url-DLwZ9M77.d.mts +10 -0
  48. package/dist/date-utils-D2xPHa_I.cjs +738 -0
  49. package/dist/date-utils-wEa1hhpc.mjs +474 -0
  50. package/dist/date-utils.cjs +46 -0
  51. package/dist/date-utils.d.cts +101 -0
  52. package/dist/date-utils.d.mts +2 -0
  53. package/dist/date-utils.mjs +3 -0
  54. package/dist/defineProperty-BoUOT9Ie.cjs +49 -0
  55. package/dist/defineProperty-DrXfyjd4.mjs +43 -0
  56. package/dist/dismissable-CTfKZ4OG.cjs +282 -0
  57. package/dist/dismissable-DDrx0xnH.mjs +271 -0
  58. package/dist/dismissable-layer-C7pZU2wi.d.cts +39 -0
  59. package/dist/dismissable-layer-t_b0fk-p.d.mts +39 -0
  60. package/dist/dismissable.cjs +7 -0
  61. package/dist/dismissable.d.cts +3 -0
  62. package/dist/dismissable.d.mts +3 -0
  63. package/dist/dismissable.mjs +6 -0
  64. package/dist/dom-query-CWZdWUGp.cjs +2141 -0
  65. package/dist/dom-query-DFCRhyj1.mjs +1374 -0
  66. package/dist/dom-query.cjs +130 -0
  67. package/dist/dom-query.d.cts +307 -0
  68. package/dist/dom-query.d.mts +307 -0
  69. package/dist/dom-query.mjs +3 -0
  70. package/dist/file-utils.cjs +220 -0
  71. package/dist/file-utils.d.cts +51 -0
  72. package/dist/file-utils.d.mts +51 -0
  73. package/dist/file-utils.mjs +210 -0
  74. package/dist/focus-trap-D-bypQEJ.mjs +485 -0
  75. package/dist/focus-trap-D4i52S9A.cjs +496 -0
  76. package/dist/focus-trap.cjs +5 -0
  77. package/dist/focus-trap.d.cts +88 -0
  78. package/dist/focus-trap.d.mts +88 -0
  79. package/dist/focus-trap.mjs +4 -0
  80. package/dist/focus-visible-DYTWdWpa.cjs +210 -0
  81. package/dist/focus-visible-irppYatv.mjs +175 -0
  82. package/dist/focus-visible.cjs +9 -0
  83. package/dist/focus-visible.d.cts +31 -0
  84. package/dist/focus-visible.d.mts +31 -0
  85. package/dist/focus-visible.mjs +4 -0
  86. package/dist/functions-BOkTDEFM.d.cts +15 -0
  87. package/dist/functions-IZtWcC8Q.d.mts +15 -0
  88. package/dist/highlight-word.cjs +100 -0
  89. package/dist/highlight-word.d.cts +24 -0
  90. package/dist/highlight-word.d.mts +24 -0
  91. package/dist/highlight-word.mjs +99 -0
  92. package/dist/hotkeys.cjs +758 -0
  93. package/dist/hotkeys.d.cts +130 -0
  94. package/dist/hotkeys.d.mts +130 -0
  95. package/dist/hotkeys.mjs +754 -0
  96. package/dist/i18n-utils.cjs +450 -0
  97. package/dist/i18n-utils.d.cts +61 -0
  98. package/dist/i18n-utils.d.mts +61 -0
  99. package/dist/i18n-utils.mjs +440 -0
  100. package/dist/index-BkzYij2j.d.mts +25 -0
  101. package/dist/index-Bqw3r34-.d.cts +1383 -0
  102. package/dist/index-C0MKXQmE.d.mts +1383 -0
  103. package/dist/index-C9-feK5c.d.cts +25 -0
  104. package/dist/index-CD5FN7kY.d.mts +114 -0
  105. package/dist/index-CJji6wHl.d.cts +15 -0
  106. package/dist/index-CNi5FkPe.d.mts +15 -0
  107. package/dist/index-D96rs8B0.d.mts +115 -0
  108. package/dist/index.cjs +0 -0
  109. package/dist/index.d.cts +1 -0
  110. package/dist/index.d.mts +1 -0
  111. package/dist/index.mjs +1 -0
  112. package/dist/interact-outside-BplxR9cR.mjs +200 -0
  113. package/dist/interact-outside-C8-oFBpB.cjs +205 -0
  114. package/dist/interact-outside.cjs +5 -0
  115. package/dist/interact-outside.d.cts +2 -0
  116. package/dist/interact-outside.d.mts +2 -0
  117. package/dist/interact-outside.mjs +5 -0
  118. package/dist/json-tree-utils.cjs +1512 -0
  119. package/dist/json-tree-utils.d.cts +117 -0
  120. package/dist/json-tree-utils.d.mts +117 -0
  121. package/dist/json-tree-utils.mjs +1463 -0
  122. package/dist/list-collection-BIMJGQjn.d.cts +61 -0
  123. package/dist/list-collection-Db3eixRU.d.mts +61 -0
  124. package/dist/live-region-CcZPGo89.cjs +52 -0
  125. package/dist/live-region-CnPh21WH.mjs +46 -0
  126. package/dist/live-region.cjs +3 -0
  127. package/dist/live-region.d.cts +2 -0
  128. package/dist/live-region.d.mts +2 -0
  129. package/dist/live-region.mjs +3 -0
  130. package/dist/machines/accordion/index.cjs +328 -0
  131. package/dist/machines/accordion/index.d.cts +83 -0
  132. package/dist/machines/accordion/index.d.mts +83 -0
  133. package/dist/machines/accordion/index.mjs +322 -0
  134. package/dist/machines/async-list/index.cjs +311 -0
  135. package/dist/machines/async-list/index.d.cts +89 -0
  136. package/dist/machines/async-list/index.d.mts +89 -0
  137. package/dist/machines/async-list/index.mjs +310 -0
  138. package/dist/machines/avatar/index.cjs +169 -0
  139. package/dist/machines/avatar/index.d.cts +63 -0
  140. package/dist/machines/avatar/index.d.mts +63 -0
  141. package/dist/machines/avatar/index.mjs +165 -0
  142. package/dist/machines/bottom-sheet/index.cjs +676 -0
  143. package/dist/machines/bottom-sheet/index.d.cts +239 -0
  144. package/dist/machines/bottom-sheet/index.d.mts +239 -0
  145. package/dist/machines/bottom-sheet/index.mjs +672 -0
  146. package/dist/machines/carousel/index.cjs +859 -0
  147. package/dist/machines/carousel/index.d.cts +146 -0
  148. package/dist/machines/carousel/index.d.mts +146 -0
  149. package/dist/machines/carousel/index.mjs +851 -0
  150. package/dist/machines/checkbox/index.cjs +316 -0
  151. package/dist/machines/checkbox/index.d.cts +81 -0
  152. package/dist/machines/checkbox/index.d.mts +81 -0
  153. package/dist/machines/checkbox/index.mjs +312 -0
  154. package/dist/machines/clipboard/index.cjs +225 -0
  155. package/dist/machines/clipboard/index.d.cts +68 -0
  156. package/dist/machines/clipboard/index.d.mts +68 -0
  157. package/dist/machines/clipboard/index.mjs +219 -0
  158. package/dist/machines/collapsible/index.cjs +362 -0
  159. package/dist/machines/collapsible/index.d.cts +82 -0
  160. package/dist/machines/collapsible/index.d.mts +82 -0
  161. package/dist/machines/collapsible/index.mjs +358 -0
  162. package/dist/machines/color-picker/index.cjs +1529 -0
  163. package/dist/machines/color-picker/index.d.cts +205 -0
  164. package/dist/machines/color-picker/index.d.mts +205 -0
  165. package/dist/machines/color-picker/index.mjs +1514 -0
  166. package/dist/machines/combobox/index.cjs +1593 -0
  167. package/dist/machines/combobox/index.d.cts +214 -0
  168. package/dist/machines/combobox/index.d.mts +214 -0
  169. package/dist/machines/combobox/index.mjs +1582 -0
  170. package/dist/machines/date-picker/index.cjs +2177 -0
  171. package/dist/machines/date-picker/index.d.cts +350 -0
  172. package/dist/machines/date-picker/index.d.mts +350 -0
  173. package/dist/machines/date-picker/index.mjs +2161 -0
  174. package/dist/machines/dialog/index.cjs +325 -0
  175. package/dist/machines/dialog/index.d.cts +80 -0
  176. package/dist/machines/dialog/index.d.mts +80 -0
  177. package/dist/machines/dialog/index.mjs +321 -0
  178. package/dist/machines/editable/index.cjs +551 -0
  179. package/dist/machines/editable/index.d.cts +114 -0
  180. package/dist/machines/editable/index.d.mts +114 -0
  181. package/dist/machines/editable/index.mjs +547 -0
  182. package/dist/machines/floating-panel/index.cjs +995 -0
  183. package/dist/machines/floating-panel/index.d.cts +147 -0
  184. package/dist/machines/floating-panel/index.d.mts +147 -0
  185. package/dist/machines/floating-panel/index.mjs +988 -0
  186. package/dist/machines/hover-card/index.cjs +383 -0
  187. package/dist/machines/hover-card/index.d.cts +69 -0
  188. package/dist/machines/hover-card/index.d.mts +69 -0
  189. package/dist/machines/hover-card/index.mjs +379 -0
  190. package/dist/machines/image-cropper/index.cjs +1995 -0
  191. package/dist/machines/image-cropper/index.d.cts +182 -0
  192. package/dist/machines/image-cropper/index.d.mts +182 -0
  193. package/dist/machines/image-cropper/index.mjs +1990 -0
  194. package/dist/machines/listbox/index.cjs +794 -0
  195. package/dist/machines/listbox/index.d.cts +168 -0
  196. package/dist/machines/listbox/index.d.mts +168 -0
  197. package/dist/machines/listbox/index.mjs +782 -0
  198. package/dist/machines/marquee/index.cjs +395 -0
  199. package/dist/machines/marquee/index.d.cts +102 -0
  200. package/dist/machines/marquee/index.d.mts +102 -0
  201. package/dist/machines/marquee/index.mjs +391 -0
  202. package/dist/machines/menu/index.cjs +1298 -0
  203. package/dist/machines/menu/index.d.cts +175 -0
  204. package/dist/machines/menu/index.d.mts +175 -0
  205. package/dist/machines/menu/index.mjs +1286 -0
  206. package/dist/machines/navigation-menu/index.cjs +861 -0
  207. package/dist/machines/navigation-menu/index.d.cts +127 -0
  208. package/dist/machines/navigation-menu/index.d.mts +127 -0
  209. package/dist/machines/navigation-menu/index.mjs +857 -0
  210. package/dist/machines/number-input/index.cjs +996 -0
  211. package/dist/machines/number-input/index.d.cts +134 -0
  212. package/dist/machines/number-input/index.d.mts +134 -0
  213. package/dist/machines/number-input/index.mjs +991 -0
  214. package/dist/machines/pagination/index.cjs +419 -0
  215. package/dist/machines/pagination/index.d.cts +139 -0
  216. package/dist/machines/pagination/index.d.mts +139 -0
  217. package/dist/machines/pagination/index.mjs +411 -0
  218. package/dist/machines/password-input/index.cjs +228 -0
  219. package/dist/machines/password-input/index.d.cts +71 -0
  220. package/dist/machines/password-input/index.d.mts +71 -0
  221. package/dist/machines/password-input/index.mjs +224 -0
  222. package/dist/machines/pin-input/index.cjs +523 -0
  223. package/dist/machines/pin-input/index.d.cts +105 -0
  224. package/dist/machines/pin-input/index.d.mts +105 -0
  225. package/dist/machines/pin-input/index.mjs +519 -0
  226. package/dist/machines/popover/index.cjs +430 -0
  227. package/dist/machines/popover/index.d.cts +88 -0
  228. package/dist/machines/popover/index.d.mts +88 -0
  229. package/dist/machines/popover/index.mjs +426 -0
  230. package/dist/machines/presence/index.cjs +192 -0
  231. package/dist/machines/presence/index.d.cts +44 -0
  232. package/dist/machines/presence/index.d.mts +44 -0
  233. package/dist/machines/presence/index.mjs +190 -0
  234. package/dist/machines/progress/index.cjs +288 -0
  235. package/dist/machines/progress/index.d.cts +96 -0
  236. package/dist/machines/progress/index.d.mts +96 -0
  237. package/dist/machines/progress/index.mjs +284 -0
  238. package/dist/machines/qr-code/index.cjs +172 -0
  239. package/dist/machines/qr-code/index.d.cts +70 -0
  240. package/dist/machines/qr-code/index.d.mts +70 -0
  241. package/dist/machines/qr-code/index.mjs +167 -0
  242. package/dist/machines/radio-group/index.cjs +436 -0
  243. package/dist/machines/radio-group/index.d.cts +106 -0
  244. package/dist/machines/radio-group/index.d.mts +106 -0
  245. package/dist/machines/radio-group/index.mjs +430 -0
  246. package/dist/machines/rating-group/index.cjs +405 -0
  247. package/dist/machines/rating-group/index.d.cts +101 -0
  248. package/dist/machines/rating-group/index.d.mts +101 -0
  249. package/dist/machines/rating-group/index.mjs +399 -0
  250. package/dist/machines/scroll-area/index.cjs +857 -0
  251. package/dist/machines/scroll-area/index.d.cts +159 -0
  252. package/dist/machines/scroll-area/index.d.mts +159 -0
  253. package/dist/machines/scroll-area/index.mjs +853 -0
  254. package/dist/machines/select/index.cjs +1165 -0
  255. package/dist/machines/select/index.d.cts +183 -0
  256. package/dist/machines/select/index.d.mts +183 -0
  257. package/dist/machines/select/index.mjs +1154 -0
  258. package/dist/machines/signature-pad/index.cjs +334 -0
  259. package/dist/machines/signature-pad/index.d.cts +108 -0
  260. package/dist/machines/signature-pad/index.d.mts +108 -0
  261. package/dist/machines/signature-pad/index.mjs +328 -0
  262. package/dist/machines/slider/index.cjs +957 -0
  263. package/dist/machines/slider/index.d.cts +149 -0
  264. package/dist/machines/slider/index.d.mts +149 -0
  265. package/dist/machines/slider/index.mjs +949 -0
  266. package/dist/machines/splitter/index.cjs +1112 -0
  267. package/dist/machines/splitter/index.d.cts +155 -0
  268. package/dist/machines/splitter/index.d.mts +155 -0
  269. package/dist/machines/splitter/index.mjs +1103 -0
  270. package/dist/machines/steps/index.cjs +289 -0
  271. package/dist/machines/steps/index.d.cts +97 -0
  272. package/dist/machines/steps/index.d.mts +97 -0
  273. package/dist/machines/steps/index.mjs +285 -0
  274. package/dist/machines/switch/index.cjs +305 -0
  275. package/dist/machines/switch/index.d.cts +80 -0
  276. package/dist/machines/switch/index.d.mts +80 -0
  277. package/dist/machines/switch/index.mjs +301 -0
  278. package/dist/machines/tabs/index.cjs +508 -0
  279. package/dist/machines/tabs/index.d.cts +111 -0
  280. package/dist/machines/tabs/index.d.mts +111 -0
  281. package/dist/machines/tabs/index.mjs +500 -0
  282. package/dist/machines/tags-input/index.cjs +1127 -0
  283. package/dist/machines/tags-input/index.d.cts +179 -0
  284. package/dist/machines/tags-input/index.d.mts +179 -0
  285. package/dist/machines/tags-input/index.mjs +1121 -0
  286. package/dist/machines/timer/index.cjs +329 -0
  287. package/dist/machines/timer/index.d.cts +98 -0
  288. package/dist/machines/timer/index.d.mts +98 -0
  289. package/dist/machines/timer/index.mjs +324 -0
  290. package/dist/machines/toast/index.cjs +1155 -0
  291. package/dist/machines/toast/index.d.cts +195 -0
  292. package/dist/machines/toast/index.d.mts +195 -0
  293. package/dist/machines/toast/index.mjs +1151 -0
  294. package/dist/machines/toggle/index.cjs +103 -0
  295. package/dist/machines/toggle/index.d.cts +46 -0
  296. package/dist/machines/toggle/index.d.mts +46 -0
  297. package/dist/machines/toggle/index.mjs +99 -0
  298. package/dist/machines/toggle-group/index.cjs +328 -0
  299. package/dist/machines/toggle-group/index.d.cts +81 -0
  300. package/dist/machines/toggle-group/index.d.mts +81 -0
  301. package/dist/machines/toggle-group/index.mjs +322 -0
  302. package/dist/machines/tooltip/index.cjs +516 -0
  303. package/dist/machines/tooltip/index.d.cts +71 -0
  304. package/dist/machines/tooltip/index.d.mts +71 -0
  305. package/dist/machines/tooltip/index.mjs +512 -0
  306. package/dist/machines/tour/index.cjs +1108 -0
  307. package/dist/machines/tour/index.d.cts +206 -0
  308. package/dist/machines/tour/index.d.mts +206 -0
  309. package/dist/machines/tour/index.mjs +1101 -0
  310. package/dist/machines/tree-view/index.cjs +1271 -0
  311. package/dist/machines/tree-view/index.d.cts +215 -0
  312. package/dist/machines/tree-view/index.d.mts +215 -0
  313. package/dist/machines/tree-view/index.mjs +1263 -0
  314. package/dist/node-BctU8GXk.d.mts +24 -0
  315. package/dist/node-CSsuPZVZ.d.cts +24 -0
  316. package/dist/popper-BPJeAtcA.mjs +349 -0
  317. package/dist/popper-D0FAW_p7.cjs +373 -0
  318. package/dist/popper.cjs +8 -0
  319. package/dist/popper.d.cts +74 -0
  320. package/dist/popper.d.mts +2 -0
  321. package/dist/popper.mjs +5 -0
  322. package/dist/raf-BnlYUlDi.d.mts +15 -0
  323. package/dist/raf-Cd2FGy0z.d.cts +15 -0
  324. package/dist/rect-utils-0ellN0a_.mjs +854 -0
  325. package/dist/rect-utils-DKLRhP8G.cjs +1147 -0
  326. package/dist/rect-utils.cjs +51 -0
  327. package/dist/rect-utils.d.cts +198 -0
  328. package/dist/rect-utils.d.mts +198 -0
  329. package/dist/rect-utils.mjs +3 -0
  330. package/dist/remove-scroll-Lrfv79X_.mjs +58 -0
  331. package/dist/remove-scroll-Uvzg1L9r.cjs +63 -0
  332. package/dist/remove-scroll.cjs +0 -0
  333. package/dist/remove-scroll.d.cts +1 -0
  334. package/dist/remove-scroll.d.mts +1 -0
  335. package/dist/remove-scroll.mjs +1 -0
  336. package/dist/scroll-snap-CrTmQRzA.mjs +152 -0
  337. package/dist/scroll-snap-zyiZLv7W.cjs +175 -0
  338. package/dist/scroll-snap.cjs +7 -0
  339. package/dist/scroll-snap.d.cts +14 -0
  340. package/dist/scroll-snap.d.mts +14 -0
  341. package/dist/scroll-snap.mjs +4 -0
  342. package/dist/selection-BIhSzkF7.d.mts +50 -0
  343. package/dist/selection-CS1GBp8e.d.cts +50 -0
  344. package/dist/store-BZcXv49B.cjs +305 -0
  345. package/dist/store-DEojWy9H.mjs +263 -0
  346. package/dist/store.cjs +9 -0
  347. package/dist/store.d.cts +26 -0
  348. package/dist/store.d.mts +26 -0
  349. package/dist/store.mjs +3 -0
  350. package/dist/stringify-state.cjs +49 -0
  351. package/dist/stringify-state.d.cts +8 -0
  352. package/dist/stringify-state.d.mts +8 -0
  353. package/dist/stringify-state.mjs +46 -0
  354. package/dist/tree-collection-BwU5WhGQ.d.mts +78 -0
  355. package/dist/tree-collection-DP_eznnI.d.cts +78 -0
  356. package/dist/typeahead-BdNwVP09.d.cts +45 -0
  357. package/dist/typeahead-XN6lZ7G9.d.mts +45 -0
  358. package/dist/types-BivBkYg9.d.cts +57 -0
  359. package/dist/types-Bl_6JtPQ.d.mts +57 -0
  360. package/dist/types-CPUMVt7c.d.mts +54 -0
  361. package/dist/types-CT_W6HWr.d.cts +54 -0
  362. package/dist/types-DDTcG99l.d.mts +201 -0
  363. package/dist/types-DejIu60O.d.cts +201 -0
  364. package/dist/types-DiIdKZ3K.d.cts +45 -0
  365. package/dist/types-GxLIgJib.d.cts +17 -0
  366. package/dist/types.cjs +15 -0
  367. package/dist/types.d.cts +2 -0
  368. package/dist/types.d.mts +2 -0
  369. package/dist/types.mjs +14 -0
  370. package/dist/utils-BZyrxWWR.mjs +525 -0
  371. package/dist/utils-_6frwjgJ.cjs +1040 -0
  372. package/dist/utils.cjs +88 -0
  373. package/dist/utils.d.cts +144 -0
  374. package/dist/utils.d.mts +144 -0
  375. package/dist/utils.mjs +3 -0
  376. package/dist/wait-for-CMjPsqWk.d.cts +10 -0
  377. package/dist/wait-for-D2nkdD4z.d.mts +10 -0
  378. package/package.json +399 -0
@@ -0,0 +1,1155 @@
1
+ const require_create_anatomy = require('../../create-anatomy-CDsIFUXg.cjs');
2
+ const require_dom_query = require('../../dom-query-CWZdWUGp.cjs');
3
+ const require_utils = require('../../utils-_6frwjgJ.cjs');
4
+ const require_core = require('../../core-CQFbMdTl.cjs');
5
+ require('../../interact-outside-C8-oFBpB.cjs');
6
+ const require_dismissable = require('../../dismissable-CTfKZ4OG.cjs');
7
+
8
+ //#region src/machines/toast/toast.anatomy.ts
9
+ const anatomy = require_create_anatomy.createAnatomy("toast").parts("group", "root", "title", "description", "actionTrigger", "closeTrigger");
10
+ const parts = anatomy.build();
11
+
12
+ //#endregion
13
+ //#region src/machines/toast/toast.dom.ts
14
+ const getRegionId = (placement) => `toast-group:${placement}`;
15
+ const getRegionEl = (ctx, placement) => ctx.getById(`toast-group:${placement}`);
16
+ const getRootId = (ctx) => `toast:${ctx.id}`;
17
+ const getRootEl = (ctx) => ctx.getById(getRootId(ctx));
18
+ const getTitleId = (ctx) => `toast:${ctx.id}:title`;
19
+ const getDescriptionId = (ctx) => `toast:${ctx.id}:description`;
20
+ const getCloseTriggerId = (ctx) => `toast${ctx.id}:close`;
21
+
22
+ //#endregion
23
+ //#region src/machines/toast/toast.utils.ts
24
+ const defaultTimeouts = {
25
+ info: 5e3,
26
+ error: 5e3,
27
+ success: 2e3,
28
+ loading: Infinity,
29
+ DEFAULT: 5e3
30
+ };
31
+ function getToastDuration(duration, type) {
32
+ return duration ?? defaultTimeouts[type] ?? defaultTimeouts.DEFAULT;
33
+ }
34
+ const getOffsets = (offsets) => typeof offsets === "string" ? {
35
+ left: offsets,
36
+ right: offsets,
37
+ bottom: offsets,
38
+ top: offsets
39
+ } : offsets;
40
+ function getGroupPlacementStyle(service, placement) {
41
+ const { prop, computed, context } = service;
42
+ const { offsets, gap } = prop("store").attrs;
43
+ const heights = context.get("heights");
44
+ const computedOffset = getOffsets(offsets);
45
+ const rtl = prop("dir") === "rtl";
46
+ const computedPlacement = placement.replace("-start", rtl ? "-right" : "-left").replace("-end", rtl ? "-left" : "-right");
47
+ const isRighty = computedPlacement.includes("right");
48
+ const isLefty = computedPlacement.includes("left");
49
+ const styles = {
50
+ position: "fixed",
51
+ pointerEvents: computed("count") > 0 ? void 0 : "none",
52
+ display: "flex",
53
+ flexDirection: "column",
54
+ "--gap": `${gap}px`,
55
+ "--first-height": `${heights[0]?.height || 0}px`,
56
+ "--viewport-offset-left": computedOffset.left,
57
+ "--viewport-offset-right": computedOffset.right,
58
+ "--viewport-offset-top": computedOffset.top,
59
+ "--viewport-offset-bottom": computedOffset.bottom,
60
+ zIndex: require_dom_query.MAX_Z_INDEX
61
+ };
62
+ let alignItems = "center";
63
+ if (isRighty) alignItems = "flex-end";
64
+ if (isLefty) alignItems = "flex-start";
65
+ styles.alignItems = alignItems;
66
+ if (computedPlacement.includes("top")) styles.top = `max(env(safe-area-inset-top, 0px), ${computedOffset.top})`;
67
+ if (computedPlacement.includes("bottom")) styles.bottom = `max(env(safe-area-inset-bottom, 0px), ${computedOffset.bottom})`;
68
+ if (!computedPlacement.includes("left")) styles.insetInlineEnd = `calc(env(safe-area-inset-right, 0px) + ${computedOffset.right})`;
69
+ if (!computedPlacement.includes("right")) styles.insetInlineStart = `calc(env(safe-area-inset-left, 0px) + ${computedOffset.left})`;
70
+ return styles;
71
+ }
72
+ function getPlacementStyle(service, visible) {
73
+ const { prop, context, computed } = service;
74
+ const parent = prop("parent");
75
+ const placement = parent.computed("placement");
76
+ const { gap } = parent.prop("store").attrs;
77
+ const [side] = placement.split("-");
78
+ const mounted = context.get("mounted");
79
+ const remainingTime = context.get("remainingTime");
80
+ const height = computed("height");
81
+ const frontmost = computed("frontmost");
82
+ const sibling = !frontmost;
83
+ const overlap = !prop("stacked");
84
+ const stacked = prop("stacked");
85
+ const duration = prop("type") === "loading" ? Number.MAX_SAFE_INTEGER : remainingTime;
86
+ const offset = computed("heightIndex") * gap + computed("heightBefore");
87
+ const styles = {
88
+ position: "absolute",
89
+ pointerEvents: "auto",
90
+ "--opacity": "0",
91
+ "--remove-delay": `${prop("removeDelay")}ms`,
92
+ "--duration": `${duration}ms`,
93
+ "--initial-height": `${height}px`,
94
+ "--offset": `${offset}px`,
95
+ "--index": prop("index"),
96
+ "--z-index": computed("zIndex"),
97
+ "--lift-amount": "calc(var(--lift) * var(--gap))",
98
+ "--y": "100%",
99
+ "--x": "0"
100
+ };
101
+ const assign = (overrides) => Object.assign(styles, overrides);
102
+ if (side === "top") assign({
103
+ top: "0",
104
+ "--sign": "-1",
105
+ "--y": "-100%",
106
+ "--lift": "1"
107
+ });
108
+ else if (side === "bottom") assign({
109
+ bottom: "0",
110
+ "--sign": "1",
111
+ "--y": "100%",
112
+ "--lift": "-1"
113
+ });
114
+ if (mounted) {
115
+ assign({
116
+ "--y": "0",
117
+ "--opacity": "1"
118
+ });
119
+ if (stacked) assign({
120
+ "--y": "calc(var(--lift) * var(--offset))",
121
+ "--height": "var(--initial-height)"
122
+ });
123
+ }
124
+ if (!visible) assign({
125
+ "--opacity": "0",
126
+ pointerEvents: "none"
127
+ });
128
+ if (sibling && overlap) {
129
+ assign({
130
+ "--base-scale": "var(--index) * 0.05 + 1",
131
+ "--y": "calc(var(--lift-amount) * var(--index))",
132
+ "--scale": "calc(-1 * var(--base-scale))",
133
+ "--height": "var(--first-height)"
134
+ });
135
+ if (!visible) assign({ "--y": "calc(var(--sign) * 40%)" });
136
+ }
137
+ if (sibling && stacked && !visible) assign({ "--y": "calc(var(--lift) * var(--offset) + var(--lift) * -100%)" });
138
+ if (frontmost && !visible) assign({ "--y": "calc(var(--lift) * -100%)" });
139
+ return styles;
140
+ }
141
+ function getGhostBeforeStyle(service, visible) {
142
+ const { computed } = service;
143
+ const styles = {
144
+ position: "absolute",
145
+ inset: "0",
146
+ scale: "1 2",
147
+ pointerEvents: visible ? "none" : "auto"
148
+ };
149
+ const assign = (overrides) => Object.assign(styles, overrides);
150
+ if (computed("frontmost") && !visible) assign({ height: "calc(var(--initial-height) + 80%)" });
151
+ return styles;
152
+ }
153
+ function getGhostAfterStyle() {
154
+ return {
155
+ position: "absolute",
156
+ left: "0",
157
+ height: "calc(var(--gap) + 2px)",
158
+ bottom: "100%",
159
+ width: "100%"
160
+ };
161
+ }
162
+
163
+ //#endregion
164
+ //#region src/machines/toast/toast-group.connect.ts
165
+ function groupConnect(service, normalize) {
166
+ const { context, prop, send, refs, computed } = service;
167
+ return {
168
+ getCount() {
169
+ return context.get("toasts").length;
170
+ },
171
+ getToasts() {
172
+ return context.get("toasts");
173
+ },
174
+ getGroupProps(options = {}) {
175
+ const { label = "Notifications" } = options;
176
+ const { hotkey } = prop("store").attrs;
177
+ const hotkeyLabel = hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
178
+ const placement = computed("placement");
179
+ const [side, align = "center"] = placement.split("-");
180
+ return normalize.element({
181
+ ...parts.group.attrs,
182
+ dir: prop("dir"),
183
+ tabIndex: -1,
184
+ "aria-label": `${placement} ${label} ${hotkeyLabel}`,
185
+ id: getRegionId(placement),
186
+ "data-placement": placement,
187
+ "data-side": side,
188
+ "data-align": align,
189
+ "aria-live": "polite",
190
+ role: "region",
191
+ style: getGroupPlacementStyle(service, placement),
192
+ onMouseEnter() {
193
+ if (refs.get("ignoreMouseTimer").isActive()) return;
194
+ send({
195
+ type: "REGION.POINTER_ENTER",
196
+ placement
197
+ });
198
+ },
199
+ onMouseMove() {
200
+ if (refs.get("ignoreMouseTimer").isActive()) return;
201
+ send({
202
+ type: "REGION.POINTER_ENTER",
203
+ placement
204
+ });
205
+ },
206
+ onMouseLeave() {
207
+ if (refs.get("ignoreMouseTimer").isActive()) return;
208
+ send({
209
+ type: "REGION.POINTER_LEAVE",
210
+ placement
211
+ });
212
+ },
213
+ onFocus(event) {
214
+ send({
215
+ type: "REGION.FOCUS",
216
+ target: event.relatedTarget
217
+ });
218
+ },
219
+ onBlur(event) {
220
+ if (refs.get("isFocusWithin") && !require_dom_query.contains(event.currentTarget, event.relatedTarget)) queueMicrotask(() => send({ type: "REGION.BLUR" }));
221
+ }
222
+ });
223
+ },
224
+ subscribe(fn) {
225
+ return prop("store").subscribe(() => fn(context.get("toasts")));
226
+ }
227
+ };
228
+ }
229
+
230
+ //#endregion
231
+ //#region src/machines/toast/toast-group.machine.ts
232
+ const { guards, createMachine: createMachine$1 } = require_core.setup();
233
+ const { and } = guards;
234
+ const groupMachine = createMachine$1({
235
+ props({ props }) {
236
+ return {
237
+ dir: "ltr",
238
+ id: require_utils.uuid(),
239
+ ...props,
240
+ store: props.store
241
+ };
242
+ },
243
+ initialState({ prop }) {
244
+ return prop("store").attrs.overlap ? "overlap" : "stack";
245
+ },
246
+ refs() {
247
+ return {
248
+ lastFocusedEl: null,
249
+ isFocusWithin: false,
250
+ isPointerWithin: false,
251
+ ignoreMouseTimer: require_dom_query.AnimationFrame.create(),
252
+ dismissableCleanup: void 0
253
+ };
254
+ },
255
+ context({ bindable }) {
256
+ return {
257
+ toasts: bindable(() => ({
258
+ defaultValue: [],
259
+ sync: true,
260
+ hash: (toasts) => toasts.map((t) => t.id).join(",")
261
+ })),
262
+ heights: bindable(() => ({
263
+ defaultValue: [],
264
+ sync: true
265
+ }))
266
+ };
267
+ },
268
+ computed: {
269
+ count: ({ context }) => context.get("toasts").length,
270
+ overlap: ({ prop }) => prop("store").attrs.overlap,
271
+ placement: ({ prop }) => prop("store").attrs.placement
272
+ },
273
+ effects: [
274
+ "subscribeToStore",
275
+ "trackDocumentVisibility",
276
+ "trackHotKeyPress"
277
+ ],
278
+ watch({ track, context, action }) {
279
+ track([() => context.hash("toasts")], () => {
280
+ queueMicrotask(() => {
281
+ action(["collapsedIfEmpty", "setDismissableBranch"]);
282
+ });
283
+ });
284
+ },
285
+ exit: [
286
+ "clearDismissableBranch",
287
+ "clearLastFocusedEl",
288
+ "clearMouseEventTimer"
289
+ ],
290
+ on: {
291
+ "DOC.HOTKEY": { actions: ["focusRegionEl"] },
292
+ "REGION.BLUR": [
293
+ {
294
+ guard: and("isOverlapping", "isPointerOut"),
295
+ target: "overlap",
296
+ actions: [
297
+ "collapseToasts",
298
+ "resumeToasts",
299
+ "restoreFocusIfPointerOut"
300
+ ]
301
+ },
302
+ {
303
+ guard: "isPointerOut",
304
+ target: "stack",
305
+ actions: ["resumeToasts", "restoreFocusIfPointerOut"]
306
+ },
307
+ { actions: ["clearFocusWithin"] }
308
+ ],
309
+ "TOAST.REMOVE": { actions: [
310
+ "removeToast",
311
+ "removeHeight",
312
+ "ignoreMouseEventsTemporarily"
313
+ ] },
314
+ "TOAST.PAUSE": { actions: ["pauseToasts"] }
315
+ },
316
+ states: {
317
+ stack: { on: {
318
+ "REGION.POINTER_LEAVE": [{
319
+ guard: "isOverlapping",
320
+ target: "overlap",
321
+ actions: [
322
+ "clearPointerWithin",
323
+ "resumeToasts",
324
+ "collapseToasts"
325
+ ]
326
+ }, { actions: ["clearPointerWithin", "resumeToasts"] }],
327
+ "REGION.OVERLAP": {
328
+ target: "overlap",
329
+ actions: ["collapseToasts"]
330
+ },
331
+ "REGION.FOCUS": { actions: ["setLastFocusedEl", "pauseToasts"] },
332
+ "REGION.POINTER_ENTER": { actions: ["setPointerWithin", "pauseToasts"] }
333
+ } },
334
+ overlap: { on: {
335
+ "REGION.STACK": {
336
+ target: "stack",
337
+ actions: ["expandToasts"]
338
+ },
339
+ "REGION.POINTER_ENTER": {
340
+ target: "stack",
341
+ actions: [
342
+ "setPointerWithin",
343
+ "pauseToasts",
344
+ "expandToasts"
345
+ ]
346
+ },
347
+ "REGION.FOCUS": {
348
+ target: "stack",
349
+ actions: [
350
+ "setLastFocusedEl",
351
+ "pauseToasts",
352
+ "expandToasts"
353
+ ]
354
+ }
355
+ } }
356
+ },
357
+ implementations: {
358
+ guards: {
359
+ isOverlapping: ({ computed }) => computed("overlap"),
360
+ isPointerOut: ({ refs }) => !refs.get("isPointerWithin")
361
+ },
362
+ effects: {
363
+ subscribeToStore({ context, prop }) {
364
+ return prop("store").subscribe((toast) => {
365
+ if (toast.dismiss) {
366
+ context.set("toasts", (prev) => prev.filter((t) => t.id !== toast.id));
367
+ return;
368
+ }
369
+ context.set("toasts", (prev) => {
370
+ const index = prev.findIndex((t) => t.id === toast.id);
371
+ if (index !== -1) return [
372
+ ...prev.slice(0, index),
373
+ {
374
+ ...prev[index],
375
+ ...toast
376
+ },
377
+ ...prev.slice(index + 1)
378
+ ];
379
+ return [toast, ...prev];
380
+ });
381
+ });
382
+ },
383
+ trackHotKeyPress({ prop, send }) {
384
+ const handleKeyDown = (event) => {
385
+ const { hotkey } = prop("store").attrs;
386
+ if (!hotkey.every((key) => event[key] || event.code === key)) return;
387
+ send({ type: "DOC.HOTKEY" });
388
+ };
389
+ return require_dom_query.addDomEvent(document, "keydown", handleKeyDown, { capture: true });
390
+ },
391
+ trackDocumentVisibility({ prop, send, scope }) {
392
+ const { pauseOnPageIdle } = prop("store").attrs;
393
+ if (!pauseOnPageIdle) return;
394
+ const doc = scope.getDoc();
395
+ return require_dom_query.addDomEvent(doc, "visibilitychange", () => {
396
+ send({ type: doc.visibilityState === "hidden" ? "PAUSE_ALL" : "RESUME_ALL" });
397
+ });
398
+ }
399
+ },
400
+ actions: {
401
+ setDismissableBranch({ refs, context, computed, scope }) {
402
+ const toasts = context.get("toasts");
403
+ const placement = computed("placement");
404
+ const hasToasts = toasts.length > 0;
405
+ if (!hasToasts) {
406
+ refs.get("dismissableCleanup")?.();
407
+ return;
408
+ }
409
+ if (hasToasts && refs.get("dismissableCleanup")) return;
410
+ const groupEl = () => getRegionEl(scope, placement);
411
+ const cleanup = require_dismissable.trackDismissableBranch(groupEl, { defer: true });
412
+ refs.set("dismissableCleanup", cleanup);
413
+ },
414
+ clearDismissableBranch({ refs }) {
415
+ refs.get("dismissableCleanup")?.();
416
+ },
417
+ focusRegionEl({ scope, computed }) {
418
+ queueMicrotask(() => {
419
+ getRegionEl(scope, computed("placement"))?.focus();
420
+ });
421
+ },
422
+ pauseToasts({ prop }) {
423
+ prop("store").pause();
424
+ },
425
+ resumeToasts({ prop }) {
426
+ prop("store").resume();
427
+ },
428
+ expandToasts({ prop }) {
429
+ prop("store").expand();
430
+ },
431
+ collapseToasts({ prop }) {
432
+ prop("store").collapse();
433
+ },
434
+ removeToast({ prop, event }) {
435
+ prop("store").remove(event.id);
436
+ },
437
+ removeHeight({ event, context }) {
438
+ if (event?.id == null) return;
439
+ queueMicrotask(() => {
440
+ context.set("heights", (heights) => heights.filter((height) => height.id !== event.id));
441
+ });
442
+ },
443
+ collapsedIfEmpty({ send, computed }) {
444
+ if (!computed("overlap") || computed("count") > 1) return;
445
+ send({ type: "REGION.OVERLAP" });
446
+ },
447
+ setLastFocusedEl({ refs, event }) {
448
+ if (refs.get("isFocusWithin") || !event.target) return;
449
+ refs.set("isFocusWithin", true);
450
+ refs.set("lastFocusedEl", event.target);
451
+ },
452
+ restoreFocusIfPointerOut({ refs }) {
453
+ if (!refs.get("lastFocusedEl") || refs.get("isPointerWithin")) return;
454
+ refs.get("lastFocusedEl")?.focus({ preventScroll: true });
455
+ refs.set("lastFocusedEl", null);
456
+ refs.set("isFocusWithin", false);
457
+ },
458
+ setPointerWithin({ refs }) {
459
+ refs.set("isPointerWithin", true);
460
+ },
461
+ clearPointerWithin({ refs }) {
462
+ refs.set("isPointerWithin", false);
463
+ if (refs.get("lastFocusedEl") && !refs.get("isFocusWithin")) {
464
+ refs.get("lastFocusedEl")?.focus({ preventScroll: true });
465
+ refs.set("lastFocusedEl", null);
466
+ }
467
+ },
468
+ clearFocusWithin({ refs }) {
469
+ refs.set("isFocusWithin", false);
470
+ },
471
+ clearLastFocusedEl({ refs }) {
472
+ if (!refs.get("lastFocusedEl")) return;
473
+ refs.get("lastFocusedEl")?.focus({ preventScroll: true });
474
+ refs.set("lastFocusedEl", null);
475
+ refs.set("isFocusWithin", false);
476
+ },
477
+ ignoreMouseEventsTemporarily({ refs }) {
478
+ refs.get("ignoreMouseTimer").request();
479
+ },
480
+ clearMouseEventTimer({ refs }) {
481
+ refs.get("ignoreMouseTimer").cancel();
482
+ }
483
+ }
484
+ }
485
+ });
486
+
487
+ //#endregion
488
+ //#region src/machines/toast/toast.connect.ts
489
+ function connect(service, normalize) {
490
+ const { state, send, prop, scope, context, computed } = service;
491
+ const visible = state.hasTag("visible");
492
+ const paused = state.hasTag("paused");
493
+ const mounted = context.get("mounted");
494
+ const frontmost = computed("frontmost");
495
+ const placement = prop("parent").computed("placement");
496
+ const type = prop("type");
497
+ const stacked = prop("stacked");
498
+ const title = prop("title");
499
+ const description = prop("description");
500
+ const action = prop("action");
501
+ const [side, align = "center"] = placement.split("-");
502
+ return {
503
+ type,
504
+ title,
505
+ description,
506
+ placement,
507
+ visible,
508
+ paused,
509
+ closable: !!prop("closable"),
510
+ pause() {
511
+ send({ type: "PAUSE" });
512
+ },
513
+ resume() {
514
+ send({ type: "RESUME" });
515
+ },
516
+ dismiss() {
517
+ send({
518
+ type: "DISMISS",
519
+ src: "programmatic"
520
+ });
521
+ },
522
+ getRootProps() {
523
+ return normalize.element({
524
+ ...parts.root.attrs,
525
+ dir: prop("dir"),
526
+ id: getRootId(scope),
527
+ "data-state": visible ? "open" : "closed",
528
+ "data-type": type,
529
+ "data-placement": placement,
530
+ "data-align": align,
531
+ "data-side": side,
532
+ "data-mounted": require_dom_query.dataAttr(mounted),
533
+ "data-paused": require_dom_query.dataAttr(paused),
534
+ "data-first": require_dom_query.dataAttr(frontmost),
535
+ "data-sibling": require_dom_query.dataAttr(!frontmost),
536
+ "data-stack": require_dom_query.dataAttr(stacked),
537
+ "data-overlap": require_dom_query.dataAttr(!stacked),
538
+ role: "status",
539
+ "aria-atomic": "true",
540
+ "aria-describedby": description ? getDescriptionId(scope) : void 0,
541
+ "aria-labelledby": title ? getTitleId(scope) : void 0,
542
+ tabIndex: 0,
543
+ style: getPlacementStyle(service, visible),
544
+ onKeyDown(event) {
545
+ if (event.defaultPrevented) return;
546
+ if (event.key == "Escape") {
547
+ send({
548
+ type: "DISMISS",
549
+ src: "keyboard"
550
+ });
551
+ event.preventDefault();
552
+ }
553
+ }
554
+ });
555
+ },
556
+ getGhostBeforeProps() {
557
+ return normalize.element({
558
+ "data-ghost": "before",
559
+ style: getGhostBeforeStyle(service, visible)
560
+ });
561
+ },
562
+ getGhostAfterProps() {
563
+ return normalize.element({
564
+ "data-ghost": "after",
565
+ style: getGhostAfterStyle()
566
+ });
567
+ },
568
+ getTitleProps() {
569
+ return normalize.element({
570
+ ...parts.title.attrs,
571
+ id: getTitleId(scope)
572
+ });
573
+ },
574
+ getDescriptionProps() {
575
+ return normalize.element({
576
+ ...parts.description.attrs,
577
+ id: getDescriptionId(scope)
578
+ });
579
+ },
580
+ getActionTriggerProps() {
581
+ return normalize.button({
582
+ ...parts.actionTrigger.attrs,
583
+ type: "button",
584
+ onClick(event) {
585
+ if (event.defaultPrevented) return;
586
+ action?.onClick?.();
587
+ send({
588
+ type: "DISMISS",
589
+ src: "user"
590
+ });
591
+ }
592
+ });
593
+ },
594
+ getCloseTriggerProps() {
595
+ return normalize.button({
596
+ id: getCloseTriggerId(scope),
597
+ ...parts.closeTrigger.attrs,
598
+ type: "button",
599
+ "aria-label": "Dismiss notification",
600
+ onClick(event) {
601
+ if (event.defaultPrevented) return;
602
+ send({
603
+ type: "DISMISS",
604
+ src: "user"
605
+ });
606
+ }
607
+ });
608
+ }
609
+ };
610
+ }
611
+
612
+ //#endregion
613
+ //#region src/machines/toast/toast.machine.ts
614
+ const { not } = require_core.createGuards();
615
+ const machine = require_core.createMachine({
616
+ props({ props }) {
617
+ require_utils.ensureProps(props, [
618
+ "id",
619
+ "type",
620
+ "parent",
621
+ "removeDelay"
622
+ ], "toast");
623
+ return {
624
+ closable: true,
625
+ ...props,
626
+ duration: getToastDuration(props.duration, props.type)
627
+ };
628
+ },
629
+ initialState({ prop }) {
630
+ return prop("type") === "loading" || prop("duration") === Infinity ? "visible:persist" : "visible";
631
+ },
632
+ context({ prop, bindable }) {
633
+ return {
634
+ remainingTime: bindable(() => ({ defaultValue: getToastDuration(prop("duration"), prop("type")) })),
635
+ createdAt: bindable(() => ({ defaultValue: Date.now() })),
636
+ mounted: bindable(() => ({ defaultValue: false })),
637
+ initialHeight: bindable(() => ({ defaultValue: 0 }))
638
+ };
639
+ },
640
+ refs() {
641
+ return {
642
+ closeTimerStartTime: Date.now(),
643
+ lastCloseStartTimerStartTime: 0
644
+ };
645
+ },
646
+ computed: {
647
+ zIndex: ({ prop }) => {
648
+ const toasts = prop("parent").context.get("toasts");
649
+ const index = toasts.findIndex((toast) => toast.id === prop("id"));
650
+ return toasts.length - index;
651
+ },
652
+ height: ({ prop }) => {
653
+ return prop("parent").context.get("heights").find((height) => height.id === prop("id"))?.height ?? 0;
654
+ },
655
+ heightIndex: ({ prop }) => {
656
+ return prop("parent").context.get("heights").findIndex((height) => height.id === prop("id"));
657
+ },
658
+ frontmost: ({ prop }) => prop("index") === 0,
659
+ heightBefore: ({ prop }) => {
660
+ const heights = prop("parent").context.get("heights");
661
+ const heightIndex = heights.findIndex((height) => height.id === prop("id"));
662
+ return heights.reduce((prev, curr, reducerIndex) => {
663
+ if (reducerIndex >= heightIndex) return prev;
664
+ return prev + curr.height;
665
+ }, 0);
666
+ },
667
+ shouldPersist: ({ prop }) => prop("type") === "loading" || prop("duration") === Infinity
668
+ },
669
+ watch({ track, prop, send }) {
670
+ track([() => prop("message")], () => {
671
+ const message = prop("message");
672
+ if (message) send({
673
+ type: message,
674
+ src: "programmatic"
675
+ });
676
+ });
677
+ track([() => prop("type"), () => prop("duration")], () => {
678
+ send({ type: "UPDATE" });
679
+ });
680
+ },
681
+ on: {
682
+ UPDATE: [{
683
+ guard: "shouldPersist",
684
+ target: "visible:persist",
685
+ actions: ["resetCloseTimer"]
686
+ }, {
687
+ target: "visible:updating",
688
+ actions: ["resetCloseTimer"]
689
+ }],
690
+ MEASURE: { actions: ["measureHeight"] }
691
+ },
692
+ entry: [
693
+ "setMounted",
694
+ "measureHeight",
695
+ "invokeOnVisible"
696
+ ],
697
+ effects: ["trackHeight"],
698
+ states: {
699
+ "visible:updating": {
700
+ tags: ["visible", "updating"],
701
+ effects: ["waitForNextTick"],
702
+ on: { SHOW: { target: "visible" } }
703
+ },
704
+ "visible:persist": {
705
+ tags: ["visible", "paused"],
706
+ on: {
707
+ RESUME: {
708
+ guard: not("isLoadingType"),
709
+ target: "visible",
710
+ actions: ["setCloseTimer"]
711
+ },
712
+ DISMISS: { target: "dismissing" }
713
+ }
714
+ },
715
+ visible: {
716
+ tags: ["visible"],
717
+ effects: ["waitForDuration"],
718
+ on: {
719
+ DISMISS: { target: "dismissing" },
720
+ PAUSE: {
721
+ target: "visible:persist",
722
+ actions: ["syncRemainingTime"]
723
+ }
724
+ }
725
+ },
726
+ dismissing: {
727
+ entry: ["invokeOnDismiss"],
728
+ effects: ["waitForRemoveDelay"],
729
+ on: { REMOVE: {
730
+ target: "unmounted",
731
+ actions: ["notifyParentToRemove"]
732
+ } }
733
+ },
734
+ unmounted: { entry: ["invokeOnUnmount"] }
735
+ },
736
+ implementations: {
737
+ effects: {
738
+ waitForRemoveDelay({ prop, send }) {
739
+ return require_utils.setRafTimeout(() => {
740
+ send({
741
+ type: "REMOVE",
742
+ src: "timer"
743
+ });
744
+ }, prop("removeDelay"));
745
+ },
746
+ waitForDuration({ send, context, computed }) {
747
+ if (computed("shouldPersist")) return;
748
+ return require_utils.setRafTimeout(() => {
749
+ send({
750
+ type: "DISMISS",
751
+ src: "timer"
752
+ });
753
+ }, context.get("remainingTime"));
754
+ },
755
+ waitForNextTick({ send }) {
756
+ return require_utils.setRafTimeout(() => {
757
+ send({
758
+ type: "SHOW",
759
+ src: "timer"
760
+ });
761
+ }, 0);
762
+ },
763
+ trackHeight({ scope, prop }) {
764
+ let cleanup;
765
+ require_dom_query.raf(() => {
766
+ const rootEl = getRootEl(scope);
767
+ if (!rootEl) return;
768
+ const syncHeight = () => {
769
+ const originalHeight = rootEl.style.height;
770
+ rootEl.style.height = "auto";
771
+ const height = rootEl.getBoundingClientRect().height;
772
+ rootEl.style.height = originalHeight;
773
+ const item = {
774
+ id: prop("id"),
775
+ height
776
+ };
777
+ setHeight(prop("parent"), item);
778
+ };
779
+ const observer = new (scope.getWin()).MutationObserver(syncHeight);
780
+ observer.observe(rootEl, {
781
+ childList: true,
782
+ subtree: true,
783
+ characterData: true
784
+ });
785
+ cleanup = () => observer.disconnect();
786
+ });
787
+ return () => cleanup?.();
788
+ }
789
+ },
790
+ guards: {
791
+ isLoadingType: ({ prop }) => prop("type") === "loading",
792
+ shouldPersist: ({ computed }) => computed("shouldPersist")
793
+ },
794
+ actions: {
795
+ setMounted({ context }) {
796
+ require_dom_query.raf(() => {
797
+ context.set("mounted", true);
798
+ });
799
+ },
800
+ measureHeight({ scope, prop, context }) {
801
+ queueMicrotask(() => {
802
+ const rootEl = getRootEl(scope);
803
+ if (!rootEl) return;
804
+ const originalHeight = rootEl.style.height;
805
+ rootEl.style.height = "auto";
806
+ const height = rootEl.getBoundingClientRect().height;
807
+ rootEl.style.height = originalHeight;
808
+ context.set("initialHeight", height);
809
+ const item = {
810
+ id: prop("id"),
811
+ height
812
+ };
813
+ setHeight(prop("parent"), item);
814
+ });
815
+ },
816
+ setCloseTimer({ refs }) {
817
+ refs.set("closeTimerStartTime", Date.now());
818
+ },
819
+ resetCloseTimer({ context, refs, prop }) {
820
+ refs.set("closeTimerStartTime", Date.now());
821
+ context.set("remainingTime", getToastDuration(prop("duration"), prop("type")));
822
+ },
823
+ syncRemainingTime({ context, refs }) {
824
+ context.set("remainingTime", (prev) => {
825
+ const closeTimerStartTime = refs.get("closeTimerStartTime");
826
+ const elapsedTime = Date.now() - closeTimerStartTime;
827
+ refs.set("lastCloseStartTimerStartTime", Date.now());
828
+ return prev - elapsedTime;
829
+ });
830
+ },
831
+ notifyParentToRemove({ prop }) {
832
+ prop("parent").send({
833
+ type: "TOAST.REMOVE",
834
+ id: prop("id")
835
+ });
836
+ },
837
+ invokeOnDismiss({ prop, event }) {
838
+ prop("onStatusChange")?.({
839
+ status: "dismissing",
840
+ src: event.src
841
+ });
842
+ },
843
+ invokeOnUnmount({ prop }) {
844
+ prop("onStatusChange")?.({ status: "unmounted" });
845
+ },
846
+ invokeOnVisible({ prop }) {
847
+ prop("onStatusChange")?.({ status: "visible" });
848
+ }
849
+ }
850
+ }
851
+ });
852
+ function setHeight(parent, item) {
853
+ const { id, height } = item;
854
+ parent.context.set("heights", (prev) => {
855
+ if (!prev.find((i) => i.id === id)) return [{
856
+ id,
857
+ height
858
+ }, ...prev];
859
+ else return prev.map((i) => i.id === id ? {
860
+ ...i,
861
+ height
862
+ } : i);
863
+ });
864
+ }
865
+
866
+ //#endregion
867
+ //#region src/machines/toast/toast.store.ts
868
+ const withDefaults = (options, defaults) => {
869
+ return {
870
+ ...defaults,
871
+ ...require_utils.compact(options)
872
+ };
873
+ };
874
+ function createToastStore(props = {}) {
875
+ const attrs = withDefaults(props, {
876
+ placement: "bottom",
877
+ overlap: false,
878
+ max: 24,
879
+ gap: 16,
880
+ offsets: "1rem",
881
+ hotkey: ["altKey", "KeyT"],
882
+ removeDelay: 200,
883
+ pauseOnPageIdle: true
884
+ });
885
+ let subscribers = [];
886
+ let toasts = [];
887
+ let dismissedToasts = /* @__PURE__ */ new Set();
888
+ let toastQueue = [];
889
+ const subscribe = (subscriber) => {
890
+ subscribers.push(subscriber);
891
+ return () => {
892
+ const index = subscribers.indexOf(subscriber);
893
+ subscribers.splice(index, 1);
894
+ };
895
+ };
896
+ const publish = (data) => {
897
+ subscribers.forEach((subscriber) => subscriber(data));
898
+ return data;
899
+ };
900
+ const addToast = (data) => {
901
+ if (toasts.length >= attrs.max) {
902
+ toastQueue.push(data);
903
+ return;
904
+ }
905
+ publish(data);
906
+ toasts.unshift(data);
907
+ };
908
+ const processQueue = () => {
909
+ while (toastQueue.length > 0 && toasts.length < attrs.max) {
910
+ const nextToast = toastQueue.shift();
911
+ if (nextToast) {
912
+ publish(nextToast);
913
+ toasts.unshift(nextToast);
914
+ }
915
+ }
916
+ };
917
+ const create = (data) => {
918
+ const id = data.id ?? `toast:${require_utils.uuid()}`;
919
+ const exists = toasts.find((toast) => toast.id === id);
920
+ if (dismissedToasts.has(id)) dismissedToasts.delete(id);
921
+ if (exists) toasts = toasts.map((toast) => {
922
+ if (toast.id === id) return publish({
923
+ ...toast,
924
+ ...data,
925
+ id
926
+ });
927
+ return toast;
928
+ });
929
+ else addToast({
930
+ id,
931
+ duration: attrs.duration,
932
+ removeDelay: attrs.removeDelay,
933
+ type: "info",
934
+ ...data,
935
+ stacked: !attrs.overlap,
936
+ gap: attrs.gap
937
+ });
938
+ return id;
939
+ };
940
+ const remove = (id) => {
941
+ dismissedToasts.add(id);
942
+ if (!id) {
943
+ toasts.forEach((toast) => {
944
+ subscribers.forEach((subscriber) => subscriber({
945
+ id: toast.id,
946
+ dismiss: true
947
+ }));
948
+ });
949
+ toasts = [];
950
+ toastQueue = [];
951
+ } else {
952
+ subscribers.forEach((subscriber) => subscriber({
953
+ id,
954
+ dismiss: true
955
+ }));
956
+ toasts = toasts.filter((toast) => toast.id !== id);
957
+ processQueue();
958
+ }
959
+ return id;
960
+ };
961
+ const error = (data) => {
962
+ return create({
963
+ ...data,
964
+ type: "error"
965
+ });
966
+ };
967
+ const success = (data) => {
968
+ return create({
969
+ ...data,
970
+ type: "success"
971
+ });
972
+ };
973
+ const info = (data) => {
974
+ return create({
975
+ ...data,
976
+ type: "info"
977
+ });
978
+ };
979
+ const warning = (data) => {
980
+ return create({
981
+ ...data,
982
+ type: "warning"
983
+ });
984
+ };
985
+ const loading = (data) => {
986
+ return create({
987
+ ...data,
988
+ type: "loading"
989
+ });
990
+ };
991
+ const getVisibleToasts = () => {
992
+ return toasts.filter((toast) => !dismissedToasts.has(toast.id));
993
+ };
994
+ const getCount = () => {
995
+ return toasts.length;
996
+ };
997
+ const promise = (promise$1, options, shared = {}) => {
998
+ if (!options || !options.loading) {
999
+ require_utils.warn("[sprawlify-js > toast] toaster.promise() requires at least a 'loading' option to be specified");
1000
+ return;
1001
+ }
1002
+ const id = create({
1003
+ ...shared,
1004
+ ...options.loading,
1005
+ promise: promise$1,
1006
+ type: "loading"
1007
+ });
1008
+ let removable = true;
1009
+ let result;
1010
+ const prom = require_utils.runIfFn(promise$1).then(async (response) => {
1011
+ result = ["resolve", response];
1012
+ if (isHttpResponse(response) && !response.ok) {
1013
+ removable = false;
1014
+ const errorOptions = require_utils.runIfFn(options.error, `HTTP Error! status: ${response.status}`);
1015
+ create({
1016
+ ...shared,
1017
+ ...errorOptions,
1018
+ id,
1019
+ type: "error"
1020
+ });
1021
+ } else if (options.success !== void 0) {
1022
+ removable = false;
1023
+ const successOptions = require_utils.runIfFn(options.success, response);
1024
+ create({
1025
+ ...shared,
1026
+ ...successOptions,
1027
+ id,
1028
+ type: "success"
1029
+ });
1030
+ }
1031
+ }).catch(async (error$1) => {
1032
+ result = ["reject", error$1];
1033
+ if (options.error !== void 0) {
1034
+ removable = false;
1035
+ const errorOptions = require_utils.runIfFn(options.error, error$1);
1036
+ create({
1037
+ ...shared,
1038
+ ...errorOptions,
1039
+ id,
1040
+ type: "error"
1041
+ });
1042
+ }
1043
+ }).finally(() => {
1044
+ if (removable) remove(id);
1045
+ options.finally?.();
1046
+ });
1047
+ const unwrap = () => new Promise((resolve, reject) => prom.then(() => result[0] === "reject" ? reject(result[1]) : resolve(result[1])).catch(reject));
1048
+ return {
1049
+ id,
1050
+ unwrap
1051
+ };
1052
+ };
1053
+ const update = (id, data) => {
1054
+ return create({
1055
+ id,
1056
+ ...data
1057
+ });
1058
+ };
1059
+ const pause = (id) => {
1060
+ if (id != null) toasts = toasts.map((toast) => {
1061
+ if (toast.id === id) return publish({
1062
+ ...toast,
1063
+ message: "PAUSE"
1064
+ });
1065
+ return toast;
1066
+ });
1067
+ else toasts = toasts.map((toast) => publish({
1068
+ ...toast,
1069
+ message: "PAUSE"
1070
+ }));
1071
+ };
1072
+ const resume = (id) => {
1073
+ if (id != null) toasts = toasts.map((toast) => {
1074
+ if (toast.id === id) return publish({
1075
+ ...toast,
1076
+ message: "RESUME"
1077
+ });
1078
+ return toast;
1079
+ });
1080
+ else toasts = toasts.map((toast) => publish({
1081
+ ...toast,
1082
+ message: "RESUME"
1083
+ }));
1084
+ };
1085
+ const dismiss = (id) => {
1086
+ if (id != null) toasts = toasts.map((toast) => {
1087
+ if (toast.id === id) return publish({
1088
+ ...toast,
1089
+ message: "DISMISS"
1090
+ });
1091
+ return toast;
1092
+ });
1093
+ else toasts = toasts.map((toast) => publish({
1094
+ ...toast,
1095
+ message: "DISMISS"
1096
+ }));
1097
+ };
1098
+ const isVisible = (id) => {
1099
+ return !dismissedToasts.has(id) && !!toasts.find((toast) => toast.id === id);
1100
+ };
1101
+ const isDismissed = (id) => {
1102
+ return dismissedToasts.has(id);
1103
+ };
1104
+ const expand = () => {
1105
+ toasts = toasts.map((toast) => publish({
1106
+ ...toast,
1107
+ stacked: true
1108
+ }));
1109
+ };
1110
+ const collapse = () => {
1111
+ toasts = toasts.map((toast) => publish({
1112
+ ...toast,
1113
+ stacked: false
1114
+ }));
1115
+ };
1116
+ return {
1117
+ attrs,
1118
+ subscribe,
1119
+ create,
1120
+ update,
1121
+ remove,
1122
+ dismiss,
1123
+ error,
1124
+ success,
1125
+ info,
1126
+ warning,
1127
+ loading,
1128
+ getVisibleToasts,
1129
+ getCount,
1130
+ promise,
1131
+ pause,
1132
+ resume,
1133
+ isVisible,
1134
+ isDismissed,
1135
+ expand,
1136
+ collapse
1137
+ };
1138
+ }
1139
+ const isHttpResponse = (data) => {
1140
+ return data && typeof data === "object" && "ok" in data && typeof data.ok === "boolean" && "status" in data && typeof data.status === "number";
1141
+ };
1142
+
1143
+ //#endregion
1144
+ //#region src/machines/toast/index.ts
1145
+ const group = {
1146
+ connect: groupConnect,
1147
+ machine: groupMachine
1148
+ };
1149
+
1150
+ //#endregion
1151
+ exports.anatomy = anatomy;
1152
+ exports.connect = connect;
1153
+ exports.createStore = createToastStore;
1154
+ exports.group = group;
1155
+ exports.machine = machine;