@wirekyt/dom 0.0.1 → 0.0.2

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 (476) hide show
  1. package/dist/anatomy-DMuSMbOP.d.cts +18 -0
  2. package/dist/anatomy-DMuSMbOP.d.ts +18 -0
  3. package/dist/anatomy.cjs +3 -0
  4. package/dist/anatomy.d.cts +2 -0
  5. package/dist/anatomy.d.ts +2 -0
  6. package/dist/anatomy.js +2 -0
  7. package/dist/angle-3hqP0Mp5.cjs +13 -0
  8. package/dist/angle-oNt8uGHQ.js +8 -0
  9. package/dist/aria-hidden-CEXexb2I.js +127 -0
  10. package/dist/aria-hidden-Y7iJHPMr.cjs +132 -0
  11. package/dist/aria-hidden.cjs +3 -0
  12. package/dist/aria-hidden.d.cts +10 -0
  13. package/dist/aria-hidden.d.ts +10 -0
  14. package/dist/aria-hidden.js +2 -0
  15. package/dist/array-BGtygd0o.cjs +198 -0
  16. package/dist/array-C4KbHsha.js +73 -0
  17. package/dist/auto-resize-5F5iiKZb.cjs +106 -0
  18. package/dist/auto-resize-KkNfCcBt.js +95 -0
  19. package/dist/auto-resize.cjs +4 -0
  20. package/dist/auto-resize.d.cts +7 -0
  21. package/dist/auto-resize.d.ts +7 -0
  22. package/dist/auto-resize.js +2 -0
  23. package/dist/caret-CHqaP4XG.cjs +30 -0
  24. package/dist/caret-aiDJ6mAS.js +19 -0
  25. package/dist/closest-Clo6ODcK.js +117 -0
  26. package/dist/closest-IiRz1GIJ.cjs +176 -0
  27. package/dist/collection-CJU0oDtX.js +1295 -0
  28. package/dist/collection-CwzUJwBJ.cjs +1342 -0
  29. package/dist/collection.cjs +15 -0
  30. package/dist/collection.d.cts +34 -0
  31. package/dist/collection.d.ts +34 -0
  32. package/dist/collection.js +3 -0
  33. package/dist/color-CsugZjq6.d.cts +60 -0
  34. package/dist/color-CsugZjq6.d.ts +60 -0
  35. package/dist/color-utils-DzeOVYlL.cjs +662 -0
  36. package/dist/color-utils-lDDg9FEh.js +639 -0
  37. package/dist/color-utils.cjs +6 -0
  38. package/dist/color-utils.d.cts +18 -0
  39. package/dist/color-utils.d.ts +18 -0
  40. package/dist/color-utils.js +2 -0
  41. package/dist/computed-style-B1MKlCoo.js +9 -0
  42. package/dist/computed-style-DLArEFNw.cjs +14 -0
  43. package/dist/controller-B8E8ZJCI.cjs +133 -0
  44. package/dist/controller-Dv7lWHDr.js +92 -0
  45. package/dist/core-BF6G2RiC.d.cts +1 -0
  46. package/dist/core-BNMw-JId.cjs +372 -0
  47. package/dist/core-BdeZuSX6.d.ts +1 -0
  48. package/dist/core-CJ0MZr3D.js +289 -0
  49. package/dist/core.cjs +19 -0
  50. package/dist/core.d.cts +3 -0
  51. package/dist/core.d.ts +3 -0
  52. package/dist/core.js +3 -0
  53. package/dist/create-anatomy-B2q3wiaw.js +22 -0
  54. package/dist/create-anatomy-BwDn25ph.cjs +27 -0
  55. package/dist/create-props-CgtcN_Qu.js +4 -0
  56. package/dist/create-props-CjLx2oS8.cjs +9 -0
  57. package/dist/data-url-C-Uk31Q9.cjs +42 -0
  58. package/dist/data-url-DHUHj7UF.js +37 -0
  59. package/dist/data-url-Gx_SWG-k.d.cts +10 -0
  60. package/dist/data-url-Gx_SWG-k.d.ts +10 -0
  61. package/dist/date-utils-D-JJHedx.cjs +868 -0
  62. package/dist/date-utils-D5zXW-Cs.js +569 -0
  63. package/dist/date-utils.cjs +52 -0
  64. package/dist/date-utils.d.cts +7 -0
  65. package/dist/date-utils.d.ts +7 -0
  66. package/dist/date-utils.js +2 -0
  67. package/dist/dismissable-C0bixtzl.cjs +348 -0
  68. package/dist/dismissable-KM1jPtNQ.js +337 -0
  69. package/dist/dismissable-layer-BTX5EvXw.d.ts +40 -0
  70. package/dist/dismissable-layer-Ch5niVaq.d.cts +40 -0
  71. package/dist/dismissable.cjs +4 -0
  72. package/dist/dismissable.d.cts +3 -0
  73. package/dist/dismissable.d.ts +3 -0
  74. package/dist/dismissable.js +2 -0
  75. package/dist/dom-query-CQzY93XU.cjs +488 -0
  76. package/dist/dom-query-e7fh0TEH.js +243 -0
  77. package/dist/dom-query.cjs +180 -0
  78. package/dist/dom-query.d.cts +142 -0
  79. package/dist/dom-query.d.ts +142 -0
  80. package/dist/dom-query.js +43 -0
  81. package/dist/equal-C927y7MN.cjs +30 -0
  82. package/dist/equal-DtrP8DPh.js +25 -0
  83. package/dist/event-DDz-mMhM.cjs +242 -0
  84. package/dist/event-bTItRgiw.js +117 -0
  85. package/dist/file-utils-6EXCdfHx.js +116 -0
  86. package/dist/file-utils-B7OJigQq.cjs +151 -0
  87. package/dist/file-utils.cjs +92 -0
  88. package/dist/file-utils.d.cts +40 -0
  89. package/dist/file-utils.d.ts +40 -0
  90. package/dist/file-utils.js +82 -0
  91. package/dist/focus-trap-89E5I9nm.js +487 -0
  92. package/dist/focus-trap-D7jKsfHW.cjs +498 -0
  93. package/dist/focus-trap.cjs +4 -0
  94. package/dist/focus-trap.d.cts +89 -0
  95. package/dist/focus-trap.d.ts +89 -0
  96. package/dist/focus-trap.js +2 -0
  97. package/dist/focus-visible-DWdQf__4.js +176 -0
  98. package/dist/focus-visible-G4cmlWqq.cjs +217 -0
  99. package/dist/focus-visible.cjs +9 -0
  100. package/dist/focus-visible.d.cts +32 -0
  101. package/dist/focus-visible.d.ts +32 -0
  102. package/dist/focus-visible.js +2 -0
  103. package/dist/form-B1DW_w_3.js +89 -0
  104. package/dist/form-CoupKpuP.cjs +130 -0
  105. package/dist/from-window-5ZhzSURC.js +68 -0
  106. package/dist/from-window-B9DKtaoR.cjs +115 -0
  107. package/dist/functions-isw5Ovcx.d.cts +16 -0
  108. package/dist/functions-isw5Ovcx.d.ts +16 -0
  109. package/dist/highlight-word.cjs +95 -0
  110. package/dist/highlight-word.d.cts +24 -0
  111. package/dist/highlight-word.d.ts +24 -0
  112. package/dist/highlight-word.js +94 -0
  113. package/dist/hotkeys.cjs +1183 -0
  114. package/dist/hotkeys.d.cts +199 -0
  115. package/dist/hotkeys.d.ts +199 -0
  116. package/dist/hotkeys.js +1173 -0
  117. package/dist/i18n-utils-BD4VtonY.cjs +345 -0
  118. package/dist/i18n-utils-C4FQZ39m.js +280 -0
  119. package/dist/i18n-utils.cjs +216 -0
  120. package/dist/i18n-utils.d.cts +71 -0
  121. package/dist/i18n-utils.d.ts +71 -0
  122. package/dist/i18n-utils.js +204 -0
  123. package/dist/index-3tNJficI.d.cts +117 -0
  124. package/dist/index-3tNJficI.d.ts +117 -0
  125. package/dist/index-BEfvdGE2.d.cts +116 -0
  126. package/dist/index-BEfvdGE2.d.ts +116 -0
  127. package/dist/index-BF6G2RiC.d.cts +1 -0
  128. package/dist/index-BKgxIVbE.d.cts +285 -0
  129. package/dist/index-BMtpmaRD.d.cts +16 -0
  130. package/dist/index-BMtpmaRD.d.ts +16 -0
  131. package/dist/index-BWiYePx8.d.cts +216 -0
  132. package/dist/index-BXfunVyD.d.cts +1342 -0
  133. package/dist/index-BXfunVyD.d.ts +1342 -0
  134. package/dist/index-BdeZuSX6.d.ts +1 -0
  135. package/dist/index-C2865AJq.d.cts +25 -0
  136. package/dist/index-C2865AJq.d.ts +25 -0
  137. package/dist/index-CFoN0L3C.d.ts +285 -0
  138. package/dist/index-vPrqYDHu.d.ts +216 -0
  139. package/dist/index.cjs +19 -0
  140. package/dist/index.d.cts +3 -0
  141. package/dist/index.d.ts +3 -0
  142. package/dist/index.js +3 -0
  143. package/dist/initial-focus-BQxRRFPa.cjs +37 -0
  144. package/dist/initial-focus-BrN5tT2X.js +26 -0
  145. package/dist/interact-outside-BjqIunFx.js +211 -0
  146. package/dist/interact-outside-Dphjr2Zh.cjs +216 -0
  147. package/dist/interact-outside.cjs +3 -0
  148. package/dist/interact-outside.d.cts +2 -0
  149. package/dist/interact-outside.d.ts +2 -0
  150. package/dist/interact-outside.js +2 -0
  151. package/dist/json-tree-utils.cjs +1518 -0
  152. package/dist/json-tree-utils.d.cts +117 -0
  153. package/dist/json-tree-utils.d.ts +117 -0
  154. package/dist/json-tree-utils.js +1469 -0
  155. package/dist/list-collection-D_eNKrot.d.cts +60 -0
  156. package/dist/list-collection-RqYEWHb4.d.ts +60 -0
  157. package/dist/live-region-BD0OgmrH.cjs +68 -0
  158. package/dist/live-region-F8YMmbrY.js +63 -0
  159. package/dist/live-region.cjs +3 -0
  160. package/dist/live-region.d.cts +2 -0
  161. package/dist/live-region.d.ts +2 -0
  162. package/dist/live-region.js +2 -0
  163. package/dist/machines/accordion/index.cjs +328 -0
  164. package/dist/machines/accordion/index.d.cts +83 -0
  165. package/dist/machines/accordion/index.d.ts +83 -0
  166. package/dist/machines/accordion/index.js +321 -0
  167. package/dist/machines/angle-slider/index.cjs +420 -0
  168. package/dist/machines/angle-slider/index.d.cts +84 -0
  169. package/dist/machines/angle-slider/index.d.ts +84 -0
  170. package/dist/machines/angle-slider/index.js +415 -0
  171. package/dist/machines/async-list/index.cjs +310 -0
  172. package/dist/machines/async-list/index.d.cts +90 -0
  173. package/dist/machines/async-list/index.d.ts +90 -0
  174. package/dist/machines/async-list/index.js +308 -0
  175. package/dist/machines/avatar/index.cjs +165 -0
  176. package/dist/machines/avatar/index.d.cts +63 -0
  177. package/dist/machines/avatar/index.d.ts +63 -0
  178. package/dist/machines/avatar/index.js +160 -0
  179. package/dist/machines/carousel/index.cjs +929 -0
  180. package/dist/machines/carousel/index.d.cts +146 -0
  181. package/dist/machines/carousel/index.d.ts +146 -0
  182. package/dist/machines/carousel/index.js +920 -0
  183. package/dist/machines/cascade-select/index.cjs +1426 -0
  184. package/dist/machines/cascade-select/index.d.cts +167 -0
  185. package/dist/machines/cascade-select/index.d.ts +167 -0
  186. package/dist/machines/cascade-select/index.js +1419 -0
  187. package/dist/machines/checkbox/index.cjs +316 -0
  188. package/dist/machines/checkbox/index.d.cts +81 -0
  189. package/dist/machines/checkbox/index.d.ts +81 -0
  190. package/dist/machines/checkbox/index.js +311 -0
  191. package/dist/machines/clipboard/index.cjs +228 -0
  192. package/dist/machines/clipboard/index.d.cts +72 -0
  193. package/dist/machines/clipboard/index.d.ts +72 -0
  194. package/dist/machines/clipboard/index.js +221 -0
  195. package/dist/machines/collapsible/index.cjs +363 -0
  196. package/dist/machines/collapsible/index.d.cts +82 -0
  197. package/dist/machines/collapsible/index.d.ts +82 -0
  198. package/dist/machines/collapsible/index.js +358 -0
  199. package/dist/machines/color-picker/index.cjs +1534 -0
  200. package/dist/machines/color-picker/index.d.cts +207 -0
  201. package/dist/machines/color-picker/index.d.ts +207 -0
  202. package/dist/machines/color-picker/index.js +1518 -0
  203. package/dist/machines/combobox/index.cjs +1554 -0
  204. package/dist/machines/combobox/index.d.cts +219 -0
  205. package/dist/machines/combobox/index.d.ts +219 -0
  206. package/dist/machines/combobox/index.js +1542 -0
  207. package/dist/machines/date-input/index.cjs +1974 -0
  208. package/dist/machines/date-input/index.d.cts +230 -0
  209. package/dist/machines/date-input/index.d.ts +230 -0
  210. package/dist/machines/date-input/index.js +1958 -0
  211. package/dist/machines/date-picker/index.cjs +2424 -0
  212. package/dist/machines/date-picker/index.d.cts +378 -0
  213. package/dist/machines/date-picker/index.d.ts +378 -0
  214. package/dist/machines/date-picker/index.js +2408 -0
  215. package/dist/machines/dialog/index.cjs +378 -0
  216. package/dist/machines/dialog/index.d.cts +94 -0
  217. package/dist/machines/dialog/index.d.ts +94 -0
  218. package/dist/machines/dialog/index.js +373 -0
  219. package/dist/machines/drawer/index.cjs +2066 -0
  220. package/dist/machines/drawer/index.d.cts +334 -0
  221. package/dist/machines/drawer/index.d.ts +334 -0
  222. package/dist/machines/drawer/index.js +2059 -0
  223. package/dist/machines/editable/index.cjs +550 -0
  224. package/dist/machines/editable/index.d.cts +114 -0
  225. package/dist/machines/editable/index.d.ts +114 -0
  226. package/dist/machines/editable/index.js +545 -0
  227. package/dist/machines/file-upload/index.cjs +648 -0
  228. package/dist/machines/file-upload/index.d.cts +150 -0
  229. package/dist/machines/file-upload/index.d.ts +150 -0
  230. package/dist/machines/file-upload/index.js +641 -0
  231. package/dist/machines/floating-panel/index.cjs +1020 -0
  232. package/dist/machines/floating-panel/index.d.cts +149 -0
  233. package/dist/machines/floating-panel/index.d.ts +149 -0
  234. package/dist/machines/floating-panel/index.js +1012 -0
  235. package/dist/machines/hover-card/index.cjs +441 -0
  236. package/dist/machines/hover-card/index.d.cts +82 -0
  237. package/dist/machines/hover-card/index.d.ts +82 -0
  238. package/dist/machines/hover-card/index.js +436 -0
  239. package/dist/machines/image-cropper/index.cjs +2082 -0
  240. package/dist/machines/image-cropper/index.d.cts +182 -0
  241. package/dist/machines/image-cropper/index.d.ts +182 -0
  242. package/dist/machines/image-cropper/index.js +2076 -0
  243. package/dist/machines/listbox/index.cjs +873 -0
  244. package/dist/machines/listbox/index.d.cts +175 -0
  245. package/dist/machines/listbox/index.d.ts +175 -0
  246. package/dist/machines/listbox/index.js +860 -0
  247. package/dist/machines/marquee/index.cjs +387 -0
  248. package/dist/machines/marquee/index.d.cts +102 -0
  249. package/dist/machines/marquee/index.d.ts +102 -0
  250. package/dist/machines/marquee/index.js +382 -0
  251. package/dist/machines/menu/index.cjs +1562 -0
  252. package/dist/machines/menu/index.d.cts +188 -0
  253. package/dist/machines/menu/index.d.ts +188 -0
  254. package/dist/machines/menu/index.js +1549 -0
  255. package/dist/machines/navigation-menu/index.cjs +860 -0
  256. package/dist/machines/navigation-menu/index.d.cts +131 -0
  257. package/dist/machines/navigation-menu/index.d.ts +131 -0
  258. package/dist/machines/navigation-menu/index.js +855 -0
  259. package/dist/machines/number-input/index.cjs +1014 -0
  260. package/dist/machines/number-input/index.d.cts +136 -0
  261. package/dist/machines/number-input/index.d.ts +136 -0
  262. package/dist/machines/number-input/index.js +1009 -0
  263. package/dist/machines/pagination/index.cjs +413 -0
  264. package/dist/machines/pagination/index.d.cts +139 -0
  265. package/dist/machines/pagination/index.d.ts +139 -0
  266. package/dist/machines/pagination/index.js +404 -0
  267. package/dist/machines/password-input/index.cjs +224 -0
  268. package/dist/machines/password-input/index.d.cts +71 -0
  269. package/dist/machines/password-input/index.d.ts +71 -0
  270. package/dist/machines/password-input/index.js +219 -0
  271. package/dist/machines/pin-input/index.cjs +595 -0
  272. package/dist/machines/pin-input/index.d.cts +107 -0
  273. package/dist/machines/pin-input/index.d.ts +107 -0
  274. package/dist/machines/pin-input/index.js +590 -0
  275. package/dist/machines/popover/index.cjs +516 -0
  276. package/dist/machines/popover/index.d.cts +107 -0
  277. package/dist/machines/popover/index.d.ts +107 -0
  278. package/dist/machines/popover/index.js +511 -0
  279. package/dist/machines/presence/index.cjs +193 -0
  280. package/dist/machines/presence/index.d.cts +44 -0
  281. package/dist/machines/presence/index.d.ts +44 -0
  282. package/dist/machines/presence/index.js +190 -0
  283. package/dist/machines/progress/index.cjs +282 -0
  284. package/dist/machines/progress/index.d.cts +96 -0
  285. package/dist/machines/progress/index.d.ts +96 -0
  286. package/dist/machines/progress/index.js +277 -0
  287. package/dist/machines/qr-code/index.cjs +167 -0
  288. package/dist/machines/qr-code/index.d.cts +71 -0
  289. package/dist/machines/qr-code/index.d.ts +71 -0
  290. package/dist/machines/qr-code/index.js +162 -0
  291. package/dist/machines/radio-group/index.cjs +465 -0
  292. package/dist/machines/radio-group/index.d.cts +218 -0
  293. package/dist/machines/radio-group/index.d.ts +218 -0
  294. package/dist/machines/radio-group/index.js +458 -0
  295. package/dist/machines/rating-group/index.cjs +405 -0
  296. package/dist/machines/rating-group/index.d.cts +101 -0
  297. package/dist/machines/rating-group/index.d.ts +101 -0
  298. package/dist/machines/rating-group/index.js +398 -0
  299. package/dist/machines/scroll-area/index.cjs +865 -0
  300. package/dist/machines/scroll-area/index.d.cts +126 -0
  301. package/dist/machines/scroll-area/index.d.ts +126 -0
  302. package/dist/machines/scroll-area/index.js +860 -0
  303. package/dist/machines/select/index.cjs +1226 -0
  304. package/dist/machines/select/index.d.cts +190 -0
  305. package/dist/machines/select/index.d.ts +190 -0
  306. package/dist/machines/select/index.js +1214 -0
  307. package/dist/machines/signature-pad/index.cjs +337 -0
  308. package/dist/machines/signature-pad/index.d.cts +108 -0
  309. package/dist/machines/signature-pad/index.d.ts +108 -0
  310. package/dist/machines/signature-pad/index.js +330 -0
  311. package/dist/machines/slider/index.cjs +1103 -0
  312. package/dist/machines/slider/index.d.cts +154 -0
  313. package/dist/machines/slider/index.d.ts +154 -0
  314. package/dist/machines/slider/index.js +1094 -0
  315. package/dist/machines/splitter/index.cjs +1686 -0
  316. package/dist/machines/splitter/index.d.cts +282 -0
  317. package/dist/machines/splitter/index.d.ts +282 -0
  318. package/dist/machines/splitter/index.js +1675 -0
  319. package/dist/machines/steps/index.cjs +330 -0
  320. package/dist/machines/steps/index.d.cts +109 -0
  321. package/dist/machines/steps/index.d.ts +109 -0
  322. package/dist/machines/steps/index.js +325 -0
  323. package/dist/machines/switch/index.cjs +307 -0
  324. package/dist/machines/switch/index.d.cts +80 -0
  325. package/dist/machines/switch/index.d.ts +80 -0
  326. package/dist/machines/switch/index.js +302 -0
  327. package/dist/machines/tabs/index.cjs +542 -0
  328. package/dist/machines/tabs/index.d.cts +113 -0
  329. package/dist/machines/tabs/index.d.ts +113 -0
  330. package/dist/machines/tabs/index.js +533 -0
  331. package/dist/machines/tags-input/index.cjs +1151 -0
  332. package/dist/machines/tags-input/index.d.cts +182 -0
  333. package/dist/machines/tags-input/index.d.ts +182 -0
  334. package/dist/machines/tags-input/index.js +1144 -0
  335. package/dist/machines/timer/index.cjs +329 -0
  336. package/dist/machines/timer/index.d.cts +102 -0
  337. package/dist/machines/timer/index.d.ts +102 -0
  338. package/dist/machines/timer/index.js +323 -0
  339. package/dist/machines/toast/index.cjs +1185 -0
  340. package/dist/machines/toast/index.d.cts +204 -0
  341. package/dist/machines/toast/index.d.ts +204 -0
  342. package/dist/machines/toast/index.js +1180 -0
  343. package/dist/machines/toc/index.cjs +358 -0
  344. package/dist/machines/toc/index.d.cts +98 -0
  345. package/dist/machines/toc/index.d.ts +98 -0
  346. package/dist/machines/toc/index.js +351 -0
  347. package/dist/machines/toggle/index.cjs +99 -0
  348. package/dist/machines/toggle/index.d.cts +46 -0
  349. package/dist/machines/toggle/index.d.ts +46 -0
  350. package/dist/machines/toggle/index.js +94 -0
  351. package/dist/machines/toggle-group/index.cjs +329 -0
  352. package/dist/machines/toggle-group/index.d.cts +81 -0
  353. package/dist/machines/toggle-group/index.d.ts +81 -0
  354. package/dist/machines/toggle-group/index.js +322 -0
  355. package/dist/machines/tooltip/index.cjs +638 -0
  356. package/dist/machines/tooltip/index.d.cts +84 -0
  357. package/dist/machines/tooltip/index.d.ts +84 -0
  358. package/dist/machines/tooltip/index.js +633 -0
  359. package/dist/machines/tour/index.cjs +1123 -0
  360. package/dist/machines/tour/index.d.cts +207 -0
  361. package/dist/machines/tour/index.d.ts +207 -0
  362. package/dist/machines/tour/index.js +1115 -0
  363. package/dist/machines/tree-view/index.cjs +1288 -0
  364. package/dist/machines/tree-view/index.d.cts +221 -0
  365. package/dist/machines/tree-view/index.d.ts +221 -0
  366. package/dist/machines/tree-view/index.js +1279 -0
  367. package/dist/mutation-observer-_LbwtN3W.cjs +61 -0
  368. package/dist/mutation-observer-qObPUo3D.js +50 -0
  369. package/dist/navigate-CJOaL3vx.js +31 -0
  370. package/dist/navigate-uJG-006f.cjs +42 -0
  371. package/dist/overflow-BBihfMxX.cjs +67 -0
  372. package/dist/overflow-C-zO1CWA.js +44 -0
  373. package/dist/platform-BDB0wXUk.js +26 -0
  374. package/dist/platform-BZS-dkZN.cjs +109 -0
  375. package/dist/point-C9A4dk1i.js +27 -0
  376. package/dist/point-DxnCrJBy.cjs +32 -0
  377. package/dist/pointer-lock-BvfSjt_s.cjs +31 -0
  378. package/dist/pointer-lock-WezxTqu-.js +26 -0
  379. package/dist/pointer-move-CGzan38r.cjs +42 -0
  380. package/dist/pointer-move-Tijb8Ptk.js +37 -0
  381. package/dist/polygon-BvdwYRBw.js +76 -0
  382. package/dist/polygon-CTR1kEoU.cjs +93 -0
  383. package/dist/popper-DkAAS9VE.cjs +487 -0
  384. package/dist/popper-DzBZzAe4.js +464 -0
  385. package/dist/popper.cjs +6 -0
  386. package/dist/popper.d.cts +2 -0
  387. package/dist/popper.d.ts +2 -0
  388. package/dist/popper.js +2 -0
  389. package/dist/press-B7XLrLGR.js +65 -0
  390. package/dist/press-BdD5suLQ.cjs +70 -0
  391. package/dist/proxy-tab-focus-DWMXvAfO.js +54 -0
  392. package/dist/proxy-tab-focus-NthYgHdY.cjs +59 -0
  393. package/dist/raf-BSDcY4UD.cjs +85 -0
  394. package/dist/raf-DgINgykK.d.cts +15 -0
  395. package/dist/raf-DgINgykK.d.ts +15 -0
  396. package/dist/raf-Dhvm7f1e.js +62 -0
  397. package/dist/rect-utils-DiT4k3jS.cjs +548 -0
  398. package/dist/rect-utils-d_3gZVsc.js +459 -0
  399. package/dist/rect-utils.cjs +165 -0
  400. package/dist/rect-utils.d.cts +197 -0
  401. package/dist/rect-utils.d.ts +197 -0
  402. package/dist/rect-utils.js +116 -0
  403. package/dist/remove-scroll-DTVA5f4w.cjs +86 -0
  404. package/dist/remove-scroll-WEheFCiq.js +81 -0
  405. package/dist/remove-scroll.cjs +3 -0
  406. package/dist/remove-scroll.d.cts +4 -0
  407. package/dist/remove-scroll.d.ts +4 -0
  408. package/dist/remove-scroll.js +2 -0
  409. package/dist/rolldown-runtime-D6vf50IK.cjs +28 -0
  410. package/dist/scale-C5BBHVgH.js +17 -0
  411. package/dist/scale-C7iiUGhS.cjs +22 -0
  412. package/dist/scope-CysKlKe9.cjs +28 -0
  413. package/dist/scope-D1873Mzi.js +23 -0
  414. package/dist/scroll-CVJ40w2e.js +46 -0
  415. package/dist/scroll-Dyd1QLrc.cjs +63 -0
  416. package/dist/scroll-snap-Cuaqdevf.cjs +224 -0
  417. package/dist/scroll-snap-DqMiFASa.js +201 -0
  418. package/dist/scroll-snap.cjs +6 -0
  419. package/dist/scroll-snap.d.cts +14 -0
  420. package/dist/scroll-snap.d.ts +14 -0
  421. package/dist/scroll-snap.js +2 -0
  422. package/dist/selection-ClKhnWit.d.cts +49 -0
  423. package/dist/selection-DzLiSVkg.d.ts +49 -0
  424. package/dist/selection-map-962WvX2k.js +45 -0
  425. package/dist/selection-map-BwlZr1LH.cjs +68 -0
  426. package/dist/set-CFNGOW5W.js +50 -0
  427. package/dist/set-DrtWCLFb.cjs +73 -0
  428. package/dist/store-BLpJlMxz.js +257 -0
  429. package/dist/store-Btfrm2bs.cjs +47 -0
  430. package/dist/store-C5HvdLyc.js +42 -0
  431. package/dist/store-Wg8KVwNv.cjs +298 -0
  432. package/dist/store.cjs +9 -0
  433. package/dist/store.d.cts +26 -0
  434. package/dist/store.d.ts +26 -0
  435. package/dist/store.js +2 -0
  436. package/dist/stringify-state.cjs +48 -0
  437. package/dist/stringify-state.d.cts +8 -0
  438. package/dist/stringify-state.d.ts +8 -0
  439. package/dist/stringify-state.js +44 -0
  440. package/dist/tabbable-Bz1-1GAY.cjs +206 -0
  441. package/dist/tabbable-CDA1YMjZ.js +147 -0
  442. package/dist/text-selection-B3OQpQGy.cjs +75 -0
  443. package/dist/text-selection-DXvWvm6k.js +64 -0
  444. package/dist/timers-BRyPrXIX.js +82 -0
  445. package/dist/timers-Beu4SfAj.cjs +99 -0
  446. package/dist/tree-collection-3QX3EIhq.d.ts +77 -0
  447. package/dist/tree-collection-C6oDQGUJ.d.cts +77 -0
  448. package/dist/typeahead-DremEgML.d.cts +45 -0
  449. package/dist/typeahead-DremEgML.d.ts +45 -0
  450. package/dist/types-BFuHIo7S.js +10 -0
  451. package/dist/types-CczqoQLL.d.cts +57 -0
  452. package/dist/types-CczqoQLL.d.ts +57 -0
  453. package/dist/types-CjocssbC.d.cts +13 -0
  454. package/dist/types-CjocssbC.d.ts +13 -0
  455. package/dist/types-D7oF7eWh.d.cts +54 -0
  456. package/dist/types-D7oF7eWh.d.ts +54 -0
  457. package/dist/types-HCvp3Bhv.cjs +21 -0
  458. package/dist/types.cjs +14 -0
  459. package/dist/types.d.cts +6 -0
  460. package/dist/types.d.ts +6 -0
  461. package/dist/types.js +12 -0
  462. package/dist/utils-BH-oBBz2.cjs +614 -0
  463. package/dist/utils-Cht5XaHf.js +267 -0
  464. package/dist/utils.cjs +95 -0
  465. package/dist/utils.d.cts +144 -0
  466. package/dist/utils.d.ts +144 -0
  467. package/dist/utils.js +7 -0
  468. package/dist/visually-hidden-BgSCFLz_.cjs +29 -0
  469. package/dist/visually-hidden-yDJ517KZ.js +18 -0
  470. package/dist/wait-for-3n85JcCU.d.cts +15 -0
  471. package/dist/wait-for-3n85JcCU.d.ts +15 -0
  472. package/dist/wait-for-CI5Ye-Lo.js +69 -0
  473. package/dist/wait-for-Db73VpZQ.cjs +86 -0
  474. package/dist/warning-CrzBpWT1.js +19 -0
  475. package/dist/warning-HAmFXLHm.cjs +42 -0
  476. package/package.json +349 -6
@@ -0,0 +1,1534 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_create_anatomy = require("../../create-anatomy-BwDn25ph.cjs");
3
+ const require_dom_query = require("../../dom-query-CQzY93XU.cjs");
4
+ const require_event = require("../../event-DDz-mMhM.cjs");
5
+ const require_form = require("../../form-CoupKpuP.cjs");
6
+ const require_initial_focus = require("../../initial-focus-BQxRRFPa.cjs");
7
+ const require_raf = require("../../raf-BSDcY4UD.cjs");
8
+ const require_point = require("../../point-DxnCrJBy.cjs");
9
+ const require_text_selection = require("../../text-selection-B3OQpQGy.cjs");
10
+ const require_pointer_move = require("../../pointer-move-CGzan38r.cjs");
11
+ const require_visually_hidden = require("../../visually-hidden-BgSCFLz_.cjs");
12
+ const require_utils = require("../../utils-BH-oBBz2.cjs");
13
+ const require_color_utils = require("../../color-utils-DzeOVYlL.cjs");
14
+ const require_core = require("../../core-BNMw-JId.cjs");
15
+ const require_dismissable = require("../../dismissable-C0bixtzl.cjs");
16
+ const require_popper = require("../../popper-DkAAS9VE.cjs");
17
+ const require_create_props = require("../../create-props-CjLx2oS8.cjs");
18
+ //#region src/machines/color-picker/anatomy.ts
19
+ const anatomy = require_create_anatomy.createAnatomy("color-picker", [
20
+ "root",
21
+ "label",
22
+ "control",
23
+ "trigger",
24
+ "positioner",
25
+ "content",
26
+ "area",
27
+ "areaThumb",
28
+ "valueText",
29
+ "areaBackground",
30
+ "channelSlider",
31
+ "channelSliderLabel",
32
+ "channelSliderTrack",
33
+ "channelSliderThumb",
34
+ "channelSliderValueText",
35
+ "channelInput",
36
+ "transparencyGrid",
37
+ "swatchGroup",
38
+ "swatchTrigger",
39
+ "swatchIndicator",
40
+ "swatch",
41
+ "eyeDropperTrigger",
42
+ "formatTrigger",
43
+ "formatSelect"
44
+ ]);
45
+ const parts = anatomy.build();
46
+ //#endregion
47
+ //#region src/machines/color-picker/dom.ts
48
+ const getRootId = (ctx) => ctx.ids?.root ?? `color-picker:${ctx.id}`;
49
+ const getLabelId = (ctx) => ctx.ids?.label ?? `color-picker:${ctx.id}:label`;
50
+ const getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `color-picker:${ctx.id}:hidden-input`;
51
+ const getControlId = (ctx) => ctx.ids?.control ?? `color-picker:${ctx.id}:control`;
52
+ const getTriggerId = (ctx) => ctx.ids?.trigger ?? `color-picker:${ctx.id}:trigger`;
53
+ const getContentId = (ctx) => ctx.ids?.content ?? `color-picker:${ctx.id}:content`;
54
+ const getPositionerId = (ctx) => ctx.ids?.positioner ?? `color-picker:${ctx.id}:positioner`;
55
+ const getFormatSelectId = (ctx) => ctx.ids?.formatSelect ?? `color-picker:${ctx.id}:format-select`;
56
+ const getAreaId = (ctx) => ctx.ids?.area ?? `color-picker:${ctx.id}:area`;
57
+ const getAreaGradientId = (ctx) => ctx.ids?.areaGradient ?? `color-picker:${ctx.id}:area-gradient`;
58
+ const getAreaThumbId = (ctx) => ctx.ids?.areaThumb ?? `color-picker:${ctx.id}:area-thumb`;
59
+ const getChannelSliderTrackId = (ctx, channel) => ctx.ids?.channelSliderTrack?.(channel) ?? `color-picker:${ctx.id}:slider-track:${channel}`;
60
+ const getChannelSliderThumbId = (ctx, channel) => ctx.ids?.channelSliderThumb?.(channel) ?? `color-picker:${ctx.id}:slider-thumb:${channel}`;
61
+ const getContentEl = (ctx) => ctx.getById(getContentId(ctx));
62
+ const getAreaThumbEl = (ctx) => ctx.getById(getAreaThumbId(ctx));
63
+ const getChannelSliderThumbEl = (ctx, channel) => ctx.getById(getChannelSliderThumbId(ctx, channel));
64
+ const getFormatSelectEl = (ctx) => ctx.getById(getFormatSelectId(ctx));
65
+ const getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));
66
+ const getAreaEl = (ctx) => ctx.getById(getAreaId(ctx));
67
+ const getAreaValueFromPoint = (ctx, point, dir) => {
68
+ const areaEl = getAreaEl(ctx);
69
+ if (!areaEl) return;
70
+ const { getPercentValue } = require_point.getRelativePoint(point, areaEl);
71
+ return {
72
+ x: getPercentValue({
73
+ dir,
74
+ orientation: "horizontal"
75
+ }),
76
+ y: getPercentValue({ orientation: "vertical" })
77
+ };
78
+ };
79
+ const getControlEl = (ctx) => ctx.getById(getControlId(ctx));
80
+ const getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));
81
+ const getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));
82
+ const getChannelSliderTrackEl = (ctx, channel) => ctx.getById(getChannelSliderTrackId(ctx, channel));
83
+ const getChannelSliderValueFromPoint = (ctx, point, channel, dir) => {
84
+ const trackEl = getChannelSliderTrackEl(ctx, channel);
85
+ if (!trackEl) return;
86
+ const { getPercentValue } = require_point.getRelativePoint(point, trackEl);
87
+ return {
88
+ x: getPercentValue({
89
+ dir,
90
+ orientation: "horizontal"
91
+ }),
92
+ y: getPercentValue({ orientation: "vertical" })
93
+ };
94
+ };
95
+ const getChannelInputEls = (ctx) => {
96
+ return [...require_dom_query.queryAll(getContentEl(ctx), "input[data-channel]"), ...require_dom_query.queryAll(getControlEl(ctx), "input[data-channel]")];
97
+ };
98
+ //#endregion
99
+ //#region src/machines/color-picker/utils/get-channel-display-color.ts
100
+ function getChannelDisplayColor(color, channel) {
101
+ switch (channel) {
102
+ case "hue": return require_color_utils.parseColor(`hsl(${color.getChannelValue("hue")}, 100%, 50%)`);
103
+ case "lightness":
104
+ case "brightness":
105
+ case "saturation":
106
+ case "red":
107
+ case "green":
108
+ case "blue": return color.withChannelValue("alpha", 1);
109
+ case "alpha": return color;
110
+ default: throw new Error("Unknown color channel: " + channel);
111
+ }
112
+ }
113
+ //#endregion
114
+ //#region src/machines/color-picker/utils/get-channel-input-value.ts
115
+ function getChannelValue(color, channel) {
116
+ if (channel == null) return "";
117
+ if (channel === "hex") return color.toString("hex");
118
+ if (channel === "css") return color.toString("css");
119
+ if (channel in color) return color.getChannelValue(channel).toString();
120
+ const isHSL = color.getFormat() === "hsla";
121
+ switch (channel) {
122
+ case "hue": return isHSL ? color.toFormat("hsla").getChannelValue("hue").toString() : color.toFormat("hsba").getChannelValue("hue").toString();
123
+ case "saturation": return isHSL ? color.toFormat("hsla").getChannelValue("saturation").toString() : color.toFormat("hsba").getChannelValue("saturation").toString();
124
+ case "lightness": return color.toFormat("hsla").getChannelValue("lightness").toString();
125
+ case "brightness": return color.toFormat("hsba").getChannelValue("brightness").toString();
126
+ case "red":
127
+ case "green":
128
+ case "blue": return color.toFormat("rgba").getChannelValue(channel).toString();
129
+ default: return color.getChannelValue(channel).toString();
130
+ }
131
+ }
132
+ function getChannelRange(color, channel) {
133
+ switch (channel) {
134
+ case "hex":
135
+ const minColor = require_color_utils.parseColor("#000000");
136
+ const maxColor = require_color_utils.parseColor("#FFFFFF");
137
+ return {
138
+ minValue: minColor.toHexInt(),
139
+ maxValue: maxColor.toHexInt(),
140
+ pageSize: 10,
141
+ step: 1
142
+ };
143
+ case "css": return;
144
+ case "hue":
145
+ case "saturation":
146
+ case "lightness": return color.toFormat("hsla").getChannelRange(channel);
147
+ case "brightness": return color.toFormat("hsba").getChannelRange(channel);
148
+ case "red":
149
+ case "green":
150
+ case "blue": return color.toFormat("rgba").getChannelRange(channel);
151
+ default: return color.getChannelRange(channel);
152
+ }
153
+ }
154
+ //#endregion
155
+ //#region src/machines/color-picker/utils/get-slider-background.ts
156
+ function getSliderBackgroundDirection(orientation, dir) {
157
+ if (orientation === "vertical") return "top";
158
+ else if (dir === "ltr") return "right";
159
+ else return "left";
160
+ }
161
+ const getSliderBackground = (props) => {
162
+ const { channel, value, dir, orientation } = props;
163
+ const bgDirection = getSliderBackgroundDirection(orientation, dir);
164
+ const { minValue, maxValue } = value.getChannelRange(channel);
165
+ switch (channel) {
166
+ case "hue": return `linear-gradient(to ${bgDirection}, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)`;
167
+ case "lightness": return `linear-gradient(to ${bgDirection}, ${value.withChannelValue(channel, minValue).toString("css")}, ${value.withChannelValue(channel, (maxValue - minValue) / 2).toString("css")}, ${value.withChannelValue(channel, maxValue).toString("css")})`;
168
+ case "saturation":
169
+ case "brightness":
170
+ case "red":
171
+ case "green":
172
+ case "blue":
173
+ case "alpha": return `linear-gradient(to ${bgDirection}, ${value.withChannelValue(channel, minValue).toString("css")}, ${value.withChannelValue(channel, maxValue).toString("css")})`;
174
+ default: throw new Error("Unknown color channel: " + channel);
175
+ }
176
+ };
177
+ //#endregion
178
+ //#region src/machines/color-picker/connect.ts
179
+ function connect(service, normalize) {
180
+ const { context, send, prop, computed, state, scope } = service;
181
+ const value = context.get("value");
182
+ const format = context.get("format");
183
+ const areaValue = computed("areaValue");
184
+ const valueAsString = computed("valueAsString");
185
+ const disabled = computed("disabled");
186
+ const readOnly = !!prop("readOnly");
187
+ const invalid = !!prop("invalid");
188
+ const required = !!prop("required");
189
+ const interactive = computed("interactive");
190
+ const dragging = state.hasTag("dragging");
191
+ const open = state.hasTag("open");
192
+ const focused = state.hasTag("focused");
193
+ const getAreaChannels = (props) => {
194
+ const channels = areaValue.getChannels();
195
+ return {
196
+ xChannel: props.xChannel ?? channels[1],
197
+ yChannel: props.yChannel ?? channels[2]
198
+ };
199
+ };
200
+ const currentPlacement = context.get("currentPlacement");
201
+ const currentPlacementSide = currentPlacement ? require_popper.getPlacementSide(currentPlacement) : void 0;
202
+ const popperStyles = require_popper.getPlacementStyles({
203
+ ...prop("positioning"),
204
+ placement: currentPlacement
205
+ });
206
+ function getSwatchTriggerState(props) {
207
+ const color = require_color_utils.normalizeColor(props.value).toFormat(context.get("format"));
208
+ return {
209
+ value: color,
210
+ valueAsString: color.toString("hex"),
211
+ checked: color.isEqual(value),
212
+ disabled: props.disabled || !interactive
213
+ };
214
+ }
215
+ return {
216
+ dragging,
217
+ open,
218
+ valueAsString,
219
+ value,
220
+ inline: !!prop("inline"),
221
+ setOpen(nextOpen) {
222
+ if (prop("inline")) return;
223
+ if (state.hasTag("open") === nextOpen) return;
224
+ send({ type: nextOpen ? "OPEN" : "CLOSE" });
225
+ },
226
+ setValue(value) {
227
+ send({
228
+ type: "VALUE.SET",
229
+ value: require_color_utils.normalizeColor(value),
230
+ src: "set-color"
231
+ });
232
+ },
233
+ getChannelValue(channel) {
234
+ return getChannelValue(value, channel);
235
+ },
236
+ getChannelValueText(channel, locale) {
237
+ return value.formatChannelValue(channel, locale);
238
+ },
239
+ setChannelValue(channel, channelValue) {
240
+ const color = value.withChannelValue(channel, channelValue);
241
+ send({
242
+ type: "VALUE.SET",
243
+ value: color,
244
+ src: "set-channel"
245
+ });
246
+ },
247
+ format: context.get("format"),
248
+ setFormat(format) {
249
+ const formatValue = value.toFormat(format);
250
+ send({
251
+ type: "VALUE.SET",
252
+ value: formatValue,
253
+ src: "set-format"
254
+ });
255
+ },
256
+ alpha: value.getChannelValue("alpha"),
257
+ setAlpha(alphaValue) {
258
+ const color = value.withChannelValue("alpha", alphaValue);
259
+ send({
260
+ type: "VALUE.SET",
261
+ value: color,
262
+ src: "set-alpha"
263
+ });
264
+ },
265
+ getRootProps() {
266
+ return normalize.element({
267
+ ...parts.root.attrs,
268
+ dir: prop("dir"),
269
+ id: getRootId(scope),
270
+ "data-disabled": require_dom_query.dataAttr(disabled),
271
+ "data-readonly": require_dom_query.dataAttr(readOnly),
272
+ "data-invalid": require_dom_query.dataAttr(invalid),
273
+ style: { "--value": value.toString("css") }
274
+ });
275
+ },
276
+ getLabelProps() {
277
+ return normalize.element({
278
+ ...parts.label.attrs,
279
+ dir: prop("dir"),
280
+ id: getLabelId(scope),
281
+ htmlFor: getHiddenInputId(scope),
282
+ "data-disabled": require_dom_query.dataAttr(disabled),
283
+ "data-readonly": require_dom_query.dataAttr(readOnly),
284
+ "data-invalid": require_dom_query.dataAttr(invalid),
285
+ "data-required": require_dom_query.dataAttr(required),
286
+ "data-focus": require_dom_query.dataAttr(focused),
287
+ onClick(event) {
288
+ event.preventDefault();
289
+ require_dom_query.query(getControlEl(scope), "[data-channel=hex]")?.focus({ preventScroll: true });
290
+ }
291
+ });
292
+ },
293
+ getControlProps() {
294
+ return normalize.element({
295
+ ...parts.control.attrs,
296
+ id: getControlId(scope),
297
+ dir: prop("dir"),
298
+ "data-disabled": require_dom_query.dataAttr(disabled),
299
+ "data-readonly": require_dom_query.dataAttr(readOnly),
300
+ "data-invalid": require_dom_query.dataAttr(invalid),
301
+ "data-state": open ? "open" : "closed",
302
+ "data-focus": require_dom_query.dataAttr(focused)
303
+ });
304
+ },
305
+ getTriggerProps() {
306
+ return normalize.button({
307
+ ...parts.trigger.attrs,
308
+ id: getTriggerId(scope),
309
+ dir: prop("dir"),
310
+ disabled,
311
+ "aria-label": `select color. current color is ${valueAsString}`,
312
+ "aria-controls": getContentId(scope),
313
+ "aria-labelledby": getLabelId(scope),
314
+ "aria-haspopup": prop("inline") ? void 0 : "dialog",
315
+ "data-disabled": require_dom_query.dataAttr(disabled),
316
+ "data-readonly": require_dom_query.dataAttr(readOnly),
317
+ "data-invalid": require_dom_query.dataAttr(invalid),
318
+ "data-placement": currentPlacement,
319
+ "data-side": currentPlacementSide,
320
+ "aria-expanded": open,
321
+ "data-state": open ? "open" : "closed",
322
+ "data-focus": require_dom_query.dataAttr(focused),
323
+ type: "button",
324
+ onClick() {
325
+ if (!interactive) return;
326
+ send({ type: "TRIGGER.CLICK" });
327
+ },
328
+ onBlur() {
329
+ if (!interactive) return;
330
+ send({ type: "TRIGGER.BLUR" });
331
+ },
332
+ style: { position: "relative" }
333
+ });
334
+ },
335
+ getPositionerProps() {
336
+ return normalize.element({
337
+ ...parts.positioner.attrs,
338
+ id: getPositionerId(scope),
339
+ dir: prop("dir"),
340
+ style: popperStyles.floating
341
+ });
342
+ },
343
+ getContentProps() {
344
+ return normalize.element({
345
+ ...parts.content.attrs,
346
+ id: getContentId(scope),
347
+ dir: prop("dir"),
348
+ role: prop("inline") ? void 0 : "dialog",
349
+ tabIndex: -1,
350
+ "data-placement": currentPlacement,
351
+ "data-side": currentPlacementSide,
352
+ "data-state": open ? "open" : "closed",
353
+ hidden: !open
354
+ });
355
+ },
356
+ getValueTextProps() {
357
+ return normalize.element({
358
+ ...parts.valueText.attrs,
359
+ dir: prop("dir"),
360
+ "data-disabled": require_dom_query.dataAttr(disabled),
361
+ "data-focus": require_dom_query.dataAttr(focused)
362
+ });
363
+ },
364
+ getAreaProps(props = {}) {
365
+ const { xChannel, yChannel } = getAreaChannels(props);
366
+ const { areaStyles } = require_color_utils.getColorAreaGradient(areaValue, {
367
+ xChannel,
368
+ yChannel,
369
+ dir: prop("dir")
370
+ });
371
+ return normalize.element({
372
+ ...parts.area.attrs,
373
+ id: getAreaId(scope),
374
+ role: "group",
375
+ "data-invalid": require_dom_query.dataAttr(invalid),
376
+ "data-disabled": require_dom_query.dataAttr(disabled),
377
+ "data-readonly": require_dom_query.dataAttr(readOnly),
378
+ onPointerDown(event) {
379
+ if (!interactive) return;
380
+ if (!require_event.isLeftClick(event)) return;
381
+ if (require_event.isModifierKey(event)) return;
382
+ const point = require_event.getEventPoint(event);
383
+ send({
384
+ type: "AREA.POINTER_DOWN",
385
+ point,
386
+ channel: {
387
+ xChannel,
388
+ yChannel
389
+ },
390
+ id: "area"
391
+ });
392
+ event.preventDefault();
393
+ },
394
+ style: {
395
+ position: "relative",
396
+ touchAction: "none",
397
+ forcedColorAdjust: "none",
398
+ ...areaStyles
399
+ }
400
+ });
401
+ },
402
+ getAreaBackgroundProps(props = {}) {
403
+ const { xChannel, yChannel } = getAreaChannels(props);
404
+ const { areaGradientStyles } = require_color_utils.getColorAreaGradient(areaValue, {
405
+ xChannel,
406
+ yChannel,
407
+ dir: prop("dir")
408
+ });
409
+ return normalize.element({
410
+ ...parts.areaBackground.attrs,
411
+ id: getAreaGradientId(scope),
412
+ "data-invalid": require_dom_query.dataAttr(invalid),
413
+ "data-disabled": require_dom_query.dataAttr(disabled),
414
+ "data-readonly": require_dom_query.dataAttr(readOnly),
415
+ style: {
416
+ position: "relative",
417
+ touchAction: "none",
418
+ forcedColorAdjust: "none",
419
+ ...areaGradientStyles
420
+ }
421
+ });
422
+ },
423
+ getAreaThumbProps(props = {}) {
424
+ const { xChannel, yChannel } = getAreaChannels(props);
425
+ const channel = {
426
+ xChannel,
427
+ yChannel
428
+ };
429
+ const xPercent = areaValue.getChannelValuePercent(xChannel);
430
+ const yPercent = 1 - areaValue.getChannelValuePercent(yChannel);
431
+ const finalXPercent = prop("dir") === "rtl" ? 1 - xPercent : xPercent;
432
+ const xValue = areaValue.getChannelValue(xChannel);
433
+ const yValue = areaValue.getChannelValue(yChannel);
434
+ const color = areaValue.withChannelValue("alpha", 1).toString("css");
435
+ return normalize.element({
436
+ ...parts.areaThumb.attrs,
437
+ id: getAreaThumbId(scope),
438
+ dir: prop("dir"),
439
+ tabIndex: disabled ? void 0 : 0,
440
+ "data-disabled": require_dom_query.dataAttr(disabled),
441
+ "data-invalid": require_dom_query.dataAttr(invalid),
442
+ "data-readonly": require_dom_query.dataAttr(readOnly),
443
+ role: "slider",
444
+ "aria-valuemin": 0,
445
+ "aria-valuemax": 100,
446
+ "aria-valuenow": xValue,
447
+ "aria-label": `${xChannel} and ${yChannel}`,
448
+ "aria-roledescription": "2d slider",
449
+ "aria-valuetext": `${xChannel} ${xValue}, ${yChannel} ${yValue}`,
450
+ style: {
451
+ position: "absolute",
452
+ left: `${finalXPercent * 100}%`,
453
+ top: `${yPercent * 100}%`,
454
+ transform: "translate(-50%, -50%)",
455
+ touchAction: "none",
456
+ forcedColorAdjust: "none",
457
+ "--color": color,
458
+ background: color
459
+ },
460
+ onFocus() {
461
+ if (!interactive) return;
462
+ send({
463
+ type: "AREA.FOCUS",
464
+ id: "area",
465
+ channel
466
+ });
467
+ },
468
+ onKeyDown(event) {
469
+ if (event.defaultPrevented) return;
470
+ if (!interactive) return;
471
+ const step = require_event.getEventStep(event);
472
+ const exec = {
473
+ ArrowUp() {
474
+ send({
475
+ type: "AREA.ARROW_UP",
476
+ channel,
477
+ step
478
+ });
479
+ },
480
+ ArrowDown() {
481
+ send({
482
+ type: "AREA.ARROW_DOWN",
483
+ channel,
484
+ step
485
+ });
486
+ },
487
+ ArrowLeft() {
488
+ send({
489
+ type: "AREA.ARROW_LEFT",
490
+ channel,
491
+ step
492
+ });
493
+ },
494
+ ArrowRight() {
495
+ send({
496
+ type: "AREA.ARROW_RIGHT",
497
+ channel,
498
+ step
499
+ });
500
+ },
501
+ PageUp() {
502
+ send({
503
+ type: "AREA.PAGE_UP",
504
+ channel,
505
+ step
506
+ });
507
+ },
508
+ PageDown() {
509
+ send({
510
+ type: "AREA.PAGE_DOWN",
511
+ channel,
512
+ step
513
+ });
514
+ },
515
+ Escape(event) {
516
+ event.stopPropagation();
517
+ }
518
+ }[require_event.getEventKey(event, { dir: prop("dir") })];
519
+ if (exec) {
520
+ exec(event);
521
+ event.preventDefault();
522
+ }
523
+ }
524
+ });
525
+ },
526
+ getTransparencyGridProps(props = {}) {
527
+ const { size = "12px" } = props;
528
+ return normalize.element({
529
+ ...parts.transparencyGrid.attrs,
530
+ style: {
531
+ "--size": size,
532
+ width: "100%",
533
+ height: "100%",
534
+ position: "absolute",
535
+ backgroundColor: "#fff",
536
+ backgroundImage: "conic-gradient(#eeeeee 0 25%, transparent 0 50%, #eeeeee 0 75%, transparent 0)",
537
+ backgroundSize: "var(--size) var(--size)",
538
+ inset: "0px",
539
+ zIndex: "auto",
540
+ pointerEvents: "none"
541
+ }
542
+ });
543
+ },
544
+ getChannelSliderProps(props) {
545
+ const { orientation = "horizontal", channel, format } = props;
546
+ return normalize.element({
547
+ ...parts.channelSlider.attrs,
548
+ "data-channel": channel,
549
+ "data-orientation": orientation,
550
+ role: "presentation",
551
+ onPointerDown(event) {
552
+ if (!interactive) return;
553
+ if (!require_event.isLeftClick(event)) return;
554
+ if (require_event.isModifierKey(event)) return;
555
+ const point = require_event.getEventPoint(event);
556
+ send({
557
+ type: "CHANNEL_SLIDER.POINTER_DOWN",
558
+ channel,
559
+ format,
560
+ point,
561
+ id: channel,
562
+ orientation
563
+ });
564
+ event.preventDefault();
565
+ },
566
+ style: {
567
+ position: "relative",
568
+ touchAction: "none"
569
+ }
570
+ });
571
+ },
572
+ getChannelSliderTrackProps(props) {
573
+ const { orientation = "horizontal", channel, format } = props;
574
+ const normalizedValue = format ? value.toFormat(format) : areaValue;
575
+ return normalize.element({
576
+ ...parts.channelSliderTrack.attrs,
577
+ id: getChannelSliderTrackId(scope, channel),
578
+ role: "group",
579
+ "data-channel": channel,
580
+ "data-orientation": orientation,
581
+ style: {
582
+ position: "relative",
583
+ forcedColorAdjust: "none",
584
+ backgroundImage: getSliderBackground({
585
+ orientation,
586
+ channel,
587
+ dir: prop("dir"),
588
+ value: normalizedValue
589
+ })
590
+ }
591
+ });
592
+ },
593
+ getChannelSliderLabelProps(props) {
594
+ const { channel } = props;
595
+ return normalize.element({
596
+ ...parts.channelSliderLabel.attrs,
597
+ "data-channel": channel,
598
+ onClick(event) {
599
+ if (!interactive) return;
600
+ event.preventDefault();
601
+ const thumbId = getChannelSliderThumbId(scope, channel);
602
+ scope.getById(thumbId)?.focus({ preventScroll: true });
603
+ },
604
+ style: {
605
+ userSelect: "none",
606
+ WebkitUserSelect: "none"
607
+ }
608
+ });
609
+ },
610
+ getChannelSliderValueTextProps(props) {
611
+ return normalize.element({
612
+ ...parts.channelSliderValueText.attrs,
613
+ "data-channel": props.channel
614
+ });
615
+ },
616
+ getChannelSliderThumbProps(props) {
617
+ const { orientation = "horizontal", channel, format } = props;
618
+ const normalizedValue = format ? value.toFormat(format) : areaValue;
619
+ const channelRange = normalizedValue.getChannelRange(channel);
620
+ const channelValue = normalizedValue.getChannelValue(channel);
621
+ const offset = (channelValue - channelRange.minValue) / (channelRange.maxValue - channelRange.minValue);
622
+ const isRtl = prop("dir") === "rtl";
623
+ const finalOffset = orientation === "horizontal" && isRtl ? 1 - offset : offset;
624
+ const placementStyles = orientation === "horizontal" ? {
625
+ left: `${finalOffset * 100}%`,
626
+ top: "50%"
627
+ } : {
628
+ top: `${offset * 100}%`,
629
+ left: "50%"
630
+ };
631
+ return normalize.element({
632
+ ...parts.channelSliderThumb.attrs,
633
+ id: getChannelSliderThumbId(scope, channel),
634
+ role: "slider",
635
+ "aria-label": channel,
636
+ tabIndex: disabled ? void 0 : 0,
637
+ "data-channel": channel,
638
+ "data-disabled": require_dom_query.dataAttr(disabled),
639
+ "data-orientation": orientation,
640
+ "aria-disabled": require_dom_query.dataAttr(disabled),
641
+ "aria-orientation": orientation,
642
+ "aria-valuemax": channelRange.maxValue,
643
+ "aria-valuemin": channelRange.minValue,
644
+ "aria-valuenow": channelValue,
645
+ "aria-valuetext": `${channel} ${channelValue}`,
646
+ style: {
647
+ forcedColorAdjust: "none",
648
+ position: "absolute",
649
+ background: getChannelDisplayColor(areaValue, channel).toString("css"),
650
+ ...placementStyles
651
+ },
652
+ onFocus() {
653
+ if (!interactive) return;
654
+ send({
655
+ type: "CHANNEL_SLIDER.FOCUS",
656
+ channel
657
+ });
658
+ },
659
+ onKeyDown(event) {
660
+ if (event.defaultPrevented) return;
661
+ if (!interactive) return;
662
+ const step = require_event.getEventStep(event) * channelRange.step;
663
+ const exec = {
664
+ ArrowUp() {
665
+ send({
666
+ type: "CHANNEL_SLIDER.ARROW_UP",
667
+ channel,
668
+ step
669
+ });
670
+ },
671
+ ArrowDown() {
672
+ send({
673
+ type: "CHANNEL_SLIDER.ARROW_DOWN",
674
+ channel,
675
+ step
676
+ });
677
+ },
678
+ ArrowLeft() {
679
+ send({
680
+ type: "CHANNEL_SLIDER.ARROW_LEFT",
681
+ channel,
682
+ step
683
+ });
684
+ },
685
+ ArrowRight() {
686
+ send({
687
+ type: "CHANNEL_SLIDER.ARROW_RIGHT",
688
+ channel,
689
+ step
690
+ });
691
+ },
692
+ PageUp() {
693
+ send({
694
+ type: "CHANNEL_SLIDER.PAGE_UP",
695
+ channel
696
+ });
697
+ },
698
+ PageDown() {
699
+ send({
700
+ type: "CHANNEL_SLIDER.PAGE_DOWN",
701
+ channel
702
+ });
703
+ },
704
+ Home() {
705
+ send({
706
+ type: "CHANNEL_SLIDER.HOME",
707
+ channel
708
+ });
709
+ },
710
+ End() {
711
+ send({
712
+ type: "CHANNEL_SLIDER.END",
713
+ channel
714
+ });
715
+ },
716
+ Escape(event) {
717
+ event.stopPropagation();
718
+ }
719
+ }[require_event.getEventKey(event, { dir: prop("dir") })];
720
+ if (exec) {
721
+ exec(event);
722
+ event.preventDefault();
723
+ }
724
+ }
725
+ });
726
+ },
727
+ getChannelInputProps(props) {
728
+ const { channel } = props;
729
+ const isTextField = channel === "hex" || channel === "css";
730
+ const channelRange = getChannelRange(value, channel);
731
+ return normalize.input({
732
+ ...parts.channelInput.attrs,
733
+ dir: prop("dir"),
734
+ type: isTextField ? "text" : "number",
735
+ "data-channel": channel,
736
+ "aria-label": channel,
737
+ spellCheck: false,
738
+ autoComplete: "off",
739
+ disabled,
740
+ "data-disabled": require_dom_query.dataAttr(disabled),
741
+ "data-invalid": require_dom_query.dataAttr(invalid),
742
+ "data-readonly": require_dom_query.dataAttr(readOnly),
743
+ readOnly,
744
+ defaultValue: getChannelValue(value, channel),
745
+ min: channelRange?.minValue,
746
+ max: channelRange?.maxValue,
747
+ step: channelRange?.step,
748
+ onBeforeInput(event) {
749
+ if (isTextField || !interactive) return;
750
+ if (event.currentTarget.value.match(/[^0-9.]/g)) event.preventDefault();
751
+ },
752
+ onFocus(event) {
753
+ if (!interactive) return;
754
+ send({
755
+ type: "CHANNEL_INPUT.FOCUS",
756
+ channel
757
+ });
758
+ event.currentTarget.select();
759
+ },
760
+ onBlur(event) {
761
+ if (!interactive) return;
762
+ const value = isTextField ? event.currentTarget.value : event.currentTarget.valueAsNumber;
763
+ send({
764
+ type: "CHANNEL_INPUT.BLUR",
765
+ channel,
766
+ value,
767
+ isTextField
768
+ });
769
+ },
770
+ onKeyDown(event) {
771
+ if (event.defaultPrevented) return;
772
+ if (!interactive) return;
773
+ if (require_event.isComposingEvent(event)) return;
774
+ if (event.key === "Enter") {
775
+ const value = isTextField ? event.currentTarget.value : event.currentTarget.valueAsNumber;
776
+ send({
777
+ type: "CHANNEL_INPUT.CHANGE",
778
+ channel,
779
+ value,
780
+ isTextField
781
+ });
782
+ event.preventDefault();
783
+ }
784
+ },
785
+ style: {
786
+ appearance: "none",
787
+ WebkitAppearance: "none",
788
+ MozAppearance: "textfield"
789
+ }
790
+ });
791
+ },
792
+ getHiddenInputProps() {
793
+ return normalize.input({
794
+ type: "text",
795
+ disabled,
796
+ name: prop("name"),
797
+ tabIndex: -1,
798
+ readOnly,
799
+ required,
800
+ id: getHiddenInputId(scope),
801
+ style: require_visually_hidden.visuallyHiddenStyle,
802
+ defaultValue: valueAsString
803
+ });
804
+ },
805
+ getEyeDropperTriggerProps() {
806
+ return normalize.button({
807
+ ...parts.eyeDropperTrigger.attrs,
808
+ type: "button",
809
+ dir: prop("dir"),
810
+ disabled,
811
+ "data-disabled": require_dom_query.dataAttr(disabled),
812
+ "data-invalid": require_dom_query.dataAttr(invalid),
813
+ "data-readonly": require_dom_query.dataAttr(readOnly),
814
+ "aria-label": "Pick a color from the screen",
815
+ onClick() {
816
+ if (!interactive) return;
817
+ send({ type: "EYEDROPPER.CLICK" });
818
+ }
819
+ });
820
+ },
821
+ getSwatchGroupProps() {
822
+ return normalize.element({
823
+ ...parts.swatchGroup.attrs,
824
+ role: "group"
825
+ });
826
+ },
827
+ getSwatchTriggerState,
828
+ getSwatchTriggerProps(props) {
829
+ const swatchState = getSwatchTriggerState(props);
830
+ return normalize.button({
831
+ ...parts.swatchTrigger.attrs,
832
+ disabled: swatchState.disabled,
833
+ dir: prop("dir"),
834
+ type: "button",
835
+ "aria-label": `select ${swatchState.valueAsString} as the color`,
836
+ "data-state": swatchState.checked ? "checked" : "unchecked",
837
+ "data-value": swatchState.valueAsString,
838
+ "data-disabled": require_dom_query.dataAttr(swatchState.disabled),
839
+ onClick() {
840
+ if (swatchState.disabled) return;
841
+ send({
842
+ type: "SWATCH_TRIGGER.CLICK",
843
+ value: swatchState.value
844
+ });
845
+ },
846
+ style: {
847
+ "--color": swatchState.valueAsString,
848
+ position: "relative"
849
+ }
850
+ });
851
+ },
852
+ getSwatchIndicatorProps(props) {
853
+ const swatchState = getSwatchTriggerState(props);
854
+ return normalize.element({
855
+ ...parts.swatchIndicator.attrs,
856
+ dir: prop("dir"),
857
+ hidden: !swatchState.checked
858
+ });
859
+ },
860
+ getSwatchProps(props) {
861
+ const { respectAlpha = true } = props;
862
+ const swatchState = getSwatchTriggerState(props);
863
+ const color = swatchState.value.toString(respectAlpha ? "css" : "hex");
864
+ return normalize.element({
865
+ ...parts.swatch.attrs,
866
+ dir: prop("dir"),
867
+ "data-state": swatchState.checked ? "checked" : "unchecked",
868
+ "data-value": swatchState.valueAsString,
869
+ style: {
870
+ "--color": color,
871
+ position: "relative",
872
+ background: color
873
+ }
874
+ });
875
+ },
876
+ getFormatTriggerProps() {
877
+ return normalize.button({
878
+ ...parts.formatTrigger.attrs,
879
+ dir: prop("dir"),
880
+ type: "button",
881
+ "aria-label": `change color format to ${getNextFormat(format)}`,
882
+ onClick(event) {
883
+ if (event.currentTarget.disabled) return;
884
+ const nextFormat = getNextFormat(format);
885
+ send({
886
+ type: "FORMAT.SET",
887
+ format: nextFormat,
888
+ src: "format-trigger"
889
+ });
890
+ }
891
+ });
892
+ },
893
+ getFormatSelectProps() {
894
+ return normalize.select({
895
+ ...parts.formatSelect.attrs,
896
+ "aria-label": "change color format",
897
+ dir: prop("dir"),
898
+ defaultValue: prop("format"),
899
+ disabled,
900
+ onChange(event) {
901
+ const format = assertFormat(event.currentTarget.value);
902
+ send({
903
+ type: "FORMAT.SET",
904
+ format,
905
+ src: "format-select"
906
+ });
907
+ }
908
+ });
909
+ }
910
+ };
911
+ }
912
+ const formats = [
913
+ "hsba",
914
+ "hsla",
915
+ "rgba"
916
+ ];
917
+ const formatRegex = new RegExp(`^(${formats.join("|")})$`);
918
+ function getNextFormat(format) {
919
+ const index = formats.indexOf(format);
920
+ return formats[index + 1] ?? formats[0];
921
+ }
922
+ function assertFormat(format) {
923
+ if (formatRegex.test(format)) return format;
924
+ throw new Error(`Unsupported color format: ${format}`);
925
+ }
926
+ //#endregion
927
+ //#region src/machines/color-picker/parse.ts
928
+ const parse = (colorString) => {
929
+ return require_color_utils.parseColor(colorString);
930
+ };
931
+ //#endregion
932
+ //#region src/machines/color-picker/utils/is-valid-hex.ts
933
+ const HEX_REGEX = /^[0-9a-fA-F]{3,8}$/;
934
+ function isValidHex(value) {
935
+ return HEX_REGEX.test(value);
936
+ }
937
+ function prefixHex(value) {
938
+ if (value.startsWith("#")) return value;
939
+ if (isValidHex(value)) return `#${value}`;
940
+ return value;
941
+ }
942
+ //#endregion
943
+ //#region src/machines/color-picker/machine.ts
944
+ const { and } = require_core.createGuards();
945
+ const hashObject = (obj) => {
946
+ let hash = "";
947
+ for (const key in obj) hash += `${key}:${obj[key] ?? ""};`;
948
+ return hash;
949
+ };
950
+ const DEFAULT_COLOR = parse("#000000");
951
+ const machine = require_core.createMachine({
952
+ props({ props }) {
953
+ const color = props.value ?? props.defaultValue ?? DEFAULT_COLOR;
954
+ return {
955
+ dir: "ltr",
956
+ defaultValue: DEFAULT_COLOR,
957
+ defaultFormat: color.getFormat(),
958
+ openAutoFocus: true,
959
+ ...props,
960
+ positioning: {
961
+ placement: "bottom",
962
+ ...props.positioning
963
+ }
964
+ };
965
+ },
966
+ initialState({ prop }) {
967
+ return prop("open") || prop("defaultOpen") || prop("inline") ? "open" : "idle";
968
+ },
969
+ context({ prop, bindable, getContext }) {
970
+ return {
971
+ value: bindable(() => ({
972
+ defaultValue: prop("defaultValue").toFormat(prop("format") ?? prop("defaultFormat")),
973
+ value: prop("value")?.toFormat(prop("format") ?? prop("defaultFormat")),
974
+ isEqual(a, b) {
975
+ return b != null && a.isEqual(b);
976
+ },
977
+ hash(a) {
978
+ return hashObject(a.toJSON());
979
+ },
980
+ onChange(value) {
981
+ const format = getContext().get("format");
982
+ prop("onValueChange")?.({
983
+ value,
984
+ valueAsString: value.toString(format)
985
+ });
986
+ }
987
+ })),
988
+ format: bindable(() => ({
989
+ defaultValue: prop("defaultFormat"),
990
+ value: prop("format"),
991
+ onChange(format) {
992
+ prop("onFormatChange")?.({ format });
993
+ }
994
+ })),
995
+ activeId: bindable(() => ({ defaultValue: null })),
996
+ activeChannel: bindable(() => ({ defaultValue: null })),
997
+ activeOrientation: bindable(() => ({ defaultValue: null })),
998
+ fieldsetDisabled: bindable(() => ({ defaultValue: false })),
999
+ restoreFocus: bindable(() => ({ defaultValue: true })),
1000
+ currentPlacement: bindable(() => ({ defaultValue: void 0 }))
1001
+ };
1002
+ },
1003
+ computed: {
1004
+ rtl: ({ prop }) => prop("dir") === "rtl",
1005
+ disabled: ({ prop, context }) => !!prop("disabled") || context.get("fieldsetDisabled"),
1006
+ interactive: ({ prop }) => !(prop("disabled") || prop("readOnly")),
1007
+ valueAsString: ({ context }) => context.get("value").toString(context.get("format")),
1008
+ areaValue: ({ context }) => {
1009
+ const format = context.get("format").startsWith("hsl") ? "hsla" : "hsba";
1010
+ return context.get("value").toFormat(format);
1011
+ }
1012
+ },
1013
+ effects: ["trackFormControl"],
1014
+ watch({ prop, context, action, track }) {
1015
+ track([() => context.hash("value")], () => {
1016
+ action(["syncInputElements", "dispatchChangeEvent"]);
1017
+ });
1018
+ track([() => context.get("format")], () => {
1019
+ action(["syncFormatSelectElement", "syncValueWithFormat"]);
1020
+ });
1021
+ track([() => prop("open")], () => {
1022
+ action(["toggleVisibility"]);
1023
+ });
1024
+ },
1025
+ on: {
1026
+ "VALUE.SET": { actions: ["setValue"] },
1027
+ "FORMAT.SET": { actions: ["setFormat"] },
1028
+ "CHANNEL_INPUT.CHANGE": { actions: ["setChannelColorFromInput"] },
1029
+ "EYEDROPPER.CLICK": { actions: ["openEyeDropper"] },
1030
+ "SWATCH_TRIGGER.CLICK": { actions: ["setValue"] }
1031
+ },
1032
+ states: {
1033
+ idle: {
1034
+ tags: ["closed"],
1035
+ on: {
1036
+ "CONTROLLED.OPEN": {
1037
+ target: "open",
1038
+ actions: ["setInitialFocus"]
1039
+ },
1040
+ OPEN: [{
1041
+ guard: "isOpenControlled",
1042
+ actions: ["invokeOnOpen"]
1043
+ }, {
1044
+ target: "open",
1045
+ actions: ["invokeOnOpen", "setInitialFocus"]
1046
+ }],
1047
+ "TRIGGER.CLICK": [{
1048
+ guard: "isOpenControlled",
1049
+ actions: ["invokeOnOpen"]
1050
+ }, {
1051
+ target: "open",
1052
+ actions: ["invokeOnOpen", "setInitialFocus"]
1053
+ }],
1054
+ "CHANNEL_INPUT.FOCUS": {
1055
+ target: "focused",
1056
+ actions: ["setActiveChannel"]
1057
+ }
1058
+ }
1059
+ },
1060
+ focused: {
1061
+ id: "color-picker-focused",
1062
+ tags: ["closed", "focused"],
1063
+ on: {
1064
+ "CONTROLLED.OPEN": {
1065
+ target: "open",
1066
+ actions: ["setInitialFocus"]
1067
+ },
1068
+ OPEN: [{
1069
+ guard: "isOpenControlled",
1070
+ actions: ["invokeOnOpen"]
1071
+ }, {
1072
+ target: "open",
1073
+ actions: ["invokeOnOpen", "setInitialFocus"]
1074
+ }],
1075
+ "TRIGGER.CLICK": [{
1076
+ guard: "isOpenControlled",
1077
+ actions: ["invokeOnOpen"]
1078
+ }, {
1079
+ target: "open",
1080
+ actions: ["invokeOnOpen", "setInitialFocus"]
1081
+ }],
1082
+ "CHANNEL_INPUT.FOCUS": { actions: ["setActiveChannel"] },
1083
+ "CHANNEL_INPUT.BLUR": {
1084
+ target: "idle",
1085
+ actions: ["setChannelColorFromInput"]
1086
+ },
1087
+ "TRIGGER.BLUR": { target: "idle" }
1088
+ }
1089
+ },
1090
+ open: {
1091
+ tags: ["open"],
1092
+ effects: ["trackPositioning", "trackDismissableElement"],
1093
+ initial: "idle",
1094
+ on: {
1095
+ "CONTROLLED.CLOSE": [{
1096
+ guard: "shouldRestoreFocus",
1097
+ target: "focused",
1098
+ actions: ["setReturnFocus"]
1099
+ }, { target: "idle" }],
1100
+ INTERACT_OUTSIDE: [
1101
+ {
1102
+ guard: "isOpenControlled",
1103
+ actions: ["invokeOnClose"]
1104
+ },
1105
+ {
1106
+ guard: "shouldRestoreFocus",
1107
+ target: "focused",
1108
+ actions: ["invokeOnClose", "setReturnFocus"]
1109
+ },
1110
+ {
1111
+ target: "idle",
1112
+ actions: ["invokeOnClose"]
1113
+ }
1114
+ ],
1115
+ CLOSE: [{
1116
+ guard: "isOpenControlled",
1117
+ actions: ["invokeOnClose"]
1118
+ }, {
1119
+ target: "idle",
1120
+ actions: ["invokeOnClose"]
1121
+ }]
1122
+ },
1123
+ states: {
1124
+ idle: { on: {
1125
+ "TRIGGER.CLICK": [{
1126
+ guard: "isOpenControlled",
1127
+ actions: ["invokeOnClose"]
1128
+ }, {
1129
+ target: "#color-picker-focused",
1130
+ actions: ["invokeOnClose"]
1131
+ }],
1132
+ "AREA.POINTER_DOWN": {
1133
+ target: "dragging",
1134
+ actions: [
1135
+ "setActiveChannel",
1136
+ "setAreaColorFromPoint",
1137
+ "focusAreaThumb"
1138
+ ]
1139
+ },
1140
+ "AREA.FOCUS": { actions: ["setActiveChannel"] },
1141
+ "CHANNEL_SLIDER.POINTER_DOWN": {
1142
+ target: "dragging",
1143
+ actions: [
1144
+ "setActiveChannel",
1145
+ "setChannelColorFromPoint",
1146
+ "focusChannelThumb"
1147
+ ]
1148
+ },
1149
+ "CHANNEL_SLIDER.FOCUS": { actions: ["setActiveChannel"] },
1150
+ "AREA.ARROW_LEFT": { actions: ["decrementAreaXChannel"] },
1151
+ "AREA.ARROW_RIGHT": { actions: ["incrementAreaXChannel"] },
1152
+ "AREA.ARROW_UP": { actions: ["incrementAreaYChannel"] },
1153
+ "AREA.ARROW_DOWN": { actions: ["decrementAreaYChannel"] },
1154
+ "AREA.PAGE_UP": { actions: ["incrementAreaXChannel"] },
1155
+ "AREA.PAGE_DOWN": { actions: ["decrementAreaXChannel"] },
1156
+ "CHANNEL_SLIDER.ARROW_LEFT": { actions: ["decrementChannel"] },
1157
+ "CHANNEL_SLIDER.ARROW_RIGHT": { actions: ["incrementChannel"] },
1158
+ "CHANNEL_SLIDER.ARROW_UP": { actions: ["incrementChannel"] },
1159
+ "CHANNEL_SLIDER.ARROW_DOWN": { actions: ["decrementChannel"] },
1160
+ "CHANNEL_SLIDER.PAGE_UP": { actions: ["incrementChannel"] },
1161
+ "CHANNEL_SLIDER.PAGE_DOWN": { actions: ["decrementChannel"] },
1162
+ "CHANNEL_SLIDER.HOME": { actions: ["setChannelToMin"] },
1163
+ "CHANNEL_SLIDER.END": { actions: ["setChannelToMax"] },
1164
+ "CHANNEL_INPUT.BLUR": { actions: ["setChannelColorFromInput"] },
1165
+ "SWATCH_TRIGGER.CLICK": [
1166
+ {
1167
+ guard: and("isOpenControlled", "closeOnSelect"),
1168
+ actions: ["setValue", "invokeOnClose"]
1169
+ },
1170
+ {
1171
+ guard: "closeOnSelect",
1172
+ target: "focused",
1173
+ actions: [
1174
+ "setValue",
1175
+ "invokeOnClose",
1176
+ "setReturnFocus"
1177
+ ]
1178
+ },
1179
+ { actions: ["setValue"] }
1180
+ ]
1181
+ } },
1182
+ dragging: {
1183
+ tags: ["dragging"],
1184
+ exit: ["clearActiveChannel"],
1185
+ effects: ["trackPointerMove", "disableTextSelection"],
1186
+ on: {
1187
+ "AREA.POINTER_MOVE": { actions: ["setAreaColorFromPoint", "focusAreaThumb"] },
1188
+ "AREA.POINTER_UP": {
1189
+ target: "idle",
1190
+ actions: ["invokeOnChangeEnd"]
1191
+ },
1192
+ "CHANNEL_SLIDER.POINTER_MOVE": { actions: ["setChannelColorFromPoint", "focusChannelThumb"] },
1193
+ "CHANNEL_SLIDER.POINTER_UP": {
1194
+ target: "idle",
1195
+ actions: ["invokeOnChangeEnd"]
1196
+ }
1197
+ }
1198
+ }
1199
+ }
1200
+ }
1201
+ },
1202
+ implementations: {
1203
+ guards: {
1204
+ closeOnSelect: ({ prop }) => !!prop("closeOnSelect"),
1205
+ isOpenControlled: ({ prop }) => prop("open") != null || !!prop("inline"),
1206
+ shouldRestoreFocus: ({ context }) => !!context.get("restoreFocus")
1207
+ },
1208
+ effects: {
1209
+ trackPositioning({ context, prop, scope }) {
1210
+ if (prop("inline")) return;
1211
+ if (!context.get("currentPlacement")) context.set("currentPlacement", prop("positioning")?.placement);
1212
+ const anchorEl = getTriggerEl(scope);
1213
+ const getPositionerEl$1 = () => getPositionerEl(scope);
1214
+ return require_popper.getPlacement(anchorEl, getPositionerEl$1, {
1215
+ ...prop("positioning"),
1216
+ defer: true,
1217
+ onComplete(data) {
1218
+ context.set("currentPlacement", data.placement);
1219
+ }
1220
+ });
1221
+ },
1222
+ trackDismissableElement({ context, scope, prop, send }) {
1223
+ if (prop("inline")) return;
1224
+ const getContentEl$1 = () => getContentEl(scope);
1225
+ return require_dismissable.trackDismissableElement(getContentEl$1, {
1226
+ type: "popover",
1227
+ exclude: getTriggerEl(scope),
1228
+ defer: true,
1229
+ onInteractOutside(event) {
1230
+ prop("onInteractOutside")?.(event);
1231
+ if (event.defaultPrevented) return;
1232
+ context.set("restoreFocus", !(event.detail.focusable || event.detail.contextmenu));
1233
+ },
1234
+ onPointerDownOutside: prop("onPointerDownOutside"),
1235
+ onFocusOutside: prop("onFocusOutside"),
1236
+ onDismiss() {
1237
+ send({ type: "INTERACT_OUTSIDE" });
1238
+ }
1239
+ });
1240
+ },
1241
+ trackFormControl({ context, scope, send }) {
1242
+ return require_form.trackFormControl(getHiddenInputEl(scope), {
1243
+ onFieldsetDisabledChange(disabled) {
1244
+ context.set("fieldsetDisabled", disabled);
1245
+ },
1246
+ onFormReset() {
1247
+ send({
1248
+ type: "VALUE.SET",
1249
+ value: context.initial("value"),
1250
+ src: "form.reset"
1251
+ });
1252
+ }
1253
+ });
1254
+ },
1255
+ trackPointerMove({ context, scope, event, send }) {
1256
+ return require_pointer_move.trackPointerMove(scope.getDoc(), {
1257
+ onPointerMove({ point }) {
1258
+ send({
1259
+ type: context.get("activeId") === "area" ? "AREA.POINTER_MOVE" : "CHANNEL_SLIDER.POINTER_MOVE",
1260
+ point,
1261
+ format: event.format,
1262
+ orientation: context.get("activeOrientation") ?? void 0
1263
+ });
1264
+ },
1265
+ onPointerUp() {
1266
+ send({ type: context.get("activeId") === "area" ? "AREA.POINTER_UP" : "CHANNEL_SLIDER.POINTER_UP" });
1267
+ }
1268
+ });
1269
+ },
1270
+ disableTextSelection({ scope }) {
1271
+ return require_text_selection.disableTextSelection({
1272
+ doc: scope.getDoc(),
1273
+ target: getContentEl(scope)
1274
+ });
1275
+ }
1276
+ },
1277
+ actions: {
1278
+ openEyeDropper({ scope, context, prop }) {
1279
+ const win = scope.getWin();
1280
+ if (!("EyeDropper" in win)) return;
1281
+ new win.EyeDropper().open().then(({ sRGBHex }) => {
1282
+ const format = context.get("value").getFormat();
1283
+ const color = require_color_utils.parseColor(sRGBHex).toFormat(format);
1284
+ context.set("value", color);
1285
+ return color;
1286
+ }).then((value) => {
1287
+ prop("onValueChangeEnd")?.({
1288
+ value,
1289
+ valueAsString: value.toString(context.get("format"))
1290
+ });
1291
+ }).catch(() => void 0);
1292
+ },
1293
+ setActiveChannel({ context, event }) {
1294
+ context.set("activeId", event.id);
1295
+ if (event.channel) context.set("activeChannel", event.channel);
1296
+ if (event.orientation) context.set("activeOrientation", event.orientation);
1297
+ },
1298
+ clearActiveChannel({ context }) {
1299
+ context.set("activeChannel", null);
1300
+ context.set("activeId", null);
1301
+ context.set("activeOrientation", null);
1302
+ },
1303
+ setAreaColorFromPoint({ context, event, computed, scope, prop }) {
1304
+ const v = event.format ? context.get("value").toFormat(event.format) : computed("areaValue");
1305
+ const { xChannel, yChannel } = event.channel || context.get("activeChannel");
1306
+ const percent = getAreaValueFromPoint(scope, event.point, prop("dir"));
1307
+ if (!percent) return;
1308
+ const xValue = v.getChannelPercentValue(xChannel, percent.x);
1309
+ const yValue = v.getChannelPercentValue(yChannel, 1 - percent.y);
1310
+ const color = v.withChannelValue(xChannel, xValue).withChannelValue(yChannel, yValue);
1311
+ context.set("value", color);
1312
+ },
1313
+ setChannelColorFromPoint({ context, event, computed, scope, prop }) {
1314
+ const channel = event.channel || context.get("activeId");
1315
+ const normalizedValue = event.format ? context.get("value").toFormat(event.format) : computed("areaValue");
1316
+ const percent = getChannelSliderValueFromPoint(scope, event.point, channel, prop("dir"));
1317
+ if (!percent) return;
1318
+ const channelPercent = (event.orientation || context.get("activeOrientation") || "horizontal") === "horizontal" ? percent.x : percent.y;
1319
+ const value = normalizedValue.getChannelPercentValue(channel, channelPercent);
1320
+ const color = normalizedValue.withChannelValue(channel, value);
1321
+ context.set("value", color);
1322
+ },
1323
+ setValue({ context, event }) {
1324
+ const format = context.get("format");
1325
+ context.set("value", event.value.toFormat(format));
1326
+ },
1327
+ setFormat({ context, event }) {
1328
+ context.set("format", event.format);
1329
+ },
1330
+ dispatchChangeEvent({ scope, computed }) {
1331
+ require_form.dispatchInputValueEvent(getHiddenInputEl(scope), { value: computed("valueAsString") });
1332
+ },
1333
+ syncInputElements({ context, scope }) {
1334
+ syncChannelInputs(scope, context.get("value"));
1335
+ },
1336
+ invokeOnChangeEnd({ context, prop, computed }) {
1337
+ prop("onValueChangeEnd")?.({
1338
+ value: context.get("value"),
1339
+ valueAsString: computed("valueAsString")
1340
+ });
1341
+ },
1342
+ setChannelColorFromInput({ context, event, scope, prop }) {
1343
+ const { channel, isTextField, value } = event;
1344
+ const currentAlpha = context.get("value").getChannelValue("alpha");
1345
+ let color;
1346
+ if (channel === "alpha") {
1347
+ let valueAsNumber = parseFloat(value);
1348
+ valueAsNumber = Number.isNaN(valueAsNumber) ? currentAlpha : valueAsNumber;
1349
+ color = context.get("value").withChannelValue("alpha", valueAsNumber);
1350
+ } else if (isTextField) color = require_utils.tryCatch(() => {
1351
+ return parse(channel === "hex" ? prefixHex(value) : value).withChannelValue("alpha", currentAlpha);
1352
+ }, () => context.get("value"));
1353
+ else {
1354
+ const current = context.get("value").toFormat(context.get("format"));
1355
+ const valueAsNumber = Number.isNaN(value) ? current.getChannelValue(channel) : value;
1356
+ color = current.withChannelValue(channel, valueAsNumber);
1357
+ }
1358
+ syncChannelInputs(scope, context.get("value"), color);
1359
+ context.set("value", color);
1360
+ prop("onValueChangeEnd")?.({
1361
+ value: color,
1362
+ valueAsString: color.toString(context.get("format"))
1363
+ });
1364
+ },
1365
+ incrementChannel({ context, event }) {
1366
+ const color = context.get("value").incrementChannel(event.channel, event.step);
1367
+ context.set("value", color);
1368
+ },
1369
+ decrementChannel({ context, event }) {
1370
+ const color = context.get("value").decrementChannel(event.channel, event.step);
1371
+ context.set("value", color);
1372
+ },
1373
+ incrementAreaXChannel({ context, event, computed }) {
1374
+ const { xChannel } = event.channel;
1375
+ const color = computed("areaValue").incrementChannel(xChannel, event.step);
1376
+ context.set("value", color);
1377
+ },
1378
+ decrementAreaXChannel({ context, event, computed }) {
1379
+ const { xChannel } = event.channel;
1380
+ const color = computed("areaValue").decrementChannel(xChannel, event.step);
1381
+ context.set("value", color);
1382
+ },
1383
+ incrementAreaYChannel({ context, event, computed }) {
1384
+ const { yChannel } = event.channel;
1385
+ const color = computed("areaValue").incrementChannel(yChannel, event.step);
1386
+ context.set("value", color);
1387
+ },
1388
+ decrementAreaYChannel({ context, event, computed }) {
1389
+ const { yChannel } = event.channel;
1390
+ const color = computed("areaValue").decrementChannel(yChannel, event.step);
1391
+ context.set("value", color);
1392
+ },
1393
+ setChannelToMax({ context, event }) {
1394
+ const value = context.get("value");
1395
+ const range = value.getChannelRange(event.channel);
1396
+ const color = value.withChannelValue(event.channel, range.maxValue);
1397
+ context.set("value", color);
1398
+ },
1399
+ setChannelToMin({ context, event }) {
1400
+ const value = context.get("value");
1401
+ const range = value.getChannelRange(event.channel);
1402
+ const color = value.withChannelValue(event.channel, range.minValue);
1403
+ context.set("value", color);
1404
+ },
1405
+ focusAreaThumb({ scope }) {
1406
+ require_raf.raf(() => {
1407
+ getAreaThumbEl(scope)?.focus({ preventScroll: true });
1408
+ });
1409
+ },
1410
+ focusChannelThumb({ event, scope }) {
1411
+ require_raf.raf(() => {
1412
+ getChannelSliderThumbEl(scope, event.channel)?.focus({ preventScroll: true });
1413
+ });
1414
+ },
1415
+ setInitialFocus({ prop, scope }) {
1416
+ if (!prop("openAutoFocus")) return;
1417
+ require_raf.raf(() => {
1418
+ require_initial_focus.getInitialFocus({
1419
+ root: getContentEl(scope),
1420
+ getInitialEl: prop("initialFocusEl")
1421
+ })?.focus({ preventScroll: true });
1422
+ });
1423
+ },
1424
+ setReturnFocus({ scope }) {
1425
+ require_raf.raf(() => {
1426
+ getTriggerEl(scope)?.focus({ preventScroll: true });
1427
+ });
1428
+ },
1429
+ syncFormatSelectElement({ context, scope }) {
1430
+ syncFormatSelect(scope, context.get("format"));
1431
+ },
1432
+ syncValueWithFormat({ context }) {
1433
+ const value = context.get("value");
1434
+ const newValue = value.toFormat(context.get("format"));
1435
+ if (newValue.isEqual(value)) return;
1436
+ context.set("value", newValue);
1437
+ },
1438
+ invokeOnOpen({ prop, context }) {
1439
+ if (prop("inline")) return;
1440
+ prop("onOpenChange")?.({
1441
+ open: true,
1442
+ value: context.get("value")
1443
+ });
1444
+ },
1445
+ invokeOnClose({ prop, context }) {
1446
+ if (prop("inline")) return;
1447
+ prop("onOpenChange")?.({
1448
+ open: false,
1449
+ value: context.get("value")
1450
+ });
1451
+ },
1452
+ toggleVisibility({ prop, event, send }) {
1453
+ send({
1454
+ type: prop("open") ? "CONTROLLED.OPEN" : "CONTROLLED.CLOSE",
1455
+ previousEvent: event
1456
+ });
1457
+ }
1458
+ }
1459
+ }
1460
+ });
1461
+ function syncChannelInputs(scope, currentValue, nextValue) {
1462
+ const channelInputEls = getChannelInputEls(scope);
1463
+ require_raf.raf(() => {
1464
+ channelInputEls.forEach((inputEl) => {
1465
+ const channel = inputEl.dataset.channel;
1466
+ require_form.setElementValue(inputEl, getChannelValue(nextValue || currentValue, channel));
1467
+ });
1468
+ });
1469
+ }
1470
+ function syncFormatSelect(scope, format) {
1471
+ const selectEl = getFormatSelectEl(scope);
1472
+ if (!selectEl) return;
1473
+ require_raf.raf(() => require_form.setElementValue(selectEl, format));
1474
+ }
1475
+ //#endregion
1476
+ //#region src/machines/color-picker/props.ts
1477
+ const props = require_create_props.createProps()([
1478
+ "closeOnSelect",
1479
+ "dir",
1480
+ "disabled",
1481
+ "format",
1482
+ "defaultFormat",
1483
+ "getRootNode",
1484
+ "id",
1485
+ "ids",
1486
+ "initialFocusEl",
1487
+ "inline",
1488
+ "name",
1489
+ "positioning",
1490
+ "onFocusOutside",
1491
+ "onFormatChange",
1492
+ "onInteractOutside",
1493
+ "onOpenChange",
1494
+ "onPointerDownOutside",
1495
+ "onValueChange",
1496
+ "onValueChangeEnd",
1497
+ "defaultOpen",
1498
+ "open",
1499
+ "positioning",
1500
+ "required",
1501
+ "readOnly",
1502
+ "value",
1503
+ "defaultValue",
1504
+ "invalid",
1505
+ "openAutoFocus"
1506
+ ]);
1507
+ const splitProps = require_utils.createSplitProps(props);
1508
+ const areaProps = require_create_props.createProps()(["xChannel", "yChannel"]);
1509
+ const splitAreaProps = require_utils.createSplitProps(areaProps);
1510
+ const channelProps = require_create_props.createProps()(["channel", "orientation"]);
1511
+ const splitChannelProps = require_utils.createSplitProps(channelProps);
1512
+ const swatchTriggerProps = require_create_props.createProps()(["value", "disabled"]);
1513
+ const splitSwatchTriggerProps = require_utils.createSplitProps(swatchTriggerProps);
1514
+ const swatchProps = require_create_props.createProps()(["value", "respectAlpha"]);
1515
+ const splitSwatchProps = require_utils.createSplitProps(swatchProps);
1516
+ const transparencyGridProps = require_create_props.createProps()(["size"]);
1517
+ const splitTransparencyGridProps = require_utils.createSplitProps(transparencyGridProps);
1518
+ //#endregion
1519
+ exports.anatomy = anatomy;
1520
+ exports.areaProps = areaProps;
1521
+ exports.channelProps = channelProps;
1522
+ exports.connect = connect;
1523
+ exports.machine = machine;
1524
+ exports.parse = parse;
1525
+ exports.props = props;
1526
+ exports.splitAreaProps = splitAreaProps;
1527
+ exports.splitChannelProps = splitChannelProps;
1528
+ exports.splitProps = splitProps;
1529
+ exports.splitSwatchProps = splitSwatchProps;
1530
+ exports.splitSwatchTriggerProps = splitSwatchTriggerProps;
1531
+ exports.splitTransparencyGridProps = splitTransparencyGridProps;
1532
+ exports.swatchProps = swatchProps;
1533
+ exports.swatchTriggerProps = swatchTriggerProps;
1534
+ exports.transparencyGridProps = transparencyGridProps;