solve-engine 1.0.1 → 1.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 (237) hide show
  1. package/dist/{BytecodeBuilder-B0xskcv5.d.cts → BytecodeBuilder-Bp9xeTmX.d.cts} +4 -0
  2. package/dist/{BytecodeBuilder-B0xskcv5.d.ts → BytecodeBuilder-Bp9xeTmX.d.ts} +4 -0
  3. package/dist/{Configuration-B-G5gTRn.d.cts → Configuration-C9W8tJv_.d.cts} +53 -1
  4. package/dist/{Configuration-B-G5gTRn.d.ts → Configuration-C9W8tJv_.d.ts} +53 -1
  5. package/dist/{EngineError-LU7W7AgI.d.cts → EngineError-B61GS1jp.d.cts} +14 -0
  6. package/dist/{EngineError-LU7W7AgI.d.ts → EngineError-B61GS1jp.d.ts} +14 -0
  7. package/dist/FormattingSettings-CJHyxcYu.d.cts +27 -0
  8. package/dist/FormattingSettings-CJHyxcYu.d.ts +27 -0
  9. package/dist/{Lexer-D78E2yDW.d.cts → Lexer-BOs7euZe.d.cts} +58 -1
  10. package/dist/{Lexer-BN5mt30n.d.ts → Lexer-CSI_lwbW.d.ts} +58 -1
  11. package/dist/PackageCompatibility-B-7rK1TD.d.cts +76 -0
  12. package/dist/PackageCompatibility-Dh59eF-X.d.ts +76 -0
  13. package/dist/{PackageRegistry-B37mRvvz.d.cts → PackageRegistry-BHWJP83F.d.cts} +449 -11
  14. package/dist/{PackageRegistry-DCUEzbQt.d.ts → PackageRegistry-_8rDlvxI.d.ts} +449 -11
  15. package/dist/{Parselet-BaySkMV3.d.ts → Parselet-BBT8riYh.d.ts} +12 -3
  16. package/dist/{Parselet-DuI1Pjiq.d.cts → Parselet-BHcgK9S7.d.cts} +12 -3
  17. package/dist/{ScopeManager-B6GzdhVG.d.cts → ScopeManager-8vf02dwj.d.cts} +56 -5
  18. package/dist/{ScopeManager-udv4Twwq.d.ts → ScopeManager-CxA24W5n.d.ts} +56 -5
  19. package/dist/{Token-BzG5G4ja.d.cts → Token-B1hdkedD.d.cts} +9 -0
  20. package/dist/{Token-BzG5G4ja.d.ts → Token-B1hdkedD.d.ts} +9 -0
  21. package/dist/{TokenNormalizer-t_GotBxr.d.ts → TokenNormalizer-C6VzZgHa.d.ts} +1 -1
  22. package/dist/{TokenNormalizer-DGVa24Q-.d.cts → TokenNormalizer-DRc1Js1V.d.cts} +1 -1
  23. package/dist/{VMCheckpoints-DwLjivM7.d.cts → VMCheckpoints-ELYqITdF.d.cts} +3 -3
  24. package/dist/{VMCheckpoints-BiaIlOOY.d.ts → VMCheckpoints-MK--EBH2.d.ts} +3 -3
  25. package/dist/{Value-CXJqDH9J.d.cts → Value-BUi1RA3S.d.cts} +124 -5
  26. package/dist/{Value-CXJqDH9J.d.ts → Value-BUi1RA3S.d.ts} +124 -5
  27. package/dist/WorkerError-_-RkoQ5P.d.ts +75 -0
  28. package/dist/WorkerError-gzmaopj2.d.cts +75 -0
  29. package/dist/{chunk-GQCOSXMG.js → chunk-267JPOTF.js} +43 -5
  30. package/dist/chunk-267JPOTF.js.map +1 -0
  31. package/dist/{chunk-JMXUNXQS.cjs → chunk-2TZKENDH.cjs} +51 -8
  32. package/dist/chunk-2TZKENDH.cjs.map +1 -0
  33. package/dist/chunk-3OWCDIPN.js +215 -0
  34. package/dist/chunk-3OWCDIPN.js.map +1 -0
  35. package/dist/{chunk-VB37OC6I.js → chunk-4D6NIHE2.js} +40 -3
  36. package/dist/chunk-4D6NIHE2.js.map +1 -0
  37. package/dist/{chunk-TY3TLZAW.cjs → chunk-536WPM2V.cjs} +18 -2
  38. package/dist/chunk-536WPM2V.cjs.map +1 -0
  39. package/dist/chunk-5HRB36DK.js +405 -0
  40. package/dist/chunk-5HRB36DK.js.map +1 -0
  41. package/dist/chunk-5ON7PUAZ.js +12 -0
  42. package/dist/chunk-5ON7PUAZ.js.map +1 -0
  43. package/dist/{chunk-KV7UW6T6.js → chunk-7KYSUDQO.js} +12 -5
  44. package/dist/chunk-7KYSUDQO.js.map +1 -0
  45. package/dist/{chunk-6WFMPTGB.cjs → chunk-7ZX6B7SY.cjs} +774 -528
  46. package/dist/chunk-7ZX6B7SY.cjs.map +1 -0
  47. package/dist/chunk-ALYRJ72W.cjs +434 -0
  48. package/dist/chunk-ALYRJ72W.cjs.map +1 -0
  49. package/dist/{chunk-5KMIY374.cjs → chunk-B4HBEFTB.cjs} +17 -2
  50. package/dist/chunk-B4HBEFTB.cjs.map +1 -0
  51. package/dist/chunk-B7NLZMQ3.cjs +74 -0
  52. package/dist/chunk-B7NLZMQ3.cjs.map +1 -0
  53. package/dist/{chunk-UQ3UIZJC.js → chunk-BLI4NIQY.js} +6 -2
  54. package/dist/chunk-BLI4NIQY.js.map +1 -0
  55. package/dist/{chunk-BHTNFEGZ.cjs → chunk-C75AFGVD.cjs} +11 -11
  56. package/dist/{chunk-BHTNFEGZ.cjs.map → chunk-C75AFGVD.cjs.map} +1 -1
  57. package/dist/{chunk-G535KJEG.js → chunk-CCBZZQAE.js} +2 -2
  58. package/dist/{chunk-G535KJEG.js.map → chunk-CCBZZQAE.js.map} +1 -1
  59. package/dist/chunk-CKQMXMHR.cjs +219 -0
  60. package/dist/chunk-CKQMXMHR.cjs.map +1 -0
  61. package/dist/{chunk-PFUESQTW.cjs → chunk-EJ3ILXX6.cjs} +48 -2
  62. package/dist/chunk-EJ3ILXX6.cjs.map +1 -0
  63. package/dist/{chunk-526PMQOA.js → chunk-ENKKJYD3.js} +10 -4
  64. package/dist/chunk-ENKKJYD3.js.map +1 -0
  65. package/dist/{chunk-5X2PTP6F.cjs → chunk-ENRIK36Q.cjs} +2 -12
  66. package/dist/chunk-ENRIK36Q.cjs.map +1 -0
  67. package/dist/{chunk-3D7V24DG.js → chunk-ERCOHGXD.js} +17 -2
  68. package/dist/chunk-ERCOHGXD.js.map +1 -0
  69. package/dist/{chunk-IF532O7C.js → chunk-FD5ZZHEU.js} +3 -12
  70. package/dist/chunk-FD5ZZHEU.js.map +1 -0
  71. package/dist/{chunk-TBN7DEHO.js → chunk-G7Z4HJQA.js} +11 -5
  72. package/dist/chunk-G7Z4HJQA.js.map +1 -0
  73. package/dist/{chunk-QY25VWBF.js → chunk-GQMUHVE3.js} +142 -6
  74. package/dist/chunk-GQMUHVE3.js.map +1 -0
  75. package/dist/chunk-GUG7SNSV.js +1764 -0
  76. package/dist/chunk-GUG7SNSV.js.map +1 -0
  77. package/dist/{chunk-UM6BVY2S.cjs → chunk-HIQ5HSZL.cjs} +175 -43
  78. package/dist/chunk-HIQ5HSZL.cjs.map +1 -0
  79. package/dist/{chunk-HVQFNJKE.cjs → chunk-HVRVSI2Z.cjs} +104 -86
  80. package/dist/chunk-HVRVSI2Z.cjs.map +1 -0
  81. package/dist/{chunk-3LAEG75D.js → chunk-I4GAWIPW.js} +24 -6
  82. package/dist/chunk-I4GAWIPW.js.map +1 -0
  83. package/dist/{chunk-PA4VC73I.cjs → chunk-J45BCEZ4.cjs} +33 -27
  84. package/dist/chunk-J45BCEZ4.cjs.map +1 -0
  85. package/dist/{chunk-V5PYO44Y.js → chunk-JIPATHVY.js} +1853 -2638
  86. package/dist/chunk-JIPATHVY.js.map +1 -0
  87. package/dist/{chunk-YPPPYLSR.js → chunk-JJIXHXFQ.js} +5 -5
  88. package/dist/{chunk-YPPPYLSR.js.map → chunk-JJIXHXFQ.js.map} +1 -1
  89. package/dist/chunk-L2TE7PMO.cjs +14 -0
  90. package/dist/chunk-L2TE7PMO.cjs.map +1 -0
  91. package/dist/{chunk-B7TLZABL.cjs → chunk-MG6Q3DUO.cjs} +1962 -2746
  92. package/dist/chunk-MG6Q3DUO.cjs.map +1 -0
  93. package/dist/{chunk-R3PY4G7J.js → chunk-MVTOCRV2.js} +48 -3
  94. package/dist/chunk-MVTOCRV2.js.map +1 -0
  95. package/dist/{chunk-Y7FT4IQT.js → chunk-NKW7LKYU.js} +266 -28
  96. package/dist/chunk-NKW7LKYU.js.map +1 -0
  97. package/dist/{chunk-O3ANBHSA.js → chunk-NNQ2TYDF.js} +123 -5
  98. package/dist/chunk-NNQ2TYDF.js.map +1 -0
  99. package/dist/{chunk-5F4C26RU.js → chunk-OADDUPT3.js} +4 -4
  100. package/dist/{chunk-5F4C26RU.js.map → chunk-OADDUPT3.js.map} +1 -1
  101. package/dist/{chunk-3AFRJYP4.cjs → chunk-OTN6SZOD.cjs} +1868 -393
  102. package/dist/chunk-OTN6SZOD.cjs.map +1 -0
  103. package/dist/{chunk-5LI5EPGJ.cjs → chunk-QFTDTX6K.cjs} +40 -3
  104. package/dist/chunk-QFTDTX6K.cjs.map +1 -0
  105. package/dist/{chunk-HMOISHXR.js → chunk-RRLHC37V.js} +1530 -57
  106. package/dist/chunk-RRLHC37V.js.map +1 -0
  107. package/dist/chunk-SNHVVOJK.cjs +1768 -0
  108. package/dist/chunk-SNHVVOJK.cjs.map +1 -0
  109. package/dist/{chunk-HDP7VK3C.cjs → chunk-SRGQ72IR.cjs} +649 -349
  110. package/dist/chunk-SRGQ72IR.cjs.map +1 -0
  111. package/dist/{chunk-4B2CNWQU.cjs → chunk-SSV46KFA.cjs} +14 -7
  112. package/dist/chunk-SSV46KFA.cjs.map +1 -0
  113. package/dist/{chunk-AJA6LUI7.js → chunk-UO6BUV6K.js} +18 -2
  114. package/dist/chunk-UO6BUV6K.js.map +1 -0
  115. package/dist/chunk-WWQEY7BV.js +67 -0
  116. package/dist/chunk-WWQEY7BV.js.map +1 -0
  117. package/dist/{chunk-5WVP4YHP.js → chunk-WXEHD6TT.js} +333 -33
  118. package/dist/chunk-WXEHD6TT.js.map +1 -0
  119. package/dist/{chunk-47LRVGOT.cjs → chunk-XA4CKRML.cjs} +2 -2
  120. package/dist/{chunk-47LRVGOT.cjs.map → chunk-XA4CKRML.cjs.map} +1 -1
  121. package/dist/{chunk-6KFYJ6TD.cjs → chunk-XIYYHA65.cjs} +6 -2
  122. package/dist/chunk-XIYYHA65.cjs.map +1 -0
  123. package/dist/{chunk-KBSXGXPM.cjs → chunk-XJGJCF2R.cjs} +6 -6
  124. package/dist/{chunk-KBSXGXPM.cjs.map → chunk-XJGJCF2R.cjs.map} +1 -1
  125. package/dist/{chunk-YWQ6V4ZN.cjs → chunk-YTIYVHL7.cjs} +211 -75
  126. package/dist/chunk-YTIYVHL7.cjs.map +1 -0
  127. package/dist/{chunk-TMA4RCEN.js → chunk-Z7XGGLI2.js} +3 -3
  128. package/dist/{chunk-TMA4RCEN.js.map → chunk-Z7XGGLI2.js.map} +1 -1
  129. package/dist/{chunk-A2N2GFCG.cjs → chunk-ZVTWQLK4.cjs} +10 -10
  130. package/dist/{chunk-A2N2GFCG.cjs.map → chunk-ZVTWQLK4.cjs.map} +1 -1
  131. package/dist/{chunk-2XLQPQKI.cjs → chunk-ZXCESUJS.cjs} +15 -9
  132. package/dist/chunk-ZXCESUJS.cjs.map +1 -0
  133. package/dist/constants.cjs +5 -5
  134. package/dist/constants.d.cts +1 -1
  135. package/dist/constants.d.ts +1 -1
  136. package/dist/constants.js +2 -2
  137. package/dist/engine.cjs +52 -35
  138. package/dist/engine.d.cts +13 -13
  139. package/dist/engine.d.ts +13 -13
  140. package/dist/engine.js +26 -21
  141. package/dist/errors.cjs +44 -19
  142. package/dist/errors.d.cts +3 -2
  143. package/dist/errors.d.ts +3 -2
  144. package/dist/errors.js +2 -1
  145. package/dist/format.cjs +19 -169
  146. package/dist/format.cjs.map +1 -1
  147. package/dist/format.d.cts +18 -26
  148. package/dist/format.d.ts +18 -26
  149. package/dist/format.js +7 -171
  150. package/dist/format.js.map +1 -1
  151. package/dist/index.cjs +250 -31
  152. package/dist/index.cjs.map +1 -1
  153. package/dist/index.d.cts +110 -74
  154. package/dist/index.d.ts +110 -74
  155. package/dist/index.js +228 -23
  156. package/dist/index.js.map +1 -1
  157. package/dist/language.cjs +9 -9
  158. package/dist/language.d.cts +12 -12
  159. package/dist/language.d.ts +12 -12
  160. package/dist/language.js +3 -3
  161. package/dist/lexer.cjs +16 -16
  162. package/dist/lexer.d.cts +3 -3
  163. package/dist/lexer.d.ts +3 -3
  164. package/dist/lexer.js +5 -5
  165. package/dist/normalizer.cjs +10 -10
  166. package/dist/normalizer.d.cts +3 -3
  167. package/dist/normalizer.d.ts +3 -3
  168. package/dist/normalizer.js +4 -4
  169. package/dist/packages.cjs +45 -36
  170. package/dist/packages.d.cts +135 -31
  171. package/dist/packages.d.ts +135 -31
  172. package/dist/packages.js +14 -13
  173. package/dist/parser.cjs +16 -16
  174. package/dist/parser.d.cts +6 -5
  175. package/dist/parser.d.ts +6 -5
  176. package/dist/parser.js +6 -6
  177. package/dist/{pipeline-BEb3hujr.d.cts → pipeline-CtfJtPQc.d.cts} +3 -3
  178. package/dist/{pipeline-B6k5lCB7.d.ts → pipeline-DCd5M6Gk.d.ts} +3 -3
  179. package/dist/resolvers.d.cts +3 -3
  180. package/dist/resolvers.d.ts +3 -3
  181. package/dist/testing.cjs +478 -0
  182. package/dist/testing.cjs.map +1 -0
  183. package/dist/testing.d.cts +271 -0
  184. package/dist/testing.d.ts +271 -0
  185. package/dist/testing.js +470 -0
  186. package/dist/testing.js.map +1 -0
  187. package/dist/uom.cjs +16 -16
  188. package/dist/uom.d.cts +3 -3
  189. package/dist/uom.d.ts +3 -3
  190. package/dist/uom.js +6 -6
  191. package/dist/utilities.cjs +6 -5
  192. package/dist/utilities.js +2 -1
  193. package/dist/vm.cjs +34 -34
  194. package/dist/vm.d.cts +8 -8
  195. package/dist/vm.d.ts +8 -8
  196. package/dist/vm.js +9 -9
  197. package/dist/worker.cjs +493 -0
  198. package/dist/worker.cjs.map +1 -0
  199. package/dist/worker.d.cts +509 -0
  200. package/dist/worker.d.ts +509 -0
  201. package/dist/worker.js +484 -0
  202. package/dist/worker.js.map +1 -0
  203. package/package.json +21 -1
  204. package/dist/chunk-2XLQPQKI.cjs.map +0 -1
  205. package/dist/chunk-3AFRJYP4.cjs.map +0 -1
  206. package/dist/chunk-3D7V24DG.js.map +0 -1
  207. package/dist/chunk-3LAEG75D.js.map +0 -1
  208. package/dist/chunk-4B2CNWQU.cjs.map +0 -1
  209. package/dist/chunk-526PMQOA.js.map +0 -1
  210. package/dist/chunk-5KMIY374.cjs.map +0 -1
  211. package/dist/chunk-5LI5EPGJ.cjs.map +0 -1
  212. package/dist/chunk-5WVP4YHP.js.map +0 -1
  213. package/dist/chunk-5X2PTP6F.cjs.map +0 -1
  214. package/dist/chunk-6KFYJ6TD.cjs.map +0 -1
  215. package/dist/chunk-6WFMPTGB.cjs.map +0 -1
  216. package/dist/chunk-AJA6LUI7.js.map +0 -1
  217. package/dist/chunk-B7TLZABL.cjs.map +0 -1
  218. package/dist/chunk-GQCOSXMG.js.map +0 -1
  219. package/dist/chunk-HDP7VK3C.cjs.map +0 -1
  220. package/dist/chunk-HMOISHXR.js.map +0 -1
  221. package/dist/chunk-HVQFNJKE.cjs.map +0 -1
  222. package/dist/chunk-IF532O7C.js.map +0 -1
  223. package/dist/chunk-JMXUNXQS.cjs.map +0 -1
  224. package/dist/chunk-KV7UW6T6.js.map +0 -1
  225. package/dist/chunk-O3ANBHSA.js.map +0 -1
  226. package/dist/chunk-PA4VC73I.cjs.map +0 -1
  227. package/dist/chunk-PFUESQTW.cjs.map +0 -1
  228. package/dist/chunk-QY25VWBF.js.map +0 -1
  229. package/dist/chunk-R3PY4G7J.js.map +0 -1
  230. package/dist/chunk-TBN7DEHO.js.map +0 -1
  231. package/dist/chunk-TY3TLZAW.cjs.map +0 -1
  232. package/dist/chunk-UM6BVY2S.cjs.map +0 -1
  233. package/dist/chunk-UQ3UIZJC.js.map +0 -1
  234. package/dist/chunk-V5PYO44Y.js.map +0 -1
  235. package/dist/chunk-VB37OC6I.js.map +0 -1
  236. package/dist/chunk-Y7FT4IQT.js.map +0 -1
  237. package/dist/chunk-YWQ6V4ZN.cjs.map +0 -1
@@ -0,0 +1,434 @@
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
@@ -0,0 +1 @@
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"]}
@@ -227,12 +227,20 @@ var CoreErrorCodes = {
227
227
  MAP_REDUCE_ASYNC_UNSUPPORTED: "MAP_REDUCE_ASYNC_UNSUPPORTED",
228
228
  /** An algebra verb's expression argument (`BIND_UNKNOWN`'s body) calling an async plugin. Same v1 scope restriction as the two above, and likewise refused at parse time first (`SYMBOLIC_ARGUMENT_MUST_BE_SYNCHRONOUS`, packages/symbolic/). */
229
229
  SYMBOLIC_ASYNC_UNSUPPORTED: "SYMBOLIC_ASYNC_UNSUPPORTED",
230
+ /** `explainLine()` asked to derive a line that resolves data asynchronously (a live-data or async-plugin line). A derivation is a sequence of settled intermediate values, which a pending result has none of, so the line is refused rather than explained with a hole in it. */
231
+ EXPLAIN_ASYNC_UNSUPPORTED: "EXPLAIN_ASYNC_UNSUPPORTED",
230
232
  /** `pushCallFrame()`'s recursion guard, a nested `CALL_USER_FUNCTION` re-enters `executeBytecode()`, so `maxInstructions` alone can't catch e.g. `f(x) = f(x)`; this is the dedicated backstop. `recoverable: true` (the default for `.execution()`), ordinary user-written infinite recursion, not an engine bug; the guard exists precisely so it surfaces as a clear error instead of overflowing the native call stack uncatchably. */
231
233
  FUNCTION_RECURSION_LIMIT_EXCEEDED: "FUNCTION_RECURSION_LIMIT_EXCEEDED",
232
234
  /** The companion to the code above, and the half it could never see: how MANY user-defined-function calls one evaluation makes, rather than how deeply they nest. A twenty-two-line doubling chain nests twenty-two deep (legal) and makes two million calls (a fatal heap abort). Counted in `vm/AllocationBudget.ts`, because the tally has to survive `executeBytecode()` re-entering itself. Recoverable. */
233
235
  FUNCTION_CALL_LIMIT_EXCEEDED: "FUNCTION_CALL_LIMIT_EXCEEDED",
234
236
  /** A `<date> + N workdays` offset outside `date.maxOffsetYears`/`minOffsetYears`. Workdays are the one date offset that walks the calendar a day at a time, so the one whose cost is the offset; every other one moves a Date field once. Recoverable. */
235
237
  DATE_OFFSET_LIMIT_EXCEEDED: "DATE_OFFSET_LIMIT_EXCEEDED",
238
+ /** The anchor of `N working days after/before/from <expr>` was not a date (e.g. `5 working days after 3`). The grammar guarantees the count is a number, so this only fires on the anchor. Emitted as a recoverable Error value, not thrown, matching the datetime package's other type guards. See `vm/VM.ts`'s `DATE_WORKDAY_OFFSET` case. */
239
+ WORKDAY_OFFSET_EXPECTED_DATE: "WORKDAY_OFFSET_EXPECTED_DATE",
240
+ /** An endpoint of `working days between <expr> and <expr>` was not a date. Recoverable Error value. See `vm/VM.ts`'s `DATE_WORKDAYS_BETWEEN` case. */
241
+ WORKDAYS_BETWEEN_EXPECTED_DATES: "WORKDAYS_BETWEEN_EXPECTED_DATES",
242
+ /** The two endpoints of `working days between <expr> and <expr>` are further apart than `date.maxOffsetYears`/`minOffsetYears` allow the count's calendar walk to run. Recoverable Error value, the between-count's equivalent of `DATE_OFFSET_LIMIT_EXCEEDED`. See `vm/VM.ts`'s `DATE_WORKDAYS_BETWEEN` case. */
243
+ WORKDAYS_BETWEEN_RANGE_TOO_LARGE: "WORKDAYS_BETWEEN_RANGE_TOO_LARGE",
236
244
  /** A `<<`/`>>` with a bigint operand whose exact result would pass `MAX_EXACT_SHIFT_BITS`, whichever operand is the bigint. Both spellings refuse as of 1.0.0: a bigint on the left used to fall through to `x * 2^n` in doubles and report a 19,870-digit integer as Infinity. See `vm/VM.ts`'s `bigIntShift()`. Recoverable. */
237
245
  BIGINT_SHIFT_LIMIT_EXCEEDED: "BIGINT_SHIFT_LIMIT_EXCEEDED",
238
246
  /** The same ceiling for `^`, the operator it was written for: `2n ^ 100000` asks for the same 100,001-bit integer `1n << 100000` does, so the two spellings answer the same way. Also new in 1.0.0, and for the same reason: this used to fall through to the double path and answer Infinity. A fractional or negative exponent (`4n ^ 0.5`, `2n ^ -1`) has no exact answer to bound and still uses the double path. See `vm/VM.ts`'s `MAX_EXACT_POW_BITS`. Recoverable. */
@@ -313,6 +321,13 @@ var CoreErrorCodes = {
313
321
  THEREFORE_ASYNC_UNSUPPORTED: "THEREFORE_ASYNC_UNSUPPORTED",
314
322
  /** Colon-separated numbers that are not a time any clock can show ("24:00", "9:60", "100:5"). Raised by the labeled-line fallback, which used to answer them with whatever stood after the colon. */
315
323
  INVALID_TIME_LITERAL: "INVALID_TIME_LITERAL",
324
+ // ── Snapshot / restore (engine/EngineSnapshot.ts, engine/ExpressionEngine.ts) ──
325
+ /** `fromJSON()` handed an object that is not a snapshot at all, or whose serialised-shape version does not match this engine's reader. The versioning gate that refuses an incompatible snapshot clearly rather than restoring it wrongly. See `engine/EngineSnapshot.ts`'s `assertRestorable()`. */
326
+ SNAPSHOT_VERSION_MISMATCH: "SNAPSHOT_VERSION_MISMATCH",
327
+ /** A snapshot with the right envelope but internally inconsistent contents (an unrecognised number sentinel, an unknown value tag). Distinct from a version mismatch: the format is right, the payload is not. */
328
+ SNAPSHOT_MALFORMED: "SNAPSHOT_MALFORMED",
329
+ /** A value the v1 snapshot format cannot yet represent (a symbolic/algebra value, a symbolic matrix cell). Deferred to a follow-up; refused by name rather than dropped silently. */
330
+ SNAPSHOT_UNSUPPORTED_VALUE: "SNAPSHOT_UNSUPPORTED_VALUE",
316
331
  // ── Config (constants/Configuration.ts) ──
317
332
  CONFIG_PATH_NOT_FOUND: "CONFIG_PATH_NOT_FOUND",
318
333
  INVALID_CONFIG_PATH: "INVALID_CONFIG_PATH",
@@ -356,5 +371,5 @@ exports.throwIfErr = throwIfErr;
356
371
  exports.tryCatch = tryCatch;
357
372
  exports.tryCatchAsync = tryCatchAsync;
358
373
  exports.unwrapOr = unwrapOr;
359
- //# sourceMappingURL=chunk-5KMIY374.cjs.map
360
- //# sourceMappingURL=chunk-5KMIY374.cjs.map
374
+ //# sourceMappingURL=chunk-B4HBEFTB.cjs.map
375
+ //# sourceMappingURL=chunk-B4HBEFTB.cjs.map