@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,680 @@
1
+ const require_defineProperty = require('./defineProperty-BoUOT9Ie.cjs');
2
+ const require_utils = require('./utils-_6frwjgJ.cjs');
3
+
4
+ //#region src/shared/color-utils/color-format-gradient.ts
5
+ const generateRGB_R = (orientation, dir, zValue) => {
6
+ const maskImage = `linear-gradient(to ${orientation[Number(!dir)]}, transparent, #000)`;
7
+ return {
8
+ areaStyles: { backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(${zValue},0,0),rgb(${zValue},255,0))` },
9
+ areaGradientStyles: {
10
+ backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(${zValue},0,255),rgb(${zValue},255,255))`,
11
+ WebkitMaskImage: maskImage,
12
+ maskImage
13
+ }
14
+ };
15
+ };
16
+ const generateRGB_G = (orientation, dir, zValue) => {
17
+ const maskImage = `linear-gradient(to ${orientation[Number(!dir)]}, transparent, #000)`;
18
+ return {
19
+ areaStyles: { backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,${zValue},0),rgb(255,${zValue},0))` },
20
+ areaGradientStyles: {
21
+ backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,${zValue},255),rgb(255,${zValue},255))`,
22
+ WebkitMaskImage: maskImage,
23
+ maskImage
24
+ }
25
+ };
26
+ };
27
+ const generateRGB_B = (orientation, dir, zValue) => {
28
+ const maskImage = `linear-gradient(to ${orientation[Number(!dir)]}, transparent, #000)`;
29
+ return {
30
+ areaStyles: { backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,0,${zValue}),rgb(255,0,${zValue}))` },
31
+ areaGradientStyles: {
32
+ backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,255,${zValue}),rgb(255,255,${zValue}))`,
33
+ WebkitMaskImage: maskImage,
34
+ maskImage
35
+ }
36
+ };
37
+ };
38
+ const generateHSL_H = (orientation, dir, zValue) => {
39
+ return {
40
+ areaStyles: {},
41
+ areaGradientStyles: { background: [
42
+ `linear-gradient(to ${orientation[Number(dir)]}, hsla(0,0%,0%,1) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,1) 100%)`,
43
+ `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,50%),hsla(0,0%,50%,0))`,
44
+ `hsl(${zValue}, 100%, 50%)`
45
+ ].join(",") }
46
+ };
47
+ };
48
+ const generateHSL_S = (orientation, dir, alphaValue) => {
49
+ return {
50
+ areaStyles: {},
51
+ areaGradientStyles: { background: [
52
+ `linear-gradient(to ${orientation[Number(!dir)]}, hsla(0,0%,0%,${alphaValue}) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,${alphaValue}) 100%)`,
53
+ `linear-gradient(to ${orientation[Number(dir)]},hsla(0,100%,50%,${alphaValue}),hsla(60,100%,50%,${alphaValue}),hsla(120,100%,50%,${alphaValue}),hsla(180,100%,50%,${alphaValue}),hsla(240,100%,50%,${alphaValue}),hsla(300,100%,50%,${alphaValue}),hsla(359,100%,50%,${alphaValue}))`,
54
+ "hsl(0, 0%, 50%)"
55
+ ].join(",") }
56
+ };
57
+ };
58
+ const generateHSL_L = (orientation, dir, zValue) => {
59
+ return {
60
+ areaStyles: {},
61
+ areaGradientStyles: { backgroundImage: [`linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,${zValue}%),hsla(0,0%,${zValue}%,0))`, `linear-gradient(to ${orientation[Number(dir)]},hsl(0,100%,${zValue}%),hsl(60,100%,${zValue}%),hsl(120,100%,${zValue}%),hsl(180,100%,${zValue}%),hsl(240,100%,${zValue}%),hsl(300,100%,${zValue}%),hsl(360,100%,${zValue}%))`].join(",") }
62
+ };
63
+ };
64
+ const generateHSB_H = (orientation, dir, zValue) => {
65
+ return {
66
+ areaStyles: {},
67
+ areaGradientStyles: { background: [
68
+ `linear-gradient(to ${orientation[Number(dir)]},hsl(0,0%,0%),hsla(0,0%,0%,0))`,
69
+ `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,100%),hsla(0,0%,100%,0))`,
70
+ `hsl(${zValue}, 100%, 50%)`
71
+ ].join(",") }
72
+ };
73
+ };
74
+ const generateHSB_S = (orientation, dir, alphaValue) => {
75
+ return {
76
+ areaStyles: {},
77
+ areaGradientStyles: { background: [
78
+ `linear-gradient(to ${orientation[Number(!dir)]},hsla(0,0%,0%,${alphaValue}),hsla(0,0%,0%,0))`,
79
+ `linear-gradient(to ${orientation[Number(dir)]},hsla(0,100%,50%,${alphaValue}),hsla(60,100%,50%,${alphaValue}),hsla(120,100%,50%,${alphaValue}),hsla(180,100%,50%,${alphaValue}),hsla(240,100%,50%,${alphaValue}),hsla(300,100%,50%,${alphaValue}),hsla(359,100%,50%,${alphaValue}))`,
80
+ `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,0%),hsl(0,0%,100%))`
81
+ ].join(",") }
82
+ };
83
+ };
84
+ const generateHSB_B = (orientation, dir, alphaValue) => {
85
+ return {
86
+ areaStyles: {},
87
+ areaGradientStyles: { background: [
88
+ `linear-gradient(to ${orientation[Number(!dir)]},hsla(0,0%,100%,${alphaValue}),hsla(0,0%,100%,0))`,
89
+ `linear-gradient(to ${orientation[Number(dir)]},hsla(0,100%,50%,${alphaValue}),hsla(60,100%,50%,${alphaValue}),hsla(120,100%,50%,${alphaValue}),hsla(180,100%,50%,${alphaValue}),hsla(240,100%,50%,${alphaValue}),hsla(300,100%,50%,${alphaValue}),hsla(359,100%,50%,${alphaValue}))`,
90
+ "#000"
91
+ ].join(",") }
92
+ };
93
+ };
94
+
95
+ //#endregion
96
+ //#region src/shared/color-utils/area-gradient.ts
97
+ function getColorAreaGradient(color, options) {
98
+ const { xChannel, yChannel, dir: dirProp = "ltr" } = options;
99
+ const { zChannel } = color.getColorAxes({
100
+ xChannel,
101
+ yChannel
102
+ });
103
+ const zValue = color.getChannelValue(zChannel);
104
+ const { minValue: zMin, maxValue: zMax } = color.getChannelRange(zChannel);
105
+ const orientation = ["top", dirProp === "rtl" ? "left" : "right"];
106
+ let dir = false;
107
+ let background = {
108
+ areaStyles: {},
109
+ areaGradientStyles: {}
110
+ };
111
+ let alphaValue = (zValue - zMin) / (zMax - zMin);
112
+ let isHSL = color.getFormat() === "hsla";
113
+ switch (zChannel) {
114
+ case "red":
115
+ dir = xChannel === "green";
116
+ background = generateRGB_R(orientation, dir, zValue);
117
+ break;
118
+ case "green":
119
+ dir = xChannel === "red";
120
+ background = generateRGB_G(orientation, dir, zValue);
121
+ break;
122
+ case "blue":
123
+ dir = xChannel === "red";
124
+ background = generateRGB_B(orientation, dir, zValue);
125
+ break;
126
+ case "hue":
127
+ dir = xChannel !== "saturation";
128
+ if (isHSL) background = generateHSL_H(orientation, dir, zValue);
129
+ else background = generateHSB_H(orientation, dir, zValue);
130
+ break;
131
+ case "saturation":
132
+ dir = xChannel === "hue";
133
+ if (isHSL) background = generateHSL_S(orientation, dir, alphaValue);
134
+ else background = generateHSB_S(orientation, dir, alphaValue);
135
+ break;
136
+ case "brightness":
137
+ dir = xChannel === "hue";
138
+ background = generateHSB_B(orientation, dir, alphaValue);
139
+ break;
140
+ case "lightness":
141
+ dir = xChannel === "hue";
142
+ background = generateHSL_L(orientation, dir, zValue);
143
+ break;
144
+ }
145
+ return background;
146
+ }
147
+
148
+ //#endregion
149
+ //#region src/shared/color-utils/color.ts
150
+ const isEqualObject = (a, b) => {
151
+ if (Object.keys(a).length !== Object.keys(b).length) return false;
152
+ for (let key in a) if (a[key] !== b[key]) return false;
153
+ return true;
154
+ };
155
+ var Color = class {
156
+ toHexInt() {
157
+ return this.toFormat("rgba").toHexInt();
158
+ }
159
+ getChannelValue(channel) {
160
+ if (channel in this) return this[channel];
161
+ throw new Error("Unsupported color channel: " + channel);
162
+ }
163
+ getChannelValuePercent(channel, valueToCheck) {
164
+ const value = valueToCheck ?? this.getChannelValue(channel);
165
+ const { minValue, maxValue } = this.getChannelRange(channel);
166
+ return require_utils.getValuePercent(value, minValue, maxValue);
167
+ }
168
+ getChannelPercentValue(channel, percentToCheck) {
169
+ const { minValue, maxValue, step } = this.getChannelRange(channel);
170
+ return require_utils.snapValueToStep(require_utils.getPercentValue(percentToCheck, minValue, maxValue, step), minValue, maxValue, step);
171
+ }
172
+ withChannelValue(channel, value) {
173
+ const { minValue, maxValue } = this.getChannelRange(channel);
174
+ if (channel in this) {
175
+ let clone = this.clone();
176
+ clone[channel] = require_utils.clampValue(value, minValue, maxValue);
177
+ return clone;
178
+ }
179
+ throw new Error("Unsupported color channel: " + channel);
180
+ }
181
+ getColorAxes(xyChannels) {
182
+ let { xChannel, yChannel } = xyChannels;
183
+ let xCh = xChannel || this.getChannels().find((c) => c !== yChannel);
184
+ let yCh = yChannel || this.getChannels().find((c) => c !== xCh);
185
+ return {
186
+ xChannel: xCh,
187
+ yChannel: yCh,
188
+ zChannel: this.getChannels().find((c) => c !== xCh && c !== yCh)
189
+ };
190
+ }
191
+ incrementChannel(channel, stepSize) {
192
+ const { minValue, maxValue, step } = this.getChannelRange(channel);
193
+ const value = require_utils.snapValueToStep(require_utils.clampValue(this.getChannelValue(channel) + stepSize, minValue, maxValue), minValue, maxValue, step);
194
+ return this.withChannelValue(channel, value);
195
+ }
196
+ decrementChannel(channel, stepSize) {
197
+ return this.incrementChannel(channel, -stepSize);
198
+ }
199
+ isEqual(color) {
200
+ return isEqualObject(this.toJSON(), color.toJSON()) && this.getChannelValue("alpha") === color.getChannelValue("alpha");
201
+ }
202
+ };
203
+
204
+ //#endregion
205
+ //#region src/shared/color-utils/rgb-color.ts
206
+ const HEX_COLOR_REGEX = /^#[\da-f]+$/i;
207
+ const RGB_COLOR_REGEX = /^rgba?\((.*)\)$/;
208
+ const HEX_STARTING_REGEX = /[^#]/gi;
209
+ var RGBColor = class RGBColor extends Color {
210
+ constructor(red, green, blue, alpha) {
211
+ super();
212
+ this.red = red;
213
+ this.green = green;
214
+ this.blue = blue;
215
+ this.alpha = alpha;
216
+ }
217
+ static parse(value) {
218
+ let colors = [];
219
+ if (HEX_COLOR_REGEX.test(value) && [
220
+ 4,
221
+ 5,
222
+ 7,
223
+ 9
224
+ ].includes(value.length)) {
225
+ const values = (value.length < 6 ? value.replace(HEX_STARTING_REGEX, "$&$&") : value).slice(1).split("");
226
+ while (values.length > 0) colors.push(parseInt(values.splice(0, 2).join(""), 16));
227
+ colors[3] = colors[3] !== void 0 ? colors[3] / 255 : void 0;
228
+ }
229
+ const match = value.match(RGB_COLOR_REGEX);
230
+ if (match?.[1]) colors = match[1].split(",").map((value$1) => Number(value$1.trim())).map((num, i) => require_utils.clampValue(num, 0, i < 3 ? 255 : 1));
231
+ return colors.length < 3 ? void 0 : new RGBColor(colors[0], colors[1], colors[2], colors[3] ?? 1);
232
+ }
233
+ toString(format) {
234
+ switch (format) {
235
+ case "hex": return "#" + (this.red.toString(16).padStart(2, "0") + this.green.toString(16).padStart(2, "0") + this.blue.toString(16).padStart(2, "0")).toUpperCase();
236
+ case "hexa": return "#" + (this.red.toString(16).padStart(2, "0") + this.green.toString(16).padStart(2, "0") + this.blue.toString(16).padStart(2, "0") + Math.round(this.alpha * 255).toString(16).padStart(2, "0")).toUpperCase();
237
+ case "rgb": return `rgb(${this.red}, ${this.green}, ${this.blue})`;
238
+ case "css":
239
+ case "rgba": return `rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`;
240
+ case "hsl": return this.toHSL().toString("hsl");
241
+ case "hsb": return this.toHSB().toString("hsb");
242
+ default: return this.toFormat(format).toString(format);
243
+ }
244
+ }
245
+ toFormat(format) {
246
+ switch (format) {
247
+ case "rgba": return this;
248
+ case "hsba": return this.toHSB();
249
+ case "hsla": return this.toHSL();
250
+ default: throw new Error("Unsupported color conversion: rgb -> " + format);
251
+ }
252
+ }
253
+ toHexInt() {
254
+ return this.red << 16 | this.green << 8 | this.blue;
255
+ }
256
+ toHSB() {
257
+ const red = this.red / 255;
258
+ const green = this.green / 255;
259
+ const blue = this.blue / 255;
260
+ const min = Math.min(red, green, blue);
261
+ const brightness = Math.max(red, green, blue);
262
+ const chroma = brightness - min;
263
+ const saturation = brightness === 0 ? 0 : chroma / brightness;
264
+ let hue = 0;
265
+ if (chroma !== 0) {
266
+ switch (brightness) {
267
+ case red:
268
+ hue = (green - blue) / chroma + (green < blue ? 6 : 0);
269
+ break;
270
+ case green:
271
+ hue = (blue - red) / chroma + 2;
272
+ break;
273
+ case blue:
274
+ hue = (red - green) / chroma + 4;
275
+ break;
276
+ }
277
+ hue /= 6;
278
+ }
279
+ return new HSBColor(require_utils.toFixedNumber(hue * 360, 2), require_utils.toFixedNumber(saturation * 100, 2), require_utils.toFixedNumber(brightness * 100, 2), require_utils.toFixedNumber(this.alpha, 2));
280
+ }
281
+ toHSL() {
282
+ const red = this.red / 255;
283
+ const green = this.green / 255;
284
+ const blue = this.blue / 255;
285
+ const min = Math.min(red, green, blue);
286
+ const max = Math.max(red, green, blue);
287
+ const lightness = (max + min) / 2;
288
+ const chroma = max - min;
289
+ let hue = -1;
290
+ let saturation = -1;
291
+ if (chroma === 0) hue = saturation = 0;
292
+ else {
293
+ saturation = chroma / (lightness < .5 ? max + min : 2 - max - min);
294
+ switch (max) {
295
+ case red:
296
+ hue = (green - blue) / chroma + (green < blue ? 6 : 0);
297
+ break;
298
+ case green:
299
+ hue = (blue - red) / chroma + 2;
300
+ break;
301
+ case blue:
302
+ hue = (red - green) / chroma + 4;
303
+ break;
304
+ }
305
+ hue /= 6;
306
+ }
307
+ return new HSLColor(require_utils.toFixedNumber(hue * 360, 2), require_utils.toFixedNumber(saturation * 100, 2), require_utils.toFixedNumber(lightness * 100, 2), require_utils.toFixedNumber(this.alpha, 2));
308
+ }
309
+ clone() {
310
+ return new RGBColor(this.red, this.green, this.blue, this.alpha);
311
+ }
312
+ getChannelFormatOptions(channel) {
313
+ switch (channel) {
314
+ case "red":
315
+ case "green":
316
+ case "blue": return { style: "decimal" };
317
+ case "alpha": return { style: "percent" };
318
+ default: throw new Error("Unknown color channel: " + channel);
319
+ }
320
+ }
321
+ formatChannelValue(channel, locale) {
322
+ let options = this.getChannelFormatOptions(channel);
323
+ let value = this.getChannelValue(channel);
324
+ return new Intl.NumberFormat(locale, options).format(value);
325
+ }
326
+ getChannelRange(channel) {
327
+ switch (channel) {
328
+ case "red":
329
+ case "green":
330
+ case "blue": return {
331
+ minValue: 0,
332
+ maxValue: 255,
333
+ step: 1,
334
+ pageSize: 17
335
+ };
336
+ case "alpha": return {
337
+ minValue: 0,
338
+ maxValue: 1,
339
+ step: .01,
340
+ pageSize: .1
341
+ };
342
+ default: throw new Error("Unknown color channel: " + channel);
343
+ }
344
+ }
345
+ toJSON() {
346
+ return {
347
+ r: this.red,
348
+ g: this.green,
349
+ b: this.blue,
350
+ a: this.alpha
351
+ };
352
+ }
353
+ getFormat() {
354
+ return "rgba";
355
+ }
356
+ getChannels() {
357
+ return RGBColor.colorChannels;
358
+ }
359
+ };
360
+ require_defineProperty._defineProperty(RGBColor, "colorChannels", [
361
+ "red",
362
+ "green",
363
+ "blue"
364
+ ]);
365
+
366
+ //#endregion
367
+ //#region src/shared/color-utils/hsl-color.ts
368
+ const HSL_REGEX = /hsl\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsla\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/;
369
+ var HSLColor = class HSLColor extends Color {
370
+ constructor(hue, saturation, lightness, alpha) {
371
+ super();
372
+ this.hue = hue;
373
+ this.saturation = saturation;
374
+ this.lightness = lightness;
375
+ this.alpha = alpha;
376
+ }
377
+ static parse(value) {
378
+ let m;
379
+ if (m = value.match(HSL_REGEX)) {
380
+ const [h, s, l, a] = (m[1] ?? m[2]).split(",").map((n) => Number(n.trim().replace("%", "")));
381
+ return new HSLColor(require_utils.mod(h, 360), require_utils.clampValue(s, 0, 100), require_utils.clampValue(l, 0, 100), require_utils.clampValue(a ?? 1, 0, 1));
382
+ }
383
+ }
384
+ toString(format) {
385
+ switch (format) {
386
+ case "hex": return this.toRGB().toString("hex");
387
+ case "hexa": return this.toRGB().toString("hexa");
388
+ case "hsl": return `hsl(${this.hue}, ${require_utils.toFixedNumber(this.saturation, 2)}%, ${require_utils.toFixedNumber(this.lightness, 2)}%)`;
389
+ case "css":
390
+ case "hsla": return `hsla(${this.hue}, ${require_utils.toFixedNumber(this.saturation, 2)}%, ${require_utils.toFixedNumber(this.lightness, 2)}%, ${this.alpha})`;
391
+ case "hsb": return this.toHSB().toString("hsb");
392
+ case "rgb": return this.toRGB().toString("rgb");
393
+ default: return this.toFormat(format).toString(format);
394
+ }
395
+ }
396
+ toFormat(format) {
397
+ switch (format) {
398
+ case "hsla": return this;
399
+ case "hsba": return this.toHSB();
400
+ case "rgba": return this.toRGB();
401
+ default: throw new Error("Unsupported color conversion: hsl -> " + format);
402
+ }
403
+ }
404
+ /**
405
+ * Converts a HSL color to HSB.
406
+ * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_HSV.
407
+ * @returns An HSBColor object.
408
+ */
409
+ toHSB() {
410
+ let saturation = this.saturation / 100;
411
+ let lightness = this.lightness / 100;
412
+ let brightness = lightness + saturation * Math.min(lightness, 1 - lightness);
413
+ saturation = brightness === 0 ? 0 : 2 * (1 - lightness / brightness);
414
+ return new HSBColor(require_utils.toFixedNumber(this.hue, 2), require_utils.toFixedNumber(saturation * 100, 2), require_utils.toFixedNumber(brightness * 100, 2), require_utils.toFixedNumber(this.alpha, 2));
415
+ }
416
+ /**
417
+ * Converts a HSL color to RGB.
418
+ * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB_alternative.
419
+ * @returns An RGBColor object.
420
+ */
421
+ toRGB() {
422
+ let hue = this.hue;
423
+ let saturation = this.saturation / 100;
424
+ let lightness = this.lightness / 100;
425
+ let a = saturation * Math.min(lightness, 1 - lightness);
426
+ let fn = (n, k = (n + hue / 30) % 12) => lightness - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
427
+ return new RGBColor(Math.round(fn(0) * 255), Math.round(fn(8) * 255), Math.round(fn(4) * 255), require_utils.toFixedNumber(this.alpha, 2));
428
+ }
429
+ clone() {
430
+ return new HSLColor(this.hue, this.saturation, this.lightness, this.alpha);
431
+ }
432
+ getChannelFormatOptions(channel) {
433
+ switch (channel) {
434
+ case "hue": return {
435
+ style: "unit",
436
+ unit: "degree",
437
+ unitDisplay: "narrow"
438
+ };
439
+ case "saturation":
440
+ case "lightness":
441
+ case "alpha": return { style: "percent" };
442
+ default: throw new Error("Unknown color channel: " + channel);
443
+ }
444
+ }
445
+ formatChannelValue(channel, locale) {
446
+ let options = this.getChannelFormatOptions(channel);
447
+ let value = this.getChannelValue(channel);
448
+ if (channel === "saturation" || channel === "lightness") value /= 100;
449
+ return new Intl.NumberFormat(locale, options).format(value);
450
+ }
451
+ getChannelRange(channel) {
452
+ switch (channel) {
453
+ case "hue": return {
454
+ minValue: 0,
455
+ maxValue: 360,
456
+ step: 1,
457
+ pageSize: 15
458
+ };
459
+ case "saturation":
460
+ case "lightness": return {
461
+ minValue: 0,
462
+ maxValue: 100,
463
+ step: 1,
464
+ pageSize: 10
465
+ };
466
+ case "alpha": return {
467
+ minValue: 0,
468
+ maxValue: 1,
469
+ step: .01,
470
+ pageSize: .1
471
+ };
472
+ default: throw new Error("Unknown color channel: " + channel);
473
+ }
474
+ }
475
+ toJSON() {
476
+ return {
477
+ h: this.hue,
478
+ s: this.saturation,
479
+ l: this.lightness,
480
+ a: this.alpha
481
+ };
482
+ }
483
+ getFormat() {
484
+ return "hsla";
485
+ }
486
+ getChannels() {
487
+ return HSLColor.colorChannels;
488
+ }
489
+ };
490
+ require_defineProperty._defineProperty(HSLColor, "colorChannels", [
491
+ "hue",
492
+ "saturation",
493
+ "lightness"
494
+ ]);
495
+
496
+ //#endregion
497
+ //#region src/shared/color-utils/hsb-color.ts
498
+ const HSB_REGEX = /hsb\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsba\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/;
499
+ var HSBColor = class HSBColor extends Color {
500
+ constructor(hue, saturation, brightness, alpha) {
501
+ super();
502
+ this.hue = hue;
503
+ this.saturation = saturation;
504
+ this.brightness = brightness;
505
+ this.alpha = alpha;
506
+ }
507
+ static parse(value) {
508
+ let m;
509
+ if (m = value.match(HSB_REGEX)) {
510
+ const [h, s, b, a] = (m[1] ?? m[2]).split(",").map((n) => Number(n.trim().replace("%", "")));
511
+ return new HSBColor(require_utils.mod(h, 360), require_utils.clampValue(s, 0, 100), require_utils.clampValue(b, 0, 100), require_utils.clampValue(a ?? 1, 0, 1));
512
+ }
513
+ }
514
+ toString(format) {
515
+ switch (format) {
516
+ case "css": return this.toHSL().toString("css");
517
+ case "hex": return this.toRGB().toString("hex");
518
+ case "hexa": return this.toRGB().toString("hexa");
519
+ case "hsb": return `hsb(${this.hue}, ${require_utils.toFixedNumber(this.saturation, 2)}%, ${require_utils.toFixedNumber(this.brightness, 2)}%)`;
520
+ case "hsba": return `hsba(${this.hue}, ${require_utils.toFixedNumber(this.saturation, 2)}%, ${require_utils.toFixedNumber(this.brightness, 2)}%, ${this.alpha})`;
521
+ case "hsl": return this.toHSL().toString("hsl");
522
+ case "rgb": return this.toRGB().toString("rgb");
523
+ default: return this.toFormat(format).toString(format);
524
+ }
525
+ }
526
+ toFormat(format) {
527
+ switch (format) {
528
+ case "hsba": return this;
529
+ case "hsla": return this.toHSL();
530
+ case "rgba": return this.toRGB();
531
+ default: throw new Error("Unsupported color conversion: hsb -> " + format);
532
+ }
533
+ }
534
+ /**
535
+ * Converts a HSB color to HSL.
536
+ * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_HSL.
537
+ * @returns An HSLColor object.
538
+ */
539
+ toHSL() {
540
+ let saturation = this.saturation / 100;
541
+ let brightness = this.brightness / 100;
542
+ let lightness = brightness * (1 - saturation / 2);
543
+ saturation = lightness === 0 || lightness === 1 ? 0 : (brightness - lightness) / Math.min(lightness, 1 - lightness);
544
+ return new HSLColor(require_utils.toFixedNumber(this.hue, 2), require_utils.toFixedNumber(saturation * 100, 2), require_utils.toFixedNumber(lightness * 100, 2), require_utils.toFixedNumber(this.alpha, 2));
545
+ }
546
+ /**
547
+ * Converts a HSV color value to RGB.
548
+ * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB_alternative.
549
+ * @returns An RGBColor object.
550
+ */
551
+ toRGB() {
552
+ let hue = this.hue;
553
+ let saturation = this.saturation / 100;
554
+ let brightness = this.brightness / 100;
555
+ let fn = (n, k = (n + hue / 60) % 6) => brightness - saturation * brightness * Math.max(Math.min(k, 4 - k, 1), 0);
556
+ return new RGBColor(Math.round(fn(5) * 255), Math.round(fn(3) * 255), Math.round(fn(1) * 255), require_utils.toFixedNumber(this.alpha, 2));
557
+ }
558
+ clone() {
559
+ return new HSBColor(this.hue, this.saturation, this.brightness, this.alpha);
560
+ }
561
+ getChannelFormatOptions(channel) {
562
+ switch (channel) {
563
+ case "hue": return {
564
+ style: "unit",
565
+ unit: "degree",
566
+ unitDisplay: "narrow"
567
+ };
568
+ case "saturation":
569
+ case "brightness":
570
+ case "alpha": return { style: "percent" };
571
+ default: throw new Error("Unknown color channel: " + channel);
572
+ }
573
+ }
574
+ formatChannelValue(channel, locale) {
575
+ let options = this.getChannelFormatOptions(channel);
576
+ let value = this.getChannelValue(channel);
577
+ if (channel === "saturation" || channel === "brightness") value /= 100;
578
+ return new Intl.NumberFormat(locale, options).format(value);
579
+ }
580
+ getChannelRange(channel) {
581
+ switch (channel) {
582
+ case "hue": return {
583
+ minValue: 0,
584
+ maxValue: 360,
585
+ step: 1,
586
+ pageSize: 15
587
+ };
588
+ case "saturation":
589
+ case "brightness": return {
590
+ minValue: 0,
591
+ maxValue: 100,
592
+ step: 1,
593
+ pageSize: 10
594
+ };
595
+ case "alpha": return {
596
+ minValue: 0,
597
+ maxValue: 1,
598
+ step: .01,
599
+ pageSize: .1
600
+ };
601
+ default: throw new Error("Unknown color channel: " + channel);
602
+ }
603
+ }
604
+ toJSON() {
605
+ return {
606
+ h: this.hue,
607
+ s: this.saturation,
608
+ b: this.brightness,
609
+ a: this.alpha
610
+ };
611
+ }
612
+ getFormat() {
613
+ return "hsba";
614
+ }
615
+ getChannels() {
616
+ return HSBColor.colorChannels;
617
+ }
618
+ };
619
+ require_defineProperty._defineProperty(HSBColor, "colorChannels", [
620
+ "hue",
621
+ "saturation",
622
+ "brightness"
623
+ ]);
624
+
625
+ //#endregion
626
+ //#region src/shared/color-utils/native-color.ts
627
+ const nativeColors = "aliceblue:f0f8ff,antiquewhite:faebd7,aqua:00ffff,aquamarine:7fffd4,azure:f0ffff,beige:f5f5dc,bisque:ffe4c4,black:000000,blanchedalmond:ffebcd,blue:0000ff,blueviolet:8a2be2,brown:a52a2a,burlywood:deb887,cadetblue:5f9ea0,chartreuse:7fff00,chocolate:d2691e,coral:ff7f50,cornflowerblue:6495ed,cornsilk:fff8dc,crimson:dc143c,cyan:00ffff,darkblue:00008b,darkcyan:008b8b,darkgoldenrod:b8860b,darkgray:a9a9a9,darkgreen:006400,darkkhaki:bdb76b,darkmagenta:8b008b,darkolivegreen:556b2f,darkorange:ff8c00,darkorchid:9932cc,darkred:8b0000,darksalmon:e9967a,darkseagreen:8fbc8f,darkslateblue:483d8b,darkslategray:2f4f4f,darkturquoise:00ced1,darkviolet:9400d3,deeppink:ff1493,deepskyblue:00bfff,dimgray:696969,dodgerblue:1e90ff,firebrick:b22222,floralwhite:fffaf0,forestgreen:228b22,fuchsia:ff00ff,gainsboro:dcdcdc,ghostwhite:f8f8ff,gold:ffd700,goldenrod:daa520,gray:808080,green:008000,greenyellow:adff2f,honeydew:f0fff0,hotpink:ff69b4,indianred:cd5c5c,indigo:4b0082,ivory:fffff0,khaki:f0e68c,lavender:e6e6fa,lavenderblush:fff0f5,lawngreen:7cfc00,lemonchiffon:fffacd,lightblue:add8e6,lightcoral:f08080,lightcyan:e0ffff,lightgoldenrodyellow:fafad2,lightgrey:d3d3d3,lightgreen:90ee90,lightpink:ffb6c1,lightsalmon:ffa07a,lightseagreen:20b2aa,lightskyblue:87cefa,lightslategray:778899,lightsteelblue:b0c4de,lightyellow:ffffe0,lime:00ff00,limegreen:32cd32,linen:faf0e6,magenta:ff00ff,maroon:800000,mediumaquamarine:66cdaa,mediumblue:0000cd,mediumorchid:ba55d3,mediumpurple:9370d8,mediumseagreen:3cb371,mediumslateblue:7b68ee,mediumspringgreen:00fa9a,mediumturquoise:48d1cc,mediumvioletred:c71585,midnightblue:191970,mintcream:f5fffa,mistyrose:ffe4e1,moccasin:ffe4b5,navajowhite:ffdead,navy:000080,oldlace:fdf5e6,olive:808000,olivedrab:6b8e23,orange:ffa500,orangered:ff4500,orchid:da70d6,palegoldenrod:eee8aa,palegreen:98fb98,paleturquoise:afeeee,palevioletred:d87093,papayawhip:ffefd5,peachpuff:ffdab9,peru:cd853f,pink:ffc0cb,plum:dda0dd,powderblue:b0e0e6,purple:800080,rebeccapurple:663399,red:ff0000,rosybrown:bc8f8f,royalblue:4169e1,saddlebrown:8b4513,salmon:fa8072,sandybrown:f4a460,seagreen:2e8b57,seashell:fff5ee,sienna:a0522d,silver:c0c0c0,skyblue:87ceeb,slateblue:6a5acd,slategray:708090,snow:fffafa,springgreen:00ff7f,steelblue:4682b4,tan:d2b48c,teal:008080,thistle:d8bfd8,tomato:ff6347,turquoise:40e0d0,violet:ee82ee,wheat:f5deb3,white:ffffff,whitesmoke:f5f5f5,yellow:ffff00,yellowgreen:9acd32";
628
+ const makeMap = (str) => {
629
+ const map = /* @__PURE__ */ new Map();
630
+ const list = str.split(",");
631
+ for (let i = 0; i < list.length; i++) {
632
+ const [key, val] = list[i].split(":");
633
+ map.set(key, `#${val}`);
634
+ if (key.includes("gray")) map.set(key.replace("gray", "grey"), `#${val}`);
635
+ }
636
+ return map;
637
+ };
638
+ const nativeColorMap = makeMap(nativeColors);
639
+
640
+ //#endregion
641
+ //#region src/shared/color-utils/parse-color.ts
642
+ const parseColor = (value) => {
643
+ if (nativeColorMap.has(value)) return parseColor(nativeColorMap.get(value));
644
+ const result = RGBColor.parse(value) || HSBColor.parse(value) || HSLColor.parse(value);
645
+ if (!result) {
646
+ const error = /* @__PURE__ */ new Error("Invalid color value: " + value);
647
+ Error.captureStackTrace?.(error, parseColor);
648
+ throw error;
649
+ }
650
+ return result;
651
+ };
652
+ const normalizeColor = (v) => {
653
+ return typeof v === "string" ? parseColor(v) : v;
654
+ };
655
+
656
+ //#endregion
657
+ Object.defineProperty(exports, 'Color', {
658
+ enumerable: true,
659
+ get: function () {
660
+ return Color;
661
+ }
662
+ });
663
+ Object.defineProperty(exports, 'getColorAreaGradient', {
664
+ enumerable: true,
665
+ get: function () {
666
+ return getColorAreaGradient;
667
+ }
668
+ });
669
+ Object.defineProperty(exports, 'normalizeColor', {
670
+ enumerable: true,
671
+ get: function () {
672
+ return normalizeColor;
673
+ }
674
+ });
675
+ Object.defineProperty(exports, 'parseColor', {
676
+ enumerable: true,
677
+ get: function () {
678
+ return parseColor;
679
+ }
680
+ });
@@ -0,0 +1,7 @@
1
+ require('./utils-_6frwjgJ.cjs');
2
+ const require_color_utils = require('./color-utils-LER_6Zwu.cjs');
3
+
4
+ exports.Color = require_color_utils.Color;
5
+ exports.getColorAreaGradient = require_color_utils.getColorAreaGradient;
6
+ exports.normalizeColor = require_color_utils.normalizeColor;
7
+ exports.parseColor = require_color_utils.parseColor;