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.
- package/package.json +7 -18
- package/packages/cli/package.json +1 -5
- package/packages/core/package.json +1 -5
- package/packages/cli/node_modules/@asamuzakjp/css-color/LICENSE +0 -21
- package/packages/cli/node_modules/@asamuzakjp/css-color/README.md +0 -316
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/browser/css-color.min.js +0 -220
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/browser/css-color.min.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/cjs/index.cjs +0 -5484
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/cjs/index.cjs.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/cjs/index.d.cts +0 -109
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/index.d.ts +0 -18
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/index.js +0 -30
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/index.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/cache.d.ts +0 -44
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/cache.js +0 -82
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/cache.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/color.d.ts +0 -537
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/color.js +0 -2792
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/color.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/common.d.ts +0 -21
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/common.js +0 -7
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/common.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/constant.d.ts +0 -41
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/constant.js +0 -97
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/constant.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/convert.d.ts +0 -99
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/convert.js +0 -361
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/convert.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-calc.d.ts +0 -89
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-calc.js +0 -860
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-calc.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-gradient.d.ts +0 -54
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-gradient.js +0 -195
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-gradient.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-var.d.ts +0 -31
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-var.js +0 -195
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/css-var.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/relative-color.d.ts +0 -29
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/relative-color.js +0 -487
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/relative-color.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/resolve.d.ts +0 -52
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/resolve.js +0 -288
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/resolve.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/typedef.d.ts +0 -79
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/util.d.ts +0 -45
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/util.js +0 -279
- package/packages/cli/node_modules/@asamuzakjp/css-color/dist/esm/js/util.js.map +0 -1
- package/packages/cli/node_modules/@asamuzakjp/css-color/package.json +0 -81
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/index.ts +0 -27
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/cache.ts +0 -114
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/color.ts +0 -3459
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/common.ts +0 -31
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/constant.ts +0 -66
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/convert.ts +0 -469
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/css-calc.ts +0 -965
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/css-gradient.ts +0 -289
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/css-var.ts +0 -250
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/relative-color.ts +0 -580
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/resolve.ts +0 -379
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/typedef.ts +0 -87
- package/packages/cli/node_modules/@asamuzakjp/css-color/src/js/util.ts +0 -336
- package/packages/cli/node_modules/@types/node/LICENSE +0 -21
- package/packages/cli/node_modules/@types/node/README.md +0 -15
- package/packages/cli/node_modules/@types/node/assert/strict.d.ts +0 -8
- package/packages/cli/node_modules/@types/node/assert.d.ts +0 -1062
- package/packages/cli/node_modules/@types/node/async_hooks.d.ts +0 -605
- package/packages/cli/node_modules/@types/node/buffer.buffer.d.ts +0 -462
- package/packages/cli/node_modules/@types/node/buffer.d.ts +0 -1932
- package/packages/cli/node_modules/@types/node/child_process.d.ts +0 -1452
- package/packages/cli/node_modules/@types/node/cluster.d.ts +0 -578
- package/packages/cli/node_modules/@types/node/compatibility/disposable.d.ts +0 -16
- package/packages/cli/node_modules/@types/node/compatibility/index.d.ts +0 -9
- package/packages/cli/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
- package/packages/cli/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
- package/packages/cli/node_modules/@types/node/console.d.ts +0 -452
- package/packages/cli/node_modules/@types/node/constants.d.ts +0 -21
- package/packages/cli/node_modules/@types/node/crypto.d.ts +0 -4570
- package/packages/cli/node_modules/@types/node/dgram.d.ts +0 -596
- package/packages/cli/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
- package/packages/cli/node_modules/@types/node/dns/promises.d.ts +0 -479
- package/packages/cli/node_modules/@types/node/dns.d.ts +0 -871
- package/packages/cli/node_modules/@types/node/domain.d.ts +0 -170
- package/packages/cli/node_modules/@types/node/events.d.ts +0 -977
- package/packages/cli/node_modules/@types/node/fs/promises.d.ts +0 -1248
- package/packages/cli/node_modules/@types/node/fs.d.ts +0 -4362
- package/packages/cli/node_modules/@types/node/globals.d.ts +0 -170
- package/packages/cli/node_modules/@types/node/globals.typedarray.d.ts +0 -21
- package/packages/cli/node_modules/@types/node/http.d.ts +0 -2031
- package/packages/cli/node_modules/@types/node/http2.d.ts +0 -2623
- package/packages/cli/node_modules/@types/node/https.d.ts +0 -549
- package/packages/cli/node_modules/@types/node/index.d.ts +0 -93
- package/packages/cli/node_modules/@types/node/inspector.generated.d.ts +0 -3966
- package/packages/cli/node_modules/@types/node/module.d.ts +0 -539
- package/packages/cli/node_modules/@types/node/net.d.ts +0 -1011
- package/packages/cli/node_modules/@types/node/os.d.ts +0 -495
- package/packages/cli/node_modules/@types/node/package.json +0 -140
- package/packages/cli/node_modules/@types/node/path.d.ts +0 -200
- package/packages/cli/node_modules/@types/node/perf_hooks.d.ts +0 -963
- package/packages/cli/node_modules/@types/node/process.d.ts +0 -1956
- package/packages/cli/node_modules/@types/node/punycode.d.ts +0 -117
- package/packages/cli/node_modules/@types/node/querystring.d.ts +0 -152
- package/packages/cli/node_modules/@types/node/readline/promises.d.ts +0 -162
- package/packages/cli/node_modules/@types/node/readline.d.ts +0 -589
- package/packages/cli/node_modules/@types/node/repl.d.ts +0 -430
- package/packages/cli/node_modules/@types/node/sea.d.ts +0 -153
- package/packages/cli/node_modules/@types/node/stream/consumers.d.ts +0 -38
- package/packages/cli/node_modules/@types/node/stream/promises.d.ts +0 -90
- package/packages/cli/node_modules/@types/node/stream/web.d.ts +0 -533
- package/packages/cli/node_modules/@types/node/stream.d.ts +0 -1668
- package/packages/cli/node_modules/@types/node/string_decoder.d.ts +0 -67
- package/packages/cli/node_modules/@types/node/test.d.ts +0 -1787
- package/packages/cli/node_modules/@types/node/timers/promises.d.ts +0 -108
- package/packages/cli/node_modules/@types/node/timers.d.ts +0 -286
- package/packages/cli/node_modules/@types/node/tls.d.ts +0 -1231
- package/packages/cli/node_modules/@types/node/trace_events.d.ts +0 -197
- package/packages/cli/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -460
- package/packages/cli/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -19
- package/packages/cli/node_modules/@types/node/ts5.6/index.d.ts +0 -93
- package/packages/cli/node_modules/@types/node/tty.d.ts +0 -208
- package/packages/cli/node_modules/@types/node/url.d.ts +0 -964
- package/packages/cli/node_modules/@types/node/util.d.ts +0 -2331
- package/packages/cli/node_modules/@types/node/v8.d.ts +0 -808
- package/packages/cli/node_modules/@types/node/vm.d.ts +0 -1030
- package/packages/cli/node_modules/@types/node/wasi.d.ts +0 -181
- package/packages/cli/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
- package/packages/cli/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
- package/packages/cli/node_modules/@types/node/web-globals/events.d.ts +0 -97
- package/packages/cli/node_modules/@types/node/web-globals/fetch.d.ts +0 -46
- package/packages/cli/node_modules/@types/node/worker_threads.d.ts +0 -715
- package/packages/cli/node_modules/@types/node/zlib.d.ts +0 -539
- package/packages/cli/node_modules/cssstyle/LICENSE +0 -20
- package/packages/cli/node_modules/cssstyle/README.md +0 -11
- package/packages/cli/node_modules/cssstyle/lib/CSSStyleDeclaration.js +0 -613
- package/packages/cli/node_modules/cssstyle/lib/allExtraProperties.js +0 -49
- package/packages/cli/node_modules/cssstyle/lib/allWebkitProperties.js +0 -114
- package/packages/cli/node_modules/cssstyle/lib/generated/allProperties.js +0 -615
- package/packages/cli/node_modules/cssstyle/lib/generated/implementedProperties.js +0 -79
- package/packages/cli/node_modules/cssstyle/lib/generated/properties.js +0 -2673
- package/packages/cli/node_modules/cssstyle/lib/parsers.js +0 -537
- package/packages/cli/node_modules/cssstyle/lib/properties/background.js +0 -52
- package/packages/cli/node_modules/cssstyle/lib/properties/backgroundAttachment.js +0 -32
- package/packages/cli/node_modules/cssstyle/lib/properties/backgroundColor.js +0 -35
- package/packages/cli/node_modules/cssstyle/lib/properties/backgroundImage.js +0 -31
- package/packages/cli/node_modules/cssstyle/lib/properties/backgroundPosition.js +0 -52
- package/packages/cli/node_modules/cssstyle/lib/properties/backgroundRepeat.js +0 -32
- package/packages/cli/node_modules/cssstyle/lib/properties/border.js +0 -42
- package/packages/cli/node_modules/cssstyle/lib/properties/borderBottom.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/borderBottomColor.js +0 -35
- package/packages/cli/node_modules/cssstyle/lib/properties/borderBottomStyle.js +0 -50
- package/packages/cli/node_modules/cssstyle/lib/properties/borderBottomWidth.js +0 -36
- package/packages/cli/node_modules/cssstyle/lib/properties/borderCollapse.js +0 -26
- package/packages/cli/node_modules/cssstyle/lib/properties/borderColor.js +0 -43
- package/packages/cli/node_modules/cssstyle/lib/properties/borderLeft.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/borderLeftColor.js +0 -35
- package/packages/cli/node_modules/cssstyle/lib/properties/borderLeftStyle.js +0 -50
- package/packages/cli/node_modules/cssstyle/lib/properties/borderLeftWidth.js +0 -36
- package/packages/cli/node_modules/cssstyle/lib/properties/borderRight.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/borderRightColor.js +0 -35
- package/packages/cli/node_modules/cssstyle/lib/properties/borderRightStyle.js +0 -50
- package/packages/cli/node_modules/cssstyle/lib/properties/borderRightWidth.js +0 -36
- package/packages/cli/node_modules/cssstyle/lib/properties/borderSpacing.js +0 -45
- package/packages/cli/node_modules/cssstyle/lib/properties/borderStyle.js +0 -54
- package/packages/cli/node_modules/cssstyle/lib/properties/borderTop.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/borderTopColor.js +0 -35
- package/packages/cli/node_modules/cssstyle/lib/properties/borderTopStyle.js +0 -50
- package/packages/cli/node_modules/cssstyle/lib/properties/borderTopWidth.js +0 -36
- package/packages/cli/node_modules/cssstyle/lib/properties/borderWidth.js +0 -44
- package/packages/cli/node_modules/cssstyle/lib/properties/bottom.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/clear.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/clip.js +0 -54
- package/packages/cli/node_modules/cssstyle/lib/properties/color.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/flex.js +0 -73
- package/packages/cli/node_modules/cssstyle/lib/properties/flexBasis.js +0 -33
- package/packages/cli/node_modules/cssstyle/lib/properties/flexGrow.js +0 -28
- package/packages/cli/node_modules/cssstyle/lib/properties/flexShrink.js +0 -28
- package/packages/cli/node_modules/cssstyle/lib/properties/float.js +0 -27
- package/packages/cli/node_modules/cssstyle/lib/properties/floodColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/font.js +0 -189
- package/packages/cli/node_modules/cssstyle/lib/properties/fontFamily.js +0 -95
- package/packages/cli/node_modules/cssstyle/lib/properties/fontSize.js +0 -47
- package/packages/cli/node_modules/cssstyle/lib/properties/fontStyle.js +0 -32
- package/packages/cli/node_modules/cssstyle/lib/properties/fontVariant.js +0 -36
- package/packages/cli/node_modules/cssstyle/lib/properties/fontWeight.js +0 -36
- package/packages/cli/node_modules/cssstyle/lib/properties/height.js +0 -31
- package/packages/cli/node_modules/cssstyle/lib/properties/left.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/lightingColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/lineHeight.js +0 -39
- package/packages/cli/node_modules/cssstyle/lib/properties/margin.js +0 -58
- package/packages/cli/node_modules/cssstyle/lib/properties/marginBottom.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/marginLeft.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/marginRight.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/marginTop.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/opacity.js +0 -46
- package/packages/cli/node_modules/cssstyle/lib/properties/outlineColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/padding.js +0 -58
- package/packages/cli/node_modules/cssstyle/lib/properties/paddingBottom.js +0 -42
- package/packages/cli/node_modules/cssstyle/lib/properties/paddingLeft.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/paddingRight.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/paddingTop.js +0 -40
- package/packages/cli/node_modules/cssstyle/lib/properties/right.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/stopColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/top.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/webkitBorderAfterColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/webkitBorderBeforeColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/webkitBorderEndColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/webkitBorderStartColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/webkitColumnRuleColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/webkitTapHighlightColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/webkitTextEmphasisColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/webkitTextFillColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/webkitTextStrokeColor.js +0 -30
- package/packages/cli/node_modules/cssstyle/lib/properties/width.js +0 -31
- package/packages/cli/node_modules/cssstyle/lib/utils/camelize.js +0 -37
- package/packages/cli/node_modules/cssstyle/lib/utils/propertyDescriptors.js +0 -16
- package/packages/cli/node_modules/cssstyle/lib/utils/strings.js +0 -167
- package/packages/cli/node_modules/cssstyle/package.json +0 -72
- package/packages/cli/node_modules/data-urls/LICENSE.txt +0 -7
- package/packages/cli/node_modules/data-urls/README.md +0 -62
- package/packages/cli/node_modules/data-urls/lib/parser.js +0 -69
- package/packages/cli/node_modules/data-urls/lib/utils.js +0 -20
- package/packages/cli/node_modules/data-urls/package.json +0 -48
- package/packages/cli/node_modules/jsdom/LICENSE.txt +0 -22
- package/packages/cli/node_modules/jsdom/README.md +0 -521
- package/packages/cli/node_modules/jsdom/lib/api.js +0 -334
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/Window.js +0 -1012
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/default-stylesheet.js +0 -789
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/js-globals.json +0 -312
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/not-implemented.js +0 -13
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/parser/html.js +0 -208
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/parser/index.js +0 -37
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/parser/xml.js +0 -202
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/async-resource-queue.js +0 -114
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/no-op-resource-loader.js +0 -8
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/per-document-resource-loader.js +0 -98
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/request-manager.js +0 -33
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/resource-loader.js +0 -142
- package/packages/cli/node_modules/jsdom/lib/jsdom/browser/resources/resource-queue.js +0 -142
- package/packages/cli/node_modules/jsdom/lib/jsdom/level2/style.js +0 -57
- package/packages/cli/node_modules/jsdom/lib/jsdom/level3/xpath.js +0 -1875
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/aborting/AbortController-impl.js +0 -17
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/aborting/AbortSignal-impl.js +0 -131
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/attributes/Attr-impl.js +0 -60
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/attributes/NamedNodeMap-impl.js +0 -78
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/attributes.js +0 -312
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/constraint-validation/DefaultConstraintValidation-impl.js +0 -75
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/constraint-validation/ValidityState-impl.js +0 -66
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/crypto/Crypto-impl.js +0 -68
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/cssom/StyleSheetList-impl.js +0 -38
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/custom-elements/CustomElementRegistry-impl.js +0 -273
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/custom-elements/ElementInternals-impl.js +0 -52
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/documents.js +0 -15
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/DOMParser-impl.js +0 -59
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/InnerHTML-impl.js +0 -30
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/XMLSerializer-impl.js +0 -18
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/parse5-adapter-serialization.js +0 -63
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/domparsing/serialization.js +0 -36
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/CloseEvent-impl.js +0 -10
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/CompositionEvent-impl.js +0 -20
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/CustomEvent-impl.js +0 -21
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/ErrorEvent-impl.js +0 -14
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/Event-impl.js +0 -197
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/EventModifierMixin-impl.js +0 -24
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js +0 -419
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/FocusEvent-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/HashChangeEvent-impl.js +0 -14
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/InputEvent-impl.js +0 -11
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/KeyboardEvent-impl.js +0 -29
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/MessageEvent-impl.js +0 -25
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js +0 -72
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/PageTransitionEvent-impl.js +0 -20
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/PopStateEvent-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/ProgressEvent-impl.js +0 -14
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/StorageEvent-impl.js +0 -26
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/SubmitEvent-impl.js +0 -13
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/TouchEvent-impl.js +0 -14
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js +0 -59
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/events/WheelEvent-impl.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/fetch/Headers-impl.js +0 -172
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/fetch/header-list.js +0 -65
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/fetch/header-types.js +0 -103
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/file-api/Blob-impl.js +0 -93
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/file-api/File-impl.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/file-api/FileList-impl.js +0 -15
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/file-api/FileReader-impl.js +0 -130
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AbortController.js +0 -143
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AbortSignal.js +0 -249
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AbstractRange.js +0 -171
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AddEventListenerOptions.js +0 -55
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/AssignedNodesOptions.js +0 -28
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Attr.js +0 -217
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/BarProp.js +0 -117
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/BinaryType.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Blob.js +0 -203
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/BlobCallback.js +0 -30
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/BlobPropertyBag.js +0 -42
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CDATASection.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CanPlayTypeResult.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CharacterData.js +0 -453
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CloseEvent.js +0 -168
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CloseEventInit.js +0 -65
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Comment.js +0 -120
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CompositionEvent.js +0 -219
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CompositionEventInit.js +0 -32
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Crypto.js +0 -144
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CustomElementConstructor.js +0 -34
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CustomElementRegistry.js +0 -242
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CustomEvent.js +0 -206
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/CustomEventInit.js +0 -32
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMException.js +0 -222
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMImplementation.js +0 -237
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMParser.js +0 -140
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMRect.js +0 -276
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMRectInit.js +0 -76
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMRectReadOnly.js +0 -285
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMStringMap.js +0 -323
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DOMTokenList.js +0 -563
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Document.js +0 -4157
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DocumentFragment.js +0 -334
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DocumentReadyState.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/DocumentType.js +0 -252
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Element.js +0 -3718
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ElementCreationOptions.js +0 -26
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ElementDefinitionOptions.js +0 -29
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ElementInternals.js +0 -2150
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EndingType.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ErrorEvent.js +0 -192
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ErrorEventInit.js +0 -92
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Event.js +0 -430
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js +0 -36
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventInit.js +0 -58
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventListener.js +0 -35
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventListenerOptions.js +0 -28
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventModifierInit.js +0 -221
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js +0 -259
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/External.js +0 -130
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/File.js +0 -177
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FileList.js +0 -324
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FilePropertyBag.js +0 -33
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FileReader.js +0 -468
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FocusEvent.js +0 -144
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FocusEventInit.js +0 -36
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/FormData.js +0 -468
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Function.js +0 -42
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/GetRootNodeOptions.js +0 -31
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLAnchorElement.js +0 -1023
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLAreaElement.js +0 -822
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLAudioElement.js +0 -110
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLBRElement.js +0 -153
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLBaseElement.js +0 -193
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLBodyElement.js +0 -877
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLButtonElement.js +0 -522
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLCanvasElement.js +0 -304
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLCollection.js +0 -378
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDListElement.js +0 -156
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataElement.js +0 -153
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDataListElement.js +0 -125
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDetailsElement.js +0 -156
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDialogElement.js +0 -156
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDirectoryElement.js +0 -156
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLDivElement.js +0 -153
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLElement.js +0 -3137
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLEmbedElement.js +0 -375
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFieldSetElement.js +0 -329
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFontElement.js +0 -236
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormControlsCollection.js +0 -344
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFormElement.js +0 -684
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameElement.js +0 -504
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLFrameSetElement.js +0 -708
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLHRElement.js +0 -320
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadElement.js +0 -110
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLHeadingElement.js +0 -153
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLHtmlElement.js +0 -153
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLIFrameElement.js +0 -680
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLImageElement.js +0 -893
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLInputElement.js +0 -1924
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLLIElement.js +0 -201
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLLabelElement.js +0 -179
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLLegendElement.js +0 -166
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLLinkElement.js +0 -549
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMapElement.js +0 -168
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMarqueeElement.js +0 -554
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMediaElement.js +0 -895
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMenuElement.js +0 -156
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMetaElement.js +0 -276
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLMeterElement.js +0 -365
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLModElement.js +0 -211
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOListElement.js +0 -281
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLObjectElement.js +0 -935
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptGroupElement.js +0 -197
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionElement.js +0 -376
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOptionsCollection.js +0 -537
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLOutputElement.js +0 -392
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLParagraphElement.js +0 -153
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLParamElement.js +0 -276
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLPictureElement.js +0 -110
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLPreElement.js +0 -160
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLProgressElement.js +0 -228
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLQuoteElement.js +0 -170
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLScriptElement.js +0 -466
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLSelectElement.js +0 -1015
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLSlotElement.js +0 -192
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLSourceElement.js +0 -334
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLSpanElement.js +0 -110
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLStyleElement.js +0 -207
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCaptionElement.js +0 -153
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableCellElement.js +0 -729
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableColElement.js +0 -372
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableElement.js +0 -799
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableRowElement.js +0 -414
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTableSectionElement.js +0 -346
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTemplateElement.js +0 -123
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTextAreaElement.js +0 -1206
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTimeElement.js +0 -153
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTitleElement.js +0 -152
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLTrackElement.js +0 -360
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLUListElement.js +0 -197
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLUnknownElement.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HTMLVideoElement.js +0 -337
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEvent.js +0 -157
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/HashChangeEventInit.js +0 -50
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Headers.js +0 -418
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/History.js +0 -266
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/InputEvent.js +0 -168
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/InputEventInit.js +0 -68
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEvent.js +0 -445
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/KeyboardEventInit.js +0 -116
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Location.js +0 -404
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MessageEvent.js +0 -317
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MessageEventInit.js +0 -100
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MimeType.js +0 -156
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MimeTypeArray.js +0 -352
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js +0 -569
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MouseEventInit.js +0 -159
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MutationCallback.js +0 -34
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MutationObserver.js +0 -178
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MutationObserverInit.js +0 -121
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/MutationRecord.js +0 -229
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/NamedNodeMap.js +0 -553
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Navigator.js +0 -326
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Node.js +0 -763
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/NodeFilter.js +0 -75
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/NodeIterator.js +0 -207
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/NodeList.js +0 -328
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/OnBeforeUnloadEventHandlerNonNull.js +0 -42
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/OnErrorEventHandlerNonNull.js +0 -56
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEvent.js +0 -144
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PageTransitionEventInit.js +0 -35
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Performance.js +0 -142
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Plugin.js +0 -385
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PluginArray.js +0 -362
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PopStateEvent.js +0 -144
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/PopStateEventInit.js +0 -32
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ProcessingInstruction.js +0 -122
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ProgressEvent.js +0 -170
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ProgressEventInit.js +0 -65
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/RadioNodeList.js +0 -322
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Range.js +0 -641
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedPreserveAspectRatio.js +0 -136
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedRect.js +0 -136
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGAnimatedString.js +0 -149
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGBoundingBoxOptions.js +0 -64
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGDefsElement.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGDescElement.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGElement.js +0 -2803
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGGElement.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGGraphicsElement.js +0 -139
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGMetadataElement.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGNumber.js +0 -132
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGPreserveAspectRatio.js +0 -196
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGRect.js +0 -210
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGSVGElement.js +0 -786
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGStringList.js +0 -537
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGSwitchElement.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGSymbolElement.js +0 -146
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SVGTitleElement.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Screen.js +0 -180
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollBehavior.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollIntoViewOptions.js +0 -45
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollLogicalPosition.js +0 -14
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollOptions.js +0 -30
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ScrollRestoration.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Selection.js +0 -569
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SelectionMode.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ShadowRoot.js +0 -187
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootInit.js +0 -30
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ShadowRootMode.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StaticRange.js +0 -123
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StaticRangeInit.js +0 -72
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Storage.js +0 -423
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StorageEvent.js +0 -318
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StorageEventInit.js +0 -99
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/StyleSheetList.js +0 -326
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SubmitEvent.js +0 -144
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SubmitEventInit.js +0 -36
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/SupportedType.js +0 -18
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/Text.js +0 -170
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/TextTrackKind.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/TouchEvent.js +0 -222
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/TouchEventInit.js +0 -89
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/TreeWalker.js +0 -255
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/UIEvent.js +0 -235
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/UIEventInit.js +0 -62
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/ValidityState.js +0 -249
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/VisibilityState.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/VoidFunction.js +0 -26
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/WebSocket.js +0 -476
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/WheelEvent.js +0 -191
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/WheelEventInit.js +0 -71
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLDocument.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequest.js +0 -655
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestEventTarget.js +0 -334
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestResponseType.js +0 -14
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLHttpRequestUpload.js +0 -109
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/XMLSerializer.js +0 -132
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/generated/utils.js +0 -190
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/geometry/DOMRect-impl.js +0 -39
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/geometry/DOMRectReadOnly-impl.js +0 -72
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/agent-factory.js +0 -13
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/binary-data.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/colors.js +0 -245
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/create-element.js +0 -329
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js +0 -188
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/custom-elements.js +0 -272
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/dates-and-times.js +0 -270
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/details.js +0 -15
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/events.js +0 -24
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/focusing.js +0 -104
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/form-controls.js +0 -309
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/html-constructor.js +0 -78
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/http-request.js +0 -266
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/internal-constants.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/iterable-weak-set.js +0 -48
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/json.js +0 -12
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/mutation-observers.js +0 -198
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/namespaces.js +0 -16
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/node.js +0 -68
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/number-and-date-inputs.js +0 -195
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/ordered-set.js +0 -104
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/page-transition-event.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/runtime-script-errors.js +0 -76
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/selectors.js +0 -47
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/shadow-dom.js +0 -285
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/strings.js +0 -162
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/style-rules.js +0 -243
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/stylesheets.js +0 -123
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/svg/basic-types.js +0 -41
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js +0 -46
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/text.js +0 -19
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/traversal.js +0 -72
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/helpers/validate-names.js +0 -65
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/hr-time/Performance-impl.js +0 -22
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/interfaces.js +0 -239
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationObserver-impl.js +0 -95
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/mutation-observer/MutationRecord-impl.js +0 -37
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/named-properties-window.js +0 -141
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/MimeType-impl.js +0 -3
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/MimeTypeArray-impl.js +0 -21
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/Navigator-impl.js +0 -29
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorConcurrentHardware-impl.js +0 -8
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorCookies-impl.js +0 -7
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorID-impl.js +0 -37
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorLanguage-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorOnLine-impl.js +0 -7
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/NavigatorPlugins-impl.js +0 -8
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/Plugin-impl.js +0 -3
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/navigator/PluginArray-impl.js +0 -23
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/node-document-position.js +0 -10
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/node-type.js +0 -16
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/node.js +0 -331
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/CDATASection-impl.js +0 -16
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/CharacterData-impl.js +0 -118
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ChildNode-impl.js +0 -80
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Comment-impl.js +0 -20
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DOMImplementation-impl.js +0 -120
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DOMStringMap-impl.js +0 -64
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DOMTokenList-impl.js +0 -171
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js +0 -1003
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DocumentFragment-impl.js +0 -44
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DocumentOrShadowRoot-impl.js +0 -28
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/DocumentType-impl.js +0 -24
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Element-impl.js +0 -603
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ElementCSSInlineStyle-impl.js +0 -22
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ElementContentEditable-impl.js +0 -7
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/GlobalEventHandlers-impl.js +0 -145
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAnchorElement-impl.js +0 -50
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAreaElement-impl.js +0 -43
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLAudioElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBRElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBaseElement-impl.js +0 -44
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLBodyElement-impl.js +0 -17
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLButtonElement-impl.js +0 -79
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCanvasElement-impl.js +0 -130
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLCollection-impl.js +0 -96
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDListElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDataListElement-impl.js +0 -20
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDetailsElement-impl.js +0 -35
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDialogElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDirectoryElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLDivElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js +0 -210
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLEmbedElement-impl.js +0 -8
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFieldSetElement-impl.js +0 -43
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFontElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormControlsCollection-impl.js +0 -33
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFormElement-impl.js +0 -248
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameElement-impl.js +0 -266
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLFrameSetElement-impl.js +0 -17
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHRElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHeadingElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHtmlElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js +0 -366
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLIFrameElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLImageElement-impl.js +0 -131
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLInputElement-impl.js +0 -1097
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLIElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLabelElement-impl.js +0 -94
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLegendElement-impl.js +0 -18
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLLinkElement-impl.js +0 -107
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMapElement-impl.js +0 -13
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMarqueeElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMediaElement-impl.js +0 -138
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMenuElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMetaElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLMeterElement-impl.js +0 -180
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLModElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOListElement-impl.js +0 -22
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLObjectElement-impl.js +0 -26
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptGroupElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionElement-impl.js +0 -146
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOptionsCollection-impl.js +0 -110
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOrSVGElement-impl.js +0 -88
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLOutputElement-impl.js +0 -88
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParagraphElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLParamElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPictureElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLPreElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLProgressElement-impl.js +0 -72
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLQuoteElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLScriptElement-impl.js +0 -261
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSelectElement-impl.js +0 -283
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSlotElement-impl.js +0 -59
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSourceElement-impl.js +0 -8
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLSpanElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLStyleElement-impl.js +0 -73
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCaptionElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableCellElement-impl.js +0 -73
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableColElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableElement-impl.js +0 -236
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableRowElement-impl.js +0 -88
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTableSectionElement-impl.js +0 -61
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTemplateElement-impl.js +0 -67
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTextAreaElement-impl.js +0 -244
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTimeElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTitleElement-impl.js +0 -18
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLTrackElement-impl.js +0 -13
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUListElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLUnknownElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/HTMLVideoElement-impl.js +0 -17
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/LinkStyle-impl.js +0 -2
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Node-impl.js +0 -1160
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/NodeList-impl.js +0 -43
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/NonDocumentTypeChildNode-impl.js +0 -28
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/NonElementParentNode-impl.js +0 -11
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ParentNode-impl.js +0 -93
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ProcessingInstruction-impl.js +0 -22
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/RadioNodeList-impl.js +0 -49
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGDefsElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGDescElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGElement-impl.js +0 -64
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGGElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGGraphicsElement-impl.js +0 -16
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGMetadataElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js +0 -47
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGSwitchElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGSymbolElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGTests-impl.js +0 -42
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/SVGTitleElement-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/ShadowRoot-impl.js +0 -41
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Slotable-impl.js +0 -48
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/Text-impl.js +0 -96
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/WindowEventHandlers-impl.js +0 -52
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/nodes/XMLDocument-impl.js +0 -4
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/range/AbstractRange-impl.js +0 -43
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/range/Range-impl.js +0 -897
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/range/StaticRange-impl.js +0 -39
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/range/boundary-point.js +0 -47
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/selection/Selection-impl.js +0 -358
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedPreserveAspectRatio-impl.js +0 -24
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedRect-impl.js +0 -122
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGAnimatedString-impl.js +0 -42
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGListBase.js +0 -195
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGNumber-impl.js +0 -48
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGPreserveAspectRatio-impl.js +0 -100
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGRect-impl.js +0 -143
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/svg/SVGStringList-impl.js +0 -16
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/traversal/NodeIterator-impl.js +0 -107
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/traversal/TreeWalker-impl.js +0 -217
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/traversal/helpers.js +0 -44
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/webidl/DOMException-impl.js +0 -46
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/websockets/WebSocket-impl.js +0 -328
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/webstorage/Storage-impl.js +0 -102
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/BarProp-impl.js +0 -10
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/External-impl.js +0 -9
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/History-impl.js +0 -148
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/Location-impl.js +0 -227
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/Screen-impl.js +0 -13
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/SessionHistory.js +0 -163
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/window/navigation.js +0 -85
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/FormData-impl.js +0 -191
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequest-impl.js +0 -1005
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestEventTarget-impl.js +0 -17
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/XMLHttpRequestUpload-impl.js +0 -4
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/multipart-form-data.js +0 -105
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js +0 -59
- package/packages/cli/node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js +0 -417
- package/packages/cli/node_modules/jsdom/lib/jsdom/named-properties-tracker.js +0 -158
- package/packages/cli/node_modules/jsdom/lib/jsdom/utils.js +0 -105
- package/packages/cli/node_modules/jsdom/lib/jsdom/virtual-console.js +0 -34
- package/packages/cli/node_modules/jsdom/package.json +0 -92
- package/packages/cli/node_modules/lru-cache/LICENSE +0 -15
- package/packages/cli/node_modules/lru-cache/README.md +0 -331
- package/packages/cli/node_modules/lru-cache/dist/commonjs/index.d.ts +0 -1277
- package/packages/cli/node_modules/lru-cache/dist/commonjs/index.d.ts.map +0 -1
- package/packages/cli/node_modules/lru-cache/dist/commonjs/index.js +0 -1546
- package/packages/cli/node_modules/lru-cache/dist/commonjs/index.js.map +0 -1
- package/packages/cli/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
- package/packages/cli/node_modules/lru-cache/dist/commonjs/index.min.js.map +0 -7
- package/packages/cli/node_modules/lru-cache/dist/commonjs/package.json +0 -3
- package/packages/cli/node_modules/lru-cache/dist/esm/index.d.ts +0 -1277
- package/packages/cli/node_modules/lru-cache/dist/esm/index.d.ts.map +0 -1
- package/packages/cli/node_modules/lru-cache/dist/esm/index.js +0 -1542
- package/packages/cli/node_modules/lru-cache/dist/esm/index.js.map +0 -1
- package/packages/cli/node_modules/lru-cache/dist/esm/index.min.js +0 -2
- package/packages/cli/node_modules/lru-cache/dist/esm/index.min.js.map +0 -7
- package/packages/cli/node_modules/lru-cache/dist/esm/package.json +0 -3
- package/packages/cli/node_modules/lru-cache/package.json +0 -116
- package/packages/cli/node_modules/tldts/LICENSE +0 -13
- package/packages/cli/node_modules/tldts/README.md +0 -327
- package/packages/cli/node_modules/tldts/bin/cli.js +0 -21
- package/packages/cli/node_modules/tldts/dist/cjs/index.js +0 -666
- package/packages/cli/node_modules/tldts/dist/cjs/index.js.map +0 -1
- package/packages/cli/node_modules/tldts/dist/cjs/src/data/trie.js +0 -14
- package/packages/cli/node_modules/tldts/dist/cjs/src/data/trie.js.map +0 -1
- package/packages/cli/node_modules/tldts/dist/cjs/src/suffix-trie.js +0 -67
- package/packages/cli/node_modules/tldts/dist/cjs/src/suffix-trie.js.map +0 -1
- package/packages/cli/node_modules/tldts/dist/cjs/tsconfig.tsbuildinfo +0 -1
- package/packages/cli/node_modules/tldts/dist/es6/index.js +0 -33
- package/packages/cli/node_modules/tldts/dist/es6/index.js.map +0 -1
- package/packages/cli/node_modules/tldts/dist/es6/src/data/trie.js +0 -11
- package/packages/cli/node_modules/tldts/dist/es6/src/data/trie.js.map +0 -1
- package/packages/cli/node_modules/tldts/dist/es6/src/suffix-trie.js +0 -64
- package/packages/cli/node_modules/tldts/dist/es6/src/suffix-trie.js.map +0 -1
- package/packages/cli/node_modules/tldts/dist/es6/tsconfig.bundle.tsbuildinfo +0 -1
- package/packages/cli/node_modules/tldts/dist/index.cjs.min.js +0 -2
- package/packages/cli/node_modules/tldts/dist/index.cjs.min.js.map +0 -1
- package/packages/cli/node_modules/tldts/dist/index.esm.min.js +0 -2
- package/packages/cli/node_modules/tldts/dist/index.esm.min.js.map +0 -1
- package/packages/cli/node_modules/tldts/dist/index.umd.min.js +0 -2
- package/packages/cli/node_modules/tldts/dist/index.umd.min.js.map +0 -1
- package/packages/cli/node_modules/tldts/dist/types/index.d.ts +0 -7
- package/packages/cli/node_modules/tldts/dist/types/src/data/trie.d.ts +0 -5
- package/packages/cli/node_modules/tldts/dist/types/src/suffix-trie.d.ts +0 -5
- package/packages/cli/node_modules/tldts/index.ts +0 -62
- package/packages/cli/node_modules/tldts/package.json +0 -91
- package/packages/cli/node_modules/tldts/src/data/trie.ts +0 -14
- package/packages/cli/node_modules/tldts/src/suffix-trie.ts +0 -110
- package/packages/cli/node_modules/tldts-core/LICENSE +0 -13
- package/packages/cli/node_modules/tldts-core/README.md +0 -3
- package/packages/cli/node_modules/tldts-core/dist/cjs/index.js +0 -561
- package/packages/cli/node_modules/tldts-core/dist/cjs/index.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js +0 -15
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/domain.js +0 -83
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/domain.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/extract-hostname.js +0 -149
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/extract-hostname.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/factory.js +0 -104
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/factory.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/is-ip.js +0 -72
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/is-ip.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/is-valid.js +0 -69
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/is-valid.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js +0 -69
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/lookup/interface.js +0 -3
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/lookup/interface.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/options.js +0 -22
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/options.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/subdomain.js +0 -14
- package/packages/cli/node_modules/tldts-core/dist/cjs/src/subdomain.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/cjs/tsconfig.tsbuildinfo +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/index.js +0 -4
- package/packages/cli/node_modules/tldts-core/dist/es6/index.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js +0 -12
- package/packages/cli/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/domain.js +0 -80
- package/packages/cli/node_modules/tldts-core/dist/es6/src/domain.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/extract-hostname.js +0 -146
- package/packages/cli/node_modules/tldts-core/dist/es6/src/extract-hostname.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/factory.js +0 -99
- package/packages/cli/node_modules/tldts-core/dist/es6/src/factory.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/is-ip.js +0 -69
- package/packages/cli/node_modules/tldts-core/dist/es6/src/is-ip.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/is-valid.js +0 -66
- package/packages/cli/node_modules/tldts-core/dist/es6/src/is-valid.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js +0 -66
- package/packages/cli/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/lookup/interface.js +0 -2
- package/packages/cli/node_modules/tldts-core/dist/es6/src/lookup/interface.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/options.js +0 -19
- package/packages/cli/node_modules/tldts-core/dist/es6/src/options.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/src/subdomain.js +0 -11
- package/packages/cli/node_modules/tldts-core/dist/es6/src/subdomain.js.map +0 -1
- package/packages/cli/node_modules/tldts-core/dist/es6/tsconfig.bundle.tsbuildinfo +0 -1
- package/packages/cli/node_modules/tldts-core/dist/types/index.d.ts +0 -4
- package/packages/cli/node_modules/tldts-core/dist/types/src/domain-without-suffix.d.ts +0 -6
- package/packages/cli/node_modules/tldts-core/dist/types/src/domain.d.ts +0 -5
- package/packages/cli/node_modules/tldts-core/dist/types/src/extract-hostname.d.ts +0 -5
- package/packages/cli/node_modules/tldts-core/dist/types/src/factory.d.ts +0 -28
- package/packages/cli/node_modules/tldts-core/dist/types/src/is-ip.d.ts +0 -6
- package/packages/cli/node_modules/tldts-core/dist/types/src/is-valid.d.ts +0 -15
- package/packages/cli/node_modules/tldts-core/dist/types/src/lookup/fast-path.d.ts +0 -2
- package/packages/cli/node_modules/tldts-core/dist/types/src/lookup/interface.d.ts +0 -9
- package/packages/cli/node_modules/tldts-core/dist/types/src/options.d.ts +0 -10
- package/packages/cli/node_modules/tldts-core/dist/types/src/subdomain.d.ts +0 -4
- package/packages/cli/node_modules/tldts-core/index.ts +0 -10
- package/packages/cli/node_modules/tldts-core/package.json +0 -68
- package/packages/cli/node_modules/tldts-core/src/domain-without-suffix.ts +0 -14
- package/packages/cli/node_modules/tldts-core/src/domain.ts +0 -100
- package/packages/cli/node_modules/tldts-core/src/extract-hostname.ts +0 -170
- package/packages/cli/node_modules/tldts-core/src/factory.ts +0 -160
- package/packages/cli/node_modules/tldts-core/src/is-ip.ts +0 -87
- package/packages/cli/node_modules/tldts-core/src/is-valid.ts +0 -79
- package/packages/cli/node_modules/tldts-core/src/lookup/fast-path.ts +0 -80
- package/packages/cli/node_modules/tldts-core/src/lookup/interface.ts +0 -10
- package/packages/cli/node_modules/tldts-core/src/options.ts +0 -39
- package/packages/cli/node_modules/tldts-core/src/subdomain.ts +0 -11
- package/packages/cli/node_modules/tough-cookie/LICENSE +0 -12
- package/packages/cli/node_modules/tough-cookie/README.md +0 -154
- package/packages/cli/node_modules/tough-cookie/dist/cookie/canonicalDomain.d.ts +0 -33
- package/packages/cli/node_modules/tough-cookie/dist/cookie/canonicalDomain.js +0 -65
- package/packages/cli/node_modules/tough-cookie/dist/cookie/constants.d.ts +0 -54
- package/packages/cli/node_modules/tough-cookie/dist/cookie/constants.js +0 -38
- package/packages/cli/node_modules/tough-cookie/dist/cookie/cookie.d.ts +0 -326
- package/packages/cli/node_modules/tough-cookie/dist/cookie/cookie.js +0 -831
- package/packages/cli/node_modules/tough-cookie/dist/cookie/cookieCompare.d.ts +0 -58
- package/packages/cli/node_modules/tough-cookie/dist/cookie/cookieCompare.js +0 -84
- package/packages/cli/node_modules/tough-cookie/dist/cookie/cookieJar.d.ts +0 -621
- package/packages/cli/node_modules/tough-cookie/dist/cookie/cookieJar.js +0 -1000
- package/packages/cli/node_modules/tough-cookie/dist/cookie/defaultPath.d.ts +0 -40
- package/packages/cli/node_modules/tough-cookie/dist/cookie/defaultPath.js +0 -60
- package/packages/cli/node_modules/tough-cookie/dist/cookie/domainMatch.d.ts +0 -38
- package/packages/cli/node_modules/tough-cookie/dist/cookie/domainMatch.js +0 -94
- package/packages/cli/node_modules/tough-cookie/dist/cookie/formatDate.d.ts +0 -15
- package/packages/cli/node_modules/tough-cookie/dist/cookie/formatDate.js +0 -20
- package/packages/cli/node_modules/tough-cookie/dist/cookie/index.d.ts +0 -29
- package/packages/cli/node_modules/tough-cookie/dist/cookie/index.js +0 -54
- package/packages/cli/node_modules/tough-cookie/dist/cookie/parseDate.d.ts +0 -103
- package/packages/cli/node_modules/tough-cookie/dist/cookie/parseDate.js +0 -323
- package/packages/cli/node_modules/tough-cookie/dist/cookie/permutePath.d.ts +0 -14
- package/packages/cli/node_modules/tough-cookie/dist/cookie/permutePath.js +0 -32
- package/packages/cli/node_modules/tough-cookie/dist/getPublicSuffix.d.ts +0 -55
- package/packages/cli/node_modules/tough-cookie/dist/getPublicSuffix.js +0 -71
- package/packages/cli/node_modules/tough-cookie/dist/memstore.d.ts +0 -220
- package/packages/cli/node_modules/tough-cookie/dist/memstore.js +0 -187
- package/packages/cli/node_modules/tough-cookie/dist/pathMatch.d.ts +0 -17
- package/packages/cli/node_modules/tough-cookie/dist/pathMatch.js +0 -40
- package/packages/cli/node_modules/tough-cookie/dist/permuteDomain.d.ts +0 -15
- package/packages/cli/node_modules/tough-cookie/dist/permuteDomain.js +0 -44
- package/packages/cli/node_modules/tough-cookie/dist/store.d.ts +0 -211
- package/packages/cli/node_modules/tough-cookie/dist/store.js +0 -76
- package/packages/cli/node_modules/tough-cookie/dist/utils.d.ts +0 -34
- package/packages/cli/node_modules/tough-cookie/dist/utils.js +0 -99
- package/packages/cli/node_modules/tough-cookie/dist/validators.d.ts +0 -24
- package/packages/cli/node_modules/tough-cookie/dist/validators.js +0 -90
- package/packages/cli/node_modules/tough-cookie/dist/version.d.ts +0 -5
- package/packages/cli/node_modules/tough-cookie/dist/version.js +0 -8
- package/packages/cli/node_modules/tough-cookie/package.json +0 -144
- package/packages/cli/node_modules/tr46/LICENSE.md +0 -21
- package/packages/cli/node_modules/tr46/README.md +0 -76
- package/packages/cli/node_modules/tr46/index.js +0 -344
- package/packages/cli/node_modules/tr46/lib/mappingTable.json +0 -1
- package/packages/cli/node_modules/tr46/lib/regexes.js +0 -29
- package/packages/cli/node_modules/tr46/lib/statusMapping.js +0 -9
- package/packages/cli/node_modules/tr46/package.json +0 -44
- package/packages/cli/node_modules/undici-types/LICENSE +0 -21
- package/packages/cli/node_modules/undici-types/README.md +0 -6
- package/packages/cli/node_modules/undici-types/agent.d.ts +0 -31
- package/packages/cli/node_modules/undici-types/api.d.ts +0 -43
- package/packages/cli/node_modules/undici-types/balanced-pool.d.ts +0 -29
- package/packages/cli/node_modules/undici-types/cache.d.ts +0 -36
- package/packages/cli/node_modules/undici-types/client.d.ts +0 -108
- package/packages/cli/node_modules/undici-types/connector.d.ts +0 -34
- package/packages/cli/node_modules/undici-types/content-type.d.ts +0 -21
- package/packages/cli/node_modules/undici-types/cookies.d.ts +0 -28
- package/packages/cli/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
- package/packages/cli/node_modules/undici-types/dispatcher.d.ts +0 -256
- package/packages/cli/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
- package/packages/cli/node_modules/undici-types/errors.d.ts +0 -149
- package/packages/cli/node_modules/undici-types/eventsource.d.ts +0 -61
- package/packages/cli/node_modules/undici-types/fetch.d.ts +0 -209
- package/packages/cli/node_modules/undici-types/file.d.ts +0 -39
- package/packages/cli/node_modules/undici-types/filereader.d.ts +0 -54
- package/packages/cli/node_modules/undici-types/formdata.d.ts +0 -108
- package/packages/cli/node_modules/undici-types/global-dispatcher.d.ts +0 -9
- package/packages/cli/node_modules/undici-types/global-origin.d.ts +0 -7
- package/packages/cli/node_modules/undici-types/handlers.d.ts +0 -15
- package/packages/cli/node_modules/undici-types/header.d.ts +0 -4
- package/packages/cli/node_modules/undici-types/index.d.ts +0 -71
- package/packages/cli/node_modules/undici-types/interceptors.d.ts +0 -17
- package/packages/cli/node_modules/undici-types/mock-agent.d.ts +0 -50
- package/packages/cli/node_modules/undici-types/mock-client.d.ts +0 -25
- package/packages/cli/node_modules/undici-types/mock-errors.d.ts +0 -12
- package/packages/cli/node_modules/undici-types/mock-interceptor.d.ts +0 -93
- package/packages/cli/node_modules/undici-types/mock-pool.d.ts +0 -25
- package/packages/cli/node_modules/undici-types/package.json +0 -55
- package/packages/cli/node_modules/undici-types/patch.d.ts +0 -33
- package/packages/cli/node_modules/undici-types/pool-stats.d.ts +0 -19
- package/packages/cli/node_modules/undici-types/pool.d.ts +0 -39
- package/packages/cli/node_modules/undici-types/proxy-agent.d.ts +0 -28
- package/packages/cli/node_modules/undici-types/readable.d.ts +0 -65
- package/packages/cli/node_modules/undici-types/retry-agent.d.ts +0 -8
- package/packages/cli/node_modules/undici-types/retry-handler.d.ts +0 -116
- package/packages/cli/node_modules/undici-types/util.d.ts +0 -18
- package/packages/cli/node_modules/undici-types/webidl.d.ts +0 -228
- package/packages/cli/node_modules/undici-types/websocket.d.ts +0 -150
- package/packages/cli/node_modules/webidl-conversions/LICENSE.md +0 -12
- package/packages/cli/node_modules/webidl-conversions/README.md +0 -99
- package/packages/cli/node_modules/webidl-conversions/lib/index.js +0 -450
- package/packages/cli/node_modules/webidl-conversions/package.json +0 -35
- package/packages/cli/node_modules/whatwg-url/LICENSE.txt +0 -21
- package/packages/cli/node_modules/whatwg-url/README.md +0 -106
- package/packages/cli/node_modules/whatwg-url/index.js +0 -27
- package/packages/cli/node_modules/whatwg-url/lib/Function.js +0 -42
- package/packages/cli/node_modules/whatwg-url/lib/URL-impl.js +0 -233
- package/packages/cli/node_modules/whatwg-url/lib/URL.js +0 -499
- package/packages/cli/node_modules/whatwg-url/lib/URLSearchParams-impl.js +0 -135
- package/packages/cli/node_modules/whatwg-url/lib/URLSearchParams.js +0 -505
- package/packages/cli/node_modules/whatwg-url/lib/VoidFunction.js +0 -26
- package/packages/cli/node_modules/whatwg-url/lib/encoding.js +0 -16
- package/packages/cli/node_modules/whatwg-url/lib/infra.js +0 -26
- package/packages/cli/node_modules/whatwg-url/lib/percent-encoding.js +0 -142
- package/packages/cli/node_modules/whatwg-url/lib/url-state-machine.js +0 -1274
- package/packages/cli/node_modules/whatwg-url/lib/urlencoded.js +0 -89
- package/packages/cli/node_modules/whatwg-url/lib/utils.js +0 -190
- package/packages/cli/node_modules/whatwg-url/package.json +0 -53
- package/packages/cli/node_modules/whatwg-url/webidl2js-wrapper.js +0 -7
- package/packages/vscode-ide-companion/node_modules/@types/node/LICENSE +0 -21
- package/packages/vscode-ide-companion/node_modules/@types/node/README.md +0 -15
- package/packages/vscode-ide-companion/node_modules/@types/node/assert/strict.d.ts +0 -8
- package/packages/vscode-ide-companion/node_modules/@types/node/assert.d.ts +0 -1062
- package/packages/vscode-ide-companion/node_modules/@types/node/async_hooks.d.ts +0 -605
- package/packages/vscode-ide-companion/node_modules/@types/node/buffer.buffer.d.ts +0 -462
- package/packages/vscode-ide-companion/node_modules/@types/node/buffer.d.ts +0 -1932
- package/packages/vscode-ide-companion/node_modules/@types/node/child_process.d.ts +0 -1452
- package/packages/vscode-ide-companion/node_modules/@types/node/cluster.d.ts +0 -578
- package/packages/vscode-ide-companion/node_modules/@types/node/compatibility/disposable.d.ts +0 -16
- package/packages/vscode-ide-companion/node_modules/@types/node/compatibility/index.d.ts +0 -9
- package/packages/vscode-ide-companion/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
- package/packages/vscode-ide-companion/node_modules/@types/node/compatibility/iterators.d.ts +0 -21
- package/packages/vscode-ide-companion/node_modules/@types/node/console.d.ts +0 -452
- package/packages/vscode-ide-companion/node_modules/@types/node/constants.d.ts +0 -21
- package/packages/vscode-ide-companion/node_modules/@types/node/crypto.d.ts +0 -4570
- package/packages/vscode-ide-companion/node_modules/@types/node/dgram.d.ts +0 -596
- package/packages/vscode-ide-companion/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
- package/packages/vscode-ide-companion/node_modules/@types/node/dns/promises.d.ts +0 -479
- package/packages/vscode-ide-companion/node_modules/@types/node/dns.d.ts +0 -871
- package/packages/vscode-ide-companion/node_modules/@types/node/domain.d.ts +0 -170
- package/packages/vscode-ide-companion/node_modules/@types/node/events.d.ts +0 -977
- package/packages/vscode-ide-companion/node_modules/@types/node/fs/promises.d.ts +0 -1248
- package/packages/vscode-ide-companion/node_modules/@types/node/fs.d.ts +0 -4362
- package/packages/vscode-ide-companion/node_modules/@types/node/globals.d.ts +0 -170
- package/packages/vscode-ide-companion/node_modules/@types/node/globals.typedarray.d.ts +0 -21
- package/packages/vscode-ide-companion/node_modules/@types/node/http.d.ts +0 -2031
- package/packages/vscode-ide-companion/node_modules/@types/node/http2.d.ts +0 -2623
- package/packages/vscode-ide-companion/node_modules/@types/node/https.d.ts +0 -549
- package/packages/vscode-ide-companion/node_modules/@types/node/index.d.ts +0 -93
- package/packages/vscode-ide-companion/node_modules/@types/node/inspector.generated.d.ts +0 -3966
- package/packages/vscode-ide-companion/node_modules/@types/node/module.d.ts +0 -539
- package/packages/vscode-ide-companion/node_modules/@types/node/net.d.ts +0 -1011
- package/packages/vscode-ide-companion/node_modules/@types/node/os.d.ts +0 -495
- package/packages/vscode-ide-companion/node_modules/@types/node/package.json +0 -140
- package/packages/vscode-ide-companion/node_modules/@types/node/path.d.ts +0 -200
- package/packages/vscode-ide-companion/node_modules/@types/node/perf_hooks.d.ts +0 -963
- package/packages/vscode-ide-companion/node_modules/@types/node/process.d.ts +0 -1956
- package/packages/vscode-ide-companion/node_modules/@types/node/punycode.d.ts +0 -117
- package/packages/vscode-ide-companion/node_modules/@types/node/querystring.d.ts +0 -152
- package/packages/vscode-ide-companion/node_modules/@types/node/readline/promises.d.ts +0 -162
- package/packages/vscode-ide-companion/node_modules/@types/node/readline.d.ts +0 -589
- package/packages/vscode-ide-companion/node_modules/@types/node/repl.d.ts +0 -430
- package/packages/vscode-ide-companion/node_modules/@types/node/sea.d.ts +0 -153
- package/packages/vscode-ide-companion/node_modules/@types/node/stream/consumers.d.ts +0 -38
- package/packages/vscode-ide-companion/node_modules/@types/node/stream/promises.d.ts +0 -90
- package/packages/vscode-ide-companion/node_modules/@types/node/stream/web.d.ts +0 -533
- package/packages/vscode-ide-companion/node_modules/@types/node/stream.d.ts +0 -1668
- package/packages/vscode-ide-companion/node_modules/@types/node/string_decoder.d.ts +0 -67
- package/packages/vscode-ide-companion/node_modules/@types/node/test.d.ts +0 -1787
- package/packages/vscode-ide-companion/node_modules/@types/node/timers/promises.d.ts +0 -108
- package/packages/vscode-ide-companion/node_modules/@types/node/timers.d.ts +0 -286
- package/packages/vscode-ide-companion/node_modules/@types/node/tls.d.ts +0 -1231
- package/packages/vscode-ide-companion/node_modules/@types/node/trace_events.d.ts +0 -197
- package/packages/vscode-ide-companion/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -460
- package/packages/vscode-ide-companion/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -19
- package/packages/vscode-ide-companion/node_modules/@types/node/ts5.6/index.d.ts +0 -93
- package/packages/vscode-ide-companion/node_modules/@types/node/tty.d.ts +0 -208
- package/packages/vscode-ide-companion/node_modules/@types/node/url.d.ts +0 -964
- package/packages/vscode-ide-companion/node_modules/@types/node/util.d.ts +0 -2331
- package/packages/vscode-ide-companion/node_modules/@types/node/v8.d.ts +0 -808
- package/packages/vscode-ide-companion/node_modules/@types/node/vm.d.ts +0 -1030
- package/packages/vscode-ide-companion/node_modules/@types/node/wasi.d.ts +0 -181
- package/packages/vscode-ide-companion/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
- package/packages/vscode-ide-companion/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
- package/packages/vscode-ide-companion/node_modules/@types/node/web-globals/events.d.ts +0 -97
- package/packages/vscode-ide-companion/node_modules/@types/node/web-globals/fetch.d.ts +0 -46
- package/packages/vscode-ide-companion/node_modules/@types/node/worker_threads.d.ts +0 -715
- package/packages/vscode-ide-companion/node_modules/@types/node/zlib.d.ts +0 -539
- package/packages/vscode-ide-companion/node_modules/undici-types/LICENSE +0 -21
- package/packages/vscode-ide-companion/node_modules/undici-types/README.md +0 -6
- package/packages/vscode-ide-companion/node_modules/undici-types/agent.d.ts +0 -31
- package/packages/vscode-ide-companion/node_modules/undici-types/api.d.ts +0 -43
- package/packages/vscode-ide-companion/node_modules/undici-types/balanced-pool.d.ts +0 -29
- package/packages/vscode-ide-companion/node_modules/undici-types/cache.d.ts +0 -36
- package/packages/vscode-ide-companion/node_modules/undici-types/client.d.ts +0 -108
- package/packages/vscode-ide-companion/node_modules/undici-types/connector.d.ts +0 -34
- package/packages/vscode-ide-companion/node_modules/undici-types/content-type.d.ts +0 -21
- package/packages/vscode-ide-companion/node_modules/undici-types/cookies.d.ts +0 -28
- package/packages/vscode-ide-companion/node_modules/undici-types/diagnostics-channel.d.ts +0 -66
- package/packages/vscode-ide-companion/node_modules/undici-types/dispatcher.d.ts +0 -256
- package/packages/vscode-ide-companion/node_modules/undici-types/env-http-proxy-agent.d.ts +0 -21
- package/packages/vscode-ide-companion/node_modules/undici-types/errors.d.ts +0 -149
- package/packages/vscode-ide-companion/node_modules/undici-types/eventsource.d.ts +0 -61
- package/packages/vscode-ide-companion/node_modules/undici-types/fetch.d.ts +0 -209
- package/packages/vscode-ide-companion/node_modules/undici-types/file.d.ts +0 -39
- package/packages/vscode-ide-companion/node_modules/undici-types/filereader.d.ts +0 -54
- package/packages/vscode-ide-companion/node_modules/undici-types/formdata.d.ts +0 -108
- package/packages/vscode-ide-companion/node_modules/undici-types/global-dispatcher.d.ts +0 -9
- package/packages/vscode-ide-companion/node_modules/undici-types/global-origin.d.ts +0 -7
- package/packages/vscode-ide-companion/node_modules/undici-types/handlers.d.ts +0 -15
- package/packages/vscode-ide-companion/node_modules/undici-types/header.d.ts +0 -4
- package/packages/vscode-ide-companion/node_modules/undici-types/index.d.ts +0 -71
- package/packages/vscode-ide-companion/node_modules/undici-types/interceptors.d.ts +0 -17
- package/packages/vscode-ide-companion/node_modules/undici-types/mock-agent.d.ts +0 -50
- package/packages/vscode-ide-companion/node_modules/undici-types/mock-client.d.ts +0 -25
- package/packages/vscode-ide-companion/node_modules/undici-types/mock-errors.d.ts +0 -12
- package/packages/vscode-ide-companion/node_modules/undici-types/mock-interceptor.d.ts +0 -93
- package/packages/vscode-ide-companion/node_modules/undici-types/mock-pool.d.ts +0 -25
- package/packages/vscode-ide-companion/node_modules/undici-types/package.json +0 -55
- package/packages/vscode-ide-companion/node_modules/undici-types/patch.d.ts +0 -33
- package/packages/vscode-ide-companion/node_modules/undici-types/pool-stats.d.ts +0 -19
- package/packages/vscode-ide-companion/node_modules/undici-types/pool.d.ts +0 -39
- package/packages/vscode-ide-companion/node_modules/undici-types/proxy-agent.d.ts +0 -28
- package/packages/vscode-ide-companion/node_modules/undici-types/readable.d.ts +0 -65
- package/packages/vscode-ide-companion/node_modules/undici-types/retry-agent.d.ts +0 -8
- package/packages/vscode-ide-companion/node_modules/undici-types/retry-handler.d.ts +0 -116
- package/packages/vscode-ide-companion/node_modules/undici-types/util.d.ts +0 -18
- package/packages/vscode-ide-companion/node_modules/undici-types/webidl.d.ts +0 -228
- 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]}
|