@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,324 @@
1
+ import { t as createAnatomy } from "../../create-anatomy-BbDZbHpC.mjs";
2
+ import "../../dom-query-DFCRhyj1.mjs";
3
+ import { J as match, g as clampValue, o as setRafInterval, s as setRafTimeout, st as isObject, u as createSplitProps } from "../../utils-BZyrxWWR.mjs";
4
+ import { a as createMachine, s as memo } from "../../core-DCFNMTZF.mjs";
5
+ import { t as createProps } from "../../create-props-BnF_vl-E.mjs";
6
+
7
+ //#region src/machines/timer/timer.anatomy.ts
8
+ const anatomy = createAnatomy("timer").parts("root", "area", "control", "item", "itemValue", "itemLabel", "actionTrigger", "separator");
9
+ const parts = anatomy.build();
10
+
11
+ //#endregion
12
+ //#region src/machines/timer/timer.dom.ts
13
+ const getRootId = (ctx) => ctx.ids?.root ?? `timer:${ctx.id}:root`;
14
+ const getAreaId = (ctx) => ctx.ids?.area ?? `timer:${ctx.id}:area`;
15
+
16
+ //#endregion
17
+ //#region src/machines/timer/timer.connect.ts
18
+ const validActions = new Set([
19
+ "start",
20
+ "pause",
21
+ "resume",
22
+ "reset",
23
+ "restart"
24
+ ]);
25
+ function connect(service, normalize) {
26
+ const { state, send, computed, scope } = service;
27
+ const running = state.matches("running");
28
+ const paused = state.matches("paused");
29
+ const time = computed("time");
30
+ const formattedTime = computed("formattedTime");
31
+ return {
32
+ running,
33
+ paused,
34
+ time,
35
+ formattedTime,
36
+ progressPercent: computed("progressPercent"),
37
+ start() {
38
+ send({ type: "START" });
39
+ },
40
+ pause() {
41
+ send({ type: "PAUSE" });
42
+ },
43
+ resume() {
44
+ send({ type: "RESUME" });
45
+ },
46
+ reset() {
47
+ send({ type: "RESET" });
48
+ },
49
+ restart() {
50
+ send({ type: "RESTART" });
51
+ },
52
+ getRootProps() {
53
+ return normalize.element({
54
+ id: getRootId(scope),
55
+ ...parts.root.attrs
56
+ });
57
+ },
58
+ getAreaProps() {
59
+ return normalize.element({
60
+ role: "timer",
61
+ id: getAreaId(scope),
62
+ "aria-label": `${time.days} days ${formattedTime.hours}:${formattedTime.minutes}:${formattedTime.seconds}`,
63
+ "aria-atomic": true,
64
+ ...parts.area.attrs
65
+ });
66
+ },
67
+ getControlProps() {
68
+ return normalize.element({ ...parts.control.attrs });
69
+ },
70
+ getItemProps(props$1) {
71
+ const value = time[props$1.type];
72
+ return normalize.element({
73
+ ...parts.item.attrs,
74
+ "data-type": props$1.type,
75
+ style: { "--value": value }
76
+ });
77
+ },
78
+ getItemLabelProps(props$1) {
79
+ return normalize.element({
80
+ ...parts.itemLabel.attrs,
81
+ "data-type": props$1.type
82
+ });
83
+ },
84
+ getItemValueProps(props$1) {
85
+ return normalize.element({
86
+ ...parts.itemValue.attrs,
87
+ "data-type": props$1.type
88
+ });
89
+ },
90
+ getSeparatorProps() {
91
+ return normalize.element({
92
+ "aria-hidden": true,
93
+ ...parts.separator.attrs
94
+ });
95
+ },
96
+ getActionTriggerProps(props$1) {
97
+ if (!validActions.has(props$1.action)) throw new Error(`[sprawlify-js] Invalid action: ${props$1.action}. Must be one of: ${Array.from(validActions).join(", ")}`);
98
+ return normalize.button({
99
+ ...parts.actionTrigger.attrs,
100
+ hidden: match(props$1.action, {
101
+ start: () => running || paused,
102
+ pause: () => !running,
103
+ reset: () => !running && !paused,
104
+ resume: () => !paused,
105
+ restart: () => false
106
+ }),
107
+ type: "button",
108
+ onClick(event) {
109
+ if (event.defaultPrevented) return;
110
+ send({ type: props$1.action.toUpperCase() });
111
+ }
112
+ });
113
+ }
114
+ };
115
+ }
116
+
117
+ //#endregion
118
+ //#region src/machines/timer/timer.machine.ts
119
+ const machine = createMachine({
120
+ props({ props: props$1 }) {
121
+ validateProps(props$1);
122
+ return {
123
+ interval: 1e3,
124
+ startMs: 0,
125
+ ...props$1
126
+ };
127
+ },
128
+ initialState({ prop }) {
129
+ return prop("autoStart") ? "running" : "idle";
130
+ },
131
+ context({ prop, bindable }) {
132
+ return { currentMs: bindable(() => ({ defaultValue: prop("startMs") })) };
133
+ },
134
+ watch({ track, send, prop }) {
135
+ track([() => prop("startMs")], () => {
136
+ send({ type: "RESTART" });
137
+ });
138
+ },
139
+ on: { RESTART: {
140
+ target: "running:temp",
141
+ actions: ["resetTime"]
142
+ } },
143
+ computed: {
144
+ time: ({ context }) => msToTime(context.get("currentMs")),
145
+ formattedTime: ({ computed }) => formatTime(computed("time")),
146
+ progressPercent: memo(({ context, prop }) => [
147
+ context.get("currentMs"),
148
+ prop("targetMs"),
149
+ prop("startMs"),
150
+ prop("countdown")
151
+ ], ([currentMs, targetMs = 0, startMs, countdown]) => {
152
+ return clampValue(countdown ? toPercent(currentMs, targetMs, startMs) : toPercent(currentMs, startMs, targetMs), 0, 1);
153
+ })
154
+ },
155
+ states: {
156
+ idle: { on: {
157
+ START: { target: "running" },
158
+ RESET: { actions: ["resetTime"] }
159
+ } },
160
+ "running:temp": {
161
+ effects: ["waitForNextTick"],
162
+ on: { CONTINUE: { target: "running" } }
163
+ },
164
+ running: {
165
+ effects: ["keepTicking"],
166
+ on: {
167
+ PAUSE: { target: "paused" },
168
+ TICK: [{
169
+ target: "idle",
170
+ guard: "hasReachedTarget",
171
+ actions: ["invokeOnComplete"]
172
+ }, { actions: ["updateTime", "invokeOnTick"] }],
173
+ RESET: { actions: ["resetTime"] }
174
+ }
175
+ },
176
+ paused: { on: {
177
+ RESUME: { target: "running" },
178
+ RESET: {
179
+ target: "idle",
180
+ actions: ["resetTime"]
181
+ }
182
+ } }
183
+ },
184
+ implementations: {
185
+ effects: {
186
+ keepTicking({ prop, send }) {
187
+ return setRafInterval(({ deltaMs }) => {
188
+ send({
189
+ type: "TICK",
190
+ deltaMs
191
+ });
192
+ }, prop("interval"));
193
+ },
194
+ waitForNextTick({ send }) {
195
+ return setRafTimeout(() => {
196
+ send({ type: "CONTINUE" });
197
+ }, 0);
198
+ }
199
+ },
200
+ actions: {
201
+ updateTime({ context, prop, event }) {
202
+ const sign = prop("countdown") ? -1 : 1;
203
+ const deltaMs = roundToInterval(event.deltaMs, prop("interval"));
204
+ context.set("currentMs", (prev) => {
205
+ const newValue = prev + sign * deltaMs;
206
+ let targetMs = prop("targetMs");
207
+ if (targetMs == null && prop("countdown")) targetMs = 0;
208
+ if (prop("countdown") && targetMs != null) return Math.max(newValue, targetMs);
209
+ else if (!prop("countdown") && targetMs != null) return Math.min(newValue, targetMs);
210
+ return newValue;
211
+ });
212
+ },
213
+ resetTime({ context, prop }) {
214
+ let targetMs = prop("targetMs");
215
+ if (targetMs == null && prop("countdown")) targetMs = 0;
216
+ context.set("currentMs", prop("startMs") ?? 0);
217
+ },
218
+ invokeOnTick({ context, prop, computed }) {
219
+ prop("onTick")?.({
220
+ value: context.get("currentMs"),
221
+ time: computed("time"),
222
+ formattedTime: computed("formattedTime")
223
+ });
224
+ },
225
+ invokeOnComplete({ prop }) {
226
+ prop("onComplete")?.();
227
+ }
228
+ },
229
+ guards: { hasReachedTarget: ({ context, prop }) => {
230
+ let targetMs = prop("targetMs");
231
+ if (targetMs == null && prop("countdown")) targetMs = 0;
232
+ if (targetMs == null) return false;
233
+ const currentMs = context.get("currentMs");
234
+ return prop("countdown") ? currentMs <= targetMs : currentMs >= targetMs;
235
+ } }
236
+ }
237
+ });
238
+ function msToTime(ms) {
239
+ const time = Math.max(0, ms);
240
+ const milliseconds = time % 1e3;
241
+ const seconds = Math.floor(time / 1e3) % 60;
242
+ const minutes = Math.floor(time / (1e3 * 60)) % 60;
243
+ const hours = Math.floor(time / (1e3 * 60 * 60)) % 24;
244
+ return {
245
+ days: Math.floor(time / (1e3 * 60 * 60 * 24)),
246
+ hours,
247
+ minutes,
248
+ seconds,
249
+ milliseconds
250
+ };
251
+ }
252
+ function toPercent(value, minValue, maxValue) {
253
+ const range = maxValue - minValue;
254
+ if (range === 0) return 0;
255
+ return (value - minValue) / range;
256
+ }
257
+ function padStart(num, size = 2) {
258
+ return num.toString().padStart(size, "0");
259
+ }
260
+ function roundToInterval(value, interval) {
261
+ return Math.floor(value / interval) * interval;
262
+ }
263
+ function formatTime(time) {
264
+ const { days, hours, minutes, seconds } = time;
265
+ return {
266
+ days: padStart(days),
267
+ hours: padStart(hours),
268
+ minutes: padStart(minutes),
269
+ seconds: padStart(seconds),
270
+ milliseconds: padStart(time.milliseconds, 3)
271
+ };
272
+ }
273
+ function validateProps(props$1) {
274
+ const { startMs, targetMs, countdown, interval } = props$1;
275
+ if (interval != null && (typeof interval !== "number" || interval <= 0)) throw new Error(`[timer] Invalid interval: ${interval}. Must be a positive number.`);
276
+ if (startMs != null && (typeof startMs !== "number" || startMs < 0)) throw new Error(`[timer] Invalid startMs: ${startMs}. Must be a non-negative number.`);
277
+ if (targetMs != null && (typeof targetMs !== "number" || targetMs < 0)) throw new Error(`[timer] Invalid targetMs: ${targetMs}. Must be a non-negative number.`);
278
+ if (countdown && startMs != null && targetMs != null) {
279
+ if (startMs <= targetMs) throw new Error(`[timer] Invalid countdown configuration: startMs (${startMs}) must be greater than targetMs (${targetMs}).`);
280
+ }
281
+ if (!countdown && startMs != null && targetMs != null) {
282
+ if (startMs >= targetMs) throw new Error(`[timer] Invalid stopwatch configuration: startMs (${startMs}) must be less than targetMs (${targetMs}).`);
283
+ }
284
+ if (countdown && targetMs == null && startMs != null && startMs <= 0) throw new Error(`[timer] Invalid countdown configuration: startMs (${startMs}) must be greater than 0 when no targetMs is provided.`);
285
+ }
286
+
287
+ //#endregion
288
+ //#region src/machines/timer/timer.parse.ts
289
+ const segments = new Set([
290
+ "days",
291
+ "hours",
292
+ "minutes",
293
+ "seconds"
294
+ ]);
295
+ function isTimeSegment(date) {
296
+ return isObject(date) && Object.keys(date).some((key) => segments.has(key));
297
+ }
298
+ function parse(date) {
299
+ if (typeof date === "string") return new Date(date).getTime();
300
+ if (isTimeSegment(date)) {
301
+ const { days = 0, hours = 0, minutes = 0, seconds = 0, milliseconds = 0 } = date;
302
+ return (days * 24 * 60 * 60 + hours * 60 * 60 + minutes * 60 + seconds) * 1e3 + milliseconds;
303
+ }
304
+ throw new Error("Invalid date");
305
+ }
306
+
307
+ //#endregion
308
+ //#region src/machines/timer/timer.props.ts
309
+ const props = createProps()([
310
+ "autoStart",
311
+ "countdown",
312
+ "getRootNode",
313
+ "id",
314
+ "ids",
315
+ "interval",
316
+ "onComplete",
317
+ "onTick",
318
+ "startMs",
319
+ "targetMs"
320
+ ]);
321
+ const splitProps = createSplitProps(props);
322
+
323
+ //#endregion
324
+ export { anatomy, connect, machine, parse, props, splitProps };