recoder-code 2.4.1 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1059) hide show
  1. package/package.json +7 -18
  2. package/packages/cli/package.json +1 -5
  3. package/packages/core/package.json +1 -5
  4. package/packages/cli/node_modules/@asamuzakjp/css-color/LICENSE +0 -21
  5. package/packages/cli/node_modules/@asamuzakjp/css-color/README.md +0 -316
  6. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/browser/css-color.min.js +0 -220
  7. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/browser/css-color.min.js.map +0 -1
  8. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/cjs/index.cjs +0 -5484
  9. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/cjs/index.cjs.map +0 -1
  10. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/cjs/index.d.cts +0 -109
  11. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/index.d.ts +0 -18
  12. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/index.js +0 -30
  13. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/index.js.map +0 -1
  14. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/cache.d.ts +0 -44
  15. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/cache.js +0 -82
  16. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/cache.js.map +0 -1
  17. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/color.d.ts +0 -537
  18. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/color.js +0 -2792
  19. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/color.js.map +0 -1
  20. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/common.d.ts +0 -21
  21. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/common.js +0 -7
  22. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/common.js.map +0 -1
  23. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/constant.d.ts +0 -41
  24. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/constant.js +0 -97
  25. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/constant.js.map +0 -1
  26. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/convert.d.ts +0 -99
  27. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/convert.js +0 -361
  28. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/convert.js.map +0 -1
  29. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-calc.d.ts +0 -89
  30. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-calc.js +0 -860
  31. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-calc.js.map +0 -1
  32. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-gradient.d.ts +0 -54
  33. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-gradient.js +0 -195
  34. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-gradient.js.map +0 -1
  35. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-var.d.ts +0 -31
  36. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-var.js +0 -195
  37. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-var.js.map +0 -1
  38. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/relative-color.d.ts +0 -29
  39. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/relative-color.js +0 -487
  40. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/relative-color.js.map +0 -1
  41. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/resolve.d.ts +0 -52
  42. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/resolve.js +0 -288
  43. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/resolve.js.map +0 -1
  44. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/typedef.d.ts +0 -79
  45. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/util.d.ts +0 -45
  46. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/util.js +0 -279
  47. package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/util.js.map +0 -1
  48. package/packages/cli/node_modules/@asamuzakjp/css-color/package.json +0 -81
  49. package/packages/cli/node_modules/@asamuzakjp/css-color/src/index.ts +0 -27
  50. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/cache.ts +0 -114
  51. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/color.ts +0 -3459
  52. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/common.ts +0 -31
  53. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/constant.ts +0 -66
  54. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/convert.ts +0 -469
  55. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/css-calc.ts +0 -965
  56. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/css-gradient.ts +0 -289
  57. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/css-var.ts +0 -250
  58. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/relative-color.ts +0 -580
  59. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/resolve.ts +0 -379
  60. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/typedef.ts +0 -87
  61. package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/util.ts +0 -336
  62. package/packages/cli/node_modules/@types/node/LICENSE +0 -21
  63. package/packages/cli/node_modules/@types/node/README.md +0 -15
  64. package/packages/cli/node_modules/@types/node/assert/strict.d.ts +0 -8
  65. package/packages/cli/node_modules/@types/node/assert.d.ts +0 -1062
  66. package/packages/cli/node_modules/@types/node/async_hooks.d.ts +0 -605
  67. package/packages/cli/node_modules/@types/node/buffer.buffer.d.ts +0 -462
  68. package/packages/cli/node_modules/@types/node/buffer.d.ts +0 -1932
  69. package/packages/cli/node_modules/@types/node/child_process.d.ts +0 -1452
  70. package/packages/cli/node_modules/@types/node/cluster.d.ts +0 -578
  71. package/packages/cli/node_modules/@types/node/compatibility/disposable.d.ts +0 -16
  72. package/packages/cli/node_modules/@types/node/compatibility/index.d.ts +0 -9
  73. package/packages/cli/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  74. package/packages/cli/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
  75. package/packages/cli/node_modules/@types/node/console.d.ts +0 -452
  76. package/packages/cli/node_modules/@types/node/constants.d.ts +0 -21
  77. package/packages/cli/node_modules/@types/node/crypto.d.ts +0 -4570
  78. package/packages/cli/node_modules/@types/node/dgram.d.ts +0 -596
  79. package/packages/cli/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
  80. package/packages/cli/node_modules/@types/node/dns/promises.d.ts +0 -479
  81. package/packages/cli/node_modules/@types/node/dns.d.ts +0 -871
  82. package/packages/cli/node_modules/@types/node/domain.d.ts +0 -170
  83. package/packages/cli/node_modules/@types/node/events.d.ts +0 -977
  84. package/packages/cli/node_modules/@types/node/fs/promises.d.ts +0 -1248
  85. package/packages/cli/node_modules/@types/node/fs.d.ts +0 -4362
  86. package/packages/cli/node_modules/@types/node/globals.d.ts +0 -170
  87. package/packages/cli/node_modules/@types/node/globals.typedarray.d.ts +0 -21
  88. package/packages/cli/node_modules/@types/node/http.d.ts +0 -2031
  89. package/packages/cli/node_modules/@types/node/http2.d.ts +0 -2623
  90. package/packages/cli/node_modules/@types/node/https.d.ts +0 -549
  91. package/packages/cli/node_modules/@types/node/index.d.ts +0 -93
  92. package/packages/cli/node_modules/@types/node/inspector.generated.d.ts +0 -3966
  93. package/packages/cli/node_modules/@types/node/module.d.ts +0 -539
  94. package/packages/cli/node_modules/@types/node/net.d.ts +0 -1011
  95. package/packages/cli/node_modules/@types/node/os.d.ts +0 -495
  96. package/packages/cli/node_modules/@types/node/package.json +0 -140
  97. package/packages/cli/node_modules/@types/node/path.d.ts +0 -200
  98. package/packages/cli/node_modules/@types/node/perf_hooks.d.ts +0 -963
  99. package/packages/cli/node_modules/@types/node/process.d.ts +0 -1956
  100. package/packages/cli/node_modules/@types/node/punycode.d.ts +0 -117
  101. package/packages/cli/node_modules/@types/node/querystring.d.ts +0 -152
  102. package/packages/cli/node_modules/@types/node/readline/promises.d.ts +0 -162
  103. package/packages/cli/node_modules/@types/node/readline.d.ts +0 -589
  104. package/packages/cli/node_modules/@types/node/repl.d.ts +0 -430
  105. package/packages/cli/node_modules/@types/node/sea.d.ts +0 -153
  106. package/packages/cli/node_modules/@types/node/stream/consumers.d.ts +0 -38
  107. package/packages/cli/node_modules/@types/node/stream/promises.d.ts +0 -90
  108. package/packages/cli/node_modules/@types/node/stream/web.d.ts +0 -533
  109. package/packages/cli/node_modules/@types/node/stream.d.ts +0 -1668
  110. package/packages/cli/node_modules/@types/node/string_decoder.d.ts +0 -67
  111. package/packages/cli/node_modules/@types/node/test.d.ts +0 -1787
  112. package/packages/cli/node_modules/@types/node/timers/promises.d.ts +0 -108
  113. package/packages/cli/node_modules/@types/node/timers.d.ts +0 -286
  114. package/packages/cli/node_modules/@types/node/tls.d.ts +0 -1231
  115. package/packages/cli/node_modules/@types/node/trace_events.d.ts +0 -197
  116. package/packages/cli/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -460
  117. package/packages/cli/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -19
  118. package/packages/cli/node_modules/@types/node/ts5.6/index.d.ts +0 -93
  119. package/packages/cli/node_modules/@types/node/tty.d.ts +0 -208
  120. package/packages/cli/node_modules/@types/node/url.d.ts +0 -964
  121. package/packages/cli/node_modules/@types/node/util.d.ts +0 -2331
  122. package/packages/cli/node_modules/@types/node/v8.d.ts +0 -808
  123. package/packages/cli/node_modules/@types/node/vm.d.ts +0 -1030
  124. package/packages/cli/node_modules/@types/node/wasi.d.ts +0 -181
  125. package/packages/cli/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  126. package/packages/cli/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  127. package/packages/cli/node_modules/@types/node/web-globals/events.d.ts +0 -97
  128. package/packages/cli/node_modules/@types/node/web-globals/fetch.d.ts +0 -46
  129. package/packages/cli/node_modules/@types/node/worker_threads.d.ts +0 -715
  130. package/packages/cli/node_modules/@types/node/zlib.d.ts +0 -539
  131. package/packages/cli/node_modules/cssstyle/LICENSE +0 -20
  132. package/packages/cli/node_modules/cssstyle/README.md +0 -11
  133. package/packages/cli/node_modules/cssstyle/lib/CSSStyleDeclaration.js +0 -613
  134. package/packages/cli/node_modules/cssstyle/lib/allExtraProperties.js +0 -49
  135. package/packages/cli/node_modules/cssstyle/lib/allWebkitProperties.js +0 -114
  136. package/packages/cli/node_modules/cssstyle/lib/generated/allProperties.js +0 -615
  137. package/packages/cli/node_modules/cssstyle/lib/generated/implementedProperties.js +0 -79
  138. package/packages/cli/node_modules/cssstyle/lib/generated/properties.js +0 -2673
  139. package/packages/cli/node_modules/cssstyle/lib/parsers.js +0 -537
  140. package/packages/cli/node_modules/cssstyle/lib/properties/background.js +0 -52
  141. package/packages/cli/node_modules/cssstyle/lib/properties/backgroundAttachment.js +0 -32
  142. package/packages/cli/node_modules/cssstyle/lib/properties/backgroundColor.js +0 -35
  143. package/packages/cli/node_modules/cssstyle/lib/properties/backgroundImage.js +0 -31
  144. package/packages/cli/node_modules/cssstyle/lib/properties/backgroundPosition.js +0 -52
  145. package/packages/cli/node_modules/cssstyle/lib/properties/backgroundRepeat.js +0 -32
  146. package/packages/cli/node_modules/cssstyle/lib/properties/border.js +0 -42
  147. package/packages/cli/node_modules/cssstyle/lib/properties/borderBottom.js +0 -40
  148. package/packages/cli/node_modules/cssstyle/lib/properties/borderBottomColor.js +0 -35
  149. package/packages/cli/node_modules/cssstyle/lib/properties/borderBottomStyle.js +0 -50
  150. package/packages/cli/node_modules/cssstyle/lib/properties/borderBottomWidth.js +0 -36
  151. package/packages/cli/node_modules/cssstyle/lib/properties/borderCollapse.js +0 -26
  152. package/packages/cli/node_modules/cssstyle/lib/properties/borderColor.js +0 -43
  153. package/packages/cli/node_modules/cssstyle/lib/properties/borderLeft.js +0 -40
  154. package/packages/cli/node_modules/cssstyle/lib/properties/borderLeftColor.js +0 -35
  155. package/packages/cli/node_modules/cssstyle/lib/properties/borderLeftStyle.js +0 -50
  156. package/packages/cli/node_modules/cssstyle/lib/properties/borderLeftWidth.js +0 -36
  157. package/packages/cli/node_modules/cssstyle/lib/properties/borderRight.js +0 -40
  158. package/packages/cli/node_modules/cssstyle/lib/properties/borderRightColor.js +0 -35
  159. package/packages/cli/node_modules/cssstyle/lib/properties/borderRightStyle.js +0 -50
  160. package/packages/cli/node_modules/cssstyle/lib/properties/borderRightWidth.js +0 -36
  161. package/packages/cli/node_modules/cssstyle/lib/properties/borderSpacing.js +0 -45
  162. package/packages/cli/node_modules/cssstyle/lib/properties/borderStyle.js +0 -54
  163. package/packages/cli/node_modules/cssstyle/lib/properties/borderTop.js +0 -40
  164. package/packages/cli/node_modules/cssstyle/lib/properties/borderTopColor.js +0 -35
  165. package/packages/cli/node_modules/cssstyle/lib/properties/borderTopStyle.js +0 -50
  166. package/packages/cli/node_modules/cssstyle/lib/properties/borderTopWidth.js +0 -36
  167. package/packages/cli/node_modules/cssstyle/lib/properties/borderWidth.js +0 -44
  168. package/packages/cli/node_modules/cssstyle/lib/properties/bottom.js +0 -30
  169. package/packages/cli/node_modules/cssstyle/lib/properties/clear.js +0 -40
  170. package/packages/cli/node_modules/cssstyle/lib/properties/clip.js +0 -54
  171. package/packages/cli/node_modules/cssstyle/lib/properties/color.js +0 -30
  172. package/packages/cli/node_modules/cssstyle/lib/properties/flex.js +0 -73
  173. package/packages/cli/node_modules/cssstyle/lib/properties/flexBasis.js +0 -33
  174. package/packages/cli/node_modules/cssstyle/lib/properties/flexGrow.js +0 -28
  175. package/packages/cli/node_modules/cssstyle/lib/properties/flexShrink.js +0 -28
  176. package/packages/cli/node_modules/cssstyle/lib/properties/float.js +0 -27
  177. package/packages/cli/node_modules/cssstyle/lib/properties/floodColor.js +0 -30
  178. package/packages/cli/node_modules/cssstyle/lib/properties/font.js +0 -189
  179. package/packages/cli/node_modules/cssstyle/lib/properties/fontFamily.js +0 -95
  180. package/packages/cli/node_modules/cssstyle/lib/properties/fontSize.js +0 -47
  181. package/packages/cli/node_modules/cssstyle/lib/properties/fontStyle.js +0 -32
  182. package/packages/cli/node_modules/cssstyle/lib/properties/fontVariant.js +0 -36
  183. package/packages/cli/node_modules/cssstyle/lib/properties/fontWeight.js +0 -36
  184. package/packages/cli/node_modules/cssstyle/lib/properties/height.js +0 -31
  185. package/packages/cli/node_modules/cssstyle/lib/properties/left.js +0 -30
  186. package/packages/cli/node_modules/cssstyle/lib/properties/lightingColor.js +0 -30
  187. package/packages/cli/node_modules/cssstyle/lib/properties/lineHeight.js +0 -39
  188. package/packages/cli/node_modules/cssstyle/lib/properties/margin.js +0 -58
  189. package/packages/cli/node_modules/cssstyle/lib/properties/marginBottom.js +0 -40
  190. package/packages/cli/node_modules/cssstyle/lib/properties/marginLeft.js +0 -40
  191. package/packages/cli/node_modules/cssstyle/lib/properties/marginRight.js +0 -40
  192. package/packages/cli/node_modules/cssstyle/lib/properties/marginTop.js +0 -40
  193. package/packages/cli/node_modules/cssstyle/lib/properties/opacity.js +0 -46
  194. package/packages/cli/node_modules/cssstyle/lib/properties/outlineColor.js +0 -30
  195. package/packages/cli/node_modules/cssstyle/lib/properties/padding.js +0 -58
  196. package/packages/cli/node_modules/cssstyle/lib/properties/paddingBottom.js +0 -42
  197. package/packages/cli/node_modules/cssstyle/lib/properties/paddingLeft.js +0 -40
  198. package/packages/cli/node_modules/cssstyle/lib/properties/paddingRight.js +0 -40
  199. package/packages/cli/node_modules/cssstyle/lib/properties/paddingTop.js +0 -40
  200. package/packages/cli/node_modules/cssstyle/lib/properties/right.js +0 -30
  201. package/packages/cli/node_modules/cssstyle/lib/properties/stopColor.js +0 -30
  202. package/packages/cli/node_modules/cssstyle/lib/properties/top.js +0 -30
  203. package/packages/cli/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js +0 -30
  204. package/packages/cli/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js +0 -30
  205. package/packages/cli/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js +0 -30
  206. package/packages/cli/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js +0 -30
  207. package/packages/cli/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js +0 -30
  208. package/packages/cli/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js +0 -30
  209. package/packages/cli/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js +0 -30
  210. package/packages/cli/node_modules/cssstyle/lib/properties/webkitTextFillColor.js +0 -30
  211. package/packages/cli/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js +0 -30
  212. package/packages/cli/node_modules/cssstyle/lib/properties/width.js +0 -31
  213. package/packages/cli/node_modules/cssstyle/lib/utils/camelize.js +0 -37
  214. package/packages/cli/node_modules/cssstyle/lib/utils/propertyDescriptors.js +0 -16
  215. package/packages/cli/node_modules/cssstyle/lib/utils/strings.js +0 -167
  216. package/packages/cli/node_modules/cssstyle/package.json +0 -72
  217. package/packages/cli/node_modules/data-urls/LICENSE.txt +0 -7
  218. package/packages/cli/node_modules/data-urls/README.md +0 -62
  219. package/packages/cli/node_modules/data-urls/lib/parser.js +0 -69
  220. package/packages/cli/node_modules/data-urls/lib/utils.js +0 -20
  221. package/packages/cli/node_modules/data-urls/package.json +0 -48
  222. package/packages/cli/node_modules/jsdom/LICENSE.txt +0 -22
  223. package/packages/cli/node_modules/jsdom/README.md +0 -521
  224. package/packages/cli/node_modules/jsdom/lib/api.js +0 -334
  225. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/Window.js +0 -1012
  226. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.js +0 -789
  227. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/js-globals.json +0 -312
  228. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/not-implemented.js +0 -13
  229. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/parser/html.js +0 -208
  230. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/parser/index.js +0 -37
  231. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/parser/xml.js +0 -202
  232. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js +0 -114
  233. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js +0 -8
  234. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js +0 -98
  235. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js +0 -33
  236. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js +0 -142
  237. package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js +0 -142
  238. package/packages/cli/node_modules/jsdom/lib/jsdom/level2/style.js +0 -57
  239. package/packages/cli/node_modules/jsdom/lib/jsdom/level3/xpath.js +0 -1875
  240. package/packages/cli/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js +0 -17
  241. package/packages/cli/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js +0 -131
  242. package/packages/cli/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js +0 -60
  243. package/packages/cli/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js +0 -78
  244. package/packages/cli/node_modules/jsdom/lib/jsdom/living/attributes.js +0 -312
  245. package/packages/cli/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js +0 -75
  246. package/packages/cli/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js +0 -66
  247. package/packages/cli/node_modules/jsdom/lib/jsdom/living/crypto/Crypto-impl.js +0 -68
  248. package/packages/cli/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js +0 -38
  249. package/packages/cli/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js +0 -273
  250. package/packages/cli/node_modules/jsdom/lib/jsdom/living/custom-elements/ElementInternals-impl.js +0 -52
  251. package/packages/cli/node_modules/jsdom/lib/jsdom/living/documents.js +0 -15
  252. package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js +0 -59
  253. package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js +0 -30
  254. package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js +0 -18
  255. package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js +0 -63
  256. package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js +0 -36
  257. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js +0 -10
  258. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js +0 -20
  259. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js +0 -21
  260. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js +0 -14
  261. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js +0 -197
  262. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js +0 -24
  263. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js +0 -419
  264. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js +0 -9
  265. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js +0 -14
  266. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js +0 -11
  267. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js +0 -29
  268. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js +0 -25
  269. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js +0 -72
  270. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js +0 -20
  271. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js +0 -9
  272. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js +0 -14
  273. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js +0 -26
  274. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/SubmitEvent-impl.js +0 -13
  275. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js +0 -14
  276. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js +0 -59
  277. package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js +0 -12
  278. package/packages/cli/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js +0 -172
  279. package/packages/cli/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js +0 -65
  280. package/packages/cli/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js +0 -103
  281. package/packages/cli/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js +0 -93
  282. package/packages/cli/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js +0 -12
  283. package/packages/cli/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js +0 -15
  284. package/packages/cli/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js +0 -130
  285. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js +0 -143
  286. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js +0 -249
  287. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js +0 -171
  288. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js +0 -55
  289. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js +0 -28
  290. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Attr.js +0 -217
  291. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js +0 -117
  292. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js +0 -12
  293. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Blob.js +0 -203
  294. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js +0 -30
  295. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js +0 -42
  296. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js +0 -109
  297. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js +0 -12
  298. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js +0 -453
  299. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js +0 -168
  300. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js +0 -65
  301. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Comment.js +0 -120
  302. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js +0 -219
  303. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js +0 -32
  304. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Crypto.js +0 -144
  305. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js +0 -34
  306. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js +0 -242
  307. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js +0 -206
  308. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js +0 -32
  309. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMException.js +0 -222
  310. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js +0 -237
  311. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js +0 -140
  312. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMRect.js +0 -276
  313. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMRectInit.js +0 -76
  314. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMRectReadOnly.js +0 -285
  315. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js +0 -323
  316. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js +0 -563
  317. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Document.js +0 -4157
  318. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js +0 -334
  319. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js +0 -12
  320. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js +0 -252
  321. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Element.js +0 -3718
  322. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js +0 -26
  323. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js +0 -29
  324. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ElementInternals.js +0 -2150
  325. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js +0 -12
  326. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js +0 -192
  327. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js +0 -92
  328. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Event.js +0 -430
  329. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js +0 -36
  330. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js +0 -58
  331. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js +0 -35
  332. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js +0 -28
  333. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js +0 -221
  334. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js +0 -259
  335. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/External.js +0 -130
  336. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/File.js +0 -177
  337. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FileList.js +0 -324
  338. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js +0 -33
  339. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js +0 -468
  340. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js +0 -144
  341. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js +0 -36
  342. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FormData.js +0 -468
  343. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Function.js +0 -42
  344. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js +0 -31
  345. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js +0 -1023
  346. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js +0 -822
  347. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js +0 -110
  348. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js +0 -153
  349. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js +0 -193
  350. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js +0 -877
  351. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js +0 -522
  352. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js +0 -304
  353. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js +0 -378
  354. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js +0 -156
  355. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js +0 -153
  356. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js +0 -125
  357. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js +0 -156
  358. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js +0 -156
  359. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js +0 -156
  360. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js +0 -153
  361. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js +0 -3137
  362. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js +0 -375
  363. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js +0 -329
  364. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js +0 -236
  365. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormControlsCollection.js +0 -344
  366. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js +0 -684
  367. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js +0 -504
  368. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js +0 -708
  369. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js +0 -320
  370. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js +0 -110
  371. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js +0 -153
  372. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js +0 -153
  373. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js +0 -680
  374. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js +0 -893
  375. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js +0 -1924
  376. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js +0 -201
  377. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js +0 -179
  378. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js +0 -166
  379. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js +0 -549
  380. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js +0 -168
  381. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js +0 -554
  382. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js +0 -895
  383. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js +0 -156
  384. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js +0 -276
  385. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js +0 -365
  386. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js +0 -211
  387. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js +0 -281
  388. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js +0 -935
  389. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js +0 -197
  390. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js +0 -376
  391. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js +0 -537
  392. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js +0 -392
  393. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js +0 -153
  394. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js +0 -276
  395. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js +0 -110
  396. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js +0 -160
  397. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js +0 -228
  398. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js +0 -170
  399. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js +0 -466
  400. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js +0 -1015
  401. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js +0 -192
  402. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js +0 -334
  403. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js +0 -110
  404. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js +0 -207
  405. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js +0 -153
  406. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js +0 -729
  407. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js +0 -372
  408. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js +0 -799
  409. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js +0 -414
  410. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js +0 -346
  411. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js +0 -123
  412. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js +0 -1206
  413. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js +0 -153
  414. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js +0 -152
  415. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js +0 -360
  416. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js +0 -197
  417. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js +0 -109
  418. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js +0 -337
  419. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js +0 -157
  420. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js +0 -50
  421. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Headers.js +0 -418
  422. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/History.js +0 -266
  423. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js +0 -168
  424. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js +0 -68
  425. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js +0 -445
  426. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js +0 -116
  427. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Location.js +0 -404
  428. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js +0 -317
  429. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js +0 -100
  430. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js +0 -156
  431. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js +0 -352
  432. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js +0 -569
  433. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js +0 -159
  434. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js +0 -34
  435. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js +0 -178
  436. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js +0 -121
  437. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js +0 -229
  438. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js +0 -553
  439. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js +0 -326
  440. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Node.js +0 -763
  441. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js +0 -75
  442. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js +0 -207
  443. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js +0 -328
  444. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js +0 -42
  445. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/OnErrorEventHandlerNonNull.js +0 -56
  446. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js +0 -144
  447. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js +0 -35
  448. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Performance.js +0 -142
  449. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js +0 -385
  450. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js +0 -362
  451. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js +0 -144
  452. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js +0 -32
  453. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js +0 -122
  454. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js +0 -170
  455. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js +0 -65
  456. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/RadioNodeList.js +0 -322
  457. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Range.js +0 -641
  458. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedPreserveAspectRatio.js +0 -136
  459. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedRect.js +0 -136
  460. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js +0 -149
  461. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js +0 -64
  462. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGDefsElement.js +0 -109
  463. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGDescElement.js +0 -109
  464. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js +0 -2803
  465. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGGElement.js +0 -109
  466. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js +0 -139
  467. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGMetadataElement.js +0 -109
  468. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js +0 -132
  469. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGPreserveAspectRatio.js +0 -196
  470. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGRect.js +0 -210
  471. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js +0 -786
  472. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js +0 -537
  473. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGSwitchElement.js +0 -109
  474. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGSymbolElement.js +0 -146
  475. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js +0 -109
  476. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Screen.js +0 -180
  477. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js +0 -12
  478. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js +0 -45
  479. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js +0 -14
  480. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js +0 -30
  481. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js +0 -12
  482. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Selection.js +0 -569
  483. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js +0 -12
  484. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js +0 -187
  485. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js +0 -30
  486. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js +0 -12
  487. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js +0 -123
  488. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js +0 -72
  489. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Storage.js +0 -423
  490. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js +0 -318
  491. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js +0 -99
  492. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js +0 -326
  493. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SubmitEvent.js +0 -144
  494. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SubmitEventInit.js +0 -36
  495. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js +0 -18
  496. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Text.js +0 -170
  497. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js +0 -12
  498. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js +0 -222
  499. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js +0 -89
  500. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js +0 -255
  501. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js +0 -235
  502. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js +0 -62
  503. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js +0 -249
  504. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js +0 -12
  505. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/VoidFunction.js +0 -26
  506. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js +0 -476
  507. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js +0 -191
  508. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js +0 -71
  509. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js +0 -109
  510. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js +0 -655
  511. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js +0 -334
  512. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js +0 -14
  513. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js +0 -109
  514. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js +0 -132
  515. package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/utils.js +0 -190
  516. package/packages/cli/node_modules/jsdom/lib/jsdom/living/geometry/DOMRect-impl.js +0 -39
  517. package/packages/cli/node_modules/jsdom/lib/jsdom/living/geometry/DOMRectReadOnly-impl.js +0 -72
  518. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/agent-factory.js +0 -13
  519. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/binary-data.js +0 -9
  520. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/colors.js +0 -245
  521. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/create-element.js +0 -329
  522. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js +0 -188
  523. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/custom-elements.js +0 -272
  524. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/dates-and-times.js +0 -270
  525. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/details.js +0 -15
  526. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/events.js +0 -24
  527. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js +0 -104
  528. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js +0 -309
  529. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/html-constructor.js +0 -78
  530. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/http-request.js +0 -266
  531. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/internal-constants.js +0 -12
  532. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/iterable-weak-set.js +0 -48
  533. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/json.js +0 -12
  534. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/mutation-observers.js +0 -198
  535. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/namespaces.js +0 -16
  536. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/node.js +0 -68
  537. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/number-and-date-inputs.js +0 -195
  538. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/ordered-set.js +0 -104
  539. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/page-transition-event.js +0 -9
  540. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js +0 -76
  541. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/selectors.js +0 -47
  542. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/shadow-dom.js +0 -285
  543. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/strings.js +0 -162
  544. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js +0 -243
  545. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js +0 -123
  546. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/svg/basic-types.js +0 -41
  547. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js +0 -46
  548. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/text.js +0 -19
  549. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/traversal.js +0 -72
  550. package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js +0 -65
  551. package/packages/cli/node_modules/jsdom/lib/jsdom/living/hr-time/Performance-impl.js +0 -22
  552. package/packages/cli/node_modules/jsdom/lib/jsdom/living/interfaces.js +0 -239
  553. package/packages/cli/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationObserver-impl.js +0 -95
  554. package/packages/cli/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationRecord-impl.js +0 -37
  555. package/packages/cli/node_modules/jsdom/lib/jsdom/living/named-properties-window.js +0 -141
  556. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/MimeType-impl.js +0 -3
  557. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/MimeTypeArray-impl.js +0 -21
  558. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/Navigator-impl.js +0 -29
  559. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js +0 -8
  560. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorCookies-impl.js +0 -7
  561. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorID-impl.js +0 -37
  562. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorLanguage-impl.js +0 -9
  563. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorOnLine-impl.js +0 -7
  564. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorPlugins-impl.js +0 -8
  565. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/Plugin-impl.js +0 -3
  566. package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/PluginArray-impl.js +0 -23
  567. package/packages/cli/node_modules/jsdom/lib/jsdom/living/node-document-position.js +0 -10
  568. package/packages/cli/node_modules/jsdom/lib/jsdom/living/node-type.js +0 -16
  569. package/packages/cli/node_modules/jsdom/lib/jsdom/living/node.js +0 -331
  570. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/CDATASection-impl.js +0 -16
  571. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js +0 -118
  572. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ChildNode-impl.js +0 -80
  573. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Comment-impl.js +0 -20
  574. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DOMImplementation-impl.js +0 -120
  575. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DOMStringMap-impl.js +0 -64
  576. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DOMTokenList-impl.js +0 -171
  577. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js +0 -1003
  578. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DocumentFragment-impl.js +0 -44
  579. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DocumentOrShadowRoot-impl.js +0 -28
  580. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DocumentType-impl.js +0 -24
  581. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js +0 -603
  582. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js +0 -22
  583. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ElementContentEditable-impl.js +0 -7
  584. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js +0 -145
  585. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js +0 -50
  586. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAreaElement-impl.js +0 -43
  587. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAudioElement-impl.js +0 -9
  588. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBRElement-impl.js +0 -9
  589. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBaseElement-impl.js +0 -44
  590. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl.js +0 -17
  591. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js +0 -79
  592. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js +0 -130
  593. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCollection-impl.js +0 -96
  594. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDListElement-impl.js +0 -9
  595. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataElement-impl.js +0 -9
  596. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataListElement-impl.js +0 -20
  597. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js +0 -35
  598. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDialogElement-impl.js +0 -9
  599. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js +0 -9
  600. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDivElement-impl.js +0 -9
  601. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js +0 -210
  602. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js +0 -8
  603. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js +0 -43
  604. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFontElement-impl.js +0 -9
  605. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormControlsCollection-impl.js +0 -33
  606. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js +0 -248
  607. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameElement-impl.js +0 -266
  608. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js +0 -17
  609. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHRElement-impl.js +0 -9
  610. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadElement-impl.js +0 -9
  611. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js +0 -9
  612. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js +0 -9
  613. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js +0 -366
  614. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js +0 -9
  615. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js +0 -131
  616. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js +0 -1097
  617. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLIElement-impl.js +0 -9
  618. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLabelElement-impl.js +0 -94
  619. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLegendElement-impl.js +0 -18
  620. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLinkElement-impl.js +0 -107
  621. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMapElement-impl.js +0 -13
  622. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMarqueeElement-impl.js +0 -9
  623. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMediaElement-impl.js +0 -138
  624. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMenuElement-impl.js +0 -9
  625. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMetaElement-impl.js +0 -9
  626. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMeterElement-impl.js +0 -180
  627. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLModElement-impl.js +0 -9
  628. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOListElement-impl.js +0 -22
  629. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLObjectElement-impl.js +0 -26
  630. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js +0 -9
  631. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionElement-impl.js +0 -146
  632. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionsCollection-impl.js +0 -110
  633. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js +0 -88
  634. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOutputElement-impl.js +0 -88
  635. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js +0 -9
  636. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParamElement-impl.js +0 -9
  637. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPictureElement-impl.js +0 -9
  638. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPreElement-impl.js +0 -9
  639. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLProgressElement-impl.js +0 -72
  640. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js +0 -9
  641. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js +0 -261
  642. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSelectElement-impl.js +0 -283
  643. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSlotElement-impl.js +0 -59
  644. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSourceElement-impl.js +0 -8
  645. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSpanElement-impl.js +0 -9
  646. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js +0 -73
  647. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js +0 -9
  648. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js +0 -73
  649. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableColElement-impl.js +0 -9
  650. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableElement-impl.js +0 -236
  651. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js +0 -88
  652. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js +0 -61
  653. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js +0 -67
  654. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js +0 -244
  655. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTimeElement-impl.js +0 -9
  656. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTitleElement-impl.js +0 -18
  657. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTrackElement-impl.js +0 -13
  658. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUListElement-impl.js +0 -9
  659. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js +0 -9
  660. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLVideoElement-impl.js +0 -17
  661. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/LinkStyle-impl.js +0 -2
  662. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js +0 -1160
  663. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/NodeList-impl.js +0 -43
  664. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js +0 -28
  665. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/NonElementParentNode-impl.js +0 -11
  666. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js +0 -93
  667. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ProcessingInstruction-impl.js +0 -22
  668. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/RadioNodeList-impl.js +0 -49
  669. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGDefsElement-impl.js +0 -9
  670. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGDescElement-impl.js +0 -9
  671. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGElement-impl.js +0 -64
  672. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGGElement-impl.js +0 -9
  673. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGGraphicsElement-impl.js +0 -16
  674. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGMetadataElement-impl.js +0 -9
  675. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js +0 -47
  676. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGSwitchElement-impl.js +0 -9
  677. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGSymbolElement-impl.js +0 -9
  678. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGTests-impl.js +0 -42
  679. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGTitleElement-impl.js +0 -9
  680. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ShadowRoot-impl.js +0 -41
  681. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Slotable-impl.js +0 -48
  682. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js +0 -96
  683. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/WindowEventHandlers-impl.js +0 -52
  684. package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/XMLDocument-impl.js +0 -4
  685. package/packages/cli/node_modules/jsdom/lib/jsdom/living/range/AbstractRange-impl.js +0 -43
  686. package/packages/cli/node_modules/jsdom/lib/jsdom/living/range/Range-impl.js +0 -897
  687. package/packages/cli/node_modules/jsdom/lib/jsdom/living/range/StaticRange-impl.js +0 -39
  688. package/packages/cli/node_modules/jsdom/lib/jsdom/living/range/boundary-point.js +0 -47
  689. package/packages/cli/node_modules/jsdom/lib/jsdom/living/selection/Selection-impl.js +0 -358
  690. package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedPreserveAspectRatio-impl.js +0 -24
  691. package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedRect-impl.js +0 -122
  692. package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedString-impl.js +0 -42
  693. package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGListBase.js +0 -195
  694. package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGNumber-impl.js +0 -48
  695. package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGPreserveAspectRatio-impl.js +0 -100
  696. package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGRect-impl.js +0 -143
  697. package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGStringList-impl.js +0 -16
  698. package/packages/cli/node_modules/jsdom/lib/jsdom/living/traversal/NodeIterator-impl.js +0 -107
  699. package/packages/cli/node_modules/jsdom/lib/jsdom/living/traversal/TreeWalker-impl.js +0 -217
  700. package/packages/cli/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js +0 -44
  701. package/packages/cli/node_modules/jsdom/lib/jsdom/living/webidl/DOMException-impl.js +0 -46
  702. package/packages/cli/node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl.js +0 -328
  703. package/packages/cli/node_modules/jsdom/lib/jsdom/living/webstorage/Storage-impl.js +0 -102
  704. package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/BarProp-impl.js +0 -10
  705. package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/External-impl.js +0 -9
  706. package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/History-impl.js +0 -148
  707. package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/Location-impl.js +0 -227
  708. package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/Screen-impl.js +0 -13
  709. package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/SessionHistory.js +0 -163
  710. package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/navigation.js +0 -85
  711. package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/FormData-impl.js +0 -191
  712. package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js +0 -1005
  713. package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestEventTarget-impl.js +0 -17
  714. package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestUpload-impl.js +0 -4
  715. package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/multipart-form-data.js +0 -105
  716. package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js +0 -59
  717. package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js +0 -417
  718. package/packages/cli/node_modules/jsdom/lib/jsdom/named-properties-tracker.js +0 -158
  719. package/packages/cli/node_modules/jsdom/lib/jsdom/utils.js +0 -105
  720. package/packages/cli/node_modules/jsdom/lib/jsdom/virtual-console.js +0 -34
  721. package/packages/cli/node_modules/jsdom/package.json +0 -92
  722. package/packages/cli/node_modules/lru-cache/LICENSE +0 -15
  723. package/packages/cli/node_modules/lru-cache/README.md +0 -331
  724. package/packages/cli/node_modules/lru-cache/dist/commonjs/index.d.ts +0 -1277
  725. package/packages/cli/node_modules/lru-cache/dist/commonjs/index.d.ts.map +0 -1
  726. package/packages/cli/node_modules/lru-cache/dist/commonjs/index.js +0 -1546
  727. package/packages/cli/node_modules/lru-cache/dist/commonjs/index.js.map +0 -1
  728. package/packages/cli/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
  729. package/packages/cli/node_modules/lru-cache/dist/commonjs/index.min.js.map +0 -7
  730. package/packages/cli/node_modules/lru-cache/dist/commonjs/package.json +0 -3
  731. package/packages/cli/node_modules/lru-cache/dist/esm/index.d.ts +0 -1277
  732. package/packages/cli/node_modules/lru-cache/dist/esm/index.d.ts.map +0 -1
  733. package/packages/cli/node_modules/lru-cache/dist/esm/index.js +0 -1542
  734. package/packages/cli/node_modules/lru-cache/dist/esm/index.js.map +0 -1
  735. package/packages/cli/node_modules/lru-cache/dist/esm/index.min.js +0 -2
  736. package/packages/cli/node_modules/lru-cache/dist/esm/index.min.js.map +0 -7
  737. package/packages/cli/node_modules/lru-cache/dist/esm/package.json +0 -3
  738. package/packages/cli/node_modules/lru-cache/package.json +0 -116
  739. package/packages/cli/node_modules/tldts/LICENSE +0 -13
  740. package/packages/cli/node_modules/tldts/README.md +0 -327
  741. package/packages/cli/node_modules/tldts/bin/cli.js +0 -21
  742. package/packages/cli/node_modules/tldts/dist/cjs/index.js +0 -666
  743. package/packages/cli/node_modules/tldts/dist/cjs/index.js.map +0 -1
  744. package/packages/cli/node_modules/tldts/dist/cjs/src/data/trie.js +0 -14
  745. package/packages/cli/node_modules/tldts/dist/cjs/src/data/trie.js.map +0 -1
  746. package/packages/cli/node_modules/tldts/dist/cjs/src/suffix-trie.js +0 -67
  747. package/packages/cli/node_modules/tldts/dist/cjs/src/suffix-trie.js.map +0 -1
  748. package/packages/cli/node_modules/tldts/dist/cjs/tsconfig.tsbuildinfo +0 -1
  749. package/packages/cli/node_modules/tldts/dist/es6/index.js +0 -33
  750. package/packages/cli/node_modules/tldts/dist/es6/index.js.map +0 -1
  751. package/packages/cli/node_modules/tldts/dist/es6/src/data/trie.js +0 -11
  752. package/packages/cli/node_modules/tldts/dist/es6/src/data/trie.js.map +0 -1
  753. package/packages/cli/node_modules/tldts/dist/es6/src/suffix-trie.js +0 -64
  754. package/packages/cli/node_modules/tldts/dist/es6/src/suffix-trie.js.map +0 -1
  755. package/packages/cli/node_modules/tldts/dist/es6/tsconfig.bundle.tsbuildinfo +0 -1
  756. package/packages/cli/node_modules/tldts/dist/index.cjs.min.js +0 -2
  757. package/packages/cli/node_modules/tldts/dist/index.cjs.min.js.map +0 -1
  758. package/packages/cli/node_modules/tldts/dist/index.esm.min.js +0 -2
  759. package/packages/cli/node_modules/tldts/dist/index.esm.min.js.map +0 -1
  760. package/packages/cli/node_modules/tldts/dist/index.umd.min.js +0 -2
  761. package/packages/cli/node_modules/tldts/dist/index.umd.min.js.map +0 -1
  762. package/packages/cli/node_modules/tldts/dist/types/index.d.ts +0 -7
  763. package/packages/cli/node_modules/tldts/dist/types/src/data/trie.d.ts +0 -5
  764. package/packages/cli/node_modules/tldts/dist/types/src/suffix-trie.d.ts +0 -5
  765. package/packages/cli/node_modules/tldts/index.ts +0 -62
  766. package/packages/cli/node_modules/tldts/package.json +0 -91
  767. package/packages/cli/node_modules/tldts/src/data/trie.ts +0 -14
  768. package/packages/cli/node_modules/tldts/src/suffix-trie.ts +0 -110
  769. package/packages/cli/node_modules/tldts-core/LICENSE +0 -13
  770. package/packages/cli/node_modules/tldts-core/README.md +0 -3
  771. package/packages/cli/node_modules/tldts-core/dist/cjs/index.js +0 -561
  772. package/packages/cli/node_modules/tldts-core/dist/cjs/index.js.map +0 -1
  773. package/packages/cli/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js +0 -15
  774. package/packages/cli/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js.map +0 -1
  775. package/packages/cli/node_modules/tldts-core/dist/cjs/src/domain.js +0 -83
  776. package/packages/cli/node_modules/tldts-core/dist/cjs/src/domain.js.map +0 -1
  777. package/packages/cli/node_modules/tldts-core/dist/cjs/src/extract-hostname.js +0 -149
  778. package/packages/cli/node_modules/tldts-core/dist/cjs/src/extract-hostname.js.map +0 -1
  779. package/packages/cli/node_modules/tldts-core/dist/cjs/src/factory.js +0 -104
  780. package/packages/cli/node_modules/tldts-core/dist/cjs/src/factory.js.map +0 -1
  781. package/packages/cli/node_modules/tldts-core/dist/cjs/src/is-ip.js +0 -72
  782. package/packages/cli/node_modules/tldts-core/dist/cjs/src/is-ip.js.map +0 -1
  783. package/packages/cli/node_modules/tldts-core/dist/cjs/src/is-valid.js +0 -69
  784. package/packages/cli/node_modules/tldts-core/dist/cjs/src/is-valid.js.map +0 -1
  785. package/packages/cli/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js +0 -69
  786. package/packages/cli/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js.map +0 -1
  787. package/packages/cli/node_modules/tldts-core/dist/cjs/src/lookup/interface.js +0 -3
  788. package/packages/cli/node_modules/tldts-core/dist/cjs/src/lookup/interface.js.map +0 -1
  789. package/packages/cli/node_modules/tldts-core/dist/cjs/src/options.js +0 -22
  790. package/packages/cli/node_modules/tldts-core/dist/cjs/src/options.js.map +0 -1
  791. package/packages/cli/node_modules/tldts-core/dist/cjs/src/subdomain.js +0 -14
  792. package/packages/cli/node_modules/tldts-core/dist/cjs/src/subdomain.js.map +0 -1
  793. package/packages/cli/node_modules/tldts-core/dist/cjs/tsconfig.tsbuildinfo +0 -1
  794. package/packages/cli/node_modules/tldts-core/dist/es6/index.js +0 -4
  795. package/packages/cli/node_modules/tldts-core/dist/es6/index.js.map +0 -1
  796. package/packages/cli/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js +0 -12
  797. package/packages/cli/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js.map +0 -1
  798. package/packages/cli/node_modules/tldts-core/dist/es6/src/domain.js +0 -80
  799. package/packages/cli/node_modules/tldts-core/dist/es6/src/domain.js.map +0 -1
  800. package/packages/cli/node_modules/tldts-core/dist/es6/src/extract-hostname.js +0 -146
  801. package/packages/cli/node_modules/tldts-core/dist/es6/src/extract-hostname.js.map +0 -1
  802. package/packages/cli/node_modules/tldts-core/dist/es6/src/factory.js +0 -99
  803. package/packages/cli/node_modules/tldts-core/dist/es6/src/factory.js.map +0 -1
  804. package/packages/cli/node_modules/tldts-core/dist/es6/src/is-ip.js +0 -69
  805. package/packages/cli/node_modules/tldts-core/dist/es6/src/is-ip.js.map +0 -1
  806. package/packages/cli/node_modules/tldts-core/dist/es6/src/is-valid.js +0 -66
  807. package/packages/cli/node_modules/tldts-core/dist/es6/src/is-valid.js.map +0 -1
  808. package/packages/cli/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js +0 -66
  809. package/packages/cli/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js.map +0 -1
  810. package/packages/cli/node_modules/tldts-core/dist/es6/src/lookup/interface.js +0 -2
  811. package/packages/cli/node_modules/tldts-core/dist/es6/src/lookup/interface.js.map +0 -1
  812. package/packages/cli/node_modules/tldts-core/dist/es6/src/options.js +0 -19
  813. package/packages/cli/node_modules/tldts-core/dist/es6/src/options.js.map +0 -1
  814. package/packages/cli/node_modules/tldts-core/dist/es6/src/subdomain.js +0 -11
  815. package/packages/cli/node_modules/tldts-core/dist/es6/src/subdomain.js.map +0 -1
  816. package/packages/cli/node_modules/tldts-core/dist/es6/tsconfig.bundle.tsbuildinfo +0 -1
  817. package/packages/cli/node_modules/tldts-core/dist/types/index.d.ts +0 -4
  818. package/packages/cli/node_modules/tldts-core/dist/types/src/domain-without-suffix.d.ts +0 -6
  819. package/packages/cli/node_modules/tldts-core/dist/types/src/domain.d.ts +0 -5
  820. package/packages/cli/node_modules/tldts-core/dist/types/src/extract-hostname.d.ts +0 -5
  821. package/packages/cli/node_modules/tldts-core/dist/types/src/factory.d.ts +0 -28
  822. package/packages/cli/node_modules/tldts-core/dist/types/src/is-ip.d.ts +0 -6
  823. package/packages/cli/node_modules/tldts-core/dist/types/src/is-valid.d.ts +0 -15
  824. package/packages/cli/node_modules/tldts-core/dist/types/src/lookup/fast-path.d.ts +0 -2
  825. package/packages/cli/node_modules/tldts-core/dist/types/src/lookup/interface.d.ts +0 -9
  826. package/packages/cli/node_modules/tldts-core/dist/types/src/options.d.ts +0 -10
  827. package/packages/cli/node_modules/tldts-core/dist/types/src/subdomain.d.ts +0 -4
  828. package/packages/cli/node_modules/tldts-core/index.ts +0 -10
  829. package/packages/cli/node_modules/tldts-core/package.json +0 -68
  830. package/packages/cli/node_modules/tldts-core/src/domain-without-suffix.ts +0 -14
  831. package/packages/cli/node_modules/tldts-core/src/domain.ts +0 -100
  832. package/packages/cli/node_modules/tldts-core/src/extract-hostname.ts +0 -170
  833. package/packages/cli/node_modules/tldts-core/src/factory.ts +0 -160
  834. package/packages/cli/node_modules/tldts-core/src/is-ip.ts +0 -87
  835. package/packages/cli/node_modules/tldts-core/src/is-valid.ts +0 -79
  836. package/packages/cli/node_modules/tldts-core/src/lookup/fast-path.ts +0 -80
  837. package/packages/cli/node_modules/tldts-core/src/lookup/interface.ts +0 -10
  838. package/packages/cli/node_modules/tldts-core/src/options.ts +0 -39
  839. package/packages/cli/node_modules/tldts-core/src/subdomain.ts +0 -11
  840. package/packages/cli/node_modules/tough-cookie/LICENSE +0 -12
  841. package/packages/cli/node_modules/tough-cookie/README.md +0 -154
  842. package/packages/cli/node_modules/tough-cookie/dist/cookie/canonicalDomain.d.ts +0 -33
  843. package/packages/cli/node_modules/tough-cookie/dist/cookie/canonicalDomain.js +0 -65
  844. package/packages/cli/node_modules/tough-cookie/dist/cookie/constants.d.ts +0 -54
  845. package/packages/cli/node_modules/tough-cookie/dist/cookie/constants.js +0 -38
  846. package/packages/cli/node_modules/tough-cookie/dist/cookie/cookie.d.ts +0 -326
  847. package/packages/cli/node_modules/tough-cookie/dist/cookie/cookie.js +0 -831
  848. package/packages/cli/node_modules/tough-cookie/dist/cookie/cookieCompare.d.ts +0 -58
  849. package/packages/cli/node_modules/tough-cookie/dist/cookie/cookieCompare.js +0 -84
  850. package/packages/cli/node_modules/tough-cookie/dist/cookie/cookieJar.d.ts +0 -621
  851. package/packages/cli/node_modules/tough-cookie/dist/cookie/cookieJar.js +0 -1000
  852. package/packages/cli/node_modules/tough-cookie/dist/cookie/defaultPath.d.ts +0 -40
  853. package/packages/cli/node_modules/tough-cookie/dist/cookie/defaultPath.js +0 -60
  854. package/packages/cli/node_modules/tough-cookie/dist/cookie/domainMatch.d.ts +0 -38
  855. package/packages/cli/node_modules/tough-cookie/dist/cookie/domainMatch.js +0 -94
  856. package/packages/cli/node_modules/tough-cookie/dist/cookie/formatDate.d.ts +0 -15
  857. package/packages/cli/node_modules/tough-cookie/dist/cookie/formatDate.js +0 -20
  858. package/packages/cli/node_modules/tough-cookie/dist/cookie/index.d.ts +0 -29
  859. package/packages/cli/node_modules/tough-cookie/dist/cookie/index.js +0 -54
  860. package/packages/cli/node_modules/tough-cookie/dist/cookie/parseDate.d.ts +0 -103
  861. package/packages/cli/node_modules/tough-cookie/dist/cookie/parseDate.js +0 -323
  862. package/packages/cli/node_modules/tough-cookie/dist/cookie/permutePath.d.ts +0 -14
  863. package/packages/cli/node_modules/tough-cookie/dist/cookie/permutePath.js +0 -32
  864. package/packages/cli/node_modules/tough-cookie/dist/getPublicSuffix.d.ts +0 -55
  865. package/packages/cli/node_modules/tough-cookie/dist/getPublicSuffix.js +0 -71
  866. package/packages/cli/node_modules/tough-cookie/dist/memstore.d.ts +0 -220
  867. package/packages/cli/node_modules/tough-cookie/dist/memstore.js +0 -187
  868. package/packages/cli/node_modules/tough-cookie/dist/pathMatch.d.ts +0 -17
  869. package/packages/cli/node_modules/tough-cookie/dist/pathMatch.js +0 -40
  870. package/packages/cli/node_modules/tough-cookie/dist/permuteDomain.d.ts +0 -15
  871. package/packages/cli/node_modules/tough-cookie/dist/permuteDomain.js +0 -44
  872. package/packages/cli/node_modules/tough-cookie/dist/store.d.ts +0 -211
  873. package/packages/cli/node_modules/tough-cookie/dist/store.js +0 -76
  874. package/packages/cli/node_modules/tough-cookie/dist/utils.d.ts +0 -34
  875. package/packages/cli/node_modules/tough-cookie/dist/utils.js +0 -99
  876. package/packages/cli/node_modules/tough-cookie/dist/validators.d.ts +0 -24
  877. package/packages/cli/node_modules/tough-cookie/dist/validators.js +0 -90
  878. package/packages/cli/node_modules/tough-cookie/dist/version.d.ts +0 -5
  879. package/packages/cli/node_modules/tough-cookie/dist/version.js +0 -8
  880. package/packages/cli/node_modules/tough-cookie/package.json +0 -144
  881. package/packages/cli/node_modules/tr46/LICENSE.md +0 -21
  882. package/packages/cli/node_modules/tr46/README.md +0 -76
  883. package/packages/cli/node_modules/tr46/index.js +0 -344
  884. package/packages/cli/node_modules/tr46/lib/mappingTable.json +0 -1
  885. package/packages/cli/node_modules/tr46/lib/regexes.js +0 -29
  886. package/packages/cli/node_modules/tr46/lib/statusMapping.js +0 -9
  887. package/packages/cli/node_modules/tr46/package.json +0 -44
  888. package/packages/cli/node_modules/undici-types/LICENSE +0 -21
  889. package/packages/cli/node_modules/undici-types/README.md +0 -6
  890. package/packages/cli/node_modules/undici-types/agent.d.ts +0 -31
  891. package/packages/cli/node_modules/undici-types/api.d.ts +0 -43
  892. package/packages/cli/node_modules/undici-types/balanced-pool.d.ts +0 -29
  893. package/packages/cli/node_modules/undici-types/cache.d.ts +0 -36
  894. package/packages/cli/node_modules/undici-types/client.d.ts +0 -108
  895. package/packages/cli/node_modules/undici-types/connector.d.ts +0 -34
  896. package/packages/cli/node_modules/undici-types/content-type.d.ts +0 -21
  897. package/packages/cli/node_modules/undici-types/cookies.d.ts +0 -28
  898. package/packages/cli/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
  899. package/packages/cli/node_modules/undici-types/dispatcher.d.ts +0 -256
  900. package/packages/cli/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
  901. package/packages/cli/node_modules/undici-types/errors.d.ts +0 -149
  902. package/packages/cli/node_modules/undici-types/eventsource.d.ts +0 -61
  903. package/packages/cli/node_modules/undici-types/fetch.d.ts +0 -209
  904. package/packages/cli/node_modules/undici-types/file.d.ts +0 -39
  905. package/packages/cli/node_modules/undici-types/filereader.d.ts +0 -54
  906. package/packages/cli/node_modules/undici-types/formdata.d.ts +0 -108
  907. package/packages/cli/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  908. package/packages/cli/node_modules/undici-types/global-origin.d.ts +0 -7
  909. package/packages/cli/node_modules/undici-types/handlers.d.ts +0 -15
  910. package/packages/cli/node_modules/undici-types/header.d.ts +0 -4
  911. package/packages/cli/node_modules/undici-types/index.d.ts +0 -71
  912. package/packages/cli/node_modules/undici-types/interceptors.d.ts +0 -17
  913. package/packages/cli/node_modules/undici-types/mock-agent.d.ts +0 -50
  914. package/packages/cli/node_modules/undici-types/mock-client.d.ts +0 -25
  915. package/packages/cli/node_modules/undici-types/mock-errors.d.ts +0 -12
  916. package/packages/cli/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  917. package/packages/cli/node_modules/undici-types/mock-pool.d.ts +0 -25
  918. package/packages/cli/node_modules/undici-types/package.json +0 -55
  919. package/packages/cli/node_modules/undici-types/patch.d.ts +0 -33
  920. package/packages/cli/node_modules/undici-types/pool-stats.d.ts +0 -19
  921. package/packages/cli/node_modules/undici-types/pool.d.ts +0 -39
  922. package/packages/cli/node_modules/undici-types/proxy-agent.d.ts +0 -28
  923. package/packages/cli/node_modules/undici-types/readable.d.ts +0 -65
  924. package/packages/cli/node_modules/undici-types/retry-agent.d.ts +0 -8
  925. package/packages/cli/node_modules/undici-types/retry-handler.d.ts +0 -116
  926. package/packages/cli/node_modules/undici-types/util.d.ts +0 -18
  927. package/packages/cli/node_modules/undici-types/webidl.d.ts +0 -228
  928. package/packages/cli/node_modules/undici-types/websocket.d.ts +0 -150
  929. package/packages/cli/node_modules/webidl-conversions/LICENSE.md +0 -12
  930. package/packages/cli/node_modules/webidl-conversions/README.md +0 -99
  931. package/packages/cli/node_modules/webidl-conversions/lib/index.js +0 -450
  932. package/packages/cli/node_modules/webidl-conversions/package.json +0 -35
  933. package/packages/cli/node_modules/whatwg-url/LICENSE.txt +0 -21
  934. package/packages/cli/node_modules/whatwg-url/README.md +0 -106
  935. package/packages/cli/node_modules/whatwg-url/index.js +0 -27
  936. package/packages/cli/node_modules/whatwg-url/lib/Function.js +0 -42
  937. package/packages/cli/node_modules/whatwg-url/lib/URL-impl.js +0 -233
  938. package/packages/cli/node_modules/whatwg-url/lib/URL.js +0 -499
  939. package/packages/cli/node_modules/whatwg-url/lib/URLSearchParams-impl.js +0 -135
  940. package/packages/cli/node_modules/whatwg-url/lib/URLSearchParams.js +0 -505
  941. package/packages/cli/node_modules/whatwg-url/lib/VoidFunction.js +0 -26
  942. package/packages/cli/node_modules/whatwg-url/lib/encoding.js +0 -16
  943. package/packages/cli/node_modules/whatwg-url/lib/infra.js +0 -26
  944. package/packages/cli/node_modules/whatwg-url/lib/percent-encoding.js +0 -142
  945. package/packages/cli/node_modules/whatwg-url/lib/url-state-machine.js +0 -1274
  946. package/packages/cli/node_modules/whatwg-url/lib/urlencoded.js +0 -89
  947. package/packages/cli/node_modules/whatwg-url/lib/utils.js +0 -190
  948. package/packages/cli/node_modules/whatwg-url/package.json +0 -53
  949. package/packages/cli/node_modules/whatwg-url/webidl2js-wrapper.js +0 -7
  950. package/packages/vscode-ide-companion/node_modules/@types/node/LICENSE +0 -21
  951. package/packages/vscode-ide-companion/node_modules/@types/node/README.md +0 -15
  952. package/packages/vscode-ide-companion/node_modules/@types/node/assert/strict.d.ts +0 -8
  953. package/packages/vscode-ide-companion/node_modules/@types/node/assert.d.ts +0 -1062
  954. package/packages/vscode-ide-companion/node_modules/@types/node/async_hooks.d.ts +0 -605
  955. package/packages/vscode-ide-companion/node_modules/@types/node/buffer.buffer.d.ts +0 -462
  956. package/packages/vscode-ide-companion/node_modules/@types/node/buffer.d.ts +0 -1932
  957. package/packages/vscode-ide-companion/node_modules/@types/node/child_process.d.ts +0 -1452
  958. package/packages/vscode-ide-companion/node_modules/@types/node/cluster.d.ts +0 -578
  959. package/packages/vscode-ide-companion/node_modules/@types/node/compatibility/disposable.d.ts +0 -16
  960. package/packages/vscode-ide-companion/node_modules/@types/node/compatibility/index.d.ts +0 -9
  961. package/packages/vscode-ide-companion/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  962. package/packages/vscode-ide-companion/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
  963. package/packages/vscode-ide-companion/node_modules/@types/node/console.d.ts +0 -452
  964. package/packages/vscode-ide-companion/node_modules/@types/node/constants.d.ts +0 -21
  965. package/packages/vscode-ide-companion/node_modules/@types/node/crypto.d.ts +0 -4570
  966. package/packages/vscode-ide-companion/node_modules/@types/node/dgram.d.ts +0 -596
  967. package/packages/vscode-ide-companion/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
  968. package/packages/vscode-ide-companion/node_modules/@types/node/dns/promises.d.ts +0 -479
  969. package/packages/vscode-ide-companion/node_modules/@types/node/dns.d.ts +0 -871
  970. package/packages/vscode-ide-companion/node_modules/@types/node/domain.d.ts +0 -170
  971. package/packages/vscode-ide-companion/node_modules/@types/node/events.d.ts +0 -977
  972. package/packages/vscode-ide-companion/node_modules/@types/node/fs/promises.d.ts +0 -1248
  973. package/packages/vscode-ide-companion/node_modules/@types/node/fs.d.ts +0 -4362
  974. package/packages/vscode-ide-companion/node_modules/@types/node/globals.d.ts +0 -170
  975. package/packages/vscode-ide-companion/node_modules/@types/node/globals.typedarray.d.ts +0 -21
  976. package/packages/vscode-ide-companion/node_modules/@types/node/http.d.ts +0 -2031
  977. package/packages/vscode-ide-companion/node_modules/@types/node/http2.d.ts +0 -2623
  978. package/packages/vscode-ide-companion/node_modules/@types/node/https.d.ts +0 -549
  979. package/packages/vscode-ide-companion/node_modules/@types/node/index.d.ts +0 -93
  980. package/packages/vscode-ide-companion/node_modules/@types/node/inspector.generated.d.ts +0 -3966
  981. package/packages/vscode-ide-companion/node_modules/@types/node/module.d.ts +0 -539
  982. package/packages/vscode-ide-companion/node_modules/@types/node/net.d.ts +0 -1011
  983. package/packages/vscode-ide-companion/node_modules/@types/node/os.d.ts +0 -495
  984. package/packages/vscode-ide-companion/node_modules/@types/node/package.json +0 -140
  985. package/packages/vscode-ide-companion/node_modules/@types/node/path.d.ts +0 -200
  986. package/packages/vscode-ide-companion/node_modules/@types/node/perf_hooks.d.ts +0 -963
  987. package/packages/vscode-ide-companion/node_modules/@types/node/process.d.ts +0 -1956
  988. package/packages/vscode-ide-companion/node_modules/@types/node/punycode.d.ts +0 -117
  989. package/packages/vscode-ide-companion/node_modules/@types/node/querystring.d.ts +0 -152
  990. package/packages/vscode-ide-companion/node_modules/@types/node/readline/promises.d.ts +0 -162
  991. package/packages/vscode-ide-companion/node_modules/@types/node/readline.d.ts +0 -589
  992. package/packages/vscode-ide-companion/node_modules/@types/node/repl.d.ts +0 -430
  993. package/packages/vscode-ide-companion/node_modules/@types/node/sea.d.ts +0 -153
  994. package/packages/vscode-ide-companion/node_modules/@types/node/stream/consumers.d.ts +0 -38
  995. package/packages/vscode-ide-companion/node_modules/@types/node/stream/promises.d.ts +0 -90
  996. package/packages/vscode-ide-companion/node_modules/@types/node/stream/web.d.ts +0 -533
  997. package/packages/vscode-ide-companion/node_modules/@types/node/stream.d.ts +0 -1668
  998. package/packages/vscode-ide-companion/node_modules/@types/node/string_decoder.d.ts +0 -67
  999. package/packages/vscode-ide-companion/node_modules/@types/node/test.d.ts +0 -1787
  1000. package/packages/vscode-ide-companion/node_modules/@types/node/timers/promises.d.ts +0 -108
  1001. package/packages/vscode-ide-companion/node_modules/@types/node/timers.d.ts +0 -286
  1002. package/packages/vscode-ide-companion/node_modules/@types/node/tls.d.ts +0 -1231
  1003. package/packages/vscode-ide-companion/node_modules/@types/node/trace_events.d.ts +0 -197
  1004. package/packages/vscode-ide-companion/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -460
  1005. package/packages/vscode-ide-companion/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -19
  1006. package/packages/vscode-ide-companion/node_modules/@types/node/ts5.6/index.d.ts +0 -93
  1007. package/packages/vscode-ide-companion/node_modules/@types/node/tty.d.ts +0 -208
  1008. package/packages/vscode-ide-companion/node_modules/@types/node/url.d.ts +0 -964
  1009. package/packages/vscode-ide-companion/node_modules/@types/node/util.d.ts +0 -2331
  1010. package/packages/vscode-ide-companion/node_modules/@types/node/v8.d.ts +0 -808
  1011. package/packages/vscode-ide-companion/node_modules/@types/node/vm.d.ts +0 -1030
  1012. package/packages/vscode-ide-companion/node_modules/@types/node/wasi.d.ts +0 -181
  1013. package/packages/vscode-ide-companion/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  1014. package/packages/vscode-ide-companion/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  1015. package/packages/vscode-ide-companion/node_modules/@types/node/web-globals/events.d.ts +0 -97
  1016. package/packages/vscode-ide-companion/node_modules/@types/node/web-globals/fetch.d.ts +0 -46
  1017. package/packages/vscode-ide-companion/node_modules/@types/node/worker_threads.d.ts +0 -715
  1018. package/packages/vscode-ide-companion/node_modules/@types/node/zlib.d.ts +0 -539
  1019. package/packages/vscode-ide-companion/node_modules/undici-types/LICENSE +0 -21
  1020. package/packages/vscode-ide-companion/node_modules/undici-types/README.md +0 -6
  1021. package/packages/vscode-ide-companion/node_modules/undici-types/agent.d.ts +0 -31
  1022. package/packages/vscode-ide-companion/node_modules/undici-types/api.d.ts +0 -43
  1023. package/packages/vscode-ide-companion/node_modules/undici-types/balanced-pool.d.ts +0 -29
  1024. package/packages/vscode-ide-companion/node_modules/undici-types/cache.d.ts +0 -36
  1025. package/packages/vscode-ide-companion/node_modules/undici-types/client.d.ts +0 -108
  1026. package/packages/vscode-ide-companion/node_modules/undici-types/connector.d.ts +0 -34
  1027. package/packages/vscode-ide-companion/node_modules/undici-types/content-type.d.ts +0 -21
  1028. package/packages/vscode-ide-companion/node_modules/undici-types/cookies.d.ts +0 -28
  1029. package/packages/vscode-ide-companion/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
  1030. package/packages/vscode-ide-companion/node_modules/undici-types/dispatcher.d.ts +0 -256
  1031. package/packages/vscode-ide-companion/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
  1032. package/packages/vscode-ide-companion/node_modules/undici-types/errors.d.ts +0 -149
  1033. package/packages/vscode-ide-companion/node_modules/undici-types/eventsource.d.ts +0 -61
  1034. package/packages/vscode-ide-companion/node_modules/undici-types/fetch.d.ts +0 -209
  1035. package/packages/vscode-ide-companion/node_modules/undici-types/file.d.ts +0 -39
  1036. package/packages/vscode-ide-companion/node_modules/undici-types/filereader.d.ts +0 -54
  1037. package/packages/vscode-ide-companion/node_modules/undici-types/formdata.d.ts +0 -108
  1038. package/packages/vscode-ide-companion/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  1039. package/packages/vscode-ide-companion/node_modules/undici-types/global-origin.d.ts +0 -7
  1040. package/packages/vscode-ide-companion/node_modules/undici-types/handlers.d.ts +0 -15
  1041. package/packages/vscode-ide-companion/node_modules/undici-types/header.d.ts +0 -4
  1042. package/packages/vscode-ide-companion/node_modules/undici-types/index.d.ts +0 -71
  1043. package/packages/vscode-ide-companion/node_modules/undici-types/interceptors.d.ts +0 -17
  1044. package/packages/vscode-ide-companion/node_modules/undici-types/mock-agent.d.ts +0 -50
  1045. package/packages/vscode-ide-companion/node_modules/undici-types/mock-client.d.ts +0 -25
  1046. package/packages/vscode-ide-companion/node_modules/undici-types/mock-errors.d.ts +0 -12
  1047. package/packages/vscode-ide-companion/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  1048. package/packages/vscode-ide-companion/node_modules/undici-types/mock-pool.d.ts +0 -25
  1049. package/packages/vscode-ide-companion/node_modules/undici-types/package.json +0 -55
  1050. package/packages/vscode-ide-companion/node_modules/undici-types/patch.d.ts +0 -33
  1051. package/packages/vscode-ide-companion/node_modules/undici-types/pool-stats.d.ts +0 -19
  1052. package/packages/vscode-ide-companion/node_modules/undici-types/pool.d.ts +0 -39
  1053. package/packages/vscode-ide-companion/node_modules/undici-types/proxy-agent.d.ts +0 -28
  1054. package/packages/vscode-ide-companion/node_modules/undici-types/readable.d.ts +0 -65
  1055. package/packages/vscode-ide-companion/node_modules/undici-types/retry-agent.d.ts +0 -8
  1056. package/packages/vscode-ide-companion/node_modules/undici-types/retry-handler.d.ts +0 -116
  1057. package/packages/vscode-ide-companion/node_modules/undici-types/util.d.ts +0 -18
  1058. package/packages/vscode-ide-companion/node_modules/undici-types/webidl.d.ts +0 -228
  1059. package/packages/vscode-ide-companion/node_modules/undici-types/websocket.d.ts +0 -150
@@ -1 +0,0 @@
1
- {"version":3,"file":"css-color.min.js","sources":["../../node_modules/.pnpm/@csstools+css-tokenizer@3.0.3/node_modules/@csstools/css-tokenizer/dist/index.mjs","../../node_modules/.pnpm/@csstools+css-parser-algori_e6e0f0541db15136ec2bc300145321b4/node_modules/@csstools/css-parser-algorithms/dist/index.mjs","../../node_modules/.pnpm/@csstools+css-calc@2.1.3_@c_944afc7cfa04f89ebf57f074959b53a0/node_modules/@csstools/css-calc/dist/index.mjs","../../node_modules/.pnpm/lru-cache@10.4.3/node_modules/lru-cache/dist/esm/index.js","../../src/js/common.ts","../../src/js/constant.ts","../../src/js/color.ts","../../src/js/css-var.ts","../../node_modules/.pnpm/@csstools+color-helpers@5.0.2/node_modules/@csstools/color-helpers/dist/index.mjs","../../node_modules/.pnpm/@csstools+css-color-parser@_015f10c51d8f7049380e824a6020c64c/node_modules/@csstools/css-color-parser/dist/index.mjs","../../src/js/relative-color.ts","../../src/js/resolve.ts","../../src/js/util.ts","../../src/js/cache.ts","../../src/js/css-calc.ts","../../src/js/css-gradient.ts","../../src/js/convert.ts","../../src/index.ts"],"sourcesContent":["class ParseError extends Error{sourceStart;sourceEnd;parserState;constructor(e,n,t,o){super(e),this.name=\"ParseError\",this.sourceStart=n,this.sourceEnd=t,this.parserState=o}}class ParseErrorWithToken extends ParseError{token;constructor(e,n,t,o,r){super(e,n,t,o),this.token=r}}const e={UnexpectedNewLineInString:\"Unexpected newline while consuming a string token.\",UnexpectedEOFInString:\"Unexpected EOF while consuming a string token.\",UnexpectedEOFInComment:\"Unexpected EOF while consuming a comment.\",UnexpectedEOFInURL:\"Unexpected EOF while consuming a url token.\",UnexpectedEOFInEscapedCodePoint:\"Unexpected EOF while consuming an escaped code point.\",UnexpectedCharacterInURL:\"Unexpected character while consuming a url token.\",InvalidEscapeSequenceInURL:\"Invalid escape sequence while consuming a url token.\",InvalidEscapeSequenceAfterBackslash:'Invalid escape sequence after \"\\\\\"'},n=\"undefined\"!=typeof globalThis&&\"structuredClone\"in globalThis;function cloneTokens(e){return n?structuredClone(e):JSON.parse(JSON.stringify(e))}function stringify(...e){let n=\"\";for(let t=0;t<e.length;t++)n+=e[t][1];return n}const t=13,o=45,r=10,i=43,s=65533;function checkIfFourCodePointsWouldStartCDO(e){return 60===e.source.codePointAt(e.cursor)&&33===e.source.codePointAt(e.cursor+1)&&e.source.codePointAt(e.cursor+2)===o&&e.source.codePointAt(e.cursor+3)===o}function isDigitCodePoint(e){return e>=48&&e<=57}function isUppercaseLetterCodePoint(e){return e>=65&&e<=90}function isLowercaseLetterCodePoint(e){return e>=97&&e<=122}function isHexDigitCodePoint(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function isLetterCodePoint(e){return isLowercaseLetterCodePoint(e)||isUppercaseLetterCodePoint(e)}function isIdentStartCodePoint(e){return isLetterCodePoint(e)||isNonASCII_IdentCodePoint(e)||95===e}function isIdentCodePoint(e){return isIdentStartCodePoint(e)||isDigitCodePoint(e)||e===o}function isNonASCII_IdentCodePoint(e){return 183===e||8204===e||8205===e||8255===e||8256===e||8204===e||(192<=e&&e<=214||216<=e&&e<=246||248<=e&&e<=893||895<=e&&e<=8191||8304<=e&&e<=8591||11264<=e&&e<=12271||12289<=e&&e<=55295||63744<=e&&e<=64975||65008<=e&&e<=65533||(0===e||(!!isSurrogate(e)||e>=65536)))}function isNewLine(e){return e===r||e===t||12===e}function isWhitespace(e){return 32===e||e===r||9===e||e===t||12===e}function isSurrogate(e){return e>=55296&&e<=57343}function checkIfTwoCodePointsAreAValidEscape(e){return 92===e.source.codePointAt(e.cursor)&&!isNewLine(e.source.codePointAt(e.cursor+1)??-1)}function checkIfThreeCodePointsWouldStartAnIdentSequence(e,n){return n.source.codePointAt(n.cursor)===o?n.source.codePointAt(n.cursor+1)===o||(!!isIdentStartCodePoint(n.source.codePointAt(n.cursor+1)??-1)||92===n.source.codePointAt(n.cursor+1)&&!isNewLine(n.source.codePointAt(n.cursor+2)??-1)):!!isIdentStartCodePoint(n.source.codePointAt(n.cursor)??-1)||checkIfTwoCodePointsAreAValidEscape(n)}function checkIfThreeCodePointsWouldStartANumber(e){return e.source.codePointAt(e.cursor)===i||e.source.codePointAt(e.cursor)===o?!!isDigitCodePoint(e.source.codePointAt(e.cursor+1)??-1)||46===e.source.codePointAt(e.cursor+1)&&isDigitCodePoint(e.source.codePointAt(e.cursor+2)??-1):46===e.source.codePointAt(e.cursor)?isDigitCodePoint(e.source.codePointAt(e.cursor+1)??-1):isDigitCodePoint(e.source.codePointAt(e.cursor)??-1)}function checkIfTwoCodePointsStartAComment(e){return 47===e.source.codePointAt(e.cursor)&&42===e.source.codePointAt(e.cursor+1)}function checkIfThreeCodePointsWouldStartCDC(e){return e.source.codePointAt(e.cursor)===o&&e.source.codePointAt(e.cursor+1)===o&&62===e.source.codePointAt(e.cursor+2)}var c,a,u;function mirrorVariantType(e){switch(e){case c.OpenParen:return c.CloseParen;case c.CloseParen:return c.OpenParen;case c.OpenCurly:return c.CloseCurly;case c.CloseCurly:return c.OpenCurly;case c.OpenSquare:return c.CloseSquare;case c.CloseSquare:return c.OpenSquare;default:return null}}function mirrorVariant(e){switch(e[0]){case c.OpenParen:return[c.CloseParen,\")\",-1,-1,void 0];case c.CloseParen:return[c.OpenParen,\"(\",-1,-1,void 0];case c.OpenCurly:return[c.CloseCurly,\"}\",-1,-1,void 0];case c.CloseCurly:return[c.OpenCurly,\"{\",-1,-1,void 0];case c.OpenSquare:return[c.CloseSquare,\"]\",-1,-1,void 0];case c.CloseSquare:return[c.OpenSquare,\"[\",-1,-1,void 0];default:return null}}function consumeComment(n,t){for(t.advanceCodePoint(2);;){const o=t.readCodePoint();if(void 0===o){const o=[c.Comment,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInComment,t.representationStart,t.representationEnd,[\"4.3.2. Consume comments\",\"Unexpected EOF\"],o)),o}if(42===o&&(void 0!==t.source.codePointAt(t.cursor)&&47===t.source.codePointAt(t.cursor))){t.advanceCodePoint();break}}return[c.Comment,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0]}function consumeEscapedCodePoint(n,o){const i=o.readCodePoint();if(void 0===i)return n.onParseError(new ParseError(e.UnexpectedEOFInEscapedCodePoint,o.representationStart,o.representationEnd,[\"4.3.7. Consume an escaped code point\",\"Unexpected EOF\"])),s;if(isHexDigitCodePoint(i)){const e=[i];let n;for(;void 0!==(n=o.source.codePointAt(o.cursor))&&isHexDigitCodePoint(n)&&e.length<6;)e.push(n),o.advanceCodePoint();isWhitespace(o.source.codePointAt(o.cursor)??-1)&&(o.source.codePointAt(o.cursor)===t&&o.source.codePointAt(o.cursor+1)===r&&o.advanceCodePoint(),o.advanceCodePoint());const c=parseInt(String.fromCodePoint(...e),16);return 0===c||isSurrogate(c)||c>1114111?s:c}return 0===i||isSurrogate(i)?s:i}function consumeIdentSequence(e,n){const t=[];for(;;){const o=n.source.codePointAt(n.cursor)??-1;if(0===o||isSurrogate(o))t.push(s),n.advanceCodePoint(+(o>65535)+1);else if(isIdentCodePoint(o))t.push(o),n.advanceCodePoint(+(o>65535)+1);else{if(!checkIfTwoCodePointsAreAValidEscape(n))return t;n.advanceCodePoint(),t.push(consumeEscapedCodePoint(e,n))}}}function consumeHashToken(e,n){n.advanceCodePoint();const t=n.source.codePointAt(n.cursor);if(void 0!==t&&(isIdentCodePoint(t)||checkIfTwoCodePointsAreAValidEscape(n))){let t=u.Unrestricted;checkIfThreeCodePointsWouldStartAnIdentSequence(0,n)&&(t=u.ID);const o=consumeIdentSequence(e,n);return[c.Hash,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...o),type:t}]}return[c.Delim,\"#\",n.representationStart,n.representationEnd,{value:\"#\"}]}function consumeNumber(e,n){let t=a.Integer;for(n.source.codePointAt(n.cursor)!==i&&n.source.codePointAt(n.cursor)!==o||n.advanceCodePoint();isDigitCodePoint(n.source.codePointAt(n.cursor)??-1);)n.advanceCodePoint();if(46===n.source.codePointAt(n.cursor)&&isDigitCodePoint(n.source.codePointAt(n.cursor+1)??-1))for(n.advanceCodePoint(2),t=a.Number;isDigitCodePoint(n.source.codePointAt(n.cursor)??-1);)n.advanceCodePoint();if(101===n.source.codePointAt(n.cursor)||69===n.source.codePointAt(n.cursor)){if(isDigitCodePoint(n.source.codePointAt(n.cursor+1)??-1))n.advanceCodePoint(2);else{if(n.source.codePointAt(n.cursor+1)!==o&&n.source.codePointAt(n.cursor+1)!==i||!isDigitCodePoint(n.source.codePointAt(n.cursor+2)??-1))return t;n.advanceCodePoint(3)}for(t=a.Number;isDigitCodePoint(n.source.codePointAt(n.cursor)??-1);)n.advanceCodePoint()}return t}function consumeNumericToken(e,n){let t;{const e=n.source.codePointAt(n.cursor);e===o?t=\"-\":e===i&&(t=\"+\")}const r=consumeNumber(0,n),s=parseFloat(n.source.slice(n.representationStart,n.representationEnd+1));if(checkIfThreeCodePointsWouldStartAnIdentSequence(0,n)){const o=consumeIdentSequence(e,n);return[c.Dimension,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:s,signCharacter:t,type:r,unit:String.fromCodePoint(...o)}]}return 37===n.source.codePointAt(n.cursor)?(n.advanceCodePoint(),[c.Percentage,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:s,signCharacter:t}]):[c.Number,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:s,signCharacter:t,type:r}]}function consumeWhiteSpace(e){for(;isWhitespace(e.source.codePointAt(e.cursor)??-1);)e.advanceCodePoint();return[c.Whitespace,e.source.slice(e.representationStart,e.representationEnd+1),e.representationStart,e.representationEnd,void 0]}!function(e){e.Comment=\"comment\",e.AtKeyword=\"at-keyword-token\",e.BadString=\"bad-string-token\",e.BadURL=\"bad-url-token\",e.CDC=\"CDC-token\",e.CDO=\"CDO-token\",e.Colon=\"colon-token\",e.Comma=\"comma-token\",e.Delim=\"delim-token\",e.Dimension=\"dimension-token\",e.EOF=\"EOF-token\",e.Function=\"function-token\",e.Hash=\"hash-token\",e.Ident=\"ident-token\",e.Number=\"number-token\",e.Percentage=\"percentage-token\",e.Semicolon=\"semicolon-token\",e.String=\"string-token\",e.URL=\"url-token\",e.Whitespace=\"whitespace-token\",e.OpenParen=\"(-token\",e.CloseParen=\")-token\",e.OpenSquare=\"[-token\",e.CloseSquare=\"]-token\",e.OpenCurly=\"{-token\",e.CloseCurly=\"}-token\",e.UnicodeRange=\"unicode-range-token\"}(c||(c={})),function(e){e.Integer=\"integer\",e.Number=\"number\"}(a||(a={})),function(e){e.Unrestricted=\"unrestricted\",e.ID=\"id\"}(u||(u={}));class Reader{cursor=0;source=\"\";representationStart=0;representationEnd=-1;constructor(e){this.source=e}advanceCodePoint(e=1){this.cursor=this.cursor+e,this.representationEnd=this.cursor-1}readCodePoint(){const e=this.source.codePointAt(this.cursor);if(void 0!==e)return this.cursor=this.cursor+1,this.representationEnd=this.cursor-1,e}unreadCodePoint(e=1){this.cursor=this.cursor-e,this.representationEnd=this.cursor-1}resetRepresentation(){this.representationStart=this.cursor,this.representationEnd=-1}}function consumeStringToken(n,o){let i=\"\";const a=o.readCodePoint();for(;;){const u=o.readCodePoint();if(void 0===u){const t=[c.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i}];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInString,o.representationStart,o.representationEnd,[\"4.3.5. Consume a string token\",\"Unexpected EOF\"],t)),t}if(isNewLine(u)){o.unreadCodePoint();const i=[c.BadString,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.UnexpectedNewLineInString,o.representationStart,o.source.codePointAt(o.cursor)===t&&o.source.codePointAt(o.cursor+1)===r?o.representationEnd+2:o.representationEnd+1,[\"4.3.5. Consume a string token\",\"Unexpected newline\"],i)),i}if(u===a)return[c.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i}];if(92!==u)0===u||isSurrogate(u)?i+=String.fromCodePoint(s):i+=String.fromCodePoint(u);else{if(void 0===o.source.codePointAt(o.cursor))continue;if(isNewLine(o.source.codePointAt(o.cursor)??-1)){o.source.codePointAt(o.cursor)===t&&o.source.codePointAt(o.cursor+1)===r&&o.advanceCodePoint(),o.advanceCodePoint();continue}i+=String.fromCodePoint(consumeEscapedCodePoint(n,o))}}}function checkIfCodePointsMatchURLIdent(e){return!(3!==e.length||117!==e[0]&&85!==e[0]||114!==e[1]&&82!==e[1]||108!==e[2]&&76!==e[2])}function consumeBadURL(e,n){for(;;){const t=n.source.codePointAt(n.cursor);if(void 0===t)return;if(41===t)return void n.advanceCodePoint();checkIfTwoCodePointsAreAValidEscape(n)?(n.advanceCodePoint(),consumeEscapedCodePoint(e,n)):n.advanceCodePoint()}}function consumeUrlToken(n,t){for(;isWhitespace(t.source.codePointAt(t.cursor)??-1);)t.advanceCodePoint();let o=\"\";for(;;){if(void 0===t.source.codePointAt(t.cursor)){const r=[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"Unexpected EOF\"],r)),r}if(41===t.source.codePointAt(t.cursor))return t.advanceCodePoint(),[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}];if(isWhitespace(t.source.codePointAt(t.cursor)??-1)){for(t.advanceCodePoint();isWhitespace(t.source.codePointAt(t.cursor)??-1);)t.advanceCodePoint();if(void 0===t.source.codePointAt(t.cursor)){const r=[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}];return n.onParseError(new ParseErrorWithToken(e.UnexpectedEOFInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"Consume as much whitespace as possible\",\"Unexpected EOF\"],r)),r}return 41===t.source.codePointAt(t.cursor)?(t.advanceCodePoint(),[c.URL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,{value:o}]):(consumeBadURL(n,t),[c.BadURL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0])}const i=t.source.codePointAt(t.cursor);if(34===i||39===i||40===i||(11===(r=i??-1)||127===r||0<=r&&r<=8||14<=r&&r<=31)){consumeBadURL(n,t);const o=[c.BadURL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.UnexpectedCharacterInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"Unexpected U+0022 QUOTATION MARK (\\\"), U+0027 APOSTROPHE ('), U+0028 LEFT PARENTHESIS (() or non-printable code point\"],o)),o}if(92===i){if(checkIfTwoCodePointsAreAValidEscape(t)){t.advanceCodePoint(),o+=String.fromCodePoint(consumeEscapedCodePoint(n,t));continue}consumeBadURL(n,t);const r=[c.BadURL,t.source.slice(t.representationStart,t.representationEnd+1),t.representationStart,t.representationEnd,void 0];return n.onParseError(new ParseErrorWithToken(e.InvalidEscapeSequenceInURL,t.representationStart,t.representationEnd,[\"4.3.6. Consume a url token\",\"U+005C REVERSE SOLIDUS (\\\\)\",\"The input stream does not start with a valid escape sequence\"],r)),r}0===t.source.codePointAt(t.cursor)||isSurrogate(t.source.codePointAt(t.cursor)??-1)?(o+=String.fromCodePoint(s),t.advanceCodePoint()):(o+=t.source[t.cursor],t.advanceCodePoint())}var r}function consumeIdentLikeToken(e,n){const t=consumeIdentSequence(e,n);if(40!==n.source.codePointAt(n.cursor))return[c.Ident,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...t)}];if(checkIfCodePointsMatchURLIdent(t)){n.advanceCodePoint();let o=0;for(;;){const e=isWhitespace(n.source.codePointAt(n.cursor)??-1),r=isWhitespace(n.source.codePointAt(n.cursor+1)??-1);if(e&&r){o+=1,n.advanceCodePoint(1);continue}const i=e?n.source.codePointAt(n.cursor+1):n.source.codePointAt(n.cursor);if(34===i||39===i)return o>0&&n.unreadCodePoint(o),[c.Function,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...t)}];break}return consumeUrlToken(e,n)}return n.advanceCodePoint(),[c.Function,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{value:String.fromCodePoint(...t)}]}function checkIfThreeCodePointsWouldStartAUnicodeRange(e){return!(117!==e.source.codePointAt(e.cursor)&&85!==e.source.codePointAt(e.cursor)||e.source.codePointAt(e.cursor+1)!==i||63!==e.source.codePointAt(e.cursor+2)&&!isHexDigitCodePoint(e.source.codePointAt(e.cursor+2)??-1))}function consumeUnicodeRangeToken(e,n){n.advanceCodePoint(2);const t=[],r=[];let i;for(;void 0!==(i=n.source.codePointAt(n.cursor))&&t.length<6&&isHexDigitCodePoint(i);)t.push(i),n.advanceCodePoint();for(;void 0!==(i=n.source.codePointAt(n.cursor))&&t.length<6&&63===i;)0===r.length&&r.push(...t),t.push(48),r.push(70),n.advanceCodePoint();if(!r.length&&n.source.codePointAt(n.cursor)===o&&isHexDigitCodePoint(n.source.codePointAt(n.cursor+1)??-1))for(n.advanceCodePoint();void 0!==(i=n.source.codePointAt(n.cursor))&&r.length<6&&isHexDigitCodePoint(i);)r.push(i),n.advanceCodePoint();if(!r.length){const e=parseInt(String.fromCodePoint(...t),16);return[c.UnicodeRange,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{startOfRange:e,endOfRange:e}]}const s=parseInt(String.fromCodePoint(...t),16),a=parseInt(String.fromCodePoint(...r),16);return[c.UnicodeRange,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,{startOfRange:s,endOfRange:a}]}function tokenize(e,n){const t=tokenizer(e,n),o=[];for(;!t.endOfFile();)o.push(t.nextToken());return o.push(t.nextToken()),o}function tokenizer(n,s){const a=n.css.valueOf(),u=n.unicodeRangesAllowed??!1,d=new Reader(a),p={onParseError:s?.onParseError??noop};return{nextToken:function nextToken(){d.resetRepresentation();const n=d.source.codePointAt(d.cursor);if(void 0===n)return[c.EOF,\"\",-1,-1,void 0];if(47===n&&checkIfTwoCodePointsStartAComment(d))return consumeComment(p,d);if(u&&(117===n||85===n)&&checkIfThreeCodePointsWouldStartAUnicodeRange(d))return consumeUnicodeRangeToken(0,d);if(isIdentStartCodePoint(n))return consumeIdentLikeToken(p,d);if(isDigitCodePoint(n))return consumeNumericToken(p,d);switch(n){case 44:return d.advanceCodePoint(),[c.Comma,\",\",d.representationStart,d.representationEnd,void 0];case 58:return d.advanceCodePoint(),[c.Colon,\":\",d.representationStart,d.representationEnd,void 0];case 59:return d.advanceCodePoint(),[c.Semicolon,\";\",d.representationStart,d.representationEnd,void 0];case 40:return d.advanceCodePoint(),[c.OpenParen,\"(\",d.representationStart,d.representationEnd,void 0];case 41:return d.advanceCodePoint(),[c.CloseParen,\")\",d.representationStart,d.representationEnd,void 0];case 91:return d.advanceCodePoint(),[c.OpenSquare,\"[\",d.representationStart,d.representationEnd,void 0];case 93:return d.advanceCodePoint(),[c.CloseSquare,\"]\",d.representationStart,d.representationEnd,void 0];case 123:return d.advanceCodePoint(),[c.OpenCurly,\"{\",d.representationStart,d.representationEnd,void 0];case 125:return d.advanceCodePoint(),[c.CloseCurly,\"}\",d.representationStart,d.representationEnd,void 0];case 39:case 34:return consumeStringToken(p,d);case 35:return consumeHashToken(p,d);case i:case 46:return checkIfThreeCodePointsWouldStartANumber(d)?consumeNumericToken(p,d):(d.advanceCodePoint(),[c.Delim,d.source[d.representationStart],d.representationStart,d.representationEnd,{value:d.source[d.representationStart]}]);case r:case t:case 12:case 9:case 32:return consumeWhiteSpace(d);case o:return checkIfThreeCodePointsWouldStartANumber(d)?consumeNumericToken(p,d):checkIfThreeCodePointsWouldStartCDC(d)?(d.advanceCodePoint(3),[c.CDC,\"--\\x3e\",d.representationStart,d.representationEnd,void 0]):checkIfThreeCodePointsWouldStartAnIdentSequence(0,d)?consumeIdentLikeToken(p,d):(d.advanceCodePoint(),[c.Delim,\"-\",d.representationStart,d.representationEnd,{value:\"-\"}]);case 60:return checkIfFourCodePointsWouldStartCDO(d)?(d.advanceCodePoint(4),[c.CDO,\"\\x3c!--\",d.representationStart,d.representationEnd,void 0]):(d.advanceCodePoint(),[c.Delim,\"<\",d.representationStart,d.representationEnd,{value:\"<\"}]);case 64:if(d.advanceCodePoint(),checkIfThreeCodePointsWouldStartAnIdentSequence(0,d)){const e=consumeIdentSequence(p,d);return[c.AtKeyword,d.source.slice(d.representationStart,d.representationEnd+1),d.representationStart,d.representationEnd,{value:String.fromCodePoint(...e)}]}return[c.Delim,\"@\",d.representationStart,d.representationEnd,{value:\"@\"}];case 92:{if(checkIfTwoCodePointsAreAValidEscape(d))return consumeIdentLikeToken(p,d);d.advanceCodePoint();const n=[c.Delim,\"\\\\\",d.representationStart,d.representationEnd,{value:\"\\\\\"}];return p.onParseError(new ParseErrorWithToken(e.InvalidEscapeSequenceAfterBackslash,d.representationStart,d.representationEnd,[\"4.3.1. Consume a token\",\"U+005C REVERSE SOLIDUS (\\\\)\",\"The input stream does not start with a valid escape sequence\"],n)),n}}return d.advanceCodePoint(),[c.Delim,d.source[d.representationStart],d.representationStart,d.representationEnd,{value:d.source[d.representationStart]}]},endOfFile:function endOfFile(){return void 0===d.source.codePointAt(d.cursor)}}}function noop(){}function mutateIdent(e,n){const t=[];for(const e of n)t.push(e.codePointAt(0));const o=String.fromCodePoint(...ensureThatValueRoundTripsAsIdent(t));e[1]=o,e[4].value=n}function mutateUnit(e,n){const t=[];for(const e of n)t.push(e.codePointAt(0));const o=ensureThatValueRoundTripsAsIdent(t);101===o[0]&&insertEscapedCodePoint(o,0,o[0]);const r=String.fromCodePoint(...o),i=\"+\"===e[4].signCharacter?e[4].signCharacter:\"\",s=e[4].value.toString();e[1]=`${i}${s}${r}`,e[4].unit=n}function ensureThatValueRoundTripsAsIdent(e){let n=0;e[0]===o&&e[1]===o?n=2:e[0]===o&&e[1]?(n=2,isIdentStartCodePoint(e[1])||(n+=insertEscapedCodePoint(e,1,e[1]))):isIdentStartCodePoint(e[0])?n=1:(n=1,n+=insertEscapedCodePoint(e,0,e[0]));for(let t=n;t<e.length;t++)isIdentCodePoint(e[t])||(t+=insertEscapedCodePoint(e,t,e[t]));return e}function insertEscapedCodePoint(e,n,t){const o=t.toString(16),r=[];for(const e of o)r.push(e.codePointAt(0));const i=e[n+1];return n===e.length-1||i&&isHexDigitCodePoint(i)?(e.splice(n,1,92,...r,32),1+r.length):(e.splice(n,1,92,...r),r.length)}const d=Object.values(c);function isToken(e){return!!Array.isArray(e)&&(!(e.length<4)&&(!!d.includes(e[0])&&(\"string\"==typeof e[1]&&(\"number\"==typeof e[2]&&\"number\"==typeof e[3]))))}function isTokenNumeric(e){if(!e)return!1;switch(e[0]){case c.Dimension:case c.Number:case c.Percentage:return!0;default:return!1}}function isTokenWhiteSpaceOrComment(e){if(!e)return!1;switch(e[0]){case c.Whitespace:case c.Comment:return!0;default:return!1}}function isTokenAtKeyword(e){return!!e&&e[0]===c.AtKeyword}function isTokenBadString(e){return!!e&&e[0]===c.BadString}function isTokenBadURL(e){return!!e&&e[0]===c.BadURL}function isTokenCDC(e){return!!e&&e[0]===c.CDC}function isTokenCDO(e){return!!e&&e[0]===c.CDO}function isTokenColon(e){return!!e&&e[0]===c.Colon}function isTokenComma(e){return!!e&&e[0]===c.Comma}function isTokenComment(e){return!!e&&e[0]===c.Comment}function isTokenDelim(e){return!!e&&e[0]===c.Delim}function isTokenDimension(e){return!!e&&e[0]===c.Dimension}function isTokenEOF(e){return!!e&&e[0]===c.EOF}function isTokenFunction(e){return!!e&&e[0]===c.Function}function isTokenHash(e){return!!e&&e[0]===c.Hash}function isTokenIdent(e){return!!e&&e[0]===c.Ident}function isTokenNumber(e){return!!e&&e[0]===c.Number}function isTokenPercentage(e){return!!e&&e[0]===c.Percentage}function isTokenSemicolon(e){return!!e&&e[0]===c.Semicolon}function isTokenString(e){return!!e&&e[0]===c.String}function isTokenURL(e){return!!e&&e[0]===c.URL}function isTokenWhitespace(e){return!!e&&e[0]===c.Whitespace}function isTokenOpenParen(e){return!!e&&e[0]===c.OpenParen}function isTokenCloseParen(e){return!!e&&e[0]===c.CloseParen}function isTokenOpenSquare(e){return!!e&&e[0]===c.OpenSquare}function isTokenCloseSquare(e){return!!e&&e[0]===c.CloseSquare}function isTokenOpenCurly(e){return!!e&&e[0]===c.OpenCurly}function isTokenCloseCurly(e){return!!e&&e[0]===c.CloseCurly}function isTokenUnicodeRange(e){return!!e&&e[0]===c.UnicodeRange}export{u as HashType,a as NumberType,ParseError,e as ParseErrorMessage,ParseErrorWithToken,c as TokenType,cloneTokens,isToken,isTokenAtKeyword,isTokenBadString,isTokenBadURL,isTokenCDC,isTokenCDO,isTokenCloseCurly,isTokenCloseParen,isTokenCloseSquare,isTokenColon,isTokenComma,isTokenComment,isTokenDelim,isTokenDimension,isTokenEOF,isTokenFunction,isTokenHash,isTokenIdent,isTokenNumber,isTokenNumeric,isTokenOpenCurly,isTokenOpenParen,isTokenOpenSquare,isTokenPercentage,isTokenSemicolon,isTokenString,isTokenURL,isTokenUnicodeRange,isTokenWhiteSpaceOrComment,isTokenWhitespace,mirrorVariant,mirrorVariantType,mutateIdent,mutateUnit,stringify,tokenize,tokenizer};\n","import{isTokenEOF as e,TokenType as n,isToken as t,stringify as o,mirrorVariant as s,isTokenOpenParen as i,isTokenOpenCurly as r,isTokenOpenSquare as a,isTokenFunction as c,isTokenWhitespace as u,isTokenComment as l,ParseError as d,isTokenCloseParen as h,isTokenWhiteSpaceOrComment as p,mirrorVariantType as m,isTokenComma as k}from\"@csstools/css-tokenizer\";var f;function walkerIndexGenerator(e){let n=e.slice();return(e,t,o)=>{let s=-1;for(let i=n.indexOf(t);i<n.length&&(s=e.indexOf(n[i]),-1===s||s<o);i++);return-1===s||s===o&&t===e[o]&&(s++,s>=e.length)?-1:(n=e.slice(),s)}}function consumeComponentValue(e,n){const t=n[0];if(i(t)||r(t)||a(t)){const t=consumeSimpleBlock(e,n);return{advance:t.advance,node:t.node}}if(c(t)){const t=consumeFunction(e,n);return{advance:t.advance,node:t.node}}if(u(t)){const t=consumeWhitespace(e,n);return{advance:t.advance,node:t.node}}if(l(t)){const t=consumeComment(e,n);return{advance:t.advance,node:t.node}}return{advance:1,node:new TokenNode(t)}}!function(e){e.Function=\"function\",e.SimpleBlock=\"simple-block\",e.Whitespace=\"whitespace\",e.Comment=\"comment\",e.Token=\"token\"}(f||(f={}));class ContainerNodeBaseClass{value=[];indexOf(e){return this.value.indexOf(e)}at(e){if(\"number\"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}forEach(e,n){if(0===this.value.length)return;const t=walkerIndexGenerator(this.value);let o=0;for(;o<this.value.length;){const s=this.value[o];let i;if(n&&(i={...n}),!1===e({node:s,parent:this,state:i},o))return!1;if(o=t(this.value,s,o),-1===o)break}}walk(e,n){0!==this.value.length&&this.forEach(((n,t)=>!1!==e(n,t)&&((!(\"walk\"in n.node)||!this.value.includes(n.node)||!1!==n.node.walk(e,n.state))&&void 0)),n)}}class FunctionNode extends ContainerNodeBaseClass{type=f.Function;name;endToken;constructor(e,n,t){super(),this.name=e,this.endToken=n,this.value=t}getName(){return this.name[4].value}normalize(){e(this.endToken)&&(this.endToken=[n.CloseParen,\")\",-1,-1,void 0])}tokens(){return e(this.endToken)?[this.name,...this.value.flatMap((e=>e.tokens()))]:[this.name,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>t(e)?o(e):e.toString())).join(\"\");return o(this.name)+e+o(this.endToken)}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isFunctionNode(){return FunctionNode.isFunctionNode(this)}static isFunctionNode(e){return!!e&&(e instanceof FunctionNode&&e.type===f.Function)}}function consumeFunction(n,t){const o=[];let s=1;for(;;){const i=t[s];if(!i||e(i))return n.onParseError(new d(\"Unexpected EOF while consuming a function.\",t[0][2],t[t.length-1][3],[\"5.4.9. Consume a function\",\"Unexpected EOF\"])),{advance:t.length,node:new FunctionNode(t[0],i,o)};if(h(i))return{advance:s+1,node:new FunctionNode(t[0],i,o)};if(p(i)){const e=consumeAllCommentsAndWhitespace(n,t.slice(s));s+=e.advance,o.push(...e.nodes);continue}const r=consumeComponentValue(n,t.slice(s));s+=r.advance,o.push(r.node)}}class SimpleBlockNode extends ContainerNodeBaseClass{type=f.SimpleBlock;startToken;endToken;constructor(e,n,t){super(),this.startToken=e,this.endToken=n,this.value=t}normalize(){if(e(this.endToken)){const e=s(this.startToken);e&&(this.endToken=e)}}tokens(){return e(this.endToken)?[this.startToken,...this.value.flatMap((e=>e.tokens()))]:[this.startToken,...this.value.flatMap((e=>e.tokens())),this.endToken]}toString(){const e=this.value.map((e=>t(e)?o(e):e.toString())).join(\"\");return o(this.startToken)+e+o(this.endToken)}toJSON(){return{type:this.type,startToken:this.startToken,tokens:this.tokens(),value:this.value.map((e=>e.toJSON()))}}isSimpleBlockNode(){return SimpleBlockNode.isSimpleBlockNode(this)}static isSimpleBlockNode(e){return!!e&&(e instanceof SimpleBlockNode&&e.type===f.SimpleBlock)}}function consumeSimpleBlock(n,t){const o=m(t[0][0]);if(!o)throw new Error(\"Failed to parse, a mirror variant must exist for all block open tokens.\");const s=[];let i=1;for(;;){const r=t[i];if(!r||e(r))return n.onParseError(new d(\"Unexpected EOF while consuming a simple block.\",t[0][2],t[t.length-1][3],[\"5.4.8. Consume a simple block\",\"Unexpected EOF\"])),{advance:t.length,node:new SimpleBlockNode(t[0],r,s)};if(r[0]===o)return{advance:i+1,node:new SimpleBlockNode(t[0],r,s)};if(p(r)){const e=consumeAllCommentsAndWhitespace(n,t.slice(i));i+=e.advance,s.push(...e.nodes);continue}const a=consumeComponentValue(n,t.slice(i));i+=a.advance,s.push(a.node)}}class WhitespaceNode{type=f.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return o(...this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isWhitespaceNode(){return WhitespaceNode.isWhitespaceNode(this)}static isWhitespaceNode(e){return!!e&&(e instanceof WhitespaceNode&&e.type===f.Whitespace)}}function consumeWhitespace(e,n){let t=0;for(;;){const e=n[t];if(!u(e))return{advance:t,node:new WhitespaceNode(n.slice(0,t))};t++}}class CommentNode{type=f.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return o(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isCommentNode(){return CommentNode.isCommentNode(this)}static isCommentNode(e){return!!e&&(e instanceof CommentNode&&e.type===f.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(e,n){const t=[];let o=0;for(;;)if(u(n[o])){const e=consumeWhitespace(0,n.slice(o));o+=e.advance,t.push(e.node)}else{if(!l(n[o]))return{advance:o,nodes:t};t.push(new CommentNode(n[o])),o++}}class TokenNode{type=f.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return this.value[1]}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===f.Token)}}function parseComponentValue(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];e(i[i.length-1])&&i.push([n.EOF,\"\",i[i.length-1][2],i[i.length-1][3],void 0]);const r=consumeComponentValue(s,i);if(e(i[Math.min(r.advance,i.length-1)]))return r.node;s.onParseError(new d(\"Expected EOF after parsing a component value.\",t[0][2],t[t.length-1][3],[\"5.3.9. Parse a component value\",\"Expected EOF\"]))}function parseListOfComponentValues(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];e(i[i.length-1])&&i.push([n.EOF,\"\",i[i.length-1][2],i[i.length-1][3],void 0]);const r=[];let a=0;for(;;){if(!i[a]||e(i[a]))return r;const n=consumeComponentValue(s,i.slice(a));r.push(n.node),a+=n.advance}}function parseCommaSeparatedListOfComponentValues(t,o){const s={onParseError:o?.onParseError??(()=>{})},i=[...t];if(0===t.length)return[];e(i[i.length-1])&&i.push([n.EOF,\"\",i[i.length-1][2],i[i.length-1][3],void 0]);const r=[];let a=[],c=0;for(;;){if(!i[c]||e(i[c]))return a.length&&r.push(a),r;if(k(i[c])){r.push(a),a=[],c++;continue}const n=consumeComponentValue(s,t.slice(c));a.push(n.node),c+=n.advance}}function gatherNodeAncestry(e){const n=new Map;return e.walk((e=>{Array.isArray(e.node)?e.node.forEach((t=>{n.set(t,e.parent)})):n.set(e.node,e.parent)})),n}function forEach(e,n,t){if(0===e.length)return;const o=walkerIndexGenerator(e);let s=0;for(;s<e.length;){const i=e[s];let r;if(t&&(r={...t}),!1===n({node:i,parent:{value:e},state:r},s))return!1;if(s=o(e,i,s),-1===s)break}}function walk(e,n,t){0!==e.length&&forEach(e,((t,o)=>!1!==n(t,o)&&((!(\"walk\"in t.node)||!e.includes(t.node)||!1!==t.node.walk(n,t.state))&&void 0)),t)}function replaceComponentValues(e,n){for(let t=0;t<e.length;t++){walk(e[t],((e,t)=>{if(\"number\"!=typeof t)return;const o=n(e.node);o&&(Array.isArray(o)?e.parent.value.splice(t,1,...o):e.parent.value.splice(t,1,o))}))}return e}function stringify(e){return e.map((e=>e.map((e=>o(...e.tokens()))).join(\"\"))).join(\",\")}function isSimpleBlockNode(e){return SimpleBlockNode.isSimpleBlockNode(e)}function isFunctionNode(e){return FunctionNode.isFunctionNode(e)}function isWhitespaceNode(e){return WhitespaceNode.isWhitespaceNode(e)}function isCommentNode(e){return CommentNode.isCommentNode(e)}function isWhiteSpaceOrCommentNode(e){return isWhitespaceNode(e)||isCommentNode(e)}function isTokenNode(e){return TokenNode.isTokenNode(e)}function sourceIndices(e){if(Array.isArray(e)){const n=e[0];if(!n)return[0,0];const t=e[e.length-1]||n;return[sourceIndices(n)[0],sourceIndices(t)[1]]}const n=e.tokens(),t=n[0],o=n[n.length-1];return t&&o?[t[2],o[3]]:[0,0]}export{CommentNode,f as ComponentValueType,ContainerNodeBaseClass,FunctionNode,SimpleBlockNode,TokenNode,WhitespaceNode,forEach,gatherNodeAncestry,isCommentNode,isFunctionNode,isSimpleBlockNode,isTokenNode,isWhiteSpaceOrCommentNode,isWhitespaceNode,parseCommaSeparatedListOfComponentValues,parseComponentValue,parseListOfComponentValues,replaceComponentValues,sourceIndices,stringify,walk,walkerIndexGenerator};\n","import{TokenNode as e,isTokenNode as n,isWhitespaceNode as t,isCommentNode as r,isWhiteSpaceOrCommentNode as a,isSimpleBlockNode as u,isFunctionNode as i,FunctionNode as o,WhitespaceNode as l,parseCommaSeparatedListOfComponentValues as c,replaceComponentValues as s}from\"@csstools/css-parser-algorithms\";import{isTokenDimension as v,TokenType as f,NumberType as m,mutateUnit as p,isTokenNumber as C,isTokenPercentage as g,isTokenIdent as d,isTokenNumeric as D,isTokenOpenParen as N,isTokenDelim as B,isTokenComma as A,isToken as h,tokenizer as F,tokenize as b,stringify as w}from\"@csstools/css-tokenizer\";const E=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(E,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const I={cm:\"px\",in:\"px\",mm:\"px\",pc:\"px\",pt:\"px\",px:\"px\",q:\"px\",deg:\"deg\",grad:\"deg\",rad:\"deg\",turn:\"deg\",ms:\"s\",s:\"s\",hz:\"hz\",khz:\"hz\"},S=new Map([[\"cm\",e=>e],[\"mm\",e=>10*e],[\"q\",e=>40*e],[\"in\",e=>e/2.54],[\"pc\",e=>e/2.54*6],[\"pt\",e=>e/2.54*72],[\"px\",e=>e/2.54*96]]),y=new Map([[\"deg\",e=>e],[\"grad\",e=>e/.9],[\"rad\",e=>e/180*Math.PI],[\"turn\",e=>e/360]]),M=new Map([[\"deg\",e=>.9*e],[\"grad\",e=>e],[\"rad\",e=>.9*e/180*Math.PI],[\"turn\",e=>.9*e/360]]),T=new Map([[\"hz\",e=>e],[\"khz\",e=>e/1e3]]),x=new Map([[\"cm\",e=>2.54*e],[\"mm\",e=>25.4*e],[\"q\",e=>25.4*e*4],[\"in\",e=>e],[\"pc\",e=>6*e],[\"pt\",e=>72*e],[\"px\",e=>96*e]]),k=new Map([[\"hz\",e=>1e3*e],[\"khz\",e=>e]]),P=new Map([[\"cm\",e=>e/10],[\"mm\",e=>e],[\"q\",e=>4*e],[\"in\",e=>e/25.4],[\"pc\",e=>e/25.4*6],[\"pt\",e=>e/25.4*72],[\"px\",e=>e/25.4*96]]),O=new Map([[\"ms\",e=>e],[\"s\",e=>e/1e3]]),W=new Map([[\"cm\",e=>e/6*2.54],[\"mm\",e=>e/6*25.4],[\"q\",e=>e/6*25.4*4],[\"in\",e=>e/6],[\"pc\",e=>e],[\"pt\",e=>e/6*72],[\"px\",e=>e/6*96]]),L=new Map([[\"cm\",e=>e/72*2.54],[\"mm\",e=>e/72*25.4],[\"q\",e=>e/72*25.4*4],[\"in\",e=>e/72],[\"pc\",e=>e/72*6],[\"pt\",e=>e],[\"px\",e=>e/72*96]]),U=new Map([[\"cm\",e=>e/96*2.54],[\"mm\",e=>e/96*25.4],[\"q\",e=>e/96*25.4*4],[\"in\",e=>e/96],[\"pc\",e=>e/96*6],[\"pt\",e=>e/96*72],[\"px\",e=>e]]),$=new Map([[\"cm\",e=>e/4/10],[\"mm\",e=>e/4],[\"q\",e=>e],[\"in\",e=>e/4/25.4],[\"pc\",e=>e/4/25.4*6],[\"pt\",e=>e/4/25.4*72],[\"px\",e=>e/4/25.4*96]]),Z=new Map([[\"deg\",e=>180*e/Math.PI],[\"grad\",e=>180*e/Math.PI/.9],[\"rad\",e=>e],[\"turn\",e=>180*e/Math.PI/360]]),z=new Map([[\"ms\",e=>1e3*e],[\"s\",e=>e]]),q=new Map([[\"deg\",e=>360*e],[\"grad\",e=>360*e/.9],[\"rad\",e=>360*e/180*Math.PI],[\"turn\",e=>e]]),G=new Map([[\"cm\",S],[\"mm\",P],[\"q\",$],[\"in\",x],[\"pc\",W],[\"pt\",L],[\"px\",U],[\"ms\",O],[\"s\",z],[\"deg\",y],[\"grad\",M],[\"rad\",Z],[\"turn\",q],[\"hz\",T],[\"khz\",k]]);function convertUnit(e,n){if(!v(e))return n;if(!v(n))return n;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(n[4].unit);if(t===r)return n;const a=G.get(r);if(!a)return n;const u=a.get(t);if(!u)return n;const i=u(n[4].value),o=[f.Dimension,\"\",n[2],n[3],{...n[4],signCharacter:i<0?\"-\":void 0,type:Number.isInteger(i)?m.Integer:m.Number,value:i}];return p(o,e[4].unit),o}function toCanonicalUnit(e){if(!v(e))return e;const n=toLowerCaseAZ(e[4].unit),t=I[n];if(n===t)return e;const r=G.get(n);if(!r)return e;const a=r.get(t);if(!a)return e;const u=a(e[4].value),i=[f.Dimension,\"\",e[2],e[3],{...e[4],signCharacter:u<0?\"-\":void 0,type:Number.isInteger(u)?m.Integer:m.Number,value:u}];return p(i,t),i}function addition(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(C(t)&&C(r)){const n=t[4].value+r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number}])}if(g(t)&&g(r)){const n=t[4].value+r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&v(r)&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value+r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:t[4].unit}])}return-1}function division(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(C(t)&&C(r)){const n=t[4].value/r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:Number.isInteger(n)?m.Integer:m.Number}])}if(g(t)&&C(r)){const n=t[4].value/r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&C(r)){const n=t[4].value/r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:Number.isInteger(n)?m.Integer:m.Number,unit:t[4].unit}])}return-1}function isCalculation(e){return!!e&&\"object\"==typeof e&&\"inputs\"in e&&Array.isArray(e.inputs)&&\"operation\"in e}function solve(e){if(-1===e)return-1;const t=[];for(let r=0;r<e.inputs.length;r++){const a=e.inputs[r];if(n(a)){t.push(a);continue}const u=solve(a);if(-1===u)return-1;t.push(u)}return e.operation(t)}function multiplication(n){if(2!==n.length)return-1;const t=n[0].value,r=n[1].value;if(C(t)&&C(r)){const n=t[4].value*r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number}])}if(g(t)&&C(r)){const n=t[4].value*r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(C(t)&&g(r)){const n=t[4].value*r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&C(r)){const n=t[4].value*r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:t[4].unit}])}if(C(t)&&v(r)){const n=t[4].value*r[4].value;return new e([f.Dimension,n.toString()+r[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:r[4].unit}])}return-1}function resolveGlobalsAndConstants(t,r){for(let a=0;a<t.length;a++){const u=t[a];if(!n(u))continue;const i=u.value;if(!d(i))continue;const o=toLowerCaseAZ(i[4].value);switch(o){case\"e\":t.splice(a,1,new e([f.Number,Math.E.toString(),i[2],i[3],{value:Math.E,type:m.Number}]));break;case\"pi\":t.splice(a,1,new e([f.Number,Math.PI.toString(),i[2],i[3],{value:Math.PI,type:m.Number}]));break;case\"infinity\":t.splice(a,1,new e([f.Number,\"infinity\",i[2],i[3],{value:1/0,type:m.Number}]));break;case\"-infinity\":t.splice(a,1,new e([f.Number,\"-infinity\",i[2],i[3],{value:-1/0,type:m.Number}]));break;case\"nan\":t.splice(a,1,new e([f.Number,\"NaN\",i[2],i[3],{value:Number.NaN,type:m.Number}]));break;default:if(r.has(o)){const n=r.get(o);t.splice(a,1,new e(n))}}}return t}function unary(e){if(1!==e.length)return-1;const n=e[0].value;return D(n)?e[0]:-1}function resultToCalculation(e,n,t){return v(n)?dimensionToCalculation(e,n[4].unit,t):g(n)?percentageToCalculation(e,t):C(n)?numberToCalculation(e,t):-1}function dimensionToCalculation(n,t,r){const a=n.tokens();return{inputs:[new e([f.Dimension,r.toString()+t,a[0][2],a[a.length-1][3],{value:r,type:Number.isInteger(r)?m.Integer:m.Number,unit:t}])],operation:unary}}function percentageToCalculation(n,t){const r=n.tokens();return{inputs:[new e([f.Percentage,t.toString()+\"%\",r[0][2],r[r.length-1][3],{value:t}])],operation:unary}}function numberToCalculation(n,t){const r=n.tokens();return{inputs:[new e([f.Number,t.toString(),r[0][2],r[r.length-1][3],{value:t,type:Number.isInteger(t)?m.Integer:m.Number}])],operation:unary}}function solveACos(e,n){const t=n.value;if(!C(t))return-1;return dimensionToCalculation(e,\"rad\",Math.acos(t[4].value))}function solveASin(e,n){const t=n.value;if(!C(t))return-1;return dimensionToCalculation(e,\"rad\",Math.asin(t[4].value))}function solveATan(e,n){const t=n.value;if(!C(t))return-1;return dimensionToCalculation(e,\"rad\",Math.atan(t[4].value))}function isDimensionOrNumber(e){return v(e)||C(e)}function arrayOfSameNumeric(e){if(0===e.length)return!0;const n=e[0];if(!D(n))return!1;if(1===e.length)return!0;if(v(n)){const t=toLowerCaseAZ(n[4].unit);for(let r=1;r<e.length;r++){const a=e[r];if(n[0]!==a[0])return!1;if(t!==toLowerCaseAZ(a[4].unit))return!1}return!0}for(let t=1;t<e.length;t++){const r=e[t];if(n[0]!==r[0])return!1}return!0}function twoOfSameNumeric(e,n){return!!D(e)&&(v(e)?e[0]===n[0]&&toLowerCaseAZ(e[4].unit)===toLowerCaseAZ(n[4].unit):e[0]===n[0])}function solveATan2(e,n,t){const r=n.value;if(!isDimensionOrNumber(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;return dimensionToCalculation(e,\"rad\",Math.atan2(r[4].value,a[4].value))}function solveAbs(e,n,t){const r=n.value;if(!D(r))return-1;if(!t.rawPercentages&&g(r))return-1;return resultToCalculation(e,r,Math.abs(r[4].value))}function solveClamp(e,t,r,a,u){if(!n(t)||!n(r)||!n(a))return-1;const i=t.value;if(!D(i))return-1;if(!u.rawPercentages&&g(i))return-1;const o=convertUnit(i,r.value);if(!twoOfSameNumeric(i,o))return-1;const l=convertUnit(i,a.value);if(!twoOfSameNumeric(i,l))return-1;return resultToCalculation(e,i,Math.max(i[4].value,Math.min(o[4].value,l[4].value)))}function solveCos(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(v(t))switch(t[4].unit.toLowerCase()){case\"rad\":break;case\"deg\":r=y.get(\"rad\")(t[4].value);break;case\"grad\":r=M.get(\"rad\")(t[4].value);break;case\"turn\":r=q.get(\"rad\")(t[4].value);break;default:return-1}return r=Math.cos(r),numberToCalculation(e,r)}function solveExp(e,n){const t=n.value;if(!C(t))return-1;return numberToCalculation(e,Math.exp(t[4].value))}function solveHypot(e,t,r){if(!t.every(n))return-1;const a=t[0].value;if(!D(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=t.map((e=>convertUnit(a,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),o=Math.hypot(...i);return resultToCalculation(e,a,o)}function solveMax(e,t,r){if(!t.every(n))return-1;const a=t[0].value;if(!D(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=t.map((e=>convertUnit(a,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),o=Math.max(...i);return resultToCalculation(e,a,o)}function solveMin(e,t,r){if(!t.every(n))return-1;const a=t[0].value;if(!D(a))return-1;if(!r.rawPercentages&&g(a))return-1;const u=t.map((e=>convertUnit(a,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),o=Math.min(...i);return resultToCalculation(e,a,o)}function solveMod(e,n,t){const r=n.value;if(!D(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;let u;return u=0===a[4].value?Number.NaN:Number.isFinite(r[4].value)&&(Number.isFinite(a[4].value)||(a[4].value!==Number.POSITIVE_INFINITY||r[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*r[4].value,-0))&&(a[4].value!==Number.NEGATIVE_INFINITY||r[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*r[4].value,0)))?Number.isFinite(a[4].value)?(r[4].value%a[4].value+a[4].value)%a[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,u)}function solvePow(e,n,t){const r=n.value,a=t.value;if(!C(r))return-1;if(!twoOfSameNumeric(r,a))return-1;return numberToCalculation(e,Math.pow(r[4].value,a[4].value))}function solveRem(e,n,t){const r=n.value;if(!D(r))return-1;const a=convertUnit(r,t.value);if(!twoOfSameNumeric(r,a))return-1;let u;return u=0===a[4].value?Number.NaN:Number.isFinite(r[4].value)?Number.isFinite(a[4].value)?r[4].value%a[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,u)}function solveRound(e,n,t,r,a){const u=t.value;if(!D(u))return-1;if(!a.rawPercentages&&g(u))return-1;const i=convertUnit(u,r.value);if(!twoOfSameNumeric(u,i))return-1;let o;if(0===i[4].value)o=Number.NaN;else if(Number.isFinite(u[4].value)||Number.isFinite(i[4].value))if(!Number.isFinite(u[4].value)&&Number.isFinite(i[4].value))o=u[4].value;else if(Number.isFinite(u[4].value)&&!Number.isFinite(i[4].value))switch(n){case\"down\":o=u[4].value<0?-1/0:Object.is(-0,0*u[4].value)?-0:0;break;case\"up\":o=u[4].value>0?1/0:Object.is(0,0*u[4].value)?0:-0;break;default:o=Object.is(0,0*u[4].value)?0:-0}else if(Number.isFinite(i[4].value))switch(n){case\"down\":o=Math.floor(u[4].value/i[4].value)*i[4].value;break;case\"up\":o=Math.ceil(u[4].value/i[4].value)*i[4].value;break;case\"to-zero\":o=Math.trunc(u[4].value/i[4].value)*i[4].value;break;default:{let e=Math.floor(u[4].value/i[4].value)*i[4].value,n=Math.ceil(u[4].value/i[4].value)*i[4].value;if(e>n){const t=e;e=n,n=t}const t=Math.abs(u[4].value-e),r=Math.abs(u[4].value-n);o=t===r?n:t<r?e:n;break}}else o=u[4].value;else o=Number.NaN;return resultToCalculation(e,u,o)}function solveSign(e,n,t){const r=n.value;if(!D(r))return-1;if(!t.rawPercentages&&g(r))return-1;return numberToCalculation(e,Math.sign(r[4].value))}function solveSin(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;let r=t[4].value;if(v(t))switch(toLowerCaseAZ(t[4].unit)){case\"rad\":break;case\"deg\":r=y.get(\"rad\")(t[4].value);break;case\"grad\":r=M.get(\"rad\")(t[4].value);break;case\"turn\":r=q.get(\"rad\")(t[4].value);break;default:return-1}return r=Math.sin(r),numberToCalculation(e,r)}function solveSqrt(e,n){const t=n.value;if(!C(t))return-1;return numberToCalculation(e,Math.sqrt(t[4].value))}function solveTan(e,n){const t=n.value;if(!isDimensionOrNumber(t))return-1;const r=t[4].value;let a=0,u=t[4].value;if(v(t))switch(toLowerCaseAZ(t[4].unit)){case\"rad\":a=Z.get(\"deg\")(r);break;case\"deg\":a=r,u=y.get(\"rad\")(r);break;case\"grad\":a=M.get(\"deg\")(r),u=M.get(\"rad\")(r);break;case\"turn\":a=q.get(\"deg\")(r),u=q.get(\"rad\")(r);break;default:return-1}const i=a/90;return u=a%90==0&&i%2!=0?i>0?1/0:-1/0:Math.tan(u),numberToCalculation(e,u)}function subtraction(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(C(t)&&C(r)){const n=t[4].value-r[4].value;return new e([f.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number}])}if(g(t)&&g(r)){const n=t[4].value-r[4].value;return new e([f.Percentage,n.toString()+\"%\",t[2],r[3],{value:n}])}if(v(t)&&v(r)&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value-r[4].value;return new e([f.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===m.Integer&&r[4].type===m.Integer?m.Integer:m.Number,unit:t[4].unit}])}return-1}function solveLog(e,t){if(1===t.length){const r=t[0];if(!r||!n(r))return-1;const a=r.value;if(!C(a))return-1;return numberToCalculation(e,Math.log(a[4].value))}if(2===t.length){const r=t[0];if(!r||!n(r))return-1;const a=r.value;if(!C(a))return-1;const u=t[1];if(!u||!n(u))return-1;const i=u.value;if(!C(i))return-1;return numberToCalculation(e,Math.log(a[4].value)/Math.log(i[4].value))}return-1}const R=/^none$/i;function isNone(e){if(Array.isArray(e)){const n=e.filter((e=>!(t(e)&&r(e))));return 1===n.length&&isNone(n[0])}if(!n(e))return!1;const a=e.value;return!!d(a)&&R.test(a[4].value)}const V=String.fromCodePoint(0);function solveRandom(e,n,t,r,a,u){if(-1===n.fixed&&!u.randomCaching)return-1;u.randomCaching||(u.randomCaching={propertyName:\"\",propertyN:0,elementID:\"\",documentID:\"\"}),u.randomCaching&&!u.randomCaching.propertyN&&(u.randomCaching.propertyN=0);const i=t.value;if(!D(i))return-1;const o=convertUnit(i,r.value);if(!twoOfSameNumeric(i,o))return-1;let l=null;if(a&&(l=convertUnit(i,a.value),!twoOfSameNumeric(i,l)))return-1;if(!Number.isFinite(i[4].value))return resultToCalculation(e,i,Number.NaN);if(!Number.isFinite(o[4].value))return resultToCalculation(e,i,Number.NaN);if(!Number.isFinite(o[4].value-i[4].value))return resultToCalculation(e,i,Number.NaN);if(l&&!Number.isFinite(l[4].value))return resultToCalculation(e,i,i[4].value);const c=-1===n.fixed?sfc32(crc32([n.dashedIdent?n.dashedIdent:`${u.randomCaching?.propertyName} ${u.randomCaching.propertyN++}`,n.elementShared?\"\":u.randomCaching.elementID,u.randomCaching.documentID].join(V))):()=>n.fixed;let s=i[4].value,v=o[4].value;if(s>v&&([s,v]=[v,s]),l&&(l[4].value<=0||Math.abs(s-v)/l[4].value>1e10)&&(l=null),l){const n=Math.max(l[4].value/1e3,1e-9),t=[s];let r=0;for(;;){r+=l[4].value;const e=s+r;if(!(e+n<v)){t.push(v);break}if(t.push(e),e+l[4].value-n>v)break}const a=c();return resultToCalculation(e,i,Number(t[Math.floor(t.length*a)].toFixed(5)))}const f=c();return resultToCalculation(e,i,Number((f*(v-s)+s).toFixed(5)))}function sfc32(e=.34944106645296036,n=.19228640875738723,t=.8784393832007205,r=.04850964319275053){return()=>{const a=((e|=0)+(n|=0)|0)+(r|=0)|0;return r=r+1|0,e=n^n>>>9,n=(t|=0)+(t<<3)|0,t=(t=t<<21|t>>>11)+a|0,(a>>>0)/4294967296}}function crc32(e){let n=0,t=0,r=0;n=~n;for(let a=0,u=e.length;a<u;a++)r=255&(n^e.charCodeAt(a)),t=Number(\"0x\"+\"00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D\".substring(9*r,9*r+8)),n=n>>>8^t;return~n>>>0}const j=new Map([[\"abs\",function abs(e,n,t){return singleNodeSolver(e,n,t,solveAbs)}],[\"acos\",function acos(e,n,t){return singleNodeSolver(e,n,t,solveACos)}],[\"asin\",function asin(e,n,t){return singleNodeSolver(e,n,t,solveASin)}],[\"atan\",function atan(e,n,t){return singleNodeSolver(e,n,t,solveATan)}],[\"atan2\",function atan2(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveATan2)}],[\"calc\",calc$1],[\"clamp\",function clamp(t,r,u){const i=resolveGlobalsAndConstants([...t.value.filter((e=>!a(e)))],r),l=[],c=[],s=[];{let e=l;for(let t=0;t<i.length;t++){const r=i[t];if(n(r)&&A(r.value)){if(e===s)return-1;if(e===c){e=s;continue}if(e===l){e=c;continue}return-1}e.push(r)}}const v=isNone(l),m=isNone(s);if(v&&m)return calc$1(calcWrapper(c),r,u);const p=solve(calc$1(calcWrapper(c),r,u));if(-1===p)return-1;if(v){const n=solve(calc$1(calcWrapper(s),r,u));return-1===n?-1:solveMin((C=p,g=n,new o([f.Function,\"min(\",-1,-1,{value:\"min\"}],[f.CloseParen,\")\",-1,-1,void 0],[C,new e([f.Comma,\",\",-1,-1,void 0]),g])),[p,n],u)}if(m){const e=solve(calc$1(calcWrapper(l),r,u));return-1===e?-1:solveMax(maxWrapper(e,p),[e,p],u)}var C,g;const d=solve(calc$1(calcWrapper(l),r,u));if(-1===d)return-1;const D=solve(calc$1(calcWrapper(s),r,u));if(-1===D)return-1;return solveClamp(t,d,p,D,u)}],[\"cos\",function cos(e,n,t){return singleNodeSolver(e,n,t,solveCos)}],[\"exp\",function exp(e,n,t){return singleNodeSolver(e,n,t,solveExp)}],[\"hypot\",function hypot(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveHypot)}],[\"log\",function log(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveLog)}],[\"max\",function max(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveMax)}],[\"min\",function min(e,n,t){return variadicNodesSolver(e,e.value,n,t,solveMin)}],[\"mod\",function mod(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveMod)}],[\"pow\",function pow(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solvePow)}],[\"random\",function random(e,n,t){const r=parseRandomValueSharing(e.value.filter((e=>!a(e))),n,t);if(-1===r)return-1;const[u,i]=r,o=variadicArguments(i,n,t);if(-1===o)return-1;const[l,c,s]=o;if(!l||!c)return-1;return solveRandom(e,u,l,c,s,t)}],[\"rem\",function rem(e,n,t){return twoCommaSeparatedNodesSolver(e,n,t,solveRem)}],[\"round\",function round(t,r,u){const i=resolveGlobalsAndConstants([...t.value.filter((e=>!a(e)))],r);let o=\"\",l=!1;const c=[],s=[];{let e=c;for(let t=0;t<i.length;t++){const r=i[t];if(!o&&0===c.length&&0===s.length&&n(r)&&d(r.value)){const e=r.value[4].value.toLowerCase();if(Y.has(e)){o=e;continue}}if(n(r)&&A(r.value)){if(e===s)return-1;if(e===c&&o&&0===c.length)continue;if(e===c){l=!0,e=s;continue}return-1}e.push(r)}}const v=solve(calc$1(calcWrapper(c),r,u));if(-1===v)return-1;l||0!==s.length||s.push(new e([f.Number,\"1\",-1,-1,{value:1,type:m.Integer}]));const p=solve(calc$1(calcWrapper(s),r,u));if(-1===p)return-1;o||(o=\"nearest\");return solveRound(t,o,v,p,u)}],[\"sign\",function sign(e,n,t){return singleNodeSolver(e,n,t,solveSign)}],[\"sin\",function sin(e,n,t){return singleNodeSolver(e,n,t,solveSin)}],[\"sqrt\",function sqrt(e,n,t){return singleNodeSolver(e,n,t,solveSqrt)}],[\"tan\",function tan(e,n,t){return singleNodeSolver(e,n,t,solveTan)}]]);function calc$1(e,t,r){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!a(e)))],t);if(1===o.length&&n(o[0]))return{inputs:[o[0]],operation:unary};let l=0;for(;l<o.length;){const e=o[l];if(u(e)&&N(e.startToken)){const n=calc$1(e,t,r);if(-1===n)return-1;o.splice(l,1,n)}else if(i(e)){const n=j.get(e.getName().toLowerCase());if(!n)return-1;const a=n(e,t,r);if(-1===a)return-1;o.splice(l,1,a)}else l++}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(!B(r)||\"*\"!==r[4].value&&\"/\"!==r[4].value){l++;continue}const a=o[l+2];if(!a||!n(a)&&!isCalculation(a))return-1;\"*\"!==r[4].value?\"/\"!==r[4].value?l++:o.splice(l,3,{inputs:[e,a],operation:division}):o.splice(l,3,{inputs:[e,a],operation:multiplication})}if(l=0,1===o.length&&isCalculation(o[0]))return o[0];for(;l<o.length;){const e=o[l];if(!e||!n(e)&&!isCalculation(e)){l++;continue}const t=o[l+1];if(!t||!n(t)){l++;continue}const r=t.value;if(!B(r)||\"+\"!==r[4].value&&\"-\"!==r[4].value){l++;continue}const a=o[l+2];if(!a||!n(a)&&!isCalculation(a))return-1;\"+\"!==r[4].value?\"-\"!==r[4].value?l++:o.splice(l,3,{inputs:[e,a],operation:subtraction}):o.splice(l,3,{inputs:[e,a],operation:addition})}return 1===o.length&&isCalculation(o[0])?o[0]:-1}function singleNodeSolver(e,n,t,r){const a=singleArgument(e.value,n,t);return-1===a?-1:r(e,a,t)}function singleArgument(e,n,t){const r=solve(calc$1(calcWrapper(resolveGlobalsAndConstants([...e.filter((e=>!a(e)))],n)),n,t));return-1===r?-1:r}function twoCommaSeparatedNodesSolver(e,n,t,r){const a=twoCommaSeparatedArguments(e.value,n,t);if(-1===a)return-1;const[u,i]=a;return r(e,u,i,t)}function twoCommaSeparatedArguments(e,t,r){const u=resolveGlobalsAndConstants([...e.filter((e=>!a(e)))],t),i=[],o=[];{let e=i;for(let t=0;t<u.length;t++){const r=u[t];if(n(r)&&A(r.value)){if(e===o)return-1;if(e===i){e=o;continue}return-1}e.push(r)}}const l=solve(calc$1(calcWrapper(i),t,r));if(-1===l)return-1;const c=solve(calc$1(calcWrapper(o),t,r));return-1===c?-1:[l,c]}function variadicNodesSolver(e,n,t,r,a){const u=variadicArguments(e.value,t,r);return-1===u?-1:a(e,u,r)}function variadicArguments(e,t,r){const u=resolveGlobalsAndConstants([...e.filter((e=>!a(e)))],t),i=[];{const e=[];let a=[];for(let t=0;t<u.length;t++){const r=u[t];n(r)&&A(r.value)?(e.push(a),a=[]):a.push(r)}e.push(a);for(let n=0;n<e.length;n++){if(0===e[n].length)return-1;const a=solve(calc$1(calcWrapper(e[n]),t,r));if(-1===a)return-1;i.push(a)}}return i}const Y=new Set([\"nearest\",\"up\",\"down\",\"to-zero\"]);function parseRandomValueSharing(e,t,r){const a={isAuto:!1,dashedIdent:\"\",fixed:-1,elementShared:!1},u=e[0];if(!n(u)||!d(u.value))return[a,e];for(let u=0;u<e.length;u++){const i=e[u];if(!n(i))return-1;if(A(i.value))return[a,e.slice(u+1)];if(!d(i.value))return-1;const o=i.value[4].value.toLowerCase();if(\"element-shared\"!==o)if(\"fixed\"!==o)if(\"auto\"!==o)if(o.startsWith(\"--\")){if(-1!==a.fixed||a.isAuto)return-1;a.dashedIdent=o}else;else{if(-1!==a.fixed||a.dashedIdent)return-1;a.isAuto=!0}else{if(a.elementShared||a.dashedIdent||a.isAuto)return-1;u++;const n=e[u];if(!n)return-1;const i=solve(calc$1(calcWrapper([n]),t,r));if(-1===i)return-1;if(!C(i.value))return-1;if(i.value[4].value<0||i.value[4].value>1)return-1;a.fixed=Math.max(0,Math.min(i.value[4].value,1-1e-9))}else{if(-1!==a.fixed)return-1;a.elementShared=!0}}return-1}function calcWrapper(e){return new o([f.Function,\"calc(\",-1,-1,{value:\"calc\"}],[f.CloseParen,\")\",-1,-1,void 0],e)}function maxWrapper(n,t){return new o([f.Function,\"max(\",-1,-1,{value:\"max\"}],[f.CloseParen,\")\",-1,-1,void 0],[n,new e([f.Comma,\",\",-1,-1,void 0]),t])}function patchNaN(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;return D(t)&&Number.isNaN(t[4].value)?C(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,\"NaN\",t[2],t[3],{value:\"NaN\"}])]):v(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,\"NaN\",t[2],t[3],{value:\"NaN\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Dimension,\"1\"+t[4].unit,t[2],t[3],{value:1,type:m.Integer,unit:t[4].unit}])]):g(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,\"NaN\",t[2],t[3],{value:\"NaN\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Percentage,\"1%\",t[2],t[3],{value:1}])]):-1:n}function patchInfinity(n){if(-1===n)return-1;if(i(n))return n;const t=n.value;if(!D(t))return n;if(Number.isFinite(t[4].value)||Number.isNaN(t[4].value))return n;let r=\"\";return Number.NEGATIVE_INFINITY===t[4].value&&(r=\"-\"),C(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,r+\"infinity\",t[2],t[3],{value:r+\"infinity\"}])]):v(t)?new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,r+\"infinity\",t[2],t[3],{value:r+\"infinity\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Dimension,\"1\"+t[4].unit,t[2],t[3],{value:1,type:m.Integer,unit:t[4].unit}])]):new o([f.Function,\"calc(\",t[2],t[3],{value:\"calc\"}],[f.CloseParen,\")\",t[2],t[3],void 0],[new e([f.Ident,r+\"infinity\",t[2],t[3],{value:r+\"infinity\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Delim,\"*\",t[2],t[3],{value:\"*\"}]),new l([[f.Whitespace,\" \",t[2],t[3],void 0]]),new e([f.Percentage,\"1%\",t[2],t[3],{value:1}])])}function patchMinusZero(e){if(-1===e)return-1;if(i(e))return e;const n=e.value;return D(n)&&Object.is(-0,n[4].value)?(\"-0\"===n[1]||(g(n)?n[1]=\"-0%\":v(n)?n[1]=\"-0\"+n[4].unit:n[1]=\"-0\"),e):e}function patchPrecision(e,n=13){if(-1===e)return-1;if(n<=0)return e;if(i(e))return e;const t=e.value;if(!D(t))return e;if(Number.isInteger(t[4].value))return e;const r=Number(t[4].value.toFixed(n)).toString();return C(t)?t[1]=r:g(t)?t[1]=r+\"%\":v(t)&&(t[1]=r+t[4].unit),e}function patchCanonicalUnit(e){return-1===e?-1:i(e)?e:v(e.value)?(e.value=toCanonicalUnit(e.value),e):e}function patchCalcResult(e,n){let t=e;return n?.toCanonicalUnits&&(t=patchCanonicalUnit(t)),t=patchPrecision(t,n?.precision),t=patchMinusZero(t),n?.censorIntoStandardRepresentableValues||(t=patchNaN(t),t=patchInfinity(t)),t}function tokenizeGlobals(e){const n=new Map;if(!e)return n;for(const[t,r]of e)if(h(r))n.set(t,r);else if(\"string\"!=typeof r);else{const e=F({css:r}),a=e.nextToken();if(e.nextToken(),!e.endOfFile())continue;if(!D(a))continue;n.set(t,a)}return n}function calc(e,n){return calcFromComponentValues(c(b({css:e}),{}),n).map((e=>e.map((e=>w(...e.tokens()))).join(\"\"))).join(\",\")}function calcFromComponentValues(e,n){const t=tokenizeGlobals(n?.globals);return s(e,(e=>{if(!i(e))return;const r=j.get(e.getName().toLowerCase());if(!r)return;const a=patchCalcResult(solve(r(e,t,n??{})),n);return-1!==a?a:void 0}))}const _=new Set(j.keys());export{calc,calcFromComponentValues,_ as mathFunctionNames};\n","/**\n * @module LRUCache\n */\nconst perf = typeof performance === 'object' &&\n performance &&\n typeof performance.now === 'function'\n ? performance\n : Date;\nconst warned = new Set();\n/* c8 ignore start */\nconst PROCESS = (typeof process === 'object' && !!process ? process : {});\n/* c8 ignore start */\nconst emitWarning = (msg, type, code, fn) => {\n typeof PROCESS.emitWarning === 'function'\n ? PROCESS.emitWarning(msg, type, code, fn)\n : console.error(`[${code}] ${type}: ${msg}`);\n};\nlet AC = globalThis.AbortController;\nlet AS = globalThis.AbortSignal;\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n //@ts-ignore\n AS = class AbortSignal {\n onabort;\n _onabort = [];\n reason;\n aborted = false;\n addEventListener(_, fn) {\n this._onabort.push(fn);\n }\n };\n //@ts-ignore\n AC = class AbortController {\n constructor() {\n warnACPolyfill();\n }\n signal = new AS();\n abort(reason) {\n if (this.signal.aborted)\n return;\n //@ts-ignore\n this.signal.reason = reason;\n //@ts-ignore\n this.signal.aborted = true;\n //@ts-ignore\n for (const fn of this.signal._onabort) {\n fn(reason);\n }\n this.signal.onabort?.(reason);\n }\n };\n let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';\n const warnACPolyfill = () => {\n if (!printACPolyfillWarning)\n return;\n printACPolyfillWarning = false;\n emitWarning('AbortController is not defined. If using lru-cache in ' +\n 'node 14, load an AbortController polyfill from the ' +\n '`node-abort-controller` package. A minimal polyfill is ' +\n 'provided for use by LRUCache.fetch(), but it should not be ' +\n 'relied upon in other contexts (eg, passing it to other APIs that ' +\n 'use AbortController/AbortSignal might have undesirable effects). ' +\n 'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);\n };\n}\n/* c8 ignore stop */\nconst shouldWarn = (code) => !warned.has(code);\nconst TYPE = Symbol('type');\nconst isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values. Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max) => !isPosInt(max)\n ? null\n : max <= Math.pow(2, 8)\n ? Uint8Array\n : max <= Math.pow(2, 16)\n ? Uint16Array\n : max <= Math.pow(2, 32)\n ? Uint32Array\n : max <= Number.MAX_SAFE_INTEGER\n ? ZeroArray\n : null;\n/* c8 ignore stop */\nclass ZeroArray extends Array {\n constructor(size) {\n super(size);\n this.fill(0);\n }\n}\nclass Stack {\n heap;\n length;\n // private constructor\n static #constructing = false;\n static create(max) {\n const HeapCls = getUintArray(max);\n if (!HeapCls)\n return [];\n Stack.#constructing = true;\n const s = new Stack(max, HeapCls);\n Stack.#constructing = false;\n return s;\n }\n constructor(max, HeapCls) {\n /* c8 ignore start */\n if (!Stack.#constructing) {\n throw new TypeError('instantiate Stack using Stack.create(n)');\n }\n /* c8 ignore stop */\n this.heap = new HeapCls(max);\n this.length = 0;\n }\n push(n) {\n this.heap[this.length++] = n;\n }\n pop() {\n return this.heap[--this.length];\n }\n}\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nexport class LRUCache {\n // options that cannot be changed without disaster\n #max;\n #maxSize;\n #dispose;\n #disposeAfter;\n #fetchMethod;\n #memoMethod;\n /**\n * {@link LRUCache.OptionsBase.ttl}\n */\n ttl;\n /**\n * {@link LRUCache.OptionsBase.ttlResolution}\n */\n ttlResolution;\n /**\n * {@link LRUCache.OptionsBase.ttlAutopurge}\n */\n ttlAutopurge;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnGet}\n */\n updateAgeOnGet;\n /**\n * {@link LRUCache.OptionsBase.updateAgeOnHas}\n */\n updateAgeOnHas;\n /**\n * {@link LRUCache.OptionsBase.allowStale}\n */\n allowStale;\n /**\n * {@link LRUCache.OptionsBase.noDisposeOnSet}\n */\n noDisposeOnSet;\n /**\n * {@link LRUCache.OptionsBase.noUpdateTTL}\n */\n noUpdateTTL;\n /**\n * {@link LRUCache.OptionsBase.maxEntrySize}\n */\n maxEntrySize;\n /**\n * {@link LRUCache.OptionsBase.sizeCalculation}\n */\n sizeCalculation;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n */\n noDeleteOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n */\n noDeleteOnStaleGet;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n */\n allowStaleOnFetchAbort;\n /**\n * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n */\n allowStaleOnFetchRejection;\n /**\n * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n */\n ignoreFetchAbort;\n // computed properties\n #size;\n #calculatedSize;\n #keyMap;\n #keyList;\n #valList;\n #next;\n #prev;\n #head;\n #tail;\n #free;\n #disposed;\n #sizes;\n #starts;\n #ttls;\n #hasDispose;\n #hasFetchMethod;\n #hasDisposeAfter;\n /**\n * Do not call this method unless you need to inspect the\n * inner workings of the cache. If anything returned by this\n * object is modified in any way, strange breakage may occur.\n *\n * These fields are private for a reason!\n *\n * @internal\n */\n static unsafeExposeInternals(c) {\n return {\n // properties\n starts: c.#starts,\n ttls: c.#ttls,\n sizes: c.#sizes,\n keyMap: c.#keyMap,\n keyList: c.#keyList,\n valList: c.#valList,\n next: c.#next,\n prev: c.#prev,\n get head() {\n return c.#head;\n },\n get tail() {\n return c.#tail;\n },\n free: c.#free,\n // methods\n isBackgroundFetch: (p) => c.#isBackgroundFetch(p),\n backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),\n moveToTail: (index) => c.#moveToTail(index),\n indexes: (options) => c.#indexes(options),\n rindexes: (options) => c.#rindexes(options),\n isStale: (index) => c.#isStale(index),\n };\n }\n // Protected read-only members\n /**\n * {@link LRUCache.OptionsBase.max} (read-only)\n */\n get max() {\n return this.#max;\n }\n /**\n * {@link LRUCache.OptionsBase.maxSize} (read-only)\n */\n get maxSize() {\n return this.#maxSize;\n }\n /**\n * The total computed size of items in the cache (read-only)\n */\n get calculatedSize() {\n return this.#calculatedSize;\n }\n /**\n * The number of items stored in the cache (read-only)\n */\n get size() {\n return this.#size;\n }\n /**\n * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n */\n get fetchMethod() {\n return this.#fetchMethod;\n }\n get memoMethod() {\n return this.#memoMethod;\n }\n /**\n * {@link LRUCache.OptionsBase.dispose} (read-only)\n */\n get dispose() {\n return this.#dispose;\n }\n /**\n * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n */\n get disposeAfter() {\n return this.#disposeAfter;\n }\n constructor(options) {\n const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;\n if (max !== 0 && !isPosInt(max)) {\n throw new TypeError('max option must be a nonnegative integer');\n }\n const UintArray = max ? getUintArray(max) : Array;\n if (!UintArray) {\n throw new Error('invalid max value: ' + max);\n }\n this.#max = max;\n this.#maxSize = maxSize;\n this.maxEntrySize = maxEntrySize || this.#maxSize;\n this.sizeCalculation = sizeCalculation;\n if (this.sizeCalculation) {\n if (!this.#maxSize && !this.maxEntrySize) {\n throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');\n }\n if (typeof this.sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation set to non-function');\n }\n }\n if (memoMethod !== undefined &&\n typeof memoMethod !== 'function') {\n throw new TypeError('memoMethod must be a function if defined');\n }\n this.#memoMethod = memoMethod;\n if (fetchMethod !== undefined &&\n typeof fetchMethod !== 'function') {\n throw new TypeError('fetchMethod must be a function if specified');\n }\n this.#fetchMethod = fetchMethod;\n this.#hasFetchMethod = !!fetchMethod;\n this.#keyMap = new Map();\n this.#keyList = new Array(max).fill(undefined);\n this.#valList = new Array(max).fill(undefined);\n this.#next = new UintArray(max);\n this.#prev = new UintArray(max);\n this.#head = 0;\n this.#tail = 0;\n this.#free = Stack.create(max);\n this.#size = 0;\n this.#calculatedSize = 0;\n if (typeof dispose === 'function') {\n this.#dispose = dispose;\n }\n if (typeof disposeAfter === 'function') {\n this.#disposeAfter = disposeAfter;\n this.#disposed = [];\n }\n else {\n this.#disposeAfter = undefined;\n this.#disposed = undefined;\n }\n this.#hasDispose = !!this.#dispose;\n this.#hasDisposeAfter = !!this.#disposeAfter;\n this.noDisposeOnSet = !!noDisposeOnSet;\n this.noUpdateTTL = !!noUpdateTTL;\n this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;\n this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;\n this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;\n this.ignoreFetchAbort = !!ignoreFetchAbort;\n // NB: maxEntrySize is set to maxSize if it's set\n if (this.maxEntrySize !== 0) {\n if (this.#maxSize !== 0) {\n if (!isPosInt(this.#maxSize)) {\n throw new TypeError('maxSize must be a positive integer if specified');\n }\n }\n if (!isPosInt(this.maxEntrySize)) {\n throw new TypeError('maxEntrySize must be a positive integer if specified');\n }\n this.#initializeSizeTracking();\n }\n this.allowStale = !!allowStale;\n this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;\n this.updateAgeOnGet = !!updateAgeOnGet;\n this.updateAgeOnHas = !!updateAgeOnHas;\n this.ttlResolution =\n isPosInt(ttlResolution) || ttlResolution === 0\n ? ttlResolution\n : 1;\n this.ttlAutopurge = !!ttlAutopurge;\n this.ttl = ttl || 0;\n if (this.ttl) {\n if (!isPosInt(this.ttl)) {\n throw new TypeError('ttl must be a positive integer if specified');\n }\n this.#initializeTTLTracking();\n }\n // do not allow completely unbounded caches\n if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n throw new TypeError('At least one of max, maxSize, or ttl is required');\n }\n if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n const code = 'LRU_CACHE_UNBOUNDED';\n if (shouldWarn(code)) {\n warned.add(code);\n const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n 'result in unbounded memory consumption.';\n emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);\n }\n }\n }\n /**\n * Return the number of ms left in the item's TTL. If item is not in cache,\n * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n */\n getRemainingTTL(key) {\n return this.#keyMap.has(key) ? Infinity : 0;\n }\n #initializeTTLTracking() {\n const ttls = new ZeroArray(this.#max);\n const starts = new ZeroArray(this.#max);\n this.#ttls = ttls;\n this.#starts = starts;\n this.#setItemTTL = (index, ttl, start = perf.now()) => {\n starts[index] = ttl !== 0 ? start : 0;\n ttls[index] = ttl;\n if (ttl !== 0 && this.ttlAutopurge) {\n const t = setTimeout(() => {\n if (this.#isStale(index)) {\n this.#delete(this.#keyList[index], 'expire');\n }\n }, ttl + 1);\n // unref() not supported on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n }\n };\n this.#updateItemAge = index => {\n starts[index] = ttls[index] !== 0 ? perf.now() : 0;\n };\n this.#statusTTL = (status, index) => {\n if (ttls[index]) {\n const ttl = ttls[index];\n const start = starts[index];\n /* c8 ignore next */\n if (!ttl || !start)\n return;\n status.ttl = ttl;\n status.start = start;\n status.now = cachedNow || getNow();\n const age = status.now - start;\n status.remainingTTL = ttl - age;\n }\n };\n // debounce calls to perf.now() to 1s so we're not hitting\n // that costly call repeatedly.\n let cachedNow = 0;\n const getNow = () => {\n const n = perf.now();\n if (this.ttlResolution > 0) {\n cachedNow = n;\n const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);\n // not available on all platforms\n /* c8 ignore start */\n if (t.unref) {\n t.unref();\n }\n /* c8 ignore stop */\n }\n return n;\n };\n this.getRemainingTTL = key => {\n const index = this.#keyMap.get(key);\n if (index === undefined) {\n return 0;\n }\n const ttl = ttls[index];\n const start = starts[index];\n if (!ttl || !start) {\n return Infinity;\n }\n const age = (cachedNow || getNow()) - start;\n return ttl - age;\n };\n this.#isStale = index => {\n const s = starts[index];\n const t = ttls[index];\n return !!t && !!s && (cachedNow || getNow()) - s > t;\n };\n }\n // conditionally set private methods related to TTL\n #updateItemAge = () => { };\n #statusTTL = () => { };\n #setItemTTL = () => { };\n /* c8 ignore stop */\n #isStale = () => false;\n #initializeSizeTracking() {\n const sizes = new ZeroArray(this.#max);\n this.#calculatedSize = 0;\n this.#sizes = sizes;\n this.#removeItemSize = index => {\n this.#calculatedSize -= sizes[index];\n sizes[index] = 0;\n };\n this.#requireSize = (k, v, size, sizeCalculation) => {\n // provisionally accept background fetches.\n // actual value size will be checked when they return.\n if (this.#isBackgroundFetch(v)) {\n return 0;\n }\n if (!isPosInt(size)) {\n if (sizeCalculation) {\n if (typeof sizeCalculation !== 'function') {\n throw new TypeError('sizeCalculation must be a function');\n }\n size = sizeCalculation(v, k);\n if (!isPosInt(size)) {\n throw new TypeError('sizeCalculation return invalid (expect positive integer)');\n }\n }\n else {\n throw new TypeError('invalid size value (must be positive integer). ' +\n 'When maxSize or maxEntrySize is used, sizeCalculation ' +\n 'or size must be set.');\n }\n }\n return size;\n };\n this.#addItemSize = (index, size, status) => {\n sizes[index] = size;\n if (this.#maxSize) {\n const maxSize = this.#maxSize - sizes[index];\n while (this.#calculatedSize > maxSize) {\n this.#evict(true);\n }\n }\n this.#calculatedSize += sizes[index];\n if (status) {\n status.entrySize = size;\n status.totalCalculatedSize = this.#calculatedSize;\n }\n };\n }\n #removeItemSize = _i => { };\n #addItemSize = (_i, _s, _st) => { };\n #requireSize = (_k, _v, size, sizeCalculation) => {\n if (size || sizeCalculation) {\n throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');\n }\n return 0;\n };\n *#indexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#tail; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#head) {\n break;\n }\n else {\n i = this.#prev[i];\n }\n }\n }\n }\n *#rindexes({ allowStale = this.allowStale } = {}) {\n if (this.#size) {\n for (let i = this.#head; true;) {\n if (!this.#isValidIndex(i)) {\n break;\n }\n if (allowStale || !this.#isStale(i)) {\n yield i;\n }\n if (i === this.#tail) {\n break;\n }\n else {\n i = this.#next[i];\n }\n }\n }\n }\n #isValidIndex(index) {\n return (index !== undefined &&\n this.#keyMap.get(this.#keyList[index]) === index);\n }\n /**\n * Return a generator yielding `[key, value]` pairs,\n * in order from most recently used to least recently used.\n */\n *entries() {\n for (const i of this.#indexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.entries}\n *\n * Return a generator yielding `[key, value]` pairs,\n * in order from least recently used to most recently used.\n */\n *rentries() {\n for (const i of this.#rindexes()) {\n if (this.#valList[i] !== undefined &&\n this.#keyList[i] !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield [this.#keyList[i], this.#valList[i]];\n }\n }\n }\n /**\n * Return a generator yielding the keys in the cache,\n * in order from most recently used to least recently used.\n */\n *keys() {\n for (const i of this.#indexes()) {\n const k = this.#keyList[i];\n if (k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.keys}\n *\n * Return a generator yielding the keys in the cache,\n * in order from least recently used to most recently used.\n */\n *rkeys() {\n for (const i of this.#rindexes()) {\n const k = this.#keyList[i];\n if (k !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield k;\n }\n }\n }\n /**\n * Return a generator yielding the values in the cache,\n * in order from most recently used to least recently used.\n */\n *values() {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n if (v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Inverse order version of {@link LRUCache.values}\n *\n * Return a generator yielding the values in the cache,\n * in order from least recently used to most recently used.\n */\n *rvalues() {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n if (v !== undefined &&\n !this.#isBackgroundFetch(this.#valList[i])) {\n yield this.#valList[i];\n }\n }\n }\n /**\n * Iterating over the cache itself yields the same results as\n * {@link LRUCache.entries}\n */\n [Symbol.iterator]() {\n return this.entries();\n }\n /**\n * A String value that is used in the creation of the default string\n * description of an object. Called by the built-in method\n * `Object.prototype.toString`.\n */\n [Symbol.toStringTag] = 'LRUCache';\n /**\n * Find a value for which the supplied fn method returns a truthy value,\n * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n */\n find(fn, getOptions = {}) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n if (fn(value, this.#keyList[i], this)) {\n return this.get(this.#keyList[i], getOptions);\n }\n }\n }\n /**\n * Call the supplied function on each item in the cache, in order from most\n * recently used to least recently used.\n *\n * `fn` is called as `fn(value, key, cache)`.\n *\n * If `thisp` is provided, function will be called in the `this`-context of\n * the provided object, or the cache if no `thisp` object is provided.\n *\n * Does not update age or recenty of use, or iterate over stale values.\n */\n forEach(fn, thisp = this) {\n for (const i of this.#indexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * The same as {@link LRUCache.forEach} but items are iterated over in\n * reverse order. (ie, less recently used items are iterated over first.)\n */\n rforEach(fn, thisp = this) {\n for (const i of this.#rindexes()) {\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n continue;\n fn.call(thisp, value, this.#keyList[i], this);\n }\n }\n /**\n * Delete any stale entries. Returns true if anything was removed,\n * false otherwise.\n */\n purgeStale() {\n let deleted = false;\n for (const i of this.#rindexes({ allowStale: true })) {\n if (this.#isStale(i)) {\n this.#delete(this.#keyList[i], 'expire');\n deleted = true;\n }\n }\n return deleted;\n }\n /**\n * Get the extended info about a given entry, to get its value, size, and\n * TTL info simultaneously. Returns `undefined` if the key is not present.\n *\n * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n * serialization, the `start` value is always the current timestamp, and the\n * `ttl` is a calculated remaining time to live (negative if expired).\n *\n * Always returns stale values, if their info is found in the cache, so be\n * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n * if relevant.\n */\n info(key) {\n const i = this.#keyMap.get(key);\n if (i === undefined)\n return undefined;\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined)\n return undefined;\n const entry = { value };\n if (this.#ttls && this.#starts) {\n const ttl = this.#ttls[i];\n const start = this.#starts[i];\n if (ttl && start) {\n const remain = ttl - (perf.now() - start);\n entry.ttl = remain;\n entry.start = Date.now();\n }\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n return entry;\n }\n /**\n * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n * passed to {@link LRLUCache#load}.\n *\n * The `start` fields are calculated relative to a portable `Date.now()`\n * timestamp, even if `performance.now()` is available.\n *\n * Stale entries are always included in the `dump`, even if\n * {@link LRUCache.OptionsBase.allowStale} is false.\n *\n * Note: this returns an actual array, not a generator, so it can be more\n * easily passed around.\n */\n dump() {\n const arr = [];\n for (const i of this.#indexes({ allowStale: true })) {\n const key = this.#keyList[i];\n const v = this.#valList[i];\n const value = this.#isBackgroundFetch(v)\n ? v.__staleWhileFetching\n : v;\n if (value === undefined || key === undefined)\n continue;\n const entry = { value };\n if (this.#ttls && this.#starts) {\n entry.ttl = this.#ttls[i];\n // always dump the start relative to a portable timestamp\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = perf.now() - this.#starts[i];\n entry.start = Math.floor(Date.now() - age);\n }\n if (this.#sizes) {\n entry.size = this.#sizes[i];\n }\n arr.unshift([key, entry]);\n }\n return arr;\n }\n /**\n * Reset the cache and load in the items in entries in the order listed.\n *\n * The shape of the resulting cache may be different if the same options are\n * not used in both caches.\n *\n * The `start` fields are assumed to be calculated relative to a portable\n * `Date.now()` timestamp, even if `performance.now()` is available.\n */\n load(arr) {\n this.clear();\n for (const [key, entry] of arr) {\n if (entry.start) {\n // entry.start is a portable timestamp, but we may be using\n // node's performance.now(), so calculate the offset, so that\n // we get the intended remaining TTL, no matter how long it's\n // been on ice.\n //\n // it's ok for this to be a bit slow, it's a rare operation.\n const age = Date.now() - entry.start;\n entry.start = perf.now() - age;\n }\n this.set(key, entry.value, entry);\n }\n }\n /**\n * Add a value to the cache.\n *\n * Note: if `undefined` is specified as a value, this is an alias for\n * {@link LRUCache#delete}\n *\n * Fields on the {@link LRUCache.SetOptions} options param will override\n * their corresponding values in the constructor options for the scope\n * of this single `set()` operation.\n *\n * If `start` is provided, then that will set the effective start\n * time for the TTL calculation. Note that this must be a previous\n * value of `performance.now()` if supported, or a previous value of\n * `Date.now()` if not.\n *\n * Options object may also include `size`, which will prevent\n * calling the `sizeCalculation` function and just use the specified\n * number if it is a positive integer, and `noDisposeOnSet` which\n * will prevent calling a `dispose` function in the case of\n * overwrites.\n *\n * If the `size` (or return value of `sizeCalculation`) for a given\n * entry is greater than `maxEntrySize`, then the item will not be\n * added to the cache.\n *\n * Will update the recency of the entry.\n *\n * If the value is `undefined`, then this is an alias for\n * `cache.delete(key)`. `undefined` is never stored in the cache.\n */\n set(k, v, setOptions = {}) {\n if (v === undefined) {\n this.delete(k);\n return this;\n }\n const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;\n let { noUpdateTTL = this.noUpdateTTL } = setOptions;\n const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);\n // if the item doesn't fit, don't do anything\n // NB: maxEntrySize set to maxSize by default\n if (this.maxEntrySize && size > this.maxEntrySize) {\n if (status) {\n status.set = 'miss';\n status.maxEntrySizeExceeded = true;\n }\n // have to delete, in case something is there already.\n this.#delete(k, 'set');\n return this;\n }\n let index = this.#size === 0 ? undefined : this.#keyMap.get(k);\n if (index === undefined) {\n // addition\n index = (this.#size === 0\n ? this.#tail\n : this.#free.length !== 0\n ? this.#free.pop()\n : this.#size === this.#max\n ? this.#evict(false)\n : this.#size);\n this.#keyList[index] = k;\n this.#valList[index] = v;\n this.#keyMap.set(k, index);\n this.#next[this.#tail] = index;\n this.#prev[index] = this.#tail;\n this.#tail = index;\n this.#size++;\n this.#addItemSize(index, size, status);\n if (status)\n status.set = 'add';\n noUpdateTTL = false;\n }\n else {\n // update\n this.#moveToTail(index);\n const oldVal = this.#valList[index];\n if (v !== oldVal) {\n if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n oldVal.__abortController.abort(new Error('replaced'));\n const { __staleWhileFetching: s } = oldVal;\n if (s !== undefined && !noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(s, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([s, k, 'set']);\n }\n }\n }\n else if (!noDisposeOnSet) {\n if (this.#hasDispose) {\n this.#dispose?.(oldVal, k, 'set');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([oldVal, k, 'set']);\n }\n }\n this.#removeItemSize(index);\n this.#addItemSize(index, size, status);\n this.#valList[index] = v;\n if (status) {\n status.set = 'replace';\n const oldValue = oldVal && this.#isBackgroundFetch(oldVal)\n ? oldVal.__staleWhileFetching\n : oldVal;\n if (oldValue !== undefined)\n status.oldValue = oldValue;\n }\n }\n else if (status) {\n status.set = 'update';\n }\n }\n if (ttl !== 0 && !this.#ttls) {\n this.#initializeTTLTracking();\n }\n if (this.#ttls) {\n if (!noUpdateTTL) {\n this.#setItemTTL(index, ttl, start);\n }\n if (status)\n this.#statusTTL(status, index);\n }\n if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return this;\n }\n /**\n * Evict the least recently used item, returning its value or\n * `undefined` if cache is empty.\n */\n pop() {\n try {\n while (this.#size) {\n const val = this.#valList[this.#head];\n this.#evict(true);\n if (this.#isBackgroundFetch(val)) {\n if (val.__staleWhileFetching) {\n return val.__staleWhileFetching;\n }\n }\n else if (val !== undefined) {\n return val;\n }\n }\n }\n finally {\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n }\n #evict(free) {\n const head = this.#head;\n const k = this.#keyList[head];\n const v = this.#valList[head];\n if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('evicted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, 'evict');\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, 'evict']);\n }\n }\n this.#removeItemSize(head);\n // if we aren't about to use the index, then null these out\n if (free) {\n this.#keyList[head] = undefined;\n this.#valList[head] = undefined;\n this.#free.push(head);\n }\n if (this.#size === 1) {\n this.#head = this.#tail = 0;\n this.#free.length = 0;\n }\n else {\n this.#head = this.#next[head];\n }\n this.#keyMap.delete(k);\n this.#size--;\n return head;\n }\n /**\n * Check if a key is in the cache, without updating the recency of use.\n * Will return false if the item is stale, even though it is technically\n * in the cache.\n *\n * Check if a key is in the cache, without updating the recency of\n * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n * to `true` in either the options or the constructor.\n *\n * Will return `false` if the item is stale, even though it is technically in\n * the cache. The difference can be determined (if it matters) by using a\n * `status` argument, and inspecting the `has` field.\n *\n * Will not update item age unless\n * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n */\n has(k, hasOptions = {}) {\n const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v) &&\n v.__staleWhileFetching === undefined) {\n return false;\n }\n if (!this.#isStale(index)) {\n if (updateAgeOnHas) {\n this.#updateItemAge(index);\n }\n if (status) {\n status.has = 'hit';\n this.#statusTTL(status, index);\n }\n return true;\n }\n else if (status) {\n status.has = 'stale';\n this.#statusTTL(status, index);\n }\n }\n else if (status) {\n status.has = 'miss';\n }\n return false;\n }\n /**\n * Like {@link LRUCache#get} but doesn't update recency or delete stale\n * items.\n *\n * Returns `undefined` if the item is stale, unless\n * {@link LRUCache.OptionsBase.allowStale} is set.\n */\n peek(k, peekOptions = {}) {\n const { allowStale = this.allowStale } = peekOptions;\n const index = this.#keyMap.get(k);\n if (index === undefined ||\n (!allowStale && this.#isStale(index))) {\n return;\n }\n const v = this.#valList[index];\n // either stale and allowed, or forcing a refresh of non-stale value\n return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n }\n #backgroundFetch(k, index, options, context) {\n const v = index === undefined ? undefined : this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n return v;\n }\n const ac = new AC();\n const { signal } = options;\n // when/if our AC signals, then stop listening to theirs.\n signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n signal: ac.signal,\n });\n const fetchOpts = {\n signal: ac.signal,\n options,\n context,\n };\n const cb = (v, updateCache = false) => {\n const { aborted } = ac.signal;\n const ignoreAbort = options.ignoreFetchAbort && v !== undefined;\n if (options.status) {\n if (aborted && !updateCache) {\n options.status.fetchAborted = true;\n options.status.fetchError = ac.signal.reason;\n if (ignoreAbort)\n options.status.fetchAbortIgnored = true;\n }\n else {\n options.status.fetchResolved = true;\n }\n }\n if (aborted && !ignoreAbort && !updateCache) {\n return fetchFail(ac.signal.reason);\n }\n // either we didn't abort, and are still here, or we did, and ignored\n const bf = p;\n if (this.#valList[index] === p) {\n if (v === undefined) {\n if (bf.__staleWhileFetching) {\n this.#valList[index] = bf.__staleWhileFetching;\n }\n else {\n this.#delete(k, 'fetch');\n }\n }\n else {\n if (options.status)\n options.status.fetchUpdated = true;\n this.set(k, v, fetchOpts.options);\n }\n }\n return v;\n };\n const eb = (er) => {\n if (options.status) {\n options.status.fetchRejected = true;\n options.status.fetchError = er;\n }\n return fetchFail(er);\n };\n const fetchFail = (er) => {\n const { aborted } = ac.signal;\n const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;\n const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;\n const noDelete = allowStale || options.noDeleteOnFetchRejection;\n const bf = p;\n if (this.#valList[index] === p) {\n // if we allow stale on fetch rejections, then we need to ensure that\n // the stale value is not removed from the cache when the fetch fails.\n const del = !noDelete || bf.__staleWhileFetching === undefined;\n if (del) {\n this.#delete(k, 'fetch');\n }\n else if (!allowStaleAborted) {\n // still replace the *promise* with the stale value,\n // since we are done with the promise at this point.\n // leave it untouched if we're still waiting for an\n // aborted background fetch that hasn't yet returned.\n this.#valList[index] = bf.__staleWhileFetching;\n }\n }\n if (allowStale) {\n if (options.status && bf.__staleWhileFetching !== undefined) {\n options.status.returnedStale = true;\n }\n return bf.__staleWhileFetching;\n }\n else if (bf.__returned === bf) {\n throw er;\n }\n };\n const pcall = (res, rej) => {\n const fmp = this.#fetchMethod?.(k, v, fetchOpts);\n if (fmp && fmp instanceof Promise) {\n fmp.then(v => res(v === undefined ? undefined : v), rej);\n }\n // ignored, we go until we finish, regardless.\n // defer check until we are actually aborting,\n // so fetchMethod can override.\n ac.signal.addEventListener('abort', () => {\n if (!options.ignoreFetchAbort ||\n options.allowStaleOnFetchAbort) {\n res(undefined);\n // when it eventually resolves, update the cache.\n if (options.allowStaleOnFetchAbort) {\n res = v => cb(v, true);\n }\n }\n });\n };\n if (options.status)\n options.status.fetchDispatched = true;\n const p = new Promise(pcall).then(cb, eb);\n const bf = Object.assign(p, {\n __abortController: ac,\n __staleWhileFetching: v,\n __returned: undefined,\n });\n if (index === undefined) {\n // internal, don't expose status.\n this.set(k, bf, { ...fetchOpts.options, status: undefined });\n index = this.#keyMap.get(k);\n }\n else {\n this.#valList[index] = bf;\n }\n return bf;\n }\n #isBackgroundFetch(p) {\n if (!this.#hasFetchMethod)\n return false;\n const b = p;\n return (!!b &&\n b instanceof Promise &&\n b.hasOwnProperty('__staleWhileFetching') &&\n b.__abortController instanceof AC);\n }\n async fetch(k, fetchOptions = {}) {\n const { \n // get options\n allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, \n // set options\n ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, \n // fetch exclusive options\n noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;\n if (!this.#hasFetchMethod) {\n if (status)\n status.fetch = 'get';\n return this.get(k, {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n status,\n });\n }\n const options = {\n allowStale,\n updateAgeOnGet,\n noDeleteOnStaleGet,\n ttl,\n noDisposeOnSet,\n size,\n sizeCalculation,\n noUpdateTTL,\n noDeleteOnFetchRejection,\n allowStaleOnFetchRejection,\n allowStaleOnFetchAbort,\n ignoreFetchAbort,\n status,\n signal,\n };\n let index = this.#keyMap.get(k);\n if (index === undefined) {\n if (status)\n status.fetch = 'miss';\n const p = this.#backgroundFetch(k, index, options, context);\n return (p.__returned = p);\n }\n else {\n // in cache, maybe already fetching\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n const stale = allowStale && v.__staleWhileFetching !== undefined;\n if (status) {\n status.fetch = 'inflight';\n if (stale)\n status.returnedStale = true;\n }\n return stale ? v.__staleWhileFetching : (v.__returned = v);\n }\n // if we force a refresh, that means do NOT serve the cached value,\n // unless we are already in the process of refreshing the cache.\n const isStale = this.#isStale(index);\n if (!forceRefresh && !isStale) {\n if (status)\n status.fetch = 'hit';\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n if (status)\n this.#statusTTL(status, index);\n return v;\n }\n // ok, it is stale or a forced refresh, and not already fetching.\n // refresh the cache.\n const p = this.#backgroundFetch(k, index, options, context);\n const hasStale = p.__staleWhileFetching !== undefined;\n const staleVal = hasStale && allowStale;\n if (status) {\n status.fetch = isStale ? 'stale' : 'refresh';\n if (staleVal && isStale)\n status.returnedStale = true;\n }\n return staleVal ? p.__staleWhileFetching : (p.__returned = p);\n }\n }\n async forceFetch(k, fetchOptions = {}) {\n const v = await this.fetch(k, fetchOptions);\n if (v === undefined)\n throw new Error('fetch() returned undefined');\n return v;\n }\n memo(k, memoOptions = {}) {\n const memoMethod = this.#memoMethod;\n if (!memoMethod) {\n throw new Error('no memoMethod provided to constructor');\n }\n const { context, forceRefresh, ...options } = memoOptions;\n const v = this.get(k, options);\n if (!forceRefresh && v !== undefined)\n return v;\n const vv = memoMethod(k, v, {\n options,\n context,\n });\n this.set(k, vv, options);\n return vv;\n }\n /**\n * Return a value from the cache. Will update the recency of the cache\n * entry found.\n *\n * If the key is not found, get() will return `undefined`.\n */\n get(k, getOptions = {}) {\n const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n const value = this.#valList[index];\n const fetching = this.#isBackgroundFetch(value);\n if (status)\n this.#statusTTL(status, index);\n if (this.#isStale(index)) {\n if (status)\n status.get = 'stale';\n // delete only if not an in-flight background fetch\n if (!fetching) {\n if (!noDeleteOnStaleGet) {\n this.#delete(k, 'expire');\n }\n if (status && allowStale)\n status.returnedStale = true;\n return allowStale ? value : undefined;\n }\n else {\n if (status &&\n allowStale &&\n value.__staleWhileFetching !== undefined) {\n status.returnedStale = true;\n }\n return allowStale ? value.__staleWhileFetching : undefined;\n }\n }\n else {\n if (status)\n status.get = 'hit';\n // if we're currently fetching it, we don't actually have it yet\n // it's not stale, which means this isn't a staleWhileRefetching.\n // If it's not stale, and fetching, AND has a __staleWhileFetching\n // value, then that means the user fetched with {forceRefresh:true},\n // so it's safe to return that value.\n if (fetching) {\n return value.__staleWhileFetching;\n }\n this.#moveToTail(index);\n if (updateAgeOnGet) {\n this.#updateItemAge(index);\n }\n return value;\n }\n }\n else if (status) {\n status.get = 'miss';\n }\n }\n #connect(p, n) {\n this.#prev[n] = p;\n this.#next[p] = n;\n }\n #moveToTail(index) {\n // if tail already, nothing to do\n // if head, move head to next[index]\n // else\n // move next[prev[index]] to next[index] (head has no prev)\n // move prev[next[index]] to prev[index]\n // prev[index] = tail\n // next[tail] = index\n // tail = index\n if (index !== this.#tail) {\n if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n this.#connect(this.#prev[index], this.#next[index]);\n }\n this.#connect(this.#tail, index);\n this.#tail = index;\n }\n }\n /**\n * Deletes a key out of the cache.\n *\n * Returns true if the key was deleted, false otherwise.\n */\n delete(k) {\n return this.#delete(k, 'delete');\n }\n #delete(k, reason) {\n let deleted = false;\n if (this.#size !== 0) {\n const index = this.#keyMap.get(k);\n if (index !== undefined) {\n deleted = true;\n if (this.#size === 1) {\n this.#clear(reason);\n }\n else {\n this.#removeItemSize(index);\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else if (this.#hasDispose || this.#hasDisposeAfter) {\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n this.#keyMap.delete(k);\n this.#keyList[index] = undefined;\n this.#valList[index] = undefined;\n if (index === this.#tail) {\n this.#tail = this.#prev[index];\n }\n else if (index === this.#head) {\n this.#head = this.#next[index];\n }\n else {\n const pi = this.#prev[index];\n this.#next[pi] = this.#next[index];\n const ni = this.#next[index];\n this.#prev[ni] = this.#prev[index];\n }\n this.#size--;\n this.#free.push(index);\n }\n }\n }\n if (this.#hasDisposeAfter && this.#disposed?.length) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n return deleted;\n }\n /**\n * Clear the cache entirely, throwing away all values.\n */\n clear() {\n return this.#clear('delete');\n }\n #clear(reason) {\n for (const index of this.#rindexes({ allowStale: true })) {\n const v = this.#valList[index];\n if (this.#isBackgroundFetch(v)) {\n v.__abortController.abort(new Error('deleted'));\n }\n else {\n const k = this.#keyList[index];\n if (this.#hasDispose) {\n this.#dispose?.(v, k, reason);\n }\n if (this.#hasDisposeAfter) {\n this.#disposed?.push([v, k, reason]);\n }\n }\n }\n this.#keyMap.clear();\n this.#valList.fill(undefined);\n this.#keyList.fill(undefined);\n if (this.#ttls && this.#starts) {\n this.#ttls.fill(0);\n this.#starts.fill(0);\n }\n if (this.#sizes) {\n this.#sizes.fill(0);\n }\n this.#head = 0;\n this.#tail = 0;\n this.#free.length = 0;\n this.#calculatedSize = 0;\n this.#size = 0;\n if (this.#hasDisposeAfter && this.#disposed) {\n const dt = this.#disposed;\n let task;\n while ((task = dt?.shift())) {\n this.#disposeAfter?.(...task);\n }\n }\n }\n}\n//# sourceMappingURL=index.js.map","/**\n * common\n */\n\n/* numeric constants */\nconst TYPE_FROM = 8;\nconst TYPE_TO = -1;\n\n/**\n * get type\n * @param o - object to check\n * @returns type of object\n */\nexport const getType = (o: unknown): string =>\n Object.prototype.toString.call(o).slice(TYPE_FROM, TYPE_TO);\n\n/**\n * is string\n * @param o - object to check\n * @returns result\n */\nexport const isString = (o: unknown): o is string =>\n typeof o === 'string' || o instanceof String;\n\n/**\n * is string or number\n * @param o - object to check\n * @returns result\n */\nexport const isStringOrNumber = (o: unknown): boolean =>\n isString(o) || typeof o === 'number';\n","/**\n * constant\n */\n\n/* values and units */\nconst _DIGIT = '(?:0|[1-9]\\\\d*)';\nconst _COMPARE = 'clamp|max|min';\nconst _EXPO = 'exp|hypot|log|pow|sqrt';\nconst _SIGN = 'abs|sign';\nconst _STEP = 'mod|rem|round';\nconst _TRIG = 'a?(?:cos|sin|tan)|atan2';\nconst _MATH = `${_COMPARE}|${_EXPO}|${_SIGN}|${_STEP}|${_TRIG}`;\nconst _CALC = `calc|${_MATH}`;\nconst _VAR = `var|${_CALC}`;\nexport const ANGLE = 'deg|g?rad|turn';\nexport const LENGTH =\n '[cm]m|[dls]?v(?:[bhiw]|max|min)|in|p[ctx]|q|r?(?:[cl]h|cap|e[mx]|ic)';\nexport const NUM = `[+-]?(?:${_DIGIT}(?:\\\\.\\\\d*)?|\\\\.\\\\d+)(?:e-?${_DIGIT})?`;\nexport const NUM_POSITIVE = `\\\\+?(?:${_DIGIT}(?:\\\\.\\\\d*)?|\\\\.\\\\d+)(?:e-?${_DIGIT})?`;\nexport const NONE = 'none';\nexport const PCT = `${NUM}%`;\nexport const SYN_FN_CALC = `^(?:${_CALC})\\\\(|(?<=[*\\\\/\\\\s\\\\(])(?:${_CALC})\\\\(`;\nexport const SYN_FN_MATH_START = `^(?:${_MATH})\\\\($`;\nexport const SYN_FN_VAR = '^var\\\\(|(?<=[*\\\\/\\\\s\\\\(])var\\\\(';\nexport const SYN_FN_VAR_START = `^(?:${_VAR})\\\\(`;\n\n/* colors */\nconst _ALPHA = `(?:\\\\s*\\\\/\\\\s*(?:${NUM}|${PCT}|${NONE}))?`;\nconst _ALPHA_LV3 = `(?:\\\\s*,\\\\s*(?:${NUM}|${PCT}))?`;\nconst _COLOR_FUNC = '(?:ok)?l(?:ab|ch)|color|hsla?|hwb|rgba?';\nconst _COLOR_KEY = '[a-z]+|#[\\\\da-f]{3}|#[\\\\da-f]{4}|#[\\\\da-f]{6}|#[\\\\da-f]{8}';\nconst _CS_HUE = '(?:ok)?lch|hsl|hwb';\nconst _CS_HUE_ARC = '(?:de|in)creasing|longer|shorter';\nconst _NUM_ANGLE = `${NUM}(?:${ANGLE})?`;\nconst _NUM_ANGLE_NONE = `(?:${NUM}(?:${ANGLE})?|${NONE})`;\nconst _NUM_PCT_NONE = `(?:${NUM}|${PCT}|${NONE})`;\nexport const CS_HUE = `(?:${_CS_HUE})(?:\\\\s(?:${_CS_HUE_ARC})\\\\shue)?`;\nexport const CS_HUE_CAPT = `(${_CS_HUE})(?:\\\\s(${_CS_HUE_ARC})\\\\shue)?`;\nexport const CS_LAB = '(?:ok)?lab';\nexport const CS_LCH = '(?:ok)?lch';\nexport const CS_SRGB = 'srgb(?:-linear)?';\nexport const CS_RGB = `(?:a98|prophoto)-rgb|display-p3|rec2020|${CS_SRGB}`;\nexport const CS_XYZ = 'xyz(?:-d(?:50|65))?';\nexport const CS_RECT = `${CS_LAB}|${CS_RGB}|${CS_XYZ}`;\nexport const CS_MIX = `${CS_HUE}|${CS_RECT}`;\nexport const FN_COLOR = 'color(';\nexport const FN_MIX = 'color-mix(';\nexport const FN_REL = `(?:${_COLOR_FUNC})\\\\(\\\\s*from\\\\s+`;\nexport const FN_REL_CAPT = `(${_COLOR_FUNC})\\\\(\\\\s*from\\\\s+`;\nexport const FN_VAR = 'var(';\nexport const SYN_FN_COLOR = `(?:${CS_RGB}|${CS_XYZ})(?:\\\\s+${_NUM_PCT_NONE}){3}${_ALPHA}`;\nexport const SYN_FN_REL = `^${FN_REL}|(?<=[\\\\s])${FN_REL}`;\nexport const SYN_HSL = `${_NUM_ANGLE_NONE}(?:\\\\s+${_NUM_PCT_NONE}){2}${_ALPHA}`;\nexport const SYN_HSL_LV3 = `${_NUM_ANGLE}(?:\\\\s*,\\\\s*${PCT}){2}${_ALPHA_LV3}`;\nexport const SYN_LCH = `(?:${_NUM_PCT_NONE}\\\\s+){2}${_NUM_ANGLE_NONE}${_ALPHA}`;\nexport const SYN_MOD = `${_NUM_PCT_NONE}(?:\\\\s+${_NUM_PCT_NONE}){2}${_ALPHA}`;\nexport const SYN_RGB_LV3 = `(?:${NUM}(?:\\\\s*,\\\\s*${NUM}){2}|${PCT}(?:\\\\s*,\\\\s*${PCT}){2})${_ALPHA_LV3}`;\nexport const SYN_COLOR_TYPE = `${_COLOR_KEY}|hsla?\\\\(\\\\s*${SYN_HSL_LV3}\\\\s*\\\\)|rgba?\\\\(\\\\s*${SYN_RGB_LV3}\\\\s*\\\\)|(?:hsla?|hwb)\\\\(\\\\s*${SYN_HSL}\\\\s*\\\\)|(?:(?:ok)?lab|rgba?)\\\\(\\\\s*${SYN_MOD}\\\\s*\\\\)|(?:ok)?lch\\\\(\\\\s*${SYN_LCH}\\\\s*\\\\)|color\\\\(\\\\s*${SYN_FN_COLOR}\\\\s*\\\\)`;\nexport const SYN_MIX_PART = `(?:${SYN_COLOR_TYPE})(?:\\\\s+${PCT})?`;\nexport const SYN_MIX = `color-mix\\\\(\\\\s*in\\\\s+(?:${CS_MIX})\\\\s*,\\\\s*${SYN_MIX_PART}\\\\s*,\\\\s*${SYN_MIX_PART}\\\\s*\\\\)`;\nexport const SYN_MIX_CAPT = `color-mix\\\\(\\\\s*in\\\\s+(${CS_MIX})\\\\s*,\\\\s*(${SYN_MIX_PART})\\\\s*,\\\\s*(${SYN_MIX_PART})\\\\s*\\\\)`;\n\n/* formats */\nexport const VAL_COMP = 'computedValue';\nexport const VAL_MIX = 'mixValue';\nexport const VAL_SPEC = 'specifiedValue';\n","/**\n * color\n *\n * Ref: CSS Color Module Level 4\n * Sample code for Color Conversions\n * https://w3c.github.io/csswg-drafts/css-color-4/#color-conversion-code\n */\n\nimport {\n CacheItem,\n NullObject,\n createCacheKey,\n getCache,\n setCache\n} from './cache';\nimport { isString } from './common';\nimport { interpolateHue, roundToPrecision } from './util';\nimport {\n ColorChannels,\n ComputedColorChannels,\n Options,\n MatchedRegExp,\n SpecifiedColorChannels,\n StringColorChannels,\n StringColorSpacedChannels\n} from './typedef';\n\n/* constants */\nimport {\n ANGLE,\n CS_HUE_CAPT,\n CS_MIX,\n CS_RGB,\n CS_XYZ,\n FN_COLOR,\n FN_MIX,\n NONE,\n NUM,\n PCT,\n SYN_COLOR_TYPE,\n SYN_FN_COLOR,\n SYN_HSL,\n SYN_HSL_LV3,\n SYN_LCH,\n SYN_MIX,\n SYN_MIX_CAPT,\n SYN_MIX_PART,\n SYN_MOD,\n SYN_RGB_LV3,\n VAL_COMP,\n VAL_MIX,\n VAL_SPEC\n} from './constant';\nconst NAMESPACE = 'color';\n\n/* numeric constants */\nconst PPTH = 0.001;\nconst HALF = 0.5;\nconst DUO = 2;\nconst TRIA = 3;\nconst QUAD = 4;\nconst OCT = 8;\nconst DEC = 10;\nconst DOZ = 12;\nconst HEX = 16;\nconst SEXA = 60;\nconst DEG_HALF = 180;\nconst DEG = 360;\nconst MAX_PCT = 100;\nconst MAX_RGB = 255;\nconst POW_SQR = 2;\nconst POW_CUBE = 3;\nconst POW_LINEAR = 2.4;\nconst LINEAR_COEF = 12.92;\nconst LINEAR_OFFSET = 0.055;\nconst LAB_L = 116;\nconst LAB_A = 500;\nconst LAB_B = 200;\nconst LAB_EPSILON = 216 / 24389;\nconst LAB_KAPPA = 24389 / 27;\n\n/* type definitions */\n/**\n * @type NumStrColorChannels - string or numeric color channels\n */\ntype NumStrColorChannels = [\n x: number | string,\n y: number | string,\n z: number | string,\n alpha: number | string\n];\n\n/**\n * @type TriColorChannels - color channels without alpha\n */\ntype TriColorChannels = [x: number, y: number, z: number];\n\n/**\n * @type ColorMatrix - color matrix\n */\ntype ColorMatrix = [\n r1: TriColorChannels,\n r2: TriColorChannels,\n r3: TriColorChannels\n];\n\n/* white point */\nconst D50: TriColorChannels = [\n 0.3457 / 0.3585,\n 1.0,\n (1.0 - 0.3457 - 0.3585) / 0.3585\n];\nconst MATRIX_D50_TO_D65: ColorMatrix = [\n [0.955473421488075, -0.02309845494876471, 0.06325924320057072],\n [-0.0283697093338637, 1.0099953980813041, 0.021041441191917323],\n [0.012314014864481998, -0.020507649298898964, 1.330365926242124]\n];\nconst MATRIX_D65_TO_D50: ColorMatrix = [\n [1.0479297925449969, 0.022946870601609652, -0.05019226628920524],\n [0.02962780877005599, 0.9904344267538799, -0.017073799063418826],\n [-0.009243040646204504, 0.015055191490298152, 0.7518742814281371]\n];\n\n/* color space */\nconst MATRIX_L_RGB_TO_XYZ: ColorMatrix = [\n [506752 / 1228815, 87881 / 245763, 12673 / 70218],\n [87098 / 409605, 175762 / 245763, 12673 / 175545],\n [7918 / 409605, 87881 / 737289, 1001167 / 1053270]\n];\nconst MATRIX_XYZ_TO_L_RGB: ColorMatrix = [\n [12831 / 3959, -329 / 214, -1974 / 3959],\n [-851781 / 878810, 1648619 / 878810, 36519 / 878810],\n [705 / 12673, -2585 / 12673, 705 / 667]\n];\nconst MATRIX_XYZ_TO_LMS: ColorMatrix = [\n [0.819022437996703, 0.3619062600528904, -0.1288737815209879],\n [0.0329836539323885, 0.9292868615863434, 0.0361446663506424],\n [0.0481771893596242, 0.2642395317527308, 0.6335478284694309]\n];\nconst MATRIX_LMS_TO_XYZ: ColorMatrix = [\n [1.2268798758459243, -0.5578149944602171, 0.2813910456659647],\n [-0.0405757452148008, 1.112286803280317, -0.0717110580655164],\n [-0.0763729366746601, -0.4214933324022432, 1.5869240198367816]\n];\nconst MATRIX_OKLAB_TO_LMS: ColorMatrix = [\n [1.0, 0.3963377773761749, 0.2158037573099136],\n [1.0, -0.1055613458156586, -0.0638541728258133],\n [1.0, -0.0894841775298119, -1.2914855480194092]\n];\nconst MATRIX_LMS_TO_OKLAB: ColorMatrix = [\n [0.210454268309314, 0.7936177747023054, -0.0040720430116193],\n [1.9779985324311684, -2.4285922420485799, 0.450593709617411],\n [0.0259040424655478, 0.7827717124575296, -0.8086757549230774]\n];\nconst MATRIX_P3_TO_XYZ: ColorMatrix = [\n [608311 / 1250200, 189793 / 714400, 198249 / 1000160],\n [35783 / 156275, 247089 / 357200, 198249 / 2500400],\n [0 / 1, 32229 / 714400, 5220557 / 5000800]\n];\nconst MATRIX_REC2020_TO_XYZ: ColorMatrix = [\n [63426534 / 99577255, 20160776 / 139408157, 47086771 / 278816314],\n [26158966 / 99577255, 472592308 / 697040785, 8267143 / 139408157],\n [0 / 1, 19567812 / 697040785, 295819943 / 278816314]\n];\nconst MATRIX_A98_TO_XYZ: ColorMatrix = [\n [573536 / 994567, 263643 / 1420810, 187206 / 994567],\n [591459 / 1989134, 6239551 / 9945670, 374412 / 4972835],\n [53769 / 1989134, 351524 / 4972835, 4929758 / 4972835]\n];\nconst MATRIX_PROPHOTO_TO_XYZ_D50: ColorMatrix = [\n [0.7977666449006423, 0.13518129740053308, 0.0313477341283922],\n [0.2880748288194013, 0.711835234241873, 0.00008993693872564],\n [0.0, 0.0, 0.8251046025104602]\n];\n\n/* regexp */\nconst REG_COLOR = new RegExp(`^(?:${SYN_COLOR_TYPE})$`);\nconst REG_CS_HUE = new RegExp(`^${CS_HUE_CAPT}$`);\nconst REG_CS_XYZ = /^xyz(?:-d(?:50|65))?$/;\nconst REG_CURRENT = /^currentColor$/i;\nconst REG_FN_COLOR = new RegExp(`^color\\\\(\\\\s*(${SYN_FN_COLOR})\\\\s*\\\\)$`);\nconst REG_HSL = new RegExp(`^hsla?\\\\(\\\\s*(${SYN_HSL}|${SYN_HSL_LV3})\\\\s*\\\\)$`);\nconst REG_HWB = new RegExp(`^hwb\\\\(\\\\s*(${SYN_HSL})\\\\s*\\\\)$`);\nconst REG_LAB = new RegExp(`^lab\\\\(\\\\s*(${SYN_MOD})\\\\s*\\\\)$`);\nconst REG_LCH = new RegExp(`^lch\\\\(\\\\s*(${SYN_LCH})\\\\s*\\\\)$`);\nconst REG_MIX = new RegExp(`^${SYN_MIX}$`);\nconst REG_MIX_CAPT = new RegExp(`^${SYN_MIX_CAPT}$`);\nconst REG_MIX_NEST = new RegExp(`${SYN_MIX}`, 'g');\nconst REG_OKLAB = new RegExp(`^oklab\\\\(\\\\s*(${SYN_MOD})\\\\s*\\\\)$`);\nconst REG_OKLCH = new RegExp(`^oklch\\\\(\\\\s*(${SYN_LCH})\\\\s*\\\\)$`);\nconst REG_SPEC = /^(?:specifi|comput)edValue$/;\n\n/**\n * named colors\n */\nexport const NAMED_COLORS = {\n aliceblue: [0xf0, 0xf8, 0xff],\n antiquewhite: [0xfa, 0xeb, 0xd7],\n aqua: [0x00, 0xff, 0xff],\n aquamarine: [0x7f, 0xff, 0xd4],\n azure: [0xf0, 0xff, 0xff],\n beige: [0xf5, 0xf5, 0xdc],\n bisque: [0xff, 0xe4, 0xc4],\n black: [0x00, 0x00, 0x00],\n blanchedalmond: [0xff, 0xeb, 0xcd],\n blue: [0x00, 0x00, 0xff],\n blueviolet: [0x8a, 0x2b, 0xe2],\n brown: [0xa5, 0x2a, 0x2a],\n burlywood: [0xde, 0xb8, 0x87],\n cadetblue: [0x5f, 0x9e, 0xa0],\n chartreuse: [0x7f, 0xff, 0x00],\n chocolate: [0xd2, 0x69, 0x1e],\n coral: [0xff, 0x7f, 0x50],\n cornflowerblue: [0x64, 0x95, 0xed],\n cornsilk: [0xff, 0xf8, 0xdc],\n crimson: [0xdc, 0x14, 0x3c],\n cyan: [0x00, 0xff, 0xff],\n darkblue: [0x00, 0x00, 0x8b],\n darkcyan: [0x00, 0x8b, 0x8b],\n darkgoldenrod: [0xb8, 0x86, 0x0b],\n darkgray: [0xa9, 0xa9, 0xa9],\n darkgreen: [0x00, 0x64, 0x00],\n darkgrey: [0xa9, 0xa9, 0xa9],\n darkkhaki: [0xbd, 0xb7, 0x6b],\n darkmagenta: [0x8b, 0x00, 0x8b],\n darkolivegreen: [0x55, 0x6b, 0x2f],\n darkorange: [0xff, 0x8c, 0x00],\n darkorchid: [0x99, 0x32, 0xcc],\n darkred: [0x8b, 0x00, 0x00],\n darksalmon: [0xe9, 0x96, 0x7a],\n darkseagreen: [0x8f, 0xbc, 0x8f],\n darkslateblue: [0x48, 0x3d, 0x8b],\n darkslategray: [0x2f, 0x4f, 0x4f],\n darkslategrey: [0x2f, 0x4f, 0x4f],\n darkturquoise: [0x00, 0xce, 0xd1],\n darkviolet: [0x94, 0x00, 0xd3],\n deeppink: [0xff, 0x14, 0x93],\n deepskyblue: [0x00, 0xbf, 0xff],\n dimgray: [0x69, 0x69, 0x69],\n dimgrey: [0x69, 0x69, 0x69],\n dodgerblue: [0x1e, 0x90, 0xff],\n firebrick: [0xb2, 0x22, 0x22],\n floralwhite: [0xff, 0xfa, 0xf0],\n forestgreen: [0x22, 0x8b, 0x22],\n fuchsia: [0xff, 0x00, 0xff],\n gainsboro: [0xdc, 0xdc, 0xdc],\n ghostwhite: [0xf8, 0xf8, 0xff],\n gold: [0xff, 0xd7, 0x00],\n goldenrod: [0xda, 0xa5, 0x20],\n gray: [0x80, 0x80, 0x80],\n green: [0x00, 0x80, 0x00],\n greenyellow: [0xad, 0xff, 0x2f],\n grey: [0x80, 0x80, 0x80],\n honeydew: [0xf0, 0xff, 0xf0],\n hotpink: [0xff, 0x69, 0xb4],\n indianred: [0xcd, 0x5c, 0x5c],\n indigo: [0x4b, 0x00, 0x82],\n ivory: [0xff, 0xff, 0xf0],\n khaki: [0xf0, 0xe6, 0x8c],\n lavender: [0xe6, 0xe6, 0xfa],\n lavenderblush: [0xff, 0xf0, 0xf5],\n lawngreen: [0x7c, 0xfc, 0x00],\n lemonchiffon: [0xff, 0xfa, 0xcd],\n lightblue: [0xad, 0xd8, 0xe6],\n lightcoral: [0xf0, 0x80, 0x80],\n lightcyan: [0xe0, 0xff, 0xff],\n lightgoldenrodyellow: [0xfa, 0xfa, 0xd2],\n lightgray: [0xd3, 0xd3, 0xd3],\n lightgreen: [0x90, 0xee, 0x90],\n lightgrey: [0xd3, 0xd3, 0xd3],\n lightpink: [0xff, 0xb6, 0xc1],\n lightsalmon: [0xff, 0xa0, 0x7a],\n lightseagreen: [0x20, 0xb2, 0xaa],\n lightskyblue: [0x87, 0xce, 0xfa],\n lightslategray: [0x77, 0x88, 0x99],\n lightslategrey: [0x77, 0x88, 0x99],\n lightsteelblue: [0xb0, 0xc4, 0xde],\n lightyellow: [0xff, 0xff, 0xe0],\n lime: [0x00, 0xff, 0x00],\n limegreen: [0x32, 0xcd, 0x32],\n linen: [0xfa, 0xf0, 0xe6],\n magenta: [0xff, 0x00, 0xff],\n maroon: [0x80, 0x00, 0x00],\n mediumaquamarine: [0x66, 0xcd, 0xaa],\n mediumblue: [0x00, 0x00, 0xcd],\n mediumorchid: [0xba, 0x55, 0xd3],\n mediumpurple: [0x93, 0x70, 0xdb],\n mediumseagreen: [0x3c, 0xb3, 0x71],\n mediumslateblue: [0x7b, 0x68, 0xee],\n mediumspringgreen: [0x00, 0xfa, 0x9a],\n mediumturquoise: [0x48, 0xd1, 0xcc],\n mediumvioletred: [0xc7, 0x15, 0x85],\n midnightblue: [0x19, 0x19, 0x70],\n mintcream: [0xf5, 0xff, 0xfa],\n mistyrose: [0xff, 0xe4, 0xe1],\n moccasin: [0xff, 0xe4, 0xb5],\n navajowhite: [0xff, 0xde, 0xad],\n navy: [0x00, 0x00, 0x80],\n oldlace: [0xfd, 0xf5, 0xe6],\n olive: [0x80, 0x80, 0x00],\n olivedrab: [0x6b, 0x8e, 0x23],\n orange: [0xff, 0xa5, 0x00],\n orangered: [0xff, 0x45, 0x00],\n orchid: [0xda, 0x70, 0xd6],\n palegoldenrod: [0xee, 0xe8, 0xaa],\n palegreen: [0x98, 0xfb, 0x98],\n paleturquoise: [0xaf, 0xee, 0xee],\n palevioletred: [0xdb, 0x70, 0x93],\n papayawhip: [0xff, 0xef, 0xd5],\n peachpuff: [0xff, 0xda, 0xb9],\n peru: [0xcd, 0x85, 0x3f],\n pink: [0xff, 0xc0, 0xcb],\n plum: [0xdd, 0xa0, 0xdd],\n powderblue: [0xb0, 0xe0, 0xe6],\n purple: [0x80, 0x00, 0x80],\n rebeccapurple: [0x66, 0x33, 0x99],\n red: [0xff, 0x00, 0x00],\n rosybrown: [0xbc, 0x8f, 0x8f],\n royalblue: [0x41, 0x69, 0xe1],\n saddlebrown: [0x8b, 0x45, 0x13],\n salmon: [0xfa, 0x80, 0x72],\n sandybrown: [0xf4, 0xa4, 0x60],\n seagreen: [0x2e, 0x8b, 0x57],\n seashell: [0xff, 0xf5, 0xee],\n sienna: [0xa0, 0x52, 0x2d],\n silver: [0xc0, 0xc0, 0xc0],\n skyblue: [0x87, 0xce, 0xeb],\n slateblue: [0x6a, 0x5a, 0xcd],\n slategray: [0x70, 0x80, 0x90],\n slategrey: [0x70, 0x80, 0x90],\n snow: [0xff, 0xfa, 0xfa],\n springgreen: [0x00, 0xff, 0x7f],\n steelblue: [0x46, 0x82, 0xb4],\n tan: [0xd2, 0xb4, 0x8c],\n teal: [0x00, 0x80, 0x80],\n thistle: [0xd8, 0xbf, 0xd8],\n tomato: [0xff, 0x63, 0x47],\n turquoise: [0x40, 0xe0, 0xd0],\n violet: [0xee, 0x82, 0xee],\n wheat: [0xf5, 0xde, 0xb3],\n white: [0xff, 0xff, 0xff],\n whitesmoke: [0xf5, 0xf5, 0xf5],\n yellow: [0xff, 0xff, 0x00],\n yellowgreen: [0x9a, 0xcd, 0x32]\n} as const satisfies {\n [key: string]: TriColorChannels;\n};\n\n/**\n * cache invalid color value\n * @param key - cache key\n * @param nullable - is nullable\n * @returns cached value\n */\nexport const cacheInvalidColorValue = (\n cacheKey: string,\n format: string,\n nullable: boolean = false\n): SpecifiedColorChannels | string | NullObject => {\n if (format === VAL_SPEC) {\n const res = '';\n setCache(cacheKey, res);\n return res;\n }\n if (nullable) {\n setCache(cacheKey, null);\n return new NullObject();\n }\n const res: SpecifiedColorChannels = ['rgb', 0, 0, 0, 0];\n setCache(cacheKey, res);\n return res;\n};\n\n/**\n * resolve invalid color value\n * @param format - output format\n * @param nullable - is nullable\n * @returns resolved value\n */\nexport const resolveInvalidColorValue = (\n format: string,\n nullable: boolean = false\n): SpecifiedColorChannels | string | NullObject => {\n switch (format) {\n case 'hsl':\n case 'hwb':\n case VAL_MIX: {\n return new NullObject();\n }\n case VAL_SPEC: {\n return '';\n }\n default: {\n if (nullable) {\n return new NullObject();\n }\n return ['rgb', 0, 0, 0, 0] as SpecifiedColorChannels;\n }\n }\n};\n\n/**\n * validate color components\n * @param arr - color components\n * @param [opt] - options\n * @param [opt.alpha] - alpha channel\n * @param [opt.minLength] - min length\n * @param [opt.maxLength] - max length\n * @param [opt.minRange] - min range\n * @param [opt.maxRange] - max range\n * @param [opt.validateRange] - validate range\n * @returns result - validated color components\n */\nexport const validateColorComponents = (\n arr: ColorChannels | TriColorChannels,\n opt: {\n alpha?: boolean;\n minLength?: number;\n maxLength?: number;\n minRange?: number;\n maxRange?: number;\n validateRange?: boolean;\n } = {}\n): ColorChannels | TriColorChannels => {\n if (!Array.isArray(arr)) {\n throw new TypeError(`${arr} is not an array.`);\n }\n const {\n alpha = false,\n minLength = TRIA,\n maxLength = QUAD,\n minRange = 0,\n maxRange = 1,\n validateRange = true\n } = opt;\n if (!Number.isFinite(minLength)) {\n throw new TypeError(`${minLength} is not a number.`);\n }\n if (!Number.isFinite(maxLength)) {\n throw new TypeError(`${maxLength} is not a number.`);\n }\n if (!Number.isFinite(minRange)) {\n throw new TypeError(`${minRange} is not a number.`);\n }\n if (!Number.isFinite(maxRange)) {\n throw new TypeError(`${maxRange} is not a number.`);\n }\n const l = arr.length;\n if (l < minLength || l > maxLength) {\n throw new Error(`Unexpected array length ${l}.`);\n }\n let i = 0;\n while (i < l) {\n const v = arr[i] as number;\n if (!Number.isFinite(v)) {\n throw new TypeError(`${v} is not a number.`);\n } else if (i < TRIA && validateRange && (v < minRange || v > maxRange)) {\n throw new RangeError(`${v} is not between ${minRange} and ${maxRange}.`);\n } else if (i === TRIA && (v < 0 || v > 1)) {\n throw new RangeError(`${v} is not between 0 and 1.`);\n }\n i++;\n }\n if (alpha && l === TRIA) {\n arr.push(1);\n }\n return arr;\n};\n\n/**\n * transform matrix\n * @param mtx - 3 * 3 matrix\n * @param vct - vector\n * @param [skip] - skip validate\n * @returns TriColorChannels - [p1, p2, p3]\n */\nexport const transformMatrix = (\n mtx: ColorMatrix,\n vct: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!Array.isArray(mtx)) {\n throw new TypeError(`${mtx} is not an array.`);\n } else if (mtx.length !== TRIA) {\n throw new Error(`Unexpected array length ${mtx.length}.`);\n } else if (!skip) {\n for (let i of mtx) {\n i = validateColorComponents(i as TriColorChannels, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n }\n const [[r1c1, r1c2, r1c3], [r2c1, r2c2, r2c3], [r3c1, r3c2, r3c3]] = mtx;\n let v1, v2, v3;\n if (skip) {\n [v1, v2, v3] = vct;\n } else {\n [v1, v2, v3] = validateColorComponents(vct, {\n maxLength: TRIA,\n validateRange: false\n });\n }\n const p1 = r1c1 * v1 + r1c2 * v2 + r1c3 * v3;\n const p2 = r2c1 * v1 + r2c2 * v2 + r2c3 * v3;\n const p3 = r3c1 * v1 + r3c2 * v2 + r3c3 * v3;\n return [p1, p2, p3];\n};\n\n/**\n * normalize color components\n * @param colorA - color components [v1, v2, v3, v4]\n * @param colorB - color components [v1, v2, v3, v4]\n * @param [skip] - skip validate\n * @returns result - [colorA, colorB]\n */\nexport const normalizeColorComponents = (\n colorA: [number | string, number | string, number | string, number | string],\n colorB: [number | string, number | string, number | string, number | string],\n skip: boolean = false\n): [ColorChannels, ColorChannels] => {\n if (!Array.isArray(colorA)) {\n throw new TypeError(`${colorA} is not an array.`);\n } else if (colorA.length !== QUAD) {\n throw new Error(`Unexpected array length ${colorA.length}.`);\n }\n if (!Array.isArray(colorB)) {\n throw new TypeError(`${colorB} is not an array.`);\n } else if (colorB.length !== QUAD) {\n throw new Error(`Unexpected array length ${colorB.length}.`);\n }\n let i = 0;\n while (i < QUAD) {\n if (colorA[i] === NONE && colorB[i] === NONE) {\n colorA[i] = 0;\n colorB[i] = 0;\n } else if (colorA[i] === NONE) {\n colorA[i] = colorB[i] as number;\n } else if (colorB[i] === NONE) {\n colorB[i] = colorA[i] as number;\n }\n i++;\n }\n if (skip) {\n return [colorA as ColorChannels, colorB as ColorChannels];\n }\n const validatedColorA = validateColorComponents(colorA as ColorChannels, {\n minLength: QUAD,\n validateRange: false\n });\n const validatedColorB = validateColorComponents(colorB as ColorChannels, {\n minLength: QUAD,\n validateRange: false\n });\n return [validatedColorA as ColorChannels, validatedColorB as ColorChannels];\n};\n\n/**\n * number to hex string\n * @param value - numeric value\n * @returns hex string\n */\nexport const numberToHexString = (value: number): string => {\n if (!Number.isFinite(value)) {\n throw new TypeError(`${value} is not a number.`);\n } else {\n value = Math.round(value);\n if (value < 0 || value > MAX_RGB) {\n throw new RangeError(`${value} is not between 0 and ${MAX_RGB}.`);\n }\n }\n let hex = value.toString(HEX);\n if (hex.length === 1) {\n hex = `0${hex}`;\n }\n return hex;\n};\n\n/**\n * angle to deg\n * @param angle\n * @returns deg: 0..360\n */\nexport const angleToDeg = (angle: string): number => {\n if (isString(angle)) {\n angle = angle.trim();\n } else {\n throw new TypeError(`${angle} is not a string.`);\n }\n const GRAD = DEG / 400;\n const RAD = DEG / (Math.PI * DUO);\n const reg = new RegExp(`^(${NUM})(${ANGLE})?$`);\n if (!reg.test(angle)) {\n throw new SyntaxError(`Invalid property value: ${angle}`);\n }\n const [, value, unit] = angle.match(reg) as MatchedRegExp;\n let deg;\n switch (unit) {\n case 'grad':\n deg = parseFloat(value) * GRAD;\n break;\n case 'rad':\n deg = parseFloat(value) * RAD;\n break;\n case 'turn':\n deg = parseFloat(value) * DEG;\n break;\n default:\n deg = parseFloat(value);\n }\n deg %= DEG;\n if (deg < 0) {\n deg += DEG;\n } else if (Object.is(deg, -0)) {\n deg = 0;\n }\n return deg;\n};\n\n/**\n * parse alpha\n * @param [alpha] - alpha value\n * @returns alpha: 0..1\n */\nexport const parseAlpha = (alpha: string = ''): number => {\n if (isString(alpha)) {\n alpha = alpha.trim();\n if (!alpha) {\n alpha = '1';\n } else if (alpha === NONE) {\n alpha = '0';\n } else {\n let a;\n if (alpha.endsWith('%')) {\n a = parseFloat(alpha) / MAX_PCT;\n } else {\n a = parseFloat(alpha);\n }\n if (!Number.isFinite(a)) {\n throw new TypeError(`${a} is not a finite number.`);\n }\n if (a < PPTH) {\n alpha = '0';\n } else if (a > 1) {\n alpha = '1';\n } else {\n alpha = a.toFixed(TRIA);\n }\n }\n } else {\n alpha = '1';\n }\n return parseFloat(alpha);\n};\n\n/**\n * parse hex alpha\n * @param value - alpha value in hex string\n * @returns alpha: 0..1\n */\nexport const parseHexAlpha = (value: string): number => {\n if (isString(value)) {\n if (value === '') {\n throw new SyntaxError('Invalid property value: (empty string)');\n }\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n let alpha = parseInt(value, HEX);\n if (alpha <= 0) {\n return 0;\n }\n if (alpha >= MAX_RGB) {\n return 1;\n }\n const alphaMap = new Map();\n for (let i = 1; i < MAX_PCT; i++) {\n alphaMap.set(Math.round((i * MAX_RGB) / MAX_PCT), i);\n }\n if (alphaMap.has(alpha)) {\n alpha = alphaMap.get(alpha) / MAX_PCT;\n } else {\n alpha = Math.round(alpha / MAX_RGB / PPTH) * PPTH;\n }\n return parseFloat(alpha.toFixed(TRIA));\n};\n\n/**\n * transform rgb to linear rgb\n * @param rgb - [r, g, b] r|g|b: 0..255\n * @param [skip] - skip validate\n * @returns TriColorChannels - [r, g, b] r|g|b: 0..1\n */\nexport const transformRgbToLinearRgb = (\n rgb: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n let rr, gg, bb;\n if (skip) {\n [rr, gg, bb] = rgb;\n } else {\n [rr, gg, bb] = validateColorComponents(rgb, {\n maxLength: TRIA,\n maxRange: MAX_RGB\n });\n }\n let r = rr / MAX_RGB;\n let g = gg / MAX_RGB;\n let b = bb / MAX_RGB;\n const COND_POW = 0.04045;\n if (r > COND_POW) {\n r = Math.pow((r + LINEAR_OFFSET) / (1 + LINEAR_OFFSET), POW_LINEAR);\n } else {\n r /= LINEAR_COEF;\n }\n if (g > COND_POW) {\n g = Math.pow((g + LINEAR_OFFSET) / (1 + LINEAR_OFFSET), POW_LINEAR);\n } else {\n g /= LINEAR_COEF;\n }\n if (b > COND_POW) {\n b = Math.pow((b + LINEAR_OFFSET) / (1 + LINEAR_OFFSET), POW_LINEAR);\n } else {\n b /= LINEAR_COEF;\n }\n return [r, g, b];\n};\n\n/**\n * transform rgb to xyz\n * @param rgb - [r, g, b] r|g|b: 0..255\n * @param [skip] - skip validate\n * @returns TriColorChannels - [x, y, z]\n */\nexport const transformRgbToXyz = (\n rgb: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n rgb = validateColorComponents(rgb, {\n maxLength: TRIA,\n maxRange: MAX_RGB\n }) as TriColorChannels;\n }\n rgb = transformRgbToLinearRgb(rgb, true);\n const xyz = transformMatrix(MATRIX_L_RGB_TO_XYZ, rgb, true);\n return xyz;\n};\n\n/**\n * transform rgb to xyz-d50\n * @param rgb - [r, g, b] r|g|b: 0..255 alpha: 0..1\n * @returns TriColorChannels - [x, y, z]\n */\nexport const transformRgbToXyzD50 = (\n rgb: TriColorChannels\n): TriColorChannels => {\n let xyz = transformRgbToXyz(rgb);\n xyz = transformMatrix(MATRIX_D65_TO_D50, xyz, true);\n return xyz;\n};\n\n/**\n * transform linear rgb to rgb\n * @param rgb - [r, g, b] r|g|b: 0..1\n * @param [round] - round result\n * @returns TriColorChannels - [r, g, b] r|g|b: 0..255\n */\nexport const transformLinearRgbToRgb = (\n rgb: TriColorChannels,\n round: boolean = false\n): TriColorChannels => {\n let [r, g, b] = validateColorComponents(rgb, {\n maxLength: TRIA\n });\n const COND_POW = 809 / 258400;\n if (r > COND_POW) {\n r = Math.pow(r, 1 / POW_LINEAR) * (1 + LINEAR_OFFSET) - LINEAR_OFFSET;\n } else {\n r *= LINEAR_COEF;\n }\n r *= MAX_RGB;\n if (g > COND_POW) {\n g = Math.pow(g, 1 / POW_LINEAR) * (1 + LINEAR_OFFSET) - LINEAR_OFFSET;\n } else {\n g *= LINEAR_COEF;\n }\n g *= MAX_RGB;\n if (b > COND_POW) {\n b = Math.pow(b, 1 / POW_LINEAR) * (1 + LINEAR_OFFSET) - LINEAR_OFFSET;\n } else {\n b *= LINEAR_COEF;\n }\n b *= MAX_RGB;\n return [\n round ? Math.round(r) : r,\n round ? Math.round(g) : g,\n round ? Math.round(b) : b\n ];\n};\n\n/**\n * transform xyz to rgb\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [r, g, b] r|g|b: 0..255\n */\nexport const transformXyzToRgb = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n let [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, xyz, true);\n [r, g, b] = transformLinearRgbToRgb(\n [\n Math.min(Math.max(r, 0), 1),\n Math.min(Math.max(g, 0), 1),\n Math.min(Math.max(b, 0), 1)\n ],\n true\n );\n return [r, g, b];\n};\n\n/**\n * transform xyz to xyz-d50\n * @param xyz - [x, y, z]\n * @returns TriColorChannels - [x, y, z]\n */\nexport const transformXyzToXyzD50 = (\n xyz: TriColorChannels\n): TriColorChannels => {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n xyz = transformMatrix(MATRIX_D65_TO_D50, xyz, true);\n return xyz;\n};\n\n/**\n * transform xyz to hsl\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [h, s, l]\n */\nexport const transformXyzToHsl = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n const [rr, gg, bb] = transformXyzToRgb(xyz, skip);\n const r = rr / MAX_RGB;\n const g = gg / MAX_RGB;\n const b = bb / MAX_RGB;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n const l = (max + min) * HALF * MAX_PCT;\n let h, s;\n if (Math.round(l) === 0 || Math.round(l) === MAX_PCT) {\n h = 0;\n s = 0;\n } else {\n s = (d / (1 - Math.abs(max + min - 1))) * MAX_PCT;\n if (s === 0) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d;\n break;\n case g:\n h = (b - r) / d + DUO;\n break;\n case b:\n default:\n h = (r - g) / d + QUAD;\n break;\n }\n h = (h * SEXA) % DEG;\n if (h < 0) {\n h += DEG;\n }\n }\n }\n return [h, s, l];\n};\n\n/**\n * transform xyz to hwb\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [h, w, b]\n */\nexport const transformXyzToHwb = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n const [r, g, b] = transformXyzToRgb(xyz, skip);\n const wh = Math.min(r, g, b) / MAX_RGB;\n const bk = 1 - Math.max(r, g, b) / MAX_RGB;\n let h;\n if (wh + bk === 1) {\n h = 0;\n } else {\n [h] = transformXyzToHsl(xyz);\n }\n return [h, wh * MAX_PCT, bk * MAX_PCT];\n};\n\n/**\n * transform xyz to oklab\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [l, a, b]\n */\nexport const transformXyzToOklab = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n const lms = transformMatrix(MATRIX_XYZ_TO_LMS, xyz, true);\n const xyzLms = lms.map(c => Math.cbrt(c)) as TriColorChannels;\n let [l, a, b] = transformMatrix(MATRIX_LMS_TO_OKLAB, xyzLms, true);\n l = Math.min(Math.max(l, 0), 1);\n const lPct = Math.round(parseFloat(l.toFixed(QUAD)) * MAX_PCT);\n if (lPct === 0 || lPct === MAX_PCT) {\n a = 0;\n b = 0;\n }\n return [l, a, b];\n};\n\n/**\n * transform xyz to oklch\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [l, c, h]\n */\nexport const transformXyzToOklch = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n const [l, a, b] = transformXyzToOklab(xyz, skip);\n let c, h;\n const lPct = Math.round(parseFloat(l.toFixed(QUAD)) * MAX_PCT);\n if (lPct === 0 || lPct === MAX_PCT) {\n c = 0;\n h = 0;\n } else {\n c = Math.max(Math.sqrt(Math.pow(a, POW_SQR) + Math.pow(b, POW_SQR)), 0);\n if (parseFloat(c.toFixed(QUAD)) === 0) {\n h = 0;\n } else {\n h = (Math.atan2(b, a) * DEG_HALF) / Math.PI;\n if (h < 0) {\n h += DEG;\n }\n }\n }\n return [l, c, h];\n};\n\n/**\n * transform xyz D50 to rgb\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [r, g, b] r|g|b: 0..255\n */\nexport const transformXyzD50ToRgb = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n const xyzD65 = transformMatrix(MATRIX_D50_TO_D65, xyz, true);\n const rgb = transformXyzToRgb(xyzD65, true);\n return rgb;\n};\n\n/**\n * transform xyz-d50 to lab\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [l, a, b]\n */\nexport const transformXyzD50ToLab = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n if (!skip) {\n xyz = validateColorComponents(xyz, {\n maxLength: TRIA,\n validateRange: false\n }) as TriColorChannels;\n }\n const xyzD50 = xyz.map((val, i) => val / (D50[i] as number));\n const [f0, f1, f2] = xyzD50.map(val =>\n val > LAB_EPSILON ? Math.cbrt(val) : (val * LAB_KAPPA + HEX) / LAB_L\n ) as TriColorChannels;\n const l = Math.min(Math.max(LAB_L * f1 - HEX, 0), MAX_PCT);\n let a, b;\n if (l === 0 || l === MAX_PCT) {\n a = 0;\n b = 0;\n } else {\n a = (f0 - f1) * LAB_A;\n b = (f1 - f2) * LAB_B;\n }\n return [l, a, b];\n};\n\n/**\n * transform xyz-d50 to lch\n * @param xyz - [x, y, z]\n * @param [skip] - skip validate\n * @returns TriColorChannels - [l, c, h]\n */\nexport const transformXyzD50ToLch = (\n xyz: TriColorChannels,\n skip: boolean = false\n): TriColorChannels => {\n const [l, a, b] = transformXyzD50ToLab(xyz, skip);\n let c, h;\n if (l === 0 || l === MAX_PCT) {\n c = 0;\n h = 0;\n } else {\n c = Math.max(Math.sqrt(Math.pow(a, POW_SQR) + Math.pow(b, POW_SQR)), 0);\n h = (Math.atan2(b, a) * DEG_HALF) / Math.PI;\n if (h < 0) {\n h += DEG;\n }\n }\n return [l, c, h];\n};\n\n/**\n * convert rgb to hex color\n * @param rgb - [r, g, b, alpha] r|g|b: 0..255 alpha: 0..1\n * @returns hex color\n */\nexport const convertRgbToHex = (rgb: ColorChannels): string => {\n const [r, g, b, alpha] = validateColorComponents(rgb, {\n alpha: true,\n maxRange: MAX_RGB\n }) as ColorChannels;\n const rr = numberToHexString(r);\n const gg = numberToHexString(g);\n const bb = numberToHexString(b);\n const aa = numberToHexString(alpha * MAX_RGB);\n let hex;\n if (aa === 'ff') {\n hex = `#${rr}${gg}${bb}`;\n } else {\n hex = `#${rr}${gg}${bb}${aa}`;\n }\n return hex;\n};\n\n/**\n * convert linear rgb to hex color\n * @param rgb - [r, g, b, alpha] r|g|b|alpha: 0..1\n * @param [skip] - skip validate\n * @returns hex color\n */\nexport const convertLinearRgbToHex = (\n rgb: ColorChannels,\n skip: boolean = false\n): string => {\n let r, g, b, alpha;\n if (skip) {\n [r, g, b, alpha] = rgb;\n } else {\n [r, g, b, alpha] = validateColorComponents(rgb, {\n minLength: QUAD\n }) as ColorChannels;\n }\n [r, g, b] = transformLinearRgbToRgb([r, g, b], true);\n const rr = numberToHexString(r);\n const gg = numberToHexString(g);\n const bb = numberToHexString(b);\n const aa = numberToHexString(alpha * MAX_RGB);\n let hex;\n if (aa === 'ff') {\n hex = `#${rr}${gg}${bb}`;\n } else {\n hex = `#${rr}${gg}${bb}${aa}`;\n }\n return hex;\n};\n\n/**\n * convert xyz to hex color\n * @param xyz - [x, y, z, alpha]\n * @returns hex color\n */\nexport const convertXyzToHex = (xyz: ColorChannels): string => {\n const [x, y, z, alpha] = validateColorComponents(xyz, {\n minLength: QUAD,\n validateRange: false\n }) as ColorChannels;\n const [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y, z], true);\n const hex = convertLinearRgbToHex(\n [\n Math.min(Math.max(r, 0), 1),\n Math.min(Math.max(g, 0), 1),\n Math.min(Math.max(b, 0), 1),\n alpha\n ],\n true\n );\n return hex;\n};\n\n/**\n * convert xyz D50 to hex color\n * @param xyz - [x, y, z, alpha]\n * @returns hex color\n */\nexport const convertXyzD50ToHex = (xyz: ColorChannels): string => {\n const [x, y, z, alpha] = validateColorComponents(xyz, {\n minLength: QUAD,\n validateRange: false\n }) as ColorChannels;\n const xyzD65 = transformMatrix(MATRIX_D50_TO_D65, [x, y, z], true);\n const [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, xyzD65, true);\n const hex = convertLinearRgbToHex([\n Math.min(Math.max(r, 0), 1),\n Math.min(Math.max(g, 0), 1),\n Math.min(Math.max(b, 0), 1),\n alpha\n ]);\n return hex;\n};\n\n/**\n * convert hex color to rgb\n * @param value - hex color value\n * @returns ColorChannels - [r, g, b, alpha] r|g|b: 0..255 alpha: 0..1\n */\nexport const convertHexToRgb = (value: string): ColorChannels => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n if (\n !(\n /^#[\\da-f]{6}$/.test(value) ||\n /^#[\\da-f]{3}$/.test(value) ||\n /^#[\\da-f]{8}$/.test(value) ||\n /^#[\\da-f]{4}$/.test(value)\n )\n ) {\n throw new SyntaxError(`Invalid property value: ${value}`);\n }\n const arr: number[] = [];\n if (/^#[\\da-f]{3}$/.test(value)) {\n const [, r, g, b] = value.match(\n /^#([\\da-f])([\\da-f])([\\da-f])$/\n ) as MatchedRegExp;\n arr.push(\n parseInt(`${r}${r}`, HEX),\n parseInt(`${g}${g}`, HEX),\n parseInt(`${b}${b}`, HEX),\n 1\n );\n } else if (/^#[\\da-f]{4}$/.test(value)) {\n const [, r, g, b, alpha] = value.match(\n /^#([\\da-f])([\\da-f])([\\da-f])([\\da-f])$/\n ) as MatchedRegExp;\n arr.push(\n parseInt(`${r}${r}`, HEX),\n parseInt(`${g}${g}`, HEX),\n parseInt(`${b}${b}`, HEX),\n parseHexAlpha(`${alpha}${alpha}`)\n );\n } else if (/^#[\\da-f]{8}$/.test(value)) {\n const [, r, g, b, alpha] = value.match(\n /^#([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/\n ) as MatchedRegExp;\n arr.push(\n parseInt(r, HEX),\n parseInt(g, HEX),\n parseInt(b, HEX),\n parseHexAlpha(alpha)\n );\n } else {\n const [, r, g, b] = value.match(\n /^#([\\da-f]{2})([\\da-f]{2})([\\da-f]{2})$/\n ) as MatchedRegExp;\n arr.push(parseInt(r, HEX), parseInt(g, HEX), parseInt(b, HEX), 1);\n }\n return arr as ColorChannels;\n};\n\n/**\n * convert hex color to linear rgb\n * @param value - hex color value\n * @returns ColorChannels - [r, g, b, alpha] r|g|b|alpha: 0..1\n */\nexport const convertHexToLinearRgb = (value: string): ColorChannels => {\n const [rr, gg, bb, alpha] = convertHexToRgb(value);\n const [r, g, b] = transformRgbToLinearRgb([rr, gg, bb], true);\n return [r, g, b, alpha];\n};\n\n/**\n * convert hex color to xyz\n * @param value - hex color value\n * @returns ColorChannels - [x, y, z, alpha]\n */\nexport const convertHexToXyz = (value: string): ColorChannels => {\n const [r, g, b, alpha] = convertHexToLinearRgb(value);\n const [x, y, z] = transformMatrix(MATRIX_L_RGB_TO_XYZ, [r, g, b], true);\n return [x, y, z, alpha];\n};\n\n/**\n * parse rgb()\n * @param value - rgb color value\n * @param [opt] - options\n * @returns parsed color - ['rgb', r, g, b, alpha], '(empty)', NullObject\n */\nexport const parseRgb = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n const reg = new RegExp(`^rgba?\\\\(\\\\s*(${SYN_MOD}|${SYN_RGB_LV3})\\\\s*\\\\)$`);\n if (!reg.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [, val] = value.match(reg) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace(/[,/]/g, ' ')\n .split(/\\s+/) as StringColorChannels;\n let r, g, b;\n if (v1 === NONE) {\n r = 0;\n } else {\n if (v1.endsWith('%')) {\n r = (parseFloat(v1) * MAX_RGB) / MAX_PCT;\n } else {\n r = parseFloat(v1);\n }\n r = Math.min(Math.max(roundToPrecision(r, OCT), 0), MAX_RGB);\n }\n if (v2 === NONE) {\n g = 0;\n } else {\n if (v2.endsWith('%')) {\n g = (parseFloat(v2) * MAX_RGB) / MAX_PCT;\n } else {\n g = parseFloat(v2);\n }\n g = Math.min(Math.max(roundToPrecision(g, OCT), 0), MAX_RGB);\n }\n if (v3 === NONE) {\n b = 0;\n } else {\n if (v3.endsWith('%')) {\n b = (parseFloat(v3) * MAX_RGB) / MAX_PCT;\n } else {\n b = parseFloat(v3);\n }\n b = Math.min(Math.max(roundToPrecision(b, OCT), 0), MAX_RGB);\n }\n const alpha = parseAlpha(v4);\n return ['rgb', r, g, b, format === VAL_MIX && v4 === NONE ? NONE : alpha];\n};\n\n/**\n * parse hsl()\n * @param value - hsl color value\n * @param [opt] - options\n * @returns parsed color - ['rgb', r, g, b, alpha], '(empty)', NullObject\n */\nexport const parseHsl = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_HSL.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [, val] = value.match(REG_HSL) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace(/[,/]/g, ' ')\n .split(/\\s+/) as StringColorChannels;\n let h, s, l;\n if (v1 === NONE) {\n h = 0;\n } else {\n h = angleToDeg(v1);\n }\n if (v2 === NONE) {\n s = 0;\n } else {\n s = Math.min(Math.max(parseFloat(v2), 0), MAX_PCT);\n }\n if (v3 === NONE) {\n l = 0;\n } else {\n l = Math.min(Math.max(parseFloat(v3), 0), MAX_PCT);\n }\n const alpha = parseAlpha(v4);\n if (format === 'hsl') {\n return [\n format,\n v1 === NONE ? v1 : h,\n v2 === NONE ? v2 : s,\n v3 === NONE ? v3 : l,\n v4 === NONE ? v4 : alpha\n ];\n }\n h = (h / DEG) * DOZ;\n l /= MAX_PCT;\n const sa = (s / MAX_PCT) * Math.min(l, 1 - l);\n const rk = h % DOZ;\n const gk = (8 + h) % DOZ;\n const bk = (4 + h) % DOZ;\n const r = l - sa * Math.max(-1, Math.min(rk - TRIA, TRIA ** POW_SQR - rk, 1));\n const g = l - sa * Math.max(-1, Math.min(gk - TRIA, TRIA ** POW_SQR - gk, 1));\n const b = l - sa * Math.max(-1, Math.min(bk - TRIA, TRIA ** POW_SQR - bk, 1));\n return [\n 'rgb',\n Math.min(Math.max(roundToPrecision(r * MAX_RGB, OCT), 0), MAX_RGB),\n Math.min(Math.max(roundToPrecision(g * MAX_RGB, OCT), 0), MAX_RGB),\n Math.min(Math.max(roundToPrecision(b * MAX_RGB, OCT), 0), MAX_RGB),\n alpha\n ];\n};\n\n/**\n * parse hwb()\n * @param value - hwb color value\n * @param [opt] - options\n * @returns parsed color - ['rgb', r, g, b, alpha], '(empty)', NullObject\n */\nexport const parseHwb = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_HWB.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [, val] = value.match(REG_HWB) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let h, wh, bk;\n if (v1 === NONE) {\n h = 0;\n } else {\n h = angleToDeg(v1);\n }\n if (v2 === NONE) {\n wh = 0;\n } else {\n wh = Math.min(Math.max(parseFloat(v2), 0), MAX_PCT) / MAX_PCT;\n }\n if (v3 === NONE) {\n bk = 0;\n } else {\n bk = Math.min(Math.max(parseFloat(v3), 0), MAX_PCT) / MAX_PCT;\n }\n const alpha = parseAlpha(v4);\n if (format === 'hwb') {\n return [\n format,\n v1 === NONE ? v1 : h,\n v2 === NONE ? v2 : wh * MAX_PCT,\n v3 === NONE ? v3 : bk * MAX_PCT,\n v4 === NONE ? v4 : alpha\n ];\n }\n if (wh + bk >= 1) {\n const v = roundToPrecision((wh / (wh + bk)) * MAX_RGB, OCT);\n return ['rgb', v, v, v, alpha];\n }\n const factor = (1 - wh - bk) / MAX_RGB;\n let [, r, g, b] = parseHsl(`hsl(${h} 100 50)`) as ComputedColorChannels;\n r = roundToPrecision((r * factor + wh) * MAX_RGB, OCT);\n g = roundToPrecision((g * factor + wh) * MAX_RGB, OCT);\n b = roundToPrecision((b * factor + wh) * MAX_RGB, OCT);\n return [\n 'rgb',\n Math.min(Math.max(r, 0), MAX_RGB),\n Math.min(Math.max(g, 0), MAX_RGB),\n Math.min(Math.max(b, 0), MAX_RGB),\n alpha\n ];\n};\n\n/**\n * parse lab()\n * @param value - lab color value\n * @param [opt] - options\n * @returns parsed color\n * - [xyz-d50, x, y, z, alpha], ['lab', l, a, b, alpha], '(empty)', NullObject\n */\nexport const parseLab = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_LAB.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const COEF_PCT = 1.25;\n const COND_POW = 8;\n const [, val] = value.match(REG_LAB) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let l, a, b;\n if (v1 === NONE) {\n l = 0;\n } else {\n if (v1.endsWith('%')) {\n l = parseFloat(v1);\n if (l > MAX_PCT) {\n l = MAX_PCT;\n }\n } else {\n l = parseFloat(v1);\n }\n if (l < 0) {\n l = 0;\n }\n }\n if (v2 === NONE) {\n a = 0;\n } else {\n a = v2.endsWith('%') ? parseFloat(v2) * COEF_PCT : parseFloat(v2);\n }\n if (v3 === NONE) {\n b = 0;\n } else {\n b = v3.endsWith('%') ? parseFloat(v3) * COEF_PCT : parseFloat(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format)) {\n return [\n 'lab',\n v1 === NONE ? v1 : roundToPrecision(l, HEX),\n v2 === NONE ? v2 : roundToPrecision(a, HEX),\n v3 === NONE ? v3 : roundToPrecision(b, HEX),\n v4 === NONE ? v4 : alpha\n ];\n }\n const fl = (l + HEX) / LAB_L;\n const fa = a / LAB_A + fl;\n const fb = fl - b / LAB_B;\n const powFl = Math.pow(fl, POW_CUBE);\n const powFa = Math.pow(fa, POW_CUBE);\n const powFb = Math.pow(fb, POW_CUBE);\n const xyz = [\n powFa > LAB_EPSILON ? powFa : (fa * LAB_L - HEX) / LAB_KAPPA,\n l > COND_POW ? powFl : l / LAB_KAPPA,\n powFb > LAB_EPSILON ? powFb : (fb * LAB_L - HEX) / LAB_KAPPA\n ];\n const [x, y, z] = xyz.map(\n (val, i) => val * (D50[i] as number)\n ) as TriColorChannels;\n return [\n 'xyz-d50',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha\n ];\n};\n\n/**\n * parse lch()\n * @param value - lch color value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-d50', x, y, z, alpha], ['lch', l, c, h, alpha]\n * - '(empty)', NullObject\n */\nexport const parseLch = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_LCH.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const COEF_PCT = 1.5;\n const [, val] = value.match(REG_LCH) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let l, c, h;\n if (v1 === NONE) {\n l = 0;\n } else {\n l = parseFloat(v1);\n if (l < 0) {\n l = 0;\n }\n }\n if (v2 === NONE) {\n c = 0;\n } else {\n c = v2.endsWith('%') ? parseFloat(v2) * COEF_PCT : parseFloat(v2);\n }\n if (v3 === NONE) {\n h = 0;\n } else {\n h = angleToDeg(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format)) {\n return [\n 'lch',\n v1 === NONE ? v1 : roundToPrecision(l, HEX),\n v2 === NONE ? v2 : roundToPrecision(c, HEX),\n v3 === NONE ? v3 : roundToPrecision(h, HEX),\n v4 === NONE ? v4 : alpha\n ];\n }\n const a = c * Math.cos((h * Math.PI) / DEG_HALF);\n const b = c * Math.sin((h * Math.PI) / DEG_HALF);\n const [, x, y, z] = parseLab(`lab(${l} ${a} ${b})`) as ComputedColorChannels;\n return [\n 'xyz-d50',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha as number\n ];\n};\n\n/**\n * parse oklab()\n * @param value - oklab color value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-d65', x, y, z, alpha], ['oklab', l, a, b, alpha]\n * - '(empty)', NullObject\n */\nexport const parseOklab = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_OKLAB.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const COEF_PCT = 0.4;\n const [, val] = value.match(REG_OKLAB) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let l, a, b;\n if (v1 === NONE) {\n l = 0;\n } else {\n l = v1.endsWith('%') ? parseFloat(v1) / MAX_PCT : parseFloat(v1);\n if (l < 0) {\n l = 0;\n }\n }\n if (v2 === NONE) {\n a = 0;\n } else if (v2.endsWith('%')) {\n a = (parseFloat(v2) * COEF_PCT) / MAX_PCT;\n } else {\n a = parseFloat(v2);\n }\n if (v3 === NONE) {\n b = 0;\n } else if (v3.endsWith('%')) {\n b = (parseFloat(v3) * COEF_PCT) / MAX_PCT;\n } else {\n b = parseFloat(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format)) {\n return [\n 'oklab',\n v1 === NONE ? v1 : roundToPrecision(l, HEX),\n v2 === NONE ? v2 : roundToPrecision(a, HEX),\n v3 === NONE ? v3 : roundToPrecision(b, HEX),\n v4 === NONE ? v4 : alpha\n ];\n }\n const lms = transformMatrix(MATRIX_OKLAB_TO_LMS, [l, a, b]);\n const xyzLms = lms.map(c => Math.pow(c, POW_CUBE)) as TriColorChannels;\n const [x, y, z] = transformMatrix(MATRIX_LMS_TO_XYZ, xyzLms, true);\n return [\n 'xyz-d65',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha as number\n ];\n};\n\n/**\n * parse oklch()\n * @param value - oklch color value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-d65', x, y, z, alpha], ['oklch', l, c, h, alpha]\n * - '(empty)', NullObject\n */\nexport const parseOklch = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n if (!REG_OKLCH.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const COEF_PCT = 0.4;\n const [, val] = value.match(REG_OKLCH) as MatchedRegExp;\n const [v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorChannels;\n let l, c, h;\n if (v1 === NONE) {\n l = 0;\n } else {\n l = v1.endsWith('%') ? parseFloat(v1) / MAX_PCT : parseFloat(v1);\n if (l < 0) {\n l = 0;\n }\n }\n if (v2 === NONE) {\n c = 0;\n } else {\n if (v2.endsWith('%')) {\n c = (parseFloat(v2) * COEF_PCT) / MAX_PCT;\n } else {\n c = parseFloat(v2);\n }\n if (c < 0) {\n c = 0;\n }\n }\n if (v3 === NONE) {\n h = 0;\n } else {\n h = angleToDeg(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format)) {\n return [\n 'oklch',\n v1 === NONE ? v1 : roundToPrecision(l, HEX),\n v2 === NONE ? v2 : roundToPrecision(c, HEX),\n v3 === NONE ? v3 : roundToPrecision(h, HEX),\n v4 === NONE ? v4 : alpha\n ];\n }\n const a = c * Math.cos((h * Math.PI) / DEG_HALF);\n const b = c * Math.sin((h * Math.PI) / DEG_HALF);\n const lms = transformMatrix(MATRIX_OKLAB_TO_LMS, [l, a, b]);\n const xyzLms = lms.map(cc => Math.pow(cc, POW_CUBE)) as TriColorChannels;\n const [x, y, z] = transformMatrix(MATRIX_LMS_TO_XYZ, xyzLms, true);\n return [\n 'xyz-d65',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha\n ];\n};\n\n/**\n * parse color()\n * @param value - color function value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-(d50|d65)', x, y, z, alpha], [cs, r, g, b, alpha]\n * - '(empty)', NullObject\n */\nexport const parseColorFunc = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { colorSpace = '', d50 = false, format = '', nullable = false } = opt;\n if (!REG_FN_COLOR.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [, val] = value.match(REG_FN_COLOR) as MatchedRegExp;\n let [cs, v1, v2, v3, v4 = ''] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorSpacedChannels;\n let r, g, b;\n if (cs === 'xyz') {\n cs = 'xyz-d65';\n }\n if (v1 === NONE) {\n r = 0;\n } else {\n r = v1.endsWith('%') ? parseFloat(v1) / MAX_PCT : parseFloat(v1);\n }\n if (v2 === NONE) {\n g = 0;\n } else {\n g = v2.endsWith('%') ? parseFloat(v2) / MAX_PCT : parseFloat(v2);\n }\n if (v3 === NONE) {\n b = 0;\n } else {\n b = v3.endsWith('%') ? parseFloat(v3) / MAX_PCT : parseFloat(v3);\n }\n const alpha = parseAlpha(v4);\n if (REG_SPEC.test(format) || (format === VAL_MIX && cs === colorSpace)) {\n return [\n cs,\n v1 === NONE ? v1 : roundToPrecision(r, DEC),\n v2 === NONE ? v2 : roundToPrecision(g, DEC),\n v3 === NONE ? v3 : roundToPrecision(b, DEC),\n v4 === NONE ? v4 : alpha\n ];\n }\n let x = 0;\n let y = 0;\n let z = 0;\n // srgb-linear\n if (cs === 'srgb-linear') {\n [x, y, z] = transformMatrix(MATRIX_L_RGB_TO_XYZ, [r, g, b]);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // display-p3\n } else if (cs === 'display-p3') {\n const linearRgb = transformRgbToLinearRgb([\n r * MAX_RGB,\n g * MAX_RGB,\n b * MAX_RGB\n ]);\n [x, y, z] = transformMatrix(MATRIX_P3_TO_XYZ, linearRgb);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // rec2020\n } else if (cs === 'rec2020') {\n const ALPHA = 1.09929682680944;\n const BETA = 0.018053968510807;\n const REC_COEF = 0.45;\n const rgb = [r, g, b].map(c => {\n let cl;\n if (c < BETA * REC_COEF * DEC) {\n cl = c / (REC_COEF * DEC);\n } else {\n cl = Math.pow((c + ALPHA - 1) / ALPHA, 1 / REC_COEF);\n }\n return cl;\n }) as TriColorChannels;\n [x, y, z] = transformMatrix(MATRIX_REC2020_TO_XYZ, rgb);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // a98-rgb\n } else if (cs === 'a98-rgb') {\n const POW_A98 = 563 / 256;\n const rgb = [r, g, b].map(c => {\n const cl = Math.pow(c, POW_A98);\n return cl;\n }) as TriColorChannels;\n [x, y, z] = transformMatrix(MATRIX_A98_TO_XYZ, rgb);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // prophoto-rgb\n } else if (cs === 'prophoto-rgb') {\n const POW_PROPHOTO = 1.8;\n const rgb = [r, g, b].map(c => {\n let cl;\n if (c > 1 / (HEX * DUO)) {\n cl = Math.pow(c, POW_PROPHOTO);\n } else {\n cl = c / HEX;\n }\n return cl;\n }) as TriColorChannels;\n [x, y, z] = transformMatrix(MATRIX_PROPHOTO_TO_XYZ_D50, rgb);\n if (!d50) {\n [x, y, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y, z], true);\n }\n // xyz, xyz-d50, xyz-d65\n } else if (/^xyz(?:-d(?:50|65))?$/.test(cs)) {\n [x, y, z] = [r, g, b];\n if (cs === 'xyz-d50') {\n if (!d50) {\n [x, y, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y, z]);\n }\n } else if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // srgb\n } else {\n [x, y, z] = transformRgbToXyz([r * MAX_RGB, g * MAX_RGB, b * MAX_RGB]);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n }\n return [\n d50 ? 'xyz-d50' : 'xyz-d65',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n format === VAL_MIX && v4 === NONE ? v4 : alpha\n ];\n};\n\n/**\n * parse color value\n * @param value - CSS color value\n * @param [opt] - options\n * @returns parsed color\n * - ['xyz-(d50|d65)', x, y, z, alpha], ['rgb', r, g, b, alpha]\n * - value, '(empty)', NullObject\n */\nexport const parseColorValue = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { d50 = false, format = '', nullable = false } = opt;\n if (!REG_COLOR.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n return res;\n }\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n let x = 0;\n let y = 0;\n let z = 0;\n let alpha = 0;\n // complement currentcolor as a missing color\n if (REG_CURRENT.test(value)) {\n if (format === VAL_COMP) {\n return ['rgb', 0, 0, 0, 0];\n }\n if (format === VAL_SPEC) {\n return value;\n }\n // named-color\n } else if (/^[a-z]+$/.test(value)) {\n if (Object.prototype.hasOwnProperty.call(NAMED_COLORS, value)) {\n if (format === VAL_SPEC) {\n return value;\n }\n const [r, g, b] = NAMED_COLORS[\n value as keyof typeof NAMED_COLORS\n ] as TriColorChannels;\n alpha = 1;\n if (format === VAL_COMP) {\n return ['rgb', r, g, b, alpha];\n }\n [x, y, z] = transformRgbToXyz([r, g, b], true);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n } else {\n switch (format) {\n case VAL_COMP: {\n if (nullable && value !== 'transparent') {\n return new NullObject();\n }\n return ['rgb', 0, 0, 0, 0];\n }\n case VAL_SPEC: {\n if (value === 'transparent') {\n return value;\n }\n return '';\n }\n case VAL_MIX: {\n if (value === 'transparent') {\n return ['rgb', 0, 0, 0, 0];\n }\n return new NullObject();\n }\n default:\n }\n }\n // hex-color\n } else if (value[0] === '#') {\n if (REG_SPEC.test(format)) {\n const rgb = convertHexToRgb(value);\n return ['rgb', ...rgb];\n }\n [x, y, z, alpha] = convertHexToXyz(value);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // lab()\n } else if (value.startsWith('lab')) {\n if (REG_SPEC.test(format)) {\n return parseLab(value, opt);\n }\n [, x, y, z, alpha] = parseLab(value) as ComputedColorChannels;\n if (!d50) {\n [x, y, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y, z], true);\n }\n // lch()\n } else if (value.startsWith('lch')) {\n if (REG_SPEC.test(format)) {\n return parseLch(value, opt);\n }\n [, x, y, z, alpha] = parseLch(value) as ComputedColorChannels;\n if (!d50) {\n [x, y, z] = transformMatrix(MATRIX_D50_TO_D65, [x, y, z], true);\n }\n // oklab()\n } else if (value.startsWith('oklab')) {\n if (REG_SPEC.test(format)) {\n return parseOklab(value, opt);\n }\n [, x, y, z, alpha] = parseOklab(value) as ComputedColorChannels;\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n // oklch()\n } else if (value.startsWith('oklch')) {\n if (REG_SPEC.test(format)) {\n return parseOklch(value, opt);\n }\n [, x, y, z, alpha] = parseOklch(value) as ComputedColorChannels;\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n } else {\n let r, g, b;\n // hsl()\n if (value.startsWith('hsl')) {\n [, r, g, b, alpha] = parseHsl(value) as ComputedColorChannels;\n // hwb()\n } else if (value.startsWith('hwb')) {\n [, r, g, b, alpha] = parseHwb(value) as ComputedColorChannels;\n // rgb()\n } else {\n [, r, g, b, alpha] = parseRgb(value, opt) as ComputedColorChannels;\n }\n if (REG_SPEC.test(format)) {\n return ['rgb', Math.round(r), Math.round(g), Math.round(b), alpha];\n }\n [x, y, z] = transformRgbToXyz([r, g, b]);\n if (d50) {\n [x, y, z] = transformMatrix(MATRIX_D65_TO_D50, [x, y, z], true);\n }\n }\n return [\n d50 ? 'xyz-d50' : 'xyz-d65',\n roundToPrecision(x, HEX),\n roundToPrecision(y, HEX),\n roundToPrecision(z, HEX),\n alpha\n ];\n};\n\n/**\n * resolve color value\n * @param value - CSS color value\n * @param [opt] - options\n * @returns resolved color\n * - [cs, v1, v2, v3, alpha], value, '(empty)', NullObject\n */\nexport const resolveColorValue = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { colorSpace = '', format = '', nullable = false } = opt;\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'resolveColorValue',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n const cachedItem = cachedResult.item;\n if (isString(cachedItem)) {\n return cachedItem as string;\n }\n return cachedItem as SpecifiedColorChannels;\n }\n if (!REG_COLOR.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n setCache(cacheKey, null);\n return res;\n }\n setCache(cacheKey, res);\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n let cs = '';\n let r = 0;\n let g = 0;\n let b = 0;\n let alpha = 0;\n // complement currentcolor as a missing color\n if (REG_CURRENT.test(value)) {\n if (format === VAL_SPEC) {\n setCache(cacheKey, value);\n return value;\n }\n // named-color\n } else if (/^[a-z]+$/.test(value)) {\n if (Object.prototype.hasOwnProperty.call(NAMED_COLORS, value)) {\n if (format === VAL_SPEC) {\n setCache(cacheKey, value);\n return value;\n }\n [r, g, b] = NAMED_COLORS[\n value as keyof typeof NAMED_COLORS\n ] as TriColorChannels;\n alpha = 1;\n } else {\n switch (format) {\n case VAL_SPEC: {\n if (value === 'transparent') {\n setCache(cacheKey, value);\n return value;\n }\n const res = '';\n setCache(cacheKey, res);\n return res;\n }\n case VAL_MIX: {\n if (value === 'transparent') {\n const res: SpecifiedColorChannels = ['rgb', 0, 0, 0, 0];\n setCache(cacheKey, res);\n return res;\n }\n setCache(cacheKey, null);\n return new NullObject();\n }\n case VAL_COMP:\n default: {\n if (nullable && value !== 'transparent') {\n setCache(cacheKey, null);\n return new NullObject();\n }\n const res: SpecifiedColorChannels = ['rgb', 0, 0, 0, 0];\n setCache(cacheKey, res);\n return res;\n }\n }\n }\n // hex-color\n } else if (value[0] === '#') {\n [r, g, b, alpha] = convertHexToRgb(value);\n // hsl()\n } else if (value.startsWith('hsl')) {\n [, r, g, b, alpha] = parseHsl(value, opt) as ComputedColorChannels;\n // hwb()\n } else if (value.startsWith('hwb')) {\n [, r, g, b, alpha] = parseHwb(value, opt) as ComputedColorChannels;\n // lab(), lch()\n } else if (/^l(?:ab|ch)/.test(value)) {\n let x, y, z;\n if (value.startsWith('lab')) {\n [cs, x, y, z, alpha] = parseLab(value, opt) as ComputedColorChannels;\n } else {\n [cs, x, y, z, alpha] = parseLch(value, opt) as ComputedColorChannels;\n }\n if (REG_SPEC.test(format)) {\n const res: SpecifiedColorChannels = [cs, x, y, z, alpha];\n setCache(cacheKey, res);\n return res;\n }\n [r, g, b] = transformXyzD50ToRgb([x, y, z]);\n // oklab(), oklch()\n } else if (/^okl(?:ab|ch)/.test(value)) {\n let x, y, z;\n if (value.startsWith('oklab')) {\n [cs, x, y, z, alpha] = parseOklab(value, opt) as ComputedColorChannels;\n } else {\n [cs, x, y, z, alpha] = parseOklch(value, opt) as ComputedColorChannels;\n }\n if (REG_SPEC.test(format)) {\n const res: SpecifiedColorChannels = [cs, x, y, z, alpha];\n setCache(cacheKey, res);\n return res;\n }\n [r, g, b] = transformXyzToRgb([x, y, z]);\n // rgb()\n } else {\n [, r, g, b, alpha] = parseRgb(value, opt) as ComputedColorChannels;\n }\n if (format === VAL_MIX && colorSpace === 'srgb') {\n const res: SpecifiedColorChannels = [\n 'srgb',\n r / MAX_RGB,\n g / MAX_RGB,\n b / MAX_RGB,\n alpha\n ];\n setCache(cacheKey, res);\n return res;\n }\n const res: SpecifiedColorChannels = [\n 'rgb',\n Math.round(r),\n Math.round(g),\n Math.round(b),\n alpha\n ];\n setCache(cacheKey, res);\n return res;\n};\n\n/**\n * resolve color()\n * @param value - color function value\n * @param [opt] - options\n * @returns resolved color - [cs, v1, v2, v3, alpha], '(empty)', NullObject\n */\nexport const resolveColorFunc = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { colorSpace = '', format = '', nullable = false } = opt;\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'resolveColorFunc',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n const cachedItem = cachedResult.item;\n if (isString(cachedItem)) {\n return cachedItem as string;\n }\n return cachedItem as SpecifiedColorChannels;\n }\n if (!REG_FN_COLOR.test(value)) {\n const res = resolveInvalidColorValue(format, nullable);\n if (res instanceof NullObject) {\n setCache(cacheKey, null);\n return res;\n }\n setCache(cacheKey, res);\n if (isString(res)) {\n return res as string;\n }\n return res as SpecifiedColorChannels;\n }\n const [cs, v1, v2, v3, v4] = parseColorFunc(\n value,\n opt\n ) as SpecifiedColorChannels;\n if (REG_SPEC.test(format) || (format === VAL_MIX && cs === colorSpace)) {\n const res: SpecifiedColorChannels = [cs, v1, v2, v3, v4];\n setCache(cacheKey, res);\n return res;\n }\n const x = parseFloat(`${v1}`);\n const y = parseFloat(`${v2}`);\n const z = parseFloat(`${v3}`);\n const alpha = parseAlpha(`${v4}`);\n const [r, g, b] = transformXyzToRgb([x, y, z], true);\n const res: SpecifiedColorChannels = ['rgb', r, g, b, alpha];\n setCache(cacheKey, res);\n return res;\n};\n\n/**\n * convert color value to linear rgb\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [r, g, b, alpha] r|g|b|alpha: 0..1\n */\nexport const convertColorToLinearRgb = (\n value: string,\n opt: {\n colorSpace?: string;\n format?: string;\n } = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { colorSpace = '', format = '' } = opt;\n let cs = '';\n let r, g, b, alpha, x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [cs, x, y, z, alpha] = xyz as ComputedColorChannels;\n if (cs === colorSpace) {\n return [x, y, z, alpha];\n }\n [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y, z], true);\n } else if (value.startsWith(FN_COLOR)) {\n const [, val] = value.match(REG_FN_COLOR) as MatchedRegExp;\n const [cs] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorSpacedChannels;\n if (cs === 'srgb-linear') {\n [, r, g, b, alpha] = resolveColorFunc(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y, z], true);\n }\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n [r, g, b] = transformMatrix(MATRIX_XYZ_TO_L_RGB, [x, y, z], true);\n }\n return [\n Math.min(Math.max(r, 0), 1),\n Math.min(Math.max(g, 0), 1),\n Math.min(Math.max(b, 0), 1),\n alpha\n ];\n};\n\n/**\n * convert color value to rgb\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject\n * - [r, g, b, alpha] r|g|b: 0..255 alpha: 0..1\n */\nexport const convertColorToRgb = (\n value: string,\n opt: Options = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let r, g, b, alpha;\n if (format === VAL_MIX) {\n let rgb;\n if (value.startsWith(FN_COLOR)) {\n rgb = resolveColorFunc(value, opt);\n } else {\n rgb = resolveColorValue(value, opt);\n }\n if (rgb instanceof NullObject) {\n return rgb;\n }\n [, r, g, b, alpha] = rgb as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n const [, val] = value.match(REG_FN_COLOR) as MatchedRegExp;\n const [cs] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorSpacedChannels;\n if (cs === 'srgb') {\n [, r, g, b, alpha] = resolveColorFunc(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n r *= MAX_RGB;\n g *= MAX_RGB;\n b *= MAX_RGB;\n } else {\n [, r, g, b, alpha] = resolveColorFunc(value) as ComputedColorChannels;\n }\n } else if (/^(?:ok)?l(?:ab|ch)/.test(value)) {\n [r, g, b, alpha] = convertColorToLinearRgb(value) as ColorChannels;\n [r, g, b] = transformLinearRgbToRgb([r, g, b]);\n } else {\n [, r, g, b, alpha] = resolveColorValue(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n }\n return [r, g, b, alpha];\n};\n\n/**\n * convert color value to xyz\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [x, y, z, alpha]\n */\nexport const convertColorToXyz = (\n value: string,\n opt: Options = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { d50 = false, format = '' } = opt;\n let x, y, z, alpha;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n const [, val] = value.match(REG_FN_COLOR) as MatchedRegExp;\n const [cs] = val\n .replace('/', ' ')\n .split(/\\s+/) as StringColorSpacedChannels;\n if (d50) {\n if (cs === 'xyz-d50') {\n [, x, y, z, alpha] = resolveColorFunc(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorFunc(\n value,\n opt\n ) as ComputedColorChannels;\n }\n } else if (/^xyz(?:-d65)?$/.test(cs)) {\n [, x, y, z, alpha] = resolveColorFunc(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n }\n } else {\n [, x, y, z, alpha] = parseColorValue(value, opt) as ComputedColorChannels;\n }\n return [x, y, z, alpha];\n};\n\n/**\n * convert color value to hsl\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [h, s, l, alpha], hue may be powerless\n */\nexport const convertColorToHsl = (\n value: string,\n opt: Options = {}\n): ColorChannels | [number | string, number, number, number] | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let h, s, l, alpha;\n if (REG_HSL.test(value)) {\n [, h, s, l, alpha] = parseHsl(value, {\n format: 'hsl'\n }) as ComputedColorChannels;\n if (format === 'hsl') {\n return [Math.round(h), Math.round(s), Math.round(l), alpha];\n }\n return [h, s, l, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n }\n [h, s, l] = transformXyzToHsl([x, y, z], true) as TriColorChannels;\n if (format === 'hsl') {\n return [Math.round(h), Math.round(s), Math.round(l), alpha];\n }\n return [format === VAL_MIX && s === 0 ? NONE : h, s, l, alpha];\n};\n\n/**\n * convert color value to hwb\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [h, w, b, alpha], hue may be powerless\n */\nexport const convertColorToHwb = (\n value: string,\n opt: Options = {}\n): ColorChannels | [number | string, number, number, number] | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let h, w, b, alpha;\n if (REG_HWB.test(value)) {\n [, h, w, b, alpha] = parseHwb(value, {\n format: 'hwb'\n }) as ComputedColorChannels;\n if (format === 'hwb') {\n return [Math.round(h), Math.round(w), Math.round(b), alpha];\n }\n return [h, w, b, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n }\n [h, w, b] = transformXyzToHwb([x, y, z], true) as TriColorChannels;\n if (format === 'hwb') {\n return [Math.round(h), Math.round(w), Math.round(b), alpha];\n }\n return [format === VAL_MIX && w + b >= 100 ? NONE : h, w, b, alpha];\n};\n\n/**\n * convert color value to lab\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [l, a, b, alpha]\n */\nexport const convertColorToLab = (\n value: string,\n opt: Options = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let l, a, b, alpha;\n if (REG_LAB.test(value)) {\n [, l, a, b, alpha] = parseLab(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n return [l, a, b, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n opt.d50 = true;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value, {\n d50: true\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value, {\n d50: true\n }) as ComputedColorChannels;\n }\n [l, a, b] = transformXyzD50ToLab([x, y, z], true);\n return [l, a, b, alpha];\n};\n\n/**\n * convert color value to lch\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [l, c, h, alpha], hue may be powerless\n */\nexport const convertColorToLch = (\n value: string,\n opt: Options = {}\n): ColorChannels | [number, number, number | string, number] | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let l, c, h, alpha;\n if (REG_LCH.test(value)) {\n [, l, c, h, alpha] = parseLch(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n return [l, c, h, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n opt.d50 = true;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value, {\n d50: true\n }) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value, {\n d50: true\n }) as ComputedColorChannels;\n }\n [l, c, h] = transformXyzD50ToLch([x, y, z], true);\n return [l, c, format === VAL_MIX && c === 0 ? NONE : h, alpha];\n};\n\n/**\n * convert color value to oklab\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [l, a, b, alpha]\n */\nexport const convertColorToOklab = (\n value: string,\n opt: Options = {}\n): ColorChannels | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let l, a, b, alpha;\n if (REG_OKLAB.test(value)) {\n [, l, a, b, alpha] = parseOklab(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n return [l, a, b, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n }\n [l, a, b] = transformXyzToOklab([x, y, z], true);\n return [l, a, b, alpha];\n};\n\n/**\n * convert color value to oklch\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels | NullObject - [l, c, h, alpha], hue may be powerless\n */\nexport const convertColorToOklch = (\n value: string,\n opt: Options = {}\n): ColorChannels | [number, number, number | string, number] | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '' } = opt;\n let l, c, h, alpha;\n if (REG_OKLCH.test(value)) {\n [, l, c, h, alpha] = parseOklch(value, {\n format: VAL_COMP\n }) as ComputedColorChannels;\n return [l, c, h, alpha];\n }\n let x, y, z;\n if (format === VAL_MIX) {\n let xyz;\n if (value.startsWith(FN_COLOR)) {\n xyz = parseColorFunc(value, opt);\n } else {\n xyz = parseColorValue(value, opt);\n }\n if (xyz instanceof NullObject) {\n return xyz;\n }\n [, x, y, z, alpha] = xyz as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n [, x, y, z, alpha] = parseColorFunc(value) as ComputedColorChannels;\n } else {\n [, x, y, z, alpha] = parseColorValue(value) as ComputedColorChannels;\n }\n [l, c, h] = transformXyzToOklch([x, y, z], true) as TriColorChannels;\n return [l, c, format === VAL_MIX && c === 0 ? NONE : h, alpha];\n};\n\n/**\n * resolve color-mix()\n * @param value - color-mix color value\n * @param [opt] - options\n * @returns resolved color - [cs, v1, v2, v3, alpha], '(empty)'\n */\nexport const resolveColorMix = (\n value: string,\n opt: Options = {}\n): SpecifiedColorChannels | string | NullObject => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { format = '', nullable = false } = opt;\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'resolveColorMix',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n const cachedItem = cachedResult.item;\n if (isString(cachedItem)) {\n return cachedItem as string;\n }\n return cachedItem as SpecifiedColorChannels;\n }\n const nestedItems = [];\n if (!REG_MIX.test(value)) {\n if (value.startsWith(FN_MIX) && REG_MIX_NEST.test(value)) {\n const regColorSpace = new RegExp(`^(?:${CS_RGB}|${CS_XYZ})$`);\n const items = value.match(REG_MIX_NEST) as RegExpMatchArray;\n for (const item of items) {\n if (item) {\n let val = resolveColorMix(item, {\n format: format === VAL_SPEC ? format : VAL_COMP\n }) as ComputedColorChannels | string;\n // computed value\n if (Array.isArray(val)) {\n const [cs, v1, v2, v3, v4] = val as ComputedColorChannels;\n if (v1 === 0 && v2 === 0 && v3 === 0 && v4 === 0) {\n value = '';\n break;\n }\n if (regColorSpace.test(cs)) {\n if (v4 === 1) {\n val = `color(${cs} ${v1} ${v2} ${v3})`;\n } else {\n val = `color(${cs} ${v1} ${v2} ${v3} / ${v4})`;\n }\n } else if (v4 === 1) {\n val = `${cs}(${v1} ${v2} ${v3})`;\n } else {\n val = `${cs}(${v1} ${v2} ${v3} / ${v4})`;\n }\n } else if (!REG_MIX.test(val)) {\n value = '';\n break;\n }\n nestedItems.push(val);\n value = value.replace(item, val);\n }\n }\n if (!value) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n } else {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n }\n let colorSpace = '';\n let hueArc = '';\n let colorA = '';\n let pctA = '';\n let colorB = '';\n let pctB = '';\n if (nestedItems.length && format === VAL_SPEC) {\n const regColorSpace = new RegExp(`^color-mix\\\\(\\\\s*in\\\\s+(${CS_MIX})\\\\s*,`);\n const [, cs] = value.match(regColorSpace) as MatchedRegExp;\n if (REG_CS_HUE.test(cs)) {\n [, colorSpace, hueArc] = cs.match(REG_CS_HUE) as MatchedRegExp;\n } else {\n colorSpace = cs;\n }\n if (nestedItems.length === 2) {\n let [itemA, itemB] = nestedItems as [string, string];\n itemA = itemA.replace(/(?=[()])/g, '\\\\');\n itemB = itemB.replace(/(?=[()])/g, '\\\\');\n const regA = new RegExp(`(${itemA})(?:\\\\s+(${PCT}))?`);\n const regB = new RegExp(`(${itemB})(?:\\\\s+(${PCT}))?`);\n [, colorA, pctA] = value.match(regA) as MatchedRegExp;\n [, colorB, pctB] = value.match(regB) as MatchedRegExp;\n } else {\n let [item] = nestedItems as [string];\n item = item.replace(/(?=[()])/g, '\\\\');\n const itemPart = `${item}(?:\\\\s+${PCT})?`;\n const itemPartCapt = `(${item})(?:\\\\s+(${PCT}))?`;\n const regItemPart = new RegExp(`^${itemPartCapt}$`);\n const regLastItem = new RegExp(`${itemPartCapt}\\\\s*\\\\)$`);\n const regColorPart = new RegExp(`^(${SYN_COLOR_TYPE})(?:\\\\s+(${PCT}))?$`);\n // item is at the end\n if (regLastItem.test(value)) {\n const reg = new RegExp(\n `(${SYN_MIX_PART})\\\\s*,\\\\s*(${itemPart})\\\\s*\\\\)$`\n );\n const [, colorPartA, colorPartB] = value.match(reg) as MatchedRegExp;\n [, colorA, pctA] = colorPartA.match(regColorPart) as MatchedRegExp;\n [, colorB, pctB] = colorPartB.match(regItemPart) as MatchedRegExp;\n } else {\n const reg = new RegExp(\n `(${itemPart})\\\\s*,\\\\s*(${SYN_MIX_PART})\\\\s*\\\\)$`\n );\n const [, colorPartA, colorPartB] = value.match(reg) as MatchedRegExp;\n [, colorA, pctA] = colorPartA.match(regItemPart) as MatchedRegExp;\n [, colorB, pctB] = colorPartB.match(regColorPart) as MatchedRegExp;\n }\n }\n } else {\n const [, cs, colorPartA, colorPartB] = value.match(\n REG_MIX_CAPT\n ) as MatchedRegExp;\n const reg = new RegExp(`^(${SYN_COLOR_TYPE})(?:\\\\s+(${PCT}))?$`);\n [, colorA, pctA] = colorPartA.match(reg) as MatchedRegExp;\n [, colorB, pctB] = colorPartB.match(reg) as MatchedRegExp;\n if (REG_CS_HUE.test(cs)) {\n [, colorSpace, hueArc] = cs.match(REG_CS_HUE) as MatchedRegExp;\n } else {\n colorSpace = cs;\n }\n }\n // normalize percentages and set multipler\n let pA, pB, m;\n if (pctA && pctB) {\n const p1 = parseFloat(pctA) / MAX_PCT;\n const p2 = parseFloat(pctB) / MAX_PCT;\n if (p1 < 0 || p1 > 1 || p2 < 0 || p2 > 1) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const factor = p1 + p2;\n if (factor === 0) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n pA = p1 / factor;\n pB = p2 / factor;\n m = factor < 1 ? factor : 1;\n } else {\n if (pctA) {\n pA = parseFloat(pctA) / MAX_PCT;\n if (pA < 0 || pA > 1) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n pB = 1 - pA;\n } else if (pctB) {\n pB = parseFloat(pctB) / MAX_PCT;\n if (pB < 0 || pB > 1) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n pA = 1 - pB;\n } else {\n pA = HALF;\n pB = HALF;\n }\n m = 1;\n }\n if (colorSpace === 'xyz') {\n colorSpace = 'xyz-d65';\n }\n // specified value\n if (format === VAL_SPEC) {\n let valueA = '';\n let valueB = '';\n if (colorA.startsWith(FN_MIX)) {\n valueA = colorA;\n } else if (colorA.startsWith(FN_COLOR)) {\n const [cs, v1, v2, v3, v4] = parseColorFunc(\n colorA,\n opt\n ) as SpecifiedColorChannels;\n if (v4 === 1) {\n valueA = `color(${cs} ${v1} ${v2} ${v3})`;\n } else {\n valueA = `color(${cs} ${v1} ${v2} ${v3} / ${v4})`;\n }\n } else {\n const val = parseColorValue(colorA, opt);\n if (Array.isArray(val)) {\n const [cs, v1, v2, v3, v4] = val;\n if (v4 === 1) {\n if (cs === 'rgb') {\n valueA = `${cs}(${v1}, ${v2}, ${v3})`;\n } else {\n valueA = `${cs}(${v1} ${v2} ${v3})`;\n }\n } else if (cs === 'rgb') {\n valueA = `${cs}a(${v1}, ${v2}, ${v3}, ${v4})`;\n } else {\n valueA = `${cs}(${v1} ${v2} ${v3} / ${v4})`;\n }\n } else {\n if (!isString(val) || !val) {\n setCache(cacheKey, '');\n return '';\n }\n valueA = val;\n }\n }\n if (colorB.startsWith(FN_MIX)) {\n valueB = colorB;\n } else if (colorB.startsWith(FN_COLOR)) {\n const [cs, v1, v2, v3, v4] = parseColorFunc(\n colorB,\n opt\n ) as SpecifiedColorChannels;\n if (v4 === 1) {\n valueB = `color(${cs} ${v1} ${v2} ${v3})`;\n } else {\n valueB = `color(${cs} ${v1} ${v2} ${v3} / ${v4})`;\n }\n } else {\n const val = parseColorValue(colorB, opt);\n if (Array.isArray(val)) {\n const [cs, v1, v2, v3, v4] = val;\n if (v4 === 1) {\n if (cs === 'rgb') {\n valueB = `${cs}(${v1}, ${v2}, ${v3})`;\n } else {\n valueB = `${cs}(${v1} ${v2} ${v3})`;\n }\n } else if (cs === 'rgb') {\n valueB = `${cs}a(${v1}, ${v2}, ${v3}, ${v4})`;\n } else {\n valueB = `${cs}(${v1} ${v2} ${v3} / ${v4})`;\n }\n } else {\n if (!isString(val) || !val) {\n setCache(cacheKey, '');\n return '';\n }\n valueB = val;\n }\n }\n if (pctA && pctB) {\n valueA += ` ${parseFloat(pctA)}%`;\n valueB += ` ${parseFloat(pctB)}%`;\n } else if (pctA) {\n const pA = parseFloat(pctA);\n if (pA !== MAX_PCT * HALF) {\n valueA += ` ${pA}%`;\n }\n } else if (pctB) {\n const pA = MAX_PCT - parseFloat(pctB);\n if (pA !== MAX_PCT * HALF) {\n valueA += ` ${pA}%`;\n }\n }\n if (hueArc) {\n const res = `color-mix(in ${colorSpace} ${hueArc} hue, ${valueA}, ${valueB})`;\n setCache(cacheKey, res);\n return res;\n } else {\n const res = `color-mix(in ${colorSpace}, ${valueA}, ${valueB})`;\n setCache(cacheKey, res);\n return res;\n }\n }\n let r = 0;\n let g = 0;\n let b = 0;\n let alpha = 0;\n // in srgb, srgb-linear\n if (/^srgb(?:-linear)?$/.test(colorSpace)) {\n let rgbA, rgbB;\n if (colorSpace === 'srgb') {\n if (REG_CURRENT.test(colorA)) {\n rgbA = [NONE, NONE, NONE, NONE];\n } else {\n rgbA = convertColorToRgb(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n rgbB = [NONE, NONE, NONE, NONE];\n } else {\n rgbB = convertColorToRgb(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n } else {\n if (REG_CURRENT.test(colorA)) {\n rgbA = [NONE, NONE, NONE, NONE];\n } else {\n rgbA = convertColorToLinearRgb(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n rgbB = [NONE, NONE, NONE, NONE];\n } else {\n rgbB = convertColorToLinearRgb(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n }\n if (rgbA instanceof NullObject || rgbB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [rrA, ggA, bbA, aaA] = rgbA as NumStrColorChannels;\n const [rrB, ggB, bbB, aaB] = rgbB as NumStrColorChannels;\n const rNone = rrA === NONE && rrB === NONE;\n const gNone = ggA === NONE && ggB === NONE;\n const bNone = bbA === NONE && bbB === NONE;\n const alphaNone = aaA === NONE && aaB === NONE;\n const [[rA, gA, bA, alphaA], [rB, gB, bB, alphaB]] =\n normalizeColorComponents(\n [rrA, ggA, bbA, aaA],\n [rrB, ggB, bbB, aaB],\n true\n );\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n if (alpha === 0) {\n r = rA * pA + rB * pB;\n g = gA * pA + gB * pB;\n b = bA * pA + bB * pB;\n } else {\n r = (rA * factorA + rB * factorB) / alpha;\n g = (gA * factorA + gB * factorB) / alpha;\n b = (bA * factorA + bB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n colorSpace,\n rNone ? NONE : roundToPrecision(r, HEX),\n gNone ? NONE : roundToPrecision(g, HEX),\n bNone ? NONE : roundToPrecision(b, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n r *= MAX_RGB;\n g *= MAX_RGB;\n b *= MAX_RGB;\n // in xyz, xyz-d65, xyz-d50\n } else if (REG_CS_XYZ.test(colorSpace)) {\n let xyzA, xyzB;\n if (REG_CURRENT.test(colorA)) {\n xyzA = [NONE, NONE, NONE, NONE];\n } else {\n xyzA = convertColorToXyz(colorA, {\n colorSpace,\n d50: colorSpace === 'xyz-d50',\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n xyzB = [NONE, NONE, NONE, NONE];\n } else {\n xyzB = convertColorToXyz(colorB, {\n colorSpace,\n d50: colorSpace === 'xyz-d50',\n format: VAL_MIX\n });\n }\n if (xyzA instanceof NullObject || xyzB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [xxA, yyA, zzA, aaA] = xyzA;\n const [xxB, yyB, zzB, aaB] = xyzB;\n const xNone = xxA === NONE && xxB === NONE;\n const yNone = yyA === NONE && yyB === NONE;\n const zNone = zzA === NONE && zzB === NONE;\n const alphaNone = aaA === NONE && aaB === NONE;\n const [[xA, yA, zA, alphaA], [xB, yB, zB, alphaB]] =\n normalizeColorComponents(\n [xxA, yyA, zzA, aaA],\n [xxB, yyB, zzB, aaB],\n true\n );\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n let x, y, z;\n if (alpha === 0) {\n x = xA * pA + xB * pB;\n y = yA * pA + yB * pB;\n z = zA * pA + zB * pB;\n } else {\n x = (xA * factorA + xB * factorB) / alpha;\n y = (yA * factorA + yB * factorB) / alpha;\n z = (zA * factorA + zB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n colorSpace,\n xNone ? NONE : roundToPrecision(x, HEX),\n yNone ? NONE : roundToPrecision(y, HEX),\n zNone ? NONE : roundToPrecision(z, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n if (colorSpace === 'xyz-d50') {\n [r, g, b] = transformXyzD50ToRgb([x, y, z], true);\n } else {\n [r, g, b] = transformXyzToRgb([x, y, z], true);\n }\n // in hsl, hwb\n } else if (/^h(?:sl|wb)$/.test(colorSpace)) {\n let hslA, hslB;\n if (colorSpace === 'hsl') {\n if (REG_CURRENT.test(colorA)) {\n hslA = [NONE, NONE, NONE, NONE];\n } else {\n hslA = convertColorToHsl(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n hslB = [NONE, NONE, NONE, NONE];\n } else {\n hslB = convertColorToHsl(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n } else {\n if (REG_CURRENT.test(colorA)) {\n hslA = [NONE, NONE, NONE, NONE];\n } else {\n hslA = convertColorToHwb(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n hslB = [NONE, NONE, NONE, NONE];\n } else {\n hslB = convertColorToHwb(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n }\n if (hslA instanceof NullObject || hslB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [hhA, ssA, llA, aaA] = hslA;\n const [hhB, ssB, llB, aaB] = hslB;\n const alphaNone = aaA === NONE && aaB === NONE;\n let [[hA, sA, lA, alphaA], [hB, sB, lB, alphaB]] = normalizeColorComponents(\n [hhA, ssA, llA, aaA],\n [hhB, ssB, llB, aaB],\n true\n );\n if (hueArc) {\n [hA, hB] = interpolateHue(hA, hB, hueArc);\n }\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n const h = (hA * pA + hB * pB) % DEG;\n let s, l;\n if (alpha === 0) {\n s = sA * pA + sB * pB;\n l = lA * pA + lB * pB;\n } else {\n s = (sA * factorA + sB * factorB) / alpha;\n l = (lA * factorA + lB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n [r, g, b] = convertColorToRgb(\n `${colorSpace}(${h} ${s} ${l})`\n ) as ColorChannels;\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n 'srgb',\n roundToPrecision(r / MAX_RGB, HEX),\n roundToPrecision(g / MAX_RGB, HEX),\n roundToPrecision(b / MAX_RGB, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n // in lch, oklch\n } else if (/^(?:ok)?lch$/.test(colorSpace)) {\n let lchA, lchB;\n if (colorSpace === 'lch') {\n if (REG_CURRENT.test(colorA)) {\n lchA = [NONE, NONE, NONE, NONE];\n } else {\n lchA = convertColorToLch(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n lchB = [NONE, NONE, NONE, NONE];\n } else {\n lchB = convertColorToLch(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n } else {\n if (REG_CURRENT.test(colorA)) {\n lchA = [NONE, NONE, NONE, NONE];\n } else {\n lchA = convertColorToOklch(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n lchB = [NONE, NONE, NONE, NONE];\n } else {\n lchB = convertColorToOklch(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n }\n if (lchA instanceof NullObject || lchB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [llA, ccA, hhA, aaA] = lchA;\n const [llB, ccB, hhB, aaB] = lchB;\n const lNone = llA === NONE && llB === NONE;\n const cNone = ccA === NONE && ccB === NONE;\n const hNone = hhA === NONE && hhB === NONE;\n const alphaNone = aaA === NONE && aaB === NONE;\n let [[lA, cA, hA, alphaA], [lB, cB, hB, alphaB]] = normalizeColorComponents(\n [llA, ccA, hhA, aaA],\n [llB, ccB, hhB, aaB],\n true\n );\n if (hueArc) {\n [hA, hB] = interpolateHue(hA, hB, hueArc);\n }\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n const h = (hA * pA + hB * pB) % DEG;\n let l, c;\n if (alpha === 0) {\n l = lA * pA + lB * pB;\n c = cA * pA + cB * pB;\n } else {\n l = (lA * factorA + lB * factorB) / alpha;\n c = (cA * factorA + cB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n colorSpace,\n lNone ? NONE : roundToPrecision(l, HEX),\n cNone ? NONE : roundToPrecision(c, HEX),\n hNone ? NONE : roundToPrecision(h, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n [, r, g, b] = resolveColorValue(\n `${colorSpace}(${l} ${c} ${h})`\n ) as ComputedColorChannels;\n // in lab, oklab\n } else {\n let labA, labB;\n if (colorSpace === 'lab') {\n if (REG_CURRENT.test(colorA)) {\n labA = [NONE, NONE, NONE, NONE];\n } else {\n labA = convertColorToLab(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n labB = [NONE, NONE, NONE, NONE];\n } else {\n labB = convertColorToLab(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n } else {\n if (REG_CURRENT.test(colorA)) {\n labA = [NONE, NONE, NONE, NONE];\n } else {\n labA = convertColorToOklab(colorA, {\n colorSpace,\n format: VAL_MIX\n });\n }\n if (REG_CURRENT.test(colorB)) {\n labB = [NONE, NONE, NONE, NONE];\n } else {\n labB = convertColorToOklab(colorB, {\n colorSpace,\n format: VAL_MIX\n });\n }\n }\n if (labA instanceof NullObject || labB instanceof NullObject) {\n const res = cacheInvalidColorValue(cacheKey, format, nullable);\n return res;\n }\n const [llA, aaA, bbA, alA] = labA;\n const [llB, aaB, bbB, alB] = labB;\n const lNone = llA === NONE && llB === NONE;\n const aNone = aaA === NONE && aaB === NONE;\n const bNone = bbA === NONE && bbB === NONE;\n const alphaNone = alA === NONE && alB === NONE;\n const [[lA, aA, bA, alphaA], [lB, aB, bB, alphaB]] =\n normalizeColorComponents(\n [llA, aaA, bbA, alA],\n [llB, aaB, bbB, alB],\n true\n );\n const factorA = alphaA * pA;\n const factorB = alphaB * pB;\n alpha = factorA + factorB;\n let l, aO, bO;\n if (alpha === 0) {\n l = lA * pA + lB * pB;\n aO = aA * pA + aB * pB;\n bO = bA * pA + bB * pB;\n } else {\n l = (lA * factorA + lB * factorB) / alpha;\n aO = (aA * factorA + aB * factorB) / alpha;\n bO = (bA * factorA + bB * factorB) / alpha;\n alpha = parseFloat(alpha.toFixed(3));\n }\n if (format === VAL_COMP) {\n const res: SpecifiedColorChannels = [\n colorSpace,\n lNone ? NONE : roundToPrecision(l, HEX),\n aNone ? NONE : roundToPrecision(aO, HEX),\n bNone ? NONE : roundToPrecision(bO, HEX),\n alphaNone ? NONE : alpha * m\n ];\n setCache(cacheKey, res);\n return res;\n }\n [, r, g, b] = resolveColorValue(\n `${colorSpace}(${l} ${aO} ${bO})`\n ) as ComputedColorChannels;\n }\n const res: SpecifiedColorChannels = [\n 'rgb',\n Math.round(r),\n Math.round(g),\n Math.round(b),\n parseFloat((alpha * m).toFixed(3))\n ];\n setCache(cacheKey, res);\n return res;\n};\n","/**\n * css-var\n */\n\nimport { CSSToken, TokenType, tokenize } from '@csstools/css-tokenizer';\nimport {\n CacheItem,\n NullObject,\n createCacheKey,\n getCache,\n setCache\n} from './cache';\nimport { isString } from './common';\nimport { cssCalc } from './css-calc';\nimport { isColor } from './util';\nimport { Options } from './typedef';\n\n/* constants */\nimport { FN_VAR, SYN_FN_CALC, SYN_FN_VAR, VAL_SPEC } from './constant';\nconst {\n CloseParen: PAREN_CLOSE,\n Comment: COMMENT,\n EOF,\n Ident: IDENT,\n Whitespace: W_SPACE\n} = TokenType;\nconst NAMESPACE = 'css-var';\n\n/* regexp */\nconst REG_FN_CALC = new RegExp(SYN_FN_CALC);\nconst REG_FN_VAR = new RegExp(SYN_FN_VAR);\n\n/**\n * resolve custom property\n * @param tokens - CSS tokens\n * @param [opt] - options\n * @returns result - [tokens, resolvedValue]\n */\nexport function resolveCustomProperty(\n tokens: CSSToken[],\n opt: Options = {}\n): [CSSToken[], string] {\n if (!Array.isArray(tokens)) {\n throw new TypeError(`${tokens} is not an array.`);\n }\n const { customProperty = {} } = opt;\n const items: string[] = [];\n while (tokens.length) {\n const token = tokens.shift();\n if (!Array.isArray(token)) {\n throw new TypeError(`${token} is not an array.`);\n }\n const [type, value] = token as [TokenType, string];\n // end of var()\n if (type === PAREN_CLOSE) {\n break;\n }\n // nested var()\n if (value === FN_VAR) {\n const [restTokens, item] = resolveCustomProperty(tokens, opt);\n tokens = restTokens;\n if (item) {\n items.push(item);\n }\n } else if (type === IDENT) {\n if (value.startsWith('--')) {\n let item;\n if (Object.hasOwnProperty.call(customProperty, value)) {\n item = customProperty[value] as string;\n } else if (typeof customProperty.callback === 'function') {\n item = customProperty.callback(value);\n }\n if (item) {\n items.push(item);\n }\n } else if (value) {\n items.push(value);\n }\n }\n }\n let resolveAsColor = false;\n if (items.length > 1) {\n const lastValue = items[items.length - 1];\n resolveAsColor = isColor(lastValue);\n }\n let resolvedValue = '';\n for (let item of items) {\n item = item.trim();\n if (REG_FN_VAR.test(item)) {\n // recurse resolveVar()\n const resolvedItem = resolveVar(item, opt);\n if (isString(resolvedItem)) {\n if (resolveAsColor) {\n if (isColor(resolvedItem)) {\n resolvedValue = resolvedItem;\n }\n } else {\n resolvedValue = resolvedItem;\n }\n }\n } else if (REG_FN_CALC.test(item)) {\n item = cssCalc(item, opt);\n if (resolveAsColor) {\n if (isColor(item)) {\n resolvedValue = item;\n }\n } else {\n resolvedValue = item;\n }\n } else if (\n item &&\n !/^(?:inherit|initial|revert(?:-layer)?|unset)$/.test(item)\n ) {\n if (resolveAsColor) {\n if (isColor(item)) {\n resolvedValue = item;\n }\n } else {\n resolvedValue = item;\n }\n }\n if (resolvedValue) {\n break;\n }\n }\n return [tokens, resolvedValue];\n}\n\n/**\n * parse tokens\n * @param tokens - CSS tokens\n * @param [opt] - options\n * @returns parsed tokens\n */\nexport function parseTokens(\n tokens: CSSToken[],\n opt: Options = {}\n): string[] | NullObject {\n const res: string[] = [];\n while (tokens.length) {\n const token = tokens.shift();\n const [type = '', value = ''] = token as [TokenType, string];\n if (value === FN_VAR) {\n const [restTokens, resolvedValue] = resolveCustomProperty(tokens, opt);\n if (!resolvedValue) {\n return new NullObject();\n }\n tokens = restTokens;\n res.push(resolvedValue);\n } else {\n switch (type) {\n case PAREN_CLOSE: {\n if (res.length) {\n const lastValue = res[res.length - 1];\n if (lastValue === ' ') {\n res.splice(-1, 1, value);\n } else {\n res.push(value);\n }\n } else {\n res.push(value);\n }\n break;\n }\n case W_SPACE: {\n if (res.length) {\n const lastValue = res[res.length - 1];\n if (\n isString(lastValue) &&\n !lastValue.endsWith('(') &&\n lastValue !== ' '\n ) {\n res.push(value);\n }\n }\n break;\n }\n default: {\n if (type !== COMMENT && type !== EOF) {\n res.push(value);\n }\n }\n }\n }\n }\n return res;\n}\n\n/**\n * resolve CSS var()\n * @param value - CSS value including var()\n * @param [opt] - options\n * @returns resolved value\n */\nexport function resolveVar(\n value: string,\n opt: Options = {}\n): string | NullObject {\n const { format = '' } = opt;\n if (isString(value)) {\n if (!REG_FN_VAR.test(value) || format === VAL_SPEC) {\n return value;\n }\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'resolveVar',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n return cachedResult.item as string;\n }\n const tokens = tokenize({ css: value });\n const values = parseTokens(tokens, opt);\n if (Array.isArray(values)) {\n let color = values.join('');\n if (REG_FN_CALC.test(color)) {\n color = cssCalc(color, opt);\n }\n setCache(cacheKey, color);\n return color;\n } else {\n setCache(cacheKey, null);\n return new NullObject();\n }\n}\n\n/**\n * CSS var()\n * @param value - CSS value including var()\n * @param [opt] - options\n * @returns resolved value\n */\nexport const cssVar = (value: string, opt: Options = {}): string => {\n const resolvedValue = resolveVar(value, opt);\n if (isString(resolvedValue)) {\n return resolvedValue;\n }\n return '';\n};\n","function multiplyMatrices(t,n){return[t[0]*n[0]+t[1]*n[1]+t[2]*n[2],t[3]*n[0]+t[4]*n[1]+t[5]*n[2],t[6]*n[0]+t[7]*n[1]+t[8]*n[2]]}const t=[.955473421488075,-.02309845494876471,.06325924320057072,-.0283697093338637,1.0099953980813041,.021041441191917323,.012314014864481998,-.020507649298898964,1.330365926242124];\n/**\n * Bradford chromatic adaptation from D50 to D65\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function D50_to_D65(n){return multiplyMatrices(t,n)}const n=[1.0479297925449969,.022946870601609652,-.05019226628920524,.02962780877005599,.9904344267538799,-.017073799063418826,-.009243040646204504,.015055191490298152,.7518742814281371];\n/**\n * Bradford chromatic adaptation from D65 to D50\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html\n */function D65_to_D50(t){return multiplyMatrices(n,t)}\n/**\n * @param {number} hue - Hue as degrees 0..360\n * @param {number} sat - Saturation as percentage 0..100\n * @param {number} light - Lightness as percentage 0..100\n * @return {number[]} Array of sRGB components; in-gamut colors in range [0..1]\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hslToRgb.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hslToRgb.js\n */function HSL_to_sRGB(t){let n=t[0]%360;const _=t[1]/100,o=t[2]/100;return n<0&&(n+=360),[HSL_to_sRGB_channel(0,n,_,o),HSL_to_sRGB_channel(8,n,_,o),HSL_to_sRGB_channel(4,n,_,o)]}function HSL_to_sRGB_channel(t,n,_,o){const e=(t+n/30)%12;return o-_*Math.min(o,1-o)*Math.max(-1,Math.min(e-3,9-e,1))}\n/**\n * @param {number} hue - Hue as degrees 0..360\n * @param {number} white - Whiteness as percentage 0..100\n * @param {number} black - Blackness as percentage 0..100\n * @return {number[]} Array of RGB components 0..1\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hwbToRgb.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hwbToRgb.js\n */function HWB_to_sRGB(t){const n=t[0],_=t[1]/100,o=t[2]/100;if(_+o>=1){const t=_/(_+o);return[t,t,t]}const e=HSL_to_sRGB([n,100,50]),a=1-_-o;return[e[0]*a+_,e[1]*a+_,e[2]*a+_]}\n/**\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function LCH_to_Lab(t){const n=t[2]*Math.PI/180;return[t[0],t[1]*Math.cos(n),t[1]*Math.sin(n)]}\n/**\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function Lab_to_LCH(t){const n=180*Math.atan2(t[2],t[1])/Math.PI;return[t[0],Math.sqrt(Math.pow(t[1],2)+Math.pow(t[2],2)),n>=0?n:n+360]}const _=[.3457/.3585,1,.2958/.3585];\n/**\n * Convert Lab to D50-adapted XYZ\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n */function Lab_to_XYZ(t){const n=24389/27,o=216/24389,e=(t[0]+16)/116,a=t[1]/500+e,r=e-t[2]/200;return[(Math.pow(a,3)>o?Math.pow(a,3):(116*a-16)/n)*_[0],(t[0]>8?Math.pow((t[0]+16)/116,3):t[0]/n)*_[1],(Math.pow(r,3)>o?Math.pow(r,3):(116*r-16)/n)*_[2]]}\n/**\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js\n */function OKLCH_to_OKLab(t){const n=t[2]*Math.PI/180;return[t[0],t[1]*Math.cos(n),t[1]*Math.sin(n)]}\n/**\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js\n */function OKLab_to_OKLCH(t){const n=180*Math.atan2(t[2],t[1])/Math.PI;return[t[0],Math.sqrt(t[1]**2+t[2]**2),n>=0?n:n+360]}const o=[1.2268798758459243,-.5578149944602171,.2813910456659647,-.0405757452148008,1.112286803280317,-.0717110580655164,-.0763729366746601,-.4214933324022432,1.5869240198367816],e=[1,.3963377773761749,.2158037573099136,1,-.1055613458156586,-.0638541728258133,1,-.0894841775298119,-1.2914855480194092];\n/**\n * Given OKLab, convert to XYZ relative to D65\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js\n */\nfunction OKLab_to_XYZ(t){const n=multiplyMatrices(e,t);return multiplyMatrices(o,[n[0]**3,n[1]**3,n[2]**3])}\n/**\n * Assuming XYZ is relative to D50, convert to CIE Lab\n * from CIE standard, which now defines these as a rational fraction\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function XYZ_to_Lab(t){const n=compute_f(t[0]/_[0]),o=compute_f(t[1]/_[1]);return[116*o-16,500*(n-o),200*(o-compute_f(t[2]/_[2]))]}const a=216/24389,r=24389/27;function compute_f(t){return t>a?Math.cbrt(t):(r*t+16)/116}const l=[.819022437996703,.3619062600528904,-.1288737815209879,.0329836539323885,.9292868615863434,.0361446663506424,.0481771893596242,.2642395317527308,.6335478284694309],i=[.210454268309314,.7936177747023054,-.0040720430116193,1.9779985324311684,-2.42859224204858,.450593709617411,.0259040424655478,.7827717124575296,-.8086757549230774];\n/**\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n *\n * XYZ <-> LMS matrices recalculated for consistent reference white\n * @see https://github.com/w3c/csswg-drafts/issues/6642#issuecomment-943521484\n */\nfunction XYZ_to_OKLab(t){const n=multiplyMatrices(l,t);return multiplyMatrices(i,[Math.cbrt(n[0]),Math.cbrt(n[1]),Math.cbrt(n[2])])}const c=[30757411/17917100,-6372589/17917100,-4539589/17917100,-.666684351832489,1.616481236634939,467509/29648200,792561/44930125,-1921689/44930125,.942103121235474];\n/**\n * Convert XYZ to linear-light rec2020\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */const u=[446124/178915,-333277/357830,-72051/178915,-14852/17905,63121/35810,423/17905,11844/330415,-50337/660830,316169/330415];\n/**\n * Convert XYZ to linear-light P3\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function XYZ_to_lin_P3(t){return multiplyMatrices(u,t)}const s=[1.3457868816471583,-.25557208737979464,-.05110186497554526,-.5446307051249019,1.5082477428451468,.02052744743642139,0,0,1.2119675456389452];\n/**\n * Convert D50 XYZ to linear-light prophoto-rgb\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n */const h=[1829569/896150,-506331/896150,-308931/896150,-851781/878810,1648619/878810,36519/878810,16779/1248040,-147721/1248040,1266979/1248040];\n/**\n * Convert XYZ to linear-light a98-rgb\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */const m=[12831/3959,-329/214,-1974/3959,-851781/878810,1648619/878810,36519/878810,705/12673,-2585/12673,705/667];\n/**\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function XYZ_to_lin_sRGB(t){return multiplyMatrices(m,t)}\n/**\n * Convert an array of linear-light rec2020 RGB in the range 0.0-1.0\n * to gamma corrected form ITU-R BT.2020-2 p.4\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */const D=1.09929682680944,b=.018053968510807;function gam_2020_channel(t){const n=t<0?-1:1,_=Math.abs(t);return _>b?n*(D*Math.pow(_,.45)-(D-1)):4.5*t}\n/**\n * Convert an array of linear-light sRGB values in the range 0.0-1.0 to gamma corrected form\n * Extended transfer function:\n * For negative values, linear portion extends on reflection\n * of axis, then uses reflected pow below that\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see https://en.wikipedia.org/wiki/SRGB\n */function gam_sRGB(t){return[gam_sRGB_channel(t[0]),gam_sRGB_channel(t[1]),gam_sRGB_channel(t[2])]}function gam_sRGB_channel(t){const n=t<0?-1:1,_=Math.abs(t);return _>.0031308?n*(1.055*Math.pow(_,1/2.4)-.055):12.92*t}\n/**\n * Convert an array of linear-light display-p3 RGB in the range 0.0-1.0\n * to gamma corrected form\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function gam_P3(t){return gam_sRGB(t)}\n/**\n * Convert an array of linear-light prophoto-rgb in the range 0.0-1.0\n * to gamma corrected form.\n * Transfer curve is gamma 1.8 with a small linear portion.\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */const g=1/512;function gam_ProPhoto_channel(t){const n=t<0?-1:1,_=Math.abs(t);return _>=g?n*Math.pow(_,1/1.8):16*t}\n/**\n * Convert an array of linear-light a98-rgb in the range 0.0-1.0\n * to gamma corrected form. Negative values are also now accepted\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function gam_a98rgb_channel(t){const n=t<0?-1:1,_=Math.abs(t);return n*Math.pow(_,256/563)}\n/**\n * Convert an array of rec2020 RGB values in the range 0.0 - 1.0\n * to linear light (un-companded) form.\n * ITU-R BT.2020-2 p.4\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */const f=1.09929682680944,X=.018053968510807;function lin_2020_channel(t){const n=t<0?-1:1,_=Math.abs(t);return _<4.5*X?t/4.5:n*Math.pow((_+f-1)/f,1/.45)}const Y=[63426534/99577255,20160776/139408157,47086771/278816314,26158966/99577255,.677998071518871,8267143/139408157,0,19567812/697040785,1.0609850577107909];\n/**\n * Convert an array of linear-light rec2020 values to CIE XYZ\n * using D65 (no chromatic adaptation)\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n */\n/**\n * Convert an array of of sRGB values where in-gamut values are in the range\n * [0 - 1] to linear light (un-companded) form.\n * Extended transfer function:\n * For negative values, linear portion is extended on reflection of axis,\n * then reflected power function is used.\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see https://en.wikipedia.org/wiki/SRGB\n */\nfunction lin_sRGB(t){return[lin_sRGB_channel(t[0]),lin_sRGB_channel(t[1]),lin_sRGB_channel(t[2])]}function lin_sRGB_channel(t){const n=t<0?-1:1,_=Math.abs(t);return _<=.04045?t/12.92:n*Math.pow((_+.055)/1.055,2.4)}\n/**\n * Convert an array of display-p3 RGB values in the range 0.0 - 1.0\n * to linear light (un-companded) form.\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function lin_P3(t){return lin_sRGB(t)}const Z=[608311/1250200,189793/714400,198249/1000160,35783/156275,247089/357200,198249/2500400,0,32229/714400,5220557/5000800];\n/**\n * Convert an array of linear-light display-p3 values to CIE XYZ\n * using D65 (no chromatic adaptation)\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n */function lin_P3_to_XYZ(t){return multiplyMatrices(Z,t)}\n/**\n * Convert an array of prophoto-rgb values where in-gamut Colors are in the\n * range [0.0 - 1.0] to linear light (un-companded) form. Transfer curve is\n * gamma 1.8 with a small linear portion. Extended transfer function\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */const M=16/512;function lin_ProPhoto_channel(t){const n=t<0?-1:1,_=Math.abs(t);return _<=M?t/16:n*Math.pow(_,1.8)}const p=[.7977666449006423,.13518129740053308,.0313477341283922,.2880748288194013,.711835234241873,8993693872564e-17,0,0,.8251046025104602];\n/**\n * Convert an array of linear-light prophoto-rgb values to CIE D50 XYZ.\n * Matrix cannot be expressed in rational form, but is calculated to 64 bit accuracy.\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see see https://github.com/w3c/csswg-drafts/issues/7675\n */function lin_a98rgb_channel(t){const n=t<0?-1:1,_=Math.abs(t);return n*Math.pow(_,563/256)}const d=[573536/994567,263643/1420810,187206/994567,591459/1989134,6239551/9945670,374412/4972835,53769/1989134,351524/4972835,4929758/4972835];\n/**\n * Convert an array of linear-light a98-rgb values to CIE XYZ\n * http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n * has greater numerical precision than section 4.3.5.3 of\n * https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf\n * but the values below were calculated from first principles\n * from the chromaticity coordinates of R G B W\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html\n * @see https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf\n * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/matrixmaker.html\n */const L=[506752/1228815,87881/245763,12673/70218,87098/409605,175762/245763,12673/175545,7918/409605,87881/737289,1001167/1053270];\n/**\n * Convert an array of linear-light sRGB values to CIE XYZ\n * using sRGB's own white, D65 (no chromatic adaptation)\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */function lin_sRGB_to_XYZ(t){return multiplyMatrices(L,t)}\n/**\n * Convert an array of gamma-corrected sRGB values in the 0.0 to 1.0 range to HSL.\n *\n * @param {Color} RGB [r, g, b]\n * - Red component 0..1\n * - Green component 0..1\n * - Blue component 0..1\n * @return {number[]} Array of HSL values: Hue as degrees 0..360, Saturation and Lightness as percentages 0..100\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n *\n * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/better-rgbToHsl.js\n */function sRGB_to_HSL(t){const n=t[0],_=t[1],o=t[2],e=Math.max(n,_,o),a=Math.min(n,_,o),r=(a+e)/2,l=e-a;let i=Number.NaN,c=0;if(0!==Math.round(1e5*l)){const t=Math.round(1e5*r);switch(c=0===t||1e5===t?0:(e-r)/Math.min(r,1-r),e){case n:i=(_-o)/l+(_<o?6:0);break;case _:i=(o-n)/l+2;break;case o:i=(n-_)/l+4}i*=60}return c<0&&(i+=180,c=Math.abs(c)),i>=360&&(i-=360),[i,100*c,100*r]}function sRGB_to_Hue(t){const n=t[0],_=t[1],o=t[2],e=Math.max(n,_,o),a=Math.min(n,_,o);let r=Number.NaN;const l=e-a;if(0!==l){switch(e){case n:r=(_-o)/l+(_<o?6:0);break;case _:r=(o-n)/l+2;break;case o:r=(n-_)/l+4}r*=60}return r>=360&&(r-=360),r}function sRGB_to_XYZ_D50(t){let n=t;return n=lin_sRGB(n),n=lin_sRGB_to_XYZ(n),n=D65_to_D50(n),n}function XYZ_D50_to_sRGB(t){let n=t;return n=D50_to_D65(n),n=XYZ_to_lin_sRGB(n),n=gam_sRGB(n),n}function HSL_to_XYZ_D50(t){let n=t;return n=HSL_to_sRGB(n),n=lin_sRGB(n),n=lin_sRGB_to_XYZ(n),n=D65_to_D50(n),n}function XYZ_D50_to_HSL(t){let n=t;return n=D50_to_D65(n),n=XYZ_to_lin_sRGB(n),n=gam_sRGB(n),n=sRGB_to_HSL(n),n}function HWB_to_XYZ_D50(t){let n=t;return n=HWB_to_sRGB(n),n=lin_sRGB(n),n=lin_sRGB_to_XYZ(n),n=D65_to_D50(n),n}function XYZ_D50_to_HWB(t){let n=t;n=D50_to_D65(n),n=XYZ_to_lin_sRGB(n);const _=gam_sRGB(n),o=Math.min(_[0],_[1],_[2]),e=1-Math.max(_[0],_[1],_[2]);return[sRGB_to_Hue(_),100*o,100*e]}function Lab_to_XYZ_D50(t){let n=t;return n=Lab_to_XYZ(n),n}function XYZ_D50_to_Lab(t){let n=t;return n=XYZ_to_Lab(n),n}function LCH_to_XYZ_D50(t){let n=t;return n=LCH_to_Lab(n),n=Lab_to_XYZ(n),n}function XYZ_D50_to_LCH(t){let n=t;return n=XYZ_to_Lab(n),n=Lab_to_LCH(n),n}function OKLab_to_XYZ_D50(t){let n=t;return n=OKLab_to_XYZ(n),n=D65_to_D50(n),n}function XYZ_D50_to_OKLab(t){let n=t;return n=D50_to_D65(n),n=XYZ_to_OKLab(n),n}function OKLCH_to_XYZ_D50(t){let n=t;return n=OKLCH_to_OKLab(n),n=OKLab_to_XYZ(n),n=D65_to_D50(n),n}function XYZ_D50_to_OKLCH(t){let n=t;return n=D50_to_D65(n),n=XYZ_to_OKLab(n),n=OKLab_to_OKLCH(n),n}function lin_sRGB_to_XYZ_D50(t){let n=t;return n=lin_sRGB_to_XYZ(n),n=D65_to_D50(n),n}function XYZ_D50_to_lin_sRGB(t){let n=t;return n=D50_to_D65(n),n=XYZ_to_lin_sRGB(n),n}function a98_RGB_to_XYZ_D50(t){let n=t;\n/**\n * Convert an array of a98-rgb values in the range 0.0 - 1.0\n * to linear light (un-companded) form. Negative values are also now accepted\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n */\nvar _;return n=[lin_a98rgb_channel((_=n)[0]),lin_a98rgb_channel(_[1]),lin_a98rgb_channel(_[2])],n=multiplyMatrices(d,n),n=D65_to_D50(n),n}function XYZ_D50_to_a98_RGB(t){let n=t;var _;return n=D50_to_D65(n),n=multiplyMatrices(h,n),n=[gam_a98rgb_channel((_=n)[0]),gam_a98rgb_channel(_[1]),gam_a98rgb_channel(_[2])],n}function P3_to_XYZ_D50(t){let n=t;return n=lin_P3(n),n=lin_P3_to_XYZ(n),n=D65_to_D50(n),n}function XYZ_D50_to_P3(t){let n=t;return n=D50_to_D65(n),n=XYZ_to_lin_P3(n),n=gam_P3(n),n}function rec_2020_to_XYZ_D50(t){let n=t;var _;return n=[lin_2020_channel((_=n)[0]),lin_2020_channel(_[1]),lin_2020_channel(_[2])],n=multiplyMatrices(Y,n),n=D65_to_D50(n),n}function XYZ_D50_to_rec_2020(t){let n=t;var _;return n=D50_to_D65(n),n=multiplyMatrices(c,n),n=[gam_2020_channel((_=n)[0]),gam_2020_channel(_[1]),gam_2020_channel(_[2])],n}function ProPhoto_RGB_to_XYZ_D50(t){let n=t;var _;return n=[lin_ProPhoto_channel((_=n)[0]),lin_ProPhoto_channel(_[1]),lin_ProPhoto_channel(_[2])],n=multiplyMatrices(p,n),n}function XYZ_D50_to_ProPhoto(t){let n=t;var _;return n=multiplyMatrices(s,n),n=[gam_ProPhoto_channel((_=n)[0]),gam_ProPhoto_channel(_[1]),gam_ProPhoto_channel(_[2])],n}function XYZ_D65_to_XYZ_D50(t){let n=t;return n=D65_to_D50(n),n}function XYZ_D50_to_XYZ_D65(t){let n=t;return n=D50_to_D65(n),n}function XYZ_D50_to_XYZ_D50(t){return t}function inGamut(t){return t[0]>=-1e-4&&t[0]<=1.0001&&t[1]>=-1e-4&&t[1]<=1.0001&&t[2]>=-1e-4&&t[2]<=1.0001}function clip(t){return[t[0]<0?0:t[0]>1?1:t[0],t[1]<0?0:t[1]>1?1:t[1],t[2]<0?0:t[2]>1?1:t[2]]}\n/**\n * @description Calculate deltaE OK which is the simple root sum of squares\n * @param {number[]} reference - Array of OKLab values: L as 0..1, a and b as -1..1\n * @param {number[]} sample - Array of OKLab values: L as 0..1, a and b as -1..1\n * @return {number} How different a color sample is from reference\n *\n * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang).\n * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js\n */function deltaEOK(t,n){const[_,o,e]=t,[a,r,l]=n,i=_-a,c=o-r,u=e-l;return Math.sqrt(i**2+c**2+u**2)}const B=.02,G=1e-4;function mapGamut(t,n,_){const o=t;let e=clip(n(o)),a=deltaEOK(OKLCH_to_OKLab(_(e)),OKLCH_to_OKLab(o));if(a<B)return e;let r=0,l=o[1],i=!0;for(;l-r>G;){const t=(r+l)/2;if(o[1]=t,i&&inGamut(n(o)))r=t;else if(e=clip(n(o)),a=deltaEOK(OKLCH_to_OKLab(_(e)),OKLCH_to_OKLab(o)),a<B){if(B-a<G)return e;i=!1,r=t}else l=t}return clip(n([...o]))}\n/**\n * @license MIT https://github.com/facelessuser/coloraide/blob/main/LICENSE.md\n */function mapGamutRayTrace(t,n,_){const o=t[0],e=t[2];let a=n(t);const r=n([o,0,e]);for(let t=0;t<4;t++){if(t>0){const t=_(a);t[0]=o,t[2]=e,a=n(t)}const l=rayTraceBox(r,a);if(!l)break;a=l}return clip(a)}function rayTraceBox(t,n){let _=1/0,o=-1/0;const e=[0,0,0];for(let a=0;a<3;a++){const r=t[a],l=n[a]-r;e[a]=l;const i=0,c=1;if(l){const t=1/l,n=(i-r)*t,e=(c-r)*t;o=Math.max(Math.min(n,e),o),_=Math.min(Math.max(n,e),_)}else if(r<i||r>c)return!1}return!(o>_||_<0)&&(o<0&&(o=_),!!isFinite(o)&&[t[0]+e[0]*o,t[1]+e[1]*o,t[2]+e[2]*o])}const R={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function luminance(t){const[n,_,o]=t.map((t=>t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)));return.2126*n+.7152*_+.0722*o}function contrast_ratio_wcag_2_1(t,n){const _=luminance(t),o=luminance(n);return(Math.max(_,o)+.05)/(Math.min(_,o)+.05)}export{HSL_to_XYZ_D50,HWB_to_XYZ_D50,LCH_to_XYZ_D50,Lab_to_XYZ_D50,OKLCH_to_OKLab,OKLCH_to_XYZ_D50,OKLab_to_OKLCH,OKLab_to_XYZ,OKLab_to_XYZ_D50,P3_to_XYZ_D50,ProPhoto_RGB_to_XYZ_D50,XYZ_D50_to_HSL,XYZ_D50_to_HWB,XYZ_D50_to_LCH,XYZ_D50_to_Lab,XYZ_D50_to_OKLCH,XYZ_D50_to_OKLab,XYZ_D50_to_P3,XYZ_D50_to_ProPhoto,XYZ_D50_to_XYZ_D50,XYZ_D50_to_XYZ_D65,XYZ_D50_to_a98_RGB,XYZ_D50_to_lin_sRGB,XYZ_D50_to_rec_2020,XYZ_D50_to_sRGB,XYZ_D65_to_XYZ_D50,XYZ_to_OKLab,XYZ_to_lin_P3,XYZ_to_lin_sRGB,a98_RGB_to_XYZ_D50,clip,contrast_ratio_wcag_2_1,gam_P3,gam_sRGB,inGamut,lin_P3,lin_P3_to_XYZ,lin_sRGB,lin_sRGB_to_XYZ,lin_sRGB_to_XYZ_D50,mapGamut,mapGamutRayTrace,R as namedColors,rec_2020_to_XYZ_D50,sRGB_to_XYZ_D50};\n","import{TokenType as e,NumberType as a,isTokenIdent as n,isTokenPercentage as r,isTokenNumber as o,isTokenDelim as t,isTokenNumeric as l,isTokenComma as s,isTokenDimension as u,isTokenHash as c}from\"@csstools/css-tokenizer\";import{XYZ_D50_to_XYZ_D65 as i,XYZ_D50_to_XYZ_D50 as h,XYZ_D50_to_OKLab as m,XYZ_D50_to_OKLCH as N,XYZ_D50_to_LCH as p,XYZ_D50_to_Lab as b,XYZ_D50_to_HWB as v,XYZ_D50_to_HSL as g,XYZ_D50_to_a98_RGB as f,XYZ_D50_to_ProPhoto as d,XYZ_D50_to_rec_2020 as y,XYZ_D50_to_P3 as _,XYZ_D50_to_lin_sRGB as C,XYZ_D50_to_sRGB as w,XYZ_D65_to_XYZ_D50 as x,OKLCH_to_XYZ_D50 as H,LCH_to_XYZ_D50 as L,OKLab_to_XYZ_D50 as k,Lab_to_XYZ_D50 as P,HWB_to_XYZ_D50 as S,HSL_to_XYZ_D50 as z,ProPhoto_RGB_to_XYZ_D50 as D,a98_RGB_to_XYZ_D50 as F,rec_2020_to_XYZ_D50 as Z,P3_to_XYZ_D50 as M,lin_sRGB_to_XYZ_D50 as R,sRGB_to_XYZ_D50 as B,namedColors as G,inGamut as T,clip as V,gam_sRGB as A,mapGamutRayTrace as X,OKLCH_to_OKLab as Y,OKLab_to_XYZ as K,XYZ_to_lin_sRGB as I,lin_sRGB_to_XYZ as O,XYZ_to_OKLab as E,OKLab_to_OKLCH as W,contrast_ratio_wcag_2_1 as U,gam_P3 as $,XYZ_to_lin_P3 as j,lin_P3_to_XYZ as q}from\"@csstools/color-helpers\";import{isWhitespaceNode as J,isCommentNode as Q,isTokenNode as ee,isFunctionNode as ae,TokenNode as ne,FunctionNode as re,WhitespaceNode as oe}from\"@csstools/css-parser-algorithms\";import{mathFunctionNames as te,calcFromComponentValues as le}from\"@csstools/css-calc\";var se,ue;function convertNaNToZero(e){return[Number.isNaN(e[0])?0:e[0],Number.isNaN(e[1])?0:e[1],Number.isNaN(e[2])?0:e[2]]}function colorData_to_XYZ_D50(e){switch(e.colorNotation){case se.HEX:case se.RGB:case se.sRGB:return{...e,colorNotation:se.XYZ_D50,channels:B(convertNaNToZero(e.channels))};case se.Linear_sRGB:return{...e,colorNotation:se.XYZ_D50,channels:R(convertNaNToZero(e.channels))};case se.Display_P3:return{...e,colorNotation:se.XYZ_D50,channels:M(convertNaNToZero(e.channels))};case se.Rec2020:return{...e,colorNotation:se.XYZ_D50,channels:Z(convertNaNToZero(e.channels))};case se.A98_RGB:return{...e,colorNotation:se.XYZ_D50,channels:F(convertNaNToZero(e.channels))};case se.ProPhoto_RGB:return{...e,colorNotation:se.XYZ_D50,channels:D(convertNaNToZero(e.channels))};case se.HSL:return{...e,colorNotation:se.XYZ_D50,channels:z(convertNaNToZero(e.channels))};case se.HWB:return{...e,colorNotation:se.XYZ_D50,channels:S(convertNaNToZero(e.channels))};case se.Lab:return{...e,colorNotation:se.XYZ_D50,channels:P(convertNaNToZero(e.channels))};case se.OKLab:return{...e,colorNotation:se.XYZ_D50,channels:k(convertNaNToZero(e.channels))};case se.LCH:return{...e,colorNotation:se.XYZ_D50,channels:L(convertNaNToZero(e.channels))};case se.OKLCH:return{...e,colorNotation:se.XYZ_D50,channels:H(convertNaNToZero(e.channels))};case se.XYZ_D50:return{...e,colorNotation:se.XYZ_D50,channels:h(convertNaNToZero(e.channels))};case se.XYZ_D65:return{...e,colorNotation:se.XYZ_D50,channels:x(convertNaNToZero(e.channels))};default:throw new Error(\"Unsupported color notation\")}}!function(e){e.A98_RGB=\"a98-rgb\",e.Display_P3=\"display-p3\",e.HEX=\"hex\",e.HSL=\"hsl\",e.HWB=\"hwb\",e.LCH=\"lch\",e.Lab=\"lab\",e.Linear_sRGB=\"srgb-linear\",e.OKLCH=\"oklch\",e.OKLab=\"oklab\",e.ProPhoto_RGB=\"prophoto-rgb\",e.RGB=\"rgb\",e.sRGB=\"srgb\",e.Rec2020=\"rec2020\",e.XYZ_D50=\"xyz-d50\",e.XYZ_D65=\"xyz-d65\"}(se||(se={})),function(e){e.ColorKeyword=\"color-keyword\",e.HasAlpha=\"has-alpha\",e.HasDimensionValues=\"has-dimension-values\",e.HasNoneKeywords=\"has-none-keywords\",e.HasNumberValues=\"has-number-values\",e.HasPercentageAlpha=\"has-percentage-alpha\",e.HasPercentageValues=\"has-percentage-values\",e.HasVariableAlpha=\"has-variable-alpha\",e.Hex=\"hex\",e.LegacyHSL=\"legacy-hsl\",e.LegacyRGB=\"legacy-rgb\",e.NamedColor=\"named-color\",e.RelativeColorSyntax=\"relative-color-syntax\",e.ColorMix=\"color-mix\",e.ContrastColor=\"contrast-color\",e.Experimental=\"experimental\"}(ue||(ue={}));const ce=new Set([se.A98_RGB,se.Display_P3,se.HEX,se.Linear_sRGB,se.ProPhoto_RGB,se.RGB,se.sRGB,se.Rec2020,se.XYZ_D50,se.XYZ_D65]);function colorDataTo(e,a){const n={...e};if(e.colorNotation!==a){const e=colorData_to_XYZ_D50(n);switch(a){case se.HEX:case se.RGB:n.colorNotation=se.RGB,n.channels=w(e.channels);break;case se.sRGB:n.colorNotation=se.sRGB,n.channels=w(e.channels);break;case se.Linear_sRGB:n.colorNotation=se.Linear_sRGB,n.channels=C(e.channels);break;case se.Display_P3:n.colorNotation=se.Display_P3,n.channels=_(e.channels);break;case se.Rec2020:n.colorNotation=se.Rec2020,n.channels=y(e.channels);break;case se.ProPhoto_RGB:n.colorNotation=se.ProPhoto_RGB,n.channels=d(e.channels);break;case se.A98_RGB:n.colorNotation=se.A98_RGB,n.channels=f(e.channels);break;case se.HSL:n.colorNotation=se.HSL,n.channels=g(e.channels);break;case se.HWB:n.colorNotation=se.HWB,n.channels=v(e.channels);break;case se.Lab:n.colorNotation=se.Lab,n.channels=b(e.channels);break;case se.LCH:n.colorNotation=se.LCH,n.channels=p(e.channels);break;case se.OKLCH:n.colorNotation=se.OKLCH,n.channels=N(e.channels);break;case se.OKLab:n.colorNotation=se.OKLab,n.channels=m(e.channels);break;case se.XYZ_D50:n.colorNotation=se.XYZ_D50,n.channels=h(e.channels);break;case se.XYZ_D65:n.colorNotation=se.XYZ_D65,n.channels=i(e.channels);break;default:throw new Error(\"Unsupported color notation\")}}else n.channels=convertNaNToZero(e.channels);if(a===e.colorNotation)n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[0,1,2]);else if(ce.has(a)&&ce.has(e.colorNotation))n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[0,1,2]);else switch(a){case se.HSL:switch(e.colorNotation){case se.HWB:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[0]);break;case se.Lab:case se.OKLab:n.channels=carryForwardMissingComponents(e.channels,[2],n.channels,[0]);break;case se.LCH:case se.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[2,1,0])}break;case se.HWB:switch(e.colorNotation){case se.HSL:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[0]);break;case se.LCH:case se.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[2])}break;case se.Lab:case se.OKLab:switch(e.colorNotation){case se.HSL:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[2]);break;case se.Lab:case se.OKLab:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[0,1,2]);break;case se.LCH:case se.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[0])}break;case se.LCH:case se.OKLCH:switch(e.colorNotation){case se.HSL:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[2,1,0]);break;case se.HWB:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[2]);break;case se.Lab:case se.OKLab:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[0]);break;case se.LCH:case se.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[0,1,2])}}return n.channels=convertPowerlessComponentsToMissingComponents(n.channels,a),n}function convertPowerlessComponentsToMissingComponents(e,a){const n=[...e];switch(a){case se.HSL:!Number.isNaN(n[1])&&reducePrecision(n[1],4)<=0&&(n[0]=Number.NaN);break;case se.HWB:Math.max(0,reducePrecision(n[1],4))+Math.max(0,reducePrecision(n[2],4))>=100&&(n[0]=Number.NaN);break;case se.LCH:!Number.isNaN(n[1])&&reducePrecision(n[1],4)<=0&&(n[2]=Number.NaN);break;case se.OKLCH:!Number.isNaN(n[1])&&reducePrecision(n[1],6)<=0&&(n[2]=Number.NaN)}return n}function convertPowerlessComponentsToZeroValuesForDisplay(e,a){const n=[...e];switch(a){case se.HSL:(reducePrecision(n[2])<=0||reducePrecision(n[2])>=100)&&(n[0]=Number.NaN,n[1]=Number.NaN),reducePrecision(n[1])<=0&&(n[0]=Number.NaN);break;case se.HWB:Math.max(0,reducePrecision(n[1]))+Math.max(0,reducePrecision(n[2]))>=100&&(n[0]=Number.NaN);break;case se.Lab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=Number.NaN,n[2]=Number.NaN);break;case se.LCH:reducePrecision(n[1])<=0&&(n[2]=Number.NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=Number.NaN,n[2]=Number.NaN);break;case se.OKLab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=Number.NaN,n[2]=Number.NaN);break;case se.OKLCH:reducePrecision(n[1])<=0&&(n[2]=Number.NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=Number.NaN,n[2]=Number.NaN)}return n}function carryForwardMissingComponents(e,a,n,r){const o=[...n];for(const n of a)Number.isNaN(e[a[n]])&&(o[r[n]]=Number.NaN);return o}function normalizeRelativeColorDataChannels(e){const a=new Map;switch(e.colorNotation){case se.RGB:case se.HEX:a.set(\"r\",dummyNumberToken(255*e.channels[0])),a.set(\"g\",dummyNumberToken(255*e.channels[1])),a.set(\"b\",dummyNumberToken(255*e.channels[2])),\"number\"==typeof e.alpha&&a.set(\"alpha\",dummyNumberToken(e.alpha));break;case se.HSL:a.set(\"h\",dummyNumberToken(e.channels[0])),a.set(\"s\",dummyNumberToken(e.channels[1])),a.set(\"l\",dummyNumberToken(e.channels[2])),\"number\"==typeof e.alpha&&a.set(\"alpha\",dummyNumberToken(e.alpha));break;case se.HWB:a.set(\"h\",dummyNumberToken(e.channels[0])),a.set(\"w\",dummyNumberToken(e.channels[1])),a.set(\"b\",dummyNumberToken(e.channels[2])),\"number\"==typeof e.alpha&&a.set(\"alpha\",dummyNumberToken(e.alpha));break;case se.Lab:case se.OKLab:a.set(\"l\",dummyNumberToken(e.channels[0])),a.set(\"a\",dummyNumberToken(e.channels[1])),a.set(\"b\",dummyNumberToken(e.channels[2])),\"number\"==typeof e.alpha&&a.set(\"alpha\",dummyNumberToken(e.alpha));break;case se.LCH:case se.OKLCH:a.set(\"l\",dummyNumberToken(e.channels[0])),a.set(\"c\",dummyNumberToken(e.channels[1])),a.set(\"h\",dummyNumberToken(e.channels[2])),\"number\"==typeof e.alpha&&a.set(\"alpha\",dummyNumberToken(e.alpha));break;case se.sRGB:case se.A98_RGB:case se.Display_P3:case se.Rec2020:case se.Linear_sRGB:case se.ProPhoto_RGB:a.set(\"r\",dummyNumberToken(e.channels[0])),a.set(\"g\",dummyNumberToken(e.channels[1])),a.set(\"b\",dummyNumberToken(e.channels[2])),\"number\"==typeof e.alpha&&a.set(\"alpha\",dummyNumberToken(e.alpha));break;case se.XYZ_D50:case se.XYZ_D65:a.set(\"x\",dummyNumberToken(e.channels[0])),a.set(\"y\",dummyNumberToken(e.channels[1])),a.set(\"z\",dummyNumberToken(e.channels[2])),\"number\"==typeof e.alpha&&a.set(\"alpha\",dummyNumberToken(e.alpha))}return a}function noneToZeroInRelativeColorDataChannels(e){const a=new Map(e);for(const[n,r]of e)Number.isNaN(r[4].value)&&a.set(n,dummyNumberToken(0));return a}function dummyNumberToken(n){return Number.isNaN(n)?[e.Number,\"none\",-1,-1,{value:Number.NaN,type:a.Number}]:[e.Number,n.toString(),-1,-1,{value:n,type:a.Number}]}function reducePrecision(e,a=7){if(Number.isNaN(e))return 0;const n=Math.pow(10,a);return Math.round(e*n)/n}function colorDataFitsRGB_Gamut(e){const a={...e,channels:[...e.channels]};a.channels=convertPowerlessComponentsToZeroValuesForDisplay(a.channels,a.colorNotation);return!colorDataTo(a,se.RGB).channels.find((e=>e<-1e-5||e>1.00001))}function colorDataFitsDisplayP3_Gamut(e){const a={...e,channels:[...e.channels]};a.channels=convertPowerlessComponentsToZeroValuesForDisplay(a.channels,a.colorNotation);return!colorDataTo(a,se.Display_P3).channels.find((e=>e<-1e-5||e>1.00001))}function normalize(e,a,n,r){return Math.min(Math.max(e/a,n),r)}const ie=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(ie,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}function normalize_Color_ChannelValues(t,l,s){if(n(t)&&\"none\"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(ue.HasNoneKeywords),[e.Number,\"none\",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){3!==l&&s.syntaxFlags.add(ue.HasPercentageValues);let n=normalize(t[4].value,100,-2147483647,2147483647);return 3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(ue.HasNumberValues);let n=normalize(t[4].value,1,-2147483647,2147483647);return 3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}const he=new Set([\"srgb\",\"srgb-linear\",\"display-p3\",\"a98-rgb\",\"prophoto-rgb\",\"rec2020\",\"xyz\",\"xyz-d50\",\"xyz-d65\"]);function color$1(e,a){const r=[],s=[],u=[],c=[];let i,h,m=!1,N=!1;const p={colorNotation:se.sRGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([])};let b=r;for(let o=0;o<e.value.length;o++){let v=e.value[o];if(J(v)||Q(v))for(;J(e.value[o+1])||Q(e.value[o+1]);)o++;else if(b===r&&r.length&&(b=s),b===s&&s.length&&(b=u),ee(v)&&t(v.value)&&\"/\"===v.value[4].value){if(b===c)return!1;b=c}else{if(ae(v)){if(b===c&&\"var\"===toLowerCaseAZ(v.getName())){p.syntaxFlags.add(ue.HasVariableAlpha),b.push(v);continue}if(!te.has(toLowerCaseAZ(v.getName())))return!1;const[[e]]=le([[v]],{censorIntoStandardRepresentableValues:!0,globals:h,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ee(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),v=e}if(b===r&&0===r.length&&ee(v)&&n(v.value)&&he.has(toLowerCaseAZ(v.value[4].value))){if(m)return!1;m=toLowerCaseAZ(v.value[4].value),p.colorNotation=colorSpaceNameToColorNotation(m),N&&(N.colorNotation!==p.colorNotation&&(N=colorDataTo(N,p.colorNotation)),i=normalizeRelativeColorDataChannels(N),h=noneToZeroInRelativeColorDataChannels(i))}else if(b===r&&0===r.length&&ee(v)&&n(v.value)&&\"from\"===toLowerCaseAZ(v.value[4].value)){if(N)return!1;if(m)return!1;for(;J(e.value[o+1])||Q(e.value[o+1]);)o++;if(o++,v=e.value[o],N=a(v),!1===N)return!1;N.syntaxFlags.has(ue.Experimental)&&p.syntaxFlags.add(ue.Experimental),p.syntaxFlags.add(ue.RelativeColorSyntax)}else{if(!ee(v))return!1;if(n(v.value)&&i&&i.has(toLowerCaseAZ(v.value[4].value))){b.push(new ne(i.get(toLowerCaseAZ(v.value[4].value))));continue}b.push(v)}}}if(!m)return!1;if(1!==b.length)return!1;if(1!==r.length||1!==s.length||1!==u.length)return!1;if(!ee(r[0])||!ee(s[0])||!ee(u[0]))return!1;if(i&&!i.has(\"alpha\"))return!1;const v=normalize_Color_ChannelValues(r[0].value,0,p);if(!v||!o(v))return!1;const g=normalize_Color_ChannelValues(s[0].value,1,p);if(!g||!o(g))return!1;const f=normalize_Color_ChannelValues(u[0].value,2,p);if(!f||!o(f))return!1;const d=[v,g,f];if(1===c.length)if(p.syntaxFlags.add(ue.HasAlpha),ee(c[0])){const e=normalize_Color_ChannelValues(c[0].value,3,p);if(!e||!o(e))return!1;d.push(e)}else p.alpha=c[0];else if(i&&i.has(\"alpha\")){const e=normalize_Color_ChannelValues(i.get(\"alpha\"),3,p);if(!e||!o(e))return!1;d.push(e)}return p.channels=[d[0][4].value,d[1][4].value,d[2][4].value],4===d.length&&(p.alpha=d[3][4].value),p}function colorSpaceNameToColorNotation(e){switch(e){case\"srgb\":return se.sRGB;case\"srgb-linear\":return se.Linear_sRGB;case\"display-p3\":return se.Display_P3;case\"a98-rgb\":return se.A98_RGB;case\"prophoto-rgb\":return se.ProPhoto_RGB;case\"rec2020\":return se.Rec2020;case\"xyz\":case\"xyz-d65\":return se.XYZ_D65;case\"xyz-d50\":return se.XYZ_D50;default:throw new Error(\"Unknown color space name: \"+e)}}const me=new Set([\"srgb\",\"srgb-linear\",\"display-p3\",\"a98-rgb\",\"prophoto-rgb\",\"rec2020\",\"lab\",\"oklab\",\"xyz\",\"xyz-d50\",\"xyz-d65\"]),Ne=new Set([\"hsl\",\"hwb\",\"lch\",\"oklch\"]),pe=new Set([\"shorter\",\"longer\",\"increasing\",\"decreasing\"]);function colorMix(e,a){let r=null,o=null,t=null,l=!1;for(let u=0;u<e.value.length;u++){const c=e.value[u];if(!J(c)&&!Q(c)){if(ee(c)&&n(c.value)){if(!r&&\"in\"===toLowerCaseAZ(c.value[4].value)){r=c;continue}if(r&&!o){o=toLowerCaseAZ(c.value[4].value);continue}if(r&&o&&!t&&Ne.has(o)){t=toLowerCaseAZ(c.value[4].value);continue}if(r&&o&&t&&!l&&\"hue\"===toLowerCaseAZ(c.value[4].value)){l=!0;continue}return!1}return!(!ee(c)||!s(c.value))&&(!!o&&(t||l?!!(o&&t&&l&&Ne.has(o)&&pe.has(t))&&colorMixPolar(o,t,colorMixComponents(e.value.slice(u+1),a)):me.has(o)?colorMixRectangular(o,colorMixComponents(e.value.slice(u+1),a)):!!Ne.has(o)&&colorMixPolar(o,\"shorter\",colorMixComponents(e.value.slice(u+1),a))))}}return!1}function colorMixComponents(e,a){const n=[];let o=1,t=!1,u=!1;for(let o=0;o<e.length;o++){let c=e[o];if(!J(c)&&!Q(c)){if(!ee(c)||!s(c.value)){if(!t){const e=a(c);if(e){t=e;continue}}if(!u){if(ae(c)&&te.has(toLowerCaseAZ(c.getName()))){if([[c]]=le([[c]],{censorIntoStandardRepresentableValues:!0,precision:-1,toCanonicalUnits:!0,rawPercentages:!0}),!c||!ee(c)||!l(c.value))return!1;Number.isNaN(c.value[4].value)&&(c.value[4].value=0)}if(ee(c)&&r(c.value)&&c.value[4].value>=0){u=c.value[4].value;continue}}return!1}if(!t)return!1;n.push({color:t,percentage:u}),t=!1,u=!1}}if(t&&n.push({color:t,percentage:u}),2!==n.length)return!1;let c=n[0].percentage,i=n[1].percentage;return(!1===c||!(c<0||c>100))&&((!1===i||!(i<0||i>100))&&(!1===c&&!1===i?(c=50,i=50):!1!==c&&!1===i?i=100-c:!1===c&&!1!==i&&(c=100-i),(0!==c||0!==i)&&(!1!==c&&!1!==i&&(c+i>100&&(c=c/(c+i)*100,i=i/(c+i)*100),c+i<100&&(o=(c+i)/100,c=c/(c+i)*100,i=i/(c+i)*100),{a:{color:n[0].color,percentage:c},b:{color:n[1].color,percentage:i},alphaMultiplier:o}))))}function colorMixRectangular(e,a){if(!a)return!1;const n=a.a.color,r=a.b.color,o=a.a.percentage/100;let t=n.channels,l=r.channels,s=se.RGB,u=n.alpha;if(\"number\"!=typeof u)return!1;let c=r.alpha;if(\"number\"!=typeof c)return!1;switch(u=Number.isNaN(u)?c:u,c=Number.isNaN(c)?u:c,e){case\"srgb\":s=se.RGB;break;case\"srgb-linear\":s=se.Linear_sRGB;break;case\"display-p3\":s=se.Display_P3;break;case\"a98-rgb\":s=se.A98_RGB;break;case\"prophoto-rgb\":s=se.ProPhoto_RGB;break;case\"rec2020\":s=se.Rec2020;break;case\"lab\":s=se.Lab;break;case\"oklab\":s=se.OKLab;break;case\"xyz-d50\":s=se.XYZ_D50;break;case\"xyz\":case\"xyz-d65\":s=se.XYZ_D65}t=colorDataTo(n,s).channels,l=colorDataTo(r,s).channels,t[0]=fillInMissingComponent(t[0],l[0]),l[0]=fillInMissingComponent(l[0],t[0]),t[1]=fillInMissingComponent(t[1],l[1]),l[1]=fillInMissingComponent(l[1],t[1]),t[2]=fillInMissingComponent(t[2],l[2]),l[2]=fillInMissingComponent(l[2],t[2]),t[0]=premultiply(t[0],u),t[1]=premultiply(t[1],u),t[2]=premultiply(t[2],u),l[0]=premultiply(l[0],c),l[1]=premultiply(l[1],c),l[2]=premultiply(l[2],c);const i=interpolate(u,c,o),h={colorNotation:s,channels:[un_premultiply(interpolate(t[0],l[0],o),i),un_premultiply(interpolate(t[1],l[1],o),i),un_premultiply(interpolate(t[2],l[2],o),i)],alpha:i*a.alphaMultiplier,syntaxFlags:new Set([ue.ColorMix])};return(a.a.color.syntaxFlags.has(ue.Experimental)||a.b.color.syntaxFlags.has(ue.Experimental))&&h.syntaxFlags.add(ue.Experimental),h}function colorMixPolar(e,a,n){if(!n)return!1;const r=n.a.color,o=n.b.color,t=n.a.percentage/100;let l=r.channels,s=o.channels,u=0,c=0,i=0,h=0,m=0,N=0,p=se.RGB,b=r.alpha;if(\"number\"!=typeof b)return!1;let v=o.alpha;if(\"number\"!=typeof v)return!1;switch(b=Number.isNaN(b)?v:b,v=Number.isNaN(v)?b:v,e){case\"hsl\":p=se.HSL;break;case\"hwb\":p=se.HWB;break;case\"lch\":p=se.LCH;break;case\"oklch\":p=se.OKLCH}switch(l=colorDataTo(r,p).channels,s=colorDataTo(o,p).channels,e){case\"hsl\":case\"hwb\":u=l[0],c=s[0],i=l[1],h=s[1],m=l[2],N=s[2];break;case\"lch\":case\"oklch\":i=l[0],h=s[0],m=l[1],N=s[1],u=l[2],c=s[2]}u=fillInMissingComponent(u,c),Number.isNaN(u)&&(u=0),c=fillInMissingComponent(c,u),Number.isNaN(c)&&(c=0),i=fillInMissingComponent(i,h),h=fillInMissingComponent(h,i),m=fillInMissingComponent(m,N),N=fillInMissingComponent(N,m);const g=c-u;switch(a){case\"shorter\":g>180?u+=360:g<-180&&(c+=360);break;case\"longer\":-180<g&&g<180&&(g>0?u+=360:c+=360);break;case\"increasing\":g<0&&(c+=360);break;case\"decreasing\":g>0&&(u+=360);break;default:throw new Error(\"Unknown hue interpolation method\")}i=premultiply(i,b),m=premultiply(m,b),h=premultiply(h,v),N=premultiply(N,v);let f=[0,0,0];const d=interpolate(b,v,t);switch(e){case\"hsl\":case\"hwb\":f=[interpolate(u,c,t),un_premultiply(interpolate(i,h,t),d),un_premultiply(interpolate(m,N,t),d)];break;case\"lch\":case\"oklch\":f=[un_premultiply(interpolate(i,h,t),d),un_premultiply(interpolate(m,N,t),d),interpolate(u,c,t)]}const y={colorNotation:p,channels:f,alpha:d*n.alphaMultiplier,syntaxFlags:new Set([ue.ColorMix])};return(n.a.color.syntaxFlags.has(ue.Experimental)||n.b.color.syntaxFlags.has(ue.Experimental))&&y.syntaxFlags.add(ue.Experimental),y}function fillInMissingComponent(e,a){return Number.isNaN(e)?a:e}function interpolate(e,a,n){return e*n+a*(1-n)}function premultiply(e,a){return Number.isNaN(a)?e:Number.isNaN(e)?Number.NaN:e*a}function un_premultiply(e,a){return 0===a||Number.isNaN(a)?e:Number.isNaN(e)?Number.NaN:e/a}function hex(e){const a=toLowerCaseAZ(e[4].value);if(a.match(/[^a-f0-9]/))return!1;const n={colorNotation:se.HEX,channels:[0,0,0],alpha:1,syntaxFlags:new Set([ue.Hex])},r=a.length;if(3===r){const e=a[0],r=a[1],o=a[2];return n.channels=[parseInt(e+e,16)/255,parseInt(r+r,16)/255,parseInt(o+o,16)/255],n}if(6===r){const e=a[0]+a[1],r=a[2]+a[3],o=a[4]+a[5];return n.channels=[parseInt(e,16)/255,parseInt(r,16)/255,parseInt(o,16)/255],n}if(4===r){const e=a[0],r=a[1],o=a[2],t=a[3];return n.channels=[parseInt(e+e,16)/255,parseInt(r+r,16)/255,parseInt(o+o,16)/255],n.alpha=parseInt(t+t,16)/255,n.syntaxFlags.add(ue.HasAlpha),n}if(8===r){const e=a[0]+a[1],r=a[2]+a[3],o=a[4]+a[5],t=a[6]+a[7];return n.channels=[parseInt(e,16)/255,parseInt(r,16)/255,parseInt(o,16)/255],n.alpha=parseInt(t,16)/255,n.syntaxFlags.add(ue.HasAlpha),n}return!1}function normalizeHue(n){if(o(n))return n[4].value=n[4].value%360,n[1]=n[4].value.toString(),n;if(u(n)){let r=n[4].value;switch(toLowerCaseAZ(n[4].unit)){case\"deg\":break;case\"rad\":r=180*n[4].value/Math.PI;break;case\"grad\":r=.9*n[4].value;break;case\"turn\":r=360*n[4].value;break;default:return!1}return r%=360,[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}return!1}function normalize_legacy_HSL_ChannelValues(n,t,l){if(0===t){const e=normalizeHue(n);return!1!==e&&(u(n)&&l.syntaxFlags.add(ue.HasDimensionValues),e)}if(r(n)){3===t?l.syntaxFlags.add(ue.HasPercentageAlpha):l.syntaxFlags.add(ue.HasPercentageValues);let r=normalize(n[4].value,1,0,100);return 3===t&&(r=normalize(n[4].value,100,0,1)),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}if(o(n)){if(3!==t)return!1;let r=normalize(n[4].value,1,0,100);return 3===t&&(r=normalize(n[4].value,1,0,1)),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}return!1}function normalize_modern_HSL_ChannelValues(t,l,s){if(n(t)&&\"none\"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(ue.HasNoneKeywords),[e.Number,\"none\",t[2],t[3],{value:Number.NaN,type:a.Number}];if(0===l){const e=normalizeHue(t);return!1!==e&&(u(t)&&s.syntaxFlags.add(ue.HasDimensionValues),e)}if(r(t)){3===l?s.syntaxFlags.add(ue.HasPercentageAlpha):s.syntaxFlags.add(ue.HasPercentageValues);let n=t[4].value;return 3===l?n=normalize(t[4].value,100,0,1):1===l&&(n=normalize(t[4].value,1,0,2147483647)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(ue.HasNumberValues);let n=t[4].value;return 3===l?n=normalize(t[4].value,1,0,1):1===l&&(n=normalize(t[4].value,1,0,2147483647)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function threeChannelLegacySyntax(e,a,n,r){const t=[],u=[],c=[],i=[],h={colorNotation:n,channels:[0,0,0],alpha:1,syntaxFlags:new Set(r)};let m=t;for(let a=0;a<e.value.length;a++){let n=e.value[a];if(!J(n)&&!Q(n)){if(ee(n)&&s(n.value)){if(m===t){m=u;continue}if(m===u){m=c;continue}if(m===c){m=i;continue}if(m===i)return!1}if(ae(n)){if(m===i&&\"var\"===n.getName().toLowerCase()){h.syntaxFlags.add(ue.HasVariableAlpha),m.push(n);continue}if(!te.has(n.getName().toLowerCase()))return!1;const[[e]]=le([[n]],{censorIntoStandardRepresentableValues:!0,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ee(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),n=e}if(!ee(n))return!1;m.push(n)}}if(1!==m.length)return!1;if(1!==t.length||1!==u.length||1!==c.length)return!1;if(!ee(t[0])||!ee(u[0])||!ee(c[0]))return!1;const N=a(t[0].value,0,h);if(!N||!o(N))return!1;const p=a(u[0].value,1,h);if(!p||!o(p))return!1;const b=a(c[0].value,2,h);if(!b||!o(b))return!1;const v=[N,p,b];if(1===i.length)if(h.syntaxFlags.add(ue.HasAlpha),ee(i[0])){const e=a(i[0].value,3,h);if(!e||!o(e))return!1;v.push(e)}else h.alpha=i[0];return h.channels=[v[0][4].value,v[1][4].value,v[2][4].value],4===v.length&&(h.alpha=v[3][4].value),h}function threeChannelSpaceSeparated(e,a,r,s,u){const c=[],i=[],h=[],m=[];let N,p,b=!1;const v={colorNotation:r,channels:[0,0,0],alpha:1,syntaxFlags:new Set(s)};let g=c;for(let a=0;a<e.value.length;a++){let o=e.value[a];if(J(o)||Q(o))for(;J(e.value[a+1])||Q(e.value[a+1]);)a++;else if(g===c&&c.length&&(g=i),g===i&&i.length&&(g=h),ee(o)&&t(o.value)&&\"/\"===o.value[4].value){if(g===m)return!1;g=m}else{if(ae(o)){if(g===m&&\"var\"===o.getName().toLowerCase()){v.syntaxFlags.add(ue.HasVariableAlpha),g.push(o);continue}if(!te.has(o.getName().toLowerCase()))return!1;const[[e]]=le([[o]],{censorIntoStandardRepresentableValues:!0,globals:p,precision:-1,toCanonicalUnits:!0,rawPercentages:!0});if(!e||!ee(e)||!l(e.value))return!1;Number.isNaN(e.value[4].value)&&(e.value[4].value=0),o=e}if(g===c&&0===c.length&&ee(o)&&n(o.value)&&\"from\"===o.value[4].value.toLowerCase()){if(b)return!1;for(;J(e.value[a+1])||Q(e.value[a+1]);)a++;if(a++,o=e.value[a],b=u(o),!1===b)return!1;b.syntaxFlags.has(ue.Experimental)&&v.syntaxFlags.add(ue.Experimental),v.syntaxFlags.add(ue.RelativeColorSyntax),b.colorNotation!==r&&(b=colorDataTo(b,r)),N=normalizeRelativeColorDataChannels(b),p=noneToZeroInRelativeColorDataChannels(N)}else{if(!ee(o))return!1;if(n(o.value)&&N){const e=o.value[4].value.toLowerCase();if(N.has(e)){g.push(new ne(N.get(e)));continue}}g.push(o)}}}if(1!==g.length)return!1;if(1!==c.length||1!==i.length||1!==h.length)return!1;if(!ee(c[0])||!ee(i[0])||!ee(h[0]))return!1;if(N&&!N.has(\"alpha\"))return!1;const f=a(c[0].value,0,v);if(!f||!o(f))return!1;const d=a(i[0].value,1,v);if(!d||!o(d))return!1;const y=a(h[0].value,2,v);if(!y||!o(y))return!1;const _=[f,d,y];if(1===m.length)if(v.syntaxFlags.add(ue.HasAlpha),ee(m[0])){const e=a(m[0].value,3,v);if(!e||!o(e))return!1;_.push(e)}else v.alpha=m[0];else if(N&&N.has(\"alpha\")){const e=a(N.get(\"alpha\"),3,v);if(!e||!o(e))return!1;_.push(e)}return v.channels=[_[0][4].value,_[1][4].value,_[2][4].value],4===_.length&&(v.alpha=_[3][4].value),v}function hsl(e,a){if(e.value.some((e=>ee(e)&&s(e.value)))){const a=hslCommaSeparated(e);if(!1!==a)return a}{const n=hslSpaceSeparated(e,a);if(!1!==n)return n}return!1}function hslCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_HSL_ChannelValues,se.HSL,[ue.LegacyHSL])}function hslSpaceSeparated(e,a){return threeChannelSpaceSeparated(e,normalize_modern_HSL_ChannelValues,se.HSL,[],a)}function normalize_HWB_ChannelValues(t,l,s){if(n(t)&&\"none\"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(ue.HasNoneKeywords),[e.Number,\"none\",t[2],t[3],{value:Number.NaN,type:a.Number}];if(0===l){const e=normalizeHue(t);return!1!==e&&(u(t)&&s.syntaxFlags.add(ue.HasDimensionValues),e)}if(r(t)){3===l?s.syntaxFlags.add(ue.HasPercentageAlpha):s.syntaxFlags.add(ue.HasPercentageValues);let n=t[4].value;return 3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(ue.HasNumberValues);let n=t[4].value;return 3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function normalize_Lab_ChannelValues(t,l,s){if(n(t)&&\"none\"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(ue.HasNoneKeywords),[e.Number,\"none\",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){3!==l&&s.syntaxFlags.add(ue.HasPercentageValues);let n=normalize(t[4].value,1,0,100);return 1===l||2===l?n=normalize(t[4].value,.8,-2147483647,2147483647):3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(ue.HasNumberValues);let n=normalize(t[4].value,1,0,100);return 1===l||2===l?n=normalize(t[4].value,1,-2147483647,2147483647):3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function lab(e,a){return threeChannelSpaceSeparated(e,normalize_Lab_ChannelValues,se.Lab,[],a)}function normalize_LCH_ChannelValues(t,l,s){if(n(t)&&\"none\"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(ue.HasNoneKeywords),[e.Number,\"none\",t[2],t[3],{value:Number.NaN,type:a.Number}];if(2===l){const e=normalizeHue(t);return!1!==e&&(u(t)&&s.syntaxFlags.add(ue.HasDimensionValues),e)}if(r(t)){3!==l&&s.syntaxFlags.add(ue.HasPercentageValues);let n=normalize(t[4].value,1,0,100);return 1===l?n=normalize(t[4].value,100/150,0,2147483647):3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(ue.HasNumberValues);let n=normalize(t[4].value,1,0,100);return 1===l?n=normalize(t[4].value,1,0,2147483647):3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function lch(e,a){return threeChannelSpaceSeparated(e,normalize_LCH_ChannelValues,se.LCH,[],a)}const be=new Map;for(const[e,a]of Object.entries(G))be.set(e,a);function namedColor(e){const a=be.get(toLowerCaseAZ(e));return!!a&&{colorNotation:se.RGB,channels:[a[0]/255,a[1]/255,a[2]/255],alpha:1,syntaxFlags:new Set([ue.ColorKeyword,ue.NamedColor])}}function normalize_OKLab_ChannelValues(t,l,s){if(n(t)&&\"none\"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(ue.HasNoneKeywords),[e.Number,\"none\",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){3!==l&&s.syntaxFlags.add(ue.HasPercentageValues);let n=normalize(t[4].value,100,0,1);return 1===l||2===l?n=normalize(t[4].value,250,-2147483647,2147483647):3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(ue.HasNumberValues);let n=normalize(t[4].value,1,0,1);return 1===l||2===l?n=normalize(t[4].value,1,-2147483647,2147483647):3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function oklab(e,a){return threeChannelSpaceSeparated(e,normalize_OKLab_ChannelValues,se.OKLab,[],a)}function normalize_OKLCH_ChannelValues(t,l,s){if(n(t)&&\"none\"===toLowerCaseAZ(t[4].value))return s.syntaxFlags.add(ue.HasNoneKeywords),[e.Number,\"none\",t[2],t[3],{value:Number.NaN,type:a.Number}];if(2===l){const e=normalizeHue(t);return!1!==e&&(u(t)&&s.syntaxFlags.add(ue.HasDimensionValues),e)}if(r(t)){3!==l&&s.syntaxFlags.add(ue.HasPercentageValues);let n=normalize(t[4].value,100,0,1);return 1===l?n=normalize(t[4].value,250,0,2147483647):3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(ue.HasNumberValues);let n=normalize(t[4].value,1,0,1);return 1===l?n=normalize(t[4].value,1,0,2147483647):3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function oklch(e,a){return threeChannelSpaceSeparated(e,normalize_OKLCH_ChannelValues,se.OKLCH,[],a)}function normalize_legacy_sRGB_ChannelValues(n,t,l){if(r(n)){3===t?l.syntaxFlags.add(ue.HasPercentageAlpha):l.syntaxFlags.add(ue.HasPercentageValues);const r=normalize(n[4].value,100,0,1);return[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}if(o(n)){3!==t&&l.syntaxFlags.add(ue.HasNumberValues);let r=normalize(n[4].value,255,0,1);return 3===t&&(r=normalize(n[4].value,1,0,1)),[e.Number,r.toString(),n[2],n[3],{value:r,type:a.Number}]}return!1}function normalize_modern_sRGB_ChannelValues(t,l,s){if(n(t)&&\"none\"===t[4].value.toLowerCase())return s.syntaxFlags.add(ue.HasNoneKeywords),[e.Number,\"none\",t[2],t[3],{value:Number.NaN,type:a.Number}];if(r(t)){3!==l&&s.syntaxFlags.add(ue.HasPercentageValues);let n=normalize(t[4].value,100,-2147483647,2147483647);return 3===l&&(n=normalize(t[4].value,100,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}if(o(t)){3!==l&&s.syntaxFlags.add(ue.HasNumberValues);let n=normalize(t[4].value,255,-2147483647,2147483647);return 3===l&&(n=normalize(t[4].value,1,0,1)),[e.Number,n.toString(),t[2],t[3],{value:n,type:a.Number}]}return!1}function rgb(e,a){if(e.value.some((e=>ee(e)&&s(e.value)))){const a=rgbCommaSeparated(e);if(!1!==a)return(!a.syntaxFlags.has(ue.HasNumberValues)||!a.syntaxFlags.has(ue.HasPercentageValues))&&a}else{const n=rgbSpaceSeparated(e,a);if(!1!==n)return n}return!1}function rgbCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_sRGB_ChannelValues,se.RGB,[ue.LegacyRGB])}function rgbSpaceSeparated(e,a){return threeChannelSpaceSeparated(e,normalize_modern_sRGB_ChannelValues,se.RGB,[],a)}function XYZ_D50_to_sRGB_Gamut(e){const a=w(e);if(T(a))return V(a);let n=e;return n=N(n),n[0]<1e-6&&(n=[0,0,0]),n[0]>.999999&&(n=[1,0,0]),A(X(n,oklch_to_lin_srgb,lin_srgb_to_oklch))}function oklch_to_lin_srgb(e){return e=Y(e),e=K(e),I(e)}function lin_srgb_to_oklch(e){return e=O(e),e=E(e),W(e)}function contrastColor(e,a){let n=!1;for(let r=0;r<e.value.length;r++){const o=e.value[r];if(!J(o)&&!Q(o)&&(n||(n=a(o),!n)))return!1}if(!n)return!1;n.channels=convertNaNToZero(n.channels),n.channels=XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(n).channels),n.colorNotation=se.sRGB;const r={colorNotation:se.sRGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([ue.ContrastColor,ue.Experimental])},o=U(n.channels,[1,1,1]),t=U(n.channels,[0,0,0]);return r.channels=o>t?[1,1,1]:[0,0,0],r}function XYZ_D50_to_P3_Gamut(e){const a=_(e);if(T(a))return V(a);let n=e;return n=N(n),n[0]<1e-6&&(n=[0,0,0]),n[0]>.999999&&(n=[1,0,0]),$(X(n,oklch_to_lin_p3,lin_p3_to_oklch))}function oklch_to_lin_p3(e){return e=Y(e),e=K(e),j(e)}function lin_p3_to_oklch(e){return e=q(e),e=E(e),W(e)}function toPrecision(e,a=7){e=+e,a=+a;const n=(Math.floor(Math.abs(e))+\"\").length;if(a>n)return+e.toFixed(a-n);{const r=10**(n-a);return Math.round(e/r)*r}}function serializeWithAlpha(n,r,o,t){const l=[e.CloseParen,\")\",-1,-1,void 0];if(\"number\"==typeof n.alpha){const s=Math.min(1,Math.max(0,toPrecision(Number.isNaN(n.alpha)?0:n.alpha)));return 1===toPrecision(s,4)?new re(r,l,t):new re(r,l,[...t,new oe([o]),new ne([e.Delim,\"/\",-1,-1,{value:\"/\"}]),new oe([o]),new ne([e.Number,toPrecision(s,4).toString(),-1,-1,{value:n.alpha,type:a.Integer}])])}return new re(r,l,[...t,new oe([o]),new ne([e.Delim,\"/\",-1,-1,{value:\"/\"}]),new oe([o]),n.alpha])}function serializeP3(n,r=!0){n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation);let o=n.channels.map((e=>Number.isNaN(e)?0:e));r?o=XYZ_D50_to_P3_Gamut(colorData_to_XYZ_D50(n).channels):n.colorNotation!==se.Display_P3&&(o=_(colorData_to_XYZ_D50(n).channels));const t=r?Math.min(1,Math.max(0,toPrecision(o[0],6))):toPrecision(o[0],6),l=r?Math.min(1,Math.max(0,toPrecision(o[1],6))):toPrecision(o[1],6),s=r?Math.min(1,Math.max(0,toPrecision(o[2],6))):toPrecision(o[2],6),u=[e.Function,\"color(\",-1,-1,{value:\"color\"}],c=[e.Whitespace,\" \",-1,-1,void 0];return serializeWithAlpha(n,u,c,[new ne([e.Ident,\"display-p3\",-1,-1,{value:\"display-p3\"}]),new oe([c]),new ne([e.Number,t.toString(),-1,-1,{value:o[0],type:a.Number}]),new oe([c]),new ne([e.Number,l.toString(),-1,-1,{value:o[1],type:a.Number}]),new oe([c]),new ne([e.Number,s.toString(),-1,-1,{value:o[2],type:a.Number}])])}function serializeRGB(n,r=!0){n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation);let o=n.channels.map((e=>Number.isNaN(e)?0:e));o=r?XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(n).channels):w(colorData_to_XYZ_D50(n).channels);const t=Math.min(255,Math.max(0,Math.round(255*toPrecision(o[0])))),l=Math.min(255,Math.max(0,Math.round(255*toPrecision(o[1])))),s=Math.min(255,Math.max(0,Math.round(255*toPrecision(o[2])))),u=[e.CloseParen,\")\",-1,-1,void 0],c=[e.Whitespace,\" \",-1,-1,void 0],i=[e.Comma,\",\",-1,-1,void 0],h=[new ne([e.Number,t.toString(),-1,-1,{value:Math.min(255,255*Math.max(0,o[0])),type:a.Integer}]),new ne(i),new oe([c]),new ne([e.Number,l.toString(),-1,-1,{value:Math.min(255,255*Math.max(0,o[1])),type:a.Integer}]),new ne(i),new oe([c]),new ne([e.Number,s.toString(),-1,-1,{value:Math.min(255,255*Math.max(0,o[2])),type:a.Integer}])];if(\"number\"==typeof n.alpha){const r=Math.min(1,Math.max(0,toPrecision(Number.isNaN(n.alpha)?0:n.alpha)));return 1===toPrecision(r,4)?new re([e.Function,\"rgb(\",-1,-1,{value:\"rgb\"}],u,h):new re([e.Function,\"rgba(\",-1,-1,{value:\"rgba\"}],u,[...h,new ne(i),new oe([c]),new ne([e.Number,toPrecision(r,4).toString(),-1,-1,{value:n.alpha,type:a.Number}])])}return new re([e.Function,\"rgba(\",-1,-1,{value:\"rgba\"}],u,[...h,new ne(i),new oe([c]),n.alpha])}function serializeHSL(n,r=!0){n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation);let o=n.channels.map((e=>Number.isNaN(e)?0:e));o=g(r?B(XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(n).channels)):colorData_to_XYZ_D50(n).channels),o=o.map((e=>Number.isNaN(e)?0:e));const t=Math.min(360,Math.max(0,Math.round(toPrecision(o[0])))),l=Math.min(100,Math.max(0,Math.round(toPrecision(o[1])))),s=Math.min(100,Math.max(0,Math.round(toPrecision(o[2])))),u=[e.CloseParen,\")\",-1,-1,void 0],c=[e.Whitespace,\" \",-1,-1,void 0],i=[e.Comma,\",\",-1,-1,void 0],h=[new ne([e.Number,t.toString(),-1,-1,{value:o[0],type:a.Integer}]),new ne(i),new oe([c]),new ne([e.Percentage,l.toString()+\"%\",-1,-1,{value:o[1]}]),new ne(i),new oe([c]),new ne([e.Percentage,s.toString()+\"%\",-1,-1,{value:o[2]}])];if(\"number\"==typeof n.alpha){const r=Math.min(1,Math.max(0,toPrecision(Number.isNaN(n.alpha)?0:n.alpha)));return 1===toPrecision(r,4)?new re([e.Function,\"hsl(\",-1,-1,{value:\"hsl\"}],u,h):new re([e.Function,\"hsla(\",-1,-1,{value:\"hsla\"}],u,[...h,new ne(i),new oe([c]),new ne([e.Number,toPrecision(r,4).toString(),-1,-1,{value:n.alpha,type:a.Number}])])}return new re([e.Function,\"hsla(\",-1,-1,{value:\"hsla\"}],u,[...h,new ne(i),new oe([c]),n.alpha])}function serializeOKLCH(n){n.channels=convertPowerlessComponentsToZeroValuesForDisplay(n.channels,n.colorNotation);let r=n.channels.map((e=>Number.isNaN(e)?0:e));n.colorNotation!==se.OKLCH&&(r=N(colorData_to_XYZ_D50(n).channels));const o=toPrecision(r[0],6),t=toPrecision(r[1],6),l=toPrecision(r[2],6),s=[e.Function,\"oklch(\",-1,-1,{value:\"oklch\"}],u=[e.Whitespace,\" \",-1,-1,void 0];return serializeWithAlpha(n,s,u,[new ne([e.Number,o.toString(),-1,-1,{value:r[0],type:a.Number}]),new oe([u]),new ne([e.Number,t.toString(),-1,-1,{value:r[1],type:a.Number}]),new oe([u]),new ne([e.Number,l.toString(),-1,-1,{value:r[2],type:a.Number}])])}function color(e){if(ae(e)){switch(toLowerCaseAZ(e.getName())){case\"rgb\":case\"rgba\":return rgb(e,color);case\"hsl\":case\"hsla\":return hsl(e,color);case\"hwb\":return a=color,threeChannelSpaceSeparated(e,normalize_HWB_ChannelValues,se.HWB,[],a);case\"lab\":return lab(e,color);case\"lch\":return lch(e,color);case\"oklab\":return oklab(e,color);case\"oklch\":return oklch(e,color);case\"color\":return color$1(e,color);case\"color-mix\":return colorMix(e,color);case\"contrast-color\":return contrastColor(e,color)}}var a;if(ee(e)){if(c(e.value))return hex(e.value);if(n(e.value)){const a=namedColor(e.value[4].value);return!1!==a?a:\"transparent\"===toLowerCaseAZ(e.value[4].value)&&{colorNotation:se.RGB,channels:[0,0,0],alpha:0,syntaxFlags:new Set([ue.ColorKeyword])}}}return!1}export{se as ColorNotation,ue as SyntaxFlag,color,colorDataFitsDisplayP3_Gamut,colorDataFitsRGB_Gamut,serializeHSL,serializeOKLCH,serializeP3,serializeRGB};\n","/**\n * relative-color\n */\n\nimport { SyntaxFlag, color as colorParser } from '@csstools/css-color-parser';\nimport {\n ComponentValue,\n parseComponentValue\n} from '@csstools/css-parser-algorithms';\nimport { CSSToken, TokenType, tokenize } from '@csstools/css-tokenizer';\nimport {\n CacheItem,\n NullObject,\n createCacheKey,\n getCache,\n setCache\n} from './cache';\nimport { NAMED_COLORS, convertColorToRgb } from './color';\nimport { isString, isStringOrNumber } from './common';\nimport { resolveDimension, serializeCalc } from './css-calc';\nimport { resolveColor } from './resolve';\nimport { roundToPrecision } from './util';\nimport {\n ColorChannels,\n MatchedRegExp,\n Options,\n StringColorChannels\n} from './typedef';\n\n/* constants */\nimport {\n CS_LAB,\n CS_LCH,\n FN_REL,\n FN_REL_CAPT,\n FN_VAR,\n NONE,\n SYN_COLOR_TYPE,\n SYN_FN_MATH_START,\n SYN_FN_VAR,\n SYN_MIX,\n VAL_SPEC\n} from './constant';\nconst {\n CloseParen: PAREN_CLOSE,\n Comment: COMMENT,\n Dimension: DIM,\n EOF,\n Function: FUNC,\n Ident: IDENT,\n Number: NUM,\n OpenParen: PAREN_OPEN,\n Percentage: PCT,\n Whitespace: W_SPACE\n} = TokenType;\nconst { HasNoneKeywords: KEY_NONE } = SyntaxFlag;\nconst NAMESPACE = 'relative-color';\n\n/* numeric constants */\nconst OCT = 8;\nconst DEC = 10;\nconst HEX = 16;\nconst MAX_PCT = 100;\nconst MAX_RGB = 255;\n\n/* type definitions */\n/**\n * @type NumberOrStringColorChannels - color channel\n */\ntype NumberOrStringColorChannels = ColorChannels & StringColorChannels;\n\n/* regexp */\nconst REG_COLOR_CAPT = new RegExp(\n `^${FN_REL}(${SYN_COLOR_TYPE}|${SYN_MIX})\\\\s+`\n);\nconst REG_CS_HSL = /(?:hsla?|hwb)$/;\nconst REG_CS_CIE = new RegExp(`^(?:${CS_LAB}|${CS_LCH})$`);\nconst REG_FN_MATH_START = new RegExp(SYN_FN_MATH_START);\nconst REG_FN_REL = new RegExp(FN_REL);\nconst REG_FN_REL_CAPT = new RegExp(`^${FN_REL_CAPT}`);\nconst REG_FN_REL_START = new RegExp(`^${FN_REL}`);\nconst REG_FN_VAR = new RegExp(SYN_FN_VAR);\n\n/**\n * resolve relative color channels\n * @param tokens - CSS tokens\n * @param [opt] - options\n * @returns resolved color channels\n */\nexport function resolveColorChannels(\n tokens: CSSToken[],\n opt: Options = {}\n): NumberOrStringColorChannels | NullObject {\n if (!Array.isArray(tokens)) {\n throw new TypeError(`${tokens} is not an array.`);\n }\n const { colorSpace = '', format = '' } = opt;\n const colorChannels = new Map([\n ['color', ['r', 'g', 'b', 'alpha']],\n ['hsl', ['h', 's', 'l', 'alpha']],\n ['hsla', ['h', 's', 'l', 'alpha']],\n ['hwb', ['h', 'w', 'b', 'alpha']],\n ['lab', ['l', 'a', 'b', 'alpha']],\n ['lch', ['l', 'c', 'h', 'alpha']],\n ['oklab', ['l', 'a', 'b', 'alpha']],\n ['oklch', ['l', 'c', 'h', 'alpha']],\n ['rgb', ['r', 'g', 'b', 'alpha']],\n ['rgba', ['r', 'g', 'b', 'alpha']]\n ]);\n const colorChannel = colorChannels.get(colorSpace);\n // invalid color channel\n if (!colorChannel) {\n return new NullObject();\n }\n const mathFunc = new Set();\n const channels: [\n (number | string)[],\n (number | string)[],\n (number | string)[],\n (number | string)[]\n ] = [[], [], [], []];\n let i = 0;\n let nest = 0;\n let func = false;\n while (tokens.length) {\n const token = tokens.shift();\n if (!Array.isArray(token)) {\n throw new TypeError(`${token} is not an array.`);\n }\n const [type, value, , , detail] = token as [\n TokenType,\n string,\n number,\n number,\n { value: string | number } | undefined\n ];\n const channel = channels[i];\n if (Array.isArray(channel)) {\n switch (type) {\n case DIM: {\n const resolvedValue = resolveDimension(token, opt);\n if (isString(resolvedValue)) {\n channel.push(resolvedValue);\n } else {\n channel.push(value);\n }\n break;\n }\n case FUNC: {\n channel.push(value);\n func = true;\n nest++;\n if (REG_FN_MATH_START.test(value)) {\n mathFunc.add(nest);\n }\n break;\n }\n case IDENT: {\n // invalid channel key\n if (!colorChannel.includes(value)) {\n return new NullObject();\n }\n channel.push(value);\n if (!func) {\n i++;\n }\n break;\n }\n case NUM: {\n channel.push(Number(detail?.value));\n if (!func) {\n i++;\n }\n break;\n }\n case PAREN_OPEN: {\n channel.push(value);\n nest++;\n break;\n }\n case PAREN_CLOSE: {\n if (func) {\n const lastValue = channel[channel.length - 1];\n if (lastValue === ' ') {\n channel.splice(-1, 1, value);\n } else {\n channel.push(value);\n }\n if (mathFunc.has(nest)) {\n mathFunc.delete(nest);\n }\n nest--;\n if (nest === 0) {\n func = false;\n i++;\n }\n }\n break;\n }\n case PCT: {\n channel.push(Number(detail?.value) / MAX_PCT);\n if (!func) {\n i++;\n }\n break;\n }\n case W_SPACE: {\n if (channel.length && func) {\n const lastValue = channel[channel.length - 1];\n if (typeof lastValue === 'number') {\n channel.push(value);\n } else if (\n isString(lastValue) &&\n !lastValue.endsWith('(') &&\n lastValue !== ' '\n ) {\n channel.push(value);\n }\n }\n break;\n }\n default: {\n if (type !== COMMENT && type !== EOF && func) {\n channel.push(value);\n }\n }\n }\n }\n }\n const channelValues = [];\n for (const channel of channels) {\n if (channel.length === 1) {\n const [resolvedValue] = channel;\n if (isStringOrNumber(resolvedValue)) {\n channelValues.push(resolvedValue);\n }\n } else if (channel.length) {\n const resolvedValue = serializeCalc(channel.join(''), {\n format\n });\n channelValues.push(resolvedValue);\n }\n }\n return channelValues as NumberOrStringColorChannels;\n}\n\n/**\n * extract origin color\n * @param value - CSS color value\n * @param [opt] - options\n * @returns origin color value\n */\nexport function extractOriginColor(\n value: string,\n opt: Options = {}\n): string | NullObject {\n const { currentColor = '', format = '' } = opt;\n if (isString(value)) {\n value = value.toLowerCase().trim();\n if (!value) {\n return new NullObject();\n }\n if (!REG_FN_REL_START.test(value)) {\n return value;\n }\n } else {\n return new NullObject();\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'extractOriginColor',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n return cachedResult.item as string;\n }\n if (/currentcolor/.test(value)) {\n if (currentColor) {\n value = value.replace(/currentcolor/g, currentColor);\n } else {\n setCache(cacheKey, null);\n return new NullObject();\n }\n }\n let colorSpace = '';\n if (REG_FN_REL_CAPT.test(value)) {\n [, colorSpace] = value.match(REG_FN_REL_CAPT) as MatchedRegExp;\n }\n opt.colorSpace = colorSpace;\n if (REG_COLOR_CAPT.test(value)) {\n const [, originColor] = value.match(REG_COLOR_CAPT) as MatchedRegExp;\n const [, restValue] = value.split(originColor) as MatchedRegExp;\n if (/^[a-z]+$/.test(originColor)) {\n if (\n !/^transparent$/.test(originColor) &&\n !Object.prototype.hasOwnProperty.call(NAMED_COLORS, originColor)\n ) {\n setCache(cacheKey, null);\n return new NullObject();\n }\n } else if (format === VAL_SPEC) {\n const resolvedOriginColor = resolveColor(originColor, opt);\n if (isString(resolvedOriginColor)) {\n value = value.replace(originColor, resolvedOriginColor);\n }\n }\n if (format === VAL_SPEC) {\n const tokens = tokenize({ css: restValue });\n const channelValues = resolveColorChannels(tokens, opt);\n if (channelValues instanceof NullObject) {\n setCache(cacheKey, null);\n return channelValues;\n }\n const [v1, v2, v3, v4] = channelValues;\n let channelValue = '';\n if (isStringOrNumber(v4)) {\n channelValue = ` ${v1} ${v2} ${v3} / ${v4})`;\n } else {\n channelValue = ` ${channelValues.join(' ')})`;\n }\n if (restValue !== channelValue) {\n value = value.replace(restValue, channelValue);\n }\n }\n // nested relative color\n } else {\n const [, restValue] = value.split(REG_FN_REL_START) as MatchedRegExp;\n const tokens = tokenize({ css: restValue });\n const originColor: string[] = [];\n let nest = 0;\n while (tokens.length) {\n const [type, tokenValue] = tokens.shift() as [TokenType, string];\n switch (type) {\n case FUNC:\n case PAREN_OPEN: {\n originColor.push(tokenValue);\n nest++;\n break;\n }\n case PAREN_CLOSE: {\n const lastValue = originColor[originColor.length - 1];\n if (lastValue === ' ') {\n originColor.splice(-1, 1, tokenValue);\n } else if (isString(lastValue)) {\n originColor.push(tokenValue);\n }\n nest--;\n break;\n }\n case W_SPACE: {\n const lastValue = originColor[originColor.length - 1];\n if (\n isString(lastValue) &&\n !lastValue.endsWith('(') &&\n lastValue !== ' '\n ) {\n originColor.push(tokenValue);\n }\n break;\n }\n default: {\n if (type !== COMMENT && type !== EOF) {\n originColor.push(tokenValue);\n }\n }\n }\n if (nest === 0) {\n break;\n }\n }\n const resolvedOriginColor = resolveRelativeColor(\n originColor.join('').trim(),\n opt\n );\n if (resolvedOriginColor instanceof NullObject) {\n setCache(cacheKey, null);\n return resolvedOriginColor;\n }\n const channelValues = resolveColorChannels(tokens, opt);\n if (channelValues instanceof NullObject) {\n setCache(cacheKey, null);\n return channelValues;\n }\n const [v1, v2, v3, v4] = channelValues;\n let channelValue = '';\n if (isStringOrNumber(v4)) {\n channelValue = ` ${v1} ${v2} ${v3} / ${v4})`;\n } else {\n channelValue = ` ${channelValues.join(' ')})`;\n }\n value = value.replace(restValue, `${resolvedOriginColor}${channelValue}`);\n }\n setCache(cacheKey, value);\n return value;\n}\n\n/**\n * resolve relative color\n * @param value - CSS relative color value\n * @param [opt] - options\n * @returns resolved value\n */\nexport function resolveRelativeColor(\n value: string,\n opt: Options = {}\n): string | NullObject {\n const { format = '' } = opt;\n if (isString(value)) {\n if (REG_FN_VAR.test(value)) {\n if (format === VAL_SPEC) {\n return value;\n // var() must be resolved before resolveRelativeColor()\n } else {\n throw new SyntaxError(`Unexpected token ${FN_VAR} found.`);\n }\n } else if (!REG_FN_REL.test(value)) {\n return value;\n }\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'resolveRelativeColor',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n return cachedResult.item as string;\n }\n const originColor = extractOriginColor(value, opt);\n if (originColor instanceof NullObject) {\n setCache(cacheKey, null);\n return originColor;\n }\n value = originColor;\n if (format === VAL_SPEC) {\n if (value.startsWith('rgba(')) {\n value = value.replace(/^rgba\\(/, 'rgb(');\n } else if (value.startsWith('hsla(')) {\n value = value.replace(/^hsla\\(/, 'hsl(');\n }\n return value;\n }\n const tokens = tokenize({ css: value });\n const components = parseComponentValue(tokens) as ComponentValue;\n const parsedComponents = colorParser(components);\n if (!parsedComponents) {\n setCache(cacheKey, null);\n return new NullObject();\n }\n const {\n alpha: alphaComponent,\n channels: channelsComponent,\n colorNotation,\n syntaxFlags\n } = parsedComponents;\n let alpha: number | string;\n if (Number.isNaN(Number(alphaComponent))) {\n if (syntaxFlags instanceof Set && syntaxFlags.has(KEY_NONE)) {\n alpha = NONE;\n } else {\n alpha = 0;\n }\n } else {\n alpha = roundToPrecision(Number(alphaComponent), OCT);\n }\n let v1: number | string;\n let v2: number | string;\n let v3: number | string;\n [v1, v2, v3] = channelsComponent;\n let resolvedValue;\n if (REG_CS_CIE.test(colorNotation)) {\n const hasNone = syntaxFlags instanceof Set && syntaxFlags.has(KEY_NONE);\n if (Number.isNaN(v1)) {\n if (hasNone) {\n v1 = NONE;\n } else {\n v1 = 0;\n }\n } else {\n v1 = roundToPrecision(v1, HEX);\n }\n if (Number.isNaN(v2)) {\n if (hasNone) {\n v2 = NONE;\n } else {\n v2 = 0;\n }\n } else {\n v2 = roundToPrecision(v2, HEX);\n }\n if (Number.isNaN(v3)) {\n if (hasNone) {\n v3 = NONE;\n } else {\n v3 = 0;\n }\n } else {\n v3 = roundToPrecision(v3, HEX);\n }\n if (alpha === 1) {\n resolvedValue = `${colorNotation}(${v1} ${v2} ${v3})`;\n } else {\n resolvedValue = `${colorNotation}(${v1} ${v2} ${v3} / ${alpha})`;\n }\n } else if (REG_CS_HSL.test(colorNotation)) {\n if (Number.isNaN(v1)) {\n v1 = 0;\n }\n if (Number.isNaN(v2)) {\n v2 = 0;\n }\n if (Number.isNaN(v3)) {\n v3 = 0;\n }\n let [r, g, b] = convertColorToRgb(\n `${colorNotation}(${v1} ${v2} ${v3} / ${alpha})`\n ) as ColorChannels;\n r = roundToPrecision(r / MAX_RGB, DEC);\n g = roundToPrecision(g / MAX_RGB, DEC);\n b = roundToPrecision(b / MAX_RGB, DEC);\n if (alpha === 1) {\n resolvedValue = `color(srgb ${r} ${g} ${b})`;\n } else {\n resolvedValue = `color(srgb ${r} ${g} ${b} / ${alpha})`;\n }\n } else {\n const cs = colorNotation === 'rgb' ? 'srgb' : colorNotation;\n const hasNone = syntaxFlags instanceof Set && syntaxFlags.has(KEY_NONE);\n if (Number.isNaN(v1)) {\n if (hasNone) {\n v1 = NONE;\n } else {\n v1 = 0;\n }\n } else {\n v1 = roundToPrecision(v1, DEC);\n }\n if (Number.isNaN(v2)) {\n if (hasNone) {\n v2 = NONE;\n } else {\n v2 = 0;\n }\n } else {\n v2 = roundToPrecision(v2, DEC);\n }\n if (Number.isNaN(v3)) {\n if (hasNone) {\n v3 = NONE;\n } else {\n v3 = 0;\n }\n } else {\n v3 = roundToPrecision(v3, DEC);\n }\n if (alpha === 1) {\n resolvedValue = `color(${cs} ${v1} ${v2} ${v3})`;\n } else {\n resolvedValue = `color(${cs} ${v1} ${v2} ${v3} / ${alpha})`;\n }\n }\n setCache(cacheKey, resolvedValue);\n return resolvedValue;\n}\n","/**\n * resolve\n */\n\nimport {\n CacheItem,\n NullObject,\n createCacheKey,\n getCache,\n setCache\n} from './cache';\nimport {\n convertRgbToHex,\n resolveColorFunc,\n resolveColorMix,\n resolveColorValue\n} from './color';\nimport { isString } from './common';\nimport { cssCalc } from './css-calc';\nimport { resolveVar } from './css-var';\nimport { resolveRelativeColor } from './relative-color';\nimport {\n ComputedColorChannels,\n Options,\n SpecifiedColorChannels\n} from './typedef';\n\n/* constants */\nimport {\n FN_COLOR,\n FN_MIX,\n SYN_FN_CALC,\n SYN_FN_REL,\n SYN_FN_VAR,\n VAL_COMP,\n VAL_SPEC\n} from './constant';\nconst NAMESPACE = 'resolve';\nconst RGB_TRANSPARENT = 'rgba(0, 0, 0, 0)';\n\n/* regexp */\nconst REG_FN_CALC = new RegExp(SYN_FN_CALC);\nconst REG_FN_REL = new RegExp(SYN_FN_REL);\nconst REG_FN_VAR = new RegExp(SYN_FN_VAR);\n\n/**\n * resolve color\n * @param value - CSS color value\n * @param [opt] - options\n * @returns resolved color\n */\nexport const resolveColor = (\n value: string,\n opt: Options = {}\n): string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { currentColor = '', format = VAL_COMP, nullable = false } = opt;\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'resolve',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n return cachedResult.item as string;\n }\n if (REG_FN_VAR.test(value)) {\n if (format === VAL_SPEC) {\n setCache(cacheKey, value);\n return value;\n }\n const resolvedValue = resolveVar(value, opt);\n if (resolvedValue instanceof NullObject) {\n switch (format) {\n case 'hex':\n case 'hexAlpha': {\n setCache(cacheKey, resolvedValue);\n return resolvedValue;\n }\n default: {\n if (nullable) {\n setCache(cacheKey, resolvedValue);\n return resolvedValue;\n }\n const res = RGB_TRANSPARENT;\n setCache(cacheKey, res);\n return res;\n }\n }\n } else {\n value = resolvedValue;\n }\n }\n if (opt.format !== format) {\n opt.format = format;\n }\n value = value.toLowerCase();\n if (REG_FN_REL.test(value)) {\n const resolvedValue = resolveRelativeColor(value, opt);\n if (format === VAL_COMP) {\n let res;\n if (resolvedValue instanceof NullObject) {\n if (nullable) {\n res = resolvedValue;\n } else {\n res = RGB_TRANSPARENT;\n }\n } else {\n res = resolvedValue;\n }\n setCache(cacheKey, res);\n return res;\n }\n if (format === VAL_SPEC) {\n let res = '';\n if (resolvedValue instanceof NullObject) {\n res = '';\n } else {\n res = resolvedValue;\n }\n setCache(cacheKey, res);\n return res;\n }\n if (resolvedValue instanceof NullObject) {\n value = '';\n } else {\n value = resolvedValue;\n }\n }\n if (REG_FN_CALC.test(value)) {\n value = cssCalc(value, opt);\n }\n let cs = '';\n let r = NaN;\n let g = NaN;\n let b = NaN;\n let alpha = NaN;\n if (value === 'transparent') {\n switch (format) {\n case VAL_SPEC: {\n setCache(cacheKey, value);\n return value;\n }\n case 'hex': {\n setCache(cacheKey, null);\n return new NullObject();\n }\n case 'hexAlpha': {\n const res = '#00000000';\n setCache(cacheKey, res);\n return res;\n }\n case VAL_COMP:\n default: {\n const res = RGB_TRANSPARENT;\n setCache(cacheKey, res);\n return res;\n }\n }\n } else if (value === 'currentcolor') {\n if (format === VAL_SPEC) {\n setCache(cacheKey, value);\n return value;\n }\n if (currentColor) {\n let resolvedValue;\n if (currentColor.startsWith(FN_MIX)) {\n resolvedValue = resolveColorMix(currentColor, opt);\n } else if (currentColor.startsWith(FN_COLOR)) {\n resolvedValue = resolveColorFunc(currentColor, opt);\n } else {\n resolvedValue = resolveColorValue(currentColor, opt);\n }\n if (resolvedValue instanceof NullObject) {\n setCache(cacheKey, resolvedValue);\n return resolvedValue;\n }\n [cs, r, g, b, alpha] = resolvedValue as ComputedColorChannels;\n } else if (format === VAL_COMP) {\n const res = RGB_TRANSPARENT;\n setCache(cacheKey, res);\n return res;\n }\n } else if (format === VAL_SPEC) {\n if (value.startsWith(FN_MIX)) {\n const res = resolveColorMix(value, opt) as string;\n setCache(cacheKey, res);\n return res;\n } else if (value.startsWith(FN_COLOR)) {\n const [scs, rr, gg, bb, aa] = resolveColorFunc(\n value,\n opt\n ) as SpecifiedColorChannels;\n let res = '';\n if (aa === 1) {\n res = `color(${scs} ${rr} ${gg} ${bb})`;\n } else {\n res = `color(${scs} ${rr} ${gg} ${bb} / ${aa})`;\n }\n setCache(cacheKey, res);\n return res;\n } else {\n const rgb = resolveColorValue(value, opt);\n if (isString(rgb)) {\n setCache(cacheKey, rgb);\n return rgb;\n }\n const [scs, rr, gg, bb, aa] = rgb as SpecifiedColorChannels;\n let res = '';\n if (scs === 'rgb') {\n if (aa === 1) {\n res = `${scs}(${rr}, ${gg}, ${bb})`;\n } else {\n res = `${scs}a(${rr}, ${gg}, ${bb}, ${aa})`;\n }\n } else if (aa === 1) {\n res = `${scs}(${rr} ${gg} ${bb})`;\n } else {\n res = `${scs}(${rr} ${gg} ${bb} / ${aa})`;\n }\n setCache(cacheKey, res);\n return res;\n }\n } else if (value.startsWith(FN_MIX)) {\n if (/currentcolor/.test(value)) {\n if (currentColor) {\n value = value.replace(/currentcolor/g, currentColor);\n }\n }\n if (/transparent/.test(value)) {\n value = value.replace(/transparent/g, RGB_TRANSPARENT);\n }\n const resolvedValue = resolveColorMix(value, opt);\n if (resolvedValue instanceof NullObject) {\n setCache(cacheKey, resolvedValue);\n return resolvedValue;\n }\n [cs, r, g, b, alpha] = resolvedValue as ComputedColorChannels;\n } else if (value.startsWith(FN_COLOR)) {\n const resolvedValue = resolveColorFunc(value, opt);\n if (resolvedValue instanceof NullObject) {\n setCache(cacheKey, resolvedValue);\n return resolvedValue;\n }\n [cs, r, g, b, alpha] = resolvedValue as ComputedColorChannels;\n } else if (value) {\n const resolvedValue = resolveColorValue(value, opt);\n if (resolvedValue instanceof NullObject) {\n setCache(cacheKey, resolvedValue);\n return resolvedValue;\n }\n [cs, r, g, b, alpha] = resolvedValue as ComputedColorChannels;\n }\n let res = '';\n switch (format) {\n case 'hex': {\n if (\n Number.isNaN(r) ||\n Number.isNaN(g) ||\n Number.isNaN(b) ||\n Number.isNaN(alpha) ||\n alpha === 0\n ) {\n setCache(cacheKey, null);\n return new NullObject();\n }\n res = convertRgbToHex([r, g, b, 1]);\n break;\n }\n case 'hexAlpha': {\n if (\n Number.isNaN(r) ||\n Number.isNaN(g) ||\n Number.isNaN(b) ||\n Number.isNaN(alpha)\n ) {\n setCache(cacheKey, null);\n return new NullObject();\n }\n res = convertRgbToHex([r, g, b, alpha]);\n break;\n }\n case VAL_COMP:\n default: {\n switch (cs) {\n case 'rgb': {\n if (alpha === 1) {\n res = `${cs}(${r}, ${g}, ${b})`;\n } else {\n res = `${cs}a(${r}, ${g}, ${b}, ${alpha})`;\n }\n break;\n }\n case 'lab':\n case 'lch':\n case 'oklab':\n case 'oklch': {\n if (alpha === 1) {\n res = `${cs}(${r} ${g} ${b})`;\n } else {\n res = `${cs}(${r} ${g} ${b} / ${alpha})`;\n }\n break;\n }\n // color()\n default: {\n if (alpha === 1) {\n res = `color(${cs} ${r} ${g} ${b})`;\n } else {\n res = `color(${cs} ${r} ${g} ${b} / ${alpha})`;\n }\n }\n }\n }\n }\n setCache(cacheKey, res);\n return res;\n};\n\n/**\n * resolve CSS color\n * @param value\n * - CSS color value\n * - system colors are not supported\n * @param [opt] - options\n * @param [opt.currentColor]\n * - color to use for `currentcolor` keyword\n * - if omitted, it will be treated as a missing color\n * i.e. `rgb(none none none / none)`\n * @param [opt.customProperty]\n * - custom properties\n * - pair of `--` prefixed property name and value,\n * e.g. `customProperty: { '--some-color': '#0000ff' }`\n * - and/or `callback` function to get the value of the custom property,\n * e.g. `customProperty: { callback: someDeclaration.getPropertyValue }`\n * @param [opt.dimension]\n * - dimension, convert relative length to pixels\n * - pair of unit and it's value as a number in pixels,\n * e.g. `dimension: { em: 12, rem: 16, vw: 10.26 }`\n * - and/or `callback` function to get the value as a number in pixels,\n * e.g. `dimension: { callback: convertUnitToPixel }`\n * @param [opt.format]\n * - output format, one of below\n * - `computedValue` (default), [computed value][139] of the color\n * - `specifiedValue`, [specified value][140] of the color\n * - `hex`, hex color notation, i.e. `rrggbb`\n * - `hexAlpha`, hex color notation with alpha channel, i.e. `#rrggbbaa`\n * @returns\n * - one of rgba?(), #rrggbb(aa)?, color-name, '(empty-string)',\n * color(color-space r g b / alpha), color(color-space x y z / alpha),\n * lab(l a b / alpha), lch(l c h / alpha), oklab(l a b / alpha),\n * oklch(l c h / alpha), null\n * - in `computedValue`, values are numbers, however `rgb()` values are\n * integers\n * - in `specifiedValue`, returns `empty string` for unknown and/or invalid\n * color\n * - in `hex`, returns `null` for `transparent`, and also returns `null` if\n * any of `r`, `g`, `b`, `alpha` is not a number\n * - in `hexAlpha`, returns `#00000000` for `transparent`,\n * however returns `null` if any of `r`, `g`, `b`, `alpha` is not a number\n */\nexport const resolve = (value: string, opt: Options = {}): string | null => {\n opt.nullable = false;\n const resolvedValue = resolveColor(value, opt);\n if (resolvedValue instanceof NullObject) {\n return null;\n }\n return resolvedValue as string;\n};\n","/**\n * util\n */\n\nimport { TokenType, tokenize } from '@csstools/css-tokenizer';\nimport { CacheItem, createCacheKey, getCache, setCache } from './cache';\nimport { isString } from './common';\nimport { resolveColor } from './resolve';\nimport { Options } from './typedef';\n\n/* constants */\nimport { NAMED_COLORS } from './color';\nimport { SYN_COLOR_TYPE, SYN_MIX, VAL_SPEC } from './constant';\nconst {\n CloseParen: PAREN_CLOSE,\n Comma: COMMA,\n Comment: COMMENT,\n Delim: DELIM,\n EOF,\n Function: FUNC,\n Ident: IDENT,\n OpenParen: PAREN_OPEN,\n Whitespace: W_SPACE\n} = TokenType;\nconst NAMESPACE = 'util';\n\n/* numeric constants */\nconst DEC = 10;\nconst HEX = 16;\nconst DEG = 360;\nconst DEG_HALF = 180;\n\n/* regexp */\nconst REG_COLOR = new RegExp(`^(?:${SYN_COLOR_TYPE})$`);\nconst REG_FN_COLOR =\n /^(?:(?:ok)?l(?:ab|ch)|color(?:-mix)?|hsla?|hwb|rgba?|var)\\(/;\nconst REG_MIX = new RegExp(SYN_MIX);\n\n/**\n * split value\n * NOTE: comments are stripped, it can be preserved if, in the options param,\n * `delimiter` is either ',' or '/' and with `preserveComment` set to `true`\n * @param value - CSS value\n * @param [opt] - options\n * @returns array of values\n */\nexport const splitValue = (value: string, opt: Options = {}): string[] => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { delimiter = ' ', preserveComment = false } = opt;\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'splitValue',\n value\n },\n {\n delimiter,\n preserveComment\n }\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as string[];\n }\n let regDelimiter;\n if (delimiter === ',') {\n regDelimiter = /^,$/;\n } else if (delimiter === '/') {\n regDelimiter = /^\\/$/;\n } else {\n regDelimiter = /^\\s+$/;\n }\n const tokens = tokenize({ css: value });\n let nest = 0;\n let str = '';\n const res: string[] = [];\n while (tokens.length) {\n const [type, value] = tokens.shift() as [TokenType, string];\n switch (type) {\n case COMMA: {\n if (regDelimiter.test(value)) {\n if (nest === 0) {\n res.push(str.trim());\n str = '';\n } else {\n str += value;\n }\n } else {\n str += value;\n }\n break;\n }\n case DELIM: {\n if (regDelimiter.test(value)) {\n if (nest === 0) {\n res.push(str.trim());\n str = '';\n } else {\n str += value;\n }\n } else {\n str += value;\n }\n break;\n }\n case COMMENT: {\n if (preserveComment && (delimiter === ',' || delimiter === '/')) {\n str += value;\n }\n break;\n }\n case FUNC:\n case PAREN_OPEN: {\n str += value;\n nest++;\n break;\n }\n case PAREN_CLOSE: {\n str += value;\n nest--;\n break;\n }\n case W_SPACE: {\n if (regDelimiter.test(value)) {\n if (nest === 0) {\n if (str) {\n res.push(str.trim());\n str = '';\n }\n } else {\n str += ' ';\n }\n } else if (!str.endsWith(' ')) {\n str += ' ';\n }\n break;\n }\n default: {\n if (type === EOF) {\n res.push(str.trim());\n str = '';\n } else {\n str += value;\n }\n }\n }\n }\n setCache(cacheKey, res);\n return res;\n};\n\n/**\n * extract dashed-ident tokens\n * @param value - CSS value\n * @returns array of dashed-ident tokens\n */\nexport const extractDashedIdent = (value: string): string[] => {\n if (isString(value)) {\n value = value.trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey({\n namespace: NAMESPACE,\n name: 'extractDashedIdent',\n value\n });\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as string[];\n }\n const tokens = tokenize({ css: value });\n const items = new Set();\n while (tokens.length) {\n const [type, value] = tokens.shift() as [TokenType, string];\n if (type === IDENT && value.startsWith('--')) {\n items.add(value);\n }\n }\n const res = [...items] as string[];\n setCache(cacheKey, res);\n return res;\n};\n\n/**\n * is color\n * @param value - CSS value\n * @param [opt] - options\n * @returns result\n */\nexport const isColor = (value: unknown, opt: Options = {}): boolean => {\n if (isString(value)) {\n value = value.toLowerCase().trim();\n if (value && isString(value)) {\n if (/^[a-z]+$/.test(value)) {\n if (\n /^(?:currentcolor|transparent)$/.test(value) ||\n Object.prototype.hasOwnProperty.call(NAMED_COLORS, value)\n ) {\n return true;\n }\n } else if (REG_COLOR.test(value) || REG_MIX.test(value)) {\n return true;\n } else if (REG_FN_COLOR.test(value)) {\n opt.nullable = true;\n if (!opt.format) {\n opt.format = VAL_SPEC;\n }\n const resolvedValue = resolveColor(value, opt);\n if (resolvedValue) {\n return true;\n }\n }\n }\n }\n return false;\n};\n\n/**\n * value to JSON string\n * @param value - CSS value\n * @param [func] - stringify function\n * @returns stringified value in JSON notation\n */\nexport const valueToJsonString = (\n value: unknown,\n func: boolean = false\n): string => {\n if (typeof value === 'undefined') {\n return '';\n }\n const res = JSON.stringify(value, (_key, val) => {\n let replacedValue;\n if (typeof val === 'undefined') {\n replacedValue = null;\n } else if (typeof val === 'function') {\n if (func) {\n replacedValue = val.toString().replace(/\\s/g, '').substring(0, HEX);\n } else {\n replacedValue = val.name;\n }\n } else if (val instanceof Map || val instanceof Set) {\n replacedValue = [...val];\n } else if (typeof val === 'bigint') {\n replacedValue = val.toString();\n } else {\n replacedValue = val;\n }\n return replacedValue;\n });\n return res;\n};\n\n/**\n * round to specified precision\n * @param value - numeric value\n * @param bit - minimum bits\n * @returns rounded value\n */\nexport const roundToPrecision = (value: number, bit: number = 0): number => {\n if (!Number.isFinite(value)) {\n throw new TypeError(`${value} is not a finite number.`);\n }\n if (!Number.isFinite(bit)) {\n throw new TypeError(`${bit} is not a finite number.`);\n } else if (bit < 0 || bit > HEX) {\n throw new RangeError(`${bit} is not between 0 and ${HEX}.`);\n }\n if (bit === 0) {\n return Math.round(value);\n }\n let val;\n if (bit === HEX) {\n val = value.toPrecision(6);\n } else if (bit < DEC) {\n val = value.toPrecision(4);\n } else {\n val = value.toPrecision(5);\n }\n return parseFloat(val);\n};\n\n/**\n * interpolate hue\n * @param hueA - hue value\n * @param hueB - hue value\n * @param arc - shorter | longer | increasing | decreasing\n * @returns result - [hueA, hueB]\n */\nexport const interpolateHue = (\n hueA: number,\n hueB: number,\n arc: string = 'shorter'\n): [number, number] => {\n if (!Number.isFinite(hueA)) {\n throw new TypeError(`${hueA} is not a finite number.`);\n }\n if (!Number.isFinite(hueB)) {\n throw new TypeError(`${hueB} is not a finite number.`);\n }\n switch (arc) {\n case 'decreasing': {\n if (hueB > hueA) {\n hueA += DEG;\n }\n break;\n }\n case 'increasing': {\n if (hueB < hueA) {\n hueB += DEG;\n }\n break;\n }\n case 'longer': {\n if (hueB > hueA && hueB < hueA + DEG_HALF) {\n hueA += DEG;\n } else if (hueB > hueA + DEG_HALF * -1 && hueB <= hueA) {\n hueB += DEG;\n }\n break;\n }\n case 'shorter':\n default: {\n if (hueB > hueA + DEG_HALF) {\n hueA += DEG;\n } else if (hueB < hueA + DEG_HALF * -1) {\n hueB += DEG;\n }\n }\n }\n return [hueA, hueB];\n};\n","/**\n * cache\n */\n\nimport { LRUCache } from 'lru-cache';\nimport { Options } from './typedef';\nimport { valueToJsonString } from './util';\n\n/* numeric constants */\nconst MAX_CACHE = 4096;\n\n/**\n * CacheItem\n */\nexport class CacheItem {\n /* private */\n #isNull: boolean;\n #item: unknown;\n\n /**\n * constructor\n */\n constructor(item: unknown, isNull: boolean = false) {\n this.#item = item;\n this.#isNull = !!isNull;\n }\n\n get item() {\n return this.#item;\n }\n\n get isNull() {\n return this.#isNull;\n }\n}\n\n/**\n * NullObject\n */\nexport class NullObject extends CacheItem {\n /**\n * constructor\n */\n constructor() {\n super(Symbol('null'), true);\n }\n}\n\n/*\n * lru cache\n */\nexport const lruCache = new LRUCache({\n max: MAX_CACHE\n});\n\n/**\n * set cache\n * @param key - cache key\n * @param value - value to cache\n * @returns void\n */\nexport const setCache = (key: string, value: unknown): void => {\n if (key) {\n if (value === null) {\n lruCache.set(key, new NullObject());\n } else if (value instanceof CacheItem) {\n lruCache.set(key, value);\n } else {\n lruCache.set(key, new CacheItem(value));\n }\n }\n};\n\n/**\n * get cache\n * @param key - cache key\n * @returns cached item or false otherwise\n */\nexport const getCache = (key: string): CacheItem | boolean => {\n if (key && lruCache.has(key)) {\n const item = lruCache.get(key);\n if (item instanceof CacheItem) {\n return item;\n }\n // delete unexpected cached item\n lruCache.delete(key);\n return false;\n }\n return false;\n};\n\n/**\n * create cache key\n * @param keyData - key data\n * @param [opt] - options\n * @returns cache key\n */\nexport const createCacheKey = (\n keyData: Record<string, string>,\n opt: Options = {}\n): string => {\n const { customProperty = {}, dimension = {} } = opt;\n let cacheKey = '';\n if (\n keyData &&\n Object.keys(keyData).length &&\n typeof customProperty.callback !== 'function' &&\n typeof dimension.callback !== 'function'\n ) {\n keyData.opt = valueToJsonString(opt);\n cacheKey = valueToJsonString(keyData);\n }\n return cacheKey;\n};\n","/**\n * css-calc\n */\n\nimport { calc } from '@csstools/css-calc';\nimport { CSSToken, TokenType, tokenize } from '@csstools/css-tokenizer';\nimport {\n CacheItem,\n NullObject,\n createCacheKey,\n getCache,\n setCache\n} from './cache';\nimport { isString, isStringOrNumber } from './common';\nimport { resolveVar } from './css-var';\nimport { roundToPrecision } from './util';\nimport { MatchedRegExp, Options } from './typedef';\n\n/* constants */\nimport {\n ANGLE,\n LENGTH,\n NUM,\n SYN_FN_CALC,\n SYN_FN_MATH_START,\n SYN_FN_VAR,\n SYN_FN_VAR_START,\n VAL_SPEC\n} from './constant';\nconst {\n CloseParen: PAREN_CLOSE,\n Comment: COMMENT,\n Dimension: DIM,\n EOF,\n Function: FUNC,\n OpenParen: PAREN_OPEN,\n Whitespace: W_SPACE\n} = TokenType;\nconst NAMESPACE = 'css-calc';\n\n/* numeric constants */\nconst TRIA = 3;\nconst HEX = 16;\nconst MAX_PCT = 100;\n\n/* regexp */\nconst REG_FN_CALC = new RegExp(SYN_FN_CALC);\nconst REG_FN_CALC_NUM = new RegExp(`^calc\\\\((${NUM})\\\\)$`);\nconst REG_FN_MATH_START = new RegExp(SYN_FN_MATH_START);\nconst REG_FN_VAR = new RegExp(SYN_FN_VAR);\nconst REG_FN_VAR_START = new RegExp(SYN_FN_VAR_START);\nconst REG_OPERATOR = /\\s[*+/-]\\s/;\nconst REG_TYPE_DIM = new RegExp(`^(${NUM})(${ANGLE}|${LENGTH})$`);\nconst REG_TYPE_DIM_PCT = new RegExp(`^(${NUM})(${ANGLE}|${LENGTH}|%)$`);\nconst REG_TYPE_PCT = new RegExp(`^(${NUM})%$`);\n\n/**\n * Calclator\n */\nexport class Calculator {\n /* private */\n // number\n #hasNum: boolean;\n #numSum: number[];\n #numMul: number[];\n // percentage\n #hasPct: boolean;\n #pctSum: number[];\n #pctMul: number[];\n // dimension\n #hasDim: boolean;\n #dimSum: string[];\n #dimSub: string[];\n #dimMul: string[];\n #dimDiv: string[];\n // et cetra\n #hasEtc: boolean;\n #etcSum: string[];\n #etcSub: string[];\n #etcMul: string[];\n #etcDiv: string[];\n\n /**\n * constructor\n */\n constructor() {\n // number\n this.#hasNum = false;\n this.#numSum = [];\n this.#numMul = [];\n // percentage\n this.#hasPct = false;\n this.#pctSum = [];\n this.#pctMul = [];\n // dimension\n this.#hasDim = false;\n this.#dimSum = [];\n this.#dimSub = [];\n this.#dimMul = [];\n this.#dimDiv = [];\n // et cetra\n this.#hasEtc = false;\n this.#etcSum = [];\n this.#etcSub = [];\n this.#etcMul = [];\n this.#etcDiv = [];\n }\n\n get hasNum() {\n return this.#hasNum;\n }\n\n set hasNum(value: boolean) {\n this.#hasNum = !!value;\n }\n\n get numSum() {\n return this.#numSum;\n }\n\n get numMul() {\n return this.#numMul;\n }\n\n get hasPct() {\n return this.#hasPct;\n }\n\n set hasPct(value: boolean) {\n this.#hasPct = !!value;\n }\n\n get pctSum() {\n return this.#pctSum;\n }\n\n get pctMul() {\n return this.#pctMul;\n }\n\n get hasDim() {\n return this.#hasDim;\n }\n\n set hasDim(value: boolean) {\n this.#hasDim = !!value;\n }\n\n get dimSum() {\n return this.#dimSum;\n }\n\n get dimSub() {\n return this.#dimSub;\n }\n\n get dimMul() {\n return this.#dimMul;\n }\n\n get dimDiv() {\n return this.#dimDiv;\n }\n\n get hasEtc() {\n return this.#hasEtc;\n }\n\n set hasEtc(value: boolean) {\n this.#hasEtc = !!value;\n }\n\n get etcSum() {\n return this.#etcSum;\n }\n\n get etcSub() {\n return this.#etcSub;\n }\n\n get etcMul() {\n return this.#etcMul;\n }\n\n get etcDiv() {\n return this.#etcDiv;\n }\n\n /**\n * clear values\n * @returns void\n */\n clear() {\n // number\n this.#hasNum = false;\n this.#numSum = [];\n this.#numMul = [];\n // percentage\n this.#hasPct = false;\n this.#pctSum = [];\n this.#pctMul = [];\n // dimension\n this.#hasDim = false;\n this.#dimSum = [];\n this.#dimSub = [];\n this.#dimMul = [];\n this.#dimDiv = [];\n // et cetra\n this.#hasEtc = false;\n this.#etcSum = [];\n this.#etcSub = [];\n this.#etcMul = [];\n this.#etcDiv = [];\n }\n\n /**\n * sort values\n * @param values - values\n * @returns sorted values\n */\n sort(values: string[] = []): string[] {\n const arr = [...values];\n if (arr.length > 1) {\n arr.sort((a, b) => {\n let res;\n if (REG_TYPE_DIM_PCT.test(a) && REG_TYPE_DIM_PCT.test(b)) {\n const [, valA, unitA] = a.match(REG_TYPE_DIM_PCT) as MatchedRegExp;\n const [, valB, unitB] = b.match(REG_TYPE_DIM_PCT) as MatchedRegExp;\n if (unitA === unitB) {\n if (Number(valA) === Number(valB)) {\n res = 0;\n } else if (Number(valA) > Number(valB)) {\n res = 1;\n } else {\n res = -1;\n }\n } else if (unitA > unitB) {\n res = 1;\n } else {\n res = -1;\n }\n } else {\n if (a === b) {\n res = 0;\n } else if (a > b) {\n res = 1;\n } else {\n res = -1;\n }\n }\n return res;\n });\n }\n return arr;\n }\n\n /**\n * multiply values\n * @returns resolved value\n */\n multiply(): string {\n const value = [];\n let num;\n if (this.#hasNum) {\n num = 1;\n for (const i of this.#numMul) {\n num *= i;\n if (num === 0 || !Number.isFinite(num) || Number.isNaN(num)) {\n break;\n }\n }\n if (!this.#hasPct && !this.#hasDim && !this.hasEtc) {\n if (Number.isFinite(num)) {\n num = roundToPrecision(num, HEX);\n }\n value.push(num);\n }\n }\n if (this.#hasPct) {\n if (typeof num !== 'number') {\n num = 1;\n }\n for (const i of this.#pctMul) {\n num *= i;\n if (num === 0 || !Number.isFinite(num) || Number.isNaN(num)) {\n break;\n }\n }\n if (Number.isFinite(num)) {\n num = `${roundToPrecision(num, HEX)}%`;\n }\n if (!this.#hasDim && !this.hasEtc) {\n value.push(num);\n }\n }\n if (this.#hasDim) {\n let dim = '';\n let mul = '';\n let div = '';\n if (this.#dimMul.length) {\n if (this.#dimMul.length === 1) {\n [mul] = this.#dimMul as [string];\n } else {\n mul = `${this.sort(this.#dimMul).join(' * ')}`;\n }\n }\n if (this.#dimDiv.length) {\n if (this.#dimDiv.length === 1) {\n [div] = this.#dimDiv as [string];\n } else {\n div = `${this.sort(this.#dimDiv).join(' * ')}`;\n }\n }\n if (Number.isFinite(num)) {\n if (mul) {\n if (div) {\n if (div.includes('*')) {\n dim = calc(`calc(${num} * ${mul} / (${div}))`, {\n toCanonicalUnits: true\n });\n } else {\n dim = calc(`calc(${num} * ${mul} / ${div})`, {\n toCanonicalUnits: true\n });\n }\n } else {\n dim = calc(`calc(${num} * ${mul})`, {\n toCanonicalUnits: true\n });\n }\n } else if (div.includes('*')) {\n dim = calc(`calc(${num} / (${div}))`, {\n toCanonicalUnits: true\n });\n } else {\n dim = calc(`calc(${num} / ${div})`, {\n toCanonicalUnits: true\n });\n }\n value.push(dim.replace(/^calc/, ''));\n } else {\n if (!value.length && num !== undefined) {\n value.push(num);\n }\n if (mul) {\n if (div) {\n if (div.includes('*')) {\n dim = calc(`calc(${mul} / (${div}))`, {\n toCanonicalUnits: true\n });\n } else {\n dim = calc(`calc(${mul} / ${div})`, {\n toCanonicalUnits: true\n });\n }\n } else {\n dim = calc(`calc(${mul})`, {\n toCanonicalUnits: true\n });\n }\n if (value.length) {\n value.push('*', dim.replace(/^calc/, ''));\n } else {\n value.push(dim.replace(/^calc/, ''));\n }\n } else {\n dim = calc(`calc(${div})`, {\n toCanonicalUnits: true\n });\n if (value.length) {\n value.push('/', dim.replace(/^calc/, ''));\n } else {\n value.push('1', '/', dim.replace(/^calc/, ''));\n }\n }\n }\n }\n if (this.#hasEtc) {\n if (this.#etcMul.length) {\n if (!value.length && num !== undefined) {\n value.push(num);\n }\n const mul = this.sort(this.#etcMul).join(' * ');\n if (value.length) {\n value.push(`* ${mul}`);\n } else {\n value.push(`${mul}`);\n }\n }\n if (this.#etcDiv.length) {\n const div = this.sort(this.#etcDiv).join(' * ');\n if (div.includes('*')) {\n if (value.length) {\n value.push(`/ (${div})`);\n } else {\n value.push(`1 / (${div})`);\n }\n } else if (value.length) {\n value.push(`/ ${div}`);\n } else {\n value.push(`1 / ${div}`);\n }\n }\n }\n if (value.length) {\n return value.join(' ');\n }\n return '';\n }\n\n /**\n * sum values\n * @returns resolved value\n */\n sum(): string {\n const value = [];\n if (this.#hasNum) {\n let num = 0;\n for (const i of this.#numSum) {\n num += i;\n if (!Number.isFinite(num) || Number.isNaN(num)) {\n break;\n }\n }\n value.push(num);\n }\n if (this.#hasPct) {\n let num: number | string = 0;\n for (const i of this.#pctSum) {\n num += i;\n if (!Number.isFinite(num)) {\n break;\n }\n }\n if (Number.isFinite(num)) {\n num = `${num}%`;\n }\n if (value.length) {\n value.push(`+ ${num}`);\n } else {\n value.push(num);\n }\n }\n if (this.#hasDim) {\n let dim, sum, sub;\n if (this.#dimSum.length) {\n sum = this.sort(this.#dimSum).join(' + ');\n }\n if (this.#dimSub.length) {\n sub = this.sort(this.#dimSub).join(' + ');\n }\n if (sum) {\n if (sub) {\n if (sub.includes('-')) {\n dim = calc(`calc(${sum} - (${sub}))`, {\n toCanonicalUnits: true\n });\n } else {\n dim = calc(`calc(${sum} - ${sub})`, {\n toCanonicalUnits: true\n });\n }\n } else {\n dim = calc(`calc(${sum})`, {\n toCanonicalUnits: true\n });\n }\n } else {\n dim = calc(`calc(-1 * (${sub}))`, {\n toCanonicalUnits: true\n });\n }\n if (value.length) {\n value.push('+', dim.replace(/^calc/, ''));\n } else {\n value.push(dim.replace(/^calc/, ''));\n }\n }\n if (this.#hasEtc) {\n if (this.#etcSum.length) {\n const sum = this.sort(this.#etcSum)\n .map(item => {\n let res;\n if (\n REG_OPERATOR.test(item) &&\n !item.startsWith('(') &&\n !item.endsWith(')')\n ) {\n res = `(${item})`;\n } else {\n res = item;\n }\n return res;\n })\n .join(' + ');\n if (value.length) {\n if (this.#etcSum.length > 1) {\n value.push(`+ (${sum})`);\n } else {\n value.push(`+ ${sum}`);\n }\n } else {\n value.push(`${sum}`);\n }\n }\n if (this.#etcSub.length) {\n const sub = this.sort(this.#etcSub)\n .map(item => {\n let res;\n if (\n REG_OPERATOR.test(item) &&\n !item.startsWith('(') &&\n !item.endsWith(')')\n ) {\n res = `(${item})`;\n } else {\n res = item;\n }\n return res;\n })\n .join(' + ');\n if (value.length) {\n if (this.#etcSub.length > 1) {\n value.push(`- (${sub})`);\n } else {\n value.push(`- ${sub}`);\n }\n } else if (this.#etcSub.length > 1) {\n value.push(`-1 * (${sub})`);\n } else {\n value.push(`-1 * ${sub}`);\n }\n }\n }\n if (value.length) {\n return value.join(' ');\n }\n return '';\n }\n}\n\n/**\n * sort calc values\n * @param values - values to sort\n * @param [finalize] - finalize values\n * @returns sorted values\n */\nexport const sortCalcValues = (\n values: (number | string)[] = [],\n finalize: boolean = false\n): string => {\n if (values.length < TRIA) {\n throw new Error(`Unexpected array length ${values.length}.`);\n }\n const start = values.shift();\n if (!isString(start) || !start.endsWith('(')) {\n throw new Error(`Unexpected token ${start}.`);\n }\n const end = values.pop();\n if (end !== ')') {\n throw new Error(`Unexpected token ${end}.`);\n }\n if (values.length === 1) {\n const [value] = values;\n if (!isStringOrNumber(value)) {\n throw new Error(`Unexpected token ${value}.`);\n }\n return `${start}${value}${end}`;\n }\n const sortedValues = [];\n const cal = new Calculator();\n let operator: string = '';\n const l = values.length;\n for (let i = 0; i < l; i++) {\n const value = values[i];\n if (!isStringOrNumber(value)) {\n throw new Error(`Unexpected token ${value}.`);\n }\n if (value === '*' || value === '/') {\n operator = value;\n } else if (value === '+' || value === '-') {\n const sortedValue = cal.multiply();\n if (sortedValue) {\n sortedValues.push(sortedValue, value);\n }\n cal.clear();\n operator = '';\n } else {\n const numValue = Number(value);\n const strValue = `${value}`;\n switch (operator) {\n case '/': {\n if (Number.isFinite(numValue)) {\n cal.hasNum = true;\n cal.numMul.push(1 / numValue);\n } else if (REG_TYPE_PCT.test(strValue)) {\n const [, val] = strValue.match(REG_TYPE_PCT) as MatchedRegExp;\n cal.hasPct = true;\n cal.pctMul.push((MAX_PCT * MAX_PCT) / Number(val));\n } else if (REG_TYPE_DIM.test(strValue)) {\n cal.hasDim = true;\n cal.dimDiv.push(strValue);\n } else {\n cal.hasEtc = true;\n cal.etcDiv.push(strValue);\n }\n break;\n }\n case '*':\n default: {\n if (Number.isFinite(numValue)) {\n cal.hasNum = true;\n cal.numMul.push(numValue);\n } else if (REG_TYPE_PCT.test(strValue)) {\n const [, val] = strValue.match(REG_TYPE_PCT) as MatchedRegExp;\n cal.hasPct = true;\n cal.pctMul.push(Number(val));\n } else if (REG_TYPE_DIM.test(strValue)) {\n cal.hasDim = true;\n cal.dimMul.push(strValue);\n } else {\n cal.hasEtc = true;\n cal.etcMul.push(strValue);\n }\n }\n }\n }\n if (i === l - 1) {\n const sortedValue = cal.multiply();\n if (sortedValue) {\n sortedValues.push(sortedValue);\n }\n cal.clear();\n operator = '';\n }\n }\n let resolvedValue = '';\n if (finalize && (sortedValues.includes('+') || sortedValues.includes('-'))) {\n const finalizedValues = [];\n cal.clear();\n operator = '';\n const l = sortedValues.length;\n for (let i = 0; i < l; i++) {\n const value = sortedValues[i];\n if (isStringOrNumber(value)) {\n if (value === '+' || value === '-') {\n operator = value;\n } else {\n const numValue = Number(value);\n const strValue = `${value}`;\n switch (operator) {\n case '-': {\n if (Number.isFinite(numValue)) {\n cal.hasNum = true;\n cal.numSum.push(-1 * numValue);\n } else if (REG_TYPE_PCT.test(strValue)) {\n const [, val] = strValue.match(REG_TYPE_PCT) as MatchedRegExp;\n cal.hasPct = true;\n cal.pctSum.push(-1 * Number(val));\n } else if (REG_TYPE_DIM.test(strValue)) {\n cal.hasDim = true;\n cal.dimSub.push(strValue);\n } else {\n cal.hasEtc = true;\n cal.etcSub.push(strValue);\n }\n break;\n }\n case '+':\n default: {\n if (Number.isFinite(numValue)) {\n cal.hasNum = true;\n cal.numSum.push(numValue);\n } else if (REG_TYPE_PCT.test(strValue)) {\n const [, val] = strValue.match(REG_TYPE_PCT) as MatchedRegExp;\n cal.hasPct = true;\n cal.pctSum.push(Number(val));\n } else if (REG_TYPE_DIM.test(strValue)) {\n cal.hasDim = true;\n cal.dimSum.push(strValue);\n } else {\n cal.hasEtc = true;\n cal.etcSum.push(strValue);\n }\n }\n }\n }\n }\n if (i === l - 1) {\n const sortedValue = cal.sum();\n if (sortedValue) {\n finalizedValues.push(sortedValue);\n }\n cal.clear();\n operator = '';\n }\n }\n resolvedValue = finalizedValues.join(' ').replace(/\\+\\s-/g, '- ');\n } else {\n resolvedValue = sortedValues.join(' ').replace(/\\+\\s-/g, '- ');\n }\n if (\n resolvedValue.startsWith('(') &&\n resolvedValue.endsWith(')') &&\n resolvedValue.lastIndexOf('(') === 0 &&\n resolvedValue.indexOf(')') === resolvedValue.length - 1\n ) {\n resolvedValue = resolvedValue.replace(/^\\(/, '').replace(/\\)$/, '');\n }\n return `${start}${resolvedValue}${end}`;\n};\n\n/**\n * serialize calc\n * @param value - CSS value\n * @param [opt] - options\n * @returns serialized value\n */\nexport const serializeCalc = (value: string, opt: Options = {}): string => {\n const { format = '' } = opt;\n if (isString(value)) {\n if (!REG_FN_VAR_START.test(value) || format !== VAL_SPEC) {\n return value;\n }\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'serializeCalc',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as string;\n }\n const items: string[] = tokenize({ css: value })\n .map((token: CSSToken): string => {\n const [type, value] = token as [TokenType, string];\n let res = '';\n if (type !== W_SPACE && type !== COMMENT) {\n res = value;\n }\n return res;\n })\n .filter(v => v);\n let startIndex = items.findLastIndex((item: string) => /\\($/.test(item));\n while (startIndex) {\n const endIndex = items.findIndex((item: unknown, index: number) => {\n return item === ')' && index > startIndex;\n });\n const slicedValues: string[] = items.slice(startIndex, endIndex + 1);\n let serializedValue: string = sortCalcValues(slicedValues);\n if (REG_FN_VAR_START.test(serializedValue)) {\n serializedValue = calc(serializedValue, {\n toCanonicalUnits: true\n });\n }\n items.splice(startIndex, endIndex - startIndex + 1, serializedValue);\n startIndex = items.findLastIndex((item: string) => /\\($/.test(item));\n }\n const serializedCalc = sortCalcValues(items, true);\n setCache(cacheKey, serializedCalc);\n return serializedCalc;\n};\n\n/**\n * resolve dimension\n * @param token - CSS token\n * @param [opt] - options\n * @returns resolved value\n */\nexport const resolveDimension = (\n token: CSSToken,\n opt: Options = {}\n): string | NullObject => {\n if (!Array.isArray(token)) {\n throw new TypeError(`${token} is not an array.`);\n }\n const [, , , , detail = {}] = token;\n const { unit, value } = detail as {\n unit: string;\n value: number;\n };\n const { dimension = {} } = opt;\n if (unit === 'px') {\n return `${value}${unit}`;\n }\n const relativeValue = Number(value);\n if (unit && Number.isFinite(relativeValue)) {\n let pixelValue;\n if (Object.hasOwnProperty.call(dimension, unit)) {\n pixelValue = dimension[unit];\n } else if (typeof dimension.callback === 'function') {\n pixelValue = dimension.callback(unit);\n }\n pixelValue = Number(pixelValue);\n if (Number.isFinite(pixelValue)) {\n return `${relativeValue * pixelValue}px`;\n }\n }\n return new NullObject();\n};\n\n/**\n * parse tokens\n * @param tokens - CSS tokens\n * @param [opt] - options\n * @returns parsed tokens\n */\nexport const parseTokens = (\n tokens: CSSToken[],\n opt: Options = {}\n): string[] => {\n if (!Array.isArray(tokens)) {\n throw new TypeError(`${tokens} is not an array.`);\n }\n const { format = '' } = opt;\n const mathFunc = new Set();\n let nest = 0;\n const res: string[] = [];\n while (tokens.length) {\n const token = tokens.shift();\n if (!Array.isArray(token)) {\n throw new TypeError(`${token} is not an array.`);\n }\n const [type = '', value = ''] = token as [TokenType, string];\n switch (type) {\n case DIM: {\n if (format === VAL_SPEC && !mathFunc.has(nest)) {\n res.push(value);\n } else {\n const resolvedValue = resolveDimension(token, opt);\n if (isString(resolvedValue)) {\n res.push(resolvedValue);\n } else {\n res.push(value);\n }\n }\n break;\n }\n case FUNC:\n case PAREN_OPEN: {\n res.push(value);\n nest++;\n if (REG_FN_MATH_START.test(value)) {\n mathFunc.add(nest);\n }\n break;\n }\n case PAREN_CLOSE: {\n if (res.length) {\n const lastValue = res[res.length - 1];\n if (lastValue === ' ') {\n res.splice(-1, 1, value);\n } else {\n res.push(value);\n }\n } else {\n res.push(value);\n }\n if (mathFunc.has(nest)) {\n mathFunc.delete(nest);\n }\n nest--;\n break;\n }\n case W_SPACE: {\n if (res.length) {\n const lastValue = res[res.length - 1];\n if (\n isString(lastValue) &&\n !lastValue.endsWith('(') &&\n lastValue !== ' '\n ) {\n res.push(value);\n }\n }\n break;\n }\n default: {\n if (type !== COMMENT && type !== EOF) {\n res.push(value);\n }\n }\n }\n }\n return res;\n};\n\n/**\n * CSS calc()\n * @param value - CSS value including calc()\n * @param [opt] - options\n * @returns resolved value\n */\nexport const cssCalc = (value: string, opt: Options = {}): string => {\n const { format = '' } = opt;\n if (isString(value)) {\n if (REG_FN_VAR.test(value)) {\n if (format === VAL_SPEC) {\n return value;\n } else {\n const resolvedValue = resolveVar(value, opt);\n if (isString(resolvedValue)) {\n return resolvedValue;\n } else {\n return '';\n }\n }\n } else if (!REG_FN_CALC.test(value)) {\n return value;\n }\n value = value.toLowerCase().trim();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'cssCalc',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as string;\n }\n const tokens = tokenize({ css: value });\n const values = parseTokens(tokens, opt);\n let resolvedValue: string = calc(values.join(''), {\n toCanonicalUnits: true\n });\n if (REG_FN_VAR_START.test(value)) {\n if (REG_TYPE_DIM_PCT.test(resolvedValue)) {\n const [, val, unit] = resolvedValue.match(\n REG_TYPE_DIM_PCT\n ) as MatchedRegExp;\n resolvedValue = `${roundToPrecision(Number(val), HEX)}${unit}`;\n }\n // wrap with `calc()`\n if (\n resolvedValue &&\n !REG_FN_VAR_START.test(resolvedValue) &&\n format === VAL_SPEC\n ) {\n resolvedValue = `calc(${resolvedValue})`;\n }\n }\n if (format === VAL_SPEC) {\n if (/\\s[-+*/]\\s/.test(resolvedValue) && !resolvedValue.includes('NaN')) {\n resolvedValue = serializeCalc(resolvedValue, opt);\n } else if (REG_FN_CALC_NUM.test(resolvedValue)) {\n const [, val] = resolvedValue.match(REG_FN_CALC_NUM) as MatchedRegExp;\n resolvedValue = `calc(${roundToPrecision(Number(val), HEX)})`;\n }\n }\n setCache(cacheKey, resolvedValue);\n return resolvedValue;\n};\n","/**\n * css-gradient\n */\n\nimport { CacheItem, createCacheKey, getCache, setCache } from './cache';\nimport { isString } from './common';\nimport { MatchedRegExp, Options } from './typedef';\nimport { isColor, splitValue } from './util';\n\n/* constants */\nimport {\n ANGLE,\n CS_HUE,\n CS_RECT,\n LENGTH,\n NUM,\n NUM_POSITIVE,\n PCT\n} from './constant';\nconst NAMESPACE = 'css-gradient';\nconst DIM_ANGLE = `${NUM}(?:${ANGLE})`;\nconst DIM_ANGLE_PCT = `${DIM_ANGLE}|${PCT}`;\nconst DIM_LEN = `${NUM}(?:${LENGTH})|0`;\nconst DIM_LEN_PCT = `${DIM_LEN}|${PCT}`;\nconst DIM_LEN_PCT_POSI = `${NUM_POSITIVE}(?:${LENGTH}|%)|0`;\nconst DIM_LEN_POSI = `${NUM_POSITIVE}(?:${LENGTH})|0`;\nconst CTR = 'center';\nconst L_R = 'left|right';\nconst T_B = 'top|bottom';\nconst S_E = 'start|end';\nconst AXIS_X = `${L_R}|x-(?:${S_E})`;\nconst AXIS_Y = `${T_B}|y-(?:${S_E})`;\nconst BLOCK = `block-(?:${S_E})`;\nconst INLINE = `inline-(?:${S_E})`;\nconst POS_1 = `${CTR}|${AXIS_X}|${AXIS_Y}|${BLOCK}|${INLINE}|${DIM_LEN_PCT}`;\nconst POS_2 = [\n `(?:${CTR}|${AXIS_X})\\\\s+(?:${CTR}|${AXIS_Y})`,\n `(?:${CTR}|${AXIS_Y})\\\\s+(?:${CTR}|${AXIS_X})`,\n `(?:${CTR}|${AXIS_X}|${DIM_LEN_PCT})\\\\s+(?:${CTR}|${AXIS_Y}|${DIM_LEN_PCT})`,\n `(?:${CTR}|${BLOCK})\\\\s+(?:${CTR}|${INLINE})`,\n `(?:${CTR}|${INLINE})\\\\s+(?:${CTR}|${BLOCK})`,\n `(?:${CTR}|${S_E})\\\\s+(?:${CTR}|${S_E})`\n].join('|');\nconst POS_4 = [\n `(?:${AXIS_X})\\\\s+(?:${DIM_LEN_PCT})\\\\s+(?:${AXIS_Y})\\\\s+(?:${DIM_LEN_PCT})`,\n `(?:${AXIS_Y})\\\\s+(?:${DIM_LEN_PCT})\\\\s+(?:${AXIS_X})\\\\s+(?:${DIM_LEN_PCT})`,\n `(?:${BLOCK})\\\\s+(?:${DIM_LEN_PCT})\\\\s+(?:${INLINE})\\\\s+(?:${DIM_LEN_PCT})`,\n `(?:${INLINE})\\\\s+(?:${DIM_LEN_PCT})\\\\s+(?:${BLOCK})\\\\s+(?:${DIM_LEN_PCT})`,\n `(?:${S_E})\\\\s+(?:${DIM_LEN_PCT})\\\\s+(?:${S_E})\\\\s+(?:${DIM_LEN_PCT})`\n].join('|');\nconst RAD_EXTENT = '(?:clos|farth)est-(?:corner|side)';\nconst RAD_SIZE = [\n `${RAD_EXTENT}(?:\\\\s+${RAD_EXTENT})?`,\n `${DIM_LEN_POSI}`,\n `(?:${DIM_LEN_PCT_POSI})\\\\s+(?:${DIM_LEN_PCT_POSI})`\n].join('|');\nconst RAD_SHAPE = 'circle|ellipse';\nconst FROM_ANGLE = `from\\\\s+${DIM_ANGLE}`;\nconst AT_POSITION = `at\\\\s+(?:${POS_1}|${POS_2}|${POS_4})`;\nconst TO_SIDE_CORNER = `to\\\\s+(?:(?:${L_R})(?:\\\\s(?:${T_B}))?|(?:${T_B})(?:\\\\s(?:${L_R}))?)`;\nconst IN_COLOR_SPACE = `in\\\\s+(?:${CS_RECT}|${CS_HUE})`;\n\n/* type definitions */\n/**\n * @type ColorStopList - list of color stops\n */\ntype ColorStopList = [string, string, ...string[]];\n\n/**\n * @typedef Gradient - parsed CSS gradient\n * @property value - input value\n * @property type - gradient type\n * @property [gradientLine] - gradient line\n * @property colorStopList - list of color stops\n */\ninterface Gradient {\n value: string;\n type: string;\n gradientLine?: string;\n colorStopList: ColorStopList;\n}\n\n/* regexp */\nconst REG_GRAD = /^(?:repeating-)?(?:conic|linear|radial)-gradient\\(/;\nconst REG_GRAD_CAPT = /^((?:repeating-)?(?:conic|linear|radial)-gradient)\\(/;\n\n/**\n * get gradient type\n * @param value - gradient value\n * @returns gradient type\n */\nexport const getGradientType = (value: string): string => {\n if (isString(value)) {\n value = value.trim();\n if (REG_GRAD.test(value)) {\n const [, type] = value.match(REG_GRAD_CAPT) as MatchedRegExp;\n return type;\n }\n }\n return '';\n};\n\n/**\n * validate gradient line\n * @param value - gradient line value\n * @param type - gradient type\n * @returns result\n */\nexport const validateGradientLine = (value: string, type: string): boolean => {\n if (isString(value) && isString(type)) {\n value = value.trim();\n type = type.trim();\n let lineSyntax = '';\n if (/^(?:repeating-)?linear-gradient$/.test(type)) {\n /*\n * <linear-gradient-line> = [\n * [ <angle> | to <side-or-corner> ] ||\n * <color-interpolation-method>\n * ]\n */\n lineSyntax = [\n `(?:${DIM_ANGLE}|${TO_SIDE_CORNER})(?:\\\\s+${IN_COLOR_SPACE})?`,\n `${IN_COLOR_SPACE}(?:\\\\s+(?:${DIM_ANGLE}|${TO_SIDE_CORNER}))?`\n ].join('|');\n } else if (/^(?:repeating-)?radial-gradient$/.test(type)) {\n /*\n * <radial-gradient-line> = [\n * [ [ <radial-shape> || <radial-size> ]? [ at <position> ]? ] ||\n * <color-interpolation-method>]?\n */\n lineSyntax = [\n `(?:${RAD_SHAPE})(?:\\\\s+(?:${RAD_SIZE}))?(?:\\\\s+${AT_POSITION})?(?:\\\\s+${IN_COLOR_SPACE})?`,\n `(?:${RAD_SIZE})(?:\\\\s+(?:${RAD_SHAPE}))?(?:\\\\s+${AT_POSITION})?(?:\\\\s+${IN_COLOR_SPACE})?`,\n `${AT_POSITION}(?:\\\\s+${IN_COLOR_SPACE})?`,\n `${IN_COLOR_SPACE}(?:\\\\s+${RAD_SHAPE})(?:\\\\s+(?:${RAD_SIZE}))?(?:\\\\s+${AT_POSITION})?`,\n `${IN_COLOR_SPACE}(?:\\\\s+${RAD_SIZE})(?:\\\\s+(?:${RAD_SHAPE}))?(?:\\\\s+${AT_POSITION})?`,\n `${IN_COLOR_SPACE}(?:\\\\s+${AT_POSITION})?`\n ].join('|');\n } else if (/^(?:repeating-)?conic-gradient$/.test(type)) {\n /*\n * <conic-gradient-line> = [\n * [ [ from <angle> ]? [ at <position> ]? ] ||\n * <color-interpolation-method>\n * ]\n */\n lineSyntax = [\n `${FROM_ANGLE}(?:\\\\s+${AT_POSITION})?(?:\\\\s+${IN_COLOR_SPACE})?`,\n `${AT_POSITION}(?:\\\\s+${IN_COLOR_SPACE})?`,\n `${IN_COLOR_SPACE}(?:\\\\s+${FROM_ANGLE})?(?:\\\\s+${AT_POSITION})?`\n ].join('|');\n }\n if (lineSyntax) {\n const reg = new RegExp(`^(?:${lineSyntax})$`);\n return reg.test(value);\n }\n }\n return false;\n};\n\n/**\n * validate color stop list\n * @param list\n * @param type\n * @param [opt]\n * @returns result\n */\nexport const validateColorStopList = (\n list: string[],\n type: string,\n opt: Options = {}\n): boolean => {\n if (Array.isArray(list) && list.length > 1) {\n const dimension = /^(?:repeating-)?conic-gradient$/.test(type)\n ? DIM_ANGLE_PCT\n : DIM_LEN_PCT;\n const regColorHint = new RegExp(`^(?:${dimension})$`);\n const regDimension = new RegExp(`(?:\\\\s+(?:${dimension})){1,2}$`);\n const arr = [];\n for (const item of list) {\n if (isString(item)) {\n if (regColorHint.test(item)) {\n arr.push('hint');\n } else {\n const color = item.replace(regDimension, '');\n if (isColor(color, opt)) {\n arr.push('color');\n } else {\n return false;\n }\n }\n }\n }\n const value = arr.join(',');\n return /^color(?:,(?:hint,)?color)+$/.test(value);\n }\n return false;\n};\n\n/**\n * parse CSS gradient\n * @param value - gradient value\n * @param [opt] - options\n * @returns parsed result\n */\nexport const parseGradient = (\n value: string,\n opt: Options = {}\n): Gradient | null => {\n if (isString(value)) {\n value = value.trim();\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'parseGradient',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return null;\n }\n return cachedResult.item as Gradient;\n }\n const type = getGradientType(value);\n const gradValue = value.replace(REG_GRAD, '').replace(/\\)$/, '');\n if (type && gradValue) {\n const [lineOrColorStop = '', ...colorStops] = splitValue(gradValue, {\n delimiter: ','\n });\n const dimension = /^(?:repeating-)?conic-gradient$/.test(type)\n ? DIM_ANGLE_PCT\n : DIM_LEN_PCT;\n const regDimension = new RegExp(`(?:\\\\s+(?:${dimension})){1,2}$`);\n let isColorStop = false;\n if (regDimension.test(lineOrColorStop)) {\n const colorStop = lineOrColorStop.replace(regDimension, '');\n if (isColor(colorStop, opt)) {\n isColorStop = true;\n }\n } else if (isColor(lineOrColorStop, opt)) {\n isColorStop = true;\n }\n if (isColorStop) {\n colorStops.unshift(lineOrColorStop);\n const valid = validateColorStopList(colorStops, type, opt);\n if (valid) {\n const res: Gradient = {\n value,\n type,\n colorStopList: colorStops as ColorStopList\n };\n setCache(cacheKey, res);\n return res;\n }\n } else if (colorStops.length > 1) {\n const gradientLine = lineOrColorStop;\n const valid =\n validateGradientLine(gradientLine, type) &&\n validateColorStopList(colorStops, type, opt);\n if (valid) {\n const res: Gradient = {\n value,\n type,\n gradientLine,\n colorStopList: colorStops as ColorStopList\n };\n setCache(cacheKey, res);\n return res;\n }\n }\n }\n setCache(cacheKey, null);\n return null;\n }\n return null;\n};\n\n/**\n * is CSS gradient\n * @param value - CSS value\n * @param [opt] - options\n * @returns result\n */\nexport const isGradient = (value: string, opt: Options = {}): boolean => {\n const gradient = parseGradient(value, opt);\n return gradient !== null;\n};\n","/**\n * convert\n */\n\nimport {\n CacheItem,\n NullObject,\n createCacheKey,\n getCache,\n setCache\n} from './cache';\nimport {\n convertColorToHsl,\n convertColorToHwb,\n convertColorToLab,\n convertColorToLch,\n convertColorToOklab,\n convertColorToOklch,\n convertColorToRgb,\n numberToHexString,\n parseColorFunc,\n parseColorValue\n} from './color';\nimport { isString } from './common';\nimport { cssCalc } from './css-calc';\nimport { resolveVar } from './css-var';\nimport { resolveRelativeColor } from './relative-color';\nimport { resolveColor } from './resolve';\nimport { ColorChannels, ComputedColorChannels, Options } from './typedef';\n\n/* constants */\nimport { SYN_FN_CALC, SYN_FN_REL, SYN_FN_VAR, VAL_COMP } from './constant';\nconst NAMESPACE = 'convert';\n\n/* regexp */\nconst REG_FN_CALC = new RegExp(SYN_FN_CALC);\nconst REG_FN_REL = new RegExp(SYN_FN_REL);\nconst REG_FN_VAR = new RegExp(SYN_FN_VAR);\n\n/**\n * pre process\n * @param value - CSS color value\n * @param [opt] - options\n * @returns value\n */\nexport const preProcess = (\n value: string,\n opt: Options = {}\n): string | NullObject => {\n if (isString(value)) {\n value = value.trim();\n if (!value) {\n return new NullObject();\n }\n } else {\n return new NullObject();\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'preProcess',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return cachedResult as NullObject;\n }\n return cachedResult.item as string;\n }\n if (REG_FN_VAR.test(value)) {\n const resolvedValue = resolveVar(value, opt);\n if (isString(resolvedValue)) {\n value = resolvedValue;\n } else {\n setCache(cacheKey, null);\n return new NullObject();\n }\n }\n if (REG_FN_REL.test(value)) {\n const resolvedValue = resolveRelativeColor(value, opt);\n if (isString(resolvedValue)) {\n value = resolvedValue;\n } else {\n setCache(cacheKey, null);\n return new NullObject();\n }\n } else if (REG_FN_CALC.test(value)) {\n value = cssCalc(value, opt);\n }\n if (value.startsWith('color-mix')) {\n const clonedOpt = structuredClone(opt);\n clonedOpt.format = VAL_COMP;\n clonedOpt.nullable = true;\n const resolvedValue = resolveColor(value, clonedOpt);\n setCache(cacheKey, resolvedValue);\n return resolvedValue;\n }\n setCache(cacheKey, value);\n return value;\n};\n\n/**\n * convert number to hex string\n * @param value - numeric value\n * @returns hex string: 00..ff\n */\nexport const numberToHex = (value: number): string => {\n const hex = numberToHexString(value);\n return hex;\n};\n\n/**\n * convert color to hex\n * @param value - CSS color value\n * @param [opt] - options\n * @param [opt.alpha] - enable alpha channel\n * @returns #rrggbb | #rrggbbaa | null\n */\nexport const colorToHex = (value: string, opt: Options = {}): string | null => {\n if (isString(value)) {\n const resolvedValue = preProcess(value, opt);\n if (resolvedValue instanceof NullObject) {\n return null;\n }\n value = resolvedValue.toLowerCase();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const { alpha = false } = opt;\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'colorToHex',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n if (cachedResult.isNull) {\n return null;\n }\n return cachedResult.item as string;\n }\n let hex;\n opt.nullable = true;\n if (alpha) {\n opt.format = 'hexAlpha';\n hex = resolveColor(value, opt);\n } else {\n opt.format = 'hex';\n hex = resolveColor(value, opt);\n }\n if (isString(hex)) {\n setCache(cacheKey, hex);\n return hex;\n }\n setCache(cacheKey, null);\n return null;\n};\n\n/**\n * convert color to hsl\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels - [h, s, l, alpha]\n */\nexport const colorToHsl = (value: string, opt: Options = {}): ColorChannels => {\n if (isString(value)) {\n const resolvedValue = preProcess(value, opt);\n if (resolvedValue instanceof NullObject) {\n return [0, 0, 0, 0];\n }\n value = resolvedValue.toLowerCase();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'colorToHsl',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as ColorChannels;\n }\n opt.format = 'hsl';\n const hsl = convertColorToHsl(value, opt) as ColorChannels;\n setCache(cacheKey, hsl);\n return hsl;\n};\n\n/**\n * convert color to hwb\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels - [h, w, b, alpha]\n */\nexport const colorToHwb = (value: string, opt: Options = {}): ColorChannels => {\n if (isString(value)) {\n const resolvedValue = preProcess(value, opt);\n if (resolvedValue instanceof NullObject) {\n return [0, 0, 0, 0];\n }\n value = resolvedValue.toLowerCase();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'colorToHwb',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as ColorChannels;\n }\n opt.format = 'hwb';\n const hwb = convertColorToHwb(value, opt) as ColorChannels;\n setCache(cacheKey, hwb);\n return hwb;\n};\n\n/**\n * convert color to lab\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels - [l, a, b, alpha]\n */\nexport const colorToLab = (value: string, opt: Options = {}): ColorChannels => {\n if (isString(value)) {\n const resolvedValue = preProcess(value, opt);\n if (resolvedValue instanceof NullObject) {\n return [0, 0, 0, 0];\n }\n value = resolvedValue.toLowerCase();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'colorToLab',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as ColorChannels;\n }\n const lab = convertColorToLab(value, opt) as ColorChannels;\n setCache(cacheKey, lab);\n return lab;\n};\n\n/**\n * convert color to lch\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels - [l, c, h, alpha]\n */\nexport const colorToLch = (value: string, opt: Options = {}): ColorChannels => {\n if (isString(value)) {\n const resolvedValue = preProcess(value, opt);\n if (resolvedValue instanceof NullObject) {\n return [0, 0, 0, 0];\n }\n value = resolvedValue.toLowerCase();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'colorToLch',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as ColorChannels;\n }\n const lch = convertColorToLch(value, opt) as ColorChannels;\n setCache(cacheKey, lch);\n return lch;\n};\n\n/**\n * convert color to oklab\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels - [l, a, b, alpha]\n */\nexport const colorToOklab = (\n value: string,\n opt: Options = {}\n): ColorChannels => {\n if (isString(value)) {\n const resolvedValue = preProcess(value, opt);\n if (resolvedValue instanceof NullObject) {\n return [0, 0, 0, 0];\n }\n value = resolvedValue.toLowerCase();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'colorToOklab',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as ColorChannels;\n }\n const lab = convertColorToOklab(value, opt) as ColorChannels;\n setCache(cacheKey, lab);\n return lab;\n};\n\n/**\n * convert color to oklch\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels - [l, c, h, alpha]\n */\nexport const colorToOklch = (\n value: string,\n opt: Options = {}\n): ColorChannels => {\n if (isString(value)) {\n const resolvedValue = preProcess(value, opt);\n if (resolvedValue instanceof NullObject) {\n return [0, 0, 0, 0];\n }\n value = resolvedValue.toLowerCase();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'colorToOklch',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as ColorChannels;\n }\n const lch = convertColorToOklch(value, opt) as ColorChannels;\n setCache(cacheKey, lch);\n return lch;\n};\n\n/**\n * convert color to rgb\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels - [r, g, b, alpha]\n */\nexport const colorToRgb = (value: string, opt: Options = {}): ColorChannels => {\n if (isString(value)) {\n const resolvedValue = preProcess(value, opt);\n if (resolvedValue instanceof NullObject) {\n return [0, 0, 0, 0];\n }\n value = resolvedValue.toLowerCase();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'colorToRgb',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as ColorChannels;\n }\n const rgb = convertColorToRgb(value, opt) as ColorChannels;\n setCache(cacheKey, rgb);\n return rgb;\n};\n\n/**\n * convert color to xyz\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels - [x, y, z, alpha]\n */\nexport const colorToXyz = (value: string, opt: Options = {}): ColorChannels => {\n if (isString(value)) {\n const resolvedValue = preProcess(value, opt);\n if (resolvedValue instanceof NullObject) {\n return [0, 0, 0, 0];\n }\n value = resolvedValue.toLowerCase();\n } else {\n throw new TypeError(`${value} is not a string.`);\n }\n const cacheKey: string = createCacheKey(\n {\n namespace: NAMESPACE,\n name: 'colorToXyz',\n value\n },\n opt\n );\n const cachedResult = getCache(cacheKey);\n if (cachedResult instanceof CacheItem) {\n return cachedResult.item as ColorChannels;\n }\n let xyz;\n if (value.startsWith('color(')) {\n [, ...xyz] = parseColorFunc(value, opt) as ComputedColorChannels;\n } else {\n [, ...xyz] = parseColorValue(value, opt) as ComputedColorChannels;\n }\n setCache(cacheKey, xyz);\n return xyz as ColorChannels;\n};\n\n/**\n * convert color to xyz-d50\n * @param value - CSS color value\n * @param [opt] - options\n * @returns ColorChannels - [x, y, z, alpha]\n */\nexport const colorToXyzD50 = (\n value: string,\n opt: Options = {}\n): ColorChannels => {\n opt.d50 = true;\n return colorToXyz(value, opt);\n};\n\n/* convert */\nexport const convert = {\n colorToHex,\n colorToHsl,\n colorToHwb,\n colorToLab,\n colorToLch,\n colorToOklab,\n colorToOklch,\n colorToRgb,\n colorToXyz,\n colorToXyzD50,\n numberToHex\n};\n","/*!\n * CSS color - Resolve, parse, convert CSS color.\n * @license MIT\n * @copyright asamuzaK (Kazz)\n * @see {@link https://github.com/asamuzaK/cssColor/blob/main/LICENSE}\n */\n\nimport { cssCalc as csscalc } from './js/css-calc';\nimport { isGradient } from './js/css-gradient';\nimport { cssVar } from './js/css-var';\nimport { extractDashedIdent, isColor as iscolor, splitValue } from './js/util';\n\nexport { convert } from './js/convert';\nexport { resolve } from './js/resolve';\n/* utils */\nexport const utils = {\n cssCalc: csscalc,\n cssVar,\n extractDashedIdent,\n isColor: iscolor,\n isGradient,\n splitValue\n};\n/* TODO: remove later */\n/* alias */\nexport const isColor = utils.isColor;\nexport const cssCalc = utils.cssCalc;\n"],"names":["ParseError","e","n","t","__publicField","ParseErrorWithToken","r","stringify","o","i","s","checkIfFourCodePointsWouldStartCDO","isDigitCodePoint","isUppercaseLetterCodePoint","isLowercaseLetterCodePoint","isHexDigitCodePoint","isLetterCodePoint","isIdentStartCodePoint","isNonASCII_IdentCodePoint","isIdentCodePoint","isSurrogate","isNewLine","isWhitespace","checkIfTwoCodePointsAreAValidEscape","checkIfThreeCodePointsWouldStartAnIdentSequence","checkIfThreeCodePointsWouldStartANumber","checkIfTwoCodePointsStartAComment","checkIfThreeCodePointsWouldStartCDC","c","a","u","mirrorVariantType","mirrorVariant","consumeComment","consumeEscapedCodePoint","consumeIdentSequence","consumeHashToken","consumeNumber","consumeNumericToken","consumeWhiteSpace","Reader","consumeStringToken","checkIfCodePointsMatchURLIdent","consumeBadURL","consumeUrlToken","consumeIdentLikeToken","checkIfThreeCodePointsWouldStartAUnicodeRange","consumeUnicodeRangeToken","tokenize","tokenizer","d","p","noop","mutateUnit","ensureThatValueRoundTripsAsIdent","insertEscapedCodePoint","isToken","isTokenNumeric","isTokenWhiteSpaceOrComment","isTokenComma","isTokenComment","isTokenDelim","isTokenDimension","isTokenEOF","isTokenFunction","isTokenHash","isTokenIdent","isTokenNumber","isTokenPercentage","isTokenWhitespace","isTokenOpenParen","isTokenCloseParen","isTokenOpenSquare","isTokenOpenCurly","f","walkerIndexGenerator","consumeComponentValue","consumeSimpleBlock","consumeFunction","consumeWhitespace","l","TokenNode","ContainerNodeBaseClass","FunctionNode","h","consumeAllCommentsAndWhitespace","SimpleBlockNode","m","WhitespaceNode","CommentNode","parseComponentValue","parseCommaSeparatedListOfComponentValues","k","forEach","walk","replaceComponentValues","isSimpleBlockNode","isFunctionNode","isWhitespaceNode","isCommentNode","isWhiteSpaceOrCommentNode","isTokenNode","E","toLowerCaseAZ","I","S","y","M","T","x","P","O","W","L","U","$","Z","z","q","G","convertUnit","v","toCanonicalUnit","addition","C","g","division","isCalculation","solve","multiplication","resolveGlobalsAndConstants","unary","D","resultToCalculation","dimensionToCalculation","percentageToCalculation","numberToCalculation","solveACos","solveASin","solveATan","isDimensionOrNumber","arrayOfSameNumeric","twoOfSameNumeric","solveATan2","solveAbs","solveClamp","solveCos","solveExp","solveHypot","solveMax","solveMin","solveMod","solvePow","solveRem","solveRound","solveSign","solveSin","solveSqrt","solveTan","subtraction","solveLog","R","isNone","V","solveRandom","_a","sfc32","crc32","j","singleNodeSolver","twoCommaSeparatedNodesSolver","calc$1","A","calcWrapper","maxWrapper","variadicNodesSolver","parseRandomValueSharing","variadicArguments","Y","N","B","singleArgument","twoCommaSeparatedArguments","patchNaN","patchInfinity","patchMinusZero","patchPrecision","patchCanonicalUnit","patchCalcResult","tokenizeGlobals","F","calc","calcFromComponentValues","b","w","_","perf","warned","PROCESS","emitWarning","msg","type","code","fn","AC","AS","warnACPolyfill","reason","_b","printACPolyfillWarning","shouldWarn","isPosInt","getUintArray","max","ZeroArray","size","_constructing","_Stack","HeapCls","__privateGet","__privateSet","__privateAdd","Stack","_max","_maxSize","_dispose","_disposeAfter","_fetchMethod","_memoMethod","_size","_calculatedSize","_keyMap","_keyList","_valList","_next","_prev","_head","_tail","_free","_disposed","_sizes","_starts","_ttls","_hasDispose","_hasFetchMethod","_hasDisposeAfter","_LRUCache_instances","initializeTTLTracking_fn","_updateItemAge","_statusTTL","_setItemTTL","_isStale","initializeSizeTracking_fn","_removeItemSize","_addItemSize","_requireSize","indexes_fn","rindexes_fn","isValidIndex_fn","evict_fn","backgroundFetch_fn","isBackgroundFetch_fn","connect_fn","moveToTail_fn","delete_fn","clear_fn","_LRUCache","options","_i","_s","_st","_k","_v","sizeCalculation","ttl","ttlResolution","ttlAutopurge","updateAgeOnGet","updateAgeOnHas","allowStale","dispose","disposeAfter","noDisposeOnSet","noUpdateTTL","maxSize","maxEntrySize","fetchMethod","memoMethod","noDeleteOnFetchRejection","noDeleteOnStaleGet","allowStaleOnFetchRejection","allowStaleOnFetchAbort","ignoreFetchAbort","UintArray","__privateMethod","index","context","key","getOptions","value","thisp","deleted","entry","start","remain","arr","age","setOptions","_c","_d","_e","status","__privateWrapper","oldVal","oldValue","dt","task","val","hasOptions","peekOptions","fetchOptions","forceRefresh","signal","stale","isStale","staleVal","memoOptions","vv","fetching","ttls","starts","cachedNow","getNow","sizes","free","head","ac","fetchOpts","cb","updateCache","aborted","ignoreAbort","fetchFail","bf","eb","er","allowStaleAborted","noDelete","pcall","res","rej","fmp","pi","ni","LRUCache","isString","isStringOrNumber","_DIGIT","_COMPARE","_EXPO","_SIGN","_STEP","_TRIG","_MATH","_CALC","_VAR","ANGLE","LENGTH","NUM","NUM_POSITIVE","NONE","PCT","SYN_FN_CALC","SYN_FN_MATH_START","SYN_FN_VAR","SYN_FN_VAR_START","_ALPHA","_ALPHA_LV3","_COLOR_FUNC","_COLOR_KEY","_CS_HUE","_CS_HUE_ARC","_NUM_ANGLE","_NUM_ANGLE_NONE","_NUM_PCT_NONE","CS_HUE","CS_HUE_CAPT","CS_LAB","CS_LCH","CS_SRGB","CS_RGB","CS_XYZ","CS_RECT","CS_MIX","FN_COLOR","FN_MIX","FN_REL","FN_REL_CAPT","FN_VAR","SYN_FN_COLOR","SYN_FN_REL","SYN_HSL","SYN_HSL_LV3","SYN_LCH","SYN_MOD","SYN_RGB_LV3","SYN_COLOR_TYPE","SYN_MIX_PART","SYN_MIX","SYN_MIX_CAPT","VAL_COMP","VAL_MIX","VAL_SPEC","NAMESPACE","PPTH","HALF","DUO","TRIA","QUAD","OCT","DEC","DOZ","HEX","SEXA","DEG_HALF","DEG","MAX_PCT","MAX_RGB","POW_SQR","POW_CUBE","POW_LINEAR","LINEAR_COEF","LINEAR_OFFSET","LAB_L","LAB_A","LAB_B","LAB_EPSILON","LAB_KAPPA","D50","MATRIX_D50_TO_D65","MATRIX_D65_TO_D50","MATRIX_L_RGB_TO_XYZ","MATRIX_XYZ_TO_L_RGB","MATRIX_XYZ_TO_LMS","MATRIX_LMS_TO_XYZ","MATRIX_OKLAB_TO_LMS","MATRIX_LMS_TO_OKLAB","MATRIX_P3_TO_XYZ","MATRIX_REC2020_TO_XYZ","MATRIX_A98_TO_XYZ","MATRIX_PROPHOTO_TO_XYZ_D50","REG_COLOR","REG_CS_HUE","REG_CS_XYZ","REG_CURRENT","REG_FN_COLOR","REG_HSL","REG_HWB","REG_LAB","REG_LCH","REG_MIX","REG_MIX_CAPT","REG_MIX_NEST","REG_OKLAB","REG_OKLCH","REG_SPEC","NAMED_COLORS","cacheInvalidColorValue","cacheKey","format","nullable","setCache","NullObject","resolveInvalidColorValue","validateColorComponents","opt","alpha","minLength","maxLength","minRange","maxRange","validateRange","transformMatrix","mtx","vct","skip","r1c1","r1c2","r1c3","r2c1","r2c2","r2c3","r3c1","r3c2","r3c3","v1","v2","v3","p1","p2","p3","normalizeColorComponents","colorA","colorB","validatedColorA","validatedColorB","numberToHexString","hex","angleToDeg","angle","GRAD","RAD","reg","unit","deg","parseAlpha","parseHexAlpha","alphaMap","transformRgbToLinearRgb","rgb","rr","gg","bb","COND_POW","transformRgbToXyz","transformLinearRgbToRgb","round","transformXyzToRgb","xyz","transformXyzToHsl","min","transformXyzToHwb","wh","bk","transformXyzToOklab","xyzLms","lPct","transformXyzToOklch","transformXyzD50ToRgb","xyzD65","transformXyzD50ToLab","xyzD50","f0","f1","f2","transformXyzD50ToLch","convertRgbToHex","aa","convertHexToRgb","convertHexToLinearRgb","convertHexToXyz","parseRgb","v4","roundToPrecision","parseHsl","sa","rk","gk","parseHwb","factor","parseLab","COEF_PCT","fl","fa","fb","powFl","powFa","powFb","parseLch","parseOklab","parseOklch","cc","parseColorFunc","colorSpace","d50","cs","linearRgb","ALPHA","BETA","REC_COEF","cl","POW_A98","parseColorValue","resolveColorValue","createCacheKey","cachedResult","getCache","CacheItem","cachedItem","resolveColorFunc","convertColorToLinearRgb","convertColorToRgb","convertColorToXyz","convertColorToHsl","convertColorToHwb","convertColorToLab","convertColorToLch","convertColorToOklab","convertColorToOklch","resolveColorMix","nestedItems","regColorSpace","items","item","hueArc","pctA","pctB","itemA","itemB","regA","regB","itemPart","itemPartCapt","regItemPart","regLastItem","regColorPart","colorPartA","colorPartB","pA","pB","valueA","valueB","rgbA","rgbB","rrA","ggA","bbA","aaA","rrB","ggB","bbB","aaB","rNone","gNone","bNone","alphaNone","rA","gA","bA","alphaA","rB","gB","bB","alphaB","factorA","factorB","xyzA","xyzB","xxA","yyA","zzA","xxB","yyB","zzB","xNone","yNone","zNone","xA","yA","zA","xB","yB","zB","hslA","hslB","hhA","ssA","llA","hhB","ssB","llB","hA","sA","lA","hB","sB","lB","interpolateHue","lchA","lchB","ccA","ccB","lNone","cNone","hNone","cA","cB","labA","labB","alA","alB","aNone","aA","aB","aO","bO","PAREN_CLOSE","COMMENT","EOF","IDENT","W_SPACE","TokenType","REG_FN_CALC","REG_FN_VAR","resolveCustomProperty","tokens","customProperty","token","restTokens","resolveAsColor","lastValue","isColor","resolvedValue","resolvedItem","resolveVar","cssCalc","parseTokens","values","color","cssVar","multiplyMatrices","D50_to_D65","D65_to_D50","HSL_to_sRGB","HSL_to_sRGB_channel","HWB_to_sRGB","LCH_to_Lab","Lab_to_LCH","Lab_to_XYZ","OKLCH_to_OKLab","OKLab_to_OKLCH","OKLab_to_XYZ","XYZ_to_Lab","compute_f","XYZ_to_OKLab","XYZ_to_lin_P3","XYZ_to_lin_sRGB","gam_2020_channel","gam_sRGB","gam_sRGB_channel","gam_P3","gam_ProPhoto_channel","gam_a98rgb_channel","X","lin_2020_channel","lin_sRGB","lin_sRGB_channel","lin_P3","lin_P3_to_XYZ","lin_ProPhoto_channel","lin_a98rgb_channel","lin_sRGB_to_XYZ","sRGB_to_HSL","sRGB_to_Hue","sRGB_to_XYZ_D50","XYZ_D50_to_sRGB","HSL_to_XYZ_D50","XYZ_D50_to_HSL","HWB_to_XYZ_D50","XYZ_D50_to_HWB","Lab_to_XYZ_D50","XYZ_D50_to_Lab","LCH_to_XYZ_D50","XYZ_D50_to_LCH","OKLab_to_XYZ_D50","XYZ_D50_to_OKLab","OKLCH_to_XYZ_D50","XYZ_D50_to_OKLCH","lin_sRGB_to_XYZ_D50","XYZ_D50_to_lin_sRGB","a98_RGB_to_XYZ_D50","XYZ_D50_to_a98_RGB","P3_to_XYZ_D50","XYZ_D50_to_P3","rec_2020_to_XYZ_D50","XYZ_D50_to_rec_2020","ProPhoto_RGB_to_XYZ_D50","XYZ_D50_to_ProPhoto","XYZ_D65_to_XYZ_D50","XYZ_D50_to_XYZ_D65","inGamut","clip","mapGamutRayTrace","rayTraceBox","luminance","contrast_ratio_wcag_2_1","se","ue","convertNaNToZero","colorData_to_XYZ_D50","H","ce","colorDataTo","carryForwardMissingComponents","convertPowerlessComponentsToMissingComponents","reducePrecision","normalizeRelativeColorDataChannels","dummyNumberToken","noneToZeroInRelativeColorDataChannels","normalize","ie","normalize_Color_ChannelValues","he","color$1","J","Q","ee","ae","te","le","colorSpaceNameToColorNotation","ne","me","Ne","pe","colorMix","colorMixPolar","colorMixComponents","colorMixRectangular","fillInMissingComponent","premultiply","interpolate","un_premultiply","normalizeHue","normalize_legacy_HSL_ChannelValues","normalize_modern_HSL_ChannelValues","threeChannelLegacySyntax","threeChannelSpaceSeparated","hsl","hslCommaSeparated","hslSpaceSeparated","normalize_HWB_ChannelValues","normalize_Lab_ChannelValues","lab","normalize_LCH_ChannelValues","lch","be","namedColor","normalize_OKLab_ChannelValues","oklab","normalize_OKLCH_ChannelValues","oklch","normalize_legacy_sRGB_ChannelValues","normalize_modern_sRGB_ChannelValues","rgbCommaSeparated","rgbSpaceSeparated","XYZ_D50_to_sRGB_Gamut","oklch_to_lin_srgb","lin_srgb_to_oklch","K","contrastColor","DIM","FUNC","PAREN_OPEN","KEY_NONE","SyntaxFlag","REG_COLOR_CAPT","REG_CS_HSL","REG_CS_CIE","REG_FN_MATH_START","REG_FN_REL","REG_FN_REL_CAPT","REG_FN_REL_START","resolveColorChannels","colorChannel","mathFunc","channels","nest","func","detail","channel","resolveDimension","channelValues","serializeCalc","extractOriginColor","currentColor","originColor","restValue","resolvedOriginColor","resolveColor","channelValue","tokenValue","resolveRelativeColor","components","parsedComponents","colorParser","alphaComponent","channelsComponent","colorNotation","syntaxFlags","hasNone","RGB_TRANSPARENT","scs","resolve","COMMA","DELIM","splitValue","delimiter","preserveComment","regDelimiter","str","extractDashedIdent","valueToJsonString","_key","replacedValue","bit","hueA","hueB","arc","MAX_CACHE","_isNull","_item","isNull","lruCache","keyData","dimension","REG_FN_CALC_NUM","REG_FN_VAR_START","REG_OPERATOR","REG_TYPE_DIM","REG_TYPE_DIM_PCT","REG_TYPE_PCT","_hasNum","_numSum","_numMul","_hasPct","_pctSum","_pctMul","_hasDim","_dimSum","_dimSub","_dimMul","_dimDiv","_hasEtc","_etcSum","_etcSub","_etcMul","_etcDiv","Calculator","valA","unitA","valB","unitB","num","dim","mul","div","sum","sub","sortCalcValues","finalize","end","sortedValues","cal","operator","sortedValue","numValue","strValue","finalizedValues","startIndex","endIndex","slicedValues","serializedValue","serializedCalc","relativeValue","pixelValue","DIM_ANGLE","DIM_ANGLE_PCT","DIM_LEN","DIM_LEN_PCT","DIM_LEN_PCT_POSI","DIM_LEN_POSI","CTR","L_R","T_B","S_E","AXIS_X","AXIS_Y","BLOCK","INLINE","POS_1","POS_2","POS_4","RAD_EXTENT","RAD_SIZE","RAD_SHAPE","FROM_ANGLE","AT_POSITION","TO_SIDE_CORNER","IN_COLOR_SPACE","REG_GRAD","REG_GRAD_CAPT","getGradientType","validateGradientLine","lineSyntax","validateColorStopList","list","regColorHint","regDimension","parseGradient","gradValue","lineOrColorStop","colorStops","isColorStop","colorStop","gradientLine","isGradient","preProcess","clonedOpt","numberToHex","colorToHex","colorToHsl","colorToHwb","hwb","colorToLab","colorToLch","colorToOklab","colorToOklch","colorToRgb","colorToXyz","colorToXyzD50","convert","utils","csscalc","iscolor"],"mappings":"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","x_google_ignoreList":[0,1,2,3,8,9]}