solve-engine 1.2.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/README.md +12 -17
  2. package/dist/{BytecodeBuilder-Bp9xeTmX.d.cts → BytecodeBuilder-DGGeByAP.d.cts} +18 -0
  3. package/dist/{BytecodeBuilder-Bp9xeTmX.d.ts → BytecodeBuilder-DGGeByAP.d.ts} +18 -0
  4. package/dist/{Configuration-C9W8tJv_.d.cts → Configuration-B6W0-T67.d.cts} +17 -4
  5. package/dist/{Configuration-C9W8tJv_.d.ts → Configuration-B6W0-T67.d.ts} +17 -4
  6. package/dist/{EngineError-CNA_rHY-.d.cts → EngineError-Ce1lPkjZ.d.cts} +2 -0
  7. package/dist/{EngineError-CNA_rHY-.d.ts → EngineError-Ce1lPkjZ.d.ts} +2 -0
  8. package/dist/{PackageCompatibility-B6NX9IaN.d.cts → PackageCompatibility-Bn5jnBtA.d.cts} +2 -2
  9. package/dist/{PackageCompatibility-Ceg5XdAp.d.ts → PackageCompatibility-CIvq2MP5.d.ts} +2 -2
  10. package/dist/{PackageRegistry-DrCPQNyy.d.ts → PackageRegistry-DzeiWcv4.d.ts} +93 -172
  11. package/dist/{PackageRegistry-DnJYVw9G.d.cts → PackageRegistry-dpdurBVO.d.cts} +93 -172
  12. package/dist/{Parselet-Bhf7d0_W.d.ts → Parselet-B-zoPrTa.d.ts} +8 -5
  13. package/dist/{Parselet-Cv7S7KRt.d.cts → Parselet-C4Wu055_.d.cts} +8 -5
  14. package/dist/{ScopeManager-Bzq87GfA.d.ts → ScopeManager-C2LDOrDx.d.ts} +7 -16
  15. package/dist/{ScopeManager-DRDBVfan.d.cts → ScopeManager-D7uMXbhS.d.cts} +7 -16
  16. package/dist/{VMCheckpoints-C6c17Hbo.d.ts → VMCheckpoints-CGyFhivM.d.ts} +3 -3
  17. package/dist/{VMCheckpoints-dZxSMGHG.d.cts → VMCheckpoints-I9jg3jWR.d.cts} +3 -3
  18. package/dist/{Value-DZNQ_PU7.d.cts → Value-CCi_Eecs.d.cts} +40 -0
  19. package/dist/{Value-DZNQ_PU7.d.ts → Value-CCi_Eecs.d.ts} +40 -0
  20. package/dist/{WorkerError-Djd7GGGa.d.cts → WorkerError-B4p6PNfx.d.cts} +1 -1
  21. package/dist/{WorkerError-B7t7R2-m.d.ts → WorkerError-Dhj9BQ_A.d.ts} +1 -1
  22. package/dist/chunk-2JMFUQZH.js +2 -0
  23. package/dist/chunk-2JMFUQZH.js.map +1 -0
  24. package/dist/chunk-2LFLR3VZ.cjs +2 -0
  25. package/dist/chunk-2LFLR3VZ.cjs.map +1 -0
  26. package/dist/chunk-2RWAXT6O.js +0 -1
  27. package/dist/chunk-32GC2FHC.cjs +2 -0
  28. package/dist/chunk-32GC2FHC.cjs.map +1 -0
  29. package/dist/chunk-4BZIYU7S.cjs +3 -0
  30. package/dist/chunk-4BZIYU7S.cjs.map +1 -0
  31. package/dist/chunk-4E4YVQKK.js +5 -0
  32. package/dist/chunk-4E4YVQKK.js.map +1 -0
  33. package/dist/chunk-4QVBSG6B.cjs +2 -0
  34. package/dist/chunk-4QVBSG6B.cjs.map +1 -0
  35. package/dist/chunk-5FO4PDIG.js +2 -0
  36. package/dist/chunk-5FO4PDIG.js.map +1 -0
  37. package/dist/chunk-5IJD5L3O.cjs +2 -0
  38. package/dist/chunk-5IJD5L3O.cjs.map +1 -0
  39. package/dist/chunk-62LMTO4F.js +2 -0
  40. package/dist/chunk-62LMTO4F.js.map +1 -0
  41. package/dist/chunk-6G3PMEPA.js +2 -0
  42. package/dist/chunk-6G3PMEPA.js.map +1 -0
  43. package/dist/chunk-6INX773F.cjs +2 -0
  44. package/dist/chunk-6INX773F.cjs.map +1 -0
  45. package/dist/chunk-76F3LCIL.js +4 -0
  46. package/dist/chunk-76F3LCIL.js.map +1 -0
  47. package/dist/chunk-7BXPCWKM.cjs +2 -0
  48. package/dist/chunk-7BXPCWKM.cjs.map +1 -0
  49. package/dist/chunk-7GK3XEZF.js +2 -0
  50. package/dist/chunk-7GK3XEZF.js.map +1 -0
  51. package/dist/chunk-AXMQG5TS.cjs +2 -0
  52. package/dist/chunk-AXMQG5TS.cjs.map +1 -0
  53. package/dist/chunk-CIQOK7Q4.cjs +2 -0
  54. package/dist/chunk-CIQOK7Q4.cjs.map +1 -0
  55. package/dist/chunk-E2Q3PQ2G.js +3 -0
  56. package/dist/chunk-E2Q3PQ2G.js.map +1 -0
  57. package/dist/chunk-E6Z4NQAS.js +2 -0
  58. package/dist/chunk-E6Z4NQAS.js.map +1 -0
  59. package/dist/chunk-EFJCC6FJ.cjs +2 -0
  60. package/dist/chunk-EFJCC6FJ.cjs.map +1 -0
  61. package/dist/chunk-ESUN2THE.cjs +2 -0
  62. package/dist/chunk-ESUN2THE.cjs.map +1 -0
  63. package/dist/chunk-EVAOPEO4.js +2 -0
  64. package/dist/chunk-EVAOPEO4.js.map +1 -0
  65. package/dist/chunk-EVI6OHQH.cjs +2 -0
  66. package/dist/chunk-EVI6OHQH.cjs.map +1 -0
  67. package/dist/chunk-FDE5HWDI.cjs +2 -0
  68. package/dist/chunk-FDE5HWDI.cjs.map +1 -0
  69. package/dist/chunk-FWW3M36J.cjs +2 -0
  70. package/dist/chunk-FWW3M36J.cjs.map +1 -0
  71. package/dist/chunk-G7TBEQRQ.js +2 -0
  72. package/dist/chunk-G7TBEQRQ.js.map +1 -0
  73. package/dist/chunk-GK2OHWRF.cjs +5 -0
  74. package/dist/chunk-GK2OHWRF.cjs.map +1 -0
  75. package/dist/chunk-HFKDWQUL.js +2 -0
  76. package/dist/chunk-HFKDWQUL.js.map +1 -0
  77. package/dist/chunk-HLBYHXQD.cjs +3 -0
  78. package/dist/chunk-HLBYHXQD.cjs.map +1 -0
  79. package/dist/chunk-I52MYCVI.js +3 -0
  80. package/dist/chunk-I52MYCVI.js.map +1 -0
  81. package/dist/chunk-IANAMBJQ.cjs +2 -0
  82. package/dist/chunk-IANAMBJQ.cjs.map +1 -0
  83. package/dist/chunk-IJMNVBIS.js +2 -0
  84. package/dist/chunk-IJMNVBIS.js.map +1 -0
  85. package/dist/chunk-J4LZD4ZY.js +3 -0
  86. package/dist/chunk-J4LZD4ZY.js.map +1 -0
  87. package/dist/chunk-JAK3RAFA.cjs +2 -0
  88. package/dist/chunk-JAK3RAFA.cjs.map +1 -0
  89. package/dist/chunk-JFAJN3C2.cjs +2 -0
  90. package/dist/chunk-JFAJN3C2.cjs.map +1 -0
  91. package/dist/chunk-JPFCXLJV.js +2 -0
  92. package/dist/chunk-JPFCXLJV.js.map +1 -0
  93. package/dist/chunk-JUIJ6NRD.cjs +3 -0
  94. package/dist/chunk-JUIJ6NRD.cjs.map +1 -0
  95. package/dist/chunk-MIQBJGGR.js +2 -0
  96. package/dist/chunk-MIQBJGGR.js.map +1 -0
  97. package/dist/chunk-MPB7KUN5.js +3 -0
  98. package/dist/chunk-MPB7KUN5.js.map +1 -0
  99. package/dist/chunk-MSYX32PF.cjs +2 -0
  100. package/dist/chunk-MSYX32PF.cjs.map +1 -0
  101. package/dist/chunk-MVZUTETT.js +2 -0
  102. package/dist/chunk-MVZUTETT.js.map +1 -0
  103. package/dist/chunk-N7N7MPMK.cjs +2 -0
  104. package/dist/chunk-N7N7MPMK.cjs.map +1 -0
  105. package/dist/chunk-NGBBNL4K.cjs +1 -3
  106. package/dist/chunk-OVKDDTXO.cjs +3 -0
  107. package/dist/chunk-OVKDDTXO.cjs.map +1 -0
  108. package/dist/chunk-P6WPEUAJ.cjs +2 -0
  109. package/dist/chunk-P6WPEUAJ.cjs.map +1 -0
  110. package/dist/chunk-PS272DZJ.cjs +2 -0
  111. package/dist/chunk-PS272DZJ.cjs.map +1 -0
  112. package/dist/chunk-R2ENWQ76.js +2 -0
  113. package/dist/chunk-R2ENWQ76.js.map +1 -0
  114. package/dist/chunk-R2SZFJTT.cjs +2 -0
  115. package/dist/chunk-R2SZFJTT.cjs.map +1 -0
  116. package/dist/chunk-RAF57WYO.js +2 -0
  117. package/dist/chunk-RAF57WYO.js.map +1 -0
  118. package/dist/chunk-RSF25YSJ.js +2 -0
  119. package/dist/chunk-RSF25YSJ.js.map +1 -0
  120. package/dist/chunk-SOMGSIO4.cjs +3 -0
  121. package/dist/chunk-SOMGSIO4.cjs.map +1 -0
  122. package/dist/chunk-SYYE3QAX.cjs +2 -0
  123. package/dist/chunk-SYYE3QAX.cjs.map +1 -0
  124. package/dist/chunk-TCZSPH4A.js +2 -0
  125. package/dist/chunk-TCZSPH4A.js.map +1 -0
  126. package/dist/chunk-TLG7VZRX.cjs +2 -0
  127. package/dist/chunk-TLG7VZRX.cjs.map +1 -0
  128. package/dist/chunk-TN5E6JU6.js +2 -0
  129. package/dist/chunk-TN5E6JU6.js.map +1 -0
  130. package/dist/chunk-TRBXW6HW.js +2 -0
  131. package/dist/{chunk-AQNHHJMJ.cjs.map → chunk-TRBXW6HW.js.map} +1 -1
  132. package/dist/chunk-TTFO4YDP.cjs +2 -0
  133. package/dist/chunk-TTFO4YDP.cjs.map +1 -0
  134. package/dist/chunk-TWC7K3ZX.js +2 -0
  135. package/dist/chunk-TWC7K3ZX.js.map +1 -0
  136. package/dist/chunk-U4AEVL5Z.js +2 -0
  137. package/dist/chunk-U4AEVL5Z.js.map +1 -0
  138. package/dist/chunk-UURM7P3P.cjs +4 -0
  139. package/dist/chunk-UURM7P3P.cjs.map +1 -0
  140. package/dist/chunk-VAGS5JS7.cjs +2 -0
  141. package/dist/chunk-VAGS5JS7.cjs.map +1 -0
  142. package/dist/chunk-W2JAR233.js +2 -0
  143. package/dist/chunk-W2JAR233.js.map +1 -0
  144. package/dist/chunk-WGZ3FNHI.js +2 -0
  145. package/dist/chunk-WGZ3FNHI.js.map +1 -0
  146. package/dist/chunk-XEIDV5JP.js +2 -0
  147. package/dist/chunk-XEIDV5JP.js.map +1 -0
  148. package/dist/chunk-XNIWQHXY.js +2 -0
  149. package/dist/chunk-XNIWQHXY.js.map +1 -0
  150. package/dist/chunk-Y7O4D3BJ.cjs +2 -0
  151. package/dist/chunk-Y7O4D3BJ.cjs.map +1 -0
  152. package/dist/chunk-YAHGSBMC.js +2 -0
  153. package/dist/chunk-YAHGSBMC.js.map +1 -0
  154. package/dist/chunk-YAYBVVG2.js +3 -0
  155. package/dist/chunk-YAYBVVG2.js.map +1 -0
  156. package/dist/chunk-YJ2OPULK.js +2 -0
  157. package/dist/chunk-YJ2OPULK.js.map +1 -0
  158. package/dist/chunk-YVKHEAFT.js +2 -0
  159. package/dist/chunk-YVKHEAFT.js.map +1 -0
  160. package/dist/chunk-ZCNBT44X.cjs +2 -0
  161. package/dist/chunk-ZCNBT44X.cjs.map +1 -0
  162. package/dist/chunk-ZLRJ7TDP.cjs +2 -0
  163. package/dist/chunk-ZLRJ7TDP.cjs.map +1 -0
  164. package/dist/constants.cjs +1 -21
  165. package/dist/constants.d.cts +1 -1
  166. package/dist/constants.d.ts +1 -1
  167. package/dist/constants.js +1 -4
  168. package/dist/engine.cjs +1 -94
  169. package/dist/engine.d.cts +10 -11
  170. package/dist/engine.d.ts +10 -11
  171. package/dist/engine.js +1 -37
  172. package/dist/errors.cjs +1 -105
  173. package/dist/errors.d.cts +3 -3
  174. package/dist/errors.d.ts +3 -3
  175. package/dist/errors.js +1 -4
  176. package/dist/format.cjs +1 -26
  177. package/dist/format.d.cts +2 -2
  178. package/dist/format.d.ts +2 -2
  179. package/dist/format.js +1 -9
  180. package/dist/index.cjs +1 -314
  181. package/dist/index.cjs.map +1 -1
  182. package/dist/index.d.cts +52 -20
  183. package/dist/index.d.ts +52 -20
  184. package/dist/index.js +1 -278
  185. package/dist/index.js.map +1 -1
  186. package/dist/language.cjs +1 -369
  187. package/dist/language.cjs.map +1 -1
  188. package/dist/language.d.cts +9 -10
  189. package/dist/language.d.ts +9 -10
  190. package/dist/language.js +1 -348
  191. package/dist/language.js.map +1 -1
  192. package/dist/lexer.cjs +1 -63
  193. package/dist/lexer.js +1 -10
  194. package/dist/normalizer.cjs +1 -39
  195. package/dist/normalizer.js +1 -10
  196. package/dist/packages.cjs +1 -132
  197. package/dist/packages.d.cts +8 -9
  198. package/dist/packages.d.ts +8 -9
  199. package/dist/packages.js +1 -23
  200. package/dist/parser.cjs +1 -54
  201. package/dist/parser.d.cts +8 -8
  202. package/dist/parser.d.ts +8 -8
  203. package/dist/parser.js +1 -9
  204. package/dist/{pipeline-D-PS9gVw.d.ts → pipeline-72QmQlGx.d.ts} +1 -1
  205. package/dist/{pipeline-DtSBJ8TS.d.cts → pipeline-DCQicwWX.d.cts} +1 -1
  206. package/dist/resolvers.cjs +1 -12
  207. package/dist/resolvers.d.cts +2 -2
  208. package/dist/resolvers.d.ts +2 -2
  209. package/dist/resolvers.js +1 -3
  210. package/dist/services.cjs +1 -20
  211. package/dist/services.js +1 -3
  212. package/dist/testing.cjs +3 -477
  213. package/dist/testing.cjs.map +1 -1
  214. package/dist/testing.d.cts +9 -10
  215. package/dist/testing.d.ts +9 -10
  216. package/dist/testing.js +3 -469
  217. package/dist/testing.js.map +1 -1
  218. package/dist/uom.cjs +1 -55
  219. package/dist/uom.d.cts +2 -2
  220. package/dist/uom.d.ts +2 -2
  221. package/dist/uom.js +1 -10
  222. package/dist/utilities.cjs +1 -36
  223. package/dist/utilities.js +1 -7
  224. package/dist/vm.cjs +1 -295
  225. package/dist/vm.cjs.map +1 -1
  226. package/dist/vm.d.cts +22 -10
  227. package/dist/vm.d.ts +22 -10
  228. package/dist/vm.js +1 -193
  229. package/dist/vm.js.map +1 -1
  230. package/dist/worker.cjs +2 -492
  231. package/dist/worker.cjs.map +1 -1
  232. package/dist/worker.d.cts +16 -17
  233. package/dist/worker.d.ts +16 -17
  234. package/dist/worker.js +2 -483
  235. package/dist/worker.js.map +1 -1
  236. package/package.json +1 -13
  237. package/dist/chunk-3BOK2LDK.js +0 -17
  238. package/dist/chunk-3BOK2LDK.js.map +0 -1
  239. package/dist/chunk-3VGDNEE3.js +0 -84
  240. package/dist/chunk-3VGDNEE3.js.map +0 -1
  241. package/dist/chunk-4K5W7EH2.cjs +0 -112
  242. package/dist/chunk-4K5W7EH2.cjs.map +0 -1
  243. package/dist/chunk-5EFKSKMA.js +0 -413
  244. package/dist/chunk-5EFKSKMA.js.map +0 -1
  245. package/dist/chunk-5HRB36DK.js +0 -405
  246. package/dist/chunk-5HRB36DK.js.map +0 -1
  247. package/dist/chunk-5ON7PUAZ.js +0 -12
  248. package/dist/chunk-5ON7PUAZ.js.map +0 -1
  249. package/dist/chunk-7AXJNQMF.cjs +0 -297
  250. package/dist/chunk-7AXJNQMF.cjs.map +0 -1
  251. package/dist/chunk-7JM3F4KL.js +0 -1795
  252. package/dist/chunk-7JM3F4KL.js.map +0 -1
  253. package/dist/chunk-7USV76HV.cjs +0 -341
  254. package/dist/chunk-7USV76HV.cjs.map +0 -1
  255. package/dist/chunk-A2DZ5BEJ.cjs +0 -1930
  256. package/dist/chunk-A2DZ5BEJ.cjs.map +0 -1
  257. package/dist/chunk-ADBA3XBE.cjs +0 -20
  258. package/dist/chunk-ADBA3XBE.cjs.map +0 -1
  259. package/dist/chunk-AKNGX4TZ.cjs +0 -236
  260. package/dist/chunk-AKNGX4TZ.cjs.map +0 -1
  261. package/dist/chunk-ALYRJ72W.cjs +0 -434
  262. package/dist/chunk-ALYRJ72W.cjs.map +0 -1
  263. package/dist/chunk-AMOJYLG2.cjs +0 -1692
  264. package/dist/chunk-AMOJYLG2.cjs.map +0 -1
  265. package/dist/chunk-AOH6UR2L.js +0 -825
  266. package/dist/chunk-AOH6UR2L.js.map +0 -1
  267. package/dist/chunk-AQNHHJMJ.cjs +0 -261
  268. package/dist/chunk-B7LXJ6LC.cjs +0 -36
  269. package/dist/chunk-B7LXJ6LC.cjs.map +0 -1
  270. package/dist/chunk-BESTLPRK.cjs +0 -6919
  271. package/dist/chunk-BESTLPRK.cjs.map +0 -1
  272. package/dist/chunk-BLI4NIQY.js +0 -98
  273. package/dist/chunk-BLI4NIQY.js.map +0 -1
  274. package/dist/chunk-BSPXMGIS.js +0 -455
  275. package/dist/chunk-BSPXMGIS.js.map +0 -1
  276. package/dist/chunk-C2OMO3WN.cjs +0 -2806
  277. package/dist/chunk-C2OMO3WN.cjs.map +0 -1
  278. package/dist/chunk-CSDQMDU2.js +0 -204
  279. package/dist/chunk-CSDQMDU2.js.map +0 -1
  280. package/dist/chunk-EJ3ILXX6.cjs +0 -223
  281. package/dist/chunk-EJ3ILXX6.cjs.map +0 -1
  282. package/dist/chunk-ENRIK36Q.cjs +0 -94
  283. package/dist/chunk-ENRIK36Q.cjs.map +0 -1
  284. package/dist/chunk-F4UB4XIL.js +0 -109
  285. package/dist/chunk-F4UB4XIL.js.map +0 -1
  286. package/dist/chunk-FD5ZZHEU.js +0 -92
  287. package/dist/chunk-FD5ZZHEU.js.map +0 -1
  288. package/dist/chunk-FE4RC37D.js +0 -2801
  289. package/dist/chunk-FE4RC37D.js.map +0 -1
  290. package/dist/chunk-FEAIOR7N.cjs +0 -91
  291. package/dist/chunk-FEAIOR7N.cjs.map +0 -1
  292. package/dist/chunk-FR7RNOPT.cjs +0 -3303
  293. package/dist/chunk-FR7RNOPT.cjs.map +0 -1
  294. package/dist/chunk-G2YPPLGX.cjs +0 -484
  295. package/dist/chunk-G2YPPLGX.cjs.map +0 -1
  296. package/dist/chunk-GCM5JHMX.js +0 -88
  297. package/dist/chunk-GCM5JHMX.js.map +0 -1
  298. package/dist/chunk-GDEU72RG.cjs +0 -829
  299. package/dist/chunk-GDEU72RG.cjs.map +0 -1
  300. package/dist/chunk-HKTQCQ4Z.cjs +0 -8383
  301. package/dist/chunk-HKTQCQ4Z.cjs.map +0 -1
  302. package/dist/chunk-HWHU642X.cjs +0 -316
  303. package/dist/chunk-HWHU642X.cjs.map +0 -1
  304. package/dist/chunk-ICEKS6YC.cjs +0 -507
  305. package/dist/chunk-ICEKS6YC.cjs.map +0 -1
  306. package/dist/chunk-IJGOFP2J.js +0 -6904
  307. package/dist/chunk-IJGOFP2J.js.map +0 -1
  308. package/dist/chunk-IQJGDZOP.js +0 -333
  309. package/dist/chunk-IQJGDZOP.js.map +0 -1
  310. package/dist/chunk-IT74O4BE.cjs +0 -456
  311. package/dist/chunk-IT74O4BE.cjs.map +0 -1
  312. package/dist/chunk-KXDQKVNX.cjs +0 -459
  313. package/dist/chunk-KXDQKVNX.cjs.map +0 -1
  314. package/dist/chunk-L2TE7PMO.cjs +0 -14
  315. package/dist/chunk-L2TE7PMO.cjs.map +0 -1
  316. package/dist/chunk-L5YHV6BQ.js +0 -499
  317. package/dist/chunk-L5YHV6BQ.js.map +0 -1
  318. package/dist/chunk-LO7HU5WB.cjs +0 -209
  319. package/dist/chunk-LO7HU5WB.cjs.map +0 -1
  320. package/dist/chunk-LSALB3IN.js +0 -292
  321. package/dist/chunk-LSALB3IN.js.map +0 -1
  322. package/dist/chunk-MI7OTUHL.cjs +0 -339
  323. package/dist/chunk-MI7OTUHL.cjs.map +0 -1
  324. package/dist/chunk-MIGXCBXT.cjs +0 -381
  325. package/dist/chunk-MIGXCBXT.cjs.map +0 -1
  326. package/dist/chunk-MVTOCRV2.js +0 -213
  327. package/dist/chunk-MVTOCRV2.js.map +0 -1
  328. package/dist/chunk-N7FNVFXW.cjs +0 -32
  329. package/dist/chunk-N7FNVFXW.cjs.map +0 -1
  330. package/dist/chunk-N7OA4WPJ.js +0 -362
  331. package/dist/chunk-N7OA4WPJ.js.map +0 -1
  332. package/dist/chunk-NAWZATKT.js +0 -478
  333. package/dist/chunk-NAWZATKT.js.map +0 -1
  334. package/dist/chunk-NLNDMWZC.js +0 -31
  335. package/dist/chunk-NLNDMWZC.js.map +0 -1
  336. package/dist/chunk-ORM7CHYZ.js +0 -1531
  337. package/dist/chunk-ORM7CHYZ.js.map +0 -1
  338. package/dist/chunk-OUHT5Z36.cjs +0 -393
  339. package/dist/chunk-OUHT5Z36.cjs.map +0 -1
  340. package/dist/chunk-PCZVMMWU.cjs +0 -74
  341. package/dist/chunk-PCZVMMWU.cjs.map +0 -1
  342. package/dist/chunk-RNKDIXDV.js +0 -336
  343. package/dist/chunk-RNKDIXDV.js.map +0 -1
  344. package/dist/chunk-SBUFNJVE.js +0 -258
  345. package/dist/chunk-SBUFNJVE.js.map +0 -1
  346. package/dist/chunk-TC6BTUSU.cjs +0 -1799
  347. package/dist/chunk-TC6BTUSU.cjs.map +0 -1
  348. package/dist/chunk-TPOK3UNI.js +0 -8355
  349. package/dist/chunk-TPOK3UNI.js.map +0 -1
  350. package/dist/chunk-UF6JG5SG.js +0 -312
  351. package/dist/chunk-UF6JG5SG.js.map +0 -1
  352. package/dist/chunk-UKQHXPGW.js +0 -30
  353. package/dist/chunk-UKQHXPGW.js.map +0 -1
  354. package/dist/chunk-V4XG5QF6.js +0 -1685
  355. package/dist/chunk-V4XG5QF6.js.map +0 -1
  356. package/dist/chunk-VEKIWQ3F.cjs +0 -39
  357. package/dist/chunk-VEKIWQ3F.cjs.map +0 -1
  358. package/dist/chunk-WMQRJTAO.js +0 -3266
  359. package/dist/chunk-WMQRJTAO.js.map +0 -1
  360. package/dist/chunk-X6K3HUOY.cjs +0 -86
  361. package/dist/chunk-X6K3HUOY.cjs.map +0 -1
  362. package/dist/chunk-XBTEO4OB.js +0 -391
  363. package/dist/chunk-XBTEO4OB.js.map +0 -1
  364. package/dist/chunk-XIYYHA65.cjs +0 -101
  365. package/dist/chunk-XIYYHA65.cjs.map +0 -1
  366. package/dist/chunk-YJHY7CMN.cjs +0 -1534
  367. package/dist/chunk-YJHY7CMN.cjs.map +0 -1
  368. package/dist/chunk-YLJ4XMA6.js +0 -33
  369. package/dist/chunk-YLJ4XMA6.js.map +0 -1
  370. package/dist/chunk-YNIWOYW6.js +0 -232
  371. package/dist/chunk-YNIWOYW6.js.map +0 -1
  372. package/dist/chunk-Z2XP767T.cjs +0 -35
  373. package/dist/chunk-Z2XP767T.cjs.map +0 -1
  374. package/dist/chunk-Z4X2RWOF.js +0 -37
  375. package/dist/chunk-Z4X2RWOF.js.map +0 -1
  376. package/dist/chunk-ZN6YYPIW.js +0 -67
  377. package/dist/chunk-ZN6YYPIW.js.map +0 -1
  378. package/dist/chunk-ZNFFTYWH.js +0 -1854
  379. package/dist/chunk-ZNFFTYWH.js.map +0 -1
  380. package/dist/variables.cjs +0 -17
  381. package/dist/variables.cjs.map +0 -1
  382. package/dist/variables.d.cts +0 -87
  383. package/dist/variables.d.ts +0 -87
  384. package/dist/variables.js +0 -4
  385. package/dist/variables.js.map +0 -1
@@ -1,434 +0,0 @@
1
- 'use strict';
2
-
3
- // src/packages/colour/CssNamedColours.ts
4
- var CSS_NAMED_COLOURS = {
5
- aliceblue: [240, 248, 255],
6
- antiquewhite: [250, 235, 215],
7
- aqua: [0, 255, 255],
8
- aquamarine: [127, 255, 212],
9
- azure: [240, 255, 255],
10
- beige: [245, 245, 220],
11
- bisque: [255, 228, 196],
12
- black: [0, 0, 0],
13
- blanchedalmond: [255, 235, 205],
14
- blue: [0, 0, 255],
15
- blueviolet: [138, 43, 226],
16
- brown: [165, 42, 42],
17
- burlywood: [222, 184, 135],
18
- cadetblue: [95, 158, 160],
19
- chartreuse: [127, 255, 0],
20
- chocolate: [210, 105, 30],
21
- coral: [255, 127, 80],
22
- cornflowerblue: [100, 149, 237],
23
- cornsilk: [255, 248, 220],
24
- crimson: [220, 20, 60],
25
- cyan: [0, 255, 255],
26
- darkblue: [0, 0, 139],
27
- darkcyan: [0, 139, 139],
28
- darkgoldenrod: [184, 134, 11],
29
- darkgray: [169, 169, 169],
30
- darkgreen: [0, 100, 0],
31
- darkgrey: [169, 169, 169],
32
- darkkhaki: [189, 183, 107],
33
- darkmagenta: [139, 0, 139],
34
- darkolivegreen: [85, 107, 47],
35
- darkorange: [255, 140, 0],
36
- darkorchid: [153, 50, 204],
37
- darkred: [139, 0, 0],
38
- darksalmon: [233, 150, 122],
39
- darkseagreen: [143, 188, 143],
40
- darkslateblue: [72, 61, 139],
41
- darkslategray: [47, 79, 79],
42
- darkslategrey: [47, 79, 79],
43
- darkturquoise: [0, 206, 209],
44
- darkviolet: [148, 0, 211],
45
- deeppink: [255, 20, 147],
46
- deepskyblue: [0, 191, 255],
47
- dimgray: [105, 105, 105],
48
- dimgrey: [105, 105, 105],
49
- dodgerblue: [30, 144, 255],
50
- firebrick: [178, 34, 34],
51
- floralwhite: [255, 250, 240],
52
- forestgreen: [34, 139, 34],
53
- fuchsia: [255, 0, 255],
54
- gainsboro: [220, 220, 220],
55
- ghostwhite: [248, 248, 255],
56
- gold: [255, 215, 0],
57
- goldenrod: [218, 165, 32],
58
- gray: [128, 128, 128],
59
- green: [0, 128, 0],
60
- greenyellow: [173, 255, 47],
61
- grey: [128, 128, 128],
62
- honeydew: [240, 255, 240],
63
- hotpink: [255, 105, 180],
64
- indianred: [205, 92, 92],
65
- indigo: [75, 0, 130],
66
- ivory: [255, 255, 240],
67
- khaki: [240, 230, 140],
68
- lavender: [230, 230, 250],
69
- lavenderblush: [255, 240, 245],
70
- lawngreen: [124, 252, 0],
71
- lemonchiffon: [255, 250, 205],
72
- lightblue: [173, 216, 230],
73
- lightcoral: [240, 128, 128],
74
- lightcyan: [224, 255, 255],
75
- lightgoldenrodyellow: [250, 250, 210],
76
- lightgray: [211, 211, 211],
77
- lightgreen: [144, 238, 144],
78
- lightgrey: [211, 211, 211],
79
- lightpink: [255, 182, 193],
80
- lightsalmon: [255, 160, 122],
81
- lightseagreen: [32, 178, 170],
82
- lightskyblue: [135, 206, 250],
83
- lightslategray: [119, 136, 153],
84
- lightslategrey: [119, 136, 153],
85
- lightsteelblue: [176, 196, 222],
86
- lightyellow: [255, 255, 224],
87
- lime: [0, 255, 0],
88
- limegreen: [50, 205, 50],
89
- linen: [250, 240, 230],
90
- magenta: [255, 0, 255],
91
- maroon: [128, 0, 0],
92
- mediumaquamarine: [102, 205, 170],
93
- mediumblue: [0, 0, 205],
94
- mediumorchid: [186, 85, 211],
95
- mediumpurple: [147, 112, 219],
96
- mediumseagreen: [60, 179, 113],
97
- mediumslateblue: [123, 104, 238],
98
- mediumspringgreen: [0, 250, 154],
99
- mediumturquoise: [72, 209, 204],
100
- mediumvioletred: [199, 21, 133],
101
- midnightblue: [25, 25, 112],
102
- mintcream: [245, 255, 250],
103
- mistyrose: [255, 228, 225],
104
- moccasin: [255, 228, 181],
105
- navajowhite: [255, 222, 173],
106
- navy: [0, 0, 128],
107
- oldlace: [253, 245, 230],
108
- olive: [128, 128, 0],
109
- olivedrab: [107, 142, 35],
110
- orange: [255, 165, 0],
111
- orangered: [255, 69, 0],
112
- orchid: [218, 112, 214],
113
- palegoldenrod: [238, 232, 170],
114
- palegreen: [152, 251, 152],
115
- paleturquoise: [175, 238, 238],
116
- palevioletred: [219, 112, 147],
117
- papayawhip: [255, 239, 213],
118
- peachpuff: [255, 218, 185],
119
- peru: [205, 133, 63],
120
- pink: [255, 192, 203],
121
- plum: [221, 160, 221],
122
- powderblue: [176, 224, 230],
123
- purple: [128, 0, 128],
124
- rebeccapurple: [102, 51, 153],
125
- red: [255, 0, 0],
126
- rosybrown: [188, 143, 143],
127
- royalblue: [65, 105, 225],
128
- saddlebrown: [139, 69, 19],
129
- salmon: [250, 128, 114],
130
- sandybrown: [244, 164, 96],
131
- seagreen: [46, 139, 87],
132
- seashell: [255, 245, 238],
133
- sienna: [160, 82, 45],
134
- silver: [192, 192, 192],
135
- skyblue: [135, 206, 235],
136
- slateblue: [106, 90, 205],
137
- slategray: [112, 128, 144],
138
- slategrey: [112, 128, 144],
139
- snow: [255, 250, 250],
140
- springgreen: [0, 255, 127],
141
- steelblue: [70, 130, 180],
142
- tan: [210, 180, 140],
143
- teal: [0, 128, 128],
144
- thistle: [216, 191, 216],
145
- tomato: [255, 99, 71],
146
- turquoise: [64, 224, 208],
147
- violet: [238, 130, 238],
148
- wheat: [245, 222, 179],
149
- white: [255, 255, 255],
150
- whitesmoke: [245, 245, 245],
151
- yellow: [255, 255, 0],
152
- yellowgreen: [154, 205, 50]
153
- };
154
-
155
- // src/packages/colour/ColourMath.ts
156
- function clamp255(x) {
157
- return Math.min(255, Math.max(0, Math.round(x)));
158
- }
159
- function clamp01(x) {
160
- return Math.min(1, Math.max(0, x));
161
- }
162
- function hexByte(n) {
163
- return clamp255(n).toString(16).padStart(2, "0");
164
- }
165
- function formatAlpha(a) {
166
- return String(Number(a.toFixed(3)));
167
- }
168
- function parseHex(input) {
169
- const s = input.startsWith("#") ? input.slice(1) : input;
170
- if (!/^[0-9a-fA-F]+$/.test(s)) return null;
171
- const dbl = (h) => parseInt(h + h, 16);
172
- const pair = (h) => parseInt(h, 16);
173
- switch (s.length) {
174
- case 3:
175
- return { r: dbl(s[0]), g: dbl(s[1]), b: dbl(s[2]), a: 1, format: "hex" };
176
- case 4:
177
- return { r: dbl(s[0]), g: dbl(s[1]), b: dbl(s[2]), a: dbl(s[3]) / 255, format: "hex" };
178
- case 6:
179
- return { r: pair(s.slice(0, 2)), g: pair(s.slice(2, 4)), b: pair(s.slice(4, 6)), a: 1, format: "hex" };
180
- case 8:
181
- return {
182
- r: pair(s.slice(0, 2)),
183
- g: pair(s.slice(2, 4)),
184
- b: pair(s.slice(4, 6)),
185
- a: pair(s.slice(6, 8)) / 255,
186
- format: "hex"
187
- };
188
- default:
189
- return null;
190
- }
191
- }
192
- function namedColour(name) {
193
- const key = name.trim().toLowerCase();
194
- if (key === "transparent") return { r: 0, g: 0, b: 0, a: 0, format: "named", name: "transparent" };
195
- const rgb = CSS_NAMED_COLOURS[key];
196
- if (!rgb) return null;
197
- return { r: rgb[0], g: rgb[1], b: rgb[2], a: 1, format: "named", name: key };
198
- }
199
- function parseColour(input) {
200
- const trimmed = input.trim();
201
- if (trimmed.startsWith("#") || /^[0-9a-fA-F]{3,8}$/.test(trimmed)) {
202
- const hex = parseHex(trimmed);
203
- if (hex) return hex;
204
- }
205
- return namedColour(trimmed);
206
- }
207
- function rgbToHsl(r, g, b) {
208
- const rn = r / 255;
209
- const gn = g / 255;
210
- const bn = b / 255;
211
- const max = Math.max(rn, gn, bn);
212
- const min = Math.min(rn, gn, bn);
213
- const l = (max + min) / 2;
214
- if (max === min) return { h: 0, s: 0, l };
215
- const d = max - min;
216
- const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
217
- let h;
218
- if (max === rn) h = (gn - bn) / d + (gn < bn ? 6 : 0);
219
- else if (max === gn) h = (bn - rn) / d + 2;
220
- else h = (rn - gn) / d + 4;
221
- return { h: h * 60, s, l };
222
- }
223
- function hslToRgb(h, s, l) {
224
- if (s === 0) {
225
- const v = clamp255(l * 255);
226
- return { r: v, g: v, b: v };
227
- }
228
- const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
229
- const p = 2 * l - q;
230
- const hn = (h % 360 + 360) % 360 / 360;
231
- const hue = (t) => {
232
- let tt = t;
233
- if (tt < 0) tt += 1;
234
- if (tt > 1) tt -= 1;
235
- if (tt < 1 / 6) return p + (q - p) * 6 * tt;
236
- if (tt < 1 / 2) return q;
237
- if (tt < 2 / 3) return p + (q - p) * (2 / 3 - tt) * 6;
238
- return p;
239
- };
240
- return {
241
- r: clamp255(hue(hn + 1 / 3) * 255),
242
- g: clamp255(hue(hn) * 255),
243
- b: clamp255(hue(hn - 1 / 3) * 255)
244
- };
245
- }
246
- function toHexString(c) {
247
- const base = `#${hexByte(c.r)}${hexByte(c.g)}${hexByte(c.b)}`;
248
- return c.a < 1 ? `${base}${hexByte(c.a * 255)}` : base;
249
- }
250
- function formatColour(c) {
251
- switch (c.format) {
252
- case "rgb":
253
- return `rgb(${c.r}, ${c.g}, ${c.b})`;
254
- case "rgba":
255
- return `rgba(${c.r}, ${c.g}, ${c.b}, ${formatAlpha(c.a)})`;
256
- case "hsl": {
257
- const { h, s, l } = rgbToHsl(c.r, c.g, c.b);
258
- return `hsl(${Math.round(h)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%)`;
259
- }
260
- case "hsla": {
261
- const { h, s, l } = rgbToHsl(c.r, c.g, c.b);
262
- return `hsla(${Math.round(h)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%, ${formatAlpha(c.a)})`;
263
- }
264
- case "named":
265
- return c.name ?? toHexString(c);
266
- case "hex":
267
- default:
268
- return toHexString(c);
269
- }
270
- }
271
- function linearise(channel8) {
272
- const cs = channel8 / 255;
273
- return cs <= 0.03928 ? cs / 12.92 : Math.pow((cs + 0.055) / 1.055, 2.4);
274
- }
275
- function relativeLuminance(c) {
276
- return 0.2126 * linearise(c.r) + 0.7152 * linearise(c.g) + 0.0722 * linearise(c.b);
277
- }
278
- function contrastRatio(a, b) {
279
- const la = relativeLuminance(a) + 0.05;
280
- const lb = relativeLuminance(b) + 0.05;
281
- return la > lb ? la / lb : lb / la;
282
- }
283
- function derive(c, next) {
284
- const format = c.format === "named" ? "hex" : c.format;
285
- return {
286
- r: next.r ?? c.r,
287
- g: next.g ?? c.g,
288
- b: next.b ?? c.b,
289
- a: next.a ?? c.a,
290
- format
291
- };
292
- }
293
- function adjustHsl(c, fn) {
294
- const hsl = rgbToHsl(c.r, c.g, c.b);
295
- fn(hsl);
296
- const { r, g, b } = hslToRgb(hsl.h, hsl.s, hsl.l);
297
- return derive(c, { r, g, b });
298
- }
299
- function lighten(c, amount) {
300
- return adjustHsl(c, (hsl) => hsl.l = clamp01(hsl.l + amount));
301
- }
302
- function darken(c, amount) {
303
- return adjustHsl(c, (hsl) => hsl.l = clamp01(hsl.l - amount));
304
- }
305
- function saturate(c, amount) {
306
- return adjustHsl(c, (hsl) => hsl.s = clamp01(hsl.s + amount));
307
- }
308
- function desaturate(c, amount) {
309
- return adjustHsl(c, (hsl) => hsl.s = clamp01(hsl.s - amount));
310
- }
311
- function rotateHue(c, degrees) {
312
- return adjustHsl(c, (hsl) => hsl.h = ((hsl.h + degrees) % 360 + 360) % 360);
313
- }
314
- function complement(c) {
315
- return rotateHue(c, 180);
316
- }
317
- function grayscale(c) {
318
- const y = clamp255(0.299 * c.r + 0.587 * c.g + 0.114 * c.b);
319
- return derive(c, { r: y, g: y, b: y });
320
- }
321
- function invert(c, amount = 1) {
322
- const t = clamp01(amount);
323
- return derive(c, {
324
- r: clamp255(c.r + (255 - 2 * c.r) * t),
325
- g: clamp255(c.g + (255 - 2 * c.g) * t),
326
- b: clamp255(c.b + (255 - 2 * c.b) * t)
327
- });
328
- }
329
- function mix(a, b, weight = 0.5) {
330
- const t = clamp01(weight);
331
- const lerp = (x, y) => x * (1 - t) + y * t;
332
- const format = a.format === "named" ? "hex" : a.format;
333
- return {
334
- r: clamp255(lerp(a.r, b.r)),
335
- g: clamp255(lerp(a.g, b.g)),
336
- b: clamp255(lerp(a.b, b.b)),
337
- a: clamp01(lerp(a.a, b.a)),
338
- format
339
- };
340
- }
341
- function withAlpha(c, alpha) {
342
- const a = clamp01(alpha);
343
- let format = c.format;
344
- if (a < 1) {
345
- if (format === "rgb") format = "rgba";
346
- else if (format === "hsl") format = "hsla";
347
- else if (format === "named") format = "hex";
348
- }
349
- return { r: c.r, g: c.g, b: c.b, a, format };
350
- }
351
- var WHITE = { r: 255, g: 255, b: 255, a: 1, format: "hex" };
352
- var BLACK = { r: 0, g: 0, b: 0, a: 1, format: "hex" };
353
- var MID_GREY = { r: 128, g: 128, b: 128, a: 1};
354
- function hsvToRgb(h, s, v) {
355
- const hh = (h % 360 + 360) % 360 / 60;
356
- const c = v * s;
357
- const x = c * (1 - Math.abs(hh % 2 - 1));
358
- const m = v - c;
359
- let r = 0;
360
- let g = 0;
361
- let b = 0;
362
- if (hh < 1) [r, g, b] = [c, x, 0];
363
- else if (hh < 2) [r, g, b] = [x, c, 0];
364
- else if (hh < 3) [r, g, b] = [0, c, x];
365
- else if (hh < 4) [r, g, b] = [0, x, c];
366
- else if (hh < 5) [r, g, b] = [x, 0, c];
367
- else [r, g, b] = [c, 0, x];
368
- return { r: clamp255((r + m) * 255), g: clamp255((g + m) * 255), b: clamp255((b + m) * 255) };
369
- }
370
- function hwbToRgb(h, w, b) {
371
- const wh = clamp01(w);
372
- const bl = clamp01(b);
373
- if (wh + bl >= 1) {
374
- const grey = clamp255(wh / (wh + bl) * 255);
375
- return { r: grey, g: grey, b: grey };
376
- }
377
- const base = hslToRgb(h, 1, 0.5);
378
- const channel = (ch) => clamp255(ch * (1 - wh - bl) + wh * 255);
379
- return { r: channel(base.r), g: channel(base.g), b: channel(base.b) };
380
- }
381
- function tint(c, amount) {
382
- return mix(c, WHITE, amount);
383
- }
384
- function shade(c, amount) {
385
- return mix(c, BLACK, amount);
386
- }
387
- function tone(c, amount) {
388
- return mix(c, MID_GREY, amount);
389
- }
390
- function isDark(c) {
391
- return contrastRatio(c, WHITE) >= contrastRatio(c, BLACK);
392
- }
393
- function readableColour(background) {
394
- return isDark(background) ? WHITE : BLACK;
395
- }
396
- var WCAG_THRESHOLDS = { aa: 4.5, aaa: 7, aaLarge: 3, aaaLarge: 4.5 };
397
- function wcagLevel(a, b) {
398
- const ratio = contrastRatio(a, b);
399
- if (ratio >= WCAG_THRESHOLDS.aaa) return "AAA";
400
- if (ratio >= WCAG_THRESHOLDS.aa) return "AA";
401
- if (ratio >= WCAG_THRESHOLDS.aaLarge) return "AA Large";
402
- return "Fail";
403
- }
404
-
405
- exports.WCAG_THRESHOLDS = WCAG_THRESHOLDS;
406
- exports.clamp01 = clamp01;
407
- exports.clamp255 = clamp255;
408
- exports.complement = complement;
409
- exports.contrastRatio = contrastRatio;
410
- exports.darken = darken;
411
- exports.desaturate = desaturate;
412
- exports.formatColour = formatColour;
413
- exports.grayscale = grayscale;
414
- exports.hslToRgb = hslToRgb;
415
- exports.hsvToRgb = hsvToRgb;
416
- exports.hwbToRgb = hwbToRgb;
417
- exports.invert = invert;
418
- exports.isDark = isDark;
419
- exports.lighten = lighten;
420
- exports.mix = mix;
421
- exports.parseColour = parseColour;
422
- exports.readableColour = readableColour;
423
- exports.relativeLuminance = relativeLuminance;
424
- exports.rgbToHsl = rgbToHsl;
425
- exports.rotateHue = rotateHue;
426
- exports.saturate = saturate;
427
- exports.shade = shade;
428
- exports.tint = tint;
429
- exports.toHexString = toHexString;
430
- exports.tone = tone;
431
- exports.wcagLevel = wcagLevel;
432
- exports.withAlpha = withAlpha;
433
- //# sourceMappingURL=chunk-ALYRJ72W.cjs.map
434
- //# sourceMappingURL=chunk-ALYRJ72W.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/packages/colour/CssNamedColours.ts","../src/packages/colour/ColourMath.ts"],"names":[],"mappings":"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","file":"chunk-ALYRJ72W.cjs","sourcesContent":["/**\n * The complete CSS Color Module Level 4 named-colour set, as canonical sRGB\n * `[r, g, b]` triples (0-255). These are the same values every browser resolves\n * a keyword to, so `color(\"rebeccapurple\")` matches what the page would render.\n *\n * `transparent` is handled by the caller (it is `rgba(0, 0, 0, 0)`, an alpha the\n * triples here cannot express) and `currentColor` is deliberately absent: it is\n * context-dependent, not a fixed colour.\n */\nexport const CSS_NAMED_COLOURS: Readonly<Record<string, readonly [number, number, number]>> = {\n\taliceblue: [240, 248, 255],\n\tantiquewhite: [250, 235, 215],\n\taqua: [0, 255, 255],\n\taquamarine: [127, 255, 212],\n\tazure: [240, 255, 255],\n\tbeige: [245, 245, 220],\n\tbisque: [255, 228, 196],\n\tblack: [0, 0, 0],\n\tblanchedalmond: [255, 235, 205],\n\tblue: [0, 0, 255],\n\tblueviolet: [138, 43, 226],\n\tbrown: [165, 42, 42],\n\tburlywood: [222, 184, 135],\n\tcadetblue: [95, 158, 160],\n\tchartreuse: [127, 255, 0],\n\tchocolate: [210, 105, 30],\n\tcoral: [255, 127, 80],\n\tcornflowerblue: [100, 149, 237],\n\tcornsilk: [255, 248, 220],\n\tcrimson: [220, 20, 60],\n\tcyan: [0, 255, 255],\n\tdarkblue: [0, 0, 139],\n\tdarkcyan: [0, 139, 139],\n\tdarkgoldenrod: [184, 134, 11],\n\tdarkgray: [169, 169, 169],\n\tdarkgreen: [0, 100, 0],\n\tdarkgrey: [169, 169, 169],\n\tdarkkhaki: [189, 183, 107],\n\tdarkmagenta: [139, 0, 139],\n\tdarkolivegreen: [85, 107, 47],\n\tdarkorange: [255, 140, 0],\n\tdarkorchid: [153, 50, 204],\n\tdarkred: [139, 0, 0],\n\tdarksalmon: [233, 150, 122],\n\tdarkseagreen: [143, 188, 143],\n\tdarkslateblue: [72, 61, 139],\n\tdarkslategray: [47, 79, 79],\n\tdarkslategrey: [47, 79, 79],\n\tdarkturquoise: [0, 206, 209],\n\tdarkviolet: [148, 0, 211],\n\tdeeppink: [255, 20, 147],\n\tdeepskyblue: [0, 191, 255],\n\tdimgray: [105, 105, 105],\n\tdimgrey: [105, 105, 105],\n\tdodgerblue: [30, 144, 255],\n\tfirebrick: [178, 34, 34],\n\tfloralwhite: [255, 250, 240],\n\tforestgreen: [34, 139, 34],\n\tfuchsia: [255, 0, 255],\n\tgainsboro: [220, 220, 220],\n\tghostwhite: [248, 248, 255],\n\tgold: [255, 215, 0],\n\tgoldenrod: [218, 165, 32],\n\tgray: [128, 128, 128],\n\tgreen: [0, 128, 0],\n\tgreenyellow: [173, 255, 47],\n\tgrey: [128, 128, 128],\n\thoneydew: [240, 255, 240],\n\thotpink: [255, 105, 180],\n\tindianred: [205, 92, 92],\n\tindigo: [75, 0, 130],\n\tivory: [255, 255, 240],\n\tkhaki: [240, 230, 140],\n\tlavender: [230, 230, 250],\n\tlavenderblush: [255, 240, 245],\n\tlawngreen: [124, 252, 0],\n\tlemonchiffon: [255, 250, 205],\n\tlightblue: [173, 216, 230],\n\tlightcoral: [240, 128, 128],\n\tlightcyan: [224, 255, 255],\n\tlightgoldenrodyellow: [250, 250, 210],\n\tlightgray: [211, 211, 211],\n\tlightgreen: [144, 238, 144],\n\tlightgrey: [211, 211, 211],\n\tlightpink: [255, 182, 193],\n\tlightsalmon: [255, 160, 122],\n\tlightseagreen: [32, 178, 170],\n\tlightskyblue: [135, 206, 250],\n\tlightslategray: [119, 136, 153],\n\tlightslategrey: [119, 136, 153],\n\tlightsteelblue: [176, 196, 222],\n\tlightyellow: [255, 255, 224],\n\tlime: [0, 255, 0],\n\tlimegreen: [50, 205, 50],\n\tlinen: [250, 240, 230],\n\tmagenta: [255, 0, 255],\n\tmaroon: [128, 0, 0],\n\tmediumaquamarine: [102, 205, 170],\n\tmediumblue: [0, 0, 205],\n\tmediumorchid: [186, 85, 211],\n\tmediumpurple: [147, 112, 219],\n\tmediumseagreen: [60, 179, 113],\n\tmediumslateblue: [123, 104, 238],\n\tmediumspringgreen: [0, 250, 154],\n\tmediumturquoise: [72, 209, 204],\n\tmediumvioletred: [199, 21, 133],\n\tmidnightblue: [25, 25, 112],\n\tmintcream: [245, 255, 250],\n\tmistyrose: [255, 228, 225],\n\tmoccasin: [255, 228, 181],\n\tnavajowhite: [255, 222, 173],\n\tnavy: [0, 0, 128],\n\toldlace: [253, 245, 230],\n\tolive: [128, 128, 0],\n\tolivedrab: [107, 142, 35],\n\torange: [255, 165, 0],\n\torangered: [255, 69, 0],\n\torchid: [218, 112, 214],\n\tpalegoldenrod: [238, 232, 170],\n\tpalegreen: [152, 251, 152],\n\tpaleturquoise: [175, 238, 238],\n\tpalevioletred: [219, 112, 147],\n\tpapayawhip: [255, 239, 213],\n\tpeachpuff: [255, 218, 185],\n\tperu: [205, 133, 63],\n\tpink: [255, 192, 203],\n\tplum: [221, 160, 221],\n\tpowderblue: [176, 224, 230],\n\tpurple: [128, 0, 128],\n\trebeccapurple: [102, 51, 153],\n\tred: [255, 0, 0],\n\trosybrown: [188, 143, 143],\n\troyalblue: [65, 105, 225],\n\tsaddlebrown: [139, 69, 19],\n\tsalmon: [250, 128, 114],\n\tsandybrown: [244, 164, 96],\n\tseagreen: [46, 139, 87],\n\tseashell: [255, 245, 238],\n\tsienna: [160, 82, 45],\n\tsilver: [192, 192, 192],\n\tskyblue: [135, 206, 235],\n\tslateblue: [106, 90, 205],\n\tslategray: [112, 128, 144],\n\tslategrey: [112, 128, 144],\n\tsnow: [255, 250, 250],\n\tspringgreen: [0, 255, 127],\n\tsteelblue: [70, 130, 180],\n\ttan: [210, 180, 140],\n\tteal: [0, 128, 128],\n\tthistle: [216, 191, 216],\n\ttomato: [255, 99, 71],\n\tturquoise: [64, 224, 208],\n\tviolet: [238, 130, 238],\n\twheat: [245, 222, 179],\n\twhite: [255, 255, 255],\n\twhitesmoke: [245, 245, 245],\n\tyellow: [255, 255, 0],\n\tyellowgreen: [154, 205, 50],\n};\n","/**\n * Pure colour maths for the colour package. Everything here is a plain function\n * over numbers and {@link ColourData} with no engine imports and no side effects,\n * so it is trivially unit-testable and can be reused by a host renderer (the docs\n * notepad reads these to draw a swatch). Canonical storage is sRGB: `r`,`g`,`b`\n * are integers 0-255 and `a` is 0-1. HSL is derived on demand and re-quantised,\n * never stored, so equal-and-opposite operations return to a stable colour.\n */\nimport type { ColourData, ColourFormat } from \"@solve-js/vm/Value\";\nimport { CSS_NAMED_COLOURS } from \"./CssNamedColours\";\n\n/** Round and clamp a value to a valid 0-255 sRGB channel. */\nexport function clamp255(x: number): number {\n\treturn Math.min(255, Math.max(0, Math.round(x)));\n}\n\n/** Clamp a value to the 0-1 range used for alpha and normalised HSL. */\nexport function clamp01(x: number): number {\n\treturn Math.min(1, Math.max(0, x));\n}\n\nfunction hexByte(n: number): string {\n\treturn clamp255(n).toString(16).padStart(2, \"0\");\n}\n\n/**\n * Render the alpha channel the way CSS does: a plain decimal with no trailing\n * zeros (`1`, `0.5`, `0.333`), so `rgba(255, 0, 0, 0.5)` reads back cleanly.\n */\nfunction formatAlpha(a: number): string {\n\treturn String(Number(a.toFixed(3)));\n}\n\n// ── Parsing ─────────────────────────────────────────────────────────────\n\n/**\n * Parse a CSS hex colour: `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`,\n * case-insensitive, leading `#` optional. Three and four digit forms expand each\n * nibble (`f` becomes `ff`), matching a browser. Any other length or a non-hex\n * character returns null so the caller can raise a clear error.\n */\nexport function parseHex(input: string): ColourData | null {\n\tconst s = input.startsWith(\"#\") ? input.slice(1) : input;\n\tif (!/^[0-9a-fA-F]+$/.test(s)) return null;\n\tconst dbl = (h: string): number => parseInt(h + h, 16);\n\tconst pair = (h: string): number => parseInt(h, 16);\n\tswitch (s.length) {\n\t\tcase 3:\n\t\t\treturn { r: dbl(s[0]), g: dbl(s[1]), b: dbl(s[2]), a: 1, format: \"hex\" };\n\t\tcase 4:\n\t\t\treturn { r: dbl(s[0]), g: dbl(s[1]), b: dbl(s[2]), a: dbl(s[3]) / 255, format: \"hex\" };\n\t\tcase 6:\n\t\t\treturn { r: pair(s.slice(0, 2)), g: pair(s.slice(2, 4)), b: pair(s.slice(4, 6)), a: 1, format: \"hex\" };\n\t\tcase 8:\n\t\t\treturn {\n\t\t\t\tr: pair(s.slice(0, 2)),\n\t\t\t\tg: pair(s.slice(2, 4)),\n\t\t\t\tb: pair(s.slice(4, 6)),\n\t\t\t\ta: pair(s.slice(6, 8)) / 255,\n\t\t\t\tformat: \"hex\",\n\t\t\t};\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\n/**\n * Resolve a CSS named colour (case-insensitive), including `transparent`. Returns\n * null for an unknown keyword so the caller can raise an error.\n */\nexport function namedColour(name: string): ColourData | null {\n\tconst key = name.trim().toLowerCase();\n\tif (key === \"transparent\") return { r: 0, g: 0, b: 0, a: 0, format: \"named\", name: \"transparent\" };\n\tconst rgb = CSS_NAMED_COLOURS[key];\n\tif (!rgb) return null;\n\treturn { r: rgb[0], g: rgb[1], b: rgb[2], a: 1, format: \"named\", name: key };\n}\n\n/** Parse either a hex string or a named colour; null if neither. */\nexport function parseColour(input: string): ColourData | null {\n\tconst trimmed = input.trim();\n\tif (trimmed.startsWith(\"#\") || /^[0-9a-fA-F]{3,8}$/.test(trimmed)) {\n\t\tconst hex = parseHex(trimmed);\n\t\tif (hex) return hex;\n\t}\n\treturn namedColour(trimmed);\n}\n\n// ── RGB <-> HSL ─────────────────────────────────────────────────────────\n\n/** Convert sRGB (0-255) to HSL with h in [0, 360), s and l in [0, 1]. */\nexport function rgbToHsl(r: number, g: number, b: number): { h: number; s: number; l: number } {\n\tconst rn = r / 255;\n\tconst gn = g / 255;\n\tconst bn = b / 255;\n\tconst max = Math.max(rn, gn, bn);\n\tconst min = Math.min(rn, gn, bn);\n\tconst l = (max + min) / 2;\n\tif (max === min) return { h: 0, s: 0, l };\n\tconst d = max - min;\n\tconst s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\tlet h: number;\n\tif (max === rn) h = (gn - bn) / d + (gn < bn ? 6 : 0);\n\telse if (max === gn) h = (bn - rn) / d + 2;\n\telse h = (rn - gn) / d + 4;\n\treturn { h: h * 60, s, l };\n}\n\n/** Convert HSL (h in degrees, s and l in [0, 1]) to sRGB (0-255 integers). */\nexport function hslToRgb(h: number, s: number, l: number): { r: number; g: number; b: number } {\n\tif (s === 0) {\n\t\tconst v = clamp255(l * 255);\n\t\treturn { r: v, g: v, b: v };\n\t}\n\tconst q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\tconst p = 2 * l - q;\n\tconst hn = (((h % 360) + 360) % 360) / 360;\n\tconst hue = (t: number): number => {\n\t\tlet tt = t;\n\t\tif (tt < 0) tt += 1;\n\t\tif (tt > 1) tt -= 1;\n\t\tif (tt < 1 / 6) return p + (q - p) * 6 * tt;\n\t\tif (tt < 1 / 2) return q;\n\t\tif (tt < 2 / 3) return p + (q - p) * (2 / 3 - tt) * 6;\n\t\treturn p;\n\t};\n\treturn {\n\t\tr: clamp255(hue(hn + 1 / 3) * 255),\n\t\tg: clamp255(hue(hn) * 255),\n\t\tb: clamp255(hue(hn - 1 / 3) * 255),\n\t};\n}\n\n// ── Display ─────────────────────────────────────────────────────────────\n\n/** Canonical hex string, `#rrggbb`, extended to `#rrggbbaa` only when a < 1. */\nexport function toHexString(c: ColourData): string {\n\tconst base = `#${hexByte(c.r)}${hexByte(c.g)}${hexByte(c.b)}`;\n\treturn c.a < 1 ? `${base}${hexByte(c.a * 255)}` : base;\n}\n\n/**\n * Render a colour as the CSS string matching its authored `format`. Always valid\n * CSS, so a host can drop it straight into a `background` (this is both the\n * displayed answer text and the DTO `css` field).\n */\nexport function formatColour(c: ColourData): string {\n\tswitch (c.format) {\n\t\tcase \"rgb\":\n\t\t\treturn `rgb(${c.r}, ${c.g}, ${c.b})`;\n\t\tcase \"rgba\":\n\t\t\treturn `rgba(${c.r}, ${c.g}, ${c.b}, ${formatAlpha(c.a)})`;\n\t\tcase \"hsl\": {\n\t\t\tconst { h, s, l } = rgbToHsl(c.r, c.g, c.b);\n\t\t\treturn `hsl(${Math.round(h)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%)`;\n\t\t}\n\t\tcase \"hsla\": {\n\t\t\tconst { h, s, l } = rgbToHsl(c.r, c.g, c.b);\n\t\t\treturn `hsla(${Math.round(h)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%, ${formatAlpha(c.a)})`;\n\t\t}\n\t\tcase \"named\":\n\t\t\treturn c.name ?? toHexString(c);\n\t\tcase \"hex\":\n\t\tdefault:\n\t\t\treturn toHexString(c);\n\t}\n}\n\n// ── WCAG luminance and contrast ─────────────────────────────────────────\n\nfunction linearise(channel8: number): number {\n\tconst cs = channel8 / 255;\n\treturn cs <= 0.03928 ? cs / 12.92 : Math.pow((cs + 0.055) / 1.055, 2.4);\n}\n\n/** WCAG relative luminance, 0 (black) to 1 (white). Alpha is ignored, per WCAG. */\nexport function relativeLuminance(c: ColourData): number {\n\treturn 0.2126 * linearise(c.r) + 0.7152 * linearise(c.g) + 0.0722 * linearise(c.b);\n}\n\n/** WCAG contrast ratio between two colours, 1 (identical) to 21 (black on white). */\nexport function contrastRatio(a: ColourData, b: ColourData): number {\n\tconst la = relativeLuminance(a) + 0.05;\n\tconst lb = relativeLuminance(b) + 0.05;\n\treturn la > lb ? la / lb : lb / la;\n}\n\n// ── Operations ──────────────────────────────────────────────────────────\n\n/**\n * Rebuild a colour from new channels, preserving the display format and alpha\n * unless overridden. A `named` colour whose channels change is no longer that\n * keyword, so it falls back to hex display.\n */\nfunction derive(c: ColourData, next: { r?: number; g?: number; b?: number; a?: number }): ColourData {\n\tconst format: ColourFormat = c.format === \"named\" ? \"hex\" : c.format;\n\treturn {\n\t\tr: next.r ?? c.r,\n\t\tg: next.g ?? c.g,\n\t\tb: next.b ?? c.b,\n\t\ta: next.a ?? c.a,\n\t\tformat,\n\t};\n}\n\nfunction adjustHsl(c: ColourData, fn: (hsl: { h: number; s: number; l: number }) => void): ColourData {\n\tconst hsl = rgbToHsl(c.r, c.g, c.b);\n\tfn(hsl);\n\tconst { r, g, b } = hslToRgb(hsl.h, hsl.s, hsl.l);\n\treturn derive(c, { r, g, b });\n}\n\n/** Increase lightness by `amount` (a fraction 0-1). */\nexport function lighten(c: ColourData, amount: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.l = clamp01(hsl.l + amount)));\n}\n\n/** Decrease lightness by `amount`. */\nexport function darken(c: ColourData, amount: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.l = clamp01(hsl.l - amount)));\n}\n\n/** Increase saturation by `amount`. */\nexport function saturate(c: ColourData, amount: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.s = clamp01(hsl.s + amount)));\n}\n\n/** Decrease saturation by `amount`. */\nexport function desaturate(c: ColourData, amount: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.s = clamp01(hsl.s - amount)));\n}\n\n/** Rotate the hue by `degrees` (wraps at 360). */\nexport function rotateHue(c: ColourData, degrees: number): ColourData {\n\treturn adjustHsl(c, (hsl) => (hsl.h = ((hsl.h + degrees) % 360 + 360) % 360));\n}\n\n/** The colour on the opposite side of the wheel (hue + 180). */\nexport function complement(c: ColourData): ColourData {\n\treturn rotateHue(c, 180);\n}\n\n/** Convert to grey using Rec.601 luma, preserving alpha. */\nexport function grayscale(c: ColourData): ColourData {\n\tconst y = clamp255(0.299 * c.r + 0.587 * c.g + 0.114 * c.b);\n\treturn derive(c, { r: y, g: y, b: y });\n}\n\n/** Invert each channel by `amount` (1 = full inversion), preserving alpha. */\nexport function invert(c: ColourData, amount = 1): ColourData {\n\tconst t = clamp01(amount);\n\treturn derive(c, {\n\t\tr: clamp255(c.r + (255 - 2 * c.r) * t),\n\t\tg: clamp255(c.g + (255 - 2 * c.g) * t),\n\t\tb: clamp255(c.b + (255 - 2 * c.b) * t),\n\t});\n}\n\n/**\n * Blend two colours by linear sRGB interpolation, `weight` toward `b` (0.5 is the\n * midpoint). This matches Sass `mix()` and DevTools blending; it is not\n * perceptually uniform (that would be Oklab), a deliberate zero-dependency choice.\n */\nexport function mix(a: ColourData, b: ColourData, weight = 0.5): ColourData {\n\tconst t = clamp01(weight);\n\tconst lerp = (x: number, y: number): number => x * (1 - t) + y * t;\n\tconst format: ColourFormat = a.format === \"named\" ? \"hex\" : a.format;\n\treturn {\n\t\tr: clamp255(lerp(a.r, b.r)),\n\t\tg: clamp255(lerp(a.g, b.g)),\n\t\tb: clamp255(lerp(a.b, b.b)),\n\t\ta: clamp01(lerp(a.a, b.a)),\n\t\tformat,\n\t};\n}\n\n/** Set the alpha channel, upgrading the display format so the alpha shows. */\nexport function withAlpha(c: ColourData, alpha: number): ColourData {\n\tconst a = clamp01(alpha);\n\tlet format: ColourFormat = c.format;\n\tif (a < 1) {\n\t\tif (format === \"rgb\") format = \"rgba\";\n\t\telse if (format === \"hsl\") format = \"hsla\";\n\t\telse if (format === \"named\") format = \"hex\";\n\t}\n\treturn { r: c.r, g: c.g, b: c.b, a, format };\n}\n\n// ── Additional colour spaces and helpers ────────────────────────────────\n\n/** Opaque white and black, reused by the luminance-based helpers below. */\nconst WHITE: ColourData = { r: 255, g: 255, b: 255, a: 1, format: \"hex\" };\nconst BLACK: ColourData = { r: 0, g: 0, b: 0, a: 1, format: \"hex\" };\nconst MID_GREY: ColourData = { r: 128, g: 128, b: 128, a: 1, format: \"hex\" };\n\n/**\n * Convert HSV/HSB (hue in degrees, saturation and value in 0-1) to sRGB. HSV is\n * the wheel most colour pickers present (DevTools included), distinct from HSL:\n * `value` is how bright the colour is, where HSL's `lightness` is how close to\n * white or black.\n */\nexport function hsvToRgb(h: number, s: number, v: number): { r: number; g: number; b: number } {\n\tconst hh = ((((h % 360) + 360) % 360)) / 60;\n\tconst c = v * s;\n\tconst x = c * (1 - Math.abs((hh % 2) - 1));\n\tconst m = v - c;\n\tlet r = 0;\n\tlet g = 0;\n\tlet b = 0;\n\tif (hh < 1) [r, g, b] = [c, x, 0];\n\telse if (hh < 2) [r, g, b] = [x, c, 0];\n\telse if (hh < 3) [r, g, b] = [0, c, x];\n\telse if (hh < 4) [r, g, b] = [0, x, c];\n\telse if (hh < 5) [r, g, b] = [x, 0, c];\n\telse [r, g, b] = [c, 0, x];\n\treturn { r: clamp255((r + m) * 255), g: clamp255((g + m) * 255), b: clamp255((b + m) * 255) };\n}\n\n/**\n * Convert HWB (hue in degrees, whiteness and blackness in 0-1) to sRGB, the CSS\n * Color 4 model: start from the pure hue and mix in white and black. When\n * whiteness and blackness sum to 1 or more the hue washes out to grey.\n */\nexport function hwbToRgb(h: number, w: number, b: number): { r: number; g: number; b: number } {\n\tconst wh = clamp01(w);\n\tconst bl = clamp01(b);\n\tif (wh + bl >= 1) {\n\t\tconst grey = clamp255((wh / (wh + bl)) * 255);\n\t\treturn { r: grey, g: grey, b: grey };\n\t}\n\tconst base = hslToRgb(h, 1, 0.5);\n\tconst channel = (ch: number): number => clamp255(ch * (1 - wh - bl) + wh * 255);\n\treturn { r: channel(base.r), g: channel(base.g), b: channel(base.b) };\n}\n\n/** Mix toward white by `amount` (a tint). */\nexport function tint(c: ColourData, amount: number): ColourData {\n\treturn mix(c, WHITE, amount);\n}\n\n/** Mix toward black by `amount` (a shade). */\nexport function shade(c: ColourData, amount: number): ColourData {\n\treturn mix(c, BLACK, amount);\n}\n\n/** Mix toward mid-grey by `amount` (a tone). */\nexport function tone(c: ColourData, amount: number): ColourData {\n\treturn mix(c, MID_GREY, amount);\n}\n\n/**\n * Whether a colour reads as dark, meaning white text on it has at least as much\n * WCAG contrast as black text does. Backs {@link readableColour} and the\n * `isdark`/`islight` predicates.\n */\nexport function isDark(c: ColourData): boolean {\n\treturn contrastRatio(c, WHITE) >= contrastRatio(c, BLACK);\n}\n\n/** Black or white, whichever has the higher WCAG contrast against `background`. */\nexport function readableColour(background: ColourData): ColourData {\n\treturn isDark(background) ? WHITE : BLACK;\n}\n\n/**\n * WCAG 2.x minimum contrast ratios. Normal text needs 4.5 (AA) or 7 (AAA); large\n * text (>= 18pt, or >= 14pt bold) and UI components need 3 (AA) or 4.5 (AAA).\n */\nexport const WCAG_THRESHOLDS = { aa: 4.5, aaa: 7, aaLarge: 3, aaaLarge: 4.5 } as const;\n\n/** The four WCAG ratings this package reports, best first. */\nexport type WcagLevel = \"AAA\" | \"AA\" | \"AA Large\" | \"Fail\";\n\n/**\n * The best WCAG 2.x rating two colours pass for normal-size text: `AAA` (ratio\n * >= 7), `AA` (>= 4.5), `AA Large` (>= 3, which meets AA only for large text or\n * UI), or `Fail` (< 3). This is the badge a contrast checker shows.\n */\nexport function wcagLevel(a: ColourData, b: ColourData): WcagLevel {\n\tconst ratio = contrastRatio(a, b);\n\tif (ratio >= WCAG_THRESHOLDS.aaa) return \"AAA\";\n\tif (ratio >= WCAG_THRESHOLDS.aa) return \"AA\";\n\tif (ratio >= WCAG_THRESHOLDS.aaLarge) return \"AA Large\";\n\treturn \"Fail\";\n}\n"]}