From c06f7ee0a40255214c477e13d9b956a7e07c2900 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Sat, 14 Oct 2023 15:05:55 +0800 Subject: postcss,(plugins): nanocss, postcss-preset-env --- node_modules/.bin/autoprefixer | 1 + node_modules/.bin/browserslist | 1 + node_modules/.bin/cssesc | 1 + node_modules/.bin/nanoid | 1 + node_modules/.bin/postcss | 1 + node_modules/.bin/svgo | 1 + node_modules/.bin/update-browserslist-db | 1 + node_modules/.package-lock.json | 3357 +++++++ .../cascade-layer-name-parser/CHANGELOG.md | 42 + .../@csstools/cascade-layer-name-parser/LICENSE.md | 20 + .../@csstools/cascade-layer-name-parser/README.md | 32 + .../cascade-layer-name-parser/dist/index.cjs | 1 + .../cascade-layer-name-parser/dist/index.d.ts | 3 + .../cascade-layer-name-parser/dist/index.mjs | 1 + .../dist/nodes/layer-name.d.ts | 17 + .../dist/parser/parse.d.ts | 7 + .../cascade-layer-name-parser/dist/util/model.d.ts | 2 + .../cascade-layer-name-parser/package.json | 74 + node_modules/@csstools/color-helpers/CHANGELOG.md | 40 + node_modules/@csstools/color-helpers/LICENSE.md | 18 + node_modules/@csstools/color-helpers/README.md | 32 + .../dist/calculations/binary-search-gamut.d.ts | 2 + .../color-helpers/dist/calculations/contrast.d.ts | 2 + .../color-helpers/dist/calculations/delta-EOK.d.ts | 14 + .../color-helpers/dist/calculations/index.d.ts | 5 + .../color-helpers/dist/calculations/map-gamut.d.ts | 2 + .../dist/calculations/multiply-matrices.d.ts | 12 + .../color-helpers/dist/conversions/constants.d.ts | 2 + .../color-helpers/dist/conversions/d50-to-d65.d.ts | 9 + .../color-helpers/dist/conversions/d65-to-d50.d.ts | 10 + .../color-helpers/dist/conversions/gam-2020.d.ts | 10 + .../color-helpers/dist/conversions/gam-a98rgb.d.ts | 10 + .../color-helpers/dist/conversions/gam-p3.d.ts | 10 + .../dist/conversions/gam-pro-photo.d.ts | 11 + .../color-helpers/dist/conversions/gam-srgb.d.ts | 14 + .../dist/conversions/hsl-to-srgb.d.ts | 14 + .../color-helpers/dist/conversions/hue-to-rgb.d.ts | 8 + .../dist/conversions/hwb-to-srgb.d.ts | 14 + .../color-helpers/dist/conversions/index.d.ts | 40 + .../color-helpers/dist/conversions/lab-to-lch.d.ts | 7 + .../color-helpers/dist/conversions/lab-to-xyz.d.ts | 2 + .../color-helpers/dist/conversions/lch-to-lab.d.ts | 7 + .../dist/conversions/lin-2020-to-xyz.d.ts | 12 + .../color-helpers/dist/conversions/lin-2020.d.ts | 11 + .../dist/conversions/lin-a98rgb-to-xyz.d.ts | 18 + .../color-helpers/dist/conversions/lin-a98rgb.d.ts | 10 + .../dist/conversions/lin-p3-to-xyz.d.ts | 12 + .../color-helpers/dist/conversions/lin-p3.d.ts | 10 + .../dist/conversions/lin-pro-photo-to-xyz.d.ts | 12 + .../dist/conversions/lin-pro-photo.d.ts | 11 + .../dist/conversions/lin-srgb-to-xyz.d.ts | 10 + .../color-helpers/dist/conversions/lin-srgb.d.ts | 15 + .../dist/conversions/naive-cmyk-to-srgb.d.ts | 14 + .../dist/conversions/oklab-to-oklch.d.ts | 9 + .../dist/conversions/oklab-to-xyz.d.ts | 2 + .../dist/conversions/oklch-to-oklab.d.ts | 9 + .../dist/conversions/srgb-to-hsl.d.ts | 16 + .../dist/conversions/srgb-to-hwb.d.ts | 11 + .../dist/conversions/srgb-to-luminance.d.ts | 12 + .../color-helpers/dist/conversions/xyz-to-lab.d.ts | 2 + .../dist/conversions/xyz-to-lin-2020.d.ts | 9 + .../dist/conversions/xyz-to-lin-a98rgb.d.ts | 9 + .../dist/conversions/xyz-to-lin-p3.d.ts | 9 + .../dist/conversions/xyz-to-lin-pro-photo.d.ts | 11 + .../dist/conversions/xyz-to-lin-srgb.d.ts | 7 + .../dist/conversions/xyz-to-oklab.d.ts | 10 + .../color-helpers/dist/conversions/xyz-to-uv.d.ts | 11 + .../color-helpers/dist/conversions/xyz-to-xy.d.ts | 11 + .../color-helpers/dist/conversions/xyz/index.d.ts | 253 + .../@csstools/color-helpers/dist/index.cjs | 388 + .../@csstools/color-helpers/dist/index.d.ts | 6 + .../@csstools/color-helpers/dist/index.mjs | 388 + .../color-helpers/dist/named-colors/index.d.ts | 2 + .../@csstools/color-helpers/dist/types/color.d.ts | 1 + .../@csstools/color-helpers/dist/utils/clip.d.ts | 7 + .../color-helpers/dist/utils/in-gamut.d.ts | 7 + .../@csstools/color-helpers/dist/utils/index.d.ts | 2 + node_modules/@csstools/color-helpers/package.json | 73 + node_modules/@csstools/css-calc/CHANGELOG.md | 47 + node_modules/@csstools/css-calc/LICENSE.md | 20 + node_modules/@csstools/css-calc/README.md | 132 + .../@csstools/css-calc/dist/calculation.d.ts | 8 + .../@csstools/css-calc/dist/functions/abs.d.ts | 3 + .../@csstools/css-calc/dist/functions/acos.d.ts | 3 + .../@csstools/css-calc/dist/functions/asin.d.ts | 3 + .../@csstools/css-calc/dist/functions/atan.d.ts | 3 + .../@csstools/css-calc/dist/functions/atan2.d.ts | 3 + .../@csstools/css-calc/dist/functions/calc.d.ts | 29 + .../@csstools/css-calc/dist/functions/clamp.d.ts | 3 + .../@csstools/css-calc/dist/functions/cos.d.ts | 3 + .../@csstools/css-calc/dist/functions/exp.d.ts | 3 + .../dist/functions/globals-and-constants.d.ts | 3 + .../@csstools/css-calc/dist/functions/hypot.d.ts | 3 + .../@csstools/css-calc/dist/functions/log.d.ts | 3 + .../@csstools/css-calc/dist/functions/max.d.ts | 3 + .../@csstools/css-calc/dist/functions/min.d.ts | 3 + .../@csstools/css-calc/dist/functions/mod.d.ts | 3 + .../@csstools/css-calc/dist/functions/pow.d.ts | 3 + .../@csstools/css-calc/dist/functions/rem.d.ts | 3 + .../dist/functions/result-to-calculation.d.ts | 7 + .../@csstools/css-calc/dist/functions/round.d.ts | 3 + .../@csstools/css-calc/dist/functions/sign.d.ts | 3 + .../@csstools/css-calc/dist/functions/sin.d.ts | 3 + .../@csstools/css-calc/dist/functions/sqrt.d.ts | 3 + .../@csstools/css-calc/dist/functions/tan.d.ts | 3 + node_modules/@csstools/css-calc/dist/index.cjs | 1 + node_modules/@csstools/css-calc/dist/index.d.ts | 6 + node_modules/@csstools/css-calc/dist/index.mjs | 1 + .../css-calc/dist/operation/addition.d.ts | 2 + .../css-calc/dist/operation/division.d.ts | 2 + .../css-calc/dist/operation/multiplication.d.ts | 2 + .../css-calc/dist/operation/operation.d.ts | 2 + .../css-calc/dist/operation/subtraction.d.ts | 2 + .../@csstools/css-calc/dist/operation/unary.d.ts | 2 + node_modules/@csstools/css-calc/dist/options.d.ts | 23 + .../css-calc/dist/unit-conversions/canonical.d.ts | 1 + .../css-calc/dist/unit-conversions/cm.d.ts | 1 + .../css-calc/dist/unit-conversions/deg.d.ts | 1 + .../css-calc/dist/unit-conversions/grad.d.ts | 1 + .../css-calc/dist/unit-conversions/hz.d.ts | 1 + .../css-calc/dist/unit-conversions/in.d.ts | 1 + .../css-calc/dist/unit-conversions/index.d.ts | 4 + .../css-calc/dist/unit-conversions/khz.d.ts | 1 + .../css-calc/dist/unit-conversions/mm.d.ts | 1 + .../css-calc/dist/unit-conversions/ms.d.ts | 1 + .../css-calc/dist/unit-conversions/pc.d.ts | 1 + .../css-calc/dist/unit-conversions/pt.d.ts | 1 + .../css-calc/dist/unit-conversions/px.d.ts | 1 + .../css-calc/dist/unit-conversions/q.d.ts | 1 + .../css-calc/dist/unit-conversions/rad.d.ts | 1 + .../css-calc/dist/unit-conversions/s.d.ts | 1 + .../css-calc/dist/unit-conversions/turn.d.ts | 1 + .../css-calc/dist/util/canonical-unit.d.ts | 2 + .../@csstools/css-calc/dist/util/globals.d.ts | 4 + .../@csstools/css-calc/dist/util/infinity.d.ts | 2 + .../css-calc/dist/util/kind-of-number.d.ts | 5 + .../@csstools/css-calc/dist/util/minus-zero.d.ts | 2 + node_modules/@csstools/css-calc/dist/util/nan.d.ts | 2 + .../@csstools/css-calc/dist/util/patch-result.d.ts | 3 + .../@csstools/css-calc/dist/util/precision.d.ts | 2 + .../css-calc/dist/util/to-lower-case-a-z.d.ts | 1 + node_modules/@csstools/css-calc/package.json | 72 + .../@csstools/css-color-parser/CHANGELOG.md | 98 + node_modules/@csstools/css-color-parser/LICENSE.md | 20 + node_modules/@csstools/css-color-parser/README.md | 37 + .../css-color-parser/dist/color-data.d.ts | 34 + .../css-color-parser/dist/color-notation.d.ts | 18 + .../css-color-parser/dist/color-parser.d.ts | 3 + .../dist/functions/color-keyword.d.ts | 2 + .../css-color-parser/dist/functions/color-mix.d.ts | 4 + .../functions/color-normalize-channel-values.d.ts | 3 + .../css-color-parser/dist/functions/color.d.ts | 4 + .../css-color-parser/dist/functions/hex.d.ts | 3 + .../functions/hsl-normalize-channel-values.d.ts | 4 + .../css-color-parser/dist/functions/hsl.d.ts | 4 + .../functions/hue-normalize-channel-value.d.ts | 3 + .../functions/hwb-normalize-channel-values.d.ts | 3 + .../css-color-parser/dist/functions/hwb.d.ts | 4 + .../functions/lab-normalize-channel-values.d.ts | 3 + .../css-color-parser/dist/functions/lab.d.ts | 4 + .../functions/lch-normalize-channel-values.d.ts | 3 + .../css-color-parser/dist/functions/lch.d.ts | 4 + .../dist/functions/named-color.d.ts | 2 + .../dist/functions/normalize-channel-values.d.ts | 3 + .../css-color-parser/dist/functions/normalize.d.ts | 1 + .../functions/oklab-normalize-channel-values.d.ts | 3 + .../css-color-parser/dist/functions/oklab.d.ts | 4 + .../functions/oklch-normalize-channel-values.d.ts | 3 + .../css-color-parser/dist/functions/oklch.d.ts | 4 + .../functions/rgb-normalize-channel-values.d.ts | 4 + .../css-color-parser/dist/functions/rgb.d.ts | 4 + .../functions/three-channel-legacy-syntax.d.ts | 6 + .../functions/three-channel-space-separated.d.ts | 7 + .../css-color-parser/dist/gamut-mapping/p3.d.ts | 2 + .../css-color-parser/dist/gamut-mapping/srgb.d.ts | 2 + .../@csstools/css-color-parser/dist/index.cjs | 1 + .../@csstools/css-color-parser/dist/index.d.ts | 10 + .../@csstools/css-color-parser/dist/index.mjs | 1 + .../css-color-parser/dist/serialize/oklch.d.ts | 3 + .../css-color-parser/dist/serialize/p3.d.ts | 3 + .../css-color-parser/dist/serialize/rgb.d.ts | 3 + .../dist/serialize/to-precision.d.ts | 1 + .../dist/serialize/with-alpha.d.ts | 4 + .../dist/util/to-lower-case-a-z.d.ts | 1 + .../@csstools/css-color-parser/package.json | 77 + .../@csstools/css-parser-algorithms/CHANGELOG.md | 65 + .../@csstools/css-parser-algorithms/LICENSE.md | 20 + .../@csstools/css-parser-algorithms/README.md | 115 + .../consume/consume-component-block-function.d.ts | 118 + .../@csstools/css-parser-algorithms/dist/index.cjs | 1 + .../css-parser-algorithms/dist/index.d.ts | 10 + .../@csstools/css-parser-algorithms/dist/index.mjs | 1 + .../dist/interfaces/context.d.ts | 4 + ...e-comma-separated-list-of-component-values.d.ts | 5 + .../dist/parse/parse-component-value.d.ts | 4 + .../dist/parse/parse-list-of-component-values.d.ts | 5 + .../dist/util/component-value-type.d.ts | 7 + .../dist/util/node-ancestry.d.ts | 7 + .../dist/util/replace-component-values.d.ts | 2 + .../dist/util/source-indices.d.ts | 9 + .../css-parser-algorithms/dist/util/stringify.d.ts | 2 + .../dist/util/type-predicates.d.ts | 6 + .../@csstools/css-parser-algorithms/package.json | 72 + node_modules/@csstools/css-tokenizer/CHANGELOG.md | 54 + node_modules/@csstools/css-tokenizer/LICENSE.md | 20 + node_modules/@csstools/css-tokenizer/README.md | 108 + .../checks/four-code-points-would-start-cdo.d.ts | 2 + .../dist/checks/matches-url-ident.d.ts | 1 + .../checks/three-code-points-would-start-cdc.d.ts | 2 + ...ree-code-points-would-start-ident-sequence.d.ts | 3 + .../three-code-points-would-start-number.d.ts | 2 + ...hree-code-points-would-start-unicode-range.d.ts | 2 + .../checks/two-code-points-are-valid-escape.d.ts | 2 + .../dist/checks/two-code-points-start-comment.d.ts | 2 + .../dist/code-points/code-points.d.ts | 96 + .../css-tokenizer/dist/code-points/ranges.d.ts | 13 + .../css-tokenizer/dist/consume/bad-url.d.ts | 3 + .../css-tokenizer/dist/consume/comment.d.ts | 4 + .../dist/consume/escaped-code-point.d.ts | 3 + .../css-tokenizer/dist/consume/hash-token.d.ts | 4 + .../dist/consume/ident-like-token.d.ts | 4 + .../css-tokenizer/dist/consume/ident-sequence.d.ts | 3 + .../css-tokenizer/dist/consume/number.d.ts | 4 + .../css-tokenizer/dist/consume/numeric-token.d.ts | 4 + .../css-tokenizer/dist/consume/string-token.d.ts | 4 + .../dist/consume/unicode-range-token.d.ts | 4 + .../css-tokenizer/dist/consume/url-token.d.ts | 4 + .../dist/consume/whitespace-token.d.ts | 3 + .../@csstools/css-tokenizer/dist/index.cjs | 1 + .../@csstools/css-tokenizer/dist/index.d.ts | 9 + .../@csstools/css-tokenizer/dist/index.mjs | 1 + .../dist/interfaces/code-point-reader.d.ts | 12 + .../css-tokenizer/dist/interfaces/context.d.ts | 4 + .../css-tokenizer/dist/interfaces/error.d.ts | 9 + .../css-tokenizer/dist/interfaces/token.d.ts | 137 + .../@csstools/css-tokenizer/dist/reader.d.ts | 15 + .../@csstools/css-tokenizer/dist/stringify.d.ts | 2 + .../@csstools/css-tokenizer/dist/tokenizer.d.ts | 21 + .../css-tokenizer/dist/util/clone-tokens.d.ts | 2 + .../css-tokenizer/dist/util/mutations.d.ts | 2 + node_modules/@csstools/css-tokenizer/package.json | 73 + .../@csstools/media-query-list-parser/CHANGELOG.md | 84 + .../@csstools/media-query-list-parser/LICENSE.md | 20 + .../@csstools/media-query-list-parser/README.md | 61 + .../media-query-list-parser/dist/index.cjs | 1 + .../media-query-list-parser/dist/index.d.ts | 23 + .../media-query-list-parser/dist/index.mjs | 1 + .../dist/nodes/custom-media.d.ts | 44 + .../dist/nodes/general-enclosed.d.ts | 25 + .../dist/nodes/media-and.d.ts | 23 + .../dist/nodes/media-condition-list.d.ts | 50 + .../dist/nodes/media-condition.d.ts | 24 + .../dist/nodes/media-feature-boolean.d.ts | 27 + .../dist/nodes/media-feature-comparison.d.ts | 17 + .../dist/nodes/media-feature-name.d.ts | 24 + .../dist/nodes/media-feature-plain.d.ts | 42 + .../dist/nodes/media-feature-range.d.ts | 123 + .../dist/nodes/media-feature-value.d.ts | 31 + .../dist/nodes/media-feature.d.ts | 45 + .../dist/nodes/media-in-parens.d.ts | 41 + .../dist/nodes/media-not.d.ts | 32 + .../dist/nodes/media-or.d.ts | 32 + .../dist/nodes/media-query-modifier.d.ts | 6 + .../dist/nodes/media-query.d.ts | 83 + .../dist/nodes/media-type.d.ts | 24 + .../dist/parser/parse-custom-media.d.ts | 8 + .../dist/parser/parse-media-query.d.ts | 24 + .../media-query-list-parser/dist/parser/parse.d.ts | 8 + .../dist/util/clone-media-query.d.ts | 2 + .../dist/util/component-value-is.d.ts | 5 + .../dist/util/node-type.d.ts | 22 + .../dist/util/to-lower-case-a-z.d.ts | 1 + .../dist/util/type-predicates.d.ts | 37 + .../@csstools/media-query-list-parser/package.json | 74 + .../@csstools/postcss-cascade-layers/CHANGELOG.md | 87 + .../@csstools/postcss-cascade-layers/LICENSE.md | 18 + .../@csstools/postcss-cascade-layers/README.md | 202 + .../dist/adjust-selector-specificity.d.ts | 1 + .../postcss-cascade-layers/dist/clean-blocks.d.ts | 3 + .../postcss-cascade-layers/dist/constants.d.ts | 8 + .../dist/desugar-and-parse-layer-names.d.ts | 3 + .../dist/desugar-nested-layers.d.ts | 3 + .../dist/get-conditional-atrule-ancestor.d.ts | 2 + .../dist/get-layer-atrule-ancestor.d.ts | 2 + .../postcss-cascade-layers/dist/index.cjs | 1 + .../postcss-cascade-layers/dist/index.d.ts | 5 + .../postcss-cascade-layers/dist/index.mjs | 1 + .../dist/is-processable-layer-rule.d.ts | 2 + .../postcss-cascade-layers/dist/model.d.ts | 18 + .../postcss-cascade-layers/dist/options.d.ts | 9 + .../dist/record-layer-order.d.ts | 7 + .../postcss-cascade-layers/dist/some-in-tree.d.ts | 3 + .../dist/sort-root-nodes.d.ts | 3 + .../dist/split-important-styles.d.ts | 2 + .../@csstools/postcss-cascade-layers/package.json | 102 + .../@csstools/postcss-color-function/CHANGELOG.md | 156 + .../@csstools/postcss-color-function/LICENSE.md | 18 + .../@csstools/postcss-color-function/README.md | 162 + .../dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../postcss-color-function/dist/index.cjs | 1 + .../postcss-color-function/dist/index.d.ts | 10 + .../postcss-color-function/dist/index.mjs | 1 + .../@csstools/postcss-color-function/package.json | 89 + .../postcss-color-mix-function/CHANGELOG.md | 85 + .../postcss-color-mix-function/LICENSE.md | 18 + .../@csstools/postcss-color-mix-function/README.md | 84 + .../dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../postcss-color-mix-function/dist/index.cjs | 1 + .../postcss-color-mix-function/dist/index.d.ts | 15 + .../postcss-color-mix-function/dist/index.mjs | 1 + .../postcss-color-mix-function/package.json | 97 + .../postcss-exponential-functions/CHANGELOG.md | 18 + .../postcss-exponential-functions/LICENSE.md | 18 + .../postcss-exponential-functions/README.md | 104 + .../postcss-exponential-functions/dist/calc.d.ts | 1 + .../postcss-exponential-functions/dist/checks.d.ts | 2 + .../postcss-exponential-functions/dist/index.cjs | 1 + .../postcss-exponential-functions/dist/index.d.ts | 8 + .../postcss-exponential-functions/dist/index.mjs | 1 + .../postcss-exponential-functions/package.json | 91 + .../postcss-font-format-keywords/CHANGELOG.md | 37 + .../postcss-font-format-keywords/LICENSE.md | 18 + .../postcss-font-format-keywords/README.md | 86 + .../dist/has-fallback-decl.d.ts | 2 + .../postcss-font-format-keywords/dist/index.cjs | 1 + .../postcss-font-format-keywords/dist/index.d.ts | 8 + .../postcss-font-format-keywords/dist/index.mjs | 1 + .../postcss-font-format-keywords/package.json | 79 + .../@csstools/postcss-gamut-mapping/CHANGELOG.md | 8 + .../@csstools/postcss-gamut-mapping/LICENSE.md | 18 + .../@csstools/postcss-gamut-mapping/README.md | 84 + .../dist/has-conditional-ancestor.d.ts | 2 + .../dist/has-override-decl.d.ts | 5 + .../@csstools/postcss-gamut-mapping/dist/index.cjs | 1 + .../postcss-gamut-mapping/dist/index.d.ts | 5 + .../@csstools/postcss-gamut-mapping/dist/index.mjs | 1 + .../@csstools/postcss-gamut-mapping/package.json | 94 + .../CHANGELOG.md | 129 + .../LICENSE.md | 18 + .../README.md | 169 + .../dist/color-stop-list.d.ts | 9 + .../dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../dist/index.cjs | 1 + .../dist/index.d.ts | 10 + .../dist/index.mjs | 1 + .../dist/is-gradient.d.ts | 2 + .../dist/modify-gradient-component-values.d.ts | 2 + .../dist/parse-color-stops.d.ts | 3 + .../package.json | 88 + .../@csstools/postcss-hwb-function/CHANGELOG.md | 113 + .../@csstools/postcss-hwb-function/INSTALL.md | 235 + .../@csstools/postcss-hwb-function/LICENSE.md | 18 + .../@csstools/postcss-hwb-function/README.md | 88 + .../dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 3 + .../@csstools/postcss-hwb-function/dist/index.cjs | 1 + .../@csstools/postcss-hwb-function/dist/index.d.ts | 9 + .../@csstools/postcss-hwb-function/dist/index.mjs | 1 + .../@csstools/postcss-hwb-function/package.json | 88 + .../@csstools/postcss-ic-unit/CHANGELOG.md | 65 + node_modules/@csstools/postcss-ic-unit/LICENSE.md | 18 + node_modules/@csstools/postcss-ic-unit/README.md | 94 + .../postcss-ic-unit/dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../@csstools/postcss-ic-unit/dist/index.cjs | 1 + .../@csstools/postcss-ic-unit/dist/index.d.ts | 10 + .../@csstools/postcss-ic-unit/dist/index.mjs | 1 + .../@csstools/postcss-ic-unit/package.json | 78 + .../@csstools/postcss-initial/CHANGELOG.md | 7 + node_modules/@csstools/postcss-initial/LICENSE.md | 18 + node_modules/@csstools/postcss-initial/README.md | 87 + .../postcss-initial/dist/has-fallback-decl.d.ts | 2 + .../@csstools/postcss-initial/dist/index.cjs | 1 + .../@csstools/postcss-initial/dist/index.d.ts | 8 + .../@csstools/postcss-initial/dist/index.mjs | 1 + .../@csstools/postcss-initial/dist/properties.d.ts | 2 + .../@csstools/postcss-initial/package.json | 80 + .../@csstools/postcss-is-pseudo-class/CHANGELOG.md | 148 + .../@csstools/postcss-is-pseudo-class/LICENSE.md | 18 + .../@csstools/postcss-is-pseudo-class/README.md | 251 + .../postcss-is-pseudo-class/dist/index.cjs | 1 + .../postcss-is-pseudo-class/dist/index.d.ts | 23 + .../postcss-is-pseudo-class/dist/index.mjs | 1 + .../dist/split-selectors/always-valid.d.ts | 1 + .../dist/split-selectors/complex.d.ts | 3 + .../complex/child-adjacent-child.d.ts | 1 + .../split-selectors/complex/is-in-compound.d.ts | 1 + .../complex/is-pseudo-in-first-compound.d.ts | 1 + .../split-selectors/compound-selector-order.d.ts | 1 + .../dist/split-selectors/split-selectors.d.ts | 3 + .../@csstools/postcss-is-pseudo-class/package.json | 81 + .../postcss-logical-float-and-clear/CHANGELOG.md | 19 + .../postcss-logical-float-and-clear/LICENSE.md | 18 + .../postcss-logical-float-and-clear/README.md | 95 + .../postcss-logical-float-and-clear/dist/index.cjs | 1 + .../dist/index.d.ts | 9 + .../postcss-logical-float-and-clear/dist/index.mjs | 1 + .../dist/lib/clone-declaration.d.ts | 2 + .../dist/lib/types.d.ts | 18 + .../dist/utils/direction-flow-to-axes.d.ts | 2 + .../postcss-logical-float-and-clear/package.json | 87 + .../@csstools/postcss-logical-resize/CHANGELOG.md | 19 + .../@csstools/postcss-logical-resize/LICENSE.md | 18 + .../@csstools/postcss-logical-resize/README.md | 108 + .../postcss-logical-resize/dist/index.cjs | 1 + .../postcss-logical-resize/dist/index.d.ts | 11 + .../postcss-logical-resize/dist/index.mjs | 1 + .../dist/lib/clone-declaration.d.ts | 2 + .../dist/lib/transform-resize.d.ts | 3 + .../postcss-logical-resize/dist/lib/types.d.ts | 31 + .../dist/utils/direction-flow-to-axes.d.ts | 2 + .../@csstools/postcss-logical-resize/package.json | 89 + .../postcss-logical-viewport-units/CHANGELOG.md | 49 + .../postcss-logical-viewport-units/LICENSE.md | 18 + .../postcss-logical-viewport-units/README.md | 118 + .../dist/has-feature.d.ts | 1 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../postcss-logical-viewport-units/dist/index.cjs | 1 + .../postcss-logical-viewport-units/dist/index.d.ts | 11 + .../postcss-logical-viewport-units/dist/index.mjs | 1 + .../dist/lib/types.d.ts | 18 + .../dist/transform.d.ts | 4 + .../postcss-logical-viewport-units/package.json | 90 + .../@csstools/postcss-media-minmax/CHANGELOG.md | 69 + .../@csstools/postcss-media-minmax/LICENSE.md | 21 + .../@csstools/postcss-media-minmax/README.md | 67 + .../@csstools/postcss-media-minmax/dist/index.cjs | 1 + .../@csstools/postcss-media-minmax/dist/index.d.ts | 5 + .../@csstools/postcss-media-minmax/dist/index.mjs | 1 + .../dist/to-lower-case-a-z.d.ts | 1 + .../dist/transform-single-pair.d.ts | 2 + .../postcss-media-minmax/dist/transform.d.ts | 2 + .../@csstools/postcss-media-minmax/package.json | 92 + .../CHANGELOG.md | 68 + .../LICENSE.md | 18 + .../README.md | 75 + .../dist/index.cjs | 1 + .../dist/index.d.ts | 8 + .../dist/index.mjs | 1 + .../dist/transform-media-feature-value.d.ts | 2 + .../dist/transform-media-query-list.d.ts | 1 + .../package.json | 87 + .../@csstools/postcss-nested-calc/CHANGELOG.md | 31 + .../@csstools/postcss-nested-calc/LICENSE.md | 18 + .../@csstools/postcss-nested-calc/README.md | 80 + .../dist/has-fallback-decl.d.ts | 2 + .../@csstools/postcss-nested-calc/dist/index.cjs | 1 + .../@csstools/postcss-nested-calc/dist/index.d.ts | 8 + .../@csstools/postcss-nested-calc/dist/index.mjs | 1 + .../postcss-nested-calc/dist/occurrences.d.ts | 1 + .../@csstools/postcss-nested-calc/package.json | 87 + .../postcss-normalize-display-values/CHANGELOG.md | 37 + .../postcss-normalize-display-values/LICENSE.md | 18 + .../postcss-normalize-display-values/README.md | 86 + .../dist/index.cjs | 1 + .../dist/index.d.ts | 8 + .../dist/index.mjs | 1 + .../dist/mappings.d.ts | 5 + .../postcss-normalize-display-values/package.json | 89 + .../@csstools/postcss-oklab-function/CHANGELOG.md | 165 + .../@csstools/postcss-oklab-function/LICENSE.md | 18 + .../@csstools/postcss-oklab-function/README.md | 169 + .../dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../postcss-oklab-function/dist/index.cjs | 1 + .../postcss-oklab-function/dist/index.d.ts | 15 + .../postcss-oklab-function/dist/index.mjs | 1 + .../@csstools/postcss-oklab-function/package.json | 82 + .../CHANGELOG.md | 95 + .../LICENSE.md | 18 + .../README.md | 121 + .../dist/conditions-from-values.d.ts | 3 + .../dist/custom/double-position-gradients.d.ts | 2 + .../dist/index.cjs | 1 + .../dist/index.d.ts | 3 + .../dist/index.mjs | 1 + .../dist/match.d.ts | 11 + .../dist/matchers.d.ts | 33 + .../package.json | 78 + .../postcss-relative-color-syntax/CHANGELOG.md | 79 + .../postcss-relative-color-syntax/LICENSE.md | 18 + .../postcss-relative-color-syntax/README.md | 84 + .../dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../postcss-relative-color-syntax/dist/index.cjs | 1 + .../postcss-relative-color-syntax/dist/index.d.ts | 15 + .../postcss-relative-color-syntax/dist/index.mjs | 1 + .../postcss-relative-color-syntax/package.json | 88 + .../postcss-scope-pseudo-class/CHANGELOG.md | 32 + .../postcss-scope-pseudo-class/LICENSE.md | 18 + .../@csstools/postcss-scope-pseudo-class/README.md | 82 + .../postcss-scope-pseudo-class/dist/index.cjs | 1 + .../postcss-scope-pseudo-class/dist/index.d.ts | 8 + .../postcss-scope-pseudo-class/dist/index.mjs | 1 + .../postcss-scope-pseudo-class/package.json | 86 + .../postcss-stepped-value-functions/CHANGELOG.md | 66 + .../postcss-stepped-value-functions/LICENSE.md | 18 + .../postcss-stepped-value-functions/README.md | 120 + .../postcss-stepped-value-functions/dist/calc.d.ts | 1 + .../dist/checks.d.ts | 2 + .../postcss-stepped-value-functions/dist/index.cjs | 1 + .../dist/index.d.ts | 8 + .../postcss-stepped-value-functions/dist/index.mjs | 1 + .../postcss-stepped-value-functions/package.json | 90 + .../postcss-text-decoration-shorthand/CHANGELOG.md | 82 + .../postcss-text-decoration-shorthand/LICENSE.md | 18 + .../postcss-text-decoration-shorthand/README.md | 88 + .../dist/index.cjs | 1 + .../dist/index.d.ts | 8 + .../dist/index.mjs | 1 + .../postcss-text-decoration-shorthand/package.json | 89 + .../postcss-trigonometric-functions/CHANGELOG.md | 71 + .../postcss-trigonometric-functions/LICENSE.md | 18 + .../postcss-trigonometric-functions/README.md | 162 + .../postcss-trigonometric-functions/dist/calc.d.ts | 1 + .../dist/checks.d.ts | 2 + .../postcss-trigonometric-functions/dist/index.cjs | 1 + .../dist/index.d.ts | 8 + .../postcss-trigonometric-functions/dist/index.mjs | 1 + .../postcss-trigonometric-functions/package.json | 94 + .../@csstools/postcss-unset-value/CHANGELOG.md | 37 + .../@csstools/postcss-unset-value/LICENSE.md | 18 + .../@csstools/postcss-unset-value/README.md | 118 + .../@csstools/postcss-unset-value/dist/index.cjs | 1 + .../@csstools/postcss-unset-value/dist/index.d.ts | 8 + .../@csstools/postcss-unset-value/dist/index.mjs | 1 + .../postcss-unset-value/dist/property-def.d.ts | 2 + .../@csstools/postcss-unset-value/package.json | 81 + .../@csstools/selector-specificity/CHANGELOG.md | 63 + .../@csstools/selector-specificity/LICENSE.md | 18 + .../@csstools/selector-specificity/README.md | 57 + .../@csstools/selector-specificity/dist/index.cjs | 1 + .../@csstools/selector-specificity/dist/index.d.ts | 8 + .../@csstools/selector-specificity/dist/index.mjs | 1 + .../dist/to-lower-case-a-z.d.ts | 1 + .../@csstools/selector-specificity/package.json | 75 + node_modules/@nodelib/fs.scandir/LICENSE | 21 + node_modules/@nodelib/fs.scandir/README.md | 171 + .../@nodelib/fs.scandir/out/adapters/fs.d.ts | 20 + .../@nodelib/fs.scandir/out/adapters/fs.js | 19 + .../@nodelib/fs.scandir/out/constants.d.ts | 4 + node_modules/@nodelib/fs.scandir/out/constants.js | 17 + node_modules/@nodelib/fs.scandir/out/index.d.ts | 12 + node_modules/@nodelib/fs.scandir/out/index.js | 26 + .../@nodelib/fs.scandir/out/providers/async.d.ts | 7 + .../@nodelib/fs.scandir/out/providers/async.js | 104 + .../@nodelib/fs.scandir/out/providers/common.d.ts | 1 + .../@nodelib/fs.scandir/out/providers/common.js | 13 + .../@nodelib/fs.scandir/out/providers/sync.d.ts | 5 + .../@nodelib/fs.scandir/out/providers/sync.js | 54 + node_modules/@nodelib/fs.scandir/out/settings.d.ts | 20 + node_modules/@nodelib/fs.scandir/out/settings.js | 24 + .../@nodelib/fs.scandir/out/types/index.d.ts | 20 + .../@nodelib/fs.scandir/out/types/index.js | 2 + node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts | 2 + node_modules/@nodelib/fs.scandir/out/utils/fs.js | 19 + .../@nodelib/fs.scandir/out/utils/index.d.ts | 2 + .../@nodelib/fs.scandir/out/utils/index.js | 5 + node_modules/@nodelib/fs.scandir/package.json | 44 + node_modules/@nodelib/fs.stat/LICENSE | 21 + node_modules/@nodelib/fs.stat/README.md | 126 + node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts | 13 + node_modules/@nodelib/fs.stat/out/adapters/fs.js | 17 + node_modules/@nodelib/fs.stat/out/index.d.ts | 12 + node_modules/@nodelib/fs.stat/out/index.js | 26 + .../@nodelib/fs.stat/out/providers/async.d.ts | 4 + .../@nodelib/fs.stat/out/providers/async.js | 36 + .../@nodelib/fs.stat/out/providers/sync.d.ts | 3 + .../@nodelib/fs.stat/out/providers/sync.js | 23 + node_modules/@nodelib/fs.stat/out/settings.d.ts | 16 + node_modules/@nodelib/fs.stat/out/settings.js | 16 + node_modules/@nodelib/fs.stat/out/types/index.d.ts | 4 + node_modules/@nodelib/fs.stat/out/types/index.js | 2 + node_modules/@nodelib/fs.stat/package.json | 37 + node_modules/@nodelib/fs.walk/LICENSE | 21 + node_modules/@nodelib/fs.walk/README.md | 215 + node_modules/@nodelib/fs.walk/out/index.d.ts | 14 + node_modules/@nodelib/fs.walk/out/index.js | 34 + .../@nodelib/fs.walk/out/providers/async.d.ts | 12 + .../@nodelib/fs.walk/out/providers/async.js | 30 + .../@nodelib/fs.walk/out/providers/index.d.ts | 4 + .../@nodelib/fs.walk/out/providers/index.js | 9 + .../@nodelib/fs.walk/out/providers/stream.d.ts | 12 + .../@nodelib/fs.walk/out/providers/stream.js | 34 + .../@nodelib/fs.walk/out/providers/sync.d.ts | 10 + .../@nodelib/fs.walk/out/providers/sync.js | 14 + .../@nodelib/fs.walk/out/readers/async.d.ts | 30 + node_modules/@nodelib/fs.walk/out/readers/async.js | 97 + .../@nodelib/fs.walk/out/readers/common.d.ts | 7 + .../@nodelib/fs.walk/out/readers/common.js | 31 + .../@nodelib/fs.walk/out/readers/reader.d.ts | 6 + .../@nodelib/fs.walk/out/readers/reader.js | 11 + .../@nodelib/fs.walk/out/readers/sync.d.ts | 15 + node_modules/@nodelib/fs.walk/out/readers/sync.js | 59 + node_modules/@nodelib/fs.walk/out/settings.d.ts | 30 + node_modules/@nodelib/fs.walk/out/settings.js | 26 + node_modules/@nodelib/fs.walk/out/types/index.d.ts | 8 + node_modules/@nodelib/fs.walk/out/types/index.js | 2 + node_modules/@nodelib/fs.walk/package.json | 44 + node_modules/@trysound/sax/LICENSE | 15 + node_modules/@trysound/sax/README.md | 202 + node_modules/@trysound/sax/lib/sax.js | 1413 +++ node_modules/@trysound/sax/package.json | 30 + node_modules/ansi-regex/index.d.ts | 37 + node_modules/ansi-regex/index.js | 10 + node_modules/ansi-regex/license | 9 + node_modules/ansi-regex/package.json | 55 + node_modules/ansi-regex/readme.md | 78 + node_modules/ansi-styles/index.d.ts | 345 + node_modules/ansi-styles/index.js | 163 + node_modules/ansi-styles/license | 9 + node_modules/ansi-styles/package.json | 56 + node_modules/ansi-styles/readme.md | 152 + node_modules/anymatch/LICENSE | 15 + node_modules/anymatch/README.md | 87 + node_modules/anymatch/index.d.ts | 20 + node_modules/anymatch/index.js | 104 + node_modules/anymatch/package.json | 48 + node_modules/autoprefixer/LICENSE | 20 + node_modules/autoprefixer/README.md | 66 + node_modules/autoprefixer/bin/autoprefixer | 22 + node_modules/autoprefixer/data/prefixes.js | 1128 +++ node_modules/autoprefixer/lib/at-rule.js | 35 + node_modules/autoprefixer/lib/autoprefixer.d.ts | 95 + node_modules/autoprefixer/lib/autoprefixer.js | 164 + node_modules/autoprefixer/lib/brackets.js | 51 + node_modules/autoprefixer/lib/browsers.js | 79 + node_modules/autoprefixer/lib/declaration.js | 187 + .../autoprefixer/lib/hacks/align-content.js | 49 + node_modules/autoprefixer/lib/hacks/align-items.js | 46 + node_modules/autoprefixer/lib/hacks/align-self.js | 56 + node_modules/autoprefixer/lib/hacks/animation.js | 17 + node_modules/autoprefixer/lib/hacks/appearance.js | 23 + node_modules/autoprefixer/lib/hacks/autofill.js | 26 + .../autoprefixer/lib/hacks/backdrop-filter.js | 20 + .../autoprefixer/lib/hacks/background-clip.js | 24 + .../autoprefixer/lib/hacks/background-size.js | 23 + .../autoprefixer/lib/hacks/block-logical.js | 40 + .../autoprefixer/lib/hacks/border-image.js | 15 + .../autoprefixer/lib/hacks/border-radius.js | 40 + node_modules/autoprefixer/lib/hacks/break-props.js | 63 + node_modules/autoprefixer/lib/hacks/cross-fade.js | 35 + .../autoprefixer/lib/hacks/display-flex.js | 65 + .../autoprefixer/lib/hacks/display-grid.js | 21 + .../autoprefixer/lib/hacks/file-selector-button.js | 26 + .../autoprefixer/lib/hacks/filter-value.js | 14 + node_modules/autoprefixer/lib/hacks/filter.js | 19 + node_modules/autoprefixer/lib/hacks/flex-basis.js | 39 + .../autoprefixer/lib/hacks/flex-direction.js | 72 + node_modules/autoprefixer/lib/hacks/flex-flow.js | 53 + node_modules/autoprefixer/lib/hacks/flex-grow.js | 30 + node_modules/autoprefixer/lib/hacks/flex-shrink.js | 39 + node_modules/autoprefixer/lib/hacks/flex-spec.js | 19 + node_modules/autoprefixer/lib/hacks/flex-wrap.js | 19 + node_modules/autoprefixer/lib/hacks/flex.js | 54 + node_modules/autoprefixer/lib/hacks/fullscreen.js | 20 + node_modules/autoprefixer/lib/hacks/gradient.js | 448 + node_modules/autoprefixer/lib/hacks/grid-area.js | 34 + .../autoprefixer/lib/hacks/grid-column-align.js | 28 + node_modules/autoprefixer/lib/hacks/grid-end.js | 52 + .../autoprefixer/lib/hacks/grid-row-align.js | 28 + .../autoprefixer/lib/hacks/grid-row-column.js | 33 + .../autoprefixer/lib/hacks/grid-rows-columns.js | 125 + node_modules/autoprefixer/lib/hacks/grid-start.js | 33 + .../autoprefixer/lib/hacks/grid-template-areas.js | 84 + .../autoprefixer/lib/hacks/grid-template.js | 69 + node_modules/autoprefixer/lib/hacks/grid-utils.js | 1113 +++ .../autoprefixer/lib/hacks/image-rendering.js | 48 + node_modules/autoprefixer/lib/hacks/image-set.js | 18 + .../autoprefixer/lib/hacks/inline-logical.js | 34 + node_modules/autoprefixer/lib/hacks/intrinsic.js | 61 + .../autoprefixer/lib/hacks/justify-content.js | 54 + node_modules/autoprefixer/lib/hacks/mask-border.js | 38 + .../autoprefixer/lib/hacks/mask-composite.js | 88 + node_modules/autoprefixer/lib/hacks/order.js | 42 + .../autoprefixer/lib/hacks/overscroll-behavior.js | 33 + node_modules/autoprefixer/lib/hacks/pixelated.js | 34 + node_modules/autoprefixer/lib/hacks/place-self.js | 32 + .../autoprefixer/lib/hacks/placeholder-shown.js | 17 + node_modules/autoprefixer/lib/hacks/placeholder.js | 33 + .../autoprefixer/lib/hacks/print-color-adjust.js | 25 + .../lib/hacks/text-decoration-skip-ink.js | 23 + .../autoprefixer/lib/hacks/text-decoration.js | 25 + .../lib/hacks/text-emphasis-position.js | 14 + .../autoprefixer/lib/hacks/transform-decl.js | 79 + node_modules/autoprefixer/lib/hacks/user-select.js | 28 + .../autoprefixer/lib/hacks/writing-mode.js | 42 + node_modules/autoprefixer/lib/info.js | 123 + node_modules/autoprefixer/lib/old-selector.js | 67 + node_modules/autoprefixer/lib/old-value.js | 22 + node_modules/autoprefixer/lib/prefixer.js | 144 + node_modules/autoprefixer/lib/prefixes.js | 428 + node_modules/autoprefixer/lib/processor.js | 719 ++ node_modules/autoprefixer/lib/resolution.js | 97 + node_modules/autoprefixer/lib/selector.js | 150 + node_modules/autoprefixer/lib/supports.js | 302 + node_modules/autoprefixer/lib/transition.js | 329 + node_modules/autoprefixer/lib/utils.js | 93 + node_modules/autoprefixer/lib/value.js | 125 + node_modules/autoprefixer/lib/vendor.js | 14 + node_modules/autoprefixer/package.json | 49 + .../binary-extensions/binary-extensions.json | 260 + .../binary-extensions/binary-extensions.json.d.ts | 3 + node_modules/binary-extensions/index.d.ts | 14 + node_modules/binary-extensions/index.js | 1 + node_modules/binary-extensions/license | 9 + node_modules/binary-extensions/package.json | 38 + node_modules/binary-extensions/readme.md | 41 + node_modules/boolbase/README.md | 10 + node_modules/boolbase/index.js | 8 + node_modules/boolbase/package.json | 23 + node_modules/braces/CHANGELOG.md | 184 + node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 593 ++ node_modules/braces/index.js | 170 + node_modules/braces/lib/compile.js | 57 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 333 + node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 112 + node_modules/braces/package.json | 77 + node_modules/browserslist/LICENSE | 20 + node_modules/browserslist/README.md | 73 + node_modules/browserslist/browser.js | 52 + node_modules/browserslist/cli.js | 156 + node_modules/browserslist/error.d.ts | 7 + node_modules/browserslist/error.js | 12 + node_modules/browserslist/index.d.ts | 200 + node_modules/browserslist/index.js | 1197 +++ node_modules/browserslist/node.js | 410 + node_modules/browserslist/package.json | 44 + node_modules/browserslist/parse.js | 78 + node_modules/caniuse-api/CHANGELOG.md | 92 + node_modules/caniuse-api/LICENSE | 21 + node_modules/caniuse-api/README.md | 157 + node_modules/caniuse-api/dist/index.js | 96 + node_modules/caniuse-api/dist/utils.js | 62 + node_modules/caniuse-api/package.json | 47 + node_modules/caniuse-lite/LICENSE | 395 + node_modules/caniuse-lite/README.md | 6 + node_modules/caniuse-lite/data/agents.js | 1 + node_modules/caniuse-lite/data/browserVersions.js | 1 + node_modules/caniuse-lite/data/browsers.js | 1 + node_modules/caniuse-lite/data/features.js | 1 + node_modules/caniuse-lite/data/features/aac.js | 1 + .../caniuse-lite/data/features/abortcontroller.js | 1 + node_modules/caniuse-lite/data/features/ac3-ec3.js | 1 + .../caniuse-lite/data/features/accelerometer.js | 1 + .../caniuse-lite/data/features/addeventlistener.js | 1 + .../data/features/alternate-stylesheet.js | 1 + .../caniuse-lite/data/features/ambient-light.js | 1 + node_modules/caniuse-lite/data/features/apng.js | 1 + .../caniuse-lite/data/features/array-find-index.js | 1 + .../caniuse-lite/data/features/array-find.js | 1 + .../caniuse-lite/data/features/array-flat.js | 1 + .../caniuse-lite/data/features/array-includes.js | 1 + .../caniuse-lite/data/features/arrow-functions.js | 1 + node_modules/caniuse-lite/data/features/asmjs.js | 1 + .../caniuse-lite/data/features/async-clipboard.js | 1 + .../caniuse-lite/data/features/async-functions.js | 1 + .../caniuse-lite/data/features/atob-btoa.js | 1 + .../caniuse-lite/data/features/audio-api.js | 1 + node_modules/caniuse-lite/data/features/audio.js | 1 + .../caniuse-lite/data/features/audiotracks.js | 1 + .../caniuse-lite/data/features/autofocus.js | 1 + .../caniuse-lite/data/features/auxclick.js | 1 + node_modules/caniuse-lite/data/features/av1.js | 1 + node_modules/caniuse-lite/data/features/avif.js | 1 + .../data/features/background-attachment.js | 1 + .../data/features/background-clip-text.js | 1 + .../data/features/background-img-opts.js | 1 + .../data/features/background-position-x-y.js | 1 + .../data/features/background-repeat-round-space.js | 1 + .../caniuse-lite/data/features/background-sync.js | 1 + .../caniuse-lite/data/features/battery-status.js | 1 + node_modules/caniuse-lite/data/features/beacon.js | 1 + .../caniuse-lite/data/features/beforeafterprint.js | 1 + node_modules/caniuse-lite/data/features/bigint.js | 1 + .../caniuse-lite/data/features/blobbuilder.js | 1 + .../caniuse-lite/data/features/bloburls.js | 1 + .../caniuse-lite/data/features/border-image.js | 1 + .../caniuse-lite/data/features/border-radius.js | 1 + .../caniuse-lite/data/features/broadcastchannel.js | 1 + node_modules/caniuse-lite/data/features/brotli.js | 1 + node_modules/caniuse-lite/data/features/calc.js | 1 + .../caniuse-lite/data/features/canvas-blending.js | 1 + .../caniuse-lite/data/features/canvas-text.js | 1 + node_modules/caniuse-lite/data/features/canvas.js | 1 + node_modules/caniuse-lite/data/features/ch-unit.js | 1 + .../data/features/chacha20-poly1305.js | 1 + .../data/features/channel-messaging.js | 1 + .../caniuse-lite/data/features/childnode-remove.js | 1 + .../caniuse-lite/data/features/classlist.js | 1 + .../features/client-hints-dpr-width-viewport.js | 1 + .../caniuse-lite/data/features/clipboard.js | 1 + node_modules/caniuse-lite/data/features/colr-v1.js | 1 + node_modules/caniuse-lite/data/features/colr.js | 1 + .../data/features/comparedocumentposition.js | 1 + .../caniuse-lite/data/features/console-basic.js | 1 + .../caniuse-lite/data/features/console-time.js | 1 + node_modules/caniuse-lite/data/features/const.js | 1 + .../data/features/constraint-validation.js | 1 + .../caniuse-lite/data/features/contenteditable.js | 1 + .../data/features/contentsecuritypolicy.js | 1 + .../data/features/contentsecuritypolicy2.js | 1 + .../caniuse-lite/data/features/cookie-store-api.js | 1 + node_modules/caniuse-lite/data/features/cors.js | 1 + .../data/features/createimagebitmap.js | 1 + .../data/features/credential-management.js | 1 + .../caniuse-lite/data/features/cryptography.js | 1 + node_modules/caniuse-lite/data/features/css-all.js | 1 + .../data/features/css-anchor-positioning.js | 1 + .../caniuse-lite/data/features/css-animation.js | 1 + .../caniuse-lite/data/features/css-any-link.js | 1 + .../caniuse-lite/data/features/css-appearance.js | 1 + .../data/features/css-at-counter-style.js | 1 + .../caniuse-lite/data/features/css-autofill.js | 1 + .../data/features/css-backdrop-filter.js | 1 + .../data/features/css-background-offsets.js | 1 + .../data/features/css-backgroundblendmode.js | 1 + .../data/features/css-boxdecorationbreak.js | 1 + .../caniuse-lite/data/features/css-boxshadow.js | 1 + .../caniuse-lite/data/features/css-canvas.js | 1 + .../caniuse-lite/data/features/css-caret-color.js | 1 + .../data/features/css-cascade-layers.js | 1 + .../data/features/css-cascade-scope.js | 1 + .../data/features/css-case-insensitive.js | 1 + .../caniuse-lite/data/features/css-clip-path.js | 1 + .../caniuse-lite/data/features/css-color-adjust.js | 1 + .../data/features/css-color-function.js | 1 + .../data/features/css-conic-gradients.js | 1 + .../data/features/css-container-queries-style.js | 1 + .../data/features/css-container-queries.js | 1 + .../data/features/css-container-query-units.js | 1 + .../caniuse-lite/data/features/css-containment.js | 1 + .../data/features/css-content-visibility.js | 1 + .../caniuse-lite/data/features/css-counters.js | 1 + .../caniuse-lite/data/features/css-crisp-edges.js | 1 + .../caniuse-lite/data/features/css-cross-fade.js | 1 + .../data/features/css-default-pseudo.js | 1 + .../data/features/css-descendant-gtgt.js | 1 + .../data/features/css-deviceadaptation.js | 1 + .../caniuse-lite/data/features/css-dir-pseudo.js | 1 + .../data/features/css-display-contents.js | 1 + .../data/features/css-element-function.js | 1 + .../caniuse-lite/data/features/css-env-function.js | 1 + .../caniuse-lite/data/features/css-exclusions.js | 1 + .../data/features/css-featurequeries.js | 1 + .../data/features/css-file-selector-button.js | 1 + .../data/features/css-filter-function.js | 1 + .../caniuse-lite/data/features/css-filters.js | 1 + .../caniuse-lite/data/features/css-first-letter.js | 1 + .../caniuse-lite/data/features/css-first-line.js | 1 + .../caniuse-lite/data/features/css-fixed.js | 1 + .../data/features/css-focus-visible.js | 1 + .../caniuse-lite/data/features/css-focus-within.js | 1 + .../caniuse-lite/data/features/css-font-palette.js | 1 + .../data/features/css-font-rendering-controls.js | 1 + .../caniuse-lite/data/features/css-font-stretch.js | 1 + .../caniuse-lite/data/features/css-gencontent.js | 1 + .../caniuse-lite/data/features/css-gradients.js | 1 + .../data/features/css-grid-animation.js | 1 + .../caniuse-lite/data/features/css-grid.js | 1 + .../data/features/css-hanging-punctuation.js | 1 + node_modules/caniuse-lite/data/features/css-has.js | 1 + .../caniuse-lite/data/features/css-hyphens.js | 1 + .../data/features/css-image-orientation.js | 1 + .../caniuse-lite/data/features/css-image-set.js | 1 + .../data/features/css-in-out-of-range.js | 1 + .../data/features/css-indeterminate-pseudo.js | 1 + .../data/features/css-initial-letter.js | 1 + .../data/features/css-initial-value.js | 1 + .../caniuse-lite/data/features/css-lch-lab.js | 1 + .../data/features/css-letter-spacing.js | 1 + .../caniuse-lite/data/features/css-line-clamp.js | 1 + .../data/features/css-logical-props.js | 1 + .../data/features/css-marker-pseudo.js | 1 + .../caniuse-lite/data/features/css-masks.js | 1 + .../data/features/css-matches-pseudo.js | 1 + .../data/features/css-math-functions.js | 1 + .../data/features/css-media-interaction.js | 1 + .../data/features/css-media-range-syntax.js | 1 + .../data/features/css-media-resolution.js | 1 + .../data/features/css-media-scripting.js | 1 + .../caniuse-lite/data/features/css-mediaqueries.js | 1 + .../caniuse-lite/data/features/css-mixblendmode.js | 1 + .../caniuse-lite/data/features/css-motion-paths.js | 1 + .../caniuse-lite/data/features/css-namespaces.js | 1 + .../caniuse-lite/data/features/css-nesting.js | 1 + .../caniuse-lite/data/features/css-not-sel-list.js | 1 + .../caniuse-lite/data/features/css-nth-child-of.js | 1 + .../caniuse-lite/data/features/css-opacity.js | 1 + .../data/features/css-optional-pseudo.js | 1 + .../data/features/css-overflow-anchor.js | 1 + .../data/features/css-overflow-overlay.js | 1 + .../caniuse-lite/data/features/css-overflow.js | 1 + .../data/features/css-overscroll-behavior.js | 1 + .../caniuse-lite/data/features/css-page-break.js | 1 + .../caniuse-lite/data/features/css-paged-media.js | 1 + .../caniuse-lite/data/features/css-paint-api.js | 1 + .../data/features/css-placeholder-shown.js | 1 + .../caniuse-lite/data/features/css-placeholder.js | 1 + .../data/features/css-print-color-adjust.js | 1 + .../data/features/css-read-only-write.js | 1 + .../data/features/css-rebeccapurple.js | 1 + .../caniuse-lite/data/features/css-reflections.js | 1 + .../caniuse-lite/data/features/css-regions.js | 1 + .../data/features/css-relative-colors.js | 1 + .../data/features/css-repeating-gradients.js | 1 + .../caniuse-lite/data/features/css-resize.js | 1 + .../caniuse-lite/data/features/css-revert-value.js | 1 + .../caniuse-lite/data/features/css-rrggbbaa.js | 1 + .../data/features/css-scroll-behavior.js | 1 + .../data/features/css-scroll-timeline.js | 1 + .../caniuse-lite/data/features/css-scrollbar.js | 1 + .../caniuse-lite/data/features/css-sel2.js | 1 + .../caniuse-lite/data/features/css-sel3.js | 1 + .../caniuse-lite/data/features/css-selection.js | 1 + .../caniuse-lite/data/features/css-shapes.js | 1 + .../caniuse-lite/data/features/css-snappoints.js | 1 + .../caniuse-lite/data/features/css-sticky.js | 1 + .../caniuse-lite/data/features/css-subgrid.js | 1 + .../caniuse-lite/data/features/css-supports-api.js | 1 + .../caniuse-lite/data/features/css-table.js | 1 + .../data/features/css-text-align-last.js | 1 + .../data/features/css-text-box-trim.js | 1 + .../caniuse-lite/data/features/css-text-indent.js | 1 + .../caniuse-lite/data/features/css-text-justify.js | 1 + .../data/features/css-text-orientation.js | 1 + .../caniuse-lite/data/features/css-text-spacing.js | 1 + .../data/features/css-text-wrap-balance.js | 1 + .../caniuse-lite/data/features/css-textshadow.js | 1 + .../caniuse-lite/data/features/css-touch-action.js | 1 + .../caniuse-lite/data/features/css-transitions.js | 1 + .../caniuse-lite/data/features/css-unicode-bidi.js | 1 + .../caniuse-lite/data/features/css-unset-value.js | 1 + .../caniuse-lite/data/features/css-variables.js | 1 + .../caniuse-lite/data/features/css-when-else.js | 1 + .../data/features/css-widows-orphans.js | 1 + .../data/features/css-width-stretch.js | 1 + .../caniuse-lite/data/features/css-writing-mode.js | 1 + .../caniuse-lite/data/features/css-zoom.js | 1 + .../caniuse-lite/data/features/css3-attr.js | 1 + .../caniuse-lite/data/features/css3-boxsizing.js | 1 + .../caniuse-lite/data/features/css3-colors.js | 1 + .../data/features/css3-cursors-grab.js | 1 + .../data/features/css3-cursors-newer.js | 1 + .../caniuse-lite/data/features/css3-cursors.js | 1 + .../caniuse-lite/data/features/css3-tabsize.js | 1 + .../caniuse-lite/data/features/currentcolor.js | 1 + .../caniuse-lite/data/features/custom-elements.js | 1 + .../data/features/custom-elementsv1.js | 1 + .../caniuse-lite/data/features/customevent.js | 1 + .../caniuse-lite/data/features/datalist.js | 1 + node_modules/caniuse-lite/data/features/dataset.js | 1 + node_modules/caniuse-lite/data/features/datauri.js | 1 + .../data/features/date-tolocaledatestring.js | 1 + .../data/features/declarative-shadow-dom.js | 1 + .../caniuse-lite/data/features/decorators.js | 1 + node_modules/caniuse-lite/data/features/details.js | 1 + .../data/features/deviceorientation.js | 1 + .../caniuse-lite/data/features/devicepixelratio.js | 1 + node_modules/caniuse-lite/data/features/dialog.js | 1 + .../caniuse-lite/data/features/dispatchevent.js | 1 + node_modules/caniuse-lite/data/features/dnssec.js | 1 + .../caniuse-lite/data/features/do-not-track.js | 1 + .../data/features/document-currentscript.js | 1 + .../data/features/document-evaluate-xpath.js | 1 + .../data/features/document-execcommand.js | 1 + .../caniuse-lite/data/features/document-policy.js | 1 + .../data/features/document-scrollingelement.js | 1 + .../caniuse-lite/data/features/documenthead.js | 1 + .../data/features/dom-manip-convenience.js | 1 + .../caniuse-lite/data/features/dom-range.js | 1 + .../caniuse-lite/data/features/domcontentloaded.js | 1 + .../caniuse-lite/data/features/dommatrix.js | 1 + .../caniuse-lite/data/features/download.js | 1 + .../caniuse-lite/data/features/dragndrop.js | 1 + .../caniuse-lite/data/features/element-closest.js | 1 + .../data/features/element-from-point.js | 1 + .../data/features/element-scroll-methods.js | 1 + node_modules/caniuse-lite/data/features/eme.js | 1 + node_modules/caniuse-lite/data/features/eot.js | 1 + node_modules/caniuse-lite/data/features/es5.js | 1 + .../caniuse-lite/data/features/es6-class.js | 1 + .../caniuse-lite/data/features/es6-generators.js | 1 + .../data/features/es6-module-dynamic-import.js | 1 + .../caniuse-lite/data/features/es6-module.js | 1 + .../caniuse-lite/data/features/es6-number.js | 1 + .../data/features/es6-string-includes.js | 1 + node_modules/caniuse-lite/data/features/es6.js | 1 + .../caniuse-lite/data/features/eventsource.js | 1 + .../data/features/extended-system-fonts.js | 1 + .../caniuse-lite/data/features/feature-policy.js | 1 + node_modules/caniuse-lite/data/features/fetch.js | 1 + .../data/features/fieldset-disabled.js | 1 + node_modules/caniuse-lite/data/features/fileapi.js | 1 + .../caniuse-lite/data/features/filereader.js | 1 + .../caniuse-lite/data/features/filereadersync.js | 1 + .../caniuse-lite/data/features/filesystem.js | 1 + node_modules/caniuse-lite/data/features/flac.js | 1 + .../caniuse-lite/data/features/flexbox-gap.js | 1 + node_modules/caniuse-lite/data/features/flexbox.js | 1 + .../caniuse-lite/data/features/flow-root.js | 1 + .../data/features/focusin-focusout-events.js | 1 + .../data/features/font-family-system-ui.js | 1 + .../caniuse-lite/data/features/font-feature.js | 1 + .../caniuse-lite/data/features/font-kerning.js | 1 + .../caniuse-lite/data/features/font-loading.js | 1 + .../caniuse-lite/data/features/font-size-adjust.js | 1 + .../caniuse-lite/data/features/font-smooth.js | 1 + .../data/features/font-unicode-range.js | 1 + .../data/features/font-variant-alternates.js | 1 + .../data/features/font-variant-numeric.js | 1 + .../caniuse-lite/data/features/fontface.js | 1 + .../caniuse-lite/data/features/form-attribute.js | 1 + .../data/features/form-submit-attributes.js | 1 + .../caniuse-lite/data/features/form-validation.js | 1 + node_modules/caniuse-lite/data/features/forms.js | 1 + .../caniuse-lite/data/features/fullscreen.js | 1 + node_modules/caniuse-lite/data/features/gamepad.js | 1 + .../caniuse-lite/data/features/geolocation.js | 1 + .../data/features/getboundingclientrect.js | 1 + .../caniuse-lite/data/features/getcomputedstyle.js | 1 + .../data/features/getelementsbyclassname.js | 1 + .../caniuse-lite/data/features/getrandomvalues.js | 1 + .../caniuse-lite/data/features/gyroscope.js | 1 + .../data/features/hardwareconcurrency.js | 1 + .../caniuse-lite/data/features/hashchange.js | 1 + node_modules/caniuse-lite/data/features/heif.js | 1 + node_modules/caniuse-lite/data/features/hevc.js | 1 + node_modules/caniuse-lite/data/features/hidden.js | 1 + .../data/features/high-resolution-time.js | 1 + node_modules/caniuse-lite/data/features/history.js | 1 + .../data/features/html-media-capture.js | 1 + .../caniuse-lite/data/features/html5semantic.js | 1 + .../data/features/http-live-streaming.js | 1 + node_modules/caniuse-lite/data/features/http2.js | 1 + node_modules/caniuse-lite/data/features/http3.js | 1 + .../caniuse-lite/data/features/iframe-sandbox.js | 1 + .../caniuse-lite/data/features/iframe-seamless.js | 1 + .../caniuse-lite/data/features/iframe-srcdoc.js | 1 + .../caniuse-lite/data/features/imagecapture.js | 1 + node_modules/caniuse-lite/data/features/ime.js | 1 + .../features/img-naturalwidth-naturalheight.js | 1 + .../caniuse-lite/data/features/import-maps.js | 1 + node_modules/caniuse-lite/data/features/imports.js | 1 + .../data/features/indeterminate-checkbox.js | 1 + .../caniuse-lite/data/features/indexeddb.js | 1 + .../caniuse-lite/data/features/indexeddb2.js | 1 + .../caniuse-lite/data/features/inline-block.js | 1 + .../caniuse-lite/data/features/innertext.js | 1 + .../data/features/input-autocomplete-onoff.js | 1 + .../caniuse-lite/data/features/input-color.js | 1 + .../caniuse-lite/data/features/input-datetime.js | 1 + .../data/features/input-email-tel-url.js | 1 + .../caniuse-lite/data/features/input-event.js | 1 + .../data/features/input-file-accept.js | 1 + .../data/features/input-file-directory.js | 1 + .../data/features/input-file-multiple.js | 1 + .../caniuse-lite/data/features/input-inputmode.js | 1 + .../caniuse-lite/data/features/input-minlength.js | 1 + .../caniuse-lite/data/features/input-number.js | 1 + .../caniuse-lite/data/features/input-pattern.js | 1 + .../data/features/input-placeholder.js | 1 + .../caniuse-lite/data/features/input-range.js | 1 + .../caniuse-lite/data/features/input-search.js | 1 + .../caniuse-lite/data/features/input-selection.js | 1 + .../caniuse-lite/data/features/insert-adjacent.js | 1 + .../data/features/insertadjacenthtml.js | 1 + .../data/features/internationalization.js | 1 + .../data/features/intersectionobserver-v2.js | 1 + .../data/features/intersectionobserver.js | 1 + .../caniuse-lite/data/features/intl-pluralrules.js | 1 + .../caniuse-lite/data/features/intrinsic-width.js | 1 + .../caniuse-lite/data/features/jpeg2000.js | 1 + node_modules/caniuse-lite/data/features/jpegxl.js | 1 + node_modules/caniuse-lite/data/features/jpegxr.js | 1 + .../data/features/js-regexp-lookbehind.js | 1 + node_modules/caniuse-lite/data/features/json.js | 1 + .../data/features/justify-content-space-evenly.js | 1 + .../data/features/kerning-pairs-ligatures.js | 1 + .../data/features/keyboardevent-charcode.js | 1 + .../data/features/keyboardevent-code.js | 1 + .../features/keyboardevent-getmodifierstate.js | 1 + .../data/features/keyboardevent-key.js | 1 + .../data/features/keyboardevent-location.js | 1 + .../data/features/keyboardevent-which.js | 1 + .../caniuse-lite/data/features/lazyload.js | 1 + node_modules/caniuse-lite/data/features/let.js | 1 + .../caniuse-lite/data/features/link-icon-png.js | 1 + .../caniuse-lite/data/features/link-icon-svg.js | 1 + .../data/features/link-rel-dns-prefetch.js | 1 + .../data/features/link-rel-modulepreload.js | 1 + .../data/features/link-rel-preconnect.js | 1 + .../data/features/link-rel-prefetch.js | 1 + .../caniuse-lite/data/features/link-rel-preload.js | 1 + .../data/features/link-rel-prerender.js | 1 + .../data/features/loading-lazy-attr.js | 1 + .../caniuse-lite/data/features/localecompare.js | 1 + .../caniuse-lite/data/features/magnetometer.js | 1 + .../caniuse-lite/data/features/matchesselector.js | 1 + .../caniuse-lite/data/features/matchmedia.js | 1 + node_modules/caniuse-lite/data/features/mathml.js | 1 + .../caniuse-lite/data/features/maxlength.js | 1 + .../features/mdn-css-backdrop-pseudo-element.js | 1 + .../mdn-css-unicode-bidi-isolate-override.js | 1 + .../data/features/mdn-css-unicode-bidi-isolate.js | 1 + .../features/mdn-css-unicode-bidi-plaintext.js | 1 + .../data/features/mdn-text-decoration-color.js | 1 + .../data/features/mdn-text-decoration-line.js | 1 + .../data/features/mdn-text-decoration-shorthand.js | 1 + .../data/features/mdn-text-decoration-style.js | 1 + .../caniuse-lite/data/features/media-fragments.js | 1 + .../data/features/mediacapture-fromelement.js | 1 + .../caniuse-lite/data/features/mediarecorder.js | 1 + .../caniuse-lite/data/features/mediasource.js | 1 + node_modules/caniuse-lite/data/features/menu.js | 1 + .../caniuse-lite/data/features/meta-theme-color.js | 1 + node_modules/caniuse-lite/data/features/meter.js | 1 + node_modules/caniuse-lite/data/features/midi.js | 1 + .../caniuse-lite/data/features/minmaxwh.js | 1 + node_modules/caniuse-lite/data/features/mp3.js | 1 + .../caniuse-lite/data/features/mpeg-dash.js | 1 + node_modules/caniuse-lite/data/features/mpeg4.js | 1 + .../caniuse-lite/data/features/multibackgrounds.js | 1 + .../caniuse-lite/data/features/multicolumn.js | 1 + .../caniuse-lite/data/features/mutation-events.js | 1 + .../caniuse-lite/data/features/mutationobserver.js | 1 + .../data/features/namevalue-storage.js | 1 + .../data/features/native-filesystem-api.js | 1 + .../caniuse-lite/data/features/nav-timing.js | 1 + node_modules/caniuse-lite/data/features/netinfo.js | 1 + .../caniuse-lite/data/features/notifications.js | 1 + .../caniuse-lite/data/features/object-entries.js | 1 + .../caniuse-lite/data/features/object-fit.js | 1 + .../caniuse-lite/data/features/object-observe.js | 1 + .../caniuse-lite/data/features/object-values.js | 1 + .../caniuse-lite/data/features/objectrtc.js | 1 + .../caniuse-lite/data/features/offline-apps.js | 1 + .../caniuse-lite/data/features/offscreencanvas.js | 1 + .../caniuse-lite/data/features/ogg-vorbis.js | 1 + node_modules/caniuse-lite/data/features/ogv.js | 1 + .../caniuse-lite/data/features/ol-reversed.js | 1 + .../data/features/once-event-listener.js | 1 + .../caniuse-lite/data/features/online-status.js | 1 + node_modules/caniuse-lite/data/features/opus.js | 1 + .../data/features/orientation-sensor.js | 1 + node_modules/caniuse-lite/data/features/outline.js | 1 + .../caniuse-lite/data/features/pad-start-end.js | 1 + .../data/features/page-transition-events.js | 1 + .../caniuse-lite/data/features/pagevisibility.js | 1 + .../data/features/passive-event-listener.js | 1 + .../caniuse-lite/data/features/passkeys.js | 1 + .../caniuse-lite/data/features/passwordrules.js | 1 + node_modules/caniuse-lite/data/features/path2d.js | 1 + .../caniuse-lite/data/features/payment-request.js | 1 + .../caniuse-lite/data/features/pdf-viewer.js | 1 + .../caniuse-lite/data/features/permissions-api.js | 1 + .../data/features/permissions-policy.js | 1 + .../data/features/picture-in-picture.js | 1 + node_modules/caniuse-lite/data/features/picture.js | 1 + node_modules/caniuse-lite/data/features/ping.js | 1 + .../caniuse-lite/data/features/png-alpha.js | 1 + .../caniuse-lite/data/features/pointer-events.js | 1 + node_modules/caniuse-lite/data/features/pointer.js | 1 + .../caniuse-lite/data/features/pointerlock.js | 1 + node_modules/caniuse-lite/data/features/portals.js | 1 + .../data/features/prefers-color-scheme.js | 1 + .../data/features/prefers-reduced-motion.js | 1 + .../caniuse-lite/data/features/progress.js | 1 + .../caniuse-lite/data/features/promise-finally.js | 1 + .../caniuse-lite/data/features/promises.js | 1 + .../caniuse-lite/data/features/proximity.js | 1 + node_modules/caniuse-lite/data/features/proxy.js | 1 + .../caniuse-lite/data/features/publickeypinning.js | 1 + .../caniuse-lite/data/features/push-api.js | 1 + .../caniuse-lite/data/features/queryselector.js | 1 + .../caniuse-lite/data/features/readonly-attr.js | 1 + .../caniuse-lite/data/features/referrer-policy.js | 1 + .../data/features/registerprotocolhandler.js | 1 + .../caniuse-lite/data/features/rel-noopener.js | 1 + .../caniuse-lite/data/features/rel-noreferrer.js | 1 + node_modules/caniuse-lite/data/features/rellist.js | 1 + node_modules/caniuse-lite/data/features/rem.js | 1 + .../data/features/requestanimationframe.js | 1 + .../data/features/requestidlecallback.js | 1 + .../caniuse-lite/data/features/resizeobserver.js | 1 + .../caniuse-lite/data/features/resource-timing.js | 1 + .../caniuse-lite/data/features/rest-parameters.js | 1 + .../data/features/rtcpeerconnection.js | 1 + node_modules/caniuse-lite/data/features/ruby.js | 1 + node_modules/caniuse-lite/data/features/run-in.js | 1 + .../data/features/same-site-cookie-attribute.js | 1 + .../data/features/screen-orientation.js | 1 + .../caniuse-lite/data/features/script-async.js | 1 + .../caniuse-lite/data/features/script-defer.js | 1 + .../caniuse-lite/data/features/scrollintoview.js | 1 + .../data/features/scrollintoviewifneeded.js | 1 + node_modules/caniuse-lite/data/features/sdch.js | 1 + .../caniuse-lite/data/features/selection-api.js | 1 + .../caniuse-lite/data/features/server-timing.js | 1 + .../caniuse-lite/data/features/serviceworkers.js | 1 + .../caniuse-lite/data/features/setimmediate.js | 1 + .../caniuse-lite/data/features/shadowdom.js | 1 + .../caniuse-lite/data/features/shadowdomv1.js | 1 + .../data/features/sharedarraybuffer.js | 1 + .../caniuse-lite/data/features/sharedworkers.js | 1 + node_modules/caniuse-lite/data/features/sni.js | 1 + node_modules/caniuse-lite/data/features/spdy.js | 1 + .../data/features/speech-recognition.js | 1 + .../caniuse-lite/data/features/speech-synthesis.js | 1 + .../data/features/spellcheck-attribute.js | 1 + .../caniuse-lite/data/features/sql-storage.js | 1 + node_modules/caniuse-lite/data/features/srcset.js | 1 + node_modules/caniuse-lite/data/features/stream.js | 1 + node_modules/caniuse-lite/data/features/streams.js | 1 + .../data/features/stricttransportsecurity.js | 1 + .../caniuse-lite/data/features/style-scoped.js | 1 + .../data/features/subresource-bundling.js | 1 + .../data/features/subresource-integrity.js | 1 + node_modules/caniuse-lite/data/features/svg-css.js | 1 + .../caniuse-lite/data/features/svg-filters.js | 1 + .../caniuse-lite/data/features/svg-fonts.js | 1 + .../caniuse-lite/data/features/svg-fragment.js | 1 + .../caniuse-lite/data/features/svg-html.js | 1 + .../caniuse-lite/data/features/svg-html5.js | 1 + node_modules/caniuse-lite/data/features/svg-img.js | 1 + .../caniuse-lite/data/features/svg-smil.js | 1 + node_modules/caniuse-lite/data/features/svg.js | 1 + node_modules/caniuse-lite/data/features/sxg.js | 1 + .../caniuse-lite/data/features/tabindex-attr.js | 1 + .../data/features/template-literals.js | 1 + .../caniuse-lite/data/features/template.js | 1 + .../caniuse-lite/data/features/temporal.js | 1 + .../caniuse-lite/data/features/testfeat.js | 1 + .../caniuse-lite/data/features/text-decoration.js | 1 + .../caniuse-lite/data/features/text-emphasis.js | 1 + .../caniuse-lite/data/features/text-overflow.js | 1 + .../caniuse-lite/data/features/text-size-adjust.js | 1 + .../caniuse-lite/data/features/text-stroke.js | 1 + .../caniuse-lite/data/features/textcontent.js | 1 + .../caniuse-lite/data/features/textencoder.js | 1 + node_modules/caniuse-lite/data/features/tls1-1.js | 1 + node_modules/caniuse-lite/data/features/tls1-2.js | 1 + node_modules/caniuse-lite/data/features/tls1-3.js | 1 + node_modules/caniuse-lite/data/features/touch.js | 1 + .../caniuse-lite/data/features/transforms2d.js | 1 + .../caniuse-lite/data/features/transforms3d.js | 1 + .../caniuse-lite/data/features/trusted-types.js | 1 + node_modules/caniuse-lite/data/features/ttf.js | 1 + .../caniuse-lite/data/features/typedarrays.js | 1 + node_modules/caniuse-lite/data/features/u2f.js | 1 + .../data/features/unhandledrejection.js | 1 + .../data/features/upgradeinsecurerequests.js | 1 + .../data/features/url-scroll-to-text-fragment.js | 1 + node_modules/caniuse-lite/data/features/url.js | 1 + .../caniuse-lite/data/features/urlsearchparams.js | 1 + .../caniuse-lite/data/features/use-strict.js | 1 + .../caniuse-lite/data/features/user-select-none.js | 1 + .../caniuse-lite/data/features/user-timing.js | 1 + .../caniuse-lite/data/features/variable-fonts.js | 1 + .../caniuse-lite/data/features/vector-effect.js | 1 + .../caniuse-lite/data/features/vibration.js | 1 + node_modules/caniuse-lite/data/features/video.js | 1 + .../caniuse-lite/data/features/videotracks.js | 1 + .../caniuse-lite/data/features/view-transitions.js | 1 + .../data/features/viewport-unit-variants.js | 1 + .../caniuse-lite/data/features/viewport-units.js | 1 + .../caniuse-lite/data/features/wai-aria.js | 1 + .../caniuse-lite/data/features/wake-lock.js | 1 + node_modules/caniuse-lite/data/features/wasm.js | 1 + node_modules/caniuse-lite/data/features/wav.js | 1 + .../caniuse-lite/data/features/wbr-element.js | 1 + .../caniuse-lite/data/features/web-animation.js | 1 + .../caniuse-lite/data/features/web-app-manifest.js | 1 + .../caniuse-lite/data/features/web-bluetooth.js | 1 + .../caniuse-lite/data/features/web-serial.js | 1 + .../caniuse-lite/data/features/web-share.js | 1 + .../caniuse-lite/data/features/webauthn.js | 1 + .../caniuse-lite/data/features/webcodecs.js | 1 + node_modules/caniuse-lite/data/features/webgl.js | 1 + node_modules/caniuse-lite/data/features/webgl2.js | 1 + node_modules/caniuse-lite/data/features/webgpu.js | 1 + node_modules/caniuse-lite/data/features/webhid.js | 1 + .../caniuse-lite/data/features/webkit-user-drag.js | 1 + node_modules/caniuse-lite/data/features/webm.js | 1 + node_modules/caniuse-lite/data/features/webnfc.js | 1 + node_modules/caniuse-lite/data/features/webp.js | 1 + .../caniuse-lite/data/features/websockets.js | 1 + .../caniuse-lite/data/features/webtransport.js | 1 + node_modules/caniuse-lite/data/features/webusb.js | 1 + node_modules/caniuse-lite/data/features/webvr.js | 1 + node_modules/caniuse-lite/data/features/webvtt.js | 1 + .../caniuse-lite/data/features/webworkers.js | 1 + node_modules/caniuse-lite/data/features/webxr.js | 1 + .../caniuse-lite/data/features/will-change.js | 1 + node_modules/caniuse-lite/data/features/woff.js | 1 + node_modules/caniuse-lite/data/features/woff2.js | 1 + .../caniuse-lite/data/features/word-break.js | 1 + .../caniuse-lite/data/features/wordwrap.js | 1 + .../caniuse-lite/data/features/x-doc-messaging.js | 1 + .../caniuse-lite/data/features/x-frame-options.js | 1 + node_modules/caniuse-lite/data/features/xhr2.js | 1 + node_modules/caniuse-lite/data/features/xhtml.js | 1 + .../caniuse-lite/data/features/xhtmlsmil.js | 1 + .../caniuse-lite/data/features/xml-serializer.js | 1 + node_modules/caniuse-lite/data/features/zstd.js | 1 + node_modules/caniuse-lite/data/regions/AD.js | 1 + node_modules/caniuse-lite/data/regions/AE.js | 1 + node_modules/caniuse-lite/data/regions/AF.js | 1 + node_modules/caniuse-lite/data/regions/AG.js | 1 + node_modules/caniuse-lite/data/regions/AI.js | 1 + node_modules/caniuse-lite/data/regions/AL.js | 1 + node_modules/caniuse-lite/data/regions/AM.js | 1 + node_modules/caniuse-lite/data/regions/AO.js | 1 + node_modules/caniuse-lite/data/regions/AR.js | 1 + node_modules/caniuse-lite/data/regions/AS.js | 1 + node_modules/caniuse-lite/data/regions/AT.js | 1 + node_modules/caniuse-lite/data/regions/AU.js | 1 + node_modules/caniuse-lite/data/regions/AW.js | 1 + node_modules/caniuse-lite/data/regions/AX.js | 1 + node_modules/caniuse-lite/data/regions/AZ.js | 1 + node_modules/caniuse-lite/data/regions/BA.js | 1 + node_modules/caniuse-lite/data/regions/BB.js | 1 + node_modules/caniuse-lite/data/regions/BD.js | 1 + node_modules/caniuse-lite/data/regions/BE.js | 1 + node_modules/caniuse-lite/data/regions/BF.js | 1 + node_modules/caniuse-lite/data/regions/BG.js | 1 + node_modules/caniuse-lite/data/regions/BH.js | 1 + node_modules/caniuse-lite/data/regions/BI.js | 1 + node_modules/caniuse-lite/data/regions/BJ.js | 1 + node_modules/caniuse-lite/data/regions/BM.js | 1 + node_modules/caniuse-lite/data/regions/BN.js | 1 + node_modules/caniuse-lite/data/regions/BO.js | 1 + node_modules/caniuse-lite/data/regions/BR.js | 1 + node_modules/caniuse-lite/data/regions/BS.js | 1 + node_modules/caniuse-lite/data/regions/BT.js | 1 + node_modules/caniuse-lite/data/regions/BW.js | 1 + node_modules/caniuse-lite/data/regions/BY.js | 1 + node_modules/caniuse-lite/data/regions/BZ.js | 1 + node_modules/caniuse-lite/data/regions/CA.js | 1 + node_modules/caniuse-lite/data/regions/CD.js | 1 + node_modules/caniuse-lite/data/regions/CF.js | 1 + node_modules/caniuse-lite/data/regions/CG.js | 1 + node_modules/caniuse-lite/data/regions/CH.js | 1 + node_modules/caniuse-lite/data/regions/CI.js | 1 + node_modules/caniuse-lite/data/regions/CK.js | 1 + node_modules/caniuse-lite/data/regions/CL.js | 1 + node_modules/caniuse-lite/data/regions/CM.js | 1 + node_modules/caniuse-lite/data/regions/CN.js | 1 + node_modules/caniuse-lite/data/regions/CO.js | 1 + node_modules/caniuse-lite/data/regions/CR.js | 1 + node_modules/caniuse-lite/data/regions/CU.js | 1 + node_modules/caniuse-lite/data/regions/CV.js | 1 + node_modules/caniuse-lite/data/regions/CX.js | 1 + node_modules/caniuse-lite/data/regions/CY.js | 1 + node_modules/caniuse-lite/data/regions/CZ.js | 1 + node_modules/caniuse-lite/data/regions/DE.js | 1 + node_modules/caniuse-lite/data/regions/DJ.js | 1 + node_modules/caniuse-lite/data/regions/DK.js | 1 + node_modules/caniuse-lite/data/regions/DM.js | 1 + node_modules/caniuse-lite/data/regions/DO.js | 1 + node_modules/caniuse-lite/data/regions/DZ.js | 1 + node_modules/caniuse-lite/data/regions/EC.js | 1 + node_modules/caniuse-lite/data/regions/EE.js | 1 + node_modules/caniuse-lite/data/regions/EG.js | 1 + node_modules/caniuse-lite/data/regions/ER.js | 1 + node_modules/caniuse-lite/data/regions/ES.js | 1 + node_modules/caniuse-lite/data/regions/ET.js | 1 + node_modules/caniuse-lite/data/regions/FI.js | 1 + node_modules/caniuse-lite/data/regions/FJ.js | 1 + node_modules/caniuse-lite/data/regions/FK.js | 1 + node_modules/caniuse-lite/data/regions/FM.js | 1 + node_modules/caniuse-lite/data/regions/FO.js | 1 + node_modules/caniuse-lite/data/regions/FR.js | 1 + node_modules/caniuse-lite/data/regions/GA.js | 1 + node_modules/caniuse-lite/data/regions/GB.js | 1 + node_modules/caniuse-lite/data/regions/GD.js | 1 + node_modules/caniuse-lite/data/regions/GE.js | 1 + node_modules/caniuse-lite/data/regions/GF.js | 1 + node_modules/caniuse-lite/data/regions/GG.js | 1 + node_modules/caniuse-lite/data/regions/GH.js | 1 + node_modules/caniuse-lite/data/regions/GI.js | 1 + node_modules/caniuse-lite/data/regions/GL.js | 1 + node_modules/caniuse-lite/data/regions/GM.js | 1 + node_modules/caniuse-lite/data/regions/GN.js | 1 + node_modules/caniuse-lite/data/regions/GP.js | 1 + node_modules/caniuse-lite/data/regions/GQ.js | 1 + node_modules/caniuse-lite/data/regions/GR.js | 1 + node_modules/caniuse-lite/data/regions/GT.js | 1 + node_modules/caniuse-lite/data/regions/GU.js | 1 + node_modules/caniuse-lite/data/regions/GW.js | 1 + node_modules/caniuse-lite/data/regions/GY.js | 1 + node_modules/caniuse-lite/data/regions/HK.js | 1 + node_modules/caniuse-lite/data/regions/HN.js | 1 + node_modules/caniuse-lite/data/regions/HR.js | 1 + node_modules/caniuse-lite/data/regions/HT.js | 1 + node_modules/caniuse-lite/data/regions/HU.js | 1 + node_modules/caniuse-lite/data/regions/ID.js | 1 + node_modules/caniuse-lite/data/regions/IE.js | 1 + node_modules/caniuse-lite/data/regions/IL.js | 1 + node_modules/caniuse-lite/data/regions/IM.js | 1 + node_modules/caniuse-lite/data/regions/IN.js | 1 + node_modules/caniuse-lite/data/regions/IQ.js | 1 + node_modules/caniuse-lite/data/regions/IR.js | 1 + node_modules/caniuse-lite/data/regions/IS.js | 1 + node_modules/caniuse-lite/data/regions/IT.js | 1 + node_modules/caniuse-lite/data/regions/JE.js | 1 + node_modules/caniuse-lite/data/regions/JM.js | 1 + node_modules/caniuse-lite/data/regions/JO.js | 1 + node_modules/caniuse-lite/data/regions/JP.js | 1 + node_modules/caniuse-lite/data/regions/KE.js | 1 + node_modules/caniuse-lite/data/regions/KG.js | 1 + node_modules/caniuse-lite/data/regions/KH.js | 1 + node_modules/caniuse-lite/data/regions/KI.js | 1 + node_modules/caniuse-lite/data/regions/KM.js | 1 + node_modules/caniuse-lite/data/regions/KN.js | 1 + node_modules/caniuse-lite/data/regions/KP.js | 1 + node_modules/caniuse-lite/data/regions/KR.js | 1 + node_modules/caniuse-lite/data/regions/KW.js | 1 + node_modules/caniuse-lite/data/regions/KY.js | 1 + node_modules/caniuse-lite/data/regions/KZ.js | 1 + node_modules/caniuse-lite/data/regions/LA.js | 1 + node_modules/caniuse-lite/data/regions/LB.js | 1 + node_modules/caniuse-lite/data/regions/LC.js | 1 + node_modules/caniuse-lite/data/regions/LI.js | 1 + node_modules/caniuse-lite/data/regions/LK.js | 1 + node_modules/caniuse-lite/data/regions/LR.js | 1 + node_modules/caniuse-lite/data/regions/LS.js | 1 + node_modules/caniuse-lite/data/regions/LT.js | 1 + node_modules/caniuse-lite/data/regions/LU.js | 1 + node_modules/caniuse-lite/data/regions/LV.js | 1 + node_modules/caniuse-lite/data/regions/LY.js | 1 + node_modules/caniuse-lite/data/regions/MA.js | 1 + node_modules/caniuse-lite/data/regions/MC.js | 1 + node_modules/caniuse-lite/data/regions/MD.js | 1 + node_modules/caniuse-lite/data/regions/ME.js | 1 + node_modules/caniuse-lite/data/regions/MG.js | 1 + node_modules/caniuse-lite/data/regions/MH.js | 1 + node_modules/caniuse-lite/data/regions/MK.js | 1 + node_modules/caniuse-lite/data/regions/ML.js | 1 + node_modules/caniuse-lite/data/regions/MM.js | 1 + node_modules/caniuse-lite/data/regions/MN.js | 1 + node_modules/caniuse-lite/data/regions/MO.js | 1 + node_modules/caniuse-lite/data/regions/MP.js | 1 + node_modules/caniuse-lite/data/regions/MQ.js | 1 + node_modules/caniuse-lite/data/regions/MR.js | 1 + node_modules/caniuse-lite/data/regions/MS.js | 1 + node_modules/caniuse-lite/data/regions/MT.js | 1 + node_modules/caniuse-lite/data/regions/MU.js | 1 + node_modules/caniuse-lite/data/regions/MV.js | 1 + node_modules/caniuse-lite/data/regions/MW.js | 1 + node_modules/caniuse-lite/data/regions/MX.js | 1 + node_modules/caniuse-lite/data/regions/MY.js | 1 + node_modules/caniuse-lite/data/regions/MZ.js | 1 + node_modules/caniuse-lite/data/regions/NA.js | 1 + node_modules/caniuse-lite/data/regions/NC.js | 1 + node_modules/caniuse-lite/data/regions/NE.js | 1 + node_modules/caniuse-lite/data/regions/NF.js | 1 + node_modules/caniuse-lite/data/regions/NG.js | 1 + node_modules/caniuse-lite/data/regions/NI.js | 1 + node_modules/caniuse-lite/data/regions/NL.js | 1 + node_modules/caniuse-lite/data/regions/NO.js | 1 + node_modules/caniuse-lite/data/regions/NP.js | 1 + node_modules/caniuse-lite/data/regions/NR.js | 1 + node_modules/caniuse-lite/data/regions/NU.js | 1 + node_modules/caniuse-lite/data/regions/NZ.js | 1 + node_modules/caniuse-lite/data/regions/OM.js | 1 + node_modules/caniuse-lite/data/regions/PA.js | 1 + node_modules/caniuse-lite/data/regions/PE.js | 1 + node_modules/caniuse-lite/data/regions/PF.js | 1 + node_modules/caniuse-lite/data/regions/PG.js | 1 + node_modules/caniuse-lite/data/regions/PH.js | 1 + node_modules/caniuse-lite/data/regions/PK.js | 1 + node_modules/caniuse-lite/data/regions/PL.js | 1 + node_modules/caniuse-lite/data/regions/PM.js | 1 + node_modules/caniuse-lite/data/regions/PN.js | 1 + node_modules/caniuse-lite/data/regions/PR.js | 1 + node_modules/caniuse-lite/data/regions/PS.js | 1 + node_modules/caniuse-lite/data/regions/PT.js | 1 + node_modules/caniuse-lite/data/regions/PW.js | 1 + node_modules/caniuse-lite/data/regions/PY.js | 1 + node_modules/caniuse-lite/data/regions/QA.js | 1 + node_modules/caniuse-lite/data/regions/RE.js | 1 + node_modules/caniuse-lite/data/regions/RO.js | 1 + node_modules/caniuse-lite/data/regions/RS.js | 1 + node_modules/caniuse-lite/data/regions/RU.js | 1 + node_modules/caniuse-lite/data/regions/RW.js | 1 + node_modules/caniuse-lite/data/regions/SA.js | 1 + node_modules/caniuse-lite/data/regions/SB.js | 1 + node_modules/caniuse-lite/data/regions/SC.js | 1 + node_modules/caniuse-lite/data/regions/SD.js | 1 + node_modules/caniuse-lite/data/regions/SE.js | 1 + node_modules/caniuse-lite/data/regions/SG.js | 1 + node_modules/caniuse-lite/data/regions/SH.js | 1 + node_modules/caniuse-lite/data/regions/SI.js | 1 + node_modules/caniuse-lite/data/regions/SK.js | 1 + node_modules/caniuse-lite/data/regions/SL.js | 1 + node_modules/caniuse-lite/data/regions/SM.js | 1 + node_modules/caniuse-lite/data/regions/SN.js | 1 + node_modules/caniuse-lite/data/regions/SO.js | 1 + node_modules/caniuse-lite/data/regions/SR.js | 1 + node_modules/caniuse-lite/data/regions/ST.js | 1 + node_modules/caniuse-lite/data/regions/SV.js | 1 + node_modules/caniuse-lite/data/regions/SY.js | 1 + node_modules/caniuse-lite/data/regions/SZ.js | 1 + node_modules/caniuse-lite/data/regions/TC.js | 1 + node_modules/caniuse-lite/data/regions/TD.js | 1 + node_modules/caniuse-lite/data/regions/TG.js | 1 + node_modules/caniuse-lite/data/regions/TH.js | 1 + node_modules/caniuse-lite/data/regions/TJ.js | 1 + node_modules/caniuse-lite/data/regions/TK.js | 1 + node_modules/caniuse-lite/data/regions/TL.js | 1 + node_modules/caniuse-lite/data/regions/TM.js | 1 + node_modules/caniuse-lite/data/regions/TN.js | 1 + node_modules/caniuse-lite/data/regions/TO.js | 1 + node_modules/caniuse-lite/data/regions/TR.js | 1 + node_modules/caniuse-lite/data/regions/TT.js | 1 + node_modules/caniuse-lite/data/regions/TV.js | 1 + node_modules/caniuse-lite/data/regions/TW.js | 1 + node_modules/caniuse-lite/data/regions/TZ.js | 1 + node_modules/caniuse-lite/data/regions/UA.js | 1 + node_modules/caniuse-lite/data/regions/UG.js | 1 + node_modules/caniuse-lite/data/regions/US.js | 1 + node_modules/caniuse-lite/data/regions/UY.js | 1 + node_modules/caniuse-lite/data/regions/UZ.js | 1 + node_modules/caniuse-lite/data/regions/VA.js | 1 + node_modules/caniuse-lite/data/regions/VC.js | 1 + node_modules/caniuse-lite/data/regions/VE.js | 1 + node_modules/caniuse-lite/data/regions/VG.js | 1 + node_modules/caniuse-lite/data/regions/VI.js | 1 + node_modules/caniuse-lite/data/regions/VN.js | 1 + node_modules/caniuse-lite/data/regions/VU.js | 1 + node_modules/caniuse-lite/data/regions/WF.js | 1 + node_modules/caniuse-lite/data/regions/WS.js | 1 + node_modules/caniuse-lite/data/regions/YE.js | 1 + node_modules/caniuse-lite/data/regions/YT.js | 1 + node_modules/caniuse-lite/data/regions/ZA.js | 1 + node_modules/caniuse-lite/data/regions/ZM.js | 1 + node_modules/caniuse-lite/data/regions/ZW.js | 1 + node_modules/caniuse-lite/data/regions/alt-af.js | 1 + node_modules/caniuse-lite/data/regions/alt-an.js | 1 + node_modules/caniuse-lite/data/regions/alt-as.js | 1 + node_modules/caniuse-lite/data/regions/alt-eu.js | 1 + node_modules/caniuse-lite/data/regions/alt-na.js | 1 + node_modules/caniuse-lite/data/regions/alt-oc.js | 1 + node_modules/caniuse-lite/data/regions/alt-sa.js | 1 + node_modules/caniuse-lite/data/regions/alt-ww.js | 1 + node_modules/caniuse-lite/dist/lib/statuses.js | 9 + node_modules/caniuse-lite/dist/lib/supported.js | 9 + node_modules/caniuse-lite/dist/unpacker/agents.js | 47 + .../caniuse-lite/dist/unpacker/browserVersions.js | 1 + .../caniuse-lite/dist/unpacker/browsers.js | 1 + node_modules/caniuse-lite/dist/unpacker/feature.js | 52 + .../caniuse-lite/dist/unpacker/features.js | 6 + node_modules/caniuse-lite/dist/unpacker/index.js | 4 + node_modules/caniuse-lite/dist/unpacker/region.js | 22 + node_modules/caniuse-lite/package.json | 34 + node_modules/chokidar/LICENSE | 21 + node_modules/chokidar/README.md | 308 + node_modules/chokidar/index.js | 973 ++ node_modules/chokidar/lib/constants.js | 65 + node_modules/chokidar/lib/fsevents-handler.js | 524 ++ node_modules/chokidar/lib/nodefs-handler.js | 654 ++ node_modules/chokidar/package.json | 85 + node_modules/chokidar/types/index.d.ts | 188 + node_modules/cliui/CHANGELOG.md | 139 + node_modules/cliui/LICENSE.txt | 14 + node_modules/cliui/README.md | 141 + node_modules/cliui/build/index.cjs | 302 + node_modules/cliui/build/index.d.cts | 43 + node_modules/cliui/build/lib/index.js | 287 + node_modules/cliui/build/lib/string-utils.js | 27 + node_modules/cliui/index.mjs | 13 + node_modules/cliui/package.json | 83 + node_modules/color-convert/CHANGELOG.md | 54 + node_modules/color-convert/LICENSE | 21 + node_modules/color-convert/README.md | 68 + node_modules/color-convert/conversions.js | 839 ++ node_modules/color-convert/index.js | 81 + node_modules/color-convert/package.json | 48 + node_modules/color-convert/route.js | 97 + node_modules/color-name/LICENSE | 8 + node_modules/color-name/README.md | 11 + node_modules/color-name/index.js | 152 + node_modules/color-name/package.json | 28 + node_modules/colord/CHANGELOG.md | 188 + node_modules/colord/LICENSE.md | 21 + node_modules/colord/README.md | 1053 +++ node_modules/colord/colord.d.ts | 103 + node_modules/colord/constants.d.ts | 10 + node_modules/colord/extend.d.ts | 4 + node_modules/colord/helpers.d.ts | 20 + node_modules/colord/index.d.ts | 5 + node_modules/colord/index.js | 1 + node_modules/colord/index.mjs | 1 + node_modules/colord/package.json | 210 + node_modules/colord/parse.d.ts | 8 + node_modules/colord/plugins/a11y.d.ts | 38 + node_modules/colord/plugins/a11y.js | 1 + node_modules/colord/plugins/a11y.mjs | 1 + node_modules/colord/plugins/cmyk.d.ts | 24 + node_modules/colord/plugins/cmyk.js | 1 + node_modules/colord/plugins/cmyk.mjs | 1 + node_modules/colord/plugins/harmonies.d.ts | 16 + node_modules/colord/plugins/harmonies.js | 1 + node_modules/colord/plugins/harmonies.mjs | 1 + node_modules/colord/plugins/hwb.d.ts | 23 + node_modules/colord/plugins/hwb.js | 1 + node_modules/colord/plugins/hwb.mjs | 1 + node_modules/colord/plugins/lab.d.ts | 23 + node_modules/colord/plugins/lab.js | 1 + node_modules/colord/plugins/lab.mjs | 1 + node_modules/colord/plugins/lch.d.ts | 24 + node_modules/colord/plugins/lch.js | 1 + node_modules/colord/plugins/lch.mjs | 1 + node_modules/colord/plugins/minify.d.ts | 20 + node_modules/colord/plugins/minify.js | 1 + node_modules/colord/plugins/minify.mjs | 1 + node_modules/colord/plugins/mix.d.ts | 27 + node_modules/colord/plugins/mix.js | 1 + node_modules/colord/plugins/mix.mjs | 1 + node_modules/colord/plugins/names.d.ts | 19 + node_modules/colord/plugins/names.js | 1 + node_modules/colord/plugins/names.mjs | 1 + node_modules/colord/plugins/xyz.d.ts | 14 + node_modules/colord/plugins/xyz.js | 1 + node_modules/colord/plugins/xyz.mjs | 1 + node_modules/colord/random.d.ts | 2 + node_modules/colord/types.d.ts | 67 + node_modules/commander/CHANGELOG.md | 440 + node_modules/commander/LICENSE | 22 + node_modules/commander/Readme.md | 917 ++ node_modules/commander/esm.mjs | 4 + node_modules/commander/index.js | 2217 +++++ node_modules/commander/package-support.json | 16 + node_modules/commander/package.json | 68 + node_modules/commander/typings/index.d.ts | 627 ++ node_modules/css-blank-pseudo/CHANGELOG.md | 188 + node_modules/css-blank-pseudo/LICENSE.md | 18 + node_modules/css-blank-pseudo/README.md | 214 + .../css-blank-pseudo/dist/browser-global.js | 2 + .../css-blank-pseudo/dist/browser-global.js.map | 1 + node_modules/css-blank-pseudo/dist/browser.cjs | 2 + node_modules/css-blank-pseudo/dist/browser.cjs.map | 1 + node_modules/css-blank-pseudo/dist/browser.mjs | 2 + node_modules/css-blank-pseudo/dist/browser.mjs.map | 1 + node_modules/css-blank-pseudo/dist/index.cjs | 1 + node_modules/css-blank-pseudo/dist/index.d.ts | 12 + node_modules/css-blank-pseudo/dist/index.mjs | 1 + node_modules/css-blank-pseudo/package.json | 111 + node_modules/css-declaration-sorter/dist/main.cjs | 1824 ++++ node_modules/css-declaration-sorter/license.md | 15 + .../css-declaration-sorter/orders/alphabetical.mjs | 393 + .../orders/concentric-css.mjs | 397 + .../css-declaration-sorter/orders/smacss.mjs | 399 + node_modules/css-declaration-sorter/package.json | 59 + node_modules/css-declaration-sorter/readme.md | 126 + .../css-declaration-sorter/src/bubble-sort.mjs | 20 + node_modules/css-declaration-sorter/src/main.d.ts | 27 + node_modules/css-declaration-sorter/src/main.mjs | 146 + .../css-declaration-sorter/src/shorthand-data.mjs | 433 + node_modules/css-has-pseudo/CHANGELOG.md | 207 + node_modules/css-has-pseudo/LICENSE.md | 18 + node_modules/css-has-pseudo/README.md | 338 + node_modules/css-has-pseudo/dist/browser-global.js | 2 + .../css-has-pseudo/dist/browser-global.js.map | 1 + node_modules/css-has-pseudo/dist/browser.cjs | 2 + node_modules/css-has-pseudo/dist/browser.cjs.map | 1 + node_modules/css-has-pseudo/dist/browser.mjs | 2 + node_modules/css-has-pseudo/dist/browser.mjs.map | 1 + node_modules/css-has-pseudo/dist/index.cjs | 1 + node_modules/css-has-pseudo/dist/index.d.ts | 10 + node_modules/css-has-pseudo/dist/index.mjs | 1 + .../dist/is-guarded-by-at-supports.d.ts | 2 + node_modules/css-has-pseudo/package.json | 110 + node_modules/css-prefers-color-scheme/CHANGELOG.md | 184 + node_modules/css-prefers-color-scheme/LICENSE.md | 18 + node_modules/css-prefers-color-scheme/README.md | 348 + .../dist/browser-global.js | 2 + .../dist/browser-global.js.map | 1 + .../css-prefers-color-scheme/dist/browser.cjs | 2 + .../css-prefers-color-scheme/dist/browser.cjs.map | 1 + .../css-prefers-color-scheme/dist/browser.mjs | 2 + .../css-prefers-color-scheme/dist/browser.mjs.map | 1 + .../css-prefers-color-scheme/dist/index.cjs | 1 + .../css-prefers-color-scheme/dist/index.d.ts | 8 + .../css-prefers-color-scheme/dist/index.mjs | 1 + node_modules/css-prefers-color-scheme/package.json | 107 + node_modules/css-select/LICENSE | 11 + node_modules/css-select/README.md | 264 + node_modules/css-select/lib/attributes.d.ts | 7 + node_modules/css-select/lib/attributes.d.ts.map | 1 + node_modules/css-select/lib/attributes.js | 236 + node_modules/css-select/lib/attributes.js.map | 1 + node_modules/css-select/lib/compile.d.ts | 13 + node_modules/css-select/lib/compile.d.ts.map | 1 + node_modules/css-select/lib/compile.js | 151 + node_modules/css-select/lib/compile.js.map | 1 + node_modules/css-select/lib/esm/attributes.d.ts | 7 + .../css-select/lib/esm/attributes.d.ts.map | 1 + node_modules/css-select/lib/esm/attributes.js | 222 + node_modules/css-select/lib/esm/attributes.js.map | 1 + node_modules/css-select/lib/esm/compile.d.ts | 13 + node_modules/css-select/lib/esm/compile.d.ts.map | 1 + node_modules/css-select/lib/esm/compile.js | 115 + node_modules/css-select/lib/esm/compile.js.map | 1 + node_modules/css-select/lib/esm/general.d.ts | 3 + node_modules/css-select/lib/esm/general.d.ts.map | 1 + node_modules/css-select/lib/esm/general.js | 144 + node_modules/css-select/lib/esm/general.js.map | 1 + node_modules/css-select/lib/esm/index.d.ts | 50 + node_modules/css-select/lib/esm/index.d.ts.map | 1 + node_modules/css-select/lib/esm/index.js | 115 + node_modules/css-select/lib/esm/index.js.map | 1 + node_modules/css-select/lib/esm/package.json | 1 + .../lib/esm/pseudo-selectors/aliases.d.ts | 5 + .../lib/esm/pseudo-selectors/aliases.d.ts.map | 1 + .../css-select/lib/esm/pseudo-selectors/aliases.js | 35 + .../lib/esm/pseudo-selectors/aliases.js.map | 1 + .../lib/esm/pseudo-selectors/filters.d.ts | 4 + .../lib/esm/pseudo-selectors/filters.d.ts.map | 1 + .../css-select/lib/esm/pseudo-selectors/filters.js | 143 + .../lib/esm/pseudo-selectors/filters.js.map | 1 + .../css-select/lib/esm/pseudo-selectors/index.d.ts | 8 + .../lib/esm/pseudo-selectors/index.d.ts.map | 1 + .../css-select/lib/esm/pseudo-selectors/index.js | 40 + .../lib/esm/pseudo-selectors/index.js.map | 1 + .../lib/esm/pseudo-selectors/pseudos.d.ts | 6 + .../lib/esm/pseudo-selectors/pseudos.d.ts.map | 1 + .../css-select/lib/esm/pseudo-selectors/pseudos.js | 79 + .../lib/esm/pseudo-selectors/pseudos.js.map | 1 + .../lib/esm/pseudo-selectors/subselects.d.ts | 9 + .../lib/esm/pseudo-selectors/subselects.d.ts.map | 1 + .../lib/esm/pseudo-selectors/subselects.js | 94 + .../lib/esm/pseudo-selectors/subselects.js.map | 1 + node_modules/css-select/lib/esm/sort.d.ts | 12 + node_modules/css-select/lib/esm/sort.d.ts.map | 1 + node_modules/css-select/lib/esm/sort.js | 79 + node_modules/css-select/lib/esm/sort.js.map | 1 + node_modules/css-select/lib/esm/types.d.ts | 167 + node_modules/css-select/lib/esm/types.d.ts.map | 1 + node_modules/css-select/lib/esm/types.js | 2 + node_modules/css-select/lib/esm/types.js.map | 1 + node_modules/css-select/lib/general.d.ts | 3 + node_modules/css-select/lib/general.d.ts.map | 1 + node_modules/css-select/lib/general.js | 148 + node_modules/css-select/lib/general.js.map | 1 + node_modules/css-select/lib/index.d.ts | 50 + node_modules/css-select/lib/index.d.ts.map | 1 + node_modules/css-select/lib/index.js | 154 + node_modules/css-select/lib/index.js.map | 1 + .../css-select/lib/pseudo-selectors/aliases.d.ts | 5 + .../lib/pseudo-selectors/aliases.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/aliases.js | 34 + .../css-select/lib/pseudo-selectors/aliases.js.map | 1 + .../css-select/lib/pseudo-selectors/filters.d.ts | 4 + .../lib/pseudo-selectors/filters.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/filters.js | 157 + .../css-select/lib/pseudo-selectors/filters.js.map | 1 + .../css-select/lib/pseudo-selectors/index.d.ts | 8 + .../css-select/lib/pseudo-selectors/index.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/index.js | 46 + .../css-select/lib/pseudo-selectors/index.js.map | 1 + .../css-select/lib/pseudo-selectors/pseudos.d.ts | 6 + .../lib/pseudo-selectors/pseudos.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/pseudos.js | 93 + .../css-select/lib/pseudo-selectors/pseudos.js.map | 1 + .../lib/pseudo-selectors/subselects.d.ts | 9 + .../lib/pseudo-selectors/subselects.d.ts.map | 1 + .../css-select/lib/pseudo-selectors/subselects.js | 112 + .../lib/pseudo-selectors/subselects.js.map | 1 + node_modules/css-select/lib/sort.d.ts | 12 + node_modules/css-select/lib/sort.d.ts.map | 1 + node_modules/css-select/lib/sort.js | 84 + node_modules/css-select/lib/sort.js.map | 1 + node_modules/css-select/lib/types.d.ts | 167 + node_modules/css-select/lib/types.d.ts.map | 1 + node_modules/css-select/lib/types.js | 3 + node_modules/css-select/lib/types.js.map | 1 + node_modules/css-select/package.json | 81 + node_modules/css-tree/LICENSE | 19 + node_modules/css-tree/README.md | 193 + node_modules/css-tree/cjs/convertor/create.cjs | 32 + node_modules/css-tree/cjs/convertor/index.cjs | 8 + node_modules/css-tree/cjs/data-patch.cjs | 7 + node_modules/css-tree/cjs/data.cjs | 99 + .../css-tree/cjs/definition-syntax/SyntaxError.cjs | 16 + .../css-tree/cjs/definition-syntax/generate.cjs | 135 + .../css-tree/cjs/definition-syntax/index.cjs | 13 + .../css-tree/cjs/definition-syntax/parse.cjs | 588 ++ .../css-tree/cjs/definition-syntax/tokenizer.cjs | 56 + .../css-tree/cjs/definition-syntax/walk.cjs | 56 + node_modules/css-tree/cjs/generator/create.cjs | 103 + node_modules/css-tree/cjs/generator/index.cjs | 8 + node_modules/css-tree/cjs/generator/sourceMap.cjs | 96 + .../css-tree/cjs/generator/token-before.cjs | 170 + node_modules/css-tree/cjs/index.cjs | 63 + node_modules/css-tree/cjs/lexer/Lexer.cjs | 470 + node_modules/css-tree/cjs/lexer/error.cjs | 128 + .../css-tree/cjs/lexer/generic-an-plus-b.cjs | 235 + node_modules/css-tree/cjs/lexer/generic-const.cjs | 12 + node_modules/css-tree/cjs/lexer/generic-urange.cjs | 149 + node_modules/css-tree/cjs/lexer/generic.cjs | 573 ++ node_modules/css-tree/cjs/lexer/index.cjs | 7 + node_modules/css-tree/cjs/lexer/match-graph.cjs | 459 + node_modules/css-tree/cjs/lexer/match.cjs | 632 ++ node_modules/css-tree/cjs/lexer/prepare-tokens.cjs | 54 + node_modules/css-tree/cjs/lexer/search.cjs | 65 + node_modules/css-tree/cjs/lexer/structure.cjs | 168 + node_modules/css-tree/cjs/lexer/trace.cjs | 73 + node_modules/css-tree/cjs/lexer/units.cjs | 38 + node_modules/css-tree/cjs/parser/SyntaxError.cjs | 69 + node_modules/css-tree/cjs/parser/create.cjs | 336 + node_modules/css-tree/cjs/parser/index.cjs | 8 + .../css-tree/cjs/parser/parse-selector.cjs | 8 + node_modules/css-tree/cjs/parser/sequence.cjs | 47 + .../css-tree/cjs/syntax/atrule/font-face.cjs | 12 + node_modules/css-tree/cjs/syntax/atrule/import.cjs | 37 + node_modules/css-tree/cjs/syntax/atrule/index.cjs | 19 + node_modules/css-tree/cjs/syntax/atrule/media.cjs | 16 + node_modules/css-tree/cjs/syntax/atrule/nest.cjs | 16 + node_modules/css-tree/cjs/syntax/atrule/page.cjs | 16 + .../css-tree/cjs/syntax/atrule/supports.cjs | 77 + .../css-tree/cjs/syntax/config/generator.cjs | 9 + node_modules/css-tree/cjs/syntax/config/lexer.cjs | 12 + node_modules/css-tree/cjs/syntax/config/mix.cjs | 119 + .../css-tree/cjs/syntax/config/parser-selector.cjs | 19 + node_modules/css-tree/cjs/syntax/config/parser.cjs | 34 + node_modules/css-tree/cjs/syntax/config/walker.cjs | 9 + node_modules/css-tree/cjs/syntax/create.cjs | 57 + .../css-tree/cjs/syntax/function/expression.cjs | 11 + node_modules/css-tree/cjs/syntax/function/var.cjs | 43 + node_modules/css-tree/cjs/syntax/index.cjs | 14 + node_modules/css-tree/cjs/syntax/node/AnPlusB.cjs | 293 + node_modules/css-tree/cjs/syntax/node/Atrule.cjs | 103 + .../css-tree/cjs/syntax/node/AtrulePrelude.cjs | 52 + .../css-tree/cjs/syntax/node/AttributeSelector.cjs | 148 + node_modules/css-tree/cjs/syntax/node/Block.cjs | 96 + node_modules/css-tree/cjs/syntax/node/Brackets.cjs | 38 + node_modules/css-tree/cjs/syntax/node/CDC.cjs | 26 + node_modules/css-tree/cjs/syntax/node/CDO.cjs | 26 + .../css-tree/cjs/syntax/node/ClassSelector.cjs | 31 + .../css-tree/cjs/syntax/node/Combinator.cjs | 61 + node_modules/css-tree/cjs/syntax/node/Comment.cjs | 40 + .../css-tree/cjs/syntax/node/Condition.cjs | 127 + .../css-tree/cjs/syntax/node/Declaration.cjs | 166 + .../css-tree/cjs/syntax/node/DeclarationList.cjs | 62 + .../css-tree/cjs/syntax/node/Dimension.cjs | 30 + node_modules/css-tree/cjs/syntax/node/Feature.cjs | 78 + .../css-tree/cjs/syntax/node/FeatureRange.cjs | 114 + node_modules/css-tree/cjs/syntax/node/Function.cjs | 45 + .../css-tree/cjs/syntax/node/GeneralEnclosed.cjs | 51 + node_modules/css-tree/cjs/syntax/node/Hash.cjs | 30 + .../css-tree/cjs/syntax/node/IdSelector.cjs | 33 + .../css-tree/cjs/syntax/node/Identifier.cjs | 25 + .../css-tree/cjs/syntax/node/MediaCondition.cjs | 70 + .../css-tree/cjs/syntax/node/MediaFeature.cjs | 76 + .../css-tree/cjs/syntax/node/MediaFeatureRange.cjs | 11 + .../css-tree/cjs/syntax/node/MediaQuery.cjs | 61 + .../css-tree/cjs/syntax/node/MediaQueryList.cjs | 41 + .../css-tree/cjs/syntax/node/NestingSelector.cjs | 29 + node_modules/css-tree/cjs/syntax/node/Nth.cjs | 54 + node_modules/css-tree/cjs/syntax/node/Number.cjs | 25 + node_modules/css-tree/cjs/syntax/node/Operator.cjs | 28 + .../css-tree/cjs/syntax/node/Parentheses.cjs | 38 + .../css-tree/cjs/syntax/node/Percentage.cjs | 25 + .../cjs/syntax/node/PseudoClassSelector.cjs | 65 + .../cjs/syntax/node/PseudoElementSelector.cjs | 67 + node_modules/css-tree/cjs/syntax/node/Ratio.cjs | 67 + node_modules/css-tree/cjs/syntax/node/Raw.cjs | 48 + node_modules/css-tree/cjs/syntax/node/Rule.cjs | 58 + node_modules/css-tree/cjs/syntax/node/Selector.cjs | 39 + .../css-tree/cjs/syntax/node/SelectorList.cjs | 43 + node_modules/css-tree/cjs/syntax/node/String.cjs | 26 + .../css-tree/cjs/syntax/node/StyleSheet.cjs | 83 + .../css-tree/cjs/syntax/node/TypeSelector.cjs | 59 + .../css-tree/cjs/syntax/node/UnicodeRange.cjs | 158 + node_modules/css-tree/cjs/syntax/node/Url.cjs | 54 + node_modules/css-tree/cjs/syntax/node/Value.cjs | 26 + .../css-tree/cjs/syntax/node/WhiteSpace.cjs | 34 + .../cjs/syntax/node/common/feature-range.cjs | 112 + .../css-tree/cjs/syntax/node/common/feature.cjs | 76 + .../css-tree/cjs/syntax/node/index-generate.cjs | 87 + .../cjs/syntax/node/index-parse-selector.cjs | 37 + .../css-tree/cjs/syntax/node/index-parse.cjs | 87 + node_modules/css-tree/cjs/syntax/node/index.cjs | 87 + node_modules/css-tree/cjs/syntax/pseudo/index.cjs | 54 + .../css-tree/cjs/syntax/scope/atrulePrelude.cjs | 9 + node_modules/css-tree/cjs/syntax/scope/default.cjs | 76 + node_modules/css-tree/cjs/syntax/scope/index.cjs | 11 + .../css-tree/cjs/syntax/scope/selector.cjs | 88 + node_modules/css-tree/cjs/syntax/scope/value.cjs | 29 + .../css-tree/cjs/tokenizer/OffsetToLocation.cjs | 91 + .../css-tree/cjs/tokenizer/TokenStream.cjs | 264 + .../css-tree/cjs/tokenizer/adopt-buffer.cjs | 13 + .../cjs/tokenizer/char-code-definitions.cjs | 231 + node_modules/css-tree/cjs/tokenizer/index.cjs | 554 ++ node_modules/css-tree/cjs/tokenizer/names.cjs | 31 + node_modules/css-tree/cjs/tokenizer/types.cjs | 57 + node_modules/css-tree/cjs/tokenizer/utils.cjs | 261 + node_modules/css-tree/cjs/utils/List.cjs | 473 + node_modules/css-tree/cjs/utils/clone.cjs | 25 + .../css-tree/cjs/utils/create-custom-error.cjs | 18 + node_modules/css-tree/cjs/utils/ident.cjs | 102 + node_modules/css-tree/cjs/utils/index.cjs | 20 + node_modules/css-tree/cjs/utils/names.cjs | 113 + node_modules/css-tree/cjs/utils/string.cjs | 99 + node_modules/css-tree/cjs/utils/url.cjs | 108 + node_modules/css-tree/cjs/version.cjs | 5 + node_modules/css-tree/cjs/walker/create.cjs | 291 + node_modules/css-tree/cjs/walker/index.cjs | 8 + node_modules/css-tree/data/patch.json | 725 ++ node_modules/css-tree/dist/csstree.esm.js | 11 + node_modules/css-tree/dist/csstree.js | 11 + node_modules/css-tree/dist/data.cjs | 1145 +++ node_modules/css-tree/dist/data.js | 1145 +++ node_modules/css-tree/dist/version.cjs | 1 + node_modules/css-tree/dist/version.js | 1 + node_modules/css-tree/lib/convertor/create.js | 28 + node_modules/css-tree/lib/convertor/index.js | 4 + node_modules/css-tree/lib/data-patch.js | 6 + node_modules/css-tree/lib/data.js | 97 + .../css-tree/lib/definition-syntax/SyntaxError.js | 12 + .../css-tree/lib/definition-syntax/generate.js | 131 + .../css-tree/lib/definition-syntax/index.js | 4 + .../css-tree/lib/definition-syntax/parse.js | 584 ++ .../css-tree/lib/definition-syntax/tokenizer.js | 52 + .../css-tree/lib/definition-syntax/walk.js | 52 + node_modules/css-tree/lib/generator/create.js | 98 + node_modules/css-tree/lib/generator/index.js | 4 + node_modules/css-tree/lib/generator/sourceMap.js | 92 + .../css-tree/lib/generator/token-before.js | 182 + node_modules/css-tree/lib/index.js | 30 + node_modules/css-tree/lib/lexer/Lexer.js | 464 + node_modules/css-tree/lib/lexer/error.js | 123 + .../css-tree/lib/lexer/generic-an-plus-b.js | 238 + node_modules/css-tree/lib/lexer/generic-const.js | 8 + node_modules/css-tree/lib/lexer/generic-urange.js | 151 + node_modules/css-tree/lib/lexer/generic.js | 606 ++ node_modules/css-tree/lib/lexer/index.js | 1 + node_modules/css-tree/lib/lexer/match-graph.js | 456 + node_modules/css-tree/lib/lexer/match.js | 630 ++ node_modules/css-tree/lib/lexer/prepare-tokens.js | 50 + node_modules/css-tree/lib/lexer/search.js | 61 + node_modules/css-tree/lib/lexer/structure.js | 164 + node_modules/css-tree/lib/lexer/trace.js | 66 + node_modules/css-tree/lib/lexer/units.js | 27 + node_modules/css-tree/lib/parser/SyntaxError.js | 65 + node_modules/css-tree/lib/parser/create.js | 346 + node_modules/css-tree/lib/parser/index.js | 4 + node_modules/css-tree/lib/parser/parse-selector.js | 4 + node_modules/css-tree/lib/parser/sequence.js | 43 + .../css-tree/lib/syntax/atrule/font-face.js | 8 + node_modules/css-tree/lib/syntax/atrule/import.js | 39 + node_modules/css-tree/lib/syntax/atrule/index.js | 15 + node_modules/css-tree/lib/syntax/atrule/media.js | 12 + node_modules/css-tree/lib/syntax/atrule/nest.js | 12 + node_modules/css-tree/lib/syntax/atrule/page.js | 12 + .../css-tree/lib/syntax/atrule/supports.js | 80 + .../css-tree/lib/syntax/config/generator.js | 5 + node_modules/css-tree/lib/syntax/config/lexer.js | 8 + node_modules/css-tree/lib/syntax/config/mix.js | 115 + .../css-tree/lib/syntax/config/parser-selector.js | 15 + node_modules/css-tree/lib/syntax/config/parser.js | 30 + node_modules/css-tree/lib/syntax/config/walker.js | 5 + node_modules/css-tree/lib/syntax/create.js | 54 + .../css-tree/lib/syntax/function/expression.js | 7 + node_modules/css-tree/lib/syntax/function/var.js | 39 + node_modules/css-tree/lib/syntax/index.js | 10 + node_modules/css-tree/lib/syntax/node/AnPlusB.js | 292 + node_modules/css-tree/lib/syntax/node/Atrule.js | 100 + .../css-tree/lib/syntax/node/AtrulePrelude.js | 47 + .../css-tree/lib/syntax/node/AttributeSelector.js | 147 + node_modules/css-tree/lib/syntax/node/Block.js | 95 + node_modules/css-tree/lib/syntax/node/Brackets.js | 35 + node_modules/css-tree/lib/syntax/node/CDC.js | 19 + node_modules/css-tree/lib/syntax/node/CDO.js | 19 + .../css-tree/lib/syntax/node/ClassSelector.js | 24 + .../css-tree/lib/syntax/node/Combinator.js | 54 + node_modules/css-tree/lib/syntax/node/Comment.js | 33 + .../css-tree/lib/syntax/node/Declaration.js | 165 + .../css-tree/lib/syntax/node/DeclarationList.js | 62 + node_modules/css-tree/lib/syntax/node/Dimension.js | 23 + node_modules/css-tree/lib/syntax/node/Function.js | 41 + node_modules/css-tree/lib/syntax/node/Hash.js | 23 + .../css-tree/lib/syntax/node/IdSelector.js | 26 + .../css-tree/lib/syntax/node/Identifier.js | 18 + .../css-tree/lib/syntax/node/MediaFeature.js | 77 + .../css-tree/lib/syntax/node/MediaQuery.js | 60 + .../css-tree/lib/syntax/node/MediaQueryList.js | 34 + .../css-tree/lib/syntax/node/NestingSelector.js | 22 + node_modules/css-tree/lib/syntax/node/Nth.js | 47 + node_modules/css-tree/lib/syntax/node/Number.js | 18 + node_modules/css-tree/lib/syntax/node/Operator.js | 21 + .../css-tree/lib/syntax/node/Parentheses.js | 34 + .../css-tree/lib/syntax/node/Percentage.js | 18 + .../lib/syntax/node/PseudoClassSelector.js | 63 + .../lib/syntax/node/PseudoElementSelector.js | 64 + node_modules/css-tree/lib/syntax/node/Ratio.js | 59 + node_modules/css-tree/lib/syntax/node/Raw.js | 41 + node_modules/css-tree/lib/syntax/node/Rule.js | 51 + node_modules/css-tree/lib/syntax/node/Selector.js | 32 + .../css-tree/lib/syntax/node/SelectorList.js | 35 + node_modules/css-tree/lib/syntax/node/String.js | 19 + .../css-tree/lib/syntax/node/StyleSheet.js | 82 + .../css-tree/lib/syntax/node/TypeSelector.js | 52 + .../css-tree/lib/syntax/node/UnicodeRange.js | 156 + node_modules/css-tree/lib/syntax/node/Url.js | 52 + node_modules/css-tree/lib/syntax/node/Value.js | 19 + .../css-tree/lib/syntax/node/WhiteSpace.js | 27 + .../css-tree/lib/syntax/node/index-generate.js | 41 + .../lib/syntax/node/index-parse-selector.js | 16 + .../css-tree/lib/syntax/node/index-parse.js | 41 + node_modules/css-tree/lib/syntax/node/index.js | 41 + node_modules/css-tree/lib/syntax/pseudo/index.js | 50 + .../css-tree/lib/syntax/scope/atrulePrelude.js | 5 + node_modules/css-tree/lib/syntax/scope/default.js | 85 + node_modules/css-tree/lib/syntax/scope/index.js | 3 + node_modules/css-tree/lib/syntax/scope/selector.js | 94 + node_modules/css-tree/lib/syntax/scope/value.js | 25 + .../css-tree/lib/tokenizer/OffsetToLocation.js | 87 + node_modules/css-tree/lib/tokenizer/TokenStream.js | 272 + .../css-tree/lib/tokenizer/adopt-buffer.js | 9 + .../lib/tokenizer/char-code-definitions.js | 207 + node_modules/css-tree/lib/tokenizer/index.js | 513 ++ node_modules/css-tree/lib/tokenizer/names.js | 27 + node_modules/css-tree/lib/tokenizer/types.js | 28 + node_modules/css-tree/lib/tokenizer/utils.js | 254 + node_modules/css-tree/lib/utils/List.js | 469 + node_modules/css-tree/lib/utils/clone.js | 21 + .../css-tree/lib/utils/create-custom-error.js | 14 + node_modules/css-tree/lib/utils/ident.js | 101 + node_modules/css-tree/lib/utils/index.js | 6 + node_modules/css-tree/lib/utils/names.js | 106 + node_modules/css-tree/lib/utils/string.js | 99 + node_modules/css-tree/lib/utils/url.js | 108 + node_modules/css-tree/lib/version.js | 5 + node_modules/css-tree/lib/walker/create.js | 287 + node_modules/css-tree/lib/walker/index.js | 4 + node_modules/css-tree/package.json | 126 + node_modules/css-what/LICENSE | 11 + node_modules/css-what/lib/commonjs/index.d.ts | 4 + node_modules/css-what/lib/commonjs/index.d.ts.map | 1 + node_modules/css-what/lib/commonjs/index.js | 23 + node_modules/css-what/lib/commonjs/parse.d.ts | 20 + node_modules/css-what/lib/commonjs/parse.d.ts.map | 1 + node_modules/css-what/lib/commonjs/parse.js | 425 + node_modules/css-what/lib/commonjs/stringify.d.ts | 8 + .../css-what/lib/commonjs/stringify.d.ts.map | 1 + node_modules/css-what/lib/commonjs/stringify.js | 138 + node_modules/css-what/lib/commonjs/types.d.ts | 70 + node_modules/css-what/lib/commonjs/types.d.ts.map | 1 + node_modules/css-what/lib/commonjs/types.js | 42 + node_modules/css-what/lib/es/index.d.ts | 4 + node_modules/css-what/lib/es/index.d.ts.map | 1 + node_modules/css-what/lib/es/index.js | 3 + node_modules/css-what/lib/es/parse.d.ts | 20 + node_modules/css-what/lib/es/parse.d.ts.map | 1 + node_modules/css-what/lib/es/parse.js | 420 + node_modules/css-what/lib/es/stringify.d.ts | 8 + node_modules/css-what/lib/es/stringify.d.ts.map | 1 + node_modules/css-what/lib/es/stringify.js | 126 + node_modules/css-what/lib/es/types.d.ts | 70 + node_modules/css-what/lib/es/types.d.ts.map | 1 + node_modules/css-what/lib/es/types.js | 39 + node_modules/css-what/package.json | 59 + node_modules/css-what/readme.md | 69 + node_modules/cssdb/LICENSE.md | 106 + node_modules/cssdb/README.md | 35 + node_modules/cssdb/cssdb.json | 1979 ++++ node_modules/cssdb/cssdb.mjs | 1979 ++++ node_modules/cssdb/package.json | 88 + node_modules/cssesc/LICENSE-MIT.txt | 20 + node_modules/cssesc/README.md | 201 + node_modules/cssesc/bin/cssesc | 116 + node_modules/cssesc/cssesc.js | 110 + node_modules/cssesc/man/cssesc.1 | 70 + node_modules/cssesc/package.json | 51 + node_modules/cssnano-preset-default/LICENSE-MIT | 22 + node_modules/cssnano-preset-default/README.md | 295 + node_modules/cssnano-preset-default/package.json | 63 + node_modules/cssnano-preset-default/src/index.js | 131 + .../cssnano-preset-default/types/index.d.ts | 98 + node_modules/cssnano-utils/LICENSE | 22 + node_modules/cssnano-utils/README.md | 15 + node_modules/cssnano-utils/package.json | 27 + node_modules/cssnano-utils/src/getArguments.js | 19 + node_modules/cssnano-utils/src/index.js | 6 + node_modules/cssnano-utils/src/rawCache.js | 34 + node_modules/cssnano-utils/src/sameParent.js | 44 + node_modules/cssnano-utils/types/getArguments.d.ts | 2 + node_modules/cssnano-utils/types/index.d.ts | 4 + node_modules/cssnano-utils/types/rawCache.d.ts | 9 + node_modules/cssnano-utils/types/sameParent.d.ts | 14 + node_modules/cssnano/LICENSE-MIT | 22 + node_modules/cssnano/README.md | 6 + node_modules/cssnano/package.json | 52 + node_modules/cssnano/src/index.js | 164 + node_modules/cssnano/types/index.d.ts | 16 + node_modules/csso/LICENSE | 20 + node_modules/csso/README.md | 422 + node_modules/csso/cjs/clean/Atrule.cjs | 73 + node_modules/csso/cjs/clean/Comment.cjs | 7 + node_modules/csso/cjs/clean/Declaration.cjs | 18 + node_modules/csso/cjs/clean/Raw.cjs | 13 + node_modules/csso/cjs/clean/Rule.cjs | 104 + node_modules/csso/cjs/clean/TypeSelector.cjs | 23 + node_modules/csso/cjs/clean/WhiteSpace.cjs | 7 + node_modules/csso/cjs/clean/index.cjs | 32 + node_modules/csso/cjs/clean/utils.cjs | 12 + node_modules/csso/cjs/compress.cjs | 200 + node_modules/csso/cjs/index.cjs | 127 + node_modules/csso/cjs/replace/Atrule.cjs | 13 + .../csso/cjs/replace/AttributeSelector.cjs | 32 + node_modules/csso/cjs/replace/Dimension.cjs | 67 + node_modules/csso/cjs/replace/Number.cjs | 45 + node_modules/csso/cjs/replace/Percentage.cjs | 41 + node_modules/csso/cjs/replace/Url.cjs | 8 + node_modules/csso/cjs/replace/Value.cjs | 29 + node_modules/csso/cjs/replace/atrule/keyframes.cjs | 25 + node_modules/csso/cjs/replace/color.cjs | 504 + node_modules/csso/cjs/replace/index.cjs | 36 + .../csso/cjs/replace/property/background.cjs | 54 + node_modules/csso/cjs/replace/property/border.cjs | 20 + .../csso/cjs/replace/property/font-weight.cjs | 26 + node_modules/csso/cjs/replace/property/font.cjs | 34 + .../csso/cjs/restructure/1-mergeAtrule.cjs | 109 + .../csso/cjs/restructure/2-initialMergeRuleset.cjs | 51 + .../csso/cjs/restructure/3-disjoinRuleset.cjs | 46 + .../csso/cjs/restructure/4-restructShorthand.cjs | 429 + .../csso/cjs/restructure/6-restructBlock.cjs | 307 + .../csso/cjs/restructure/7-mergeRuleset.cjs | 90 + .../csso/cjs/restructure/8-restructRuleset.cjs | 175 + node_modules/csso/cjs/restructure/index.cjs | 39 + .../prepare/createDeclarationIndexer.cjs | 34 + .../csso/cjs/restructure/prepare/index.cjs | 45 + .../cjs/restructure/prepare/processSelector.cjs | 101 + .../csso/cjs/restructure/prepare/specificity.cjs | 133 + node_modules/csso/cjs/restructure/utils.cjs | 151 + node_modules/csso/cjs/syntax.cjs | 60 + node_modules/csso/cjs/usage.cjs | 75 + node_modules/csso/cjs/utils.cjs | 14 + node_modules/csso/cjs/version.cjs | 5 + node_modules/csso/dist/csso.esm.js | 16 + node_modules/csso/dist/csso.js | 16 + node_modules/csso/dist/version.cjs | 1 + node_modules/csso/dist/version.js | 1 + node_modules/csso/lib/clean/Atrule.js | 69 + node_modules/csso/lib/clean/Comment.js | 3 + node_modules/csso/lib/clean/Declaration.js | 14 + node_modules/csso/lib/clean/Raw.js | 9 + node_modules/csso/lib/clean/Rule.js | 100 + node_modules/csso/lib/clean/TypeSelector.js | 19 + node_modules/csso/lib/clean/WhiteSpace.js | 3 + node_modules/csso/lib/clean/index.js | 28 + node_modules/csso/lib/clean/utils.js | 7 + node_modules/csso/lib/compress.js | 196 + node_modules/csso/lib/index.js | 131 + node_modules/csso/lib/replace/Atrule.js | 9 + node_modules/csso/lib/replace/AttributeSelector.js | 28 + node_modules/csso/lib/replace/Dimension.js | 63 + node_modules/csso/lib/replace/Number.js | 40 + node_modules/csso/lib/replace/Percentage.js | 37 + node_modules/csso/lib/replace/Url.js | 4 + node_modules/csso/lib/replace/Value.js | 26 + node_modules/csso/lib/replace/atrule/keyframes.js | 21 + node_modules/csso/lib/replace/color.js | 498 + node_modules/csso/lib/replace/index.js | 32 + .../csso/lib/replace/property/background.js | 50 + node_modules/csso/lib/replace/property/border.js | 16 + .../csso/lib/replace/property/font-weight.js | 22 + node_modules/csso/lib/replace/property/font.js | 30 + node_modules/csso/lib/restructure/1-mergeAtrule.js | 106 + .../csso/lib/restructure/2-initialMergeRuleset.js | 53 + .../csso/lib/restructure/3-disjoinRuleset.js | 42 + .../csso/lib/restructure/4-restructShorthand.js | 425 + .../csso/lib/restructure/6-restructBlock.js | 308 + .../csso/lib/restructure/7-mergeRuleset.js | 86 + .../csso/lib/restructure/8-restructRuleset.js | 176 + node_modules/csso/lib/restructure/index.js | 35 + .../prepare/createDeclarationIndexer.js | 31 + node_modules/csso/lib/restructure/prepare/index.js | 41 + .../lib/restructure/prepare/processSelector.js | 97 + .../csso/lib/restructure/prepare/specificity.js | 131 + node_modules/csso/lib/restructure/utils.js | 142 + node_modules/csso/lib/syntax.js | 60 + node_modules/csso/lib/usage.js | 71 + node_modules/csso/lib/utils.js | 2 + node_modules/csso/lib/version.js | 5 + node_modules/csso/node_modules/css-tree/LICENSE | 19 + node_modules/csso/node_modules/css-tree/README.md | 193 + .../node_modules/css-tree/cjs/convertor/create.cjs | 32 + .../node_modules/css-tree/cjs/convertor/index.cjs | 8 + .../csso/node_modules/css-tree/cjs/data-patch.cjs | 7 + .../csso/node_modules/css-tree/cjs/data.cjs | 97 + .../css-tree/cjs/definition-syntax/SyntaxError.cjs | 16 + .../css-tree/cjs/definition-syntax/generate.cjs | 135 + .../css-tree/cjs/definition-syntax/index.cjs | 13 + .../css-tree/cjs/definition-syntax/parse.cjs | 588 ++ .../css-tree/cjs/definition-syntax/tokenizer.cjs | 56 + .../css-tree/cjs/definition-syntax/walk.cjs | 56 + .../node_modules/css-tree/cjs/generator/create.cjs | 103 + .../node_modules/css-tree/cjs/generator/index.cjs | 8 + .../css-tree/cjs/generator/sourceMap.cjs | 96 + .../css-tree/cjs/generator/token-before.cjs | 170 + .../csso/node_modules/css-tree/cjs/index.cjs | 63 + .../csso/node_modules/css-tree/cjs/lexer/Lexer.cjs | 459 + .../csso/node_modules/css-tree/cjs/lexer/error.cjs | 128 + .../css-tree/cjs/lexer/generic-an-plus-b.cjs | 235 + .../css-tree/cjs/lexer/generic-const.cjs | 12 + .../css-tree/cjs/lexer/generic-urange.cjs | 149 + .../node_modules/css-tree/cjs/lexer/generic.cjs | 573 ++ .../csso/node_modules/css-tree/cjs/lexer/index.cjs | 7 + .../css-tree/cjs/lexer/match-graph.cjs | 459 + .../csso/node_modules/css-tree/cjs/lexer/match.cjs | 632 ++ .../css-tree/cjs/lexer/prepare-tokens.cjs | 54 + .../node_modules/css-tree/cjs/lexer/search.cjs | 65 + .../node_modules/css-tree/cjs/lexer/structure.cjs | 168 + .../csso/node_modules/css-tree/cjs/lexer/trace.cjs | 73 + .../css-tree/cjs/parser/SyntaxError.cjs | 69 + .../node_modules/css-tree/cjs/parser/create.cjs | 336 + .../node_modules/css-tree/cjs/parser/index.cjs | 8 + .../css-tree/cjs/parser/parse-selector.cjs | 8 + .../node_modules/css-tree/cjs/parser/sequence.cjs | 47 + .../css-tree/cjs/syntax/atrule/font-face.cjs | 12 + .../css-tree/cjs/syntax/atrule/import.cjs | 37 + .../css-tree/cjs/syntax/atrule/index.cjs | 17 + .../css-tree/cjs/syntax/atrule/media.cjs | 16 + .../css-tree/cjs/syntax/atrule/page.cjs | 16 + .../css-tree/cjs/syntax/atrule/supports.cjs | 77 + .../css-tree/cjs/syntax/config/generator.cjs | 9 + .../css-tree/cjs/syntax/config/lexer.cjs | 12 + .../css-tree/cjs/syntax/config/mix.cjs | 142 + .../css-tree/cjs/syntax/config/parser-selector.cjs | 19 + .../css-tree/cjs/syntax/config/parser.cjs | 34 + .../css-tree/cjs/syntax/config/walker.cjs | 9 + .../node_modules/css-tree/cjs/syntax/create.cjs | 56 + .../css-tree/cjs/syntax/function/expression.cjs | 11 + .../css-tree/cjs/syntax/function/var.cjs | 43 + .../node_modules/css-tree/cjs/syntax/index.cjs | 14 + .../css-tree/cjs/syntax/node/AnPlusB.cjs | 293 + .../css-tree/cjs/syntax/node/Atrule.cjs | 103 + .../css-tree/cjs/syntax/node/AtrulePrelude.cjs | 52 + .../css-tree/cjs/syntax/node/AttributeSelector.cjs | 148 + .../css-tree/cjs/syntax/node/Block.cjs | 90 + .../css-tree/cjs/syntax/node/Brackets.cjs | 38 + .../node_modules/css-tree/cjs/syntax/node/CDC.cjs | 26 + .../node_modules/css-tree/cjs/syntax/node/CDO.cjs | 26 + .../css-tree/cjs/syntax/node/ClassSelector.cjs | 31 + .../css-tree/cjs/syntax/node/Combinator.cjs | 61 + .../css-tree/cjs/syntax/node/Comment.cjs | 40 + .../css-tree/cjs/syntax/node/Declaration.cjs | 166 + .../css-tree/cjs/syntax/node/DeclarationList.cjs | 50 + .../css-tree/cjs/syntax/node/Dimension.cjs | 30 + .../css-tree/cjs/syntax/node/Function.cjs | 45 + .../node_modules/css-tree/cjs/syntax/node/Hash.cjs | 30 + .../css-tree/cjs/syntax/node/IdSelector.cjs | 33 + .../css-tree/cjs/syntax/node/Identifier.cjs | 25 + .../css-tree/cjs/syntax/node/MediaFeature.cjs | 76 + .../css-tree/cjs/syntax/node/MediaQuery.cjs | 61 + .../css-tree/cjs/syntax/node/MediaQueryList.cjs | 41 + .../node_modules/css-tree/cjs/syntax/node/Nth.cjs | 54 + .../css-tree/cjs/syntax/node/Number.cjs | 25 + .../css-tree/cjs/syntax/node/Operator.cjs | 28 + .../css-tree/cjs/syntax/node/Parentheses.cjs | 38 + .../css-tree/cjs/syntax/node/Percentage.cjs | 25 + .../cjs/syntax/node/PseudoClassSelector.cjs | 65 + .../cjs/syntax/node/PseudoElementSelector.cjs | 67 + .../css-tree/cjs/syntax/node/Ratio.cjs | 67 + .../node_modules/css-tree/cjs/syntax/node/Raw.cjs | 48 + .../node_modules/css-tree/cjs/syntax/node/Rule.cjs | 58 + .../css-tree/cjs/syntax/node/Selector.cjs | 39 + .../css-tree/cjs/syntax/node/SelectorList.cjs | 43 + .../css-tree/cjs/syntax/node/String.cjs | 26 + .../css-tree/cjs/syntax/node/StyleSheet.cjs | 83 + .../css-tree/cjs/syntax/node/TypeSelector.cjs | 59 + .../css-tree/cjs/syntax/node/UnicodeRange.cjs | 158 + .../node_modules/css-tree/cjs/syntax/node/Url.cjs | 54 + .../css-tree/cjs/syntax/node/Value.cjs | 26 + .../css-tree/cjs/syntax/node/WhiteSpace.cjs | 34 + .../css-tree/cjs/syntax/node/index-generate.cjs | 85 + .../cjs/syntax/node/index-parse-selector.cjs | 35 + .../css-tree/cjs/syntax/node/index-parse.cjs | 85 + .../css-tree/cjs/syntax/node/index.cjs | 85 + .../css-tree/cjs/syntax/pseudo/index.cjs | 52 + .../css-tree/cjs/syntax/scope/atrulePrelude.cjs | 9 + .../css-tree/cjs/syntax/scope/default.cjs | 76 + .../css-tree/cjs/syntax/scope/index.cjs | 11 + .../css-tree/cjs/syntax/scope/selector.cjs | 84 + .../css-tree/cjs/syntax/scope/value.cjs | 29 + .../css-tree/cjs/tokenizer/OffsetToLocation.cjs | 91 + .../css-tree/cjs/tokenizer/TokenStream.cjs | 264 + .../css-tree/cjs/tokenizer/adopt-buffer.cjs | 13 + .../cjs/tokenizer/char-code-definitions.cjs | 231 + .../node_modules/css-tree/cjs/tokenizer/index.cjs | 554 ++ .../node_modules/css-tree/cjs/tokenizer/names.cjs | 31 + .../node_modules/css-tree/cjs/tokenizer/types.cjs | 57 + .../node_modules/css-tree/cjs/tokenizer/utils.cjs | 261 + .../csso/node_modules/css-tree/cjs/utils/List.cjs | 473 + .../csso/node_modules/css-tree/cjs/utils/clone.cjs | 25 + .../css-tree/cjs/utils/create-custom-error.cjs | 18 + .../csso/node_modules/css-tree/cjs/utils/ident.cjs | 102 + .../csso/node_modules/css-tree/cjs/utils/index.cjs | 20 + .../csso/node_modules/css-tree/cjs/utils/names.cjs | 113 + .../node_modules/css-tree/cjs/utils/string.cjs | 99 + .../csso/node_modules/css-tree/cjs/utils/url.cjs | 108 + .../csso/node_modules/css-tree/cjs/version.cjs | 5 + .../node_modules/css-tree/cjs/walker/create.cjs | 291 + .../node_modules/css-tree/cjs/walker/index.cjs | 8 + .../csso/node_modules/css-tree/data/patch.json | 739 ++ .../csso/node_modules/css-tree/dist/csstree.esm.js | 11 + .../csso/node_modules/css-tree/dist/csstree.js | 11 + .../csso/node_modules/css-tree/dist/data.cjs | 1028 +++ .../csso/node_modules/css-tree/dist/data.js | 1028 +++ .../csso/node_modules/css-tree/dist/version.cjs | 1 + .../csso/node_modules/css-tree/dist/version.js | 1 + .../node_modules/css-tree/lib/convertor/create.js | 28 + .../node_modules/css-tree/lib/convertor/index.js | 4 + .../csso/node_modules/css-tree/lib/data-patch.js | 6 + .../csso/node_modules/css-tree/lib/data.js | 95 + .../css-tree/lib/definition-syntax/SyntaxError.js | 12 + .../css-tree/lib/definition-syntax/generate.js | 131 + .../css-tree/lib/definition-syntax/index.js | 4 + .../css-tree/lib/definition-syntax/parse.js | 584 ++ .../css-tree/lib/definition-syntax/tokenizer.js | 52 + .../css-tree/lib/definition-syntax/walk.js | 52 + .../node_modules/css-tree/lib/generator/create.js | 98 + .../node_modules/css-tree/lib/generator/index.js | 4 + .../css-tree/lib/generator/sourceMap.js | 92 + .../css-tree/lib/generator/token-before.js | 182 + .../csso/node_modules/css-tree/lib/index.js | 30 + .../csso/node_modules/css-tree/lib/lexer/Lexer.js | 453 + .../csso/node_modules/css-tree/lib/lexer/error.js | 123 + .../css-tree/lib/lexer/generic-an-plus-b.js | 238 + .../css-tree/lib/lexer/generic-const.js | 8 + .../css-tree/lib/lexer/generic-urange.js | 151 + .../node_modules/css-tree/lib/lexer/generic.js | 598 ++ .../csso/node_modules/css-tree/lib/lexer/index.js | 1 + .../node_modules/css-tree/lib/lexer/match-graph.js | 456 + .../csso/node_modules/css-tree/lib/lexer/match.js | 630 ++ .../css-tree/lib/lexer/prepare-tokens.js | 50 + .../csso/node_modules/css-tree/lib/lexer/search.js | 61 + .../node_modules/css-tree/lib/lexer/structure.js | 164 + .../csso/node_modules/css-tree/lib/lexer/trace.js | 66 + .../css-tree/lib/parser/SyntaxError.js | 65 + .../node_modules/css-tree/lib/parser/create.js | 346 + .../csso/node_modules/css-tree/lib/parser/index.js | 4 + .../css-tree/lib/parser/parse-selector.js | 4 + .../node_modules/css-tree/lib/parser/sequence.js | 43 + .../css-tree/lib/syntax/atrule/font-face.js | 8 + .../css-tree/lib/syntax/atrule/import.js | 39 + .../css-tree/lib/syntax/atrule/index.js | 13 + .../css-tree/lib/syntax/atrule/media.js | 12 + .../css-tree/lib/syntax/atrule/page.js | 12 + .../css-tree/lib/syntax/atrule/supports.js | 80 + .../css-tree/lib/syntax/config/generator.js | 5 + .../css-tree/lib/syntax/config/lexer.js | 8 + .../node_modules/css-tree/lib/syntax/config/mix.js | 138 + .../css-tree/lib/syntax/config/parser-selector.js | 15 + .../css-tree/lib/syntax/config/parser.js | 30 + .../css-tree/lib/syntax/config/walker.js | 5 + .../node_modules/css-tree/lib/syntax/create.js | 53 + .../css-tree/lib/syntax/function/expression.js | 7 + .../css-tree/lib/syntax/function/var.js | 39 + .../csso/node_modules/css-tree/lib/syntax/index.js | 10 + .../css-tree/lib/syntax/node/AnPlusB.js | 292 + .../css-tree/lib/syntax/node/Atrule.js | 100 + .../css-tree/lib/syntax/node/AtrulePrelude.js | 47 + .../css-tree/lib/syntax/node/AttributeSelector.js | 147 + .../node_modules/css-tree/lib/syntax/node/Block.js | 89 + .../css-tree/lib/syntax/node/Brackets.js | 35 + .../node_modules/css-tree/lib/syntax/node/CDC.js | 19 + .../node_modules/css-tree/lib/syntax/node/CDO.js | 19 + .../css-tree/lib/syntax/node/ClassSelector.js | 24 + .../css-tree/lib/syntax/node/Combinator.js | 54 + .../css-tree/lib/syntax/node/Comment.js | 33 + .../css-tree/lib/syntax/node/Declaration.js | 165 + .../css-tree/lib/syntax/node/DeclarationList.js | 49 + .../css-tree/lib/syntax/node/Dimension.js | 23 + .../css-tree/lib/syntax/node/Function.js | 41 + .../node_modules/css-tree/lib/syntax/node/Hash.js | 23 + .../css-tree/lib/syntax/node/IdSelector.js | 26 + .../css-tree/lib/syntax/node/Identifier.js | 18 + .../css-tree/lib/syntax/node/MediaFeature.js | 77 + .../css-tree/lib/syntax/node/MediaQuery.js | 60 + .../css-tree/lib/syntax/node/MediaQueryList.js | 34 + .../node_modules/css-tree/lib/syntax/node/Nth.js | 47 + .../css-tree/lib/syntax/node/Number.js | 18 + .../css-tree/lib/syntax/node/Operator.js | 21 + .../css-tree/lib/syntax/node/Parentheses.js | 34 + .../css-tree/lib/syntax/node/Percentage.js | 18 + .../lib/syntax/node/PseudoClassSelector.js | 63 + .../lib/syntax/node/PseudoElementSelector.js | 64 + .../node_modules/css-tree/lib/syntax/node/Ratio.js | 59 + .../node_modules/css-tree/lib/syntax/node/Raw.js | 41 + .../node_modules/css-tree/lib/syntax/node/Rule.js | 51 + .../css-tree/lib/syntax/node/Selector.js | 32 + .../css-tree/lib/syntax/node/SelectorList.js | 35 + .../css-tree/lib/syntax/node/String.js | 19 + .../css-tree/lib/syntax/node/StyleSheet.js | 82 + .../css-tree/lib/syntax/node/TypeSelector.js | 52 + .../css-tree/lib/syntax/node/UnicodeRange.js | 156 + .../node_modules/css-tree/lib/syntax/node/Url.js | 52 + .../node_modules/css-tree/lib/syntax/node/Value.js | 19 + .../css-tree/lib/syntax/node/WhiteSpace.js | 27 + .../css-tree/lib/syntax/node/index-generate.js | 40 + .../lib/syntax/node/index-parse-selector.js | 15 + .../css-tree/lib/syntax/node/index-parse.js | 40 + .../node_modules/css-tree/lib/syntax/node/index.js | 40 + .../css-tree/lib/syntax/pseudo/index.js | 48 + .../css-tree/lib/syntax/scope/atrulePrelude.js | 5 + .../css-tree/lib/syntax/scope/default.js | 85 + .../css-tree/lib/syntax/scope/index.js | 3 + .../css-tree/lib/syntax/scope/selector.js | 90 + .../css-tree/lib/syntax/scope/value.js | 25 + .../css-tree/lib/tokenizer/OffsetToLocation.js | 87 + .../css-tree/lib/tokenizer/TokenStream.js | 272 + .../css-tree/lib/tokenizer/adopt-buffer.js | 9 + .../lib/tokenizer/char-code-definitions.js | 207 + .../node_modules/css-tree/lib/tokenizer/index.js | 513 ++ .../node_modules/css-tree/lib/tokenizer/names.js | 27 + .../node_modules/css-tree/lib/tokenizer/types.js | 28 + .../node_modules/css-tree/lib/tokenizer/utils.js | 254 + .../csso/node_modules/css-tree/lib/utils/List.js | 469 + .../csso/node_modules/css-tree/lib/utils/clone.js | 21 + .../css-tree/lib/utils/create-custom-error.js | 14 + .../csso/node_modules/css-tree/lib/utils/ident.js | 101 + .../csso/node_modules/css-tree/lib/utils/index.js | 6 + .../csso/node_modules/css-tree/lib/utils/names.js | 106 + .../csso/node_modules/css-tree/lib/utils/string.js | 99 + .../csso/node_modules/css-tree/lib/utils/url.js | 108 + .../csso/node_modules/css-tree/lib/version.js | 5 + .../node_modules/css-tree/lib/walker/create.js | 287 + .../csso/node_modules/css-tree/lib/walker/index.js | 4 + .../csso/node_modules/css-tree/package.json | 127 + .../csso/node_modules/mdn-data/CHANGELOG.md | 50 + node_modules/csso/node_modules/mdn-data/LICENSE | 116 + node_modules/csso/node_modules/mdn-data/README.md | 56 + .../csso/node_modules/mdn-data/api/index.js | 3 + .../node_modules/mdn-data/api/inheritance.json | 2681 ++++++ .../mdn-data/api/inheritance.schema.json | 31 + .../csso/node_modules/mdn-data/css/at-rules.json | 620 ++ .../node_modules/mdn-data/css/at-rules.schema.json | 132 + .../node_modules/mdn-data/css/definitions.json | 78 + .../csso/node_modules/mdn-data/css/index.js | 8 + .../csso/node_modules/mdn-data/css/properties.json | 9297 +++++++++++++++++++ .../mdn-data/css/properties.schema.json | 411 + .../csso/node_modules/mdn-data/css/readme.md | 32 + .../csso/node_modules/mdn-data/css/selectors.json | 1044 +++ .../mdn-data/css/selectors.schema.json | 36 + .../csso/node_modules/mdn-data/css/syntaxes.json | 794 ++ .../node_modules/mdn-data/css/syntaxes.schema.json | 15 + .../csso/node_modules/mdn-data/css/types.json | 265 + .../node_modules/mdn-data/css/types.schema.json | 32 + .../csso/node_modules/mdn-data/css/units.json | 213 + .../node_modules/mdn-data/css/units.schema.json | 28 + node_modules/csso/node_modules/mdn-data/index.js | 5 + .../csso/node_modules/mdn-data/l10n/css.json | 1715 ++++ .../csso/node_modules/mdn-data/l10n/index.js | 3 + .../csso/node_modules/mdn-data/package.json | 38 + node_modules/csso/package.json | 82 + node_modules/dependency-graph/CHANGELOG.md | 82 + node_modules/dependency-graph/LICENSE | 19 + node_modules/dependency-graph/README.md | 78 + node_modules/dependency-graph/lib/dep_graph.js | 364 + node_modules/dependency-graph/lib/index.d.ts | 127 + node_modules/dependency-graph/package.json | 31 + .../dependency-graph/specs/dep_graph_spec.js | 542 ++ node_modules/dir-glob/index.js | 75 + node_modules/dir-glob/license | 9 + node_modules/dir-glob/package.json | 38 + node_modules/dir-glob/readme.md | 76 + node_modules/dom-serializer/LICENSE | 11 + node_modules/dom-serializer/README.md | 109 + .../dom-serializer/lib/esm/foreignNames.d.ts | 3 + .../dom-serializer/lib/esm/foreignNames.d.ts.map | 1 + .../dom-serializer/lib/esm/foreignNames.js | 100 + node_modules/dom-serializer/lib/esm/index.d.ts | 52 + node_modules/dom-serializer/lib/esm/index.d.ts.map | 1 + node_modules/dom-serializer/lib/esm/index.js | 190 + node_modules/dom-serializer/lib/esm/package.json | 1 + node_modules/dom-serializer/lib/foreignNames.d.ts | 3 + .../dom-serializer/lib/foreignNames.d.ts.map | 1 + node_modules/dom-serializer/lib/foreignNames.js | 103 + node_modules/dom-serializer/lib/index.d.ts | 52 + node_modules/dom-serializer/lib/index.d.ts.map | 1 + node_modules/dom-serializer/lib/index.js | 229 + node_modules/dom-serializer/package.json | 69 + node_modules/domelementtype/LICENSE | 11 + node_modules/domelementtype/lib/esm/index.d.ts | 48 + node_modules/domelementtype/lib/esm/index.d.ts.map | 1 + node_modules/domelementtype/lib/esm/index.js | 51 + node_modules/domelementtype/lib/esm/package.json | 1 + node_modules/domelementtype/lib/index.d.ts | 48 + node_modules/domelementtype/lib/index.d.ts.map | 1 + node_modules/domelementtype/lib/index.js | 55 + node_modules/domelementtype/package.json | 54 + node_modules/domelementtype/readme.md | 1 + node_modules/domhandler/LICENSE | 11 + node_modules/domhandler/lib/esm/index.d.ts | 76 + node_modules/domhandler/lib/esm/index.d.ts.map | 1 + node_modules/domhandler/lib/esm/index.js | 146 + node_modules/domhandler/lib/esm/node.d.ts | 245 + node_modules/domhandler/lib/esm/node.d.ts.map | 1 + node_modules/domhandler/lib/esm/node.js | 338 + node_modules/domhandler/lib/esm/package.json | 1 + node_modules/domhandler/lib/index.d.ts | 76 + node_modules/domhandler/lib/index.d.ts.map | 1 + node_modules/domhandler/lib/index.js | 165 + node_modules/domhandler/lib/node.d.ts | 245 + node_modules/domhandler/lib/node.d.ts.map | 1 + node_modules/domhandler/lib/node.js | 474 + node_modules/domhandler/package.json | 73 + node_modules/domhandler/readme.md | 92 + node_modules/domutils/LICENSE | 11 + node_modules/domutils/lib/esm/feeds.d.ts | 71 + node_modules/domutils/lib/esm/feeds.d.ts.map | 1 + node_modules/domutils/lib/esm/feeds.js | 183 + node_modules/domutils/lib/esm/feeds.js.map | 1 + node_modules/domutils/lib/esm/helpers.d.ts | 59 + node_modules/domutils/lib/esm/helpers.d.ts.map | 1 + node_modules/domutils/lib/esm/helpers.js | 136 + node_modules/domutils/lib/esm/helpers.js.map | 1 + node_modules/domutils/lib/esm/index.d.ts | 10 + node_modules/domutils/lib/esm/index.d.ts.map | 1 + node_modules/domutils/lib/esm/index.js | 10 + node_modules/domutils/lib/esm/index.js.map | 1 + node_modules/domutils/lib/esm/legacy.d.ts | 68 + node_modules/domutils/lib/esm/legacy.d.ts.map | 1 + node_modules/domutils/lib/esm/legacy.js | 139 + node_modules/domutils/lib/esm/legacy.js.map | 1 + node_modules/domutils/lib/esm/manipulation.d.ts | 49 + .../domutils/lib/esm/manipulation.d.ts.map | 1 + node_modules/domutils/lib/esm/manipulation.js | 134 + node_modules/domutils/lib/esm/manipulation.js.map | 1 + node_modules/domutils/lib/esm/package.json | 1 + node_modules/domutils/lib/esm/querying.d.ts | 64 + node_modules/domutils/lib/esm/querying.d.ts.map | 1 + node_modules/domutils/lib/esm/querying.js | 145 + node_modules/domutils/lib/esm/querying.js.map | 1 + node_modules/domutils/lib/esm/stringify.d.ts | 46 + node_modules/domutils/lib/esm/stringify.d.ts.map | 1 + node_modules/domutils/lib/esm/stringify.js | 81 + node_modules/domutils/lib/esm/stringify.js.map | 1 + node_modules/domutils/lib/esm/traversal.d.ts | 67 + node_modules/domutils/lib/esm/traversal.d.ts.map | 1 + node_modules/domutils/lib/esm/traversal.js | 112 + node_modules/domutils/lib/esm/traversal.js.map | 1 + node_modules/domutils/lib/feeds.d.ts | 71 + node_modules/domutils/lib/feeds.d.ts.map | 1 + node_modules/domutils/lib/feeds.js | 191 + node_modules/domutils/lib/feeds.js.map | 1 + node_modules/domutils/lib/helpers.d.ts | 59 + node_modules/domutils/lib/helpers.d.ts.map | 1 + node_modules/domutils/lib/helpers.js | 142 + node_modules/domutils/lib/helpers.js.map | 1 + node_modules/domutils/lib/index.d.ts | 10 + node_modules/domutils/lib/index.d.ts.map | 1 + node_modules/domutils/lib/index.js | 33 + node_modules/domutils/lib/index.js.map | 1 + node_modules/domutils/lib/legacy.d.ts | 68 + node_modules/domutils/lib/legacy.d.ts.map | 1 + node_modules/domutils/lib/legacy.js | 153 + node_modules/domutils/lib/legacy.js.map | 1 + node_modules/domutils/lib/manipulation.d.ts | 49 + node_modules/domutils/lib/manipulation.d.ts.map | 1 + node_modules/domutils/lib/manipulation.js | 143 + node_modules/domutils/lib/manipulation.js.map | 1 + node_modules/domutils/lib/querying.d.ts | 64 + node_modules/domutils/lib/querying.d.ts.map | 1 + node_modules/domutils/lib/querying.js | 159 + node_modules/domutils/lib/querying.js.map | 1 + node_modules/domutils/lib/stringify.d.ts | 46 + node_modules/domutils/lib/stringify.d.ts.map | 1 + node_modules/domutils/lib/stringify.js | 92 + node_modules/domutils/lib/stringify.js.map | 1 + node_modules/domutils/lib/traversal.d.ts | 67 + node_modules/domutils/lib/traversal.d.ts.map | 1 + node_modules/domutils/lib/traversal.js | 126 + node_modules/domutils/lib/traversal.js.map | 1 + node_modules/domutils/package.json | 79 + node_modules/domutils/readme.md | 31 + node_modules/electron-to-chromium/CHANGELOG.md | 14 + node_modules/electron-to-chromium/LICENSE | 5 + node_modules/electron-to-chromium/README.md | 186 + .../electron-to-chromium/chromium-versions.js | 59 + .../electron-to-chromium/chromium-versions.json | 1 + .../electron-to-chromium/full-chromium-versions.js | 2867 ++++++ .../full-chromium-versions.json | 1 + node_modules/electron-to-chromium/full-versions.js | 2093 +++++ .../electron-to-chromium/full-versions.json | 1 + node_modules/electron-to-chromium/index.js | 36 + node_modules/electron-to-chromium/package.json | 44 + node_modules/electron-to-chromium/versions.js | 141 + node_modules/electron-to-chromium/versions.json | 1 + node_modules/emoji-regex/LICENSE-MIT.txt | 20 + node_modules/emoji-regex/README.md | 73 + node_modules/emoji-regex/es2015/index.js | 6 + node_modules/emoji-regex/es2015/text.js | 6 + node_modules/emoji-regex/index.d.ts | 23 + node_modules/emoji-regex/index.js | 6 + node_modules/emoji-regex/package.json | 50 + node_modules/emoji-regex/text.js | 6 + node_modules/entities/LICENSE | 11 + node_modules/entities/lib/decode.d.ts | 211 + node_modules/entities/lib/decode.d.ts.map | 1 + node_modules/entities/lib/decode.js | 536 ++ node_modules/entities/lib/decode.js.map | 1 + node_modules/entities/lib/decode_codepoint.d.ts | 19 + .../entities/lib/decode_codepoint.d.ts.map | 1 + node_modules/entities/lib/decode_codepoint.js | 76 + node_modules/entities/lib/decode_codepoint.js.map | 1 + node_modules/entities/lib/encode.d.ts | 22 + node_modules/entities/lib/encode.d.ts.map | 1 + node_modules/entities/lib/encode.js | 77 + node_modules/entities/lib/encode.js.map | 1 + node_modules/entities/lib/escape.d.ts | 43 + node_modules/entities/lib/escape.d.ts.map | 1 + node_modules/entities/lib/escape.js | 122 + node_modules/entities/lib/escape.js.map | 1 + node_modules/entities/lib/esm/decode.d.ts | 211 + node_modules/entities/lib/esm/decode.d.ts.map | 1 + node_modules/entities/lib/esm/decode.js | 496 + node_modules/entities/lib/esm/decode.js.map | 1 + .../entities/lib/esm/decode_codepoint.d.ts | 19 + .../entities/lib/esm/decode_codepoint.d.ts.map | 1 + node_modules/entities/lib/esm/decode_codepoint.js | 71 + .../entities/lib/esm/decode_codepoint.js.map | 1 + node_modules/entities/lib/esm/encode.d.ts | 22 + node_modules/entities/lib/esm/encode.d.ts.map | 1 + node_modules/entities/lib/esm/encode.js | 69 + node_modules/entities/lib/esm/encode.js.map | 1 + node_modules/entities/lib/esm/escape.d.ts | 43 + node_modules/entities/lib/esm/escape.d.ts.map | 1 + node_modules/entities/lib/esm/escape.js | 116 + node_modules/entities/lib/esm/escape.js.map | 1 + .../lib/esm/generated/decode-data-html.d.ts | 3 + .../lib/esm/generated/decode-data-html.d.ts.map | 1 + .../entities/lib/esm/generated/decode-data-html.js | 7 + .../lib/esm/generated/decode-data-html.js.map | 1 + .../lib/esm/generated/decode-data-xml.d.ts | 3 + .../lib/esm/generated/decode-data-xml.d.ts.map | 1 + .../entities/lib/esm/generated/decode-data-xml.js | 7 + .../lib/esm/generated/decode-data-xml.js.map | 1 + .../entities/lib/esm/generated/encode-html.d.ts | 8 + .../lib/esm/generated/encode-html.d.ts.map | 1 + .../entities/lib/esm/generated/encode-html.js | 10 + .../entities/lib/esm/generated/encode-html.js.map | 1 + node_modules/entities/lib/esm/index.d.ts | 96 + node_modules/entities/lib/esm/index.d.ts.map | 1 + node_modules/entities/lib/esm/index.js | 99 + node_modules/entities/lib/esm/index.js.map | 1 + node_modules/entities/lib/esm/package.json | 1 + .../entities/lib/generated/decode-data-html.d.ts | 3 + .../lib/generated/decode-data-html.d.ts.map | 1 + .../entities/lib/generated/decode-data-html.js | 9 + .../entities/lib/generated/decode-data-html.js.map | 1 + .../entities/lib/generated/decode-data-xml.d.ts | 3 + .../lib/generated/decode-data-xml.d.ts.map | 1 + .../entities/lib/generated/decode-data-xml.js | 9 + .../entities/lib/generated/decode-data-xml.js.map | 1 + .../entities/lib/generated/encode-html.d.ts | 8 + .../entities/lib/generated/encode-html.d.ts.map | 1 + node_modules/entities/lib/generated/encode-html.js | 12 + .../entities/lib/generated/encode-html.js.map | 1 + node_modules/entities/lib/index.d.ts | 96 + node_modules/entities/lib/index.d.ts.map | 1 + node_modules/entities/lib/index.js | 126 + node_modules/entities/lib/index.js.map | 1 + node_modules/entities/package.json | 90 + node_modules/entities/readme.md | 122 + node_modules/escalade/dist/index.js | 22 + node_modules/escalade/dist/index.mjs | 22 + node_modules/escalade/index.d.ts | 3 + node_modules/escalade/license | 9 + node_modules/escalade/package.json | 61 + node_modules/escalade/readme.md | 211 + node_modules/escalade/sync/index.d.ts | 2 + node_modules/escalade/sync/index.js | 18 + node_modules/escalade/sync/index.mjs | 18 + node_modules/fast-glob/LICENSE | 21 + node_modules/fast-glob/README.md | 830 ++ node_modules/fast-glob/out/index.d.ts | 40 + node_modules/fast-glob/out/index.js | 102 + node_modules/fast-glob/out/managers/tasks.d.ts | 22 + node_modules/fast-glob/out/managers/tasks.js | 110 + node_modules/fast-glob/out/providers/async.d.ts | 9 + node_modules/fast-glob/out/providers/async.js | 23 + .../fast-glob/out/providers/filters/deep.d.ts | 16 + .../fast-glob/out/providers/filters/deep.js | 62 + .../fast-glob/out/providers/filters/entry.d.ts | 16 + .../fast-glob/out/providers/filters/entry.js | 63 + .../fast-glob/out/providers/filters/error.d.ts | 8 + .../fast-glob/out/providers/filters/error.js | 15 + .../fast-glob/out/providers/matchers/matcher.d.ts | 33 + .../fast-glob/out/providers/matchers/matcher.js | 45 + .../fast-glob/out/providers/matchers/partial.d.ts | 4 + .../fast-glob/out/providers/matchers/partial.js | 38 + node_modules/fast-glob/out/providers/provider.d.ts | 19 + node_modules/fast-glob/out/providers/provider.js | 48 + node_modules/fast-glob/out/providers/stream.d.ts | 11 + node_modules/fast-glob/out/providers/stream.js | 31 + node_modules/fast-glob/out/providers/sync.d.ts | 9 + node_modules/fast-glob/out/providers/sync.js | 23 + .../out/providers/transformers/entry.d.ts | 8 + .../fast-glob/out/providers/transformers/entry.js | 26 + node_modules/fast-glob/out/readers/async.d.ts | 10 + node_modules/fast-glob/out/readers/async.js | 35 + node_modules/fast-glob/out/readers/reader.d.ts | 15 + node_modules/fast-glob/out/readers/reader.js | 33 + node_modules/fast-glob/out/readers/stream.d.ts | 14 + node_modules/fast-glob/out/readers/stream.js | 55 + node_modules/fast-glob/out/readers/sync.d.ts | 12 + node_modules/fast-glob/out/readers/sync.js | 43 + node_modules/fast-glob/out/settings.d.ts | 164 + node_modules/fast-glob/out/settings.js | 59 + node_modules/fast-glob/out/types/index.d.ts | 31 + node_modules/fast-glob/out/types/index.js | 2 + node_modules/fast-glob/out/utils/array.d.ts | 2 + node_modules/fast-glob/out/utils/array.js | 22 + node_modules/fast-glob/out/utils/errno.d.ts | 2 + node_modules/fast-glob/out/utils/errno.js | 7 + node_modules/fast-glob/out/utils/fs.d.ts | 4 + node_modules/fast-glob/out/utils/fs.js | 19 + node_modules/fast-glob/out/utils/index.d.ts | 8 + node_modules/fast-glob/out/utils/index.js | 17 + node_modules/fast-glob/out/utils/path.d.ts | 13 + node_modules/fast-glob/out/utils/path.js | 68 + node_modules/fast-glob/out/utils/pattern.d.ts | 47 + node_modules/fast-glob/out/utils/pattern.js | 188 + node_modules/fast-glob/out/utils/stream.d.ts | 4 + node_modules/fast-glob/out/utils/stream.js | 17 + node_modules/fast-glob/out/utils/string.d.ts | 2 + node_modules/fast-glob/out/utils/string.js | 11 + node_modules/fast-glob/package.json | 81 + node_modules/fastq/.github/dependabot.yml | 11 + node_modules/fastq/.github/workflows/ci.yml | 50 + node_modules/fastq/LICENSE | 13 + node_modules/fastq/README.md | 309 + node_modules/fastq/bench.js | 66 + node_modules/fastq/example.js | 14 + node_modules/fastq/example.mjs | 11 + node_modules/fastq/index.d.ts | 37 + node_modules/fastq/package.json | 52 + node_modules/fastq/queue.js | 289 + node_modules/fastq/test/example.ts | 81 + node_modules/fastq/test/promise.js | 248 + node_modules/fastq/test/test.js | 566 ++ node_modules/fastq/test/tsconfig.json | 11 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 + node_modules/fill-range/index.js | 249 + node_modules/fill-range/package.json | 69 + node_modules/fraction.js/LICENSE | 21 + node_modules/fraction.js/README.md | 466 + node_modules/fraction.js/bigfraction.js | 899 ++ node_modules/fraction.js/fraction.cjs | 904 ++ node_modules/fraction.js/fraction.d.ts | 60 + node_modules/fraction.js/fraction.js | 891 ++ node_modules/fraction.js/fraction.min.js | 18 + node_modules/fraction.js/package.json | 55 + node_modules/fs-extra/LICENSE | 15 + node_modules/fs-extra/README.md | 292 + node_modules/fs-extra/lib/copy/copy-sync.js | 161 + node_modules/fs-extra/lib/copy/copy.js | 238 + node_modules/fs-extra/lib/copy/index.js | 7 + node_modules/fs-extra/lib/empty/index.js | 39 + node_modules/fs-extra/lib/ensure/file.js | 69 + node_modules/fs-extra/lib/ensure/index.js | 23 + node_modules/fs-extra/lib/ensure/link.js | 64 + node_modules/fs-extra/lib/ensure/symlink-paths.js | 99 + node_modules/fs-extra/lib/ensure/symlink-type.js | 31 + node_modules/fs-extra/lib/ensure/symlink.js | 82 + node_modules/fs-extra/lib/esm.mjs | 68 + node_modules/fs-extra/lib/fs/index.js | 140 + node_modules/fs-extra/lib/index.js | 16 + node_modules/fs-extra/lib/json/index.js | 16 + node_modules/fs-extra/lib/json/jsonfile.js | 11 + node_modules/fs-extra/lib/json/output-json-sync.js | 12 + node_modules/fs-extra/lib/json/output-json.js | 12 + node_modules/fs-extra/lib/mkdirs/index.js | 14 + node_modules/fs-extra/lib/mkdirs/make-dir.js | 27 + node_modules/fs-extra/lib/mkdirs/utils.js | 21 + node_modules/fs-extra/lib/move/index.js | 7 + node_modules/fs-extra/lib/move/move-sync.js | 55 + node_modules/fs-extra/lib/move/move.js | 76 + node_modules/fs-extra/lib/output-file/index.js | 40 + node_modules/fs-extra/lib/path-exists/index.js | 12 + node_modules/fs-extra/lib/remove/index.js | 17 + node_modules/fs-extra/lib/util/stat.js | 154 + node_modules/fs-extra/lib/util/utimes.js | 26 + node_modules/fs-extra/package.json | 71 + node_modules/fsevents/LICENSE | 22 + node_modules/fsevents/README.md | 89 + node_modules/fsevents/fsevents.d.ts | 46 + node_modules/fsevents/fsevents.js | 83 + node_modules/fsevents/fsevents.node | Bin 0 -> 163626 bytes node_modules/fsevents/package.json | 62 + node_modules/g/LICENSE | 19 + node_modules/g/README.md | 32 + node_modules/g/index.js | 46 + node_modules/g/package.json | 11 + node_modules/g/test.js | 7 + node_modules/get-caller-file/LICENSE.md | 6 + node_modules/get-caller-file/README.md | 41 + node_modules/get-caller-file/index.d.ts | 2 + node_modules/get-caller-file/index.js | 22 + node_modules/get-caller-file/index.js.map | 1 + node_modules/get-caller-file/package.json | 42 + node_modules/get-stdin/index.d.ts | 29 + node_modules/get-stdin/index.js | 33 + node_modules/get-stdin/license | 9 + node_modules/get-stdin/package.json | 42 + node_modules/get-stdin/readme.md | 56 + node_modules/glob-parent/CHANGELOG.md | 110 + node_modules/glob-parent/LICENSE | 15 + node_modules/glob-parent/README.md | 137 + node_modules/glob-parent/index.js | 42 + node_modules/glob-parent/package.json | 48 + node_modules/globby/ignore.js | 94 + node_modules/globby/index.d.ts | 205 + node_modules/globby/index.js | 229 + node_modules/globby/license | 9 + node_modules/globby/node_modules/slash/index.d.ts | 23 + node_modules/globby/node_modules/slash/index.js | 10 + node_modules/globby/node_modules/slash/license | 9 + .../globby/node_modules/slash/package.json | 38 + node_modules/globby/node_modules/slash/readme.md | 48 + node_modules/globby/package.json | 96 + node_modules/globby/readme.md | 183 + node_modules/globby/utilities.js | 17 + node_modules/graceful-fs/LICENSE | 15 + node_modules/graceful-fs/README.md | 143 + node_modules/graceful-fs/clone.js | 23 + node_modules/graceful-fs/graceful-fs.js | 448 + node_modules/graceful-fs/legacy-streams.js | 118 + node_modules/graceful-fs/package.json | 53 + node_modules/graceful-fs/polyfills.js | 355 + node_modules/ignore/LICENSE-MIT | 21 + node_modules/ignore/README.md | 412 + node_modules/ignore/index.d.ts | 61 + node_modules/ignore/index.js | 618 ++ node_modules/ignore/legacy.js | 539 ++ node_modules/ignore/package.json | 73 + node_modules/is-binary-path/index.d.ts | 17 + node_modules/is-binary-path/index.js | 7 + node_modules/is-binary-path/license | 9 + node_modules/is-binary-path/package.json | 40 + node_modules/is-binary-path/readme.md | 34 + node_modules/is-extglob/LICENSE | 21 + node_modules/is-extglob/README.md | 107 + node_modules/is-extglob/index.js | 20 + node_modules/is-extglob/package.json | 69 + node_modules/is-fullwidth-code-point/index.d.ts | 17 + node_modules/is-fullwidth-code-point/index.js | 50 + node_modules/is-fullwidth-code-point/license | 9 + node_modules/is-fullwidth-code-point/package.json | 42 + node_modules/is-fullwidth-code-point/readme.md | 39 + node_modules/is-glob/LICENSE | 21 + node_modules/is-glob/README.md | 206 + node_modules/is-glob/index.js | 150 + node_modules/is-glob/package.json | 81 + node_modules/is-number/LICENSE | 21 + node_modules/is-number/README.md | 187 + node_modules/is-number/index.js | 18 + node_modules/is-number/package.json | 82 + node_modules/jsonfile/CHANGELOG.md | 171 + node_modules/jsonfile/LICENSE | 15 + node_modules/jsonfile/README.md | 230 + node_modules/jsonfile/index.js | 88 + node_modules/jsonfile/package.json | 40 + node_modules/jsonfile/utils.js | 14 + node_modules/lilconfig/LICENSE | 21 + node_modules/lilconfig/dist/index.d.ts | 38 + node_modules/lilconfig/dist/index.js | 251 + node_modules/lilconfig/package.json | 48 + node_modules/lilconfig/readme.md | 118 + node_modules/lodash.memoize/LICENSE | 47 + node_modules/lodash.memoize/README.md | 18 + node_modules/lodash.memoize/index.js | 676 ++ node_modules/lodash.memoize/package.json | 17 + node_modules/lodash.uniq/LICENSE | 47 + node_modules/lodash.uniq/README.md | 18 + node_modules/lodash.uniq/index.js | 896 ++ node_modules/lodash.uniq/package.json | 17 + node_modules/mdn-data/CHANGELOG.md | 66 + node_modules/mdn-data/LICENSE | 116 + node_modules/mdn-data/README.md | 62 + node_modules/mdn-data/api/index.js | 3 + node_modules/mdn-data/api/inheritance.json | 2681 ++++++ node_modules/mdn-data/api/inheritance.schema.json | 31 + node_modules/mdn-data/css/at-rules.json | 620 ++ node_modules/mdn-data/css/at-rules.schema.json | 131 + node_modules/mdn-data/css/definitions.json | 78 + node_modules/mdn-data/css/index.js | 8 + node_modules/mdn-data/css/properties.json | 9626 ++++++++++++++++++++ node_modules/mdn-data/css/properties.schema.json | 412 + node_modules/mdn-data/css/readme.md | 32 + node_modules/mdn-data/css/selectors.json | 1044 +++ node_modules/mdn-data/css/selectors.schema.json | 36 + node_modules/mdn-data/css/syntaxes.json | 866 ++ node_modules/mdn-data/css/syntaxes.schema.json | 15 + node_modules/mdn-data/css/types.json | 265 + node_modules/mdn-data/css/types.schema.json | 32 + node_modules/mdn-data/css/units.json | 213 + node_modules/mdn-data/css/units.schema.json | 28 + node_modules/mdn-data/index.js | 5 + node_modules/mdn-data/l10n/css.json | 1714 ++++ node_modules/mdn-data/l10n/index.js | 3 + node_modules/mdn-data/package.json | 38 + node_modules/merge2/LICENSE | 21 + node_modules/merge2/README.md | 144 + node_modules/merge2/index.js | 144 + node_modules/merge2/package.json | 43 + node_modules/micromatch/LICENSE | 21 + node_modules/micromatch/README.md | 1011 ++ node_modules/micromatch/index.js | 467 + node_modules/micromatch/package.json | 119 + node_modules/nanoid/LICENSE | 20 + node_modules/nanoid/README.md | 39 + node_modules/nanoid/async/index.browser.cjs | 34 + node_modules/nanoid/async/index.browser.js | 34 + node_modules/nanoid/async/index.cjs | 35 + node_modules/nanoid/async/index.d.ts | 56 + node_modules/nanoid/async/index.js | 35 + node_modules/nanoid/async/index.native.js | 26 + node_modules/nanoid/async/package.json | 12 + node_modules/nanoid/bin/nanoid.cjs | 55 + node_modules/nanoid/index.browser.cjs | 34 + node_modules/nanoid/index.browser.js | 34 + node_modules/nanoid/index.cjs | 45 + node_modules/nanoid/index.d.ts | 91 + node_modules/nanoid/index.js | 45 + node_modules/nanoid/nanoid.js | 1 + node_modules/nanoid/non-secure/index.cjs | 21 + node_modules/nanoid/non-secure/index.d.ts | 33 + node_modules/nanoid/non-secure/index.js | 21 + node_modules/nanoid/non-secure/package.json | 6 + node_modules/nanoid/package.json | 66 + node_modules/nanoid/url-alphabet/index.cjs | 3 + node_modules/nanoid/url-alphabet/index.js | 3 + node_modules/nanoid/url-alphabet/package.json | 6 + node_modules/node-releases/LICENSE | 21 + node_modules/node-releases/README.md | 12 + .../node-releases/data/processed/envs.json | 1 + .../data/release-schedule/release-schedule.json | 1 + node_modules/node-releases/package.json | 19 + node_modules/normalize-path/LICENSE | 21 + node_modules/normalize-path/README.md | 127 + node_modules/normalize-path/index.js | 35 + node_modules/normalize-path/package.json | 77 + node_modules/normalize-range/index.js | 54 + node_modules/normalize-range/license | 21 + node_modules/normalize-range/package.json | 46 + node_modules/normalize-range/readme.md | 148 + node_modules/nth-check/LICENSE | 11 + node_modules/nth-check/README.md | 136 + node_modules/nth-check/lib/compile.d.ts | 55 + node_modules/nth-check/lib/compile.d.ts.map | 1 + node_modules/nth-check/lib/compile.js | 121 + node_modules/nth-check/lib/compile.js.map | 1 + node_modules/nth-check/lib/esm/compile.d.ts | 55 + node_modules/nth-check/lib/esm/compile.d.ts.map | 1 + node_modules/nth-check/lib/esm/compile.js | 113 + node_modules/nth-check/lib/esm/compile.js.map | 1 + node_modules/nth-check/lib/esm/index.d.ts | 59 + node_modules/nth-check/lib/esm/index.d.ts.map | 1 + node_modules/nth-check/lib/esm/index.js | 63 + node_modules/nth-check/lib/esm/index.js.map | 1 + node_modules/nth-check/lib/esm/package.json | 1 + node_modules/nth-check/lib/esm/parse.d.ts | 9 + node_modules/nth-check/lib/esm/parse.d.ts.map | 1 + node_modules/nth-check/lib/esm/parse.js | 73 + node_modules/nth-check/lib/esm/parse.js.map | 1 + node_modules/nth-check/lib/index.d.ts | 59 + node_modules/nth-check/lib/index.d.ts.map | 1 + node_modules/nth-check/lib/index.js | 70 + node_modules/nth-check/lib/index.js.map | 1 + node_modules/nth-check/lib/parse.d.ts | 9 + node_modules/nth-check/lib/parse.d.ts.map | 1 + node_modules/nth-check/lib/parse.js | 77 + node_modules/nth-check/lib/parse.js.map | 1 + node_modules/nth-check/package.json | 78 + node_modules/path-type/index.d.ts | 51 + node_modules/path-type/index.js | 43 + node_modules/path-type/license | 9 + node_modules/path-type/package.json | 45 + node_modules/path-type/readme.md | 72 + node_modules/picocolors/LICENSE | 15 + node_modules/picocolors/README.md | 21 + node_modules/picocolors/package.json | 25 + node_modules/picocolors/picocolors.browser.js | 4 + node_modules/picocolors/picocolors.d.ts | 5 + node_modules/picocolors/picocolors.js | 58 + node_modules/picocolors/types.ts | 30 + node_modules/picomatch/CHANGELOG.md | 136 + node_modules/picomatch/LICENSE | 21 + node_modules/picomatch/README.md | 708 ++ node_modules/picomatch/index.js | 3 + node_modules/picomatch/lib/constants.js | 179 + node_modules/picomatch/lib/parse.js | 1091 +++ node_modules/picomatch/lib/picomatch.js | 342 + node_modules/picomatch/lib/scan.js | 391 + node_modules/picomatch/lib/utils.js | 64 + node_modules/picomatch/package.json | 81 + node_modules/pify/index.js | 68 + node_modules/pify/license | 21 + node_modules/pify/package.json | 48 + node_modules/pify/readme.md | 119 + .../CHANGELOG.md | 35 + .../postcss-attribute-case-insensitive/LICENSE | 20 + .../postcss-attribute-case-insensitive/README.md | 82 + .../dist/index.cjs | 1 + .../dist/index.d.ts | 8 + .../dist/index.mjs | 1 + .../package.json | 88 + node_modules/postcss-calc/LICENSE | 20 + node_modules/postcss-calc/README.md | 153 + node_modules/postcss-calc/package.json | 68 + node_modules/postcss-calc/src/index.js | 51 + node_modules/postcss-calc/src/lib/convertUnit.js | 160 + node_modules/postcss-calc/src/lib/reducer.js | 362 + node_modules/postcss-calc/src/lib/stringifier.js | 98 + node_modules/postcss-calc/src/lib/transform.js | 109 + node_modules/postcss-calc/src/parser.d.ts | 51 + node_modules/postcss-calc/src/parser.js | 3808 ++++++++ node_modules/postcss-calc/types/index.d.ts | 25 + .../postcss-calc/types/lib/convertUnit.d.ts | 8 + node_modules/postcss-calc/types/lib/reducer.d.ts | 14 + .../postcss-calc/types/lib/stringifier.d.ts | 5 + node_modules/postcss-calc/types/lib/transform.d.ts | 6 + node_modules/postcss-clamp/INSTALL.md | 162 + node_modules/postcss-clamp/LICENSE | 21 + node_modules/postcss-clamp/README.md | 118 + node_modules/postcss-clamp/index.js | 126 + node_modules/postcss-clamp/index.test.js | 221 + node_modules/postcss-clamp/package.json | 26 + node_modules/postcss-cli/LICENSE | 21 + node_modules/postcss-cli/README.md | 149 + node_modules/postcss-cli/index.js | 354 + node_modules/postcss-cli/lib/DependencyGraph.js | 30 + node_modules/postcss-cli/lib/args.js | 115 + node_modules/postcss-cli/lib/getMapfile.js | 7 + node_modules/postcss-cli/package.json | 78 + .../postcss-color-functional-notation/CHANGELOG.md | 168 + .../postcss-color-functional-notation/LICENSE.md | 18 + .../postcss-color-functional-notation/README.md | 107 + .../dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../dist/index.cjs | 1 + .../dist/index.d.ts | 10 + .../dist/index.mjs | 1 + .../dist/on-css-function.d.ts | 3 + .../postcss-color-functional-notation/package.json | 86 + node_modules/postcss-color-hex-alpha/CHANGELOG.md | 98 + node_modules/postcss-color-hex-alpha/LICENSE.md | 21 + node_modules/postcss-color-hex-alpha/README.md | 81 + .../dist/has-fallback-decl.d.ts | 2 + .../postcss-color-hex-alpha/dist/index.cjs | 1 + .../postcss-color-hex-alpha/dist/index.d.ts | 8 + .../postcss-color-hex-alpha/dist/index.mjs | 1 + node_modules/postcss-color-hex-alpha/package.json | 99 + .../postcss-color-rebeccapurple/CHANGELOG.md | 117 + .../postcss-color-rebeccapurple/LICENSE.md | 18 + node_modules/postcss-color-rebeccapurple/README.md | 89 + .../dist/has-fallback-decl.d.ts | 2 + .../postcss-color-rebeccapurple/dist/index.cjs | 1 + .../postcss-color-rebeccapurple/dist/index.d.ts | 8 + .../postcss-color-rebeccapurple/dist/index.mjs | 1 + .../postcss-color-rebeccapurple/package.json | 102 + node_modules/postcss-colormin/LICENSE-MIT | 22 + node_modules/postcss-colormin/README.md | 45 + node_modules/postcss-colormin/package.json | 48 + node_modules/postcss-colormin/src/index.js | 159 + node_modules/postcss-colormin/src/minifyColor.js | 28 + node_modules/postcss-colormin/types/index.d.ts | 10 + .../postcss-colormin/types/minifyColor.d.ts | 2 + node_modules/postcss-convert-values/LICENSE-MIT | 22 + node_modules/postcss-convert-values/README.md | 98 + node_modules/postcss-convert-values/package.json | 42 + node_modules/postcss-convert-values/src/index.js | 207 + .../postcss-convert-values/src/lib/convert.js | 85 + .../postcss-convert-values/types/index.d.ts | 20 + .../postcss-convert-values/types/lib/convert.d.ts | 6 + node_modules/postcss-custom-media/CHANGELOG.md | 228 + node_modules/postcss-custom-media/LICENSE.md | 21 + node_modules/postcss-custom-media/README.md | 195 + .../postcss-custom-media/dist/cascade-layers.d.ts | 3 + .../dist/custom-media-from-root.d.ts | 8 + node_modules/postcss-custom-media/dist/index.cjs | 1 + node_modules/postcss-custom-media/dist/index.d.ts | 8 + node_modules/postcss-custom-media/dist/index.mjs | 1 + .../dist/is-processable-custom-media-rule.d.ts | 2 + .../postcss-custom-media/dist/toposort.d.ts | 1 + .../transform-at-media/always-true-or-false.d.ts | 3 + .../transform-at-media/at-media-params-tokens.d.ts | 2 + .../dist/transform-at-media/custom-media.d.ts | 7 + .../transform-at-media/transform-at-media.d.ts | 22 + .../dist/transform-at-media/true-and-false.d.ts | 2 + node_modules/postcss-custom-media/package.json | 105 + .../postcss-custom-properties/CHANGELOG.md | 582 ++ node_modules/postcss-custom-properties/LICENSE.md | 21 + node_modules/postcss-custom-properties/README.md | 186 + .../dist/cascade-layers.d.ts | 3 + .../dist/get-custom-properties-from-root.d.ts | 3 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../postcss-custom-properties/dist/index.cjs | 1 + .../postcss-custom-properties/dist/index.d.ts | 8 + .../postcss-custom-properties/dist/index.mjs | 1 + .../postcss-custom-properties/dist/is-ignored.d.ts | 3 + .../dist/is-processable-rule.d.ts | 7 + .../dist/is-var-function.d.ts | 3 + .../dist/parse-or-cached.d.ts | 2 + .../postcss-custom-properties/dist/toposort.d.ts | 1 + .../dist/transform-properties.d.ts | 5 + .../dist/transform-value-ast.d.ts | 2 + .../postcss-custom-properties/package.json | 92 + node_modules/postcss-custom-selectors/CHANGELOG.md | 218 + node_modules/postcss-custom-selectors/LICENSE.md | 21 + node_modules/postcss-custom-selectors/README.md | 120 + .../dist/cascade-layers.d.ts | 3 + .../dist/custom-selectors-from-root.d.ts | 5 + .../postcss-custom-selectors/dist/index.cjs | 1 + .../postcss-custom-selectors/dist/index.d.ts | 8 + .../postcss-custom-selectors/dist/index.mjs | 1 + .../dist/is-processable-custom-selector-rule.d.ts | 2 + .../dist/transform-rule.d.ts | 3 + node_modules/postcss-custom-selectors/package.json | 109 + node_modules/postcss-dir-pseudo-class/CHANGELOG.md | 118 + node_modules/postcss-dir-pseudo-class/LICENSE.md | 18 + node_modules/postcss-dir-pseudo-class/README.md | 202 + .../postcss-dir-pseudo-class/dist/index.cjs | 1 + .../postcss-dir-pseudo-class/dist/index.d.ts | 12 + .../postcss-dir-pseudo-class/dist/index.mjs | 1 + node_modules/postcss-dir-pseudo-class/package.json | 100 + node_modules/postcss-discard-comments/LICENSE-MIT | 22 + node_modules/postcss-discard-comments/README.md | 114 + node_modules/postcss-discard-comments/package.json | 40 + node_modules/postcss-discard-comments/src/index.js | 153 + .../src/lib/commentParser.js | 31 + .../src/lib/commentRemover.js | 32 + .../postcss-discard-comments/types/index.d.ts | 21 + .../types/lib/commentParser.d.ts | 2 + .../types/lib/commentRemover.d.ts | 14 + .../postcss-discard-duplicates/LICENSE-MIT | 22 + node_modules/postcss-discard-duplicates/README.md | 70 + .../postcss-discard-duplicates/package.json | 39 + .../postcss-discard-duplicates/src/index.js | 167 + .../postcss-discard-duplicates/types/index.d.ts | 9 + node_modules/postcss-discard-empty/LICENSE-MIT | 22 + node_modules/postcss-discard-empty/README.md | 49 + node_modules/postcss-discard-empty/package.json | 41 + node_modules/postcss-discard-empty/src/index.js | 57 + .../postcss-discard-empty/types/index.d.ts | 9 + node_modules/postcss-discard-overridden/LICENSE | 20 + node_modules/postcss-discard-overridden/README.md | 158 + .../postcss-discard-overridden/package.json | 35 + .../postcss-discard-overridden/src/index.js | 94 + .../postcss-double-position-gradients/CHANGELOG.md | 142 + .../postcss-double-position-gradients/LICENSE.md | 18 + .../postcss-double-position-gradients/README.md | 125 + .../dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + .../dist/index.cjs | 1 + .../dist/index.d.ts | 10 + .../dist/index.mjs | 1 + .../dist/is-gradient.d.ts | 2 + .../postcss-double-position-gradients/package.json | 84 + node_modules/postcss-focus-visible/CHANGELOG.md | 109 + node_modules/postcss-focus-visible/LICENSE.md | 18 + node_modules/postcss-focus-visible/README.md | 146 + node_modules/postcss-focus-visible/dist/index.cjs | 1 + node_modules/postcss-focus-visible/dist/index.d.ts | 12 + node_modules/postcss-focus-visible/dist/index.mjs | 1 + node_modules/postcss-focus-visible/package.json | 108 + node_modules/postcss-focus-within/CHANGELOG.md | 110 + node_modules/postcss-focus-within/LICENSE.md | 18 + node_modules/postcss-focus-within/README.md | 205 + .../postcss-focus-within/dist/browser-global.js | 2 + .../dist/browser-global.js.map | 1 + node_modules/postcss-focus-within/dist/browser.cjs | 2 + .../postcss-focus-within/dist/browser.cjs.map | 1 + node_modules/postcss-focus-within/dist/browser.mjs | 2 + .../postcss-focus-within/dist/browser.mjs.map | 1 + node_modules/postcss-focus-within/dist/index.cjs | 1 + node_modules/postcss-focus-within/dist/index.d.ts | 12 + node_modules/postcss-focus-within/dist/index.mjs | 1 + node_modules/postcss-focus-within/package.json | 107 + node_modules/postcss-font-variant/CHANGELOG.md | 48 + node_modules/postcss-font-variant/LICENSE | 20 + node_modules/postcss-font-variant/README.md | 74 + node_modules/postcss-font-variant/index.js | 126 + node_modules/postcss-font-variant/package.json | 36 + node_modules/postcss-gap-properties/CHANGELOG.md | 71 + node_modules/postcss-gap-properties/LICENSE.md | 18 + node_modules/postcss-gap-properties/README.md | 111 + node_modules/postcss-gap-properties/dist/index.cjs | 1 + .../postcss-gap-properties/dist/index.d.ts | 8 + node_modules/postcss-gap-properties/dist/index.mjs | 1 + node_modules/postcss-gap-properties/package.json | 93 + .../postcss-image-set-function/CHANGELOG.md | 110 + node_modules/postcss-image-set-function/LICENSE.md | 18 + node_modules/postcss-image-set-function/README.md | 162 + .../dist/has-fallback-decl.d.ts | 2 + .../postcss-image-set-function/dist/index.cjs | 1 + .../postcss-image-set-function/dist/index.d.ts | 15 + .../postcss-image-set-function/dist/index.mjs | 1 + .../dist/lib/get-comma.d.ts | 2 + .../dist/lib/get-image.d.ts | 2 + .../dist/lib/get-media.d.ts | 4 + .../dist/lib/handle-invalidation.d.ts | 6 + .../dist/lib/process-image-set.d.ts | 14 + .../postcss-image-set-function/package.json | 80 + node_modules/postcss-lab-function/CHANGELOG.md | 280 + node_modules/postcss-lab-function/LICENSE.md | 18 + node_modules/postcss-lab-function/README.md | 153 + .../dist/has-fallback-decl.d.ts | 2 + .../dist/has-supports-at-rule-ancestor.d.ts | 2 + node_modules/postcss-lab-function/dist/index.cjs | 1 + node_modules/postcss-lab-function/dist/index.d.ts | 15 + node_modules/postcss-lab-function/dist/index.mjs | 1 + node_modules/postcss-lab-function/package.json | 88 + node_modules/postcss-load-config/LICENSE | 20 + node_modules/postcss-load-config/README.md | 491 + node_modules/postcss-load-config/package.json | 48 + node_modules/postcss-load-config/src/index.d.ts | 65 + node_modules/postcss-load-config/src/index.js | 179 + node_modules/postcss-load-config/src/options.js | 47 + node_modules/postcss-load-config/src/plugins.js | 85 + node_modules/postcss-load-config/src/req.js | 10 + node_modules/postcss-logical/CHANGELOG.md | 148 + node_modules/postcss-logical/LICENSE.md | 18 + node_modules/postcss-logical/README.md | 126 + node_modules/postcss-logical/dist/index.cjs | 1 + node_modules/postcss-logical/dist/index.d.ts | 11 + node_modules/postcss-logical/dist/index.mjs | 1 + .../dist/lib/clone-declaration.d.ts | 2 + .../dist/lib/transform-borders.d.ts | 6 + .../postcss-logical/dist/lib/transform-inset.d.ts | 2 + .../dist/lib/transform-logical-size.d.ts | 3 + .../postcss-logical/dist/lib/transform-offset.d.ts | 3 + .../postcss-logical/dist/lib/transform-side.d.ts | 3 + .../dist/lib/transform-text-align.d.ts | 2 + .../dist/lib/transform-transition.d.ts | 3 + .../postcss-logical/dist/lib/transform-value.d.ts | 3 + .../postcss-logical/dist/lib/transforms.d.ts | 2 + node_modules/postcss-logical/dist/lib/types.d.ts | 33 + .../dist/utils/direction-flow-to-axes.d.ts | 2 + .../dist/utils/logical-to-physical.d.ts | 2 + .../dist/utils/parse-value-couple.d.ts | 2 + node_modules/postcss-logical/package.json | 110 + node_modules/postcss-merge-longhand/LICENSE-MIT | 22 + node_modules/postcss-merge-longhand/README.md | 50 + node_modules/postcss-merge-longhand/package.json | 43 + node_modules/postcss-merge-longhand/src/index.js | 23 + .../postcss-merge-longhand/src/lib/canExplode.js | 16 + .../postcss-merge-longhand/src/lib/canMerge.js | 35 + .../postcss-merge-longhand/src/lib/colornames.js | 152 + .../postcss-merge-longhand/src/lib/decl/borders.js | 860 ++ .../postcss-merge-longhand/src/lib/decl/boxBase.js | 117 + .../postcss-merge-longhand/src/lib/decl/columns.js | 162 + .../postcss-merge-longhand/src/lib/decl/index.js | 7 + .../postcss-merge-longhand/src/lib/decl/margin.js | 4 + .../postcss-merge-longhand/src/lib/decl/padding.js | 4 + .../postcss-merge-longhand/src/lib/getDecls.js | 14 + .../postcss-merge-longhand/src/lib/getLastNode.js | 7 + .../postcss-merge-longhand/src/lib/getRules.js | 15 + .../postcss-merge-longhand/src/lib/getValue.js | 8 + .../postcss-merge-longhand/src/lib/hasAllProps.js | 7 + .../postcss-merge-longhand/src/lib/insertCloned.js | 14 + .../postcss-merge-longhand/src/lib/isCustomProp.js | 3 + .../postcss-merge-longhand/src/lib/mergeRules.js | 75 + .../postcss-merge-longhand/src/lib/mergeValues.js | 5 + .../postcss-merge-longhand/src/lib/minifyTrbl.js | 21 + .../postcss-merge-longhand/src/lib/minifyWsc.js | 31 + .../postcss-merge-longhand/src/lib/parseTrbl.js | 12 + .../postcss-merge-longhand/src/lib/parseWsc.js | 83 + .../postcss-merge-longhand/src/lib/trbl.js | 2 + .../postcss-merge-longhand/src/lib/validateWsc.js | 87 + .../postcss-merge-longhand/types/index.d.ts | 9 + .../types/lib/canExplode.d.ts | 2 + .../postcss-merge-longhand/types/lib/canMerge.d.ts | 2 + .../types/lib/colornames.d.ts | 2 + .../types/lib/decl/borders.d.ts | 10 + .../types/lib/decl/boxBase.d.ts | 5 + .../types/lib/decl/columns.d.ts | 10 + .../types/lib/decl/index.d.ts | 3 + .../types/lib/decl/margin.d.ts | 5 + .../types/lib/decl/padding.d.ts | 5 + .../postcss-merge-longhand/types/lib/getDecls.d.ts | 2 + .../types/lib/getLastNode.d.ts | 2 + .../postcss-merge-longhand/types/lib/getRules.d.ts | 2 + .../postcss-merge-longhand/types/lib/getValue.d.ts | 2 + .../types/lib/hasAllProps.d.ts | 2 + .../types/lib/insertCloned.d.ts | 2 + .../types/lib/isCustomProp.d.ts | 2 + .../types/lib/mergeRules.d.ts | 2 + .../types/lib/mergeValues.d.ts | 2 + .../types/lib/minifyTrbl.d.ts | 2 + .../types/lib/minifyWsc.d.ts | 2 + .../types/lib/parseTrbl.d.ts | 2 + .../postcss-merge-longhand/types/lib/parseWsc.d.ts | 2 + .../postcss-merge-longhand/types/lib/remove.d.ts | 2 + .../postcss-merge-longhand/types/lib/trbl.d.ts | 2 + .../types/lib/validateWsc.d.ts | 20 + node_modules/postcss-merge-rules/LICENSE-MIT | 22 + node_modules/postcss-merge-rules/README.md | 105 + node_modules/postcss-merge-rules/package.json | 47 + node_modules/postcss-merge-rules/src/index.js | 437 + .../src/lib/ensureCompatibility.js | 231 + node_modules/postcss-merge-rules/types/index.d.ts | 9 + .../types/lib/ensureCompatibility.d.ts | 71 + node_modules/postcss-minify-font-values/LICENSE | 22 + node_modules/postcss-minify-font-values/README.md | 81 + .../postcss-minify-font-values/package.json | 39 + .../postcss-minify-font-values/src/index.js | 98 + .../postcss-minify-font-values/src/lib/keywords.js | 40 + .../src/lib/minify-family.js | 248 + .../src/lib/minify-font.js | 64 + .../src/lib/minify-weight.js | 14 + .../postcss-minify-font-values/types/index.d.ts | 17 + .../types/lib/keywords.d.ts | 5 + .../types/lib/minify-family.d.ts | 2 + .../types/lib/minify-font.d.ts | 2 + .../types/lib/minify-weight.d.ts | 2 + node_modules/postcss-minify-gradients/LICENSE-MIT | 22 + node_modules/postcss-minify-gradients/README.md | 53 + node_modules/postcss-minify-gradients/package.json | 42 + node_modules/postcss-minify-gradients/src/index.js | 224 + .../postcss-minify-gradients/src/isColorStop.js | 62 + .../postcss-minify-gradients/types/index.d.ts | 9 + .../types/isColorStop.d.ts | 2 + node_modules/postcss-minify-params/LICENSE | 20 + node_modules/postcss-minify-params/README.md | 39 + node_modules/postcss-minify-params/package.json | 41 + node_modules/postcss-minify-params/src/index.js | 158 + .../postcss-minify-params/types/index.d.ts | 11 + node_modules/postcss-minify-selectors/LICENSE-MIT | 22 + node_modules/postcss-minify-selectors/README.md | 42 + node_modules/postcss-minify-selectors/package.json | 43 + node_modules/postcss-minify-selectors/src/index.js | 260 + .../postcss-minify-selectors/src/lib/canUnquote.js | 24 + .../postcss-minify-selectors/types/index.d.ts | 9 + .../types/lib/canUnquote.d.ts | 2 + node_modules/postcss-nesting/CHANGELOG.md | 422 + node_modules/postcss-nesting/LICENSE.md | 18 + node_modules/postcss-nesting/README.md | 207 + node_modules/postcss-nesting/dist/index.cjs | 1 + node_modules/postcss-nesting/dist/index.d.ts | 10 + node_modules/postcss-nesting/dist/index.mjs | 1 + .../dist/lib/ampersand-to-scope.d.ts | 2 + .../dist/lib/atrule-within-atrule.d.ts | 3 + .../dist/lib/atrule-within-rule.d.ts | 5 + .../postcss-nesting/dist/lib/cleanup-parent.d.ts | 2 + .../dist/lib/group-declarations.d.ts | 2 + .../postcss-nesting/dist/lib/is-type-of-rule.d.ts | 4 + node_modules/postcss-nesting/dist/lib/list.d.ts | 1 + .../postcss-nesting/dist/lib/merge-params.d.ts | 1 + .../merge-selectors/combinations-of-size-n.d.ts | 1 + .../merge-selectors/compound-selector-order.d.ts | 2 + .../dist/lib/merge-selectors/merge-selectors.d.ts | 2 + .../dist/lib/merge-selectors/specificity.d.ts | 1 + .../dist/lib/nest-rule-within-rule.d.ts | 5 + node_modules/postcss-nesting/dist/lib/options.d.ts | 4 + .../postcss-nesting/dist/lib/rule-within-rule.d.ts | 4 + .../dist/lib/shift-nodes-before-parent.d.ts | 2 + .../postcss-nesting/dist/lib/valid-atrules.d.ts | 2 + .../postcss-nesting/dist/lib/walk-func.d.ts | 4 + node_modules/postcss-nesting/dist/lib/walk.d.ts | 3 + node_modules/postcss-nesting/package.json | 107 + node_modules/postcss-normalize-charset/LICENSE | 20 + node_modules/postcss-normalize-charset/README.md | 43 + .../postcss-normalize-charset/package.json | 34 + .../postcss-normalize-charset/src/index.js | 56 + .../postcss-normalize-charset/types/index.d.ts | 17 + .../postcss-normalize-display-values/LICENSE-MIT | 22 + .../postcss-normalize-display-values/README.md | 44 + .../postcss-normalize-display-values/package.json | 35 + .../postcss-normalize-display-values/src/index.js | 71 + .../src/lib/map.js | 45 + .../types/index.d.ts | 9 + .../types/lib/map.d.ts | 2 + .../postcss-normalize-positions/LICENSE-MIT | 22 + node_modules/postcss-normalize-positions/README.md | 44 + .../postcss-normalize-positions/package.json | 40 + .../postcss-normalize-positions/src/index.js | 248 + .../postcss-normalize-positions/types/index.d.ts | 9 + .../postcss-normalize-repeat-style/LICENSE-MIT | 22 + .../postcss-normalize-repeat-style/README.md | 44 + .../postcss-normalize-repeat-style/package.json | 35 + .../postcss-normalize-repeat-style/src/index.js | 180 + .../postcss-normalize-repeat-style/src/lib/map.js | 9 + .../types/index.d.ts | 9 + .../types/lib/map.d.ts | 2 + node_modules/postcss-normalize-string/LICENSE-MIT | 22 + node_modules/postcss-normalize-string/README.md | 59 + node_modules/postcss-normalize-string/package.json | 40 + node_modules/postcss-normalize-string/src/index.js | 319 + .../postcss-normalize-string/types/index.d.ts | 38 + .../postcss-normalize-timing-functions/LICENSE-MIT | 22 + .../postcss-normalize-timing-functions/README.md | 44 + .../package.json | 35 + .../src/index.js | 146 + .../types/index.d.ts | 9 + node_modules/postcss-normalize-unicode/LICENSE-MIT | 22 + node_modules/postcss-normalize-unicode/README.md | 46 + .../postcss-normalize-unicode/package.json | 41 + .../postcss-normalize-unicode/src/index.js | 132 + .../postcss-normalize-unicode/types/index.d.ts | 9 + node_modules/postcss-normalize-url/LICENSE-MIT | 22 + node_modules/postcss-normalize-url/README.md | 48 + node_modules/postcss-normalize-url/package.json | 44 + node_modules/postcss-normalize-url/src/index.js | 151 + .../postcss-normalize-url/src/normalize.js | 153 + .../postcss-normalize-url/types/index.d.ts | 9 + .../postcss-normalize-url/types/normalize.d.ts | 6 + .../postcss-normalize-whitespace/LICENSE-MIT | 22 + .../postcss-normalize-whitespace/README.md | 44 + .../postcss-normalize-whitespace/package.json | 40 + .../postcss-normalize-whitespace/src/index.js | 108 + .../postcss-normalize-whitespace/types/index.d.ts | 9 + node_modules/postcss-opacity-percentage/LICENSE.md | 9 + node_modules/postcss-opacity-percentage/README.md | 85 + node_modules/postcss-opacity-percentage/index.js | 27 + .../postcss-opacity-percentage/package.json | 61 + node_modules/postcss-ordered-values/LICENSE-MIT | 22 + node_modules/postcss-ordered-values/README.md | 72 + node_modules/postcss-ordered-values/package.json | 41 + node_modules/postcss-ordered-values/src/index.js | 163 + .../postcss-ordered-values/src/lib/addSpace.js | 8 + .../postcss-ordered-values/src/lib/getValue.js | 36 + .../src/lib/joinGridValue.js | 8 + .../src/lib/mathfunctions.js | 3 + .../src/lib/vendorUnprefixed.js | 10 + .../postcss-ordered-values/src/rules/animation.js | 148 + .../postcss-ordered-values/src/rules/border.js | 60 + .../postcss-ordered-values/src/rules/boxShadow.js | 73 + .../postcss-ordered-values/src/rules/columns.js | 39 + .../postcss-ordered-values/src/rules/flexFlow.js | 36 + .../postcss-ordered-values/src/rules/grid.js | 100 + .../postcss-ordered-values/src/rules/listStyle.js | 44 + .../src/rules/listStyleTypes.json | 102 + .../postcss-ordered-values/src/rules/transition.js | 76 + .../postcss-ordered-values/types/index.d.ts | 9 + .../postcss-ordered-values/types/lib/addSpace.d.ts | 2 + .../postcss-ordered-values/types/lib/getValue.d.ts | 2 + .../types/lib/joinGridValue.d.ts | 2 + .../types/lib/mathfunctions.d.ts | 2 + .../types/lib/vendorUnprefixed.d.ts | 6 + .../types/rules/animation.d.ts | 2 + .../postcss-ordered-values/types/rules/border.d.ts | 2 + .../types/rules/boxShadow.d.ts | 2 + .../types/rules/columns.d.ts | 2 + .../types/rules/flexFlow.d.ts | 2 + .../postcss-ordered-values/types/rules/grid.d.ts | 15 + .../types/rules/listStyle.d.ts | 2 + .../types/rules/transition.d.ts | 2 + .../postcss-overflow-shorthand/CHANGELOG.md | 71 + node_modules/postcss-overflow-shorthand/LICENSE.md | 18 + node_modules/postcss-overflow-shorthand/README.md | 83 + .../postcss-overflow-shorthand/dist/index.cjs | 1 + .../postcss-overflow-shorthand/dist/index.d.ts | 8 + .../postcss-overflow-shorthand/dist/index.mjs | 1 + .../postcss-overflow-shorthand/package.json | 93 + node_modules/postcss-page-break/CHANGELOG.md | 17 + node_modules/postcss-page-break/LICENSE | 20 + node_modules/postcss-page-break/README.md | 83 + node_modules/postcss-page-break/index.js | 35 + node_modules/postcss-page-break/package.json | 44 + node_modules/postcss-place/CHANGELOG.md | 113 + node_modules/postcss-place/LICENSE.md | 18 + node_modules/postcss-place/README.md | 90 + node_modules/postcss-place/dist/index.cjs | 1 + node_modules/postcss-place/dist/index.d.ts | 8 + node_modules/postcss-place/dist/index.mjs | 1 + .../postcss-place/dist/onCSSDeclaration.d.ts | 5 + node_modules/postcss-place/package.json | 96 + node_modules/postcss-preset-env/CHANGELOG.md | 1283 +++ node_modules/postcss-preset-env/LICENSE.md | 18 + node_modules/postcss-preset-env/README.md | 487 + node_modules/postcss-preset-env/dist/index.cjs | 1 + node_modules/postcss-preset-env/dist/index.d.ts | 5 + node_modules/postcss-preset-env/dist/index.mjs | 1 + node_modules/postcss-preset-env/dist/options.d.ts | 92 + .../dist/plugins/plugins-options.d.ts | 164 + .../dist/types/postcss-clamp/plugin-options.d.ts | 10 + .../types/postcss-font-variant/plugin-options.d.ts | 2 + .../postcss-opacity-percentage/plugin-options.d.ts | 5 + .../types/postcss-page-break/plugin-options.d.ts | 2 + .../plugin-options.d.ts | 5 + .../plugin-options.d.ts | 2 + node_modules/postcss-preset-env/package.json | 157 + .../postcss-pseudo-class-any-link/CHANGELOG.md | 183 + .../postcss-pseudo-class-any-link/LICENSE.md | 18 + .../postcss-pseudo-class-any-link/README.md | 115 + .../postcss-pseudo-class-any-link/dist/index.cjs | 1 + .../postcss-pseudo-class-any-link/dist/index.d.ts | 12 + .../postcss-pseudo-class-any-link/dist/index.mjs | 1 + .../dist/replace-any-link.d.ts | 2 + .../postcss-pseudo-class-any-link/package.json | 96 + node_modules/postcss-reduce-initial/LICENSE-MIT | 22 + node_modules/postcss-reduce-initial/README.md | 92 + node_modules/postcss-reduce-initial/package.json | 46 + .../src/data/fromInitial.json | 317 + .../postcss-reduce-initial/src/data/toInitial.json | 36 + node_modules/postcss-reduce-initial/src/index.js | 70 + .../postcss-reduce-initial/types/index.d.ts | 15 + node_modules/postcss-reduce-transforms/LICENSE-MIT | 22 + node_modules/postcss-reduce-transforms/README.md | 47 + .../postcss-reduce-transforms/package.json | 35 + .../postcss-reduce-transforms/src/index.js | 309 + .../postcss-reduce-transforms/types/index.d.ts | 9 + .../postcss-replace-overflow-wrap/CHANGELOG.md | 10 + node_modules/postcss-replace-overflow-wrap/LICENSE | 20 + .../postcss-replace-overflow-wrap/README.md | 56 + .../postcss-replace-overflow-wrap/index.js | 19 + .../postcss-replace-overflow-wrap/package.json | 56 + node_modules/postcss-reporter/LICENSE | 22 + node_modules/postcss-reporter/README.md | 12 + node_modules/postcss-reporter/index.js | 4 + node_modules/postcss-reporter/lib/formatter.js | 95 + node_modules/postcss-reporter/lib/reporter.js | 101 + node_modules/postcss-reporter/lib/util.js | 19 + node_modules/postcss-reporter/package.json | 31 + node_modules/postcss-selector-not/CHANGELOG.md | 73 + node_modules/postcss-selector-not/LICENSE | 20 + node_modules/postcss-selector-not/README.md | 59 + node_modules/postcss-selector-not/dist/index.cjs | 1 + node_modules/postcss-selector-not/dist/index.d.ts | 5 + node_modules/postcss-selector-not/dist/index.mjs | 1 + node_modules/postcss-selector-not/package.json | 85 + node_modules/postcss-selector-parser/API.md | 872 ++ node_modules/postcss-selector-parser/CHANGELOG.md | 525 ++ node_modules/postcss-selector-parser/LICENSE-MIT | 22 + node_modules/postcss-selector-parser/README.md | 49 + node_modules/postcss-selector-parser/dist/index.js | 17 + .../postcss-selector-parser/dist/parser.js | 1012 ++ .../postcss-selector-parser/dist/processor.js | 170 + .../dist/selectors/attribute.js | 448 + .../dist/selectors/className.js | 50 + .../dist/selectors/combinator.js | 21 + .../dist/selectors/comment.js | 21 + .../dist/selectors/constructors.js | 65 + .../dist/selectors/container.js | 308 + .../dist/selectors/guards.js | 58 + .../postcss-selector-parser/dist/selectors/id.js | 25 + .../dist/selectors/index.js | 21 + .../dist/selectors/namespace.js | 80 + .../dist/selectors/nesting.js | 22 + .../postcss-selector-parser/dist/selectors/node.js | 192 + .../dist/selectors/pseudo.js | 26 + .../postcss-selector-parser/dist/selectors/root.js | 44 + .../dist/selectors/selector.js | 21 + .../dist/selectors/string.js | 21 + .../postcss-selector-parser/dist/selectors/tag.js | 21 + .../dist/selectors/types.js | 28 + .../dist/selectors/universal.js | 22 + .../postcss-selector-parser/dist/sortAscending.js | 11 + .../postcss-selector-parser/dist/tokenTypes.js | 70 + .../postcss-selector-parser/dist/tokenize.js | 239 + .../dist/util/ensureObject.js | 17 + .../postcss-selector-parser/dist/util/getProp.js | 18 + .../postcss-selector-parser/dist/util/index.js | 13 + .../dist/util/stripComments.js | 21 + .../postcss-selector-parser/dist/util/unesc.js | 76 + node_modules/postcss-selector-parser/package.json | 79 + .../postcss-selector-parser.d.ts | 555 ++ node_modules/postcss-svgo/LICENSE-MIT | 22 + node_modules/postcss-svgo/README.md | 110 + node_modules/postcss-svgo/package.json | 45 + node_modules/postcss-svgo/src/globals.d.ts | 1 + node_modules/postcss-svgo/src/index.js | 140 + node_modules/postcss-svgo/src/lib/url.js | 18 + node_modules/postcss-svgo/types/index.d.ts | 17 + node_modules/postcss-svgo/types/lib/url.d.ts | 6 + node_modules/postcss-unique-selectors/LICENSE-MIT | 22 + node_modules/postcss-unique-selectors/README.md | 46 + node_modules/postcss-unique-selectors/package.json | 40 + node_modules/postcss-unique-selectors/src/index.js | 59 + .../postcss-unique-selectors/types/index.d.ts | 9 + node_modules/postcss-value-parser/LICENSE | 22 + node_modules/postcss-value-parser/README.md | 263 + node_modules/postcss-value-parser/lib/index.d.ts | 177 + node_modules/postcss-value-parser/lib/index.js | 28 + node_modules/postcss-value-parser/lib/parse.js | 321 + node_modules/postcss-value-parser/lib/stringify.js | 48 + node_modules/postcss-value-parser/lib/unit.js | 120 + node_modules/postcss-value-parser/lib/walk.js | 22 + node_modules/postcss-value-parser/package.json | 58 + node_modules/postcss/LICENSE | 20 + node_modules/postcss/README.md | 28 + node_modules/postcss/lib/at-rule.d.ts | 115 + node_modules/postcss/lib/at-rule.js | 25 + node_modules/postcss/lib/comment.d.ts | 67 + node_modules/postcss/lib/comment.js | 13 + node_modules/postcss/lib/container.d.ts | 452 + node_modules/postcss/lib/container.js | 439 + node_modules/postcss/lib/css-syntax-error.d.ts | 248 + node_modules/postcss/lib/css-syntax-error.js | 100 + node_modules/postcss/lib/declaration.d.ts | 148 + node_modules/postcss/lib/declaration.js | 24 + node_modules/postcss/lib/document.d.ts | 68 + node_modules/postcss/lib/document.js | 33 + node_modules/postcss/lib/fromJSON.d.ts | 9 + node_modules/postcss/lib/fromJSON.js | 54 + node_modules/postcss/lib/input.d.ts | 194 + node_modules/postcss/lib/input.js | 248 + node_modules/postcss/lib/lazy-result.d.ts | 190 + node_modules/postcss/lib/lazy-result.js | 550 ++ node_modules/postcss/lib/list.d.ts | 57 + node_modules/postcss/lib/list.js | 58 + node_modules/postcss/lib/map-generator.js | 359 + node_modules/postcss/lib/no-work-result.d.ts | 46 + node_modules/postcss/lib/no-work-result.js | 135 + node_modules/postcss/lib/node.d.ts | 536 ++ node_modules/postcss/lib/node.js | 381 + node_modules/postcss/lib/parse.d.ts | 9 + node_modules/postcss/lib/parse.js | 42 + node_modules/postcss/lib/parser.js | 610 ++ node_modules/postcss/lib/postcss.d.mts | 72 + node_modules/postcss/lib/postcss.d.ts | 441 + node_modules/postcss/lib/postcss.js | 101 + node_modules/postcss/lib/postcss.mjs | 30 + node_modules/postcss/lib/previous-map.d.ts | 81 + node_modules/postcss/lib/previous-map.js | 142 + node_modules/postcss/lib/processor.d.ts | 115 + node_modules/postcss/lib/processor.js | 67 + node_modules/postcss/lib/result.d.ts | 206 + node_modules/postcss/lib/result.js | 42 + node_modules/postcss/lib/root.d.ts | 86 + node_modules/postcss/lib/root.js | 61 + node_modules/postcss/lib/rule.d.ts | 113 + node_modules/postcss/lib/rule.js | 27 + node_modules/postcss/lib/stringifier.d.ts | 46 + node_modules/postcss/lib/stringifier.js | 353 + node_modules/postcss/lib/stringify.d.ts | 9 + node_modules/postcss/lib/stringify.js | 11 + node_modules/postcss/lib/symbols.js | 5 + node_modules/postcss/lib/terminal-highlight.js | 70 + node_modules/postcss/lib/tokenize.js | 266 + node_modules/postcss/lib/warn-once.js | 13 + node_modules/postcss/lib/warning.d.ts | 147 + node_modules/postcss/lib/warning.js | 37 + node_modules/postcss/package.json | 88 + node_modules/pretty-hrtime/.jshintignore | 1 + node_modules/pretty-hrtime/.npmignore | 10 + node_modules/pretty-hrtime/LICENSE | 20 + node_modules/pretty-hrtime/README.md | 57 + node_modules/pretty-hrtime/index.js | 80 + node_modules/pretty-hrtime/package.json | 25 + node_modules/queue-microtask/LICENSE | 20 + node_modules/queue-microtask/README.md | 90 + node_modules/queue-microtask/index.d.ts | 2 + node_modules/queue-microtask/index.js | 9 + node_modules/queue-microtask/package.json | 55 + node_modules/read-cache/LICENSE | 20 + node_modules/read-cache/README.md | 46 + node_modules/read-cache/index.js | 78 + node_modules/read-cache/package.json | 34 + node_modules/readdirp/LICENSE | 21 + node_modules/readdirp/README.md | 122 + node_modules/readdirp/index.d.ts | 43 + node_modules/readdirp/index.js | 287 + node_modules/readdirp/package.json | 122 + node_modules/require-directory/.jshintrc | 67 + node_modules/require-directory/.npmignore | 1 + node_modules/require-directory/.travis.yml | 3 + node_modules/require-directory/LICENSE | 22 + node_modules/require-directory/README.markdown | 184 + node_modules/require-directory/index.js | 86 + node_modules/require-directory/package.json | 40 + node_modules/reusify/.coveralls.yml | 1 + node_modules/reusify/.travis.yml | 28 + node_modules/reusify/LICENSE | 22 + node_modules/reusify/README.md | 145 + .../reusify/benchmarks/createNoCodeFunction.js | 30 + node_modules/reusify/benchmarks/fib.js | 13 + .../reusify/benchmarks/reuseNoCodeFunction.js | 38 + node_modules/reusify/package.json | 45 + node_modules/reusify/reusify.js | 33 + node_modules/reusify/test.js | 66 + node_modules/run-parallel/LICENSE | 20 + node_modules/run-parallel/README.md | 85 + node_modules/run-parallel/index.js | 51 + node_modules/run-parallel/package.json | 58 + node_modules/slash/index.d.ts | 23 + node_modules/slash/index.js | 9 + node_modules/slash/license | 9 + node_modules/slash/package.json | 39 + node_modules/slash/readme.md | 36 + node_modules/source-map-js/CHANGELOG.md | 320 + node_modules/source-map-js/LICENSE | 28 + node_modules/source-map-js/README.md | 758 ++ node_modules/source-map-js/lib/array-set.js | 121 + node_modules/source-map-js/lib/base64-vlq.js | 140 + node_modules/source-map-js/lib/base64.js | 67 + node_modules/source-map-js/lib/binary-search.js | 111 + node_modules/source-map-js/lib/mapping-list.js | 79 + node_modules/source-map-js/lib/quick-sort.js | 132 + .../source-map-js/lib/source-map-consumer.js | 1184 +++ .../source-map-js/lib/source-map-generator.js | 425 + node_modules/source-map-js/lib/source-node.js | 413 + node_modules/source-map-js/lib/util.js | 594 ++ node_modules/source-map-js/package.json | 71 + node_modules/source-map-js/source-map.d.ts | 115 + node_modules/source-map-js/source-map.js | 8 + node_modules/string-width/index.d.ts | 29 + node_modules/string-width/index.js | 47 + node_modules/string-width/license | 9 + node_modules/string-width/package.json | 56 + node_modules/string-width/readme.md | 50 + node_modules/strip-ansi/index.d.ts | 17 + node_modules/strip-ansi/index.js | 4 + node_modules/strip-ansi/license | 9 + node_modules/strip-ansi/package.json | 54 + node_modules/strip-ansi/readme.md | 46 + node_modules/stylehacks/LICENSE-MIT | 22 + node_modules/stylehacks/README.md | 91 + node_modules/stylehacks/package.json | 46 + node_modules/stylehacks/src/dictionary/browsers.js | 9 + .../stylehacks/src/dictionary/identifiers.js | 7 + node_modules/stylehacks/src/dictionary/postcss.js | 6 + node_modules/stylehacks/src/dictionary/tags.js | 5 + node_modules/stylehacks/src/exists.js | 13 + node_modules/stylehacks/src/index.js | 60 + node_modules/stylehacks/src/isMixin.js | 15 + node_modules/stylehacks/src/plugin.js | 108 + node_modules/stylehacks/src/plugins/bodyEmpty.js | 49 + .../src/plugins/htmlCombinatorCommentBody.js | 54 + .../stylehacks/src/plugins/htmlFirstChild.js | 50 + node_modules/stylehacks/src/plugins/important.js | 25 + node_modules/stylehacks/src/plugins/index.js | 28 + node_modules/stylehacks/src/plugins/leadingStar.js | 55 + .../stylehacks/src/plugins/leadingUnderscore.js | 51 + node_modules/stylehacks/src/plugins/mediaSlash0.js | 26 + .../stylehacks/src/plugins/mediaSlash0Slash9.js | 27 + node_modules/stylehacks/src/plugins/mediaSlash9.js | 27 + node_modules/stylehacks/src/plugins/slash9.js | 26 + node_modules/stylehacks/src/plugins/starHtml.js | 50 + .../stylehacks/src/plugins/trailingSlashComma.js | 36 + .../stylehacks/types/dictionary/browsers.d.ts | 6 + .../stylehacks/types/dictionary/identifiers.d.ts | 4 + .../stylehacks/types/dictionary/postcss.d.ts | 3 + node_modules/stylehacks/types/dictionary/tags.d.ts | 2 + node_modules/stylehacks/types/exists.d.ts | 2 + node_modules/stylehacks/types/index.d.ts | 16 + node_modules/stylehacks/types/isMixin.d.ts | 2 + node_modules/stylehacks/types/plugin.d.ts | 60 + .../stylehacks/types/plugins/bodyEmpty.d.ts | 17 + .../types/plugins/htmlCombinatorCommentBody.d.ts | 16 + .../stylehacks/types/plugins/htmlFirstChild.d.ts | 17 + .../stylehacks/types/plugins/important.d.ts | 11 + node_modules/stylehacks/types/plugins/index.d.ts | 8 + .../stylehacks/types/plugins/leadingStar.d.ts | 11 + .../types/plugins/leadingUnderscore.d.ts | 11 + .../stylehacks/types/plugins/mediaSlash0.d.ts | 11 + .../types/plugins/mediaSlash0Slash9.d.ts | 11 + .../stylehacks/types/plugins/mediaSlash9.d.ts | 11 + node_modules/stylehacks/types/plugins/slash9.d.ts | 11 + .../stylehacks/types/plugins/starHtml.d.ts | 17 + .../types/plugins/trailingSlashComma.d.ts | 11 + node_modules/svgo/LICENSE | 21 + node_modules/svgo/README.md | 267 + node_modules/svgo/bin/svgo | 10 + node_modules/svgo/dist/svgo.browser.js | 1 + node_modules/svgo/lib/builtin.js | 55 + node_modules/svgo/lib/parser.js | 262 + node_modules/svgo/lib/path.js | 347 + node_modules/svgo/lib/stringifier.js | 299 + node_modules/svgo/lib/style.js | 284 + node_modules/svgo/lib/svgo-node.js | 85 + node_modules/svgo/lib/svgo.d.ts | 66 + node_modules/svgo/lib/svgo.js | 94 + node_modules/svgo/lib/svgo/coa.js | 523 ++ node_modules/svgo/lib/svgo/css-select-adapter.d.ts | 2 + node_modules/svgo/lib/svgo/css-select-adapter.js | 120 + node_modules/svgo/lib/svgo/plugins.js | 61 + node_modules/svgo/lib/svgo/tools.js | 138 + node_modules/svgo/lib/types.ts | 174 + node_modules/svgo/lib/xast.js | 86 + node_modules/svgo/package.json | 134 + node_modules/svgo/plugins/_collections.js | 2168 +++++ node_modules/svgo/plugins/_path.js | 816 ++ node_modules/svgo/plugins/_transforms.js | 379 + .../svgo/plugins/addAttributesToSVGElement.js | 82 + .../svgo/plugins/addClassesToSVGElement.js | 82 + node_modules/svgo/plugins/applyTransforms.js | 379 + node_modules/svgo/plugins/cleanupAttrs.js | 49 + .../svgo/plugins/cleanupEnableBackground.js | 73 + node_modules/svgo/plugins/cleanupIds.js | 287 + node_modules/svgo/plugins/cleanupListOfValues.js | 147 + node_modules/svgo/plugins/cleanupNumericValues.js | 106 + node_modules/svgo/plugins/collapseGroups.js | 134 + node_modules/svgo/plugins/convertColors.js | 144 + .../svgo/plugins/convertEllipseToCircle.js | 37 + node_modules/svgo/plugins/convertPathData.js | 1175 +++ node_modules/svgo/plugins/convertShapeToPath.js | 170 + node_modules/svgo/plugins/convertStyleToAttrs.js | 137 + node_modules/svgo/plugins/convertTransform.js | 417 + node_modules/svgo/plugins/inlineStyles.js | 386 + node_modules/svgo/plugins/mergePaths.js | 98 + node_modules/svgo/plugins/mergeStyles.js | 98 + node_modules/svgo/plugins/minifyStyles.js | 139 + node_modules/svgo/plugins/moveElemsAttrsToGroup.js | 128 + node_modules/svgo/plugins/moveGroupAttrsToElems.js | 64 + node_modules/svgo/plugins/plugins-types.ts | 251 + node_modules/svgo/plugins/prefixIds.js | 229 + node_modules/svgo/plugins/preset-default.js | 82 + .../svgo/plugins/removeAttributesBySelector.js | 97 + node_modules/svgo/plugins/removeAttrs.js | 153 + node_modules/svgo/plugins/removeComments.js | 29 + node_modules/svgo/plugins/removeDesc.js | 39 + node_modules/svgo/plugins/removeDimensions.js | 43 + node_modules/svgo/plugins/removeDoctype.js | 40 + node_modules/svgo/plugins/removeEditorsNSData.js | 64 + node_modules/svgo/plugins/removeElementsByAttr.js | 73 + node_modules/svgo/plugins/removeEmptyAttrs.js | 31 + node_modules/svgo/plugins/removeEmptyContainers.js | 56 + node_modules/svgo/plugins/removeEmptyText.js | 51 + node_modules/svgo/plugins/removeHiddenElems.js | 310 + node_modules/svgo/plugins/removeMetadata.js | 27 + .../svgo/plugins/removeNonInheritableGroupAttrs.js | 38 + node_modules/svgo/plugins/removeOffCanvasPaths.js | 136 + node_modules/svgo/plugins/removeRasterImages.js | 31 + node_modules/svgo/plugins/removeScriptElement.js | 27 + node_modules/svgo/plugins/removeStyleElement.js | 27 + node_modules/svgo/plugins/removeTitle.js | 27 + .../svgo/plugins/removeUnknownsAndDefaults.js | 208 + node_modules/svgo/plugins/removeUnusedNS.js | 59 + node_modules/svgo/plugins/removeUselessDefs.js | 65 + .../svgo/plugins/removeUselessStrokeAndFill.js | 138 + node_modules/svgo/plugins/removeViewBox.js | 49 + node_modules/svgo/plugins/removeXMLNS.js | 30 + node_modules/svgo/plugins/removeXMLProcInst.js | 28 + node_modules/svgo/plugins/reusePaths.js | 111 + node_modules/svgo/plugins/sortAttrs.js | 108 + node_modules/svgo/plugins/sortDefsChildren.js | 58 + node_modules/thenby/LICENSE.TXT | 201 + node_modules/thenby/README.md | 159 + node_modules/thenby/package.json | 45 + node_modules/thenby/thenBy.min.js | 2 + node_modules/thenby/thenBy.module.d.ts | 51 + node_modules/thenby/thenBy.module.js | 60 + node_modules/to-regex-range/LICENSE | 21 + node_modules/to-regex-range/README.md | 305 + node_modules/to-regex-range/index.js | 288 + node_modules/to-regex-range/package.json | 88 + node_modules/universalify/LICENSE | 20 + node_modules/universalify/README.md | 76 + node_modules/universalify/index.js | 24 + node_modules/universalify/package.json | 34 + node_modules/update-browserslist-db/LICENSE | 20 + node_modules/update-browserslist-db/README.md | 22 + .../update-browserslist-db/check-npm-version.js | 16 + node_modules/update-browserslist-db/cli.js | 42 + node_modules/update-browserslist-db/index.d.ts | 6 + node_modules/update-browserslist-db/index.js | 322 + node_modules/update-browserslist-db/package.json | 40 + node_modules/update-browserslist-db/utils.js | 22 + node_modules/util-deprecate/History.md | 16 + node_modules/util-deprecate/LICENSE | 24 + node_modules/util-deprecate/README.md | 53 + node_modules/util-deprecate/browser.js | 67 + node_modules/util-deprecate/node.js | 6 + node_modules/util-deprecate/package.json | 27 + node_modules/wrap-ansi/index.js | 216 + node_modules/wrap-ansi/license | 9 + node_modules/wrap-ansi/package.json | 62 + node_modules/wrap-ansi/readme.md | 91 + node_modules/y18n/CHANGELOG.md | 100 + node_modules/y18n/LICENSE | 13 + node_modules/y18n/README.md | 127 + node_modules/y18n/build/index.cjs | 203 + node_modules/y18n/build/lib/cjs.js | 6 + node_modules/y18n/build/lib/index.js | 174 + node_modules/y18n/build/lib/platform-shims/node.js | 19 + node_modules/y18n/index.mjs | 8 + node_modules/y18n/package.json | 70 + node_modules/yaml/LICENSE | 13 + node_modules/yaml/README.md | 147 + .../browser/dist/compose/compose-collection.js | 76 + .../yaml/browser/dist/compose/compose-doc.js | 41 + .../yaml/browser/dist/compose/compose-node.js | 92 + .../yaml/browser/dist/compose/compose-scalar.js | 80 + node_modules/yaml/browser/dist/compose/composer.js | 217 + .../yaml/browser/dist/compose/resolve-block-map.js | 111 + .../browser/dist/compose/resolve-block-scalar.js | 194 + .../yaml/browser/dist/compose/resolve-block-seq.js | 46 + .../yaml/browser/dist/compose/resolve-end.js | 37 + .../dist/compose/resolve-flow-collection.js | 199 + .../browser/dist/compose/resolve-flow-scalar.js | 223 + .../yaml/browser/dist/compose/resolve-props.js | 134 + .../browser/dist/compose/util-contains-newline.js | 34 + .../dist/compose/util-empty-scalar-position.js | 27 + .../browser/dist/compose/util-flow-indent-check.js | 15 + .../yaml/browser/dist/compose/util-map-includes.js | 17 + node_modules/yaml/browser/dist/doc/Document.js | 334 + node_modules/yaml/browser/dist/doc/anchors.js | 72 + node_modules/yaml/browser/dist/doc/applyReviver.js | 54 + node_modules/yaml/browser/dist/doc/createNode.js | 89 + node_modules/yaml/browser/dist/doc/directives.js | 169 + node_modules/yaml/browser/dist/errors.js | 57 + node_modules/yaml/browser/dist/index.js | 17 + node_modules/yaml/browser/dist/log.js | 16 + .../browser/dist/node_modules/tslib/tslib.es6.js | 21 + node_modules/yaml/browser/dist/nodes/Alias.js | 101 + node_modules/yaml/browser/dist/nodes/Collection.js | 148 + node_modules/yaml/browser/dist/nodes/Node.js | 38 + node_modules/yaml/browser/dist/nodes/Pair.js | 36 + node_modules/yaml/browser/dist/nodes/Scalar.js | 24 + node_modules/yaml/browser/dist/nodes/YAMLMap.js | 144 + node_modules/yaml/browser/dist/nodes/YAMLSeq.js | 113 + .../yaml/browser/dist/nodes/addPairToJSMap.js | 104 + node_modules/yaml/browser/dist/nodes/identity.js | 36 + node_modules/yaml/browser/dist/nodes/toJS.js | 37 + node_modules/yaml/browser/dist/parse/cst-scalar.js | 214 + .../yaml/browser/dist/parse/cst-stringify.js | 61 + node_modules/yaml/browser/dist/parse/cst-visit.js | 97 + node_modules/yaml/browser/dist/parse/cst.js | 98 + node_modules/yaml/browser/dist/parse/lexer.js | 701 ++ .../yaml/browser/dist/parse/line-counter.js | 39 + node_modules/yaml/browser/dist/parse/parser.js | 950 ++ node_modules/yaml/browser/dist/public-api.js | 99 + node_modules/yaml/browser/dist/schema/Schema.js | 38 + .../yaml/browser/dist/schema/common/map.js | 17 + .../yaml/browser/dist/schema/common/null.js | 15 + .../yaml/browser/dist/schema/common/seq.js | 17 + .../yaml/browser/dist/schema/common/string.js | 14 + node_modules/yaml/browser/dist/schema/core/bool.js | 19 + .../yaml/browser/dist/schema/core/float.js | 43 + node_modules/yaml/browser/dist/schema/core/int.js | 38 + .../yaml/browser/dist/schema/core/schema.js | 23 + .../yaml/browser/dist/schema/json/schema.js | 62 + node_modules/yaml/browser/dist/schema/tags.js | 83 + .../yaml/browser/dist/schema/yaml-1.1/binary.js | 66 + .../yaml/browser/dist/schema/yaml-1.1/bool.js | 26 + .../yaml/browser/dist/schema/yaml-1.1/float.js | 46 + .../yaml/browser/dist/schema/yaml-1.1/int.js | 71 + .../yaml/browser/dist/schema/yaml-1.1/omap.js | 74 + .../yaml/browser/dist/schema/yaml-1.1/pairs.js | 78 + .../yaml/browser/dist/schema/yaml-1.1/schema.js | 37 + .../yaml/browser/dist/schema/yaml-1.1/set.js | 93 + .../yaml/browser/dist/schema/yaml-1.1/timestamp.js | 101 + .../yaml/browser/dist/stringify/foldFlowLines.js | 135 + .../yaml/browser/dist/stringify/stringify.js | 124 + .../browser/dist/stringify/stringifyCollection.js | 151 + .../browser/dist/stringify/stringifyComment.js | 20 + .../browser/dist/stringify/stringifyDocument.js | 85 + .../yaml/browser/dist/stringify/stringifyNumber.js | 24 + .../yaml/browser/dist/stringify/stringifyPair.js | 150 + .../yaml/browser/dist/stringify/stringifyString.js | 328 + node_modules/yaml/browser/dist/util.js | 11 + node_modules/yaml/browser/dist/visit.js | 233 + node_modules/yaml/browser/index.js | 5 + node_modules/yaml/browser/package.json | 3 + .../yaml/dist/compose/compose-collection.d.ts | 5 + .../yaml/dist/compose/compose-collection.js | 78 + node_modules/yaml/dist/compose/compose-doc.d.ts | 7 + node_modules/yaml/dist/compose/compose-doc.js | 43 + node_modules/yaml/dist/compose/compose-node.d.ts | 27 + node_modules/yaml/dist/compose/compose-node.js | 95 + node_modules/yaml/dist/compose/compose-scalar.d.ts | 5 + node_modules/yaml/dist/compose/compose-scalar.js | 82 + node_modules/yaml/dist/compose/composer.d.ts | 62 + node_modules/yaml/dist/compose/composer.js | 221 + .../yaml/dist/compose/resolve-block-map.d.ts | 7 + .../yaml/dist/compose/resolve-block-map.js | 113 + .../yaml/dist/compose/resolve-block-scalar.d.ts | 10 + .../yaml/dist/compose/resolve-block-scalar.js | 196 + .../yaml/dist/compose/resolve-block-seq.d.ts | 6 + .../yaml/dist/compose/resolve-block-seq.js | 48 + node_modules/yaml/dist/compose/resolve-end.d.ts | 6 + node_modules/yaml/dist/compose/resolve-end.js | 39 + .../yaml/dist/compose/resolve-flow-collection.d.ts | 7 + .../yaml/dist/compose/resolve-flow-collection.js | 201 + .../yaml/dist/compose/resolve-flow-scalar.d.ts | 10 + .../yaml/dist/compose/resolve-flow-scalar.js | 225 + node_modules/yaml/dist/compose/resolve-props.d.ts | 22 + node_modules/yaml/dist/compose/resolve-props.js | 136 + .../yaml/dist/compose/util-contains-newline.d.ts | 2 + .../yaml/dist/compose/util-contains-newline.js | 36 + .../dist/compose/util-empty-scalar-position.d.ts | 2 + .../dist/compose/util-empty-scalar-position.js | 29 + .../yaml/dist/compose/util-flow-indent-check.d.ts | 3 + .../yaml/dist/compose/util-flow-indent-check.js | 17 + .../yaml/dist/compose/util-map-includes.d.ts | 4 + .../yaml/dist/compose/util-map-includes.js | 19 + node_modules/yaml/dist/doc/Document.d.ts | 141 + node_modules/yaml/dist/doc/Document.js | 336 + node_modules/yaml/dist/doc/anchors.d.ts | 24 + node_modules/yaml/dist/doc/anchors.js | 77 + node_modules/yaml/dist/doc/applyReviver.d.ts | 9 + node_modules/yaml/dist/doc/applyReviver.js | 56 + node_modules/yaml/dist/doc/createNode.d.ts | 17 + node_modules/yaml/dist/doc/createNode.js | 91 + node_modules/yaml/dist/doc/directives.d.ts | 49 + node_modules/yaml/dist/doc/directives.js | 171 + node_modules/yaml/dist/errors.d.ts | 21 + node_modules/yaml/dist/errors.js | 62 + node_modules/yaml/dist/index.d.ts | 22 + node_modules/yaml/dist/index.js | 50 + node_modules/yaml/dist/log.d.ts | 3 + node_modules/yaml/dist/log.js | 19 + node_modules/yaml/dist/nodes/Alias.d.ts | 28 + node_modules/yaml/dist/nodes/Alias.js | 103 + node_modules/yaml/dist/nodes/Collection.d.ts | 74 + node_modules/yaml/dist/nodes/Collection.js | 152 + node_modules/yaml/dist/nodes/Node.d.ts | 46 + node_modules/yaml/dist/nodes/Node.js | 40 + node_modules/yaml/dist/nodes/Pair.d.ts | 21 + node_modules/yaml/dist/nodes/Pair.js | 39 + node_modules/yaml/dist/nodes/Scalar.d.ts | 42 + node_modules/yaml/dist/nodes/Scalar.js | 27 + node_modules/yaml/dist/nodes/YAMLMap.d.ts | 53 + node_modules/yaml/dist/nodes/YAMLMap.js | 147 + node_modules/yaml/dist/nodes/YAMLSeq.d.ts | 60 + node_modules/yaml/dist/nodes/YAMLSeq.js | 115 + node_modules/yaml/dist/nodes/addPairToJSMap.d.ts | 4 + node_modules/yaml/dist/nodes/addPairToJSMap.js | 106 + node_modules/yaml/dist/nodes/identity.d.ts | 23 + node_modules/yaml/dist/nodes/identity.js | 53 + node_modules/yaml/dist/nodes/toJS.d.ts | 27 + node_modules/yaml/dist/nodes/toJS.js | 39 + node_modules/yaml/dist/options.d.ts | 338 + node_modules/yaml/dist/parse/cst-scalar.d.ts | 64 + node_modules/yaml/dist/parse/cst-scalar.js | 218 + node_modules/yaml/dist/parse/cst-stringify.d.ts | 8 + node_modules/yaml/dist/parse/cst-stringify.js | 63 + node_modules/yaml/dist/parse/cst-visit.d.ts | 39 + node_modules/yaml/dist/parse/cst-visit.js | 99 + node_modules/yaml/dist/parse/cst.d.ts | 106 + node_modules/yaml/dist/parse/cst.js | 112 + node_modules/yaml/dist/parse/lexer.d.ts | 87 + node_modules/yaml/dist/parse/lexer.js | 703 ++ node_modules/yaml/dist/parse/line-counter.d.ts | 22 + node_modules/yaml/dist/parse/line-counter.js | 41 + node_modules/yaml/dist/parse/parser.d.ts | 84 + node_modules/yaml/dist/parse/parser.js | 954 ++ node_modules/yaml/dist/public-api.d.ts | 43 + node_modules/yaml/dist/public-api.js | 104 + node_modules/yaml/dist/schema/Schema.d.ts | 18 + node_modules/yaml/dist/schema/Schema.js | 40 + node_modules/yaml/dist/schema/common/map.d.ts | 2 + node_modules/yaml/dist/schema/common/map.js | 19 + node_modules/yaml/dist/schema/common/null.d.ts | 4 + node_modules/yaml/dist/schema/common/null.js | 17 + node_modules/yaml/dist/schema/common/seq.d.ts | 2 + node_modules/yaml/dist/schema/common/seq.js | 19 + node_modules/yaml/dist/schema/common/string.d.ts | 2 + node_modules/yaml/dist/schema/common/string.js | 16 + node_modules/yaml/dist/schema/core/bool.d.ts | 4 + node_modules/yaml/dist/schema/core/bool.js | 21 + node_modules/yaml/dist/schema/core/float.d.ts | 4 + node_modules/yaml/dist/schema/core/float.js | 47 + node_modules/yaml/dist/schema/core/int.d.ts | 4 + node_modules/yaml/dist/schema/core/int.js | 42 + node_modules/yaml/dist/schema/core/schema.d.ts | 1 + node_modules/yaml/dist/schema/core/schema.js | 25 + node_modules/yaml/dist/schema/json-schema.d.ts | 69 + node_modules/yaml/dist/schema/json/schema.d.ts | 2 + node_modules/yaml/dist/schema/json/schema.js | 64 + node_modules/yaml/dist/schema/tags.d.ts | 40 + node_modules/yaml/dist/schema/tags.js | 86 + node_modules/yaml/dist/schema/types.d.ts | 90 + node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts | 2 + node_modules/yaml/dist/schema/yaml-1.1/binary.js | 68 + node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts | 7 + node_modules/yaml/dist/schema/yaml-1.1/bool.js | 29 + node_modules/yaml/dist/schema/yaml-1.1/float.d.ts | 4 + node_modules/yaml/dist/schema/yaml-1.1/float.js | 50 + node_modules/yaml/dist/schema/yaml-1.1/int.d.ts | 5 + node_modules/yaml/dist/schema/yaml-1.1/int.js | 76 + node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts | 28 + node_modules/yaml/dist/schema/yaml-1.1/omap.js | 77 + node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts | 10 + node_modules/yaml/dist/schema/yaml-1.1/pairs.js | 82 + node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts | 1 + node_modules/yaml/dist/schema/yaml-1.1/schema.js | 39 + node_modules/yaml/dist/schema/yaml-1.1/set.d.ts | 28 + node_modules/yaml/dist/schema/yaml-1.1/set.js | 96 + .../yaml/dist/schema/yaml-1.1/timestamp.d.ts | 6 + .../yaml/dist/schema/yaml-1.1/timestamp.js | 105 + .../yaml/dist/stringify/foldFlowLines.d.ts | 34 + node_modules/yaml/dist/stringify/foldFlowLines.js | 140 + node_modules/yaml/dist/stringify/stringify.d.ts | 21 + node_modules/yaml/dist/stringify/stringify.js | 127 + .../yaml/dist/stringify/stringifyCollection.d.ts | 17 + .../yaml/dist/stringify/stringifyCollection.js | 153 + .../yaml/dist/stringify/stringifyComment.d.ts | 10 + .../yaml/dist/stringify/stringifyComment.js | 24 + .../yaml/dist/stringify/stringifyDocument.d.ts | 4 + .../yaml/dist/stringify/stringifyDocument.js | 87 + .../yaml/dist/stringify/stringifyNumber.d.ts | 2 + .../yaml/dist/stringify/stringifyNumber.js | 26 + .../yaml/dist/stringify/stringifyPair.d.ts | 3 + node_modules/yaml/dist/stringify/stringifyPair.js | 152 + .../yaml/dist/stringify/stringifyString.d.ts | 9 + .../yaml/dist/stringify/stringifyString.js | 330 + node_modules/yaml/dist/test-events.d.ts | 4 + node_modules/yaml/dist/test-events.js | 134 + node_modules/yaml/dist/util.d.ts | 12 + node_modules/yaml/dist/util.js | 28 + node_modules/yaml/dist/visit.d.ts | 102 + node_modules/yaml/dist/visit.js | 236 + node_modules/yaml/package.json | 95 + node_modules/yaml/util.js | 2 + node_modules/yargs-parser/CHANGELOG.md | 308 + node_modules/yargs-parser/LICENSE.txt | 14 + node_modules/yargs-parser/README.md | 518 ++ node_modules/yargs-parser/browser.js | 29 + node_modules/yargs-parser/build/index.cjs | 1050 +++ node_modules/yargs-parser/build/lib/index.js | 62 + .../yargs-parser/build/lib/string-utils.js | 65 + .../yargs-parser/build/lib/tokenize-arg-string.js | 40 + .../yargs-parser/build/lib/yargs-parser-types.js | 12 + .../yargs-parser/build/lib/yargs-parser.js | 1045 +++ node_modules/yargs-parser/package.json | 92 + node_modules/yargs/LICENSE | 21 + node_modules/yargs/README.md | 204 + node_modules/yargs/browser.d.ts | 5 + node_modules/yargs/browser.mjs | 7 + node_modules/yargs/build/index.cjs | 1 + node_modules/yargs/build/lib/argsert.js | 62 + node_modules/yargs/build/lib/command.js | 449 + .../yargs/build/lib/completion-templates.js | 48 + node_modules/yargs/build/lib/completion.js | 243 + node_modules/yargs/build/lib/middleware.js | 88 + node_modules/yargs/build/lib/parse-command.js | 32 + .../yargs/build/lib/typings/common-types.js | 9 + .../yargs/build/lib/typings/yargs-parser-types.js | 1 + node_modules/yargs/build/lib/usage.js | 584 ++ .../yargs/build/lib/utils/apply-extends.js | 59 + node_modules/yargs/build/lib/utils/is-promise.js | 5 + node_modules/yargs/build/lib/utils/levenshtein.js | 34 + .../yargs/build/lib/utils/maybe-async-result.js | 17 + node_modules/yargs/build/lib/utils/obj-filter.js | 10 + node_modules/yargs/build/lib/utils/process-argv.js | 17 + node_modules/yargs/build/lib/utils/set-blocking.js | 12 + node_modules/yargs/build/lib/utils/which-module.js | 10 + node_modules/yargs/build/lib/validation.js | 305 + node_modules/yargs/build/lib/yargs-factory.js | 1512 +++ node_modules/yargs/build/lib/yerror.js | 9 + node_modules/yargs/helpers/helpers.mjs | 10 + node_modules/yargs/helpers/index.js | 14 + node_modules/yargs/helpers/package.json | 3 + node_modules/yargs/index.cjs | 53 + node_modules/yargs/index.mjs | 8 + node_modules/yargs/lib/platform-shims/browser.mjs | 95 + node_modules/yargs/lib/platform-shims/esm.mjs | 73 + node_modules/yargs/locales/be.json | 46 + node_modules/yargs/locales/cs.json | 51 + node_modules/yargs/locales/de.json | 46 + node_modules/yargs/locales/en.json | 55 + node_modules/yargs/locales/es.json | 46 + node_modules/yargs/locales/fi.json | 49 + node_modules/yargs/locales/fr.json | 53 + node_modules/yargs/locales/hi.json | 49 + node_modules/yargs/locales/hu.json | 46 + node_modules/yargs/locales/id.json | 50 + node_modules/yargs/locales/it.json | 46 + node_modules/yargs/locales/ja.json | 51 + node_modules/yargs/locales/ko.json | 49 + node_modules/yargs/locales/nb.json | 44 + node_modules/yargs/locales/nl.json | 49 + node_modules/yargs/locales/nn.json | 44 + node_modules/yargs/locales/pirate.json | 13 + node_modules/yargs/locales/pl.json | 49 + node_modules/yargs/locales/pt.json | 45 + node_modules/yargs/locales/pt_BR.json | 48 + node_modules/yargs/locales/ru.json | 51 + node_modules/yargs/locales/th.json | 46 + node_modules/yargs/locales/tr.json | 48 + node_modules/yargs/locales/uk_UA.json | 51 + node_modules/yargs/locales/uz.json | 52 + node_modules/yargs/locales/zh_CN.json | 48 + node_modules/yargs/locales/zh_TW.json | 51 + node_modules/yargs/package.json | 123 + node_modules/yargs/yargs | 9 + node_modules/yargs/yargs.mjs | 10 + 4185 files changed, 298942 insertions(+) create mode 120000 node_modules/.bin/autoprefixer create mode 120000 node_modules/.bin/browserslist create mode 120000 node_modules/.bin/cssesc create mode 120000 node_modules/.bin/nanoid create mode 120000 node_modules/.bin/postcss create mode 120000 node_modules/.bin/svgo create mode 120000 node_modules/.bin/update-browserslist-db create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@csstools/cascade-layer-name-parser/CHANGELOG.md create mode 100644 node_modules/@csstools/cascade-layer-name-parser/LICENSE.md create mode 100644 node_modules/@csstools/cascade-layer-name-parser/README.md create mode 100644 node_modules/@csstools/cascade-layer-name-parser/dist/index.cjs create mode 100644 node_modules/@csstools/cascade-layer-name-parser/dist/index.d.ts create mode 100644 node_modules/@csstools/cascade-layer-name-parser/dist/index.mjs create mode 100644 node_modules/@csstools/cascade-layer-name-parser/dist/nodes/layer-name.d.ts create mode 100644 node_modules/@csstools/cascade-layer-name-parser/dist/parser/parse.d.ts create mode 100644 node_modules/@csstools/cascade-layer-name-parser/dist/util/model.d.ts create mode 100644 node_modules/@csstools/cascade-layer-name-parser/package.json create mode 100644 node_modules/@csstools/color-helpers/CHANGELOG.md create mode 100644 node_modules/@csstools/color-helpers/LICENSE.md create mode 100644 node_modules/@csstools/color-helpers/README.md create mode 100644 node_modules/@csstools/color-helpers/dist/calculations/binary-search-gamut.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/calculations/contrast.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/calculations/delta-EOK.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/calculations/index.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/calculations/map-gamut.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/calculations/multiply-matrices.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/constants.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/d50-to-d65.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/d65-to-d50.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/gam-2020.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/gam-a98rgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/gam-p3.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/gam-pro-photo.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/gam-srgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/hsl-to-srgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/hue-to-rgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/hwb-to-srgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/index.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lab-to-lch.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lab-to-xyz.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lch-to-lab.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-2020-to-xyz.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-2020.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-a98rgb-to-xyz.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-a98rgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-p3-to-xyz.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-p3.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-pro-photo-to-xyz.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-pro-photo.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-srgb-to-xyz.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/lin-srgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/naive-cmyk-to-srgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/oklab-to-oklch.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/oklab-to-xyz.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/oklch-to-oklab.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/srgb-to-hsl.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/srgb-to-hwb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/srgb-to-luminance.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lab.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-2020.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-a98rgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-p3.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-pro-photo.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-srgb.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz-to-oklab.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz-to-uv.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz-to-xy.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/conversions/xyz/index.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/index.cjs create mode 100644 node_modules/@csstools/color-helpers/dist/index.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/index.mjs create mode 100644 node_modules/@csstools/color-helpers/dist/named-colors/index.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/types/color.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/utils/clip.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/utils/in-gamut.d.ts create mode 100644 node_modules/@csstools/color-helpers/dist/utils/index.d.ts create mode 100644 node_modules/@csstools/color-helpers/package.json create mode 100644 node_modules/@csstools/css-calc/CHANGELOG.md create mode 100644 node_modules/@csstools/css-calc/LICENSE.md create mode 100644 node_modules/@csstools/css-calc/README.md create mode 100644 node_modules/@csstools/css-calc/dist/calculation.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/abs.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/acos.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/asin.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/atan.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/atan2.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/calc.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/clamp.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/cos.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/exp.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/globals-and-constants.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/hypot.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/log.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/max.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/min.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/mod.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/pow.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/rem.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/result-to-calculation.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/round.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/sign.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/sin.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/sqrt.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/functions/tan.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/index.cjs create mode 100644 node_modules/@csstools/css-calc/dist/index.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/index.mjs create mode 100644 node_modules/@csstools/css-calc/dist/operation/addition.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/operation/division.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/operation/multiplication.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/operation/operation.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/operation/subtraction.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/operation/unary.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/options.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/canonical.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/cm.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/deg.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/grad.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/hz.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/in.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/index.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/khz.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/mm.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/ms.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/pc.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/pt.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/px.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/q.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/rad.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/s.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/unit-conversions/turn.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/util/canonical-unit.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/util/globals.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/util/infinity.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/util/kind-of-number.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/util/minus-zero.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/util/nan.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/util/patch-result.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/util/precision.d.ts create mode 100644 node_modules/@csstools/css-calc/dist/util/to-lower-case-a-z.d.ts create mode 100644 node_modules/@csstools/css-calc/package.json create mode 100644 node_modules/@csstools/css-color-parser/CHANGELOG.md create mode 100644 node_modules/@csstools/css-color-parser/LICENSE.md create mode 100644 node_modules/@csstools/css-color-parser/README.md create mode 100644 node_modules/@csstools/css-color-parser/dist/color-data.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/color-notation.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/color-parser.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/color-keyword.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/color-mix.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/color-normalize-channel-values.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/color.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/hex.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/hsl-normalize-channel-values.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/hsl.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/hue-normalize-channel-value.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/hwb-normalize-channel-values.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/hwb.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/lab-normalize-channel-values.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/lab.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/lch-normalize-channel-values.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/lch.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/named-color.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/normalize-channel-values.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/normalize.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/oklab-normalize-channel-values.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/oklab.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/oklch-normalize-channel-values.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/oklch.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/rgb-normalize-channel-values.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/rgb.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/three-channel-legacy-syntax.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/functions/three-channel-space-separated.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/gamut-mapping/p3.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/gamut-mapping/srgb.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/index.cjs create mode 100644 node_modules/@csstools/css-color-parser/dist/index.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/index.mjs create mode 100644 node_modules/@csstools/css-color-parser/dist/serialize/oklch.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/serialize/p3.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/serialize/rgb.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/serialize/to-precision.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/serialize/with-alpha.d.ts create mode 100644 node_modules/@csstools/css-color-parser/dist/util/to-lower-case-a-z.d.ts create mode 100644 node_modules/@csstools/css-color-parser/package.json create mode 100644 node_modules/@csstools/css-parser-algorithms/CHANGELOG.md create mode 100644 node_modules/@csstools/css-parser-algorithms/LICENSE.md create mode 100644 node_modules/@csstools/css-parser-algorithms/README.md create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/consume/consume-component-block-function.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/index.cjs create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/index.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/index.mjs create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/interfaces/context.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/parse/parse-comma-separated-list-of-component-values.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/parse/parse-component-value.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/parse/parse-list-of-component-values.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/util/component-value-type.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/util/node-ancestry.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/util/replace-component-values.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/util/source-indices.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/util/stringify.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/dist/util/type-predicates.d.ts create mode 100644 node_modules/@csstools/css-parser-algorithms/package.json create mode 100644 node_modules/@csstools/css-tokenizer/CHANGELOG.md create mode 100644 node_modules/@csstools/css-tokenizer/LICENSE.md create mode 100644 node_modules/@csstools/css-tokenizer/README.md create mode 100644 node_modules/@csstools/css-tokenizer/dist/checks/four-code-points-would-start-cdo.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/checks/matches-url-ident.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-cdc.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-ident-sequence.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-number.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-unicode-range.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/checks/two-code-points-are-valid-escape.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/checks/two-code-points-start-comment.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/code-points/code-points.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/code-points/ranges.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/bad-url.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/comment.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/escaped-code-point.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/hash-token.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/ident-like-token.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/ident-sequence.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/number.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/numeric-token.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/string-token.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/unicode-range-token.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/url-token.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/consume/whitespace-token.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/index.cjs create mode 100644 node_modules/@csstools/css-tokenizer/dist/index.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/index.mjs create mode 100644 node_modules/@csstools/css-tokenizer/dist/interfaces/code-point-reader.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/interfaces/context.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/interfaces/error.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/interfaces/token.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/reader.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/stringify.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/tokenizer.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/util/clone-tokens.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/dist/util/mutations.d.ts create mode 100644 node_modules/@csstools/css-tokenizer/package.json create mode 100644 node_modules/@csstools/media-query-list-parser/CHANGELOG.md create mode 100644 node_modules/@csstools/media-query-list-parser/LICENSE.md create mode 100644 node_modules/@csstools/media-query-list-parser/README.md create mode 100644 node_modules/@csstools/media-query-list-parser/dist/index.cjs create mode 100644 node_modules/@csstools/media-query-list-parser/dist/index.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/index.mjs create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/custom-media.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/general-enclosed.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-and.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-condition-list.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-condition.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-boolean.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-comparison.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-name.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-plain.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-range.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-value.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-in-parens.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-not.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-or.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-query-modifier.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-query.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/nodes/media-type.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/parser/parse-custom-media.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/parser/parse-media-query.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/parser/parse.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/util/clone-media-query.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/util/component-value-is.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/util/node-type.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/util/to-lower-case-a-z.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/dist/util/type-predicates.d.ts create mode 100644 node_modules/@csstools/media-query-list-parser/package.json create mode 100644 node_modules/@csstools/postcss-cascade-layers/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-cascade-layers/LICENSE.md create mode 100644 node_modules/@csstools/postcss-cascade-layers/README.md create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/adjust-selector-specificity.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/clean-blocks.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/constants.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/desugar-and-parse-layer-names.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/desugar-nested-layers.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/get-conditional-atrule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/get-layer-atrule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/is-processable-layer-rule.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/model.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/options.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/record-layer-order.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/some-in-tree.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/sort-root-nodes.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/dist/split-important-styles.d.ts create mode 100644 node_modules/@csstools/postcss-cascade-layers/package.json create mode 100644 node_modules/@csstools/postcss-color-function/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-color-function/LICENSE.md create mode 100644 node_modules/@csstools/postcss-color-function/README.md create mode 100644 node_modules/@csstools/postcss-color-function/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-color-function/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-color-function/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-color-function/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-color-function/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-color-function/package.json create mode 100644 node_modules/@csstools/postcss-color-mix-function/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-color-mix-function/LICENSE.md create mode 100644 node_modules/@csstools/postcss-color-mix-function/README.md create mode 100644 node_modules/@csstools/postcss-color-mix-function/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-color-mix-function/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-color-mix-function/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-color-mix-function/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-color-mix-function/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-color-mix-function/package.json create mode 100644 node_modules/@csstools/postcss-exponential-functions/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-exponential-functions/LICENSE.md create mode 100644 node_modules/@csstools/postcss-exponential-functions/README.md create mode 100644 node_modules/@csstools/postcss-exponential-functions/dist/calc.d.ts create mode 100644 node_modules/@csstools/postcss-exponential-functions/dist/checks.d.ts create mode 100644 node_modules/@csstools/postcss-exponential-functions/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-exponential-functions/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-exponential-functions/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-exponential-functions/package.json create mode 100644 node_modules/@csstools/postcss-font-format-keywords/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-font-format-keywords/LICENSE.md create mode 100644 node_modules/@csstools/postcss-font-format-keywords/README.md create mode 100644 node_modules/@csstools/postcss-font-format-keywords/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-font-format-keywords/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-font-format-keywords/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-font-format-keywords/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-font-format-keywords/package.json create mode 100644 node_modules/@csstools/postcss-gamut-mapping/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-gamut-mapping/LICENSE.md create mode 100644 node_modules/@csstools/postcss-gamut-mapping/README.md create mode 100644 node_modules/@csstools/postcss-gamut-mapping/dist/has-conditional-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-gamut-mapping/dist/has-override-decl.d.ts create mode 100644 node_modules/@csstools/postcss-gamut-mapping/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-gamut-mapping/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-gamut-mapping/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-gamut-mapping/package.json create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/LICENSE.md create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/README.md create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/dist/color-stop-list.d.ts create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/dist/is-gradient.d.ts create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/dist/modify-gradient-component-values.d.ts create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/dist/parse-color-stops.d.ts create mode 100644 node_modules/@csstools/postcss-gradients-interpolation-method/package.json create mode 100644 node_modules/@csstools/postcss-hwb-function/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-hwb-function/INSTALL.md create mode 100644 node_modules/@csstools/postcss-hwb-function/LICENSE.md create mode 100644 node_modules/@csstools/postcss-hwb-function/README.md create mode 100644 node_modules/@csstools/postcss-hwb-function/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-hwb-function/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-hwb-function/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-hwb-function/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-hwb-function/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-hwb-function/package.json create mode 100644 node_modules/@csstools/postcss-ic-unit/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-ic-unit/LICENSE.md create mode 100644 node_modules/@csstools/postcss-ic-unit/README.md create mode 100644 node_modules/@csstools/postcss-ic-unit/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-ic-unit/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-ic-unit/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-ic-unit/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-ic-unit/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-ic-unit/package.json create mode 100644 node_modules/@csstools/postcss-initial/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-initial/LICENSE.md create mode 100644 node_modules/@csstools/postcss-initial/README.md create mode 100644 node_modules/@csstools/postcss-initial/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-initial/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-initial/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-initial/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-initial/dist/properties.d.ts create mode 100644 node_modules/@csstools/postcss-initial/package.json create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/LICENSE.md create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/README.md create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/always-valid.d.ts create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex.d.ts create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/child-adjacent-child.d.ts create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/is-in-compound.d.ts create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/is-pseudo-in-first-compound.d.ts create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/compound-selector-order.d.ts create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/split-selectors.d.ts create mode 100644 node_modules/@csstools/postcss-is-pseudo-class/package.json create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/LICENSE.md create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/README.md create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/dist/lib/clone-declaration.d.ts create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/dist/lib/types.d.ts create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/dist/utils/direction-flow-to-axes.d.ts create mode 100644 node_modules/@csstools/postcss-logical-float-and-clear/package.json create mode 100644 node_modules/@csstools/postcss-logical-resize/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-logical-resize/LICENSE.md create mode 100644 node_modules/@csstools/postcss-logical-resize/README.md create mode 100644 node_modules/@csstools/postcss-logical-resize/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-logical-resize/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-logical-resize/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-logical-resize/dist/lib/clone-declaration.d.ts create mode 100644 node_modules/@csstools/postcss-logical-resize/dist/lib/transform-resize.d.ts create mode 100644 node_modules/@csstools/postcss-logical-resize/dist/lib/types.d.ts create mode 100644 node_modules/@csstools/postcss-logical-resize/dist/utils/direction-flow-to-axes.d.ts create mode 100644 node_modules/@csstools/postcss-logical-resize/package.json create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/LICENSE.md create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/README.md create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/dist/has-feature.d.ts create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/dist/lib/types.d.ts create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/dist/transform.d.ts create mode 100644 node_modules/@csstools/postcss-logical-viewport-units/package.json create mode 100644 node_modules/@csstools/postcss-media-minmax/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-media-minmax/LICENSE.md create mode 100644 node_modules/@csstools/postcss-media-minmax/README.md create mode 100644 node_modules/@csstools/postcss-media-minmax/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-media-minmax/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-media-minmax/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-media-minmax/dist/to-lower-case-a-z.d.ts create mode 100644 node_modules/@csstools/postcss-media-minmax/dist/transform-single-pair.d.ts create mode 100644 node_modules/@csstools/postcss-media-minmax/dist/transform.d.ts create mode 100644 node_modules/@csstools/postcss-media-minmax/package.json create mode 100644 node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/LICENSE.md create mode 100644 node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md create mode 100644 node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/transform-media-feature-value.d.ts create mode 100644 node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/transform-media-query-list.d.ts create mode 100644 node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/package.json create mode 100644 node_modules/@csstools/postcss-nested-calc/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-nested-calc/LICENSE.md create mode 100644 node_modules/@csstools/postcss-nested-calc/README.md create mode 100644 node_modules/@csstools/postcss-nested-calc/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-nested-calc/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-nested-calc/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-nested-calc/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-nested-calc/dist/occurrences.d.ts create mode 100644 node_modules/@csstools/postcss-nested-calc/package.json create mode 100644 node_modules/@csstools/postcss-normalize-display-values/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-normalize-display-values/LICENSE.md create mode 100644 node_modules/@csstools/postcss-normalize-display-values/README.md create mode 100644 node_modules/@csstools/postcss-normalize-display-values/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-normalize-display-values/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-normalize-display-values/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-normalize-display-values/dist/mappings.d.ts create mode 100644 node_modules/@csstools/postcss-normalize-display-values/package.json create mode 100644 node_modules/@csstools/postcss-oklab-function/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-oklab-function/LICENSE.md create mode 100644 node_modules/@csstools/postcss-oklab-function/README.md create mode 100644 node_modules/@csstools/postcss-oklab-function/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-oklab-function/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-oklab-function/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-oklab-function/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-oklab-function/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-oklab-function/package.json create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/LICENSE.md create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/README.md create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/dist/conditions-from-values.d.ts create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/dist/custom/double-position-gradients.d.ts create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/dist/match.d.ts create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/dist/matchers.d.ts create mode 100644 node_modules/@csstools/postcss-progressive-custom-properties/package.json create mode 100644 node_modules/@csstools/postcss-relative-color-syntax/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-relative-color-syntax/LICENSE.md create mode 100644 node_modules/@csstools/postcss-relative-color-syntax/README.md create mode 100644 node_modules/@csstools/postcss-relative-color-syntax/dist/has-fallback-decl.d.ts create mode 100644 node_modules/@csstools/postcss-relative-color-syntax/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/@csstools/postcss-relative-color-syntax/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-relative-color-syntax/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-relative-color-syntax/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-relative-color-syntax/package.json create mode 100644 node_modules/@csstools/postcss-scope-pseudo-class/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-scope-pseudo-class/LICENSE.md create mode 100644 node_modules/@csstools/postcss-scope-pseudo-class/README.md create mode 100644 node_modules/@csstools/postcss-scope-pseudo-class/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-scope-pseudo-class/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-scope-pseudo-class/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-scope-pseudo-class/package.json create mode 100644 node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-stepped-value-functions/LICENSE.md create mode 100644 node_modules/@csstools/postcss-stepped-value-functions/README.md create mode 100644 node_modules/@csstools/postcss-stepped-value-functions/dist/calc.d.ts create mode 100644 node_modules/@csstools/postcss-stepped-value-functions/dist/checks.d.ts create mode 100644 node_modules/@csstools/postcss-stepped-value-functions/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-stepped-value-functions/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-stepped-value-functions/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-stepped-value-functions/package.json create mode 100644 node_modules/@csstools/postcss-text-decoration-shorthand/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-text-decoration-shorthand/LICENSE.md create mode 100644 node_modules/@csstools/postcss-text-decoration-shorthand/README.md create mode 100644 node_modules/@csstools/postcss-text-decoration-shorthand/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-text-decoration-shorthand/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-text-decoration-shorthand/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-text-decoration-shorthand/package.json create mode 100644 node_modules/@csstools/postcss-trigonometric-functions/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-trigonometric-functions/LICENSE.md create mode 100644 node_modules/@csstools/postcss-trigonometric-functions/README.md create mode 100644 node_modules/@csstools/postcss-trigonometric-functions/dist/calc.d.ts create mode 100644 node_modules/@csstools/postcss-trigonometric-functions/dist/checks.d.ts create mode 100644 node_modules/@csstools/postcss-trigonometric-functions/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-trigonometric-functions/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-trigonometric-functions/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-trigonometric-functions/package.json create mode 100644 node_modules/@csstools/postcss-unset-value/CHANGELOG.md create mode 100644 node_modules/@csstools/postcss-unset-value/LICENSE.md create mode 100644 node_modules/@csstools/postcss-unset-value/README.md create mode 100644 node_modules/@csstools/postcss-unset-value/dist/index.cjs create mode 100644 node_modules/@csstools/postcss-unset-value/dist/index.d.ts create mode 100644 node_modules/@csstools/postcss-unset-value/dist/index.mjs create mode 100644 node_modules/@csstools/postcss-unset-value/dist/property-def.d.ts create mode 100644 node_modules/@csstools/postcss-unset-value/package.json create mode 100644 node_modules/@csstools/selector-specificity/CHANGELOG.md create mode 100644 node_modules/@csstools/selector-specificity/LICENSE.md create mode 100644 node_modules/@csstools/selector-specificity/README.md create mode 100644 node_modules/@csstools/selector-specificity/dist/index.cjs create mode 100644 node_modules/@csstools/selector-specificity/dist/index.d.ts create mode 100644 node_modules/@csstools/selector-specificity/dist/index.mjs create mode 100644 node_modules/@csstools/selector-specificity/dist/to-lower-case-a-z.d.ts create mode 100644 node_modules/@csstools/selector-specificity/package.json create mode 100644 node_modules/@nodelib/fs.scandir/LICENSE create mode 100644 node_modules/@nodelib/fs.scandir/README.md create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.js create mode 100644 node_modules/@nodelib/fs.scandir/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.js create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.js create mode 100644 node_modules/@nodelib/fs.scandir/package.json create mode 100644 node_modules/@nodelib/fs.stat/LICENSE create mode 100644 node_modules/@nodelib/fs.stat/README.md create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.stat/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/index.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.stat/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/settings.js create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.js create mode 100644 node_modules/@nodelib/fs.stat/package.json create mode 100644 node_modules/@nodelib/fs.walk/LICENSE create mode 100644 node_modules/@nodelib/fs.walk/README.md create mode 100644 node_modules/@nodelib/fs.walk/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/settings.js create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.js create mode 100644 node_modules/@nodelib/fs.walk/package.json create mode 100644 node_modules/@trysound/sax/LICENSE create mode 100644 node_modules/@trysound/sax/README.md create mode 100644 node_modules/@trysound/sax/lib/sax.js create mode 100644 node_modules/@trysound/sax/package.json create mode 100644 node_modules/ansi-regex/index.d.ts create mode 100644 node_modules/ansi-regex/index.js create mode 100644 node_modules/ansi-regex/license create mode 100644 node_modules/ansi-regex/package.json create mode 100644 node_modules/ansi-regex/readme.md create mode 100644 node_modules/ansi-styles/index.d.ts create mode 100644 node_modules/ansi-styles/index.js create mode 100644 node_modules/ansi-styles/license create mode 100644 node_modules/ansi-styles/package.json create mode 100644 node_modules/ansi-styles/readme.md create mode 100644 node_modules/anymatch/LICENSE create mode 100644 node_modules/anymatch/README.md create mode 100644 node_modules/anymatch/index.d.ts create mode 100644 node_modules/anymatch/index.js create mode 100644 node_modules/anymatch/package.json create mode 100644 node_modules/autoprefixer/LICENSE create mode 100644 node_modules/autoprefixer/README.md create mode 100755 node_modules/autoprefixer/bin/autoprefixer create mode 100644 node_modules/autoprefixer/data/prefixes.js create mode 100644 node_modules/autoprefixer/lib/at-rule.js create mode 100644 node_modules/autoprefixer/lib/autoprefixer.d.ts create mode 100644 node_modules/autoprefixer/lib/autoprefixer.js create mode 100644 node_modules/autoprefixer/lib/brackets.js create mode 100644 node_modules/autoprefixer/lib/browsers.js create mode 100644 node_modules/autoprefixer/lib/declaration.js create mode 100644 node_modules/autoprefixer/lib/hacks/align-content.js create mode 100644 node_modules/autoprefixer/lib/hacks/align-items.js create mode 100644 node_modules/autoprefixer/lib/hacks/align-self.js create mode 100644 node_modules/autoprefixer/lib/hacks/animation.js create mode 100644 node_modules/autoprefixer/lib/hacks/appearance.js create mode 100644 node_modules/autoprefixer/lib/hacks/autofill.js create mode 100644 node_modules/autoprefixer/lib/hacks/backdrop-filter.js create mode 100644 node_modules/autoprefixer/lib/hacks/background-clip.js create mode 100644 node_modules/autoprefixer/lib/hacks/background-size.js create mode 100644 node_modules/autoprefixer/lib/hacks/block-logical.js create mode 100644 node_modules/autoprefixer/lib/hacks/border-image.js create mode 100644 node_modules/autoprefixer/lib/hacks/border-radius.js create mode 100644 node_modules/autoprefixer/lib/hacks/break-props.js create mode 100644 node_modules/autoprefixer/lib/hacks/cross-fade.js create mode 100644 node_modules/autoprefixer/lib/hacks/display-flex.js create mode 100644 node_modules/autoprefixer/lib/hacks/display-grid.js create mode 100644 node_modules/autoprefixer/lib/hacks/file-selector-button.js create mode 100644 node_modules/autoprefixer/lib/hacks/filter-value.js create mode 100644 node_modules/autoprefixer/lib/hacks/filter.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-basis.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-direction.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-flow.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-grow.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-shrink.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-spec.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex-wrap.js create mode 100644 node_modules/autoprefixer/lib/hacks/flex.js create mode 100644 node_modules/autoprefixer/lib/hacks/fullscreen.js create mode 100644 node_modules/autoprefixer/lib/hacks/gradient.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-area.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-column-align.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-end.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-row-align.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-row-column.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-rows-columns.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-start.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-template-areas.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-template.js create mode 100644 node_modules/autoprefixer/lib/hacks/grid-utils.js create mode 100644 node_modules/autoprefixer/lib/hacks/image-rendering.js create mode 100644 node_modules/autoprefixer/lib/hacks/image-set.js create mode 100644 node_modules/autoprefixer/lib/hacks/inline-logical.js create mode 100644 node_modules/autoprefixer/lib/hacks/intrinsic.js create mode 100644 node_modules/autoprefixer/lib/hacks/justify-content.js create mode 100644 node_modules/autoprefixer/lib/hacks/mask-border.js create mode 100644 node_modules/autoprefixer/lib/hacks/mask-composite.js create mode 100644 node_modules/autoprefixer/lib/hacks/order.js create mode 100644 node_modules/autoprefixer/lib/hacks/overscroll-behavior.js create mode 100644 node_modules/autoprefixer/lib/hacks/pixelated.js create mode 100644 node_modules/autoprefixer/lib/hacks/place-self.js create mode 100644 node_modules/autoprefixer/lib/hacks/placeholder-shown.js create mode 100644 node_modules/autoprefixer/lib/hacks/placeholder.js create mode 100644 node_modules/autoprefixer/lib/hacks/print-color-adjust.js create mode 100644 node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js create mode 100644 node_modules/autoprefixer/lib/hacks/text-decoration.js create mode 100644 node_modules/autoprefixer/lib/hacks/text-emphasis-position.js create mode 100644 node_modules/autoprefixer/lib/hacks/transform-decl.js create mode 100644 node_modules/autoprefixer/lib/hacks/user-select.js create mode 100644 node_modules/autoprefixer/lib/hacks/writing-mode.js create mode 100644 node_modules/autoprefixer/lib/info.js create mode 100644 node_modules/autoprefixer/lib/old-selector.js create mode 100644 node_modules/autoprefixer/lib/old-value.js create mode 100644 node_modules/autoprefixer/lib/prefixer.js create mode 100644 node_modules/autoprefixer/lib/prefixes.js create mode 100644 node_modules/autoprefixer/lib/processor.js create mode 100644 node_modules/autoprefixer/lib/resolution.js create mode 100644 node_modules/autoprefixer/lib/selector.js create mode 100644 node_modules/autoprefixer/lib/supports.js create mode 100644 node_modules/autoprefixer/lib/transition.js create mode 100644 node_modules/autoprefixer/lib/utils.js create mode 100644 node_modules/autoprefixer/lib/value.js create mode 100644 node_modules/autoprefixer/lib/vendor.js create mode 100644 node_modules/autoprefixer/package.json create mode 100644 node_modules/binary-extensions/binary-extensions.json create mode 100644 node_modules/binary-extensions/binary-extensions.json.d.ts create mode 100644 node_modules/binary-extensions/index.d.ts create mode 100644 node_modules/binary-extensions/index.js create mode 100644 node_modules/binary-extensions/license create mode 100644 node_modules/binary-extensions/package.json create mode 100644 node_modules/binary-extensions/readme.md create mode 100644 node_modules/boolbase/README.md create mode 100644 node_modules/boolbase/index.js create mode 100644 node_modules/boolbase/package.json create mode 100644 node_modules/braces/CHANGELOG.md create mode 100644 node_modules/braces/LICENSE create mode 100644 node_modules/braces/README.md create mode 100644 node_modules/braces/index.js create mode 100644 node_modules/braces/lib/compile.js create mode 100644 node_modules/braces/lib/constants.js create mode 100644 node_modules/braces/lib/expand.js create mode 100644 node_modules/braces/lib/parse.js create mode 100644 node_modules/braces/lib/stringify.js create mode 100644 node_modules/braces/lib/utils.js create mode 100644 node_modules/braces/package.json create mode 100644 node_modules/browserslist/LICENSE create mode 100644 node_modules/browserslist/README.md create mode 100644 node_modules/browserslist/browser.js create mode 100755 node_modules/browserslist/cli.js create mode 100644 node_modules/browserslist/error.d.ts create mode 100644 node_modules/browserslist/error.js create mode 100644 node_modules/browserslist/index.d.ts create mode 100644 node_modules/browserslist/index.js create mode 100644 node_modules/browserslist/node.js create mode 100644 node_modules/browserslist/package.json create mode 100644 node_modules/browserslist/parse.js create mode 100644 node_modules/caniuse-api/CHANGELOG.md create mode 100644 node_modules/caniuse-api/LICENSE create mode 100644 node_modules/caniuse-api/README.md create mode 100644 node_modules/caniuse-api/dist/index.js create mode 100644 node_modules/caniuse-api/dist/utils.js create mode 100644 node_modules/caniuse-api/package.json create mode 100644 node_modules/caniuse-lite/LICENSE create mode 100644 node_modules/caniuse-lite/README.md create mode 100644 node_modules/caniuse-lite/data/agents.js create mode 100644 node_modules/caniuse-lite/data/browserVersions.js create mode 100644 node_modules/caniuse-lite/data/browsers.js create mode 100644 node_modules/caniuse-lite/data/features.js create mode 100644 node_modules/caniuse-lite/data/features/aac.js create mode 100644 node_modules/caniuse-lite/data/features/abortcontroller.js create mode 100644 node_modules/caniuse-lite/data/features/ac3-ec3.js create mode 100644 node_modules/caniuse-lite/data/features/accelerometer.js create mode 100644 node_modules/caniuse-lite/data/features/addeventlistener.js create mode 100644 node_modules/caniuse-lite/data/features/alternate-stylesheet.js create mode 100644 node_modules/caniuse-lite/data/features/ambient-light.js create mode 100644 node_modules/caniuse-lite/data/features/apng.js create mode 100644 node_modules/caniuse-lite/data/features/array-find-index.js create mode 100644 node_modules/caniuse-lite/data/features/array-find.js create mode 100644 node_modules/caniuse-lite/data/features/array-flat.js create mode 100644 node_modules/caniuse-lite/data/features/array-includes.js create mode 100644 node_modules/caniuse-lite/data/features/arrow-functions.js create mode 100644 node_modules/caniuse-lite/data/features/asmjs.js create mode 100644 node_modules/caniuse-lite/data/features/async-clipboard.js create mode 100644 node_modules/caniuse-lite/data/features/async-functions.js create mode 100644 node_modules/caniuse-lite/data/features/atob-btoa.js create mode 100644 node_modules/caniuse-lite/data/features/audio-api.js create mode 100644 node_modules/caniuse-lite/data/features/audio.js create mode 100644 node_modules/caniuse-lite/data/features/audiotracks.js create mode 100644 node_modules/caniuse-lite/data/features/autofocus.js create mode 100644 node_modules/caniuse-lite/data/features/auxclick.js create mode 100644 node_modules/caniuse-lite/data/features/av1.js create mode 100644 node_modules/caniuse-lite/data/features/avif.js create mode 100644 node_modules/caniuse-lite/data/features/background-attachment.js create mode 100644 node_modules/caniuse-lite/data/features/background-clip-text.js create mode 100644 node_modules/caniuse-lite/data/features/background-img-opts.js create mode 100644 node_modules/caniuse-lite/data/features/background-position-x-y.js create mode 100644 node_modules/caniuse-lite/data/features/background-repeat-round-space.js create mode 100644 node_modules/caniuse-lite/data/features/background-sync.js create mode 100644 node_modules/caniuse-lite/data/features/battery-status.js create mode 100644 node_modules/caniuse-lite/data/features/beacon.js create mode 100644 node_modules/caniuse-lite/data/features/beforeafterprint.js create mode 100644 node_modules/caniuse-lite/data/features/bigint.js create mode 100644 node_modules/caniuse-lite/data/features/blobbuilder.js create mode 100644 node_modules/caniuse-lite/data/features/bloburls.js create mode 100644 node_modules/caniuse-lite/data/features/border-image.js create mode 100644 node_modules/caniuse-lite/data/features/border-radius.js create mode 100644 node_modules/caniuse-lite/data/features/broadcastchannel.js create mode 100644 node_modules/caniuse-lite/data/features/brotli.js create mode 100644 node_modules/caniuse-lite/data/features/calc.js create mode 100644 node_modules/caniuse-lite/data/features/canvas-blending.js create mode 100644 node_modules/caniuse-lite/data/features/canvas-text.js create mode 100644 node_modules/caniuse-lite/data/features/canvas.js create mode 100644 node_modules/caniuse-lite/data/features/ch-unit.js create mode 100644 node_modules/caniuse-lite/data/features/chacha20-poly1305.js create mode 100644 node_modules/caniuse-lite/data/features/channel-messaging.js create mode 100644 node_modules/caniuse-lite/data/features/childnode-remove.js create mode 100644 node_modules/caniuse-lite/data/features/classlist.js create mode 100644 node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js create mode 100644 node_modules/caniuse-lite/data/features/clipboard.js create mode 100644 node_modules/caniuse-lite/data/features/colr-v1.js create mode 100644 node_modules/caniuse-lite/data/features/colr.js create mode 100644 node_modules/caniuse-lite/data/features/comparedocumentposition.js create mode 100644 node_modules/caniuse-lite/data/features/console-basic.js create mode 100644 node_modules/caniuse-lite/data/features/console-time.js create mode 100644 node_modules/caniuse-lite/data/features/const.js create mode 100644 node_modules/caniuse-lite/data/features/constraint-validation.js create mode 100644 node_modules/caniuse-lite/data/features/contenteditable.js create mode 100644 node_modules/caniuse-lite/data/features/contentsecuritypolicy.js create mode 100644 node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js create mode 100644 node_modules/caniuse-lite/data/features/cookie-store-api.js create mode 100644 node_modules/caniuse-lite/data/features/cors.js create mode 100644 node_modules/caniuse-lite/data/features/createimagebitmap.js create mode 100644 node_modules/caniuse-lite/data/features/credential-management.js create mode 100644 node_modules/caniuse-lite/data/features/cryptography.js create mode 100644 node_modules/caniuse-lite/data/features/css-all.js create mode 100644 node_modules/caniuse-lite/data/features/css-anchor-positioning.js create mode 100644 node_modules/caniuse-lite/data/features/css-animation.js create mode 100644 node_modules/caniuse-lite/data/features/css-any-link.js create mode 100644 node_modules/caniuse-lite/data/features/css-appearance.js create mode 100644 node_modules/caniuse-lite/data/features/css-at-counter-style.js create mode 100644 node_modules/caniuse-lite/data/features/css-autofill.js create mode 100644 node_modules/caniuse-lite/data/features/css-backdrop-filter.js create mode 100644 node_modules/caniuse-lite/data/features/css-background-offsets.js create mode 100644 node_modules/caniuse-lite/data/features/css-backgroundblendmode.js create mode 100644 node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js create mode 100644 node_modules/caniuse-lite/data/features/css-boxshadow.js create mode 100644 node_modules/caniuse-lite/data/features/css-canvas.js create mode 100644 node_modules/caniuse-lite/data/features/css-caret-color.js create mode 100644 node_modules/caniuse-lite/data/features/css-cascade-layers.js create mode 100644 node_modules/caniuse-lite/data/features/css-cascade-scope.js create mode 100644 node_modules/caniuse-lite/data/features/css-case-insensitive.js create mode 100644 node_modules/caniuse-lite/data/features/css-clip-path.js create mode 100644 node_modules/caniuse-lite/data/features/css-color-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/css-color-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-conic-gradients.js create mode 100644 node_modules/caniuse-lite/data/features/css-container-queries-style.js create mode 100644 node_modules/caniuse-lite/data/features/css-container-queries.js create mode 100644 node_modules/caniuse-lite/data/features/css-container-query-units.js create mode 100644 node_modules/caniuse-lite/data/features/css-containment.js create mode 100644 node_modules/caniuse-lite/data/features/css-content-visibility.js create mode 100644 node_modules/caniuse-lite/data/features/css-counters.js create mode 100644 node_modules/caniuse-lite/data/features/css-crisp-edges.js create mode 100644 node_modules/caniuse-lite/data/features/css-cross-fade.js create mode 100644 node_modules/caniuse-lite/data/features/css-default-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-descendant-gtgt.js create mode 100644 node_modules/caniuse-lite/data/features/css-deviceadaptation.js create mode 100644 node_modules/caniuse-lite/data/features/css-dir-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-display-contents.js create mode 100644 node_modules/caniuse-lite/data/features/css-element-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-env-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-exclusions.js create mode 100644 node_modules/caniuse-lite/data/features/css-featurequeries.js create mode 100644 node_modules/caniuse-lite/data/features/css-file-selector-button.js create mode 100644 node_modules/caniuse-lite/data/features/css-filter-function.js create mode 100644 node_modules/caniuse-lite/data/features/css-filters.js create mode 100644 node_modules/caniuse-lite/data/features/css-first-letter.js create mode 100644 node_modules/caniuse-lite/data/features/css-first-line.js create mode 100644 node_modules/caniuse-lite/data/features/css-fixed.js create mode 100644 node_modules/caniuse-lite/data/features/css-focus-visible.js create mode 100644 node_modules/caniuse-lite/data/features/css-focus-within.js create mode 100644 node_modules/caniuse-lite/data/features/css-font-palette.js create mode 100644 node_modules/caniuse-lite/data/features/css-font-rendering-controls.js create mode 100644 node_modules/caniuse-lite/data/features/css-font-stretch.js create mode 100644 node_modules/caniuse-lite/data/features/css-gencontent.js create mode 100644 node_modules/caniuse-lite/data/features/css-gradients.js create mode 100644 node_modules/caniuse-lite/data/features/css-grid-animation.js create mode 100644 node_modules/caniuse-lite/data/features/css-grid.js create mode 100644 node_modules/caniuse-lite/data/features/css-hanging-punctuation.js create mode 100644 node_modules/caniuse-lite/data/features/css-has.js create mode 100644 node_modules/caniuse-lite/data/features/css-hyphens.js create mode 100644 node_modules/caniuse-lite/data/features/css-image-orientation.js create mode 100644 node_modules/caniuse-lite/data/features/css-image-set.js create mode 100644 node_modules/caniuse-lite/data/features/css-in-out-of-range.js create mode 100644 node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-initial-letter.js create mode 100644 node_modules/caniuse-lite/data/features/css-initial-value.js create mode 100644 node_modules/caniuse-lite/data/features/css-lch-lab.js create mode 100644 node_modules/caniuse-lite/data/features/css-letter-spacing.js create mode 100644 node_modules/caniuse-lite/data/features/css-line-clamp.js create mode 100644 node_modules/caniuse-lite/data/features/css-logical-props.js create mode 100644 node_modules/caniuse-lite/data/features/css-marker-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-masks.js create mode 100644 node_modules/caniuse-lite/data/features/css-matches-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-math-functions.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-interaction.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-range-syntax.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-resolution.js create mode 100644 node_modules/caniuse-lite/data/features/css-media-scripting.js create mode 100644 node_modules/caniuse-lite/data/features/css-mediaqueries.js create mode 100644 node_modules/caniuse-lite/data/features/css-mixblendmode.js create mode 100644 node_modules/caniuse-lite/data/features/css-motion-paths.js create mode 100644 node_modules/caniuse-lite/data/features/css-namespaces.js create mode 100644 node_modules/caniuse-lite/data/features/css-nesting.js create mode 100644 node_modules/caniuse-lite/data/features/css-not-sel-list.js create mode 100644 node_modules/caniuse-lite/data/features/css-nth-child-of.js create mode 100644 node_modules/caniuse-lite/data/features/css-opacity.js create mode 100644 node_modules/caniuse-lite/data/features/css-optional-pseudo.js create mode 100644 node_modules/caniuse-lite/data/features/css-overflow-anchor.js create mode 100644 node_modules/caniuse-lite/data/features/css-overflow-overlay.js create mode 100644 node_modules/caniuse-lite/data/features/css-overflow.js create mode 100644 node_modules/caniuse-lite/data/features/css-overscroll-behavior.js create mode 100644 node_modules/caniuse-lite/data/features/css-page-break.js create mode 100644 node_modules/caniuse-lite/data/features/css-paged-media.js create mode 100644 node_modules/caniuse-lite/data/features/css-paint-api.js create mode 100644 node_modules/caniuse-lite/data/features/css-placeholder-shown.js create mode 100644 node_modules/caniuse-lite/data/features/css-placeholder.js create mode 100644 node_modules/caniuse-lite/data/features/css-print-color-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/css-read-only-write.js create mode 100644 node_modules/caniuse-lite/data/features/css-rebeccapurple.js create mode 100644 node_modules/caniuse-lite/data/features/css-reflections.js create mode 100644 node_modules/caniuse-lite/data/features/css-regions.js create mode 100644 node_modules/caniuse-lite/data/features/css-relative-colors.js create mode 100644 node_modules/caniuse-lite/data/features/css-repeating-gradients.js create mode 100644 node_modules/caniuse-lite/data/features/css-resize.js create mode 100644 node_modules/caniuse-lite/data/features/css-revert-value.js create mode 100644 node_modules/caniuse-lite/data/features/css-rrggbbaa.js create mode 100644 node_modules/caniuse-lite/data/features/css-scroll-behavior.js create mode 100644 node_modules/caniuse-lite/data/features/css-scroll-timeline.js create mode 100644 node_modules/caniuse-lite/data/features/css-scrollbar.js create mode 100644 node_modules/caniuse-lite/data/features/css-sel2.js create mode 100644 node_modules/caniuse-lite/data/features/css-sel3.js create mode 100644 node_modules/caniuse-lite/data/features/css-selection.js create mode 100644 node_modules/caniuse-lite/data/features/css-shapes.js create mode 100644 node_modules/caniuse-lite/data/features/css-snappoints.js create mode 100644 node_modules/caniuse-lite/data/features/css-sticky.js create mode 100644 node_modules/caniuse-lite/data/features/css-subgrid.js create mode 100644 node_modules/caniuse-lite/data/features/css-supports-api.js create mode 100644 node_modules/caniuse-lite/data/features/css-table.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-align-last.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-box-trim.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-indent.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-justify.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-orientation.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-spacing.js create mode 100644 node_modules/caniuse-lite/data/features/css-text-wrap-balance.js create mode 100644 node_modules/caniuse-lite/data/features/css-textshadow.js create mode 100644 node_modules/caniuse-lite/data/features/css-touch-action.js create mode 100644 node_modules/caniuse-lite/data/features/css-transitions.js create mode 100644 node_modules/caniuse-lite/data/features/css-unicode-bidi.js create mode 100644 node_modules/caniuse-lite/data/features/css-unset-value.js create mode 100644 node_modules/caniuse-lite/data/features/css-variables.js create mode 100644 node_modules/caniuse-lite/data/features/css-when-else.js create mode 100644 node_modules/caniuse-lite/data/features/css-widows-orphans.js create mode 100644 node_modules/caniuse-lite/data/features/css-width-stretch.js create mode 100644 node_modules/caniuse-lite/data/features/css-writing-mode.js create mode 100644 node_modules/caniuse-lite/data/features/css-zoom.js create mode 100644 node_modules/caniuse-lite/data/features/css3-attr.js create mode 100644 node_modules/caniuse-lite/data/features/css3-boxsizing.js create mode 100644 node_modules/caniuse-lite/data/features/css3-colors.js create mode 100644 node_modules/caniuse-lite/data/features/css3-cursors-grab.js create mode 100644 node_modules/caniuse-lite/data/features/css3-cursors-newer.js create mode 100644 node_modules/caniuse-lite/data/features/css3-cursors.js create mode 100644 node_modules/caniuse-lite/data/features/css3-tabsize.js create mode 100644 node_modules/caniuse-lite/data/features/currentcolor.js create mode 100644 node_modules/caniuse-lite/data/features/custom-elements.js create mode 100644 node_modules/caniuse-lite/data/features/custom-elementsv1.js create mode 100644 node_modules/caniuse-lite/data/features/customevent.js create mode 100644 node_modules/caniuse-lite/data/features/datalist.js create mode 100644 node_modules/caniuse-lite/data/features/dataset.js create mode 100644 node_modules/caniuse-lite/data/features/datauri.js create mode 100644 node_modules/caniuse-lite/data/features/date-tolocaledatestring.js create mode 100644 node_modules/caniuse-lite/data/features/declarative-shadow-dom.js create mode 100644 node_modules/caniuse-lite/data/features/decorators.js create mode 100644 node_modules/caniuse-lite/data/features/details.js create mode 100644 node_modules/caniuse-lite/data/features/deviceorientation.js create mode 100644 node_modules/caniuse-lite/data/features/devicepixelratio.js create mode 100644 node_modules/caniuse-lite/data/features/dialog.js create mode 100644 node_modules/caniuse-lite/data/features/dispatchevent.js create mode 100644 node_modules/caniuse-lite/data/features/dnssec.js create mode 100644 node_modules/caniuse-lite/data/features/do-not-track.js create mode 100644 node_modules/caniuse-lite/data/features/document-currentscript.js create mode 100644 node_modules/caniuse-lite/data/features/document-evaluate-xpath.js create mode 100644 node_modules/caniuse-lite/data/features/document-execcommand.js create mode 100644 node_modules/caniuse-lite/data/features/document-policy.js create mode 100644 node_modules/caniuse-lite/data/features/document-scrollingelement.js create mode 100644 node_modules/caniuse-lite/data/features/documenthead.js create mode 100644 node_modules/caniuse-lite/data/features/dom-manip-convenience.js create mode 100644 node_modules/caniuse-lite/data/features/dom-range.js create mode 100644 node_modules/caniuse-lite/data/features/domcontentloaded.js create mode 100644 node_modules/caniuse-lite/data/features/dommatrix.js create mode 100644 node_modules/caniuse-lite/data/features/download.js create mode 100644 node_modules/caniuse-lite/data/features/dragndrop.js create mode 100644 node_modules/caniuse-lite/data/features/element-closest.js create mode 100644 node_modules/caniuse-lite/data/features/element-from-point.js create mode 100644 node_modules/caniuse-lite/data/features/element-scroll-methods.js create mode 100644 node_modules/caniuse-lite/data/features/eme.js create mode 100644 node_modules/caniuse-lite/data/features/eot.js create mode 100644 node_modules/caniuse-lite/data/features/es5.js create mode 100644 node_modules/caniuse-lite/data/features/es6-class.js create mode 100644 node_modules/caniuse-lite/data/features/es6-generators.js create mode 100644 node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js create mode 100644 node_modules/caniuse-lite/data/features/es6-module.js create mode 100644 node_modules/caniuse-lite/data/features/es6-number.js create mode 100644 node_modules/caniuse-lite/data/features/es6-string-includes.js create mode 100644 node_modules/caniuse-lite/data/features/es6.js create mode 100644 node_modules/caniuse-lite/data/features/eventsource.js create mode 100644 node_modules/caniuse-lite/data/features/extended-system-fonts.js create mode 100644 node_modules/caniuse-lite/data/features/feature-policy.js create mode 100644 node_modules/caniuse-lite/data/features/fetch.js create mode 100644 node_modules/caniuse-lite/data/features/fieldset-disabled.js create mode 100644 node_modules/caniuse-lite/data/features/fileapi.js create mode 100644 node_modules/caniuse-lite/data/features/filereader.js create mode 100644 node_modules/caniuse-lite/data/features/filereadersync.js create mode 100644 node_modules/caniuse-lite/data/features/filesystem.js create mode 100644 node_modules/caniuse-lite/data/features/flac.js create mode 100644 node_modules/caniuse-lite/data/features/flexbox-gap.js create mode 100644 node_modules/caniuse-lite/data/features/flexbox.js create mode 100644 node_modules/caniuse-lite/data/features/flow-root.js create mode 100644 node_modules/caniuse-lite/data/features/focusin-focusout-events.js create mode 100644 node_modules/caniuse-lite/data/features/font-family-system-ui.js create mode 100644 node_modules/caniuse-lite/data/features/font-feature.js create mode 100644 node_modules/caniuse-lite/data/features/font-kerning.js create mode 100644 node_modules/caniuse-lite/data/features/font-loading.js create mode 100644 node_modules/caniuse-lite/data/features/font-size-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/font-smooth.js create mode 100644 node_modules/caniuse-lite/data/features/font-unicode-range.js create mode 100644 node_modules/caniuse-lite/data/features/font-variant-alternates.js create mode 100644 node_modules/caniuse-lite/data/features/font-variant-numeric.js create mode 100644 node_modules/caniuse-lite/data/features/fontface.js create mode 100644 node_modules/caniuse-lite/data/features/form-attribute.js create mode 100644 node_modules/caniuse-lite/data/features/form-submit-attributes.js create mode 100644 node_modules/caniuse-lite/data/features/form-validation.js create mode 100644 node_modules/caniuse-lite/data/features/forms.js create mode 100644 node_modules/caniuse-lite/data/features/fullscreen.js create mode 100644 node_modules/caniuse-lite/data/features/gamepad.js create mode 100644 node_modules/caniuse-lite/data/features/geolocation.js create mode 100644 node_modules/caniuse-lite/data/features/getboundingclientrect.js create mode 100644 node_modules/caniuse-lite/data/features/getcomputedstyle.js create mode 100644 node_modules/caniuse-lite/data/features/getelementsbyclassname.js create mode 100644 node_modules/caniuse-lite/data/features/getrandomvalues.js create mode 100644 node_modules/caniuse-lite/data/features/gyroscope.js create mode 100644 node_modules/caniuse-lite/data/features/hardwareconcurrency.js create mode 100644 node_modules/caniuse-lite/data/features/hashchange.js create mode 100644 node_modules/caniuse-lite/data/features/heif.js create mode 100644 node_modules/caniuse-lite/data/features/hevc.js create mode 100644 node_modules/caniuse-lite/data/features/hidden.js create mode 100644 node_modules/caniuse-lite/data/features/high-resolution-time.js create mode 100644 node_modules/caniuse-lite/data/features/history.js create mode 100644 node_modules/caniuse-lite/data/features/html-media-capture.js create mode 100644 node_modules/caniuse-lite/data/features/html5semantic.js create mode 100644 node_modules/caniuse-lite/data/features/http-live-streaming.js create mode 100644 node_modules/caniuse-lite/data/features/http2.js create mode 100644 node_modules/caniuse-lite/data/features/http3.js create mode 100644 node_modules/caniuse-lite/data/features/iframe-sandbox.js create mode 100644 node_modules/caniuse-lite/data/features/iframe-seamless.js create mode 100644 node_modules/caniuse-lite/data/features/iframe-srcdoc.js create mode 100644 node_modules/caniuse-lite/data/features/imagecapture.js create mode 100644 node_modules/caniuse-lite/data/features/ime.js create mode 100644 node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js create mode 100644 node_modules/caniuse-lite/data/features/import-maps.js create mode 100644 node_modules/caniuse-lite/data/features/imports.js create mode 100644 node_modules/caniuse-lite/data/features/indeterminate-checkbox.js create mode 100644 node_modules/caniuse-lite/data/features/indexeddb.js create mode 100644 node_modules/caniuse-lite/data/features/indexeddb2.js create mode 100644 node_modules/caniuse-lite/data/features/inline-block.js create mode 100644 node_modules/caniuse-lite/data/features/innertext.js create mode 100644 node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js create mode 100644 node_modules/caniuse-lite/data/features/input-color.js create mode 100644 node_modules/caniuse-lite/data/features/input-datetime.js create mode 100644 node_modules/caniuse-lite/data/features/input-email-tel-url.js create mode 100644 node_modules/caniuse-lite/data/features/input-event.js create mode 100644 node_modules/caniuse-lite/data/features/input-file-accept.js create mode 100644 node_modules/caniuse-lite/data/features/input-file-directory.js create mode 100644 node_modules/caniuse-lite/data/features/input-file-multiple.js create mode 100644 node_modules/caniuse-lite/data/features/input-inputmode.js create mode 100644 node_modules/caniuse-lite/data/features/input-minlength.js create mode 100644 node_modules/caniuse-lite/data/features/input-number.js create mode 100644 node_modules/caniuse-lite/data/features/input-pattern.js create mode 100644 node_modules/caniuse-lite/data/features/input-placeholder.js create mode 100644 node_modules/caniuse-lite/data/features/input-range.js create mode 100644 node_modules/caniuse-lite/data/features/input-search.js create mode 100644 node_modules/caniuse-lite/data/features/input-selection.js create mode 100644 node_modules/caniuse-lite/data/features/insert-adjacent.js create mode 100644 node_modules/caniuse-lite/data/features/insertadjacenthtml.js create mode 100644 node_modules/caniuse-lite/data/features/internationalization.js create mode 100644 node_modules/caniuse-lite/data/features/intersectionobserver-v2.js create mode 100644 node_modules/caniuse-lite/data/features/intersectionobserver.js create mode 100644 node_modules/caniuse-lite/data/features/intl-pluralrules.js create mode 100644 node_modules/caniuse-lite/data/features/intrinsic-width.js create mode 100644 node_modules/caniuse-lite/data/features/jpeg2000.js create mode 100644 node_modules/caniuse-lite/data/features/jpegxl.js create mode 100644 node_modules/caniuse-lite/data/features/jpegxr.js create mode 100644 node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js create mode 100644 node_modules/caniuse-lite/data/features/json.js create mode 100644 node_modules/caniuse-lite/data/features/justify-content-space-evenly.js create mode 100644 node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-charcode.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-code.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-key.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-location.js create mode 100644 node_modules/caniuse-lite/data/features/keyboardevent-which.js create mode 100644 node_modules/caniuse-lite/data/features/lazyload.js create mode 100644 node_modules/caniuse-lite/data/features/let.js create mode 100644 node_modules/caniuse-lite/data/features/link-icon-png.js create mode 100644 node_modules/caniuse-lite/data/features/link-icon-svg.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-modulepreload.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-preconnect.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-prefetch.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-preload.js create mode 100644 node_modules/caniuse-lite/data/features/link-rel-prerender.js create mode 100644 node_modules/caniuse-lite/data/features/loading-lazy-attr.js create mode 100644 node_modules/caniuse-lite/data/features/localecompare.js create mode 100644 node_modules/caniuse-lite/data/features/magnetometer.js create mode 100644 node_modules/caniuse-lite/data/features/matchesselector.js create mode 100644 node_modules/caniuse-lite/data/features/matchmedia.js create mode 100644 node_modules/caniuse-lite/data/features/mathml.js create mode 100644 node_modules/caniuse-lite/data/features/maxlength.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js create mode 100644 node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js create mode 100644 node_modules/caniuse-lite/data/features/media-fragments.js create mode 100644 node_modules/caniuse-lite/data/features/mediacapture-fromelement.js create mode 100644 node_modules/caniuse-lite/data/features/mediarecorder.js create mode 100644 node_modules/caniuse-lite/data/features/mediasource.js create mode 100644 node_modules/caniuse-lite/data/features/menu.js create mode 100644 node_modules/caniuse-lite/data/features/meta-theme-color.js create mode 100644 node_modules/caniuse-lite/data/features/meter.js create mode 100644 node_modules/caniuse-lite/data/features/midi.js create mode 100644 node_modules/caniuse-lite/data/features/minmaxwh.js create mode 100644 node_modules/caniuse-lite/data/features/mp3.js create mode 100644 node_modules/caniuse-lite/data/features/mpeg-dash.js create mode 100644 node_modules/caniuse-lite/data/features/mpeg4.js create mode 100644 node_modules/caniuse-lite/data/features/multibackgrounds.js create mode 100644 node_modules/caniuse-lite/data/features/multicolumn.js create mode 100644 node_modules/caniuse-lite/data/features/mutation-events.js create mode 100644 node_modules/caniuse-lite/data/features/mutationobserver.js create mode 100644 node_modules/caniuse-lite/data/features/namevalue-storage.js create mode 100644 node_modules/caniuse-lite/data/features/native-filesystem-api.js create mode 100644 node_modules/caniuse-lite/data/features/nav-timing.js create mode 100644 node_modules/caniuse-lite/data/features/netinfo.js create mode 100644 node_modules/caniuse-lite/data/features/notifications.js create mode 100644 node_modules/caniuse-lite/data/features/object-entries.js create mode 100644 node_modules/caniuse-lite/data/features/object-fit.js create mode 100644 node_modules/caniuse-lite/data/features/object-observe.js create mode 100644 node_modules/caniuse-lite/data/features/object-values.js create mode 100644 node_modules/caniuse-lite/data/features/objectrtc.js create mode 100644 node_modules/caniuse-lite/data/features/offline-apps.js create mode 100644 node_modules/caniuse-lite/data/features/offscreencanvas.js create mode 100644 node_modules/caniuse-lite/data/features/ogg-vorbis.js create mode 100644 node_modules/caniuse-lite/data/features/ogv.js create mode 100644 node_modules/caniuse-lite/data/features/ol-reversed.js create mode 100644 node_modules/caniuse-lite/data/features/once-event-listener.js create mode 100644 node_modules/caniuse-lite/data/features/online-status.js create mode 100644 node_modules/caniuse-lite/data/features/opus.js create mode 100644 node_modules/caniuse-lite/data/features/orientation-sensor.js create mode 100644 node_modules/caniuse-lite/data/features/outline.js create mode 100644 node_modules/caniuse-lite/data/features/pad-start-end.js create mode 100644 node_modules/caniuse-lite/data/features/page-transition-events.js create mode 100644 node_modules/caniuse-lite/data/features/pagevisibility.js create mode 100644 node_modules/caniuse-lite/data/features/passive-event-listener.js create mode 100644 node_modules/caniuse-lite/data/features/passkeys.js create mode 100644 node_modules/caniuse-lite/data/features/passwordrules.js create mode 100644 node_modules/caniuse-lite/data/features/path2d.js create mode 100644 node_modules/caniuse-lite/data/features/payment-request.js create mode 100644 node_modules/caniuse-lite/data/features/pdf-viewer.js create mode 100644 node_modules/caniuse-lite/data/features/permissions-api.js create mode 100644 node_modules/caniuse-lite/data/features/permissions-policy.js create mode 100644 node_modules/caniuse-lite/data/features/picture-in-picture.js create mode 100644 node_modules/caniuse-lite/data/features/picture.js create mode 100644 node_modules/caniuse-lite/data/features/ping.js create mode 100644 node_modules/caniuse-lite/data/features/png-alpha.js create mode 100644 node_modules/caniuse-lite/data/features/pointer-events.js create mode 100644 node_modules/caniuse-lite/data/features/pointer.js create mode 100644 node_modules/caniuse-lite/data/features/pointerlock.js create mode 100644 node_modules/caniuse-lite/data/features/portals.js create mode 100644 node_modules/caniuse-lite/data/features/prefers-color-scheme.js create mode 100644 node_modules/caniuse-lite/data/features/prefers-reduced-motion.js create mode 100644 node_modules/caniuse-lite/data/features/progress.js create mode 100644 node_modules/caniuse-lite/data/features/promise-finally.js create mode 100644 node_modules/caniuse-lite/data/features/promises.js create mode 100644 node_modules/caniuse-lite/data/features/proximity.js create mode 100644 node_modules/caniuse-lite/data/features/proxy.js create mode 100644 node_modules/caniuse-lite/data/features/publickeypinning.js create mode 100644 node_modules/caniuse-lite/data/features/push-api.js create mode 100644 node_modules/caniuse-lite/data/features/queryselector.js create mode 100644 node_modules/caniuse-lite/data/features/readonly-attr.js create mode 100644 node_modules/caniuse-lite/data/features/referrer-policy.js create mode 100644 node_modules/caniuse-lite/data/features/registerprotocolhandler.js create mode 100644 node_modules/caniuse-lite/data/features/rel-noopener.js create mode 100644 node_modules/caniuse-lite/data/features/rel-noreferrer.js create mode 100644 node_modules/caniuse-lite/data/features/rellist.js create mode 100644 node_modules/caniuse-lite/data/features/rem.js create mode 100644 node_modules/caniuse-lite/data/features/requestanimationframe.js create mode 100644 node_modules/caniuse-lite/data/features/requestidlecallback.js create mode 100644 node_modules/caniuse-lite/data/features/resizeobserver.js create mode 100644 node_modules/caniuse-lite/data/features/resource-timing.js create mode 100644 node_modules/caniuse-lite/data/features/rest-parameters.js create mode 100644 node_modules/caniuse-lite/data/features/rtcpeerconnection.js create mode 100644 node_modules/caniuse-lite/data/features/ruby.js create mode 100644 node_modules/caniuse-lite/data/features/run-in.js create mode 100644 node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js create mode 100644 node_modules/caniuse-lite/data/features/screen-orientation.js create mode 100644 node_modules/caniuse-lite/data/features/script-async.js create mode 100644 node_modules/caniuse-lite/data/features/script-defer.js create mode 100644 node_modules/caniuse-lite/data/features/scrollintoview.js create mode 100644 node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js create mode 100644 node_modules/caniuse-lite/data/features/sdch.js create mode 100644 node_modules/caniuse-lite/data/features/selection-api.js create mode 100644 node_modules/caniuse-lite/data/features/server-timing.js create mode 100644 node_modules/caniuse-lite/data/features/serviceworkers.js create mode 100644 node_modules/caniuse-lite/data/features/setimmediate.js create mode 100644 node_modules/caniuse-lite/data/features/shadowdom.js create mode 100644 node_modules/caniuse-lite/data/features/shadowdomv1.js create mode 100644 node_modules/caniuse-lite/data/features/sharedarraybuffer.js create mode 100644 node_modules/caniuse-lite/data/features/sharedworkers.js create mode 100644 node_modules/caniuse-lite/data/features/sni.js create mode 100644 node_modules/caniuse-lite/data/features/spdy.js create mode 100644 node_modules/caniuse-lite/data/features/speech-recognition.js create mode 100644 node_modules/caniuse-lite/data/features/speech-synthesis.js create mode 100644 node_modules/caniuse-lite/data/features/spellcheck-attribute.js create mode 100644 node_modules/caniuse-lite/data/features/sql-storage.js create mode 100644 node_modules/caniuse-lite/data/features/srcset.js create mode 100644 node_modules/caniuse-lite/data/features/stream.js create mode 100644 node_modules/caniuse-lite/data/features/streams.js create mode 100644 node_modules/caniuse-lite/data/features/stricttransportsecurity.js create mode 100644 node_modules/caniuse-lite/data/features/style-scoped.js create mode 100644 node_modules/caniuse-lite/data/features/subresource-bundling.js create mode 100644 node_modules/caniuse-lite/data/features/subresource-integrity.js create mode 100644 node_modules/caniuse-lite/data/features/svg-css.js create mode 100644 node_modules/caniuse-lite/data/features/svg-filters.js create mode 100644 node_modules/caniuse-lite/data/features/svg-fonts.js create mode 100644 node_modules/caniuse-lite/data/features/svg-fragment.js create mode 100644 node_modules/caniuse-lite/data/features/svg-html.js create mode 100644 node_modules/caniuse-lite/data/features/svg-html5.js create mode 100644 node_modules/caniuse-lite/data/features/svg-img.js create mode 100644 node_modules/caniuse-lite/data/features/svg-smil.js create mode 100644 node_modules/caniuse-lite/data/features/svg.js create mode 100644 node_modules/caniuse-lite/data/features/sxg.js create mode 100644 node_modules/caniuse-lite/data/features/tabindex-attr.js create mode 100644 node_modules/caniuse-lite/data/features/template-literals.js create mode 100644 node_modules/caniuse-lite/data/features/template.js create mode 100644 node_modules/caniuse-lite/data/features/temporal.js create mode 100644 node_modules/caniuse-lite/data/features/testfeat.js create mode 100644 node_modules/caniuse-lite/data/features/text-decoration.js create mode 100644 node_modules/caniuse-lite/data/features/text-emphasis.js create mode 100644 node_modules/caniuse-lite/data/features/text-overflow.js create mode 100644 node_modules/caniuse-lite/data/features/text-size-adjust.js create mode 100644 node_modules/caniuse-lite/data/features/text-stroke.js create mode 100644 node_modules/caniuse-lite/data/features/textcontent.js create mode 100644 node_modules/caniuse-lite/data/features/textencoder.js create mode 100644 node_modules/caniuse-lite/data/features/tls1-1.js create mode 100644 node_modules/caniuse-lite/data/features/tls1-2.js create mode 100644 node_modules/caniuse-lite/data/features/tls1-3.js create mode 100644 node_modules/caniuse-lite/data/features/touch.js create mode 100644 node_modules/caniuse-lite/data/features/transforms2d.js create mode 100644 node_modules/caniuse-lite/data/features/transforms3d.js create mode 100644 node_modules/caniuse-lite/data/features/trusted-types.js create mode 100644 node_modules/caniuse-lite/data/features/ttf.js create mode 100644 node_modules/caniuse-lite/data/features/typedarrays.js create mode 100644 node_modules/caniuse-lite/data/features/u2f.js create mode 100644 node_modules/caniuse-lite/data/features/unhandledrejection.js create mode 100644 node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js create mode 100644 node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js create mode 100644 node_modules/caniuse-lite/data/features/url.js create mode 100644 node_modules/caniuse-lite/data/features/urlsearchparams.js create mode 100644 node_modules/caniuse-lite/data/features/use-strict.js create mode 100644 node_modules/caniuse-lite/data/features/user-select-none.js create mode 100644 node_modules/caniuse-lite/data/features/user-timing.js create mode 100644 node_modules/caniuse-lite/data/features/variable-fonts.js create mode 100644 node_modules/caniuse-lite/data/features/vector-effect.js create mode 100644 node_modules/caniuse-lite/data/features/vibration.js create mode 100644 node_modules/caniuse-lite/data/features/video.js create mode 100644 node_modules/caniuse-lite/data/features/videotracks.js create mode 100644 node_modules/caniuse-lite/data/features/view-transitions.js create mode 100644 node_modules/caniuse-lite/data/features/viewport-unit-variants.js create mode 100644 node_modules/caniuse-lite/data/features/viewport-units.js create mode 100644 node_modules/caniuse-lite/data/features/wai-aria.js create mode 100644 node_modules/caniuse-lite/data/features/wake-lock.js create mode 100644 node_modules/caniuse-lite/data/features/wasm.js create mode 100644 node_modules/caniuse-lite/data/features/wav.js create mode 100644 node_modules/caniuse-lite/data/features/wbr-element.js create mode 100644 node_modules/caniuse-lite/data/features/web-animation.js create mode 100644 node_modules/caniuse-lite/data/features/web-app-manifest.js create mode 100644 node_modules/caniuse-lite/data/features/web-bluetooth.js create mode 100644 node_modules/caniuse-lite/data/features/web-serial.js create mode 100644 node_modules/caniuse-lite/data/features/web-share.js create mode 100644 node_modules/caniuse-lite/data/features/webauthn.js create mode 100644 node_modules/caniuse-lite/data/features/webcodecs.js create mode 100644 node_modules/caniuse-lite/data/features/webgl.js create mode 100644 node_modules/caniuse-lite/data/features/webgl2.js create mode 100644 node_modules/caniuse-lite/data/features/webgpu.js create mode 100644 node_modules/caniuse-lite/data/features/webhid.js create mode 100644 node_modules/caniuse-lite/data/features/webkit-user-drag.js create mode 100644 node_modules/caniuse-lite/data/features/webm.js create mode 100644 node_modules/caniuse-lite/data/features/webnfc.js create mode 100644 node_modules/caniuse-lite/data/features/webp.js create mode 100644 node_modules/caniuse-lite/data/features/websockets.js create mode 100644 node_modules/caniuse-lite/data/features/webtransport.js create mode 100644 node_modules/caniuse-lite/data/features/webusb.js create mode 100644 node_modules/caniuse-lite/data/features/webvr.js create mode 100644 node_modules/caniuse-lite/data/features/webvtt.js create mode 100644 node_modules/caniuse-lite/data/features/webworkers.js create mode 100644 node_modules/caniuse-lite/data/features/webxr.js create mode 100644 node_modules/caniuse-lite/data/features/will-change.js create mode 100644 node_modules/caniuse-lite/data/features/woff.js create mode 100644 node_modules/caniuse-lite/data/features/woff2.js create mode 100644 node_modules/caniuse-lite/data/features/word-break.js create mode 100644 node_modules/caniuse-lite/data/features/wordwrap.js create mode 100644 node_modules/caniuse-lite/data/features/x-doc-messaging.js create mode 100644 node_modules/caniuse-lite/data/features/x-frame-options.js create mode 100644 node_modules/caniuse-lite/data/features/xhr2.js create mode 100644 node_modules/caniuse-lite/data/features/xhtml.js create mode 100644 node_modules/caniuse-lite/data/features/xhtmlsmil.js create mode 100644 node_modules/caniuse-lite/data/features/xml-serializer.js create mode 100644 node_modules/caniuse-lite/data/features/zstd.js create mode 100644 node_modules/caniuse-lite/data/regions/AD.js create mode 100644 node_modules/caniuse-lite/data/regions/AE.js create mode 100644 node_modules/caniuse-lite/data/regions/AF.js create mode 100644 node_modules/caniuse-lite/data/regions/AG.js create mode 100644 node_modules/caniuse-lite/data/regions/AI.js create mode 100644 node_modules/caniuse-lite/data/regions/AL.js create mode 100644 node_modules/caniuse-lite/data/regions/AM.js create mode 100644 node_modules/caniuse-lite/data/regions/AO.js create mode 100644 node_modules/caniuse-lite/data/regions/AR.js create mode 100644 node_modules/caniuse-lite/data/regions/AS.js create mode 100644 node_modules/caniuse-lite/data/regions/AT.js create mode 100644 node_modules/caniuse-lite/data/regions/AU.js create mode 100644 node_modules/caniuse-lite/data/regions/AW.js create mode 100644 node_modules/caniuse-lite/data/regions/AX.js create mode 100644 node_modules/caniuse-lite/data/regions/AZ.js create mode 100644 node_modules/caniuse-lite/data/regions/BA.js create mode 100644 node_modules/caniuse-lite/data/regions/BB.js create mode 100644 node_modules/caniuse-lite/data/regions/BD.js create mode 100644 node_modules/caniuse-lite/data/regions/BE.js create mode 100644 node_modules/caniuse-lite/data/regions/BF.js create mode 100644 node_modules/caniuse-lite/data/regions/BG.js create mode 100644 node_modules/caniuse-lite/data/regions/BH.js create mode 100644 node_modules/caniuse-lite/data/regions/BI.js create mode 100644 node_modules/caniuse-lite/data/regions/BJ.js create mode 100644 node_modules/caniuse-lite/data/regions/BM.js create mode 100644 node_modules/caniuse-lite/data/regions/BN.js create mode 100644 node_modules/caniuse-lite/data/regions/BO.js create mode 100644 node_modules/caniuse-lite/data/regions/BR.js create mode 100644 node_modules/caniuse-lite/data/regions/BS.js create mode 100644 node_modules/caniuse-lite/data/regions/BT.js create mode 100644 node_modules/caniuse-lite/data/regions/BW.js create mode 100644 node_modules/caniuse-lite/data/regions/BY.js create mode 100644 node_modules/caniuse-lite/data/regions/BZ.js create mode 100644 node_modules/caniuse-lite/data/regions/CA.js create mode 100644 node_modules/caniuse-lite/data/regions/CD.js create mode 100644 node_modules/caniuse-lite/data/regions/CF.js create mode 100644 node_modules/caniuse-lite/data/regions/CG.js create mode 100644 node_modules/caniuse-lite/data/regions/CH.js create mode 100644 node_modules/caniuse-lite/data/regions/CI.js create mode 100644 node_modules/caniuse-lite/data/regions/CK.js create mode 100644 node_modules/caniuse-lite/data/regions/CL.js create mode 100644 node_modules/caniuse-lite/data/regions/CM.js create mode 100644 node_modules/caniuse-lite/data/regions/CN.js create mode 100644 node_modules/caniuse-lite/data/regions/CO.js create mode 100644 node_modules/caniuse-lite/data/regions/CR.js create mode 100644 node_modules/caniuse-lite/data/regions/CU.js create mode 100644 node_modules/caniuse-lite/data/regions/CV.js create mode 100644 node_modules/caniuse-lite/data/regions/CX.js create mode 100644 node_modules/caniuse-lite/data/regions/CY.js create mode 100644 node_modules/caniuse-lite/data/regions/CZ.js create mode 100644 node_modules/caniuse-lite/data/regions/DE.js create mode 100644 node_modules/caniuse-lite/data/regions/DJ.js create mode 100644 node_modules/caniuse-lite/data/regions/DK.js create mode 100644 node_modules/caniuse-lite/data/regions/DM.js create mode 100644 node_modules/caniuse-lite/data/regions/DO.js create mode 100644 node_modules/caniuse-lite/data/regions/DZ.js create mode 100644 node_modules/caniuse-lite/data/regions/EC.js create mode 100644 node_modules/caniuse-lite/data/regions/EE.js create mode 100644 node_modules/caniuse-lite/data/regions/EG.js create mode 100644 node_modules/caniuse-lite/data/regions/ER.js create mode 100644 node_modules/caniuse-lite/data/regions/ES.js create mode 100644 node_modules/caniuse-lite/data/regions/ET.js create mode 100644 node_modules/caniuse-lite/data/regions/FI.js create mode 100644 node_modules/caniuse-lite/data/regions/FJ.js create mode 100644 node_modules/caniuse-lite/data/regions/FK.js create mode 100644 node_modules/caniuse-lite/data/regions/FM.js create mode 100644 node_modules/caniuse-lite/data/regions/FO.js create mode 100644 node_modules/caniuse-lite/data/regions/FR.js create mode 100644 node_modules/caniuse-lite/data/regions/GA.js create mode 100644 node_modules/caniuse-lite/data/regions/GB.js create mode 100644 node_modules/caniuse-lite/data/regions/GD.js create mode 100644 node_modules/caniuse-lite/data/regions/GE.js create mode 100644 node_modules/caniuse-lite/data/regions/GF.js create mode 100644 node_modules/caniuse-lite/data/regions/GG.js create mode 100644 node_modules/caniuse-lite/data/regions/GH.js create mode 100644 node_modules/caniuse-lite/data/regions/GI.js create mode 100644 node_modules/caniuse-lite/data/regions/GL.js create mode 100644 node_modules/caniuse-lite/data/regions/GM.js create mode 100644 node_modules/caniuse-lite/data/regions/GN.js create mode 100644 node_modules/caniuse-lite/data/regions/GP.js create mode 100644 node_modules/caniuse-lite/data/regions/GQ.js create mode 100644 node_modules/caniuse-lite/data/regions/GR.js create mode 100644 node_modules/caniuse-lite/data/regions/GT.js create mode 100644 node_modules/caniuse-lite/data/regions/GU.js create mode 100644 node_modules/caniuse-lite/data/regions/GW.js create mode 100644 node_modules/caniuse-lite/data/regions/GY.js create mode 100644 node_modules/caniuse-lite/data/regions/HK.js create mode 100644 node_modules/caniuse-lite/data/regions/HN.js create mode 100644 node_modules/caniuse-lite/data/regions/HR.js create mode 100644 node_modules/caniuse-lite/data/regions/HT.js create mode 100644 node_modules/caniuse-lite/data/regions/HU.js create mode 100644 node_modules/caniuse-lite/data/regions/ID.js create mode 100644 node_modules/caniuse-lite/data/regions/IE.js create mode 100644 node_modules/caniuse-lite/data/regions/IL.js create mode 100644 node_modules/caniuse-lite/data/regions/IM.js create mode 100644 node_modules/caniuse-lite/data/regions/IN.js create mode 100644 node_modules/caniuse-lite/data/regions/IQ.js create mode 100644 node_modules/caniuse-lite/data/regions/IR.js create mode 100644 node_modules/caniuse-lite/data/regions/IS.js create mode 100644 node_modules/caniuse-lite/data/regions/IT.js create mode 100644 node_modules/caniuse-lite/data/regions/JE.js create mode 100644 node_modules/caniuse-lite/data/regions/JM.js create mode 100644 node_modules/caniuse-lite/data/regions/JO.js create mode 100644 node_modules/caniuse-lite/data/regions/JP.js create mode 100644 node_modules/caniuse-lite/data/regions/KE.js create mode 100644 node_modules/caniuse-lite/data/regions/KG.js create mode 100644 node_modules/caniuse-lite/data/regions/KH.js create mode 100644 node_modules/caniuse-lite/data/regions/KI.js create mode 100644 node_modules/caniuse-lite/data/regions/KM.js create mode 100644 node_modules/caniuse-lite/data/regions/KN.js create mode 100644 node_modules/caniuse-lite/data/regions/KP.js create mode 100644 node_modules/caniuse-lite/data/regions/KR.js create mode 100644 node_modules/caniuse-lite/data/regions/KW.js create mode 100644 node_modules/caniuse-lite/data/regions/KY.js create mode 100644 node_modules/caniuse-lite/data/regions/KZ.js create mode 100644 node_modules/caniuse-lite/data/regions/LA.js create mode 100644 node_modules/caniuse-lite/data/regions/LB.js create mode 100644 node_modules/caniuse-lite/data/regions/LC.js create mode 100644 node_modules/caniuse-lite/data/regions/LI.js create mode 100644 node_modules/caniuse-lite/data/regions/LK.js create mode 100644 node_modules/caniuse-lite/data/regions/LR.js create mode 100644 node_modules/caniuse-lite/data/regions/LS.js create mode 100644 node_modules/caniuse-lite/data/regions/LT.js create mode 100644 node_modules/caniuse-lite/data/regions/LU.js create mode 100644 node_modules/caniuse-lite/data/regions/LV.js create mode 100644 node_modules/caniuse-lite/data/regions/LY.js create mode 100644 node_modules/caniuse-lite/data/regions/MA.js create mode 100644 node_modules/caniuse-lite/data/regions/MC.js create mode 100644 node_modules/caniuse-lite/data/regions/MD.js create mode 100644 node_modules/caniuse-lite/data/regions/ME.js create mode 100644 node_modules/caniuse-lite/data/regions/MG.js create mode 100644 node_modules/caniuse-lite/data/regions/MH.js create mode 100644 node_modules/caniuse-lite/data/regions/MK.js create mode 100644 node_modules/caniuse-lite/data/regions/ML.js create mode 100644 node_modules/caniuse-lite/data/regions/MM.js create mode 100644 node_modules/caniuse-lite/data/regions/MN.js create mode 100644 node_modules/caniuse-lite/data/regions/MO.js create mode 100644 node_modules/caniuse-lite/data/regions/MP.js create mode 100644 node_modules/caniuse-lite/data/regions/MQ.js create mode 100644 node_modules/caniuse-lite/data/regions/MR.js create mode 100644 node_modules/caniuse-lite/data/regions/MS.js create mode 100644 node_modules/caniuse-lite/data/regions/MT.js create mode 100644 node_modules/caniuse-lite/data/regions/MU.js create mode 100644 node_modules/caniuse-lite/data/regions/MV.js create mode 100644 node_modules/caniuse-lite/data/regions/MW.js create mode 100644 node_modules/caniuse-lite/data/regions/MX.js create mode 100644 node_modules/caniuse-lite/data/regions/MY.js create mode 100644 node_modules/caniuse-lite/data/regions/MZ.js create mode 100644 node_modules/caniuse-lite/data/regions/NA.js create mode 100644 node_modules/caniuse-lite/data/regions/NC.js create mode 100644 node_modules/caniuse-lite/data/regions/NE.js create mode 100644 node_modules/caniuse-lite/data/regions/NF.js create mode 100644 node_modules/caniuse-lite/data/regions/NG.js create mode 100644 node_modules/caniuse-lite/data/regions/NI.js create mode 100644 node_modules/caniuse-lite/data/regions/NL.js create mode 100644 node_modules/caniuse-lite/data/regions/NO.js create mode 100644 node_modules/caniuse-lite/data/regions/NP.js create mode 100644 node_modules/caniuse-lite/data/regions/NR.js create mode 100644 node_modules/caniuse-lite/data/regions/NU.js create mode 100644 node_modules/caniuse-lite/data/regions/NZ.js create mode 100644 node_modules/caniuse-lite/data/regions/OM.js create mode 100644 node_modules/caniuse-lite/data/regions/PA.js create mode 100644 node_modules/caniuse-lite/data/regions/PE.js create mode 100644 node_modules/caniuse-lite/data/regions/PF.js create mode 100644 node_modules/caniuse-lite/data/regions/PG.js create mode 100644 node_modules/caniuse-lite/data/regions/PH.js create mode 100644 node_modules/caniuse-lite/data/regions/PK.js create mode 100644 node_modules/caniuse-lite/data/regions/PL.js create mode 100644 node_modules/caniuse-lite/data/regions/PM.js create mode 100644 node_modules/caniuse-lite/data/regions/PN.js create mode 100644 node_modules/caniuse-lite/data/regions/PR.js create mode 100644 node_modules/caniuse-lite/data/regions/PS.js create mode 100644 node_modules/caniuse-lite/data/regions/PT.js create mode 100644 node_modules/caniuse-lite/data/regions/PW.js create mode 100644 node_modules/caniuse-lite/data/regions/PY.js create mode 100644 node_modules/caniuse-lite/data/regions/QA.js create mode 100644 node_modules/caniuse-lite/data/regions/RE.js create mode 100644 node_modules/caniuse-lite/data/regions/RO.js create mode 100644 node_modules/caniuse-lite/data/regions/RS.js create mode 100644 node_modules/caniuse-lite/data/regions/RU.js create mode 100644 node_modules/caniuse-lite/data/regions/RW.js create mode 100644 node_modules/caniuse-lite/data/regions/SA.js create mode 100644 node_modules/caniuse-lite/data/regions/SB.js create mode 100644 node_modules/caniuse-lite/data/regions/SC.js create mode 100644 node_modules/caniuse-lite/data/regions/SD.js create mode 100644 node_modules/caniuse-lite/data/regions/SE.js create mode 100644 node_modules/caniuse-lite/data/regions/SG.js create mode 100644 node_modules/caniuse-lite/data/regions/SH.js create mode 100644 node_modules/caniuse-lite/data/regions/SI.js create mode 100644 node_modules/caniuse-lite/data/regions/SK.js create mode 100644 node_modules/caniuse-lite/data/regions/SL.js create mode 100644 node_modules/caniuse-lite/data/regions/SM.js create mode 100644 node_modules/caniuse-lite/data/regions/SN.js create mode 100644 node_modules/caniuse-lite/data/regions/SO.js create mode 100644 node_modules/caniuse-lite/data/regions/SR.js create mode 100644 node_modules/caniuse-lite/data/regions/ST.js create mode 100644 node_modules/caniuse-lite/data/regions/SV.js create mode 100644 node_modules/caniuse-lite/data/regions/SY.js create mode 100644 node_modules/caniuse-lite/data/regions/SZ.js create mode 100644 node_modules/caniuse-lite/data/regions/TC.js create mode 100644 node_modules/caniuse-lite/data/regions/TD.js create mode 100644 node_modules/caniuse-lite/data/regions/TG.js create mode 100644 node_modules/caniuse-lite/data/regions/TH.js create mode 100644 node_modules/caniuse-lite/data/regions/TJ.js create mode 100644 node_modules/caniuse-lite/data/regions/TK.js create mode 100644 node_modules/caniuse-lite/data/regions/TL.js create mode 100644 node_modules/caniuse-lite/data/regions/TM.js create mode 100644 node_modules/caniuse-lite/data/regions/TN.js create mode 100644 node_modules/caniuse-lite/data/regions/TO.js create mode 100644 node_modules/caniuse-lite/data/regions/TR.js create mode 100644 node_modules/caniuse-lite/data/regions/TT.js create mode 100644 node_modules/caniuse-lite/data/regions/TV.js create mode 100644 node_modules/caniuse-lite/data/regions/TW.js create mode 100644 node_modules/caniuse-lite/data/regions/TZ.js create mode 100644 node_modules/caniuse-lite/data/regions/UA.js create mode 100644 node_modules/caniuse-lite/data/regions/UG.js create mode 100644 node_modules/caniuse-lite/data/regions/US.js create mode 100644 node_modules/caniuse-lite/data/regions/UY.js create mode 100644 node_modules/caniuse-lite/data/regions/UZ.js create mode 100644 node_modules/caniuse-lite/data/regions/VA.js create mode 100644 node_modules/caniuse-lite/data/regions/VC.js create mode 100644 node_modules/caniuse-lite/data/regions/VE.js create mode 100644 node_modules/caniuse-lite/data/regions/VG.js create mode 100644 node_modules/caniuse-lite/data/regions/VI.js create mode 100644 node_modules/caniuse-lite/data/regions/VN.js create mode 100644 node_modules/caniuse-lite/data/regions/VU.js create mode 100644 node_modules/caniuse-lite/data/regions/WF.js create mode 100644 node_modules/caniuse-lite/data/regions/WS.js create mode 100644 node_modules/caniuse-lite/data/regions/YE.js create mode 100644 node_modules/caniuse-lite/data/regions/YT.js create mode 100644 node_modules/caniuse-lite/data/regions/ZA.js create mode 100644 node_modules/caniuse-lite/data/regions/ZM.js create mode 100644 node_modules/caniuse-lite/data/regions/ZW.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-af.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-an.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-as.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-eu.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-na.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-oc.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-sa.js create mode 100644 node_modules/caniuse-lite/data/regions/alt-ww.js create mode 100644 node_modules/caniuse-lite/dist/lib/statuses.js create mode 100644 node_modules/caniuse-lite/dist/lib/supported.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/agents.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/browserVersions.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/browsers.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/feature.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/features.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/index.js create mode 100644 node_modules/caniuse-lite/dist/unpacker/region.js create mode 100644 node_modules/caniuse-lite/package.json create mode 100644 node_modules/chokidar/LICENSE create mode 100644 node_modules/chokidar/README.md create mode 100644 node_modules/chokidar/index.js create mode 100644 node_modules/chokidar/lib/constants.js create mode 100644 node_modules/chokidar/lib/fsevents-handler.js create mode 100644 node_modules/chokidar/lib/nodefs-handler.js create mode 100644 node_modules/chokidar/package.json create mode 100644 node_modules/chokidar/types/index.d.ts create mode 100644 node_modules/cliui/CHANGELOG.md create mode 100644 node_modules/cliui/LICENSE.txt create mode 100644 node_modules/cliui/README.md create mode 100644 node_modules/cliui/build/index.cjs create mode 100644 node_modules/cliui/build/index.d.cts create mode 100644 node_modules/cliui/build/lib/index.js create mode 100644 node_modules/cliui/build/lib/string-utils.js create mode 100644 node_modules/cliui/index.mjs create mode 100644 node_modules/cliui/package.json create mode 100644 node_modules/color-convert/CHANGELOG.md create mode 100644 node_modules/color-convert/LICENSE create mode 100644 node_modules/color-convert/README.md create mode 100644 node_modules/color-convert/conversions.js create mode 100644 node_modules/color-convert/index.js create mode 100644 node_modules/color-convert/package.json create mode 100644 node_modules/color-convert/route.js create mode 100644 node_modules/color-name/LICENSE create mode 100644 node_modules/color-name/README.md create mode 100644 node_modules/color-name/index.js create mode 100644 node_modules/color-name/package.json create mode 100644 node_modules/colord/CHANGELOG.md create mode 100644 node_modules/colord/LICENSE.md create mode 100644 node_modules/colord/README.md create mode 100644 node_modules/colord/colord.d.ts create mode 100644 node_modules/colord/constants.d.ts create mode 100644 node_modules/colord/extend.d.ts create mode 100644 node_modules/colord/helpers.d.ts create mode 100644 node_modules/colord/index.d.ts create mode 100644 node_modules/colord/index.js create mode 100644 node_modules/colord/index.mjs create mode 100644 node_modules/colord/package.json create mode 100644 node_modules/colord/parse.d.ts create mode 100644 node_modules/colord/plugins/a11y.d.ts create mode 100644 node_modules/colord/plugins/a11y.js create mode 100644 node_modules/colord/plugins/a11y.mjs create mode 100644 node_modules/colord/plugins/cmyk.d.ts create mode 100644 node_modules/colord/plugins/cmyk.js create mode 100644 node_modules/colord/plugins/cmyk.mjs create mode 100644 node_modules/colord/plugins/harmonies.d.ts create mode 100644 node_modules/colord/plugins/harmonies.js create mode 100644 node_modules/colord/plugins/harmonies.mjs create mode 100644 node_modules/colord/plugins/hwb.d.ts create mode 100644 node_modules/colord/plugins/hwb.js create mode 100644 node_modules/colord/plugins/hwb.mjs create mode 100644 node_modules/colord/plugins/lab.d.ts create mode 100644 node_modules/colord/plugins/lab.js create mode 100644 node_modules/colord/plugins/lab.mjs create mode 100644 node_modules/colord/plugins/lch.d.ts create mode 100644 node_modules/colord/plugins/lch.js create mode 100644 node_modules/colord/plugins/lch.mjs create mode 100644 node_modules/colord/plugins/minify.d.ts create mode 100644 node_modules/colord/plugins/minify.js create mode 100644 node_modules/colord/plugins/minify.mjs create mode 100644 node_modules/colord/plugins/mix.d.ts create mode 100644 node_modules/colord/plugins/mix.js create mode 100644 node_modules/colord/plugins/mix.mjs create mode 100644 node_modules/colord/plugins/names.d.ts create mode 100644 node_modules/colord/plugins/names.js create mode 100644 node_modules/colord/plugins/names.mjs create mode 100644 node_modules/colord/plugins/xyz.d.ts create mode 100644 node_modules/colord/plugins/xyz.js create mode 100644 node_modules/colord/plugins/xyz.mjs create mode 100644 node_modules/colord/random.d.ts create mode 100644 node_modules/colord/types.d.ts create mode 100644 node_modules/commander/CHANGELOG.md create mode 100644 node_modules/commander/LICENSE create mode 100644 node_modules/commander/Readme.md create mode 100644 node_modules/commander/esm.mjs create mode 100644 node_modules/commander/index.js create mode 100644 node_modules/commander/package-support.json create mode 100644 node_modules/commander/package.json create mode 100644 node_modules/commander/typings/index.d.ts create mode 100644 node_modules/css-blank-pseudo/CHANGELOG.md create mode 100644 node_modules/css-blank-pseudo/LICENSE.md create mode 100644 node_modules/css-blank-pseudo/README.md create mode 100644 node_modules/css-blank-pseudo/dist/browser-global.js create mode 100644 node_modules/css-blank-pseudo/dist/browser-global.js.map create mode 100644 node_modules/css-blank-pseudo/dist/browser.cjs create mode 100644 node_modules/css-blank-pseudo/dist/browser.cjs.map create mode 100644 node_modules/css-blank-pseudo/dist/browser.mjs create mode 100644 node_modules/css-blank-pseudo/dist/browser.mjs.map create mode 100644 node_modules/css-blank-pseudo/dist/index.cjs create mode 100644 node_modules/css-blank-pseudo/dist/index.d.ts create mode 100644 node_modules/css-blank-pseudo/dist/index.mjs create mode 100644 node_modules/css-blank-pseudo/package.json create mode 100644 node_modules/css-declaration-sorter/dist/main.cjs create mode 100644 node_modules/css-declaration-sorter/license.md create mode 100644 node_modules/css-declaration-sorter/orders/alphabetical.mjs create mode 100644 node_modules/css-declaration-sorter/orders/concentric-css.mjs create mode 100644 node_modules/css-declaration-sorter/orders/smacss.mjs create mode 100644 node_modules/css-declaration-sorter/package.json create mode 100644 node_modules/css-declaration-sorter/readme.md create mode 100644 node_modules/css-declaration-sorter/src/bubble-sort.mjs create mode 100644 node_modules/css-declaration-sorter/src/main.d.ts create mode 100644 node_modules/css-declaration-sorter/src/main.mjs create mode 100644 node_modules/css-declaration-sorter/src/shorthand-data.mjs create mode 100644 node_modules/css-has-pseudo/CHANGELOG.md create mode 100644 node_modules/css-has-pseudo/LICENSE.md create mode 100644 node_modules/css-has-pseudo/README.md create mode 100644 node_modules/css-has-pseudo/dist/browser-global.js create mode 100644 node_modules/css-has-pseudo/dist/browser-global.js.map create mode 100644 node_modules/css-has-pseudo/dist/browser.cjs create mode 100644 node_modules/css-has-pseudo/dist/browser.cjs.map create mode 100644 node_modules/css-has-pseudo/dist/browser.mjs create mode 100644 node_modules/css-has-pseudo/dist/browser.mjs.map create mode 100644 node_modules/css-has-pseudo/dist/index.cjs create mode 100644 node_modules/css-has-pseudo/dist/index.d.ts create mode 100644 node_modules/css-has-pseudo/dist/index.mjs create mode 100644 node_modules/css-has-pseudo/dist/is-guarded-by-at-supports.d.ts create mode 100644 node_modules/css-has-pseudo/package.json create mode 100644 node_modules/css-prefers-color-scheme/CHANGELOG.md create mode 100644 node_modules/css-prefers-color-scheme/LICENSE.md create mode 100644 node_modules/css-prefers-color-scheme/README.md create mode 100644 node_modules/css-prefers-color-scheme/dist/browser-global.js create mode 100644 node_modules/css-prefers-color-scheme/dist/browser-global.js.map create mode 100644 node_modules/css-prefers-color-scheme/dist/browser.cjs create mode 100644 node_modules/css-prefers-color-scheme/dist/browser.cjs.map create mode 100644 node_modules/css-prefers-color-scheme/dist/browser.mjs create mode 100644 node_modules/css-prefers-color-scheme/dist/browser.mjs.map create mode 100644 node_modules/css-prefers-color-scheme/dist/index.cjs create mode 100644 node_modules/css-prefers-color-scheme/dist/index.d.ts create mode 100644 node_modules/css-prefers-color-scheme/dist/index.mjs create mode 100644 node_modules/css-prefers-color-scheme/package.json create mode 100644 node_modules/css-select/LICENSE create mode 100644 node_modules/css-select/README.md create mode 100644 node_modules/css-select/lib/attributes.d.ts create mode 100644 node_modules/css-select/lib/attributes.d.ts.map create mode 100644 node_modules/css-select/lib/attributes.js create mode 100644 node_modules/css-select/lib/attributes.js.map create mode 100644 node_modules/css-select/lib/compile.d.ts create mode 100644 node_modules/css-select/lib/compile.d.ts.map create mode 100644 node_modules/css-select/lib/compile.js create mode 100644 node_modules/css-select/lib/compile.js.map create mode 100644 node_modules/css-select/lib/esm/attributes.d.ts create mode 100644 node_modules/css-select/lib/esm/attributes.d.ts.map create mode 100644 node_modules/css-select/lib/esm/attributes.js create mode 100644 node_modules/css-select/lib/esm/attributes.js.map create mode 100644 node_modules/css-select/lib/esm/compile.d.ts create mode 100644 node_modules/css-select/lib/esm/compile.d.ts.map create mode 100644 node_modules/css-select/lib/esm/compile.js create mode 100644 node_modules/css-select/lib/esm/compile.js.map create mode 100644 node_modules/css-select/lib/esm/general.d.ts create mode 100644 node_modules/css-select/lib/esm/general.d.ts.map create mode 100644 node_modules/css-select/lib/esm/general.js create mode 100644 node_modules/css-select/lib/esm/general.js.map create mode 100644 node_modules/css-select/lib/esm/index.d.ts create mode 100644 node_modules/css-select/lib/esm/index.d.ts.map create mode 100644 node_modules/css-select/lib/esm/index.js create mode 100644 node_modules/css-select/lib/esm/index.js.map create mode 100644 node_modules/css-select/lib/esm/package.json create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts.map create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/aliases.js create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/aliases.js.map create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts.map create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/filters.js create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/filters.js.map create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts.map create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/index.js create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/index.js.map create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts.map create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js.map create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts.map create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/subselects.js create mode 100644 node_modules/css-select/lib/esm/pseudo-selectors/subselects.js.map create mode 100644 node_modules/css-select/lib/esm/sort.d.ts create mode 100644 node_modules/css-select/lib/esm/sort.d.ts.map create mode 100644 node_modules/css-select/lib/esm/sort.js create mode 100644 node_modules/css-select/lib/esm/sort.js.map create mode 100644 node_modules/css-select/lib/esm/types.d.ts create mode 100644 node_modules/css-select/lib/esm/types.d.ts.map create mode 100644 node_modules/css-select/lib/esm/types.js create mode 100644 node_modules/css-select/lib/esm/types.js.map create mode 100644 node_modules/css-select/lib/general.d.ts create mode 100644 node_modules/css-select/lib/general.d.ts.map create mode 100644 node_modules/css-select/lib/general.js create mode 100644 node_modules/css-select/lib/general.js.map create mode 100644 node_modules/css-select/lib/index.d.ts create mode 100644 node_modules/css-select/lib/index.d.ts.map create mode 100644 node_modules/css-select/lib/index.js create mode 100644 node_modules/css-select/lib/index.js.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/aliases.d.ts create mode 100644 node_modules/css-select/lib/pseudo-selectors/aliases.d.ts.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/aliases.js create mode 100644 node_modules/css-select/lib/pseudo-selectors/aliases.js.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/filters.d.ts create mode 100644 node_modules/css-select/lib/pseudo-selectors/filters.d.ts.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/filters.js create mode 100644 node_modules/css-select/lib/pseudo-selectors/filters.js.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/index.d.ts create mode 100644 node_modules/css-select/lib/pseudo-selectors/index.d.ts.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/index.js create mode 100644 node_modules/css-select/lib/pseudo-selectors/index.js.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts create mode 100644 node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/pseudos.js create mode 100644 node_modules/css-select/lib/pseudo-selectors/pseudos.js.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/subselects.d.ts create mode 100644 node_modules/css-select/lib/pseudo-selectors/subselects.d.ts.map create mode 100644 node_modules/css-select/lib/pseudo-selectors/subselects.js create mode 100644 node_modules/css-select/lib/pseudo-selectors/subselects.js.map create mode 100644 node_modules/css-select/lib/sort.d.ts create mode 100644 node_modules/css-select/lib/sort.d.ts.map create mode 100644 node_modules/css-select/lib/sort.js create mode 100644 node_modules/css-select/lib/sort.js.map create mode 100644 node_modules/css-select/lib/types.d.ts create mode 100644 node_modules/css-select/lib/types.d.ts.map create mode 100644 node_modules/css-select/lib/types.js create mode 100644 node_modules/css-select/lib/types.js.map create mode 100644 node_modules/css-select/package.json create mode 100644 node_modules/css-tree/LICENSE create mode 100644 node_modules/css-tree/README.md create mode 100644 node_modules/css-tree/cjs/convertor/create.cjs create mode 100644 node_modules/css-tree/cjs/convertor/index.cjs create mode 100644 node_modules/css-tree/cjs/data-patch.cjs create mode 100644 node_modules/css-tree/cjs/data.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/SyntaxError.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/generate.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/index.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/parse.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/tokenizer.cjs create mode 100644 node_modules/css-tree/cjs/definition-syntax/walk.cjs create mode 100644 node_modules/css-tree/cjs/generator/create.cjs create mode 100644 node_modules/css-tree/cjs/generator/index.cjs create mode 100644 node_modules/css-tree/cjs/generator/sourceMap.cjs create mode 100644 node_modules/css-tree/cjs/generator/token-before.cjs create mode 100644 node_modules/css-tree/cjs/index.cjs create mode 100644 node_modules/css-tree/cjs/lexer/Lexer.cjs create mode 100644 node_modules/css-tree/cjs/lexer/error.cjs create mode 100644 node_modules/css-tree/cjs/lexer/generic-an-plus-b.cjs create mode 100644 node_modules/css-tree/cjs/lexer/generic-const.cjs create mode 100644 node_modules/css-tree/cjs/lexer/generic-urange.cjs create mode 100644 node_modules/css-tree/cjs/lexer/generic.cjs create mode 100644 node_modules/css-tree/cjs/lexer/index.cjs create mode 100644 node_modules/css-tree/cjs/lexer/match-graph.cjs create mode 100644 node_modules/css-tree/cjs/lexer/match.cjs create mode 100644 node_modules/css-tree/cjs/lexer/prepare-tokens.cjs create mode 100644 node_modules/css-tree/cjs/lexer/search.cjs create mode 100644 node_modules/css-tree/cjs/lexer/structure.cjs create mode 100644 node_modules/css-tree/cjs/lexer/trace.cjs create mode 100644 node_modules/css-tree/cjs/lexer/units.cjs create mode 100644 node_modules/css-tree/cjs/parser/SyntaxError.cjs create mode 100644 node_modules/css-tree/cjs/parser/create.cjs create mode 100644 node_modules/css-tree/cjs/parser/index.cjs create mode 100644 node_modules/css-tree/cjs/parser/parse-selector.cjs create mode 100644 node_modules/css-tree/cjs/parser/sequence.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/font-face.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/import.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/media.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/nest.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/page.cjs create mode 100644 node_modules/css-tree/cjs/syntax/atrule/supports.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/generator.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/lexer.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/mix.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/parser-selector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/parser.cjs create mode 100644 node_modules/css-tree/cjs/syntax/config/walker.cjs create mode 100644 node_modules/css-tree/cjs/syntax/create.cjs create mode 100644 node_modules/css-tree/cjs/syntax/function/expression.cjs create mode 100644 node_modules/css-tree/cjs/syntax/function/var.cjs create mode 100644 node_modules/css-tree/cjs/syntax/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/AnPlusB.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Atrule.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/AtrulePrelude.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/AttributeSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Block.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Brackets.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/CDC.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/CDO.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/ClassSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Combinator.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Comment.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Condition.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Declaration.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/DeclarationList.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Dimension.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Feature.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/FeatureRange.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Function.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/GeneralEnclosed.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Hash.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/IdSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Identifier.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaCondition.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaFeature.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaFeatureRange.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaQuery.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/MediaQueryList.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/NestingSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Nth.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Number.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Operator.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Parentheses.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Percentage.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/PseudoClassSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/PseudoElementSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Ratio.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Raw.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Rule.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Selector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/SelectorList.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/String.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/StyleSheet.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/TypeSelector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/UnicodeRange.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Url.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/Value.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/WhiteSpace.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/common/feature-range.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/common/feature.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/index-generate.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/index-parse-selector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/index-parse.cjs create mode 100644 node_modules/css-tree/cjs/syntax/node/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/pseudo/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/atrulePrelude.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/default.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/index.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/selector.cjs create mode 100644 node_modules/css-tree/cjs/syntax/scope/value.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/OffsetToLocation.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/TokenStream.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/adopt-buffer.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/char-code-definitions.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/index.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/names.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/types.cjs create mode 100644 node_modules/css-tree/cjs/tokenizer/utils.cjs create mode 100644 node_modules/css-tree/cjs/utils/List.cjs create mode 100644 node_modules/css-tree/cjs/utils/clone.cjs create mode 100644 node_modules/css-tree/cjs/utils/create-custom-error.cjs create mode 100644 node_modules/css-tree/cjs/utils/ident.cjs create mode 100644 node_modules/css-tree/cjs/utils/index.cjs create mode 100644 node_modules/css-tree/cjs/utils/names.cjs create mode 100644 node_modules/css-tree/cjs/utils/string.cjs create mode 100644 node_modules/css-tree/cjs/utils/url.cjs create mode 100644 node_modules/css-tree/cjs/version.cjs create mode 100644 node_modules/css-tree/cjs/walker/create.cjs create mode 100644 node_modules/css-tree/cjs/walker/index.cjs create mode 100644 node_modules/css-tree/data/patch.json create mode 100644 node_modules/css-tree/dist/csstree.esm.js create mode 100644 node_modules/css-tree/dist/csstree.js create mode 100644 node_modules/css-tree/dist/data.cjs create mode 100644 node_modules/css-tree/dist/data.js create mode 100644 node_modules/css-tree/dist/version.cjs create mode 100644 node_modules/css-tree/dist/version.js create mode 100644 node_modules/css-tree/lib/convertor/create.js create mode 100644 node_modules/css-tree/lib/convertor/index.js create mode 100644 node_modules/css-tree/lib/data-patch.js create mode 100755 node_modules/css-tree/lib/data.js create mode 100644 node_modules/css-tree/lib/definition-syntax/SyntaxError.js create mode 100644 node_modules/css-tree/lib/definition-syntax/generate.js create mode 100644 node_modules/css-tree/lib/definition-syntax/index.js create mode 100644 node_modules/css-tree/lib/definition-syntax/parse.js create mode 100644 node_modules/css-tree/lib/definition-syntax/tokenizer.js create mode 100644 node_modules/css-tree/lib/definition-syntax/walk.js create mode 100644 node_modules/css-tree/lib/generator/create.js create mode 100644 node_modules/css-tree/lib/generator/index.js create mode 100644 node_modules/css-tree/lib/generator/sourceMap.js create mode 100644 node_modules/css-tree/lib/generator/token-before.js create mode 100644 node_modules/css-tree/lib/index.js create mode 100644 node_modules/css-tree/lib/lexer/Lexer.js create mode 100644 node_modules/css-tree/lib/lexer/error.js create mode 100644 node_modules/css-tree/lib/lexer/generic-an-plus-b.js create mode 100644 node_modules/css-tree/lib/lexer/generic-const.js create mode 100644 node_modules/css-tree/lib/lexer/generic-urange.js create mode 100644 node_modules/css-tree/lib/lexer/generic.js create mode 100644 node_modules/css-tree/lib/lexer/index.js create mode 100644 node_modules/css-tree/lib/lexer/match-graph.js create mode 100644 node_modules/css-tree/lib/lexer/match.js create mode 100644 node_modules/css-tree/lib/lexer/prepare-tokens.js create mode 100644 node_modules/css-tree/lib/lexer/search.js create mode 100644 node_modules/css-tree/lib/lexer/structure.js create mode 100644 node_modules/css-tree/lib/lexer/trace.js create mode 100644 node_modules/css-tree/lib/lexer/units.js create mode 100644 node_modules/css-tree/lib/parser/SyntaxError.js create mode 100644 node_modules/css-tree/lib/parser/create.js create mode 100644 node_modules/css-tree/lib/parser/index.js create mode 100644 node_modules/css-tree/lib/parser/parse-selector.js create mode 100644 node_modules/css-tree/lib/parser/sequence.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/font-face.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/import.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/index.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/media.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/nest.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/page.js create mode 100644 node_modules/css-tree/lib/syntax/atrule/supports.js create mode 100644 node_modules/css-tree/lib/syntax/config/generator.js create mode 100644 node_modules/css-tree/lib/syntax/config/lexer.js create mode 100644 node_modules/css-tree/lib/syntax/config/mix.js create mode 100644 node_modules/css-tree/lib/syntax/config/parser-selector.js create mode 100644 node_modules/css-tree/lib/syntax/config/parser.js create mode 100644 node_modules/css-tree/lib/syntax/config/walker.js create mode 100644 node_modules/css-tree/lib/syntax/create.js create mode 100644 node_modules/css-tree/lib/syntax/function/expression.js create mode 100644 node_modules/css-tree/lib/syntax/function/var.js create mode 100644 node_modules/css-tree/lib/syntax/index.js create mode 100644 node_modules/css-tree/lib/syntax/node/AnPlusB.js create mode 100644 node_modules/css-tree/lib/syntax/node/Atrule.js create mode 100644 node_modules/css-tree/lib/syntax/node/AtrulePrelude.js create mode 100644 node_modules/css-tree/lib/syntax/node/AttributeSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Block.js create mode 100644 node_modules/css-tree/lib/syntax/node/Brackets.js create mode 100644 node_modules/css-tree/lib/syntax/node/CDC.js create mode 100644 node_modules/css-tree/lib/syntax/node/CDO.js create mode 100644 node_modules/css-tree/lib/syntax/node/ClassSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Combinator.js create mode 100644 node_modules/css-tree/lib/syntax/node/Comment.js create mode 100644 node_modules/css-tree/lib/syntax/node/Declaration.js create mode 100644 node_modules/css-tree/lib/syntax/node/DeclarationList.js create mode 100644 node_modules/css-tree/lib/syntax/node/Dimension.js create mode 100644 node_modules/css-tree/lib/syntax/node/Function.js create mode 100644 node_modules/css-tree/lib/syntax/node/Hash.js create mode 100644 node_modules/css-tree/lib/syntax/node/IdSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Identifier.js create mode 100644 node_modules/css-tree/lib/syntax/node/MediaFeature.js create mode 100644 node_modules/css-tree/lib/syntax/node/MediaQuery.js create mode 100644 node_modules/css-tree/lib/syntax/node/MediaQueryList.js create mode 100644 node_modules/css-tree/lib/syntax/node/NestingSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Nth.js create mode 100644 node_modules/css-tree/lib/syntax/node/Number.js create mode 100644 node_modules/css-tree/lib/syntax/node/Operator.js create mode 100644 node_modules/css-tree/lib/syntax/node/Parentheses.js create mode 100644 node_modules/css-tree/lib/syntax/node/Percentage.js create mode 100644 node_modules/css-tree/lib/syntax/node/PseudoClassSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/PseudoElementSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/Ratio.js create mode 100644 node_modules/css-tree/lib/syntax/node/Raw.js create mode 100644 node_modules/css-tree/lib/syntax/node/Rule.js create mode 100644 node_modules/css-tree/lib/syntax/node/Selector.js create mode 100644 node_modules/css-tree/lib/syntax/node/SelectorList.js create mode 100644 node_modules/css-tree/lib/syntax/node/String.js create mode 100644 node_modules/css-tree/lib/syntax/node/StyleSheet.js create mode 100644 node_modules/css-tree/lib/syntax/node/TypeSelector.js create mode 100644 node_modules/css-tree/lib/syntax/node/UnicodeRange.js create mode 100644 node_modules/css-tree/lib/syntax/node/Url.js create mode 100644 node_modules/css-tree/lib/syntax/node/Value.js create mode 100644 node_modules/css-tree/lib/syntax/node/WhiteSpace.js create mode 100644 node_modules/css-tree/lib/syntax/node/index-generate.js create mode 100644 node_modules/css-tree/lib/syntax/node/index-parse-selector.js create mode 100644 node_modules/css-tree/lib/syntax/node/index-parse.js create mode 100644 node_modules/css-tree/lib/syntax/node/index.js create mode 100644 node_modules/css-tree/lib/syntax/pseudo/index.js create mode 100644 node_modules/css-tree/lib/syntax/scope/atrulePrelude.js create mode 100644 node_modules/css-tree/lib/syntax/scope/default.js create mode 100644 node_modules/css-tree/lib/syntax/scope/index.js create mode 100644 node_modules/css-tree/lib/syntax/scope/selector.js create mode 100644 node_modules/css-tree/lib/syntax/scope/value.js create mode 100644 node_modules/css-tree/lib/tokenizer/OffsetToLocation.js create mode 100644 node_modules/css-tree/lib/tokenizer/TokenStream.js create mode 100644 node_modules/css-tree/lib/tokenizer/adopt-buffer.js create mode 100644 node_modules/css-tree/lib/tokenizer/char-code-definitions.js create mode 100644 node_modules/css-tree/lib/tokenizer/index.js create mode 100644 node_modules/css-tree/lib/tokenizer/names.js create mode 100644 node_modules/css-tree/lib/tokenizer/types.js create mode 100644 node_modules/css-tree/lib/tokenizer/utils.js create mode 100644 node_modules/css-tree/lib/utils/List.js create mode 100644 node_modules/css-tree/lib/utils/clone.js create mode 100644 node_modules/css-tree/lib/utils/create-custom-error.js create mode 100644 node_modules/css-tree/lib/utils/ident.js create mode 100644 node_modules/css-tree/lib/utils/index.js create mode 100644 node_modules/css-tree/lib/utils/names.js create mode 100644 node_modules/css-tree/lib/utils/string.js create mode 100644 node_modules/css-tree/lib/utils/url.js create mode 100644 node_modules/css-tree/lib/version.js create mode 100644 node_modules/css-tree/lib/walker/create.js create mode 100644 node_modules/css-tree/lib/walker/index.js create mode 100644 node_modules/css-tree/package.json create mode 100644 node_modules/css-what/LICENSE create mode 100644 node_modules/css-what/lib/commonjs/index.d.ts create mode 100644 node_modules/css-what/lib/commonjs/index.d.ts.map create mode 100644 node_modules/css-what/lib/commonjs/index.js create mode 100644 node_modules/css-what/lib/commonjs/parse.d.ts create mode 100644 node_modules/css-what/lib/commonjs/parse.d.ts.map create mode 100644 node_modules/css-what/lib/commonjs/parse.js create mode 100644 node_modules/css-what/lib/commonjs/stringify.d.ts create mode 100644 node_modules/css-what/lib/commonjs/stringify.d.ts.map create mode 100644 node_modules/css-what/lib/commonjs/stringify.js create mode 100644 node_modules/css-what/lib/commonjs/types.d.ts create mode 100644 node_modules/css-what/lib/commonjs/types.d.ts.map create mode 100644 node_modules/css-what/lib/commonjs/types.js create mode 100644 node_modules/css-what/lib/es/index.d.ts create mode 100644 node_modules/css-what/lib/es/index.d.ts.map create mode 100644 node_modules/css-what/lib/es/index.js create mode 100644 node_modules/css-what/lib/es/parse.d.ts create mode 100644 node_modules/css-what/lib/es/parse.d.ts.map create mode 100644 node_modules/css-what/lib/es/parse.js create mode 100644 node_modules/css-what/lib/es/stringify.d.ts create mode 100644 node_modules/css-what/lib/es/stringify.d.ts.map create mode 100644 node_modules/css-what/lib/es/stringify.js create mode 100644 node_modules/css-what/lib/es/types.d.ts create mode 100644 node_modules/css-what/lib/es/types.d.ts.map create mode 100644 node_modules/css-what/lib/es/types.js create mode 100644 node_modules/css-what/package.json create mode 100644 node_modules/css-what/readme.md create mode 100644 node_modules/cssdb/LICENSE.md create mode 100644 node_modules/cssdb/README.md create mode 100644 node_modules/cssdb/cssdb.json create mode 100644 node_modules/cssdb/cssdb.mjs create mode 100644 node_modules/cssdb/package.json create mode 100644 node_modules/cssesc/LICENSE-MIT.txt create mode 100644 node_modules/cssesc/README.md create mode 100755 node_modules/cssesc/bin/cssesc create mode 100644 node_modules/cssesc/cssesc.js create mode 100644 node_modules/cssesc/man/cssesc.1 create mode 100644 node_modules/cssesc/package.json create mode 100644 node_modules/cssnano-preset-default/LICENSE-MIT create mode 100644 node_modules/cssnano-preset-default/README.md create mode 100644 node_modules/cssnano-preset-default/package.json create mode 100644 node_modules/cssnano-preset-default/src/index.js create mode 100644 node_modules/cssnano-preset-default/types/index.d.ts create mode 100644 node_modules/cssnano-utils/LICENSE create mode 100644 node_modules/cssnano-utils/README.md create mode 100644 node_modules/cssnano-utils/package.json create mode 100644 node_modules/cssnano-utils/src/getArguments.js create mode 100644 node_modules/cssnano-utils/src/index.js create mode 100644 node_modules/cssnano-utils/src/rawCache.js create mode 100644 node_modules/cssnano-utils/src/sameParent.js create mode 100644 node_modules/cssnano-utils/types/getArguments.d.ts create mode 100644 node_modules/cssnano-utils/types/index.d.ts create mode 100644 node_modules/cssnano-utils/types/rawCache.d.ts create mode 100644 node_modules/cssnano-utils/types/sameParent.d.ts create mode 100644 node_modules/cssnano/LICENSE-MIT create mode 100644 node_modules/cssnano/README.md create mode 100644 node_modules/cssnano/package.json create mode 100644 node_modules/cssnano/src/index.js create mode 100644 node_modules/cssnano/types/index.d.ts create mode 100644 node_modules/csso/LICENSE create mode 100644 node_modules/csso/README.md create mode 100644 node_modules/csso/cjs/clean/Atrule.cjs create mode 100644 node_modules/csso/cjs/clean/Comment.cjs create mode 100644 node_modules/csso/cjs/clean/Declaration.cjs create mode 100644 node_modules/csso/cjs/clean/Raw.cjs create mode 100644 node_modules/csso/cjs/clean/Rule.cjs create mode 100644 node_modules/csso/cjs/clean/TypeSelector.cjs create mode 100644 node_modules/csso/cjs/clean/WhiteSpace.cjs create mode 100644 node_modules/csso/cjs/clean/index.cjs create mode 100644 node_modules/csso/cjs/clean/utils.cjs create mode 100644 node_modules/csso/cjs/compress.cjs create mode 100644 node_modules/csso/cjs/index.cjs create mode 100644 node_modules/csso/cjs/replace/Atrule.cjs create mode 100644 node_modules/csso/cjs/replace/AttributeSelector.cjs create mode 100644 node_modules/csso/cjs/replace/Dimension.cjs create mode 100644 node_modules/csso/cjs/replace/Number.cjs create mode 100644 node_modules/csso/cjs/replace/Percentage.cjs create mode 100644 node_modules/csso/cjs/replace/Url.cjs create mode 100644 node_modules/csso/cjs/replace/Value.cjs create mode 100644 node_modules/csso/cjs/replace/atrule/keyframes.cjs create mode 100644 node_modules/csso/cjs/replace/color.cjs create mode 100644 node_modules/csso/cjs/replace/index.cjs create mode 100644 node_modules/csso/cjs/replace/property/background.cjs create mode 100644 node_modules/csso/cjs/replace/property/border.cjs create mode 100644 node_modules/csso/cjs/replace/property/font-weight.cjs create mode 100644 node_modules/csso/cjs/replace/property/font.cjs create mode 100644 node_modules/csso/cjs/restructure/1-mergeAtrule.cjs create mode 100644 node_modules/csso/cjs/restructure/2-initialMergeRuleset.cjs create mode 100644 node_modules/csso/cjs/restructure/3-disjoinRuleset.cjs create mode 100644 node_modules/csso/cjs/restructure/4-restructShorthand.cjs create mode 100644 node_modules/csso/cjs/restructure/6-restructBlock.cjs create mode 100644 node_modules/csso/cjs/restructure/7-mergeRuleset.cjs create mode 100644 node_modules/csso/cjs/restructure/8-restructRuleset.cjs create mode 100644 node_modules/csso/cjs/restructure/index.cjs create mode 100644 node_modules/csso/cjs/restructure/prepare/createDeclarationIndexer.cjs create mode 100644 node_modules/csso/cjs/restructure/prepare/index.cjs create mode 100644 node_modules/csso/cjs/restructure/prepare/processSelector.cjs create mode 100644 node_modules/csso/cjs/restructure/prepare/specificity.cjs create mode 100644 node_modules/csso/cjs/restructure/utils.cjs create mode 100644 node_modules/csso/cjs/syntax.cjs create mode 100644 node_modules/csso/cjs/usage.cjs create mode 100644 node_modules/csso/cjs/utils.cjs create mode 100644 node_modules/csso/cjs/version.cjs create mode 100644 node_modules/csso/dist/csso.esm.js create mode 100644 node_modules/csso/dist/csso.js create mode 100644 node_modules/csso/dist/version.cjs create mode 100644 node_modules/csso/dist/version.js create mode 100644 node_modules/csso/lib/clean/Atrule.js create mode 100644 node_modules/csso/lib/clean/Comment.js create mode 100644 node_modules/csso/lib/clean/Declaration.js create mode 100644 node_modules/csso/lib/clean/Raw.js create mode 100644 node_modules/csso/lib/clean/Rule.js create mode 100644 node_modules/csso/lib/clean/TypeSelector.js create mode 100644 node_modules/csso/lib/clean/WhiteSpace.js create mode 100644 node_modules/csso/lib/clean/index.js create mode 100644 node_modules/csso/lib/clean/utils.js create mode 100644 node_modules/csso/lib/compress.js create mode 100644 node_modules/csso/lib/index.js create mode 100644 node_modules/csso/lib/replace/Atrule.js create mode 100644 node_modules/csso/lib/replace/AttributeSelector.js create mode 100644 node_modules/csso/lib/replace/Dimension.js create mode 100644 node_modules/csso/lib/replace/Number.js create mode 100644 node_modules/csso/lib/replace/Percentage.js create mode 100644 node_modules/csso/lib/replace/Url.js create mode 100644 node_modules/csso/lib/replace/Value.js create mode 100644 node_modules/csso/lib/replace/atrule/keyframes.js create mode 100644 node_modules/csso/lib/replace/color.js create mode 100644 node_modules/csso/lib/replace/index.js create mode 100644 node_modules/csso/lib/replace/property/background.js create mode 100644 node_modules/csso/lib/replace/property/border.js create mode 100644 node_modules/csso/lib/replace/property/font-weight.js create mode 100644 node_modules/csso/lib/replace/property/font.js create mode 100644 node_modules/csso/lib/restructure/1-mergeAtrule.js create mode 100644 node_modules/csso/lib/restructure/2-initialMergeRuleset.js create mode 100644 node_modules/csso/lib/restructure/3-disjoinRuleset.js create mode 100644 node_modules/csso/lib/restructure/4-restructShorthand.js create mode 100644 node_modules/csso/lib/restructure/6-restructBlock.js create mode 100644 node_modules/csso/lib/restructure/7-mergeRuleset.js create mode 100644 node_modules/csso/lib/restructure/8-restructRuleset.js create mode 100644 node_modules/csso/lib/restructure/index.js create mode 100644 node_modules/csso/lib/restructure/prepare/createDeclarationIndexer.js create mode 100644 node_modules/csso/lib/restructure/prepare/index.js create mode 100644 node_modules/csso/lib/restructure/prepare/processSelector.js create mode 100644 node_modules/csso/lib/restructure/prepare/specificity.js create mode 100644 node_modules/csso/lib/restructure/utils.js create mode 100644 node_modules/csso/lib/syntax.js create mode 100644 node_modules/csso/lib/usage.js create mode 100644 node_modules/csso/lib/utils.js create mode 100644 node_modules/csso/lib/version.js create mode 100644 node_modules/csso/node_modules/css-tree/LICENSE create mode 100644 node_modules/csso/node_modules/css-tree/README.md create mode 100644 node_modules/csso/node_modules/css-tree/cjs/convertor/create.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/convertor/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/data-patch.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/data.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/definition-syntax/SyntaxError.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/definition-syntax/generate.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/definition-syntax/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/definition-syntax/parse.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/definition-syntax/tokenizer.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/definition-syntax/walk.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/generator/create.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/generator/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/generator/sourceMap.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/generator/token-before.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/Lexer.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/error.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/generic-an-plus-b.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/generic-const.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/generic-urange.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/generic.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/match-graph.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/match.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/prepare-tokens.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/search.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/structure.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/lexer/trace.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/parser/SyntaxError.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/parser/create.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/parser/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/parser/parse-selector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/parser/sequence.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/atrule/font-face.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/atrule/import.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/atrule/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/atrule/media.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/atrule/page.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/atrule/supports.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/config/generator.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/config/lexer.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/config/mix.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/config/parser-selector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/config/parser.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/config/walker.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/create.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/function/expression.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/function/var.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/AnPlusB.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Atrule.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/AtrulePrelude.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/AttributeSelector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Block.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Brackets.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/CDC.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/CDO.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/ClassSelector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Combinator.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Comment.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Declaration.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/DeclarationList.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Dimension.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Function.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Hash.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/IdSelector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Identifier.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/MediaFeature.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/MediaQuery.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/MediaQueryList.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Nth.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Number.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Operator.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Parentheses.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Percentage.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/PseudoClassSelector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/PseudoElementSelector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Ratio.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Raw.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Rule.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Selector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/SelectorList.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/String.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/StyleSheet.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/TypeSelector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/UnicodeRange.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Url.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/Value.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/WhiteSpace.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/index-generate.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/index-parse-selector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/index-parse.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/node/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/pseudo/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/scope/atrulePrelude.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/scope/default.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/scope/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/scope/selector.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/syntax/scope/value.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/tokenizer/OffsetToLocation.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/tokenizer/TokenStream.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/tokenizer/adopt-buffer.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/tokenizer/char-code-definitions.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/tokenizer/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/tokenizer/names.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/tokenizer/types.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/tokenizer/utils.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/utils/List.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/utils/clone.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/utils/create-custom-error.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/utils/ident.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/utils/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/utils/names.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/utils/string.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/utils/url.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/version.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/walker/create.cjs create mode 100644 node_modules/csso/node_modules/css-tree/cjs/walker/index.cjs create mode 100644 node_modules/csso/node_modules/css-tree/data/patch.json create mode 100644 node_modules/csso/node_modules/css-tree/dist/csstree.esm.js create mode 100644 node_modules/csso/node_modules/css-tree/dist/csstree.js create mode 100644 node_modules/csso/node_modules/css-tree/dist/data.cjs create mode 100644 node_modules/csso/node_modules/css-tree/dist/data.js create mode 100644 node_modules/csso/node_modules/css-tree/dist/version.cjs create mode 100644 node_modules/csso/node_modules/css-tree/dist/version.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/convertor/create.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/convertor/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/data-patch.js create mode 100755 node_modules/csso/node_modules/css-tree/lib/data.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/definition-syntax/SyntaxError.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/definition-syntax/generate.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/definition-syntax/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/definition-syntax/parse.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/definition-syntax/tokenizer.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/definition-syntax/walk.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/generator/create.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/generator/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/generator/sourceMap.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/generator/token-before.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/Lexer.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/error.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/generic-an-plus-b.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/generic-const.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/generic-urange.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/generic.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/match-graph.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/match.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/prepare-tokens.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/search.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/structure.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/lexer/trace.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/parser/SyntaxError.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/parser/create.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/parser/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/parser/parse-selector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/parser/sequence.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/atrule/font-face.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/atrule/import.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/atrule/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/atrule/media.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/atrule/page.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/atrule/supports.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/config/generator.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/config/lexer.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/config/mix.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/config/parser-selector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/config/parser.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/config/walker.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/create.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/function/expression.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/function/var.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/AnPlusB.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Atrule.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/AtrulePrelude.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/AttributeSelector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Block.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Brackets.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/CDC.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/CDO.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/ClassSelector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Combinator.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Comment.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Declaration.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/DeclarationList.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Dimension.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Function.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Hash.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/IdSelector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Identifier.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/MediaFeature.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/MediaQuery.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/MediaQueryList.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Nth.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Number.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Operator.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Parentheses.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Percentage.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/PseudoClassSelector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/PseudoElementSelector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Ratio.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Raw.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Rule.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Selector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/SelectorList.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/String.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/StyleSheet.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/TypeSelector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/UnicodeRange.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Url.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/Value.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/WhiteSpace.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/index-generate.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/index-parse-selector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/index-parse.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/node/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/pseudo/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/scope/atrulePrelude.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/scope/default.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/scope/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/scope/selector.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/syntax/scope/value.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/tokenizer/OffsetToLocation.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/tokenizer/TokenStream.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/tokenizer/adopt-buffer.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/tokenizer/char-code-definitions.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/tokenizer/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/tokenizer/names.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/tokenizer/types.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/tokenizer/utils.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/utils/List.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/utils/clone.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/utils/create-custom-error.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/utils/ident.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/utils/index.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/utils/names.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/utils/string.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/utils/url.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/version.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/walker/create.js create mode 100644 node_modules/csso/node_modules/css-tree/lib/walker/index.js create mode 100644 node_modules/csso/node_modules/css-tree/package.json create mode 100644 node_modules/csso/node_modules/mdn-data/CHANGELOG.md create mode 100644 node_modules/csso/node_modules/mdn-data/LICENSE create mode 100644 node_modules/csso/node_modules/mdn-data/README.md create mode 100644 node_modules/csso/node_modules/mdn-data/api/index.js create mode 100644 node_modules/csso/node_modules/mdn-data/api/inheritance.json create mode 100644 node_modules/csso/node_modules/mdn-data/api/inheritance.schema.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/at-rules.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/at-rules.schema.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/definitions.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/index.js create mode 100644 node_modules/csso/node_modules/mdn-data/css/properties.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/properties.schema.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/readme.md create mode 100644 node_modules/csso/node_modules/mdn-data/css/selectors.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/selectors.schema.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/syntaxes.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/syntaxes.schema.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/types.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/types.schema.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/units.json create mode 100644 node_modules/csso/node_modules/mdn-data/css/units.schema.json create mode 100644 node_modules/csso/node_modules/mdn-data/index.js create mode 100644 node_modules/csso/node_modules/mdn-data/l10n/css.json create mode 100644 node_modules/csso/node_modules/mdn-data/l10n/index.js create mode 100644 node_modules/csso/node_modules/mdn-data/package.json create mode 100644 node_modules/csso/package.json create mode 100755 node_modules/dependency-graph/CHANGELOG.md create mode 100755 node_modules/dependency-graph/LICENSE create mode 100755 node_modules/dependency-graph/README.md create mode 100755 node_modules/dependency-graph/lib/dep_graph.js create mode 100755 node_modules/dependency-graph/lib/index.d.ts create mode 100755 node_modules/dependency-graph/package.json create mode 100755 node_modules/dependency-graph/specs/dep_graph_spec.js create mode 100644 node_modules/dir-glob/index.js create mode 100644 node_modules/dir-glob/license create mode 100644 node_modules/dir-glob/package.json create mode 100644 node_modules/dir-glob/readme.md create mode 100644 node_modules/dom-serializer/LICENSE create mode 100644 node_modules/dom-serializer/README.md create mode 100644 node_modules/dom-serializer/lib/esm/foreignNames.d.ts create mode 100644 node_modules/dom-serializer/lib/esm/foreignNames.d.ts.map create mode 100644 node_modules/dom-serializer/lib/esm/foreignNames.js create mode 100644 node_modules/dom-serializer/lib/esm/index.d.ts create mode 100644 node_modules/dom-serializer/lib/esm/index.d.ts.map create mode 100644 node_modules/dom-serializer/lib/esm/index.js create mode 100644 node_modules/dom-serializer/lib/esm/package.json create mode 100644 node_modules/dom-serializer/lib/foreignNames.d.ts create mode 100644 node_modules/dom-serializer/lib/foreignNames.d.ts.map create mode 100644 node_modules/dom-serializer/lib/foreignNames.js create mode 100644 node_modules/dom-serializer/lib/index.d.ts create mode 100644 node_modules/dom-serializer/lib/index.d.ts.map create mode 100644 node_modules/dom-serializer/lib/index.js create mode 100644 node_modules/dom-serializer/package.json create mode 100644 node_modules/domelementtype/LICENSE create mode 100644 node_modules/domelementtype/lib/esm/index.d.ts create mode 100644 node_modules/domelementtype/lib/esm/index.d.ts.map create mode 100644 node_modules/domelementtype/lib/esm/index.js create mode 100644 node_modules/domelementtype/lib/esm/package.json create mode 100644 node_modules/domelementtype/lib/index.d.ts create mode 100644 node_modules/domelementtype/lib/index.d.ts.map create mode 100644 node_modules/domelementtype/lib/index.js create mode 100644 node_modules/domelementtype/package.json create mode 100644 node_modules/domelementtype/readme.md create mode 100644 node_modules/domhandler/LICENSE create mode 100644 node_modules/domhandler/lib/esm/index.d.ts create mode 100644 node_modules/domhandler/lib/esm/index.d.ts.map create mode 100644 node_modules/domhandler/lib/esm/index.js create mode 100644 node_modules/domhandler/lib/esm/node.d.ts create mode 100644 node_modules/domhandler/lib/esm/node.d.ts.map create mode 100644 node_modules/domhandler/lib/esm/node.js create mode 100644 node_modules/domhandler/lib/esm/package.json create mode 100644 node_modules/domhandler/lib/index.d.ts create mode 100644 node_modules/domhandler/lib/index.d.ts.map create mode 100644 node_modules/domhandler/lib/index.js create mode 100644 node_modules/domhandler/lib/node.d.ts create mode 100644 node_modules/domhandler/lib/node.d.ts.map create mode 100644 node_modules/domhandler/lib/node.js create mode 100644 node_modules/domhandler/package.json create mode 100644 node_modules/domhandler/readme.md create mode 100644 node_modules/domutils/LICENSE create mode 100644 node_modules/domutils/lib/esm/feeds.d.ts create mode 100644 node_modules/domutils/lib/esm/feeds.d.ts.map create mode 100644 node_modules/domutils/lib/esm/feeds.js create mode 100644 node_modules/domutils/lib/esm/feeds.js.map create mode 100644 node_modules/domutils/lib/esm/helpers.d.ts create mode 100644 node_modules/domutils/lib/esm/helpers.d.ts.map create mode 100644 node_modules/domutils/lib/esm/helpers.js create mode 100644 node_modules/domutils/lib/esm/helpers.js.map create mode 100644 node_modules/domutils/lib/esm/index.d.ts create mode 100644 node_modules/domutils/lib/esm/index.d.ts.map create mode 100644 node_modules/domutils/lib/esm/index.js create mode 100644 node_modules/domutils/lib/esm/index.js.map create mode 100644 node_modules/domutils/lib/esm/legacy.d.ts create mode 100644 node_modules/domutils/lib/esm/legacy.d.ts.map create mode 100644 node_modules/domutils/lib/esm/legacy.js create mode 100644 node_modules/domutils/lib/esm/legacy.js.map create mode 100644 node_modules/domutils/lib/esm/manipulation.d.ts create mode 100644 node_modules/domutils/lib/esm/manipulation.d.ts.map create mode 100644 node_modules/domutils/lib/esm/manipulation.js create mode 100644 node_modules/domutils/lib/esm/manipulation.js.map create mode 100644 node_modules/domutils/lib/esm/package.json create mode 100644 node_modules/domutils/lib/esm/querying.d.ts create mode 100644 node_modules/domutils/lib/esm/querying.d.ts.map create mode 100644 node_modules/domutils/lib/esm/querying.js create mode 100644 node_modules/domutils/lib/esm/querying.js.map create mode 100644 node_modules/domutils/lib/esm/stringify.d.ts create mode 100644 node_modules/domutils/lib/esm/stringify.d.ts.map create mode 100644 node_modules/domutils/lib/esm/stringify.js create mode 100644 node_modules/domutils/lib/esm/stringify.js.map create mode 100644 node_modules/domutils/lib/esm/traversal.d.ts create mode 100644 node_modules/domutils/lib/esm/traversal.d.ts.map create mode 100644 node_modules/domutils/lib/esm/traversal.js create mode 100644 node_modules/domutils/lib/esm/traversal.js.map create mode 100644 node_modules/domutils/lib/feeds.d.ts create mode 100644 node_modules/domutils/lib/feeds.d.ts.map create mode 100644 node_modules/domutils/lib/feeds.js create mode 100644 node_modules/domutils/lib/feeds.js.map create mode 100644 node_modules/domutils/lib/helpers.d.ts create mode 100644 node_modules/domutils/lib/helpers.d.ts.map create mode 100644 node_modules/domutils/lib/helpers.js create mode 100644 node_modules/domutils/lib/helpers.js.map create mode 100644 node_modules/domutils/lib/index.d.ts create mode 100644 node_modules/domutils/lib/index.d.ts.map create mode 100644 node_modules/domutils/lib/index.js create mode 100644 node_modules/domutils/lib/index.js.map create mode 100644 node_modules/domutils/lib/legacy.d.ts create mode 100644 node_modules/domutils/lib/legacy.d.ts.map create mode 100644 node_modules/domutils/lib/legacy.js create mode 100644 node_modules/domutils/lib/legacy.js.map create mode 100644 node_modules/domutils/lib/manipulation.d.ts create mode 100644 node_modules/domutils/lib/manipulation.d.ts.map create mode 100644 node_modules/domutils/lib/manipulation.js create mode 100644 node_modules/domutils/lib/manipulation.js.map create mode 100644 node_modules/domutils/lib/querying.d.ts create mode 100644 node_modules/domutils/lib/querying.d.ts.map create mode 100644 node_modules/domutils/lib/querying.js create mode 100644 node_modules/domutils/lib/querying.js.map create mode 100644 node_modules/domutils/lib/stringify.d.ts create mode 100644 node_modules/domutils/lib/stringify.d.ts.map create mode 100644 node_modules/domutils/lib/stringify.js create mode 100644 node_modules/domutils/lib/stringify.js.map create mode 100644 node_modules/domutils/lib/traversal.d.ts create mode 100644 node_modules/domutils/lib/traversal.d.ts.map create mode 100644 node_modules/domutils/lib/traversal.js create mode 100644 node_modules/domutils/lib/traversal.js.map create mode 100644 node_modules/domutils/package.json create mode 100644 node_modules/domutils/readme.md create mode 100644 node_modules/electron-to-chromium/CHANGELOG.md create mode 100644 node_modules/electron-to-chromium/LICENSE create mode 100644 node_modules/electron-to-chromium/README.md create mode 100644 node_modules/electron-to-chromium/chromium-versions.js create mode 100644 node_modules/electron-to-chromium/chromium-versions.json create mode 100644 node_modules/electron-to-chromium/full-chromium-versions.js create mode 100644 node_modules/electron-to-chromium/full-chromium-versions.json create mode 100644 node_modules/electron-to-chromium/full-versions.js create mode 100644 node_modules/electron-to-chromium/full-versions.json create mode 100644 node_modules/electron-to-chromium/index.js create mode 100644 node_modules/electron-to-chromium/package.json create mode 100644 node_modules/electron-to-chromium/versions.js create mode 100644 node_modules/electron-to-chromium/versions.json create mode 100644 node_modules/emoji-regex/LICENSE-MIT.txt create mode 100644 node_modules/emoji-regex/README.md create mode 100644 node_modules/emoji-regex/es2015/index.js create mode 100644 node_modules/emoji-regex/es2015/text.js create mode 100644 node_modules/emoji-regex/index.d.ts create mode 100644 node_modules/emoji-regex/index.js create mode 100644 node_modules/emoji-regex/package.json create mode 100644 node_modules/emoji-regex/text.js create mode 100644 node_modules/entities/LICENSE create mode 100644 node_modules/entities/lib/decode.d.ts create mode 100644 node_modules/entities/lib/decode.d.ts.map create mode 100644 node_modules/entities/lib/decode.js create mode 100644 node_modules/entities/lib/decode.js.map create mode 100644 node_modules/entities/lib/decode_codepoint.d.ts create mode 100644 node_modules/entities/lib/decode_codepoint.d.ts.map create mode 100644 node_modules/entities/lib/decode_codepoint.js create mode 100644 node_modules/entities/lib/decode_codepoint.js.map create mode 100644 node_modules/entities/lib/encode.d.ts create mode 100644 node_modules/entities/lib/encode.d.ts.map create mode 100644 node_modules/entities/lib/encode.js create mode 100644 node_modules/entities/lib/encode.js.map create mode 100644 node_modules/entities/lib/escape.d.ts create mode 100644 node_modules/entities/lib/escape.d.ts.map create mode 100644 node_modules/entities/lib/escape.js create mode 100644 node_modules/entities/lib/escape.js.map create mode 100644 node_modules/entities/lib/esm/decode.d.ts create mode 100644 node_modules/entities/lib/esm/decode.d.ts.map create mode 100644 node_modules/entities/lib/esm/decode.js create mode 100644 node_modules/entities/lib/esm/decode.js.map create mode 100644 node_modules/entities/lib/esm/decode_codepoint.d.ts create mode 100644 node_modules/entities/lib/esm/decode_codepoint.d.ts.map create mode 100644 node_modules/entities/lib/esm/decode_codepoint.js create mode 100644 node_modules/entities/lib/esm/decode_codepoint.js.map create mode 100644 node_modules/entities/lib/esm/encode.d.ts create mode 100644 node_modules/entities/lib/esm/encode.d.ts.map create mode 100644 node_modules/entities/lib/esm/encode.js create mode 100644 node_modules/entities/lib/esm/encode.js.map create mode 100644 node_modules/entities/lib/esm/escape.d.ts create mode 100644 node_modules/entities/lib/esm/escape.d.ts.map create mode 100644 node_modules/entities/lib/esm/escape.js create mode 100644 node_modules/entities/lib/esm/escape.js.map create mode 100644 node_modules/entities/lib/esm/generated/decode-data-html.d.ts create mode 100644 node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map create mode 100644 node_modules/entities/lib/esm/generated/decode-data-html.js create mode 100644 node_modules/entities/lib/esm/generated/decode-data-html.js.map create mode 100644 node_modules/entities/lib/esm/generated/decode-data-xml.d.ts create mode 100644 node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map create mode 100644 node_modules/entities/lib/esm/generated/decode-data-xml.js create mode 100644 node_modules/entities/lib/esm/generated/decode-data-xml.js.map create mode 100644 node_modules/entities/lib/esm/generated/encode-html.d.ts create mode 100644 node_modules/entities/lib/esm/generated/encode-html.d.ts.map create mode 100644 node_modules/entities/lib/esm/generated/encode-html.js create mode 100644 node_modules/entities/lib/esm/generated/encode-html.js.map create mode 100644 node_modules/entities/lib/esm/index.d.ts create mode 100644 node_modules/entities/lib/esm/index.d.ts.map create mode 100644 node_modules/entities/lib/esm/index.js create mode 100644 node_modules/entities/lib/esm/index.js.map create mode 100644 node_modules/entities/lib/esm/package.json create mode 100644 node_modules/entities/lib/generated/decode-data-html.d.ts create mode 100644 node_modules/entities/lib/generated/decode-data-html.d.ts.map create mode 100644 node_modules/entities/lib/generated/decode-data-html.js create mode 100644 node_modules/entities/lib/generated/decode-data-html.js.map create mode 100644 node_modules/entities/lib/generated/decode-data-xml.d.ts create mode 100644 node_modules/entities/lib/generated/decode-data-xml.d.ts.map create mode 100644 node_modules/entities/lib/generated/decode-data-xml.js create mode 100644 node_modules/entities/lib/generated/decode-data-xml.js.map create mode 100644 node_modules/entities/lib/generated/encode-html.d.ts create mode 100644 node_modules/entities/lib/generated/encode-html.d.ts.map create mode 100644 node_modules/entities/lib/generated/encode-html.js create mode 100644 node_modules/entities/lib/generated/encode-html.js.map create mode 100644 node_modules/entities/lib/index.d.ts create mode 100644 node_modules/entities/lib/index.d.ts.map create mode 100644 node_modules/entities/lib/index.js create mode 100644 node_modules/entities/lib/index.js.map create mode 100644 node_modules/entities/package.json create mode 100644 node_modules/entities/readme.md create mode 100644 node_modules/escalade/dist/index.js create mode 100644 node_modules/escalade/dist/index.mjs create mode 100644 node_modules/escalade/index.d.ts create mode 100644 node_modules/escalade/license create mode 100644 node_modules/escalade/package.json create mode 100644 node_modules/escalade/readme.md create mode 100644 node_modules/escalade/sync/index.d.ts create mode 100644 node_modules/escalade/sync/index.js create mode 100644 node_modules/escalade/sync/index.mjs create mode 100644 node_modules/fast-glob/LICENSE create mode 100644 node_modules/fast-glob/README.md create mode 100644 node_modules/fast-glob/out/index.d.ts create mode 100644 node_modules/fast-glob/out/index.js create mode 100644 node_modules/fast-glob/out/managers/tasks.d.ts create mode 100644 node_modules/fast-glob/out/managers/tasks.js create mode 100644 node_modules/fast-glob/out/providers/async.d.ts create mode 100644 node_modules/fast-glob/out/providers/async.js create mode 100644 node_modules/fast-glob/out/providers/filters/deep.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/deep.js create mode 100644 node_modules/fast-glob/out/providers/filters/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/entry.js create mode 100644 node_modules/fast-glob/out/providers/filters/error.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/error.js create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.js create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.js create mode 100644 node_modules/fast-glob/out/providers/provider.d.ts create mode 100644 node_modules/fast-glob/out/providers/provider.js create mode 100644 node_modules/fast-glob/out/providers/stream.d.ts create mode 100644 node_modules/fast-glob/out/providers/stream.js create mode 100644 node_modules/fast-glob/out/providers/sync.d.ts create mode 100644 node_modules/fast-glob/out/providers/sync.js create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.js create mode 100644 node_modules/fast-glob/out/readers/async.d.ts create mode 100644 node_modules/fast-glob/out/readers/async.js create mode 100644 node_modules/fast-glob/out/readers/reader.d.ts create mode 100644 node_modules/fast-glob/out/readers/reader.js create mode 100644 node_modules/fast-glob/out/readers/stream.d.ts create mode 100644 node_modules/fast-glob/out/readers/stream.js create mode 100644 node_modules/fast-glob/out/readers/sync.d.ts create mode 100644 node_modules/fast-glob/out/readers/sync.js create mode 100644 node_modules/fast-glob/out/settings.d.ts create mode 100644 node_modules/fast-glob/out/settings.js create mode 100644 node_modules/fast-glob/out/types/index.d.ts create mode 100644 node_modules/fast-glob/out/types/index.js create mode 100644 node_modules/fast-glob/out/utils/array.d.ts create mode 100644 node_modules/fast-glob/out/utils/array.js create mode 100644 node_modules/fast-glob/out/utils/errno.d.ts create mode 100644 node_modules/fast-glob/out/utils/errno.js create mode 100644 node_modules/fast-glob/out/utils/fs.d.ts create mode 100644 node_modules/fast-glob/out/utils/fs.js create mode 100644 node_modules/fast-glob/out/utils/index.d.ts create mode 100644 node_modules/fast-glob/out/utils/index.js create mode 100644 node_modules/fast-glob/out/utils/path.d.ts create mode 100644 node_modules/fast-glob/out/utils/path.js create mode 100644 node_modules/fast-glob/out/utils/pattern.d.ts create mode 100644 node_modules/fast-glob/out/utils/pattern.js create mode 100644 node_modules/fast-glob/out/utils/stream.d.ts create mode 100644 node_modules/fast-glob/out/utils/stream.js create mode 100644 node_modules/fast-glob/out/utils/string.d.ts create mode 100644 node_modules/fast-glob/out/utils/string.js create mode 100644 node_modules/fast-glob/package.json create mode 100644 node_modules/fastq/.github/dependabot.yml create mode 100644 node_modules/fastq/.github/workflows/ci.yml create mode 100644 node_modules/fastq/LICENSE create mode 100644 node_modules/fastq/README.md create mode 100644 node_modules/fastq/bench.js create mode 100644 node_modules/fastq/example.js create mode 100644 node_modules/fastq/example.mjs create mode 100644 node_modules/fastq/index.d.ts create mode 100644 node_modules/fastq/package.json create mode 100644 node_modules/fastq/queue.js create mode 100644 node_modules/fastq/test/example.ts create mode 100644 node_modules/fastq/test/promise.js create mode 100644 node_modules/fastq/test/test.js create mode 100644 node_modules/fastq/test/tsconfig.json create mode 100644 node_modules/fill-range/LICENSE create mode 100644 node_modules/fill-range/README.md create mode 100644 node_modules/fill-range/index.js create mode 100644 node_modules/fill-range/package.json create mode 100644 node_modules/fraction.js/LICENSE create mode 100644 node_modules/fraction.js/README.md create mode 100644 node_modules/fraction.js/bigfraction.js create mode 100644 node_modules/fraction.js/fraction.cjs create mode 100644 node_modules/fraction.js/fraction.d.ts create mode 100644 node_modules/fraction.js/fraction.js create mode 100644 node_modules/fraction.js/fraction.min.js create mode 100644 node_modules/fraction.js/package.json create mode 100644 node_modules/fs-extra/LICENSE create mode 100644 node_modules/fs-extra/README.md create mode 100644 node_modules/fs-extra/lib/copy/copy-sync.js create mode 100644 node_modules/fs-extra/lib/copy/copy.js create mode 100644 node_modules/fs-extra/lib/copy/index.js create mode 100644 node_modules/fs-extra/lib/empty/index.js create mode 100644 node_modules/fs-extra/lib/ensure/file.js create mode 100644 node_modules/fs-extra/lib/ensure/index.js create mode 100644 node_modules/fs-extra/lib/ensure/link.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-paths.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-type.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink.js create mode 100644 node_modules/fs-extra/lib/esm.mjs create mode 100644 node_modules/fs-extra/lib/fs/index.js create mode 100644 node_modules/fs-extra/lib/index.js create mode 100644 node_modules/fs-extra/lib/json/index.js create mode 100644 node_modules/fs-extra/lib/json/jsonfile.js create mode 100644 node_modules/fs-extra/lib/json/output-json-sync.js create mode 100644 node_modules/fs-extra/lib/json/output-json.js create mode 100644 node_modules/fs-extra/lib/mkdirs/index.js create mode 100644 node_modules/fs-extra/lib/mkdirs/make-dir.js create mode 100644 node_modules/fs-extra/lib/mkdirs/utils.js create mode 100644 node_modules/fs-extra/lib/move/index.js create mode 100644 node_modules/fs-extra/lib/move/move-sync.js create mode 100644 node_modules/fs-extra/lib/move/move.js create mode 100644 node_modules/fs-extra/lib/output-file/index.js create mode 100644 node_modules/fs-extra/lib/path-exists/index.js create mode 100644 node_modules/fs-extra/lib/remove/index.js create mode 100644 node_modules/fs-extra/lib/util/stat.js create mode 100644 node_modules/fs-extra/lib/util/utimes.js create mode 100644 node_modules/fs-extra/package.json create mode 100644 node_modules/fsevents/LICENSE create mode 100644 node_modules/fsevents/README.md create mode 100644 node_modules/fsevents/fsevents.d.ts create mode 100644 node_modules/fsevents/fsevents.js create mode 100755 node_modules/fsevents/fsevents.node create mode 100644 node_modules/fsevents/package.json create mode 100644 node_modules/g/LICENSE create mode 100644 node_modules/g/README.md create mode 100644 node_modules/g/index.js create mode 100644 node_modules/g/package.json create mode 100644 node_modules/g/test.js create mode 100644 node_modules/get-caller-file/LICENSE.md create mode 100644 node_modules/get-caller-file/README.md create mode 100644 node_modules/get-caller-file/index.d.ts create mode 100644 node_modules/get-caller-file/index.js create mode 100644 node_modules/get-caller-file/index.js.map create mode 100644 node_modules/get-caller-file/package.json create mode 100644 node_modules/get-stdin/index.d.ts create mode 100644 node_modules/get-stdin/index.js create mode 100644 node_modules/get-stdin/license create mode 100644 node_modules/get-stdin/package.json create mode 100644 node_modules/get-stdin/readme.md create mode 100644 node_modules/glob-parent/CHANGELOG.md create mode 100644 node_modules/glob-parent/LICENSE create mode 100644 node_modules/glob-parent/README.md create mode 100644 node_modules/glob-parent/index.js create mode 100644 node_modules/glob-parent/package.json create mode 100644 node_modules/globby/ignore.js create mode 100644 node_modules/globby/index.d.ts create mode 100644 node_modules/globby/index.js create mode 100644 node_modules/globby/license create mode 100644 node_modules/globby/node_modules/slash/index.d.ts create mode 100644 node_modules/globby/node_modules/slash/index.js create mode 100644 node_modules/globby/node_modules/slash/license create mode 100644 node_modules/globby/node_modules/slash/package.json create mode 100644 node_modules/globby/node_modules/slash/readme.md create mode 100644 node_modules/globby/package.json create mode 100644 node_modules/globby/readme.md create mode 100644 node_modules/globby/utilities.js create mode 100644 node_modules/graceful-fs/LICENSE create mode 100644 node_modules/graceful-fs/README.md create mode 100644 node_modules/graceful-fs/clone.js create mode 100644 node_modules/graceful-fs/graceful-fs.js create mode 100644 node_modules/graceful-fs/legacy-streams.js create mode 100644 node_modules/graceful-fs/package.json create mode 100644 node_modules/graceful-fs/polyfills.js create mode 100644 node_modules/ignore/LICENSE-MIT create mode 100644 node_modules/ignore/README.md create mode 100644 node_modules/ignore/index.d.ts create mode 100644 node_modules/ignore/index.js create mode 100644 node_modules/ignore/legacy.js create mode 100644 node_modules/ignore/package.json create mode 100644 node_modules/is-binary-path/index.d.ts create mode 100644 node_modules/is-binary-path/index.js create mode 100644 node_modules/is-binary-path/license create mode 100644 node_modules/is-binary-path/package.json create mode 100644 node_modules/is-binary-path/readme.md create mode 100644 node_modules/is-extglob/LICENSE create mode 100644 node_modules/is-extglob/README.md create mode 100644 node_modules/is-extglob/index.js create mode 100644 node_modules/is-extglob/package.json create mode 100644 node_modules/is-fullwidth-code-point/index.d.ts create mode 100644 node_modules/is-fullwidth-code-point/index.js create mode 100644 node_modules/is-fullwidth-code-point/license create mode 100644 node_modules/is-fullwidth-code-point/package.json create mode 100644 node_modules/is-fullwidth-code-point/readme.md create mode 100644 node_modules/is-glob/LICENSE create mode 100644 node_modules/is-glob/README.md create mode 100644 node_modules/is-glob/index.js create mode 100644 node_modules/is-glob/package.json create mode 100644 node_modules/is-number/LICENSE create mode 100644 node_modules/is-number/README.md create mode 100644 node_modules/is-number/index.js create mode 100644 node_modules/is-number/package.json create mode 100644 node_modules/jsonfile/CHANGELOG.md create mode 100644 node_modules/jsonfile/LICENSE create mode 100644 node_modules/jsonfile/README.md create mode 100644 node_modules/jsonfile/index.js create mode 100644 node_modules/jsonfile/package.json create mode 100644 node_modules/jsonfile/utils.js create mode 100644 node_modules/lilconfig/LICENSE create mode 100644 node_modules/lilconfig/dist/index.d.ts create mode 100644 node_modules/lilconfig/dist/index.js create mode 100644 node_modules/lilconfig/package.json create mode 100644 node_modules/lilconfig/readme.md create mode 100644 node_modules/lodash.memoize/LICENSE create mode 100644 node_modules/lodash.memoize/README.md create mode 100644 node_modules/lodash.memoize/index.js create mode 100644 node_modules/lodash.memoize/package.json create mode 100644 node_modules/lodash.uniq/LICENSE create mode 100644 node_modules/lodash.uniq/README.md create mode 100644 node_modules/lodash.uniq/index.js create mode 100644 node_modules/lodash.uniq/package.json create mode 100644 node_modules/mdn-data/CHANGELOG.md create mode 100644 node_modules/mdn-data/LICENSE create mode 100644 node_modules/mdn-data/README.md create mode 100644 node_modules/mdn-data/api/index.js create mode 100644 node_modules/mdn-data/api/inheritance.json create mode 100644 node_modules/mdn-data/api/inheritance.schema.json create mode 100644 node_modules/mdn-data/css/at-rules.json create mode 100644 node_modules/mdn-data/css/at-rules.schema.json create mode 100644 node_modules/mdn-data/css/definitions.json create mode 100644 node_modules/mdn-data/css/index.js create mode 100644 node_modules/mdn-data/css/properties.json create mode 100644 node_modules/mdn-data/css/properties.schema.json create mode 100644 node_modules/mdn-data/css/readme.md create mode 100644 node_modules/mdn-data/css/selectors.json create mode 100644 node_modules/mdn-data/css/selectors.schema.json create mode 100644 node_modules/mdn-data/css/syntaxes.json create mode 100644 node_modules/mdn-data/css/syntaxes.schema.json create mode 100644 node_modules/mdn-data/css/types.json create mode 100644 node_modules/mdn-data/css/types.schema.json create mode 100644 node_modules/mdn-data/css/units.json create mode 100644 node_modules/mdn-data/css/units.schema.json create mode 100644 node_modules/mdn-data/index.js create mode 100644 node_modules/mdn-data/l10n/css.json create mode 100644 node_modules/mdn-data/l10n/index.js create mode 100644 node_modules/mdn-data/package.json create mode 100644 node_modules/merge2/LICENSE create mode 100644 node_modules/merge2/README.md create mode 100644 node_modules/merge2/index.js create mode 100644 node_modules/merge2/package.json create mode 100755 node_modules/micromatch/LICENSE create mode 100644 node_modules/micromatch/README.md create mode 100644 node_modules/micromatch/index.js create mode 100644 node_modules/micromatch/package.json create mode 100644 node_modules/nanoid/LICENSE create mode 100644 node_modules/nanoid/README.md create mode 100644 node_modules/nanoid/async/index.browser.cjs create mode 100644 node_modules/nanoid/async/index.browser.js create mode 100644 node_modules/nanoid/async/index.cjs create mode 100644 node_modules/nanoid/async/index.d.ts create mode 100644 node_modules/nanoid/async/index.js create mode 100644 node_modules/nanoid/async/index.native.js create mode 100644 node_modules/nanoid/async/package.json create mode 100755 node_modules/nanoid/bin/nanoid.cjs create mode 100644 node_modules/nanoid/index.browser.cjs create mode 100644 node_modules/nanoid/index.browser.js create mode 100644 node_modules/nanoid/index.cjs create mode 100644 node_modules/nanoid/index.d.ts create mode 100644 node_modules/nanoid/index.js create mode 100644 node_modules/nanoid/nanoid.js create mode 100644 node_modules/nanoid/non-secure/index.cjs create mode 100644 node_modules/nanoid/non-secure/index.d.ts create mode 100644 node_modules/nanoid/non-secure/index.js create mode 100644 node_modules/nanoid/non-secure/package.json create mode 100644 node_modules/nanoid/package.json create mode 100644 node_modules/nanoid/url-alphabet/index.cjs create mode 100644 node_modules/nanoid/url-alphabet/index.js create mode 100644 node_modules/nanoid/url-alphabet/package.json create mode 100644 node_modules/node-releases/LICENSE create mode 100644 node_modules/node-releases/README.md create mode 100644 node_modules/node-releases/data/processed/envs.json create mode 100644 node_modules/node-releases/data/release-schedule/release-schedule.json create mode 100644 node_modules/node-releases/package.json create mode 100644 node_modules/normalize-path/LICENSE create mode 100644 node_modules/normalize-path/README.md create mode 100644 node_modules/normalize-path/index.js create mode 100644 node_modules/normalize-path/package.json create mode 100644 node_modules/normalize-range/index.js create mode 100644 node_modules/normalize-range/license create mode 100644 node_modules/normalize-range/package.json create mode 100644 node_modules/normalize-range/readme.md create mode 100644 node_modules/nth-check/LICENSE create mode 100644 node_modules/nth-check/README.md create mode 100644 node_modules/nth-check/lib/compile.d.ts create mode 100644 node_modules/nth-check/lib/compile.d.ts.map create mode 100644 node_modules/nth-check/lib/compile.js create mode 100644 node_modules/nth-check/lib/compile.js.map create mode 100644 node_modules/nth-check/lib/esm/compile.d.ts create mode 100644 node_modules/nth-check/lib/esm/compile.d.ts.map create mode 100644 node_modules/nth-check/lib/esm/compile.js create mode 100644 node_modules/nth-check/lib/esm/compile.js.map create mode 100644 node_modules/nth-check/lib/esm/index.d.ts create mode 100644 node_modules/nth-check/lib/esm/index.d.ts.map create mode 100644 node_modules/nth-check/lib/esm/index.js create mode 100644 node_modules/nth-check/lib/esm/index.js.map create mode 100644 node_modules/nth-check/lib/esm/package.json create mode 100644 node_modules/nth-check/lib/esm/parse.d.ts create mode 100644 node_modules/nth-check/lib/esm/parse.d.ts.map create mode 100644 node_modules/nth-check/lib/esm/parse.js create mode 100644 node_modules/nth-check/lib/esm/parse.js.map create mode 100644 node_modules/nth-check/lib/index.d.ts create mode 100644 node_modules/nth-check/lib/index.d.ts.map create mode 100644 node_modules/nth-check/lib/index.js create mode 100644 node_modules/nth-check/lib/index.js.map create mode 100644 node_modules/nth-check/lib/parse.d.ts create mode 100644 node_modules/nth-check/lib/parse.d.ts.map create mode 100644 node_modules/nth-check/lib/parse.js create mode 100644 node_modules/nth-check/lib/parse.js.map create mode 100644 node_modules/nth-check/package.json create mode 100644 node_modules/path-type/index.d.ts create mode 100644 node_modules/path-type/index.js create mode 100644 node_modules/path-type/license create mode 100644 node_modules/path-type/package.json create mode 100644 node_modules/path-type/readme.md create mode 100644 node_modules/picocolors/LICENSE create mode 100644 node_modules/picocolors/README.md create mode 100644 node_modules/picocolors/package.json create mode 100644 node_modules/picocolors/picocolors.browser.js create mode 100644 node_modules/picocolors/picocolors.d.ts create mode 100644 node_modules/picocolors/picocolors.js create mode 100644 node_modules/picocolors/types.ts create mode 100644 node_modules/picomatch/CHANGELOG.md create mode 100644 node_modules/picomatch/LICENSE create mode 100644 node_modules/picomatch/README.md create mode 100644 node_modules/picomatch/index.js create mode 100644 node_modules/picomatch/lib/constants.js create mode 100644 node_modules/picomatch/lib/parse.js create mode 100644 node_modules/picomatch/lib/picomatch.js create mode 100644 node_modules/picomatch/lib/scan.js create mode 100644 node_modules/picomatch/lib/utils.js create mode 100644 node_modules/picomatch/package.json create mode 100644 node_modules/pify/index.js create mode 100644 node_modules/pify/license create mode 100644 node_modules/pify/package.json create mode 100644 node_modules/pify/readme.md create mode 100644 node_modules/postcss-attribute-case-insensitive/CHANGELOG.md create mode 100644 node_modules/postcss-attribute-case-insensitive/LICENSE create mode 100644 node_modules/postcss-attribute-case-insensitive/README.md create mode 100644 node_modules/postcss-attribute-case-insensitive/dist/index.cjs create mode 100644 node_modules/postcss-attribute-case-insensitive/dist/index.d.ts create mode 100644 node_modules/postcss-attribute-case-insensitive/dist/index.mjs create mode 100644 node_modules/postcss-attribute-case-insensitive/package.json create mode 100755 node_modules/postcss-calc/LICENSE create mode 100755 node_modules/postcss-calc/README.md create mode 100644 node_modules/postcss-calc/package.json create mode 100644 node_modules/postcss-calc/src/index.js create mode 100644 node_modules/postcss-calc/src/lib/convertUnit.js create mode 100644 node_modules/postcss-calc/src/lib/reducer.js create mode 100644 node_modules/postcss-calc/src/lib/stringifier.js create mode 100644 node_modules/postcss-calc/src/lib/transform.js create mode 100644 node_modules/postcss-calc/src/parser.d.ts create mode 100644 node_modules/postcss-calc/src/parser.js create mode 100644 node_modules/postcss-calc/types/index.d.ts create mode 100644 node_modules/postcss-calc/types/lib/convertUnit.d.ts create mode 100644 node_modules/postcss-calc/types/lib/reducer.d.ts create mode 100644 node_modules/postcss-calc/types/lib/stringifier.d.ts create mode 100644 node_modules/postcss-calc/types/lib/transform.d.ts create mode 100644 node_modules/postcss-clamp/INSTALL.md create mode 100644 node_modules/postcss-clamp/LICENSE create mode 100644 node_modules/postcss-clamp/README.md create mode 100644 node_modules/postcss-clamp/index.js create mode 100644 node_modules/postcss-clamp/index.test.js create mode 100644 node_modules/postcss-clamp/package.json create mode 100644 node_modules/postcss-cli/LICENSE create mode 100644 node_modules/postcss-cli/README.md create mode 100755 node_modules/postcss-cli/index.js create mode 100644 node_modules/postcss-cli/lib/DependencyGraph.js create mode 100644 node_modules/postcss-cli/lib/args.js create mode 100644 node_modules/postcss-cli/lib/getMapfile.js create mode 100644 node_modules/postcss-cli/package.json create mode 100644 node_modules/postcss-color-functional-notation/CHANGELOG.md create mode 100644 node_modules/postcss-color-functional-notation/LICENSE.md create mode 100644 node_modules/postcss-color-functional-notation/README.md create mode 100644 node_modules/postcss-color-functional-notation/dist/has-fallback-decl.d.ts create mode 100644 node_modules/postcss-color-functional-notation/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/postcss-color-functional-notation/dist/index.cjs create mode 100644 node_modules/postcss-color-functional-notation/dist/index.d.ts create mode 100644 node_modules/postcss-color-functional-notation/dist/index.mjs create mode 100644 node_modules/postcss-color-functional-notation/dist/on-css-function.d.ts create mode 100644 node_modules/postcss-color-functional-notation/package.json create mode 100644 node_modules/postcss-color-hex-alpha/CHANGELOG.md create mode 100644 node_modules/postcss-color-hex-alpha/LICENSE.md create mode 100644 node_modules/postcss-color-hex-alpha/README.md create mode 100644 node_modules/postcss-color-hex-alpha/dist/has-fallback-decl.d.ts create mode 100644 node_modules/postcss-color-hex-alpha/dist/index.cjs create mode 100644 node_modules/postcss-color-hex-alpha/dist/index.d.ts create mode 100644 node_modules/postcss-color-hex-alpha/dist/index.mjs create mode 100644 node_modules/postcss-color-hex-alpha/package.json create mode 100644 node_modules/postcss-color-rebeccapurple/CHANGELOG.md create mode 100644 node_modules/postcss-color-rebeccapurple/LICENSE.md create mode 100644 node_modules/postcss-color-rebeccapurple/README.md create mode 100644 node_modules/postcss-color-rebeccapurple/dist/has-fallback-decl.d.ts create mode 100644 node_modules/postcss-color-rebeccapurple/dist/index.cjs create mode 100644 node_modules/postcss-color-rebeccapurple/dist/index.d.ts create mode 100644 node_modules/postcss-color-rebeccapurple/dist/index.mjs create mode 100644 node_modules/postcss-color-rebeccapurple/package.json create mode 100644 node_modules/postcss-colormin/LICENSE-MIT create mode 100644 node_modules/postcss-colormin/README.md create mode 100644 node_modules/postcss-colormin/package.json create mode 100644 node_modules/postcss-colormin/src/index.js create mode 100644 node_modules/postcss-colormin/src/minifyColor.js create mode 100644 node_modules/postcss-colormin/types/index.d.ts create mode 100644 node_modules/postcss-colormin/types/minifyColor.d.ts create mode 100644 node_modules/postcss-convert-values/LICENSE-MIT create mode 100644 node_modules/postcss-convert-values/README.md create mode 100644 node_modules/postcss-convert-values/package.json create mode 100644 node_modules/postcss-convert-values/src/index.js create mode 100644 node_modules/postcss-convert-values/src/lib/convert.js create mode 100644 node_modules/postcss-convert-values/types/index.d.ts create mode 100644 node_modules/postcss-convert-values/types/lib/convert.d.ts create mode 100644 node_modules/postcss-custom-media/CHANGELOG.md create mode 100644 node_modules/postcss-custom-media/LICENSE.md create mode 100644 node_modules/postcss-custom-media/README.md create mode 100644 node_modules/postcss-custom-media/dist/cascade-layers.d.ts create mode 100644 node_modules/postcss-custom-media/dist/custom-media-from-root.d.ts create mode 100644 node_modules/postcss-custom-media/dist/index.cjs create mode 100644 node_modules/postcss-custom-media/dist/index.d.ts create mode 100644 node_modules/postcss-custom-media/dist/index.mjs create mode 100644 node_modules/postcss-custom-media/dist/is-processable-custom-media-rule.d.ts create mode 100644 node_modules/postcss-custom-media/dist/toposort.d.ts create mode 100644 node_modules/postcss-custom-media/dist/transform-at-media/always-true-or-false.d.ts create mode 100644 node_modules/postcss-custom-media/dist/transform-at-media/at-media-params-tokens.d.ts create mode 100644 node_modules/postcss-custom-media/dist/transform-at-media/custom-media.d.ts create mode 100644 node_modules/postcss-custom-media/dist/transform-at-media/transform-at-media.d.ts create mode 100644 node_modules/postcss-custom-media/dist/transform-at-media/true-and-false.d.ts create mode 100644 node_modules/postcss-custom-media/package.json create mode 100644 node_modules/postcss-custom-properties/CHANGELOG.md create mode 100644 node_modules/postcss-custom-properties/LICENSE.md create mode 100644 node_modules/postcss-custom-properties/README.md create mode 100644 node_modules/postcss-custom-properties/dist/cascade-layers.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/get-custom-properties-from-root.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/index.cjs create mode 100644 node_modules/postcss-custom-properties/dist/index.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/index.mjs create mode 100644 node_modules/postcss-custom-properties/dist/is-ignored.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/is-processable-rule.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/is-var-function.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/parse-or-cached.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/toposort.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/transform-properties.d.ts create mode 100644 node_modules/postcss-custom-properties/dist/transform-value-ast.d.ts create mode 100644 node_modules/postcss-custom-properties/package.json create mode 100644 node_modules/postcss-custom-selectors/CHANGELOG.md create mode 100644 node_modules/postcss-custom-selectors/LICENSE.md create mode 100644 node_modules/postcss-custom-selectors/README.md create mode 100644 node_modules/postcss-custom-selectors/dist/cascade-layers.d.ts create mode 100644 node_modules/postcss-custom-selectors/dist/custom-selectors-from-root.d.ts create mode 100644 node_modules/postcss-custom-selectors/dist/index.cjs create mode 100644 node_modules/postcss-custom-selectors/dist/index.d.ts create mode 100644 node_modules/postcss-custom-selectors/dist/index.mjs create mode 100644 node_modules/postcss-custom-selectors/dist/is-processable-custom-selector-rule.d.ts create mode 100644 node_modules/postcss-custom-selectors/dist/transform-rule.d.ts create mode 100644 node_modules/postcss-custom-selectors/package.json create mode 100644 node_modules/postcss-dir-pseudo-class/CHANGELOG.md create mode 100644 node_modules/postcss-dir-pseudo-class/LICENSE.md create mode 100644 node_modules/postcss-dir-pseudo-class/README.md create mode 100644 node_modules/postcss-dir-pseudo-class/dist/index.cjs create mode 100644 node_modules/postcss-dir-pseudo-class/dist/index.d.ts create mode 100644 node_modules/postcss-dir-pseudo-class/dist/index.mjs create mode 100644 node_modules/postcss-dir-pseudo-class/package.json create mode 100644 node_modules/postcss-discard-comments/LICENSE-MIT create mode 100644 node_modules/postcss-discard-comments/README.md create mode 100644 node_modules/postcss-discard-comments/package.json create mode 100644 node_modules/postcss-discard-comments/src/index.js create mode 100644 node_modules/postcss-discard-comments/src/lib/commentParser.js create mode 100644 node_modules/postcss-discard-comments/src/lib/commentRemover.js create mode 100644 node_modules/postcss-discard-comments/types/index.d.ts create mode 100644 node_modules/postcss-discard-comments/types/lib/commentParser.d.ts create mode 100644 node_modules/postcss-discard-comments/types/lib/commentRemover.d.ts create mode 100644 node_modules/postcss-discard-duplicates/LICENSE-MIT create mode 100644 node_modules/postcss-discard-duplicates/README.md create mode 100644 node_modules/postcss-discard-duplicates/package.json create mode 100644 node_modules/postcss-discard-duplicates/src/index.js create mode 100644 node_modules/postcss-discard-duplicates/types/index.d.ts create mode 100644 node_modules/postcss-discard-empty/LICENSE-MIT create mode 100644 node_modules/postcss-discard-empty/README.md create mode 100644 node_modules/postcss-discard-empty/package.json create mode 100644 node_modules/postcss-discard-empty/src/index.js create mode 100644 node_modules/postcss-discard-empty/types/index.d.ts create mode 100644 node_modules/postcss-discard-overridden/LICENSE create mode 100644 node_modules/postcss-discard-overridden/README.md create mode 100644 node_modules/postcss-discard-overridden/package.json create mode 100644 node_modules/postcss-discard-overridden/src/index.js create mode 100644 node_modules/postcss-double-position-gradients/CHANGELOG.md create mode 100644 node_modules/postcss-double-position-gradients/LICENSE.md create mode 100644 node_modules/postcss-double-position-gradients/README.md create mode 100644 node_modules/postcss-double-position-gradients/dist/has-fallback-decl.d.ts create mode 100644 node_modules/postcss-double-position-gradients/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/postcss-double-position-gradients/dist/index.cjs create mode 100644 node_modules/postcss-double-position-gradients/dist/index.d.ts create mode 100644 node_modules/postcss-double-position-gradients/dist/index.mjs create mode 100644 node_modules/postcss-double-position-gradients/dist/is-gradient.d.ts create mode 100644 node_modules/postcss-double-position-gradients/package.json create mode 100644 node_modules/postcss-focus-visible/CHANGELOG.md create mode 100644 node_modules/postcss-focus-visible/LICENSE.md create mode 100644 node_modules/postcss-focus-visible/README.md create mode 100644 node_modules/postcss-focus-visible/dist/index.cjs create mode 100644 node_modules/postcss-focus-visible/dist/index.d.ts create mode 100644 node_modules/postcss-focus-visible/dist/index.mjs create mode 100644 node_modules/postcss-focus-visible/package.json create mode 100644 node_modules/postcss-focus-within/CHANGELOG.md create mode 100644 node_modules/postcss-focus-within/LICENSE.md create mode 100644 node_modules/postcss-focus-within/README.md create mode 100644 node_modules/postcss-focus-within/dist/browser-global.js create mode 100644 node_modules/postcss-focus-within/dist/browser-global.js.map create mode 100644 node_modules/postcss-focus-within/dist/browser.cjs create mode 100644 node_modules/postcss-focus-within/dist/browser.cjs.map create mode 100644 node_modules/postcss-focus-within/dist/browser.mjs create mode 100644 node_modules/postcss-focus-within/dist/browser.mjs.map create mode 100644 node_modules/postcss-focus-within/dist/index.cjs create mode 100644 node_modules/postcss-focus-within/dist/index.d.ts create mode 100644 node_modules/postcss-focus-within/dist/index.mjs create mode 100644 node_modules/postcss-focus-within/package.json create mode 100755 node_modules/postcss-font-variant/CHANGELOG.md create mode 100755 node_modules/postcss-font-variant/LICENSE create mode 100755 node_modules/postcss-font-variant/README.md create mode 100755 node_modules/postcss-font-variant/index.js create mode 100644 node_modules/postcss-font-variant/package.json create mode 100644 node_modules/postcss-gap-properties/CHANGELOG.md create mode 100644 node_modules/postcss-gap-properties/LICENSE.md create mode 100644 node_modules/postcss-gap-properties/README.md create mode 100644 node_modules/postcss-gap-properties/dist/index.cjs create mode 100644 node_modules/postcss-gap-properties/dist/index.d.ts create mode 100644 node_modules/postcss-gap-properties/dist/index.mjs create mode 100644 node_modules/postcss-gap-properties/package.json create mode 100644 node_modules/postcss-image-set-function/CHANGELOG.md create mode 100644 node_modules/postcss-image-set-function/LICENSE.md create mode 100644 node_modules/postcss-image-set-function/README.md create mode 100644 node_modules/postcss-image-set-function/dist/has-fallback-decl.d.ts create mode 100644 node_modules/postcss-image-set-function/dist/index.cjs create mode 100644 node_modules/postcss-image-set-function/dist/index.d.ts create mode 100644 node_modules/postcss-image-set-function/dist/index.mjs create mode 100644 node_modules/postcss-image-set-function/dist/lib/get-comma.d.ts create mode 100644 node_modules/postcss-image-set-function/dist/lib/get-image.d.ts create mode 100644 node_modules/postcss-image-set-function/dist/lib/get-media.d.ts create mode 100644 node_modules/postcss-image-set-function/dist/lib/handle-invalidation.d.ts create mode 100644 node_modules/postcss-image-set-function/dist/lib/process-image-set.d.ts create mode 100644 node_modules/postcss-image-set-function/package.json create mode 100644 node_modules/postcss-lab-function/CHANGELOG.md create mode 100644 node_modules/postcss-lab-function/LICENSE.md create mode 100644 node_modules/postcss-lab-function/README.md create mode 100644 node_modules/postcss-lab-function/dist/has-fallback-decl.d.ts create mode 100644 node_modules/postcss-lab-function/dist/has-supports-at-rule-ancestor.d.ts create mode 100644 node_modules/postcss-lab-function/dist/index.cjs create mode 100644 node_modules/postcss-lab-function/dist/index.d.ts create mode 100644 node_modules/postcss-lab-function/dist/index.mjs create mode 100644 node_modules/postcss-lab-function/package.json create mode 100644 node_modules/postcss-load-config/LICENSE create mode 100644 node_modules/postcss-load-config/README.md create mode 100644 node_modules/postcss-load-config/package.json create mode 100644 node_modules/postcss-load-config/src/index.d.ts create mode 100644 node_modules/postcss-load-config/src/index.js create mode 100644 node_modules/postcss-load-config/src/options.js create mode 100644 node_modules/postcss-load-config/src/plugins.js create mode 100644 node_modules/postcss-load-config/src/req.js create mode 100644 node_modules/postcss-logical/CHANGELOG.md create mode 100644 node_modules/postcss-logical/LICENSE.md create mode 100644 node_modules/postcss-logical/README.md create mode 100644 node_modules/postcss-logical/dist/index.cjs create mode 100644 node_modules/postcss-logical/dist/index.d.ts create mode 100644 node_modules/postcss-logical/dist/index.mjs create mode 100644 node_modules/postcss-logical/dist/lib/clone-declaration.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/transform-borders.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/transform-inset.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/transform-logical-size.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/transform-offset.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/transform-side.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/transform-text-align.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/transform-transition.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/transform-value.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/transforms.d.ts create mode 100644 node_modules/postcss-logical/dist/lib/types.d.ts create mode 100644 node_modules/postcss-logical/dist/utils/direction-flow-to-axes.d.ts create mode 100644 node_modules/postcss-logical/dist/utils/logical-to-physical.d.ts create mode 100644 node_modules/postcss-logical/dist/utils/parse-value-couple.d.ts create mode 100644 node_modules/postcss-logical/package.json create mode 100644 node_modules/postcss-merge-longhand/LICENSE-MIT create mode 100644 node_modules/postcss-merge-longhand/README.md create mode 100644 node_modules/postcss-merge-longhand/package.json create mode 100644 node_modules/postcss-merge-longhand/src/index.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/canExplode.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/canMerge.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/colornames.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/decl/borders.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/decl/boxBase.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/decl/columns.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/decl/index.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/decl/margin.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/decl/padding.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/getDecls.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/getLastNode.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/getRules.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/getValue.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/hasAllProps.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/insertCloned.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/isCustomProp.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/mergeRules.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/mergeValues.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/minifyTrbl.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/minifyWsc.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/parseTrbl.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/parseWsc.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/trbl.js create mode 100644 node_modules/postcss-merge-longhand/src/lib/validateWsc.js create mode 100644 node_modules/postcss-merge-longhand/types/index.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/canExplode.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/canMerge.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/colornames.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/decl/borders.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/decl/boxBase.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/decl/columns.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/decl/index.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/decl/margin.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/decl/padding.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/getDecls.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/getLastNode.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/getRules.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/getValue.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/hasAllProps.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/insertCloned.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/isCustomProp.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/mergeRules.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/mergeValues.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/minifyTrbl.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/minifyWsc.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/parseTrbl.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/parseWsc.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/remove.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/trbl.d.ts create mode 100644 node_modules/postcss-merge-longhand/types/lib/validateWsc.d.ts create mode 100644 node_modules/postcss-merge-rules/LICENSE-MIT create mode 100644 node_modules/postcss-merge-rules/README.md create mode 100644 node_modules/postcss-merge-rules/package.json create mode 100644 node_modules/postcss-merge-rules/src/index.js create mode 100644 node_modules/postcss-merge-rules/src/lib/ensureCompatibility.js create mode 100644 node_modules/postcss-merge-rules/types/index.d.ts create mode 100644 node_modules/postcss-merge-rules/types/lib/ensureCompatibility.d.ts create mode 100644 node_modules/postcss-minify-font-values/LICENSE create mode 100644 node_modules/postcss-minify-font-values/README.md create mode 100644 node_modules/postcss-minify-font-values/package.json create mode 100644 node_modules/postcss-minify-font-values/src/index.js create mode 100644 node_modules/postcss-minify-font-values/src/lib/keywords.js create mode 100644 node_modules/postcss-minify-font-values/src/lib/minify-family.js create mode 100644 node_modules/postcss-minify-font-values/src/lib/minify-font.js create mode 100644 node_modules/postcss-minify-font-values/src/lib/minify-weight.js create mode 100644 node_modules/postcss-minify-font-values/types/index.d.ts create mode 100644 node_modules/postcss-minify-font-values/types/lib/keywords.d.ts create mode 100644 node_modules/postcss-minify-font-values/types/lib/minify-family.d.ts create mode 100644 node_modules/postcss-minify-font-values/types/lib/minify-font.d.ts create mode 100644 node_modules/postcss-minify-font-values/types/lib/minify-weight.d.ts create mode 100644 node_modules/postcss-minify-gradients/LICENSE-MIT create mode 100644 node_modules/postcss-minify-gradients/README.md create mode 100644 node_modules/postcss-minify-gradients/package.json create mode 100644 node_modules/postcss-minify-gradients/src/index.js create mode 100644 node_modules/postcss-minify-gradients/src/isColorStop.js create mode 100644 node_modules/postcss-minify-gradients/types/index.d.ts create mode 100644 node_modules/postcss-minify-gradients/types/isColorStop.d.ts create mode 100644 node_modules/postcss-minify-params/LICENSE create mode 100644 node_modules/postcss-minify-params/README.md create mode 100644 node_modules/postcss-minify-params/package.json create mode 100644 node_modules/postcss-minify-params/src/index.js create mode 100644 node_modules/postcss-minify-params/types/index.d.ts create mode 100644 node_modules/postcss-minify-selectors/LICENSE-MIT create mode 100644 node_modules/postcss-minify-selectors/README.md create mode 100644 node_modules/postcss-minify-selectors/package.json create mode 100644 node_modules/postcss-minify-selectors/src/index.js create mode 100644 node_modules/postcss-minify-selectors/src/lib/canUnquote.js create mode 100644 node_modules/postcss-minify-selectors/types/index.d.ts create mode 100644 node_modules/postcss-minify-selectors/types/lib/canUnquote.d.ts create mode 100644 node_modules/postcss-nesting/CHANGELOG.md create mode 100644 node_modules/postcss-nesting/LICENSE.md create mode 100644 node_modules/postcss-nesting/README.md create mode 100644 node_modules/postcss-nesting/dist/index.cjs create mode 100644 node_modules/postcss-nesting/dist/index.d.ts create mode 100644 node_modules/postcss-nesting/dist/index.mjs create mode 100644 node_modules/postcss-nesting/dist/lib/ampersand-to-scope.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/atrule-within-atrule.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/atrule-within-rule.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/cleanup-parent.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/group-declarations.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/is-type-of-rule.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/list.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/merge-params.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/merge-selectors/combinations-of-size-n.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/merge-selectors/compound-selector-order.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/merge-selectors/merge-selectors.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/merge-selectors/specificity.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/nest-rule-within-rule.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/options.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/rule-within-rule.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/shift-nodes-before-parent.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/valid-atrules.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/walk-func.d.ts create mode 100644 node_modules/postcss-nesting/dist/lib/walk.d.ts create mode 100644 node_modules/postcss-nesting/package.json create mode 100644 node_modules/postcss-normalize-charset/LICENSE create mode 100644 node_modules/postcss-normalize-charset/README.md create mode 100644 node_modules/postcss-normalize-charset/package.json create mode 100644 node_modules/postcss-normalize-charset/src/index.js create mode 100644 node_modules/postcss-normalize-charset/types/index.d.ts create mode 100644 node_modules/postcss-normalize-display-values/LICENSE-MIT create mode 100644 node_modules/postcss-normalize-display-values/README.md create mode 100644 node_modules/postcss-normalize-display-values/package.json create mode 100644 node_modules/postcss-normalize-display-values/src/index.js create mode 100644 node_modules/postcss-normalize-display-values/src/lib/map.js create mode 100644 node_modules/postcss-normalize-display-values/types/index.d.ts create mode 100644 node_modules/postcss-normalize-display-values/types/lib/map.d.ts create mode 100644 node_modules/postcss-normalize-positions/LICENSE-MIT create mode 100644 node_modules/postcss-normalize-positions/README.md create mode 100644 node_modules/postcss-normalize-positions/package.json create mode 100644 node_modules/postcss-normalize-positions/src/index.js create mode 100644 node_modules/postcss-normalize-positions/types/index.d.ts create mode 100644 node_modules/postcss-normalize-repeat-style/LICENSE-MIT create mode 100644 node_modules/postcss-normalize-repeat-style/README.md create mode 100644 node_modules/postcss-normalize-repeat-style/package.json create mode 100644 node_modules/postcss-normalize-repeat-style/src/index.js create mode 100644 node_modules/postcss-normalize-repeat-style/src/lib/map.js create mode 100644 node_modules/postcss-normalize-repeat-style/types/index.d.ts create mode 100644 node_modules/postcss-normalize-repeat-style/types/lib/map.d.ts create mode 100644 node_modules/postcss-normalize-string/LICENSE-MIT create mode 100644 node_modules/postcss-normalize-string/README.md create mode 100644 node_modules/postcss-normalize-string/package.json create mode 100644 node_modules/postcss-normalize-string/src/index.js create mode 100644 node_modules/postcss-normalize-string/types/index.d.ts create mode 100644 node_modules/postcss-normalize-timing-functions/LICENSE-MIT create mode 100644 node_modules/postcss-normalize-timing-functions/README.md create mode 100644 node_modules/postcss-normalize-timing-functions/package.json create mode 100644 node_modules/postcss-normalize-timing-functions/src/index.js create mode 100644 node_modules/postcss-normalize-timing-functions/types/index.d.ts create mode 100644 node_modules/postcss-normalize-unicode/LICENSE-MIT create mode 100644 node_modules/postcss-normalize-unicode/README.md create mode 100644 node_modules/postcss-normalize-unicode/package.json create mode 100644 node_modules/postcss-normalize-unicode/src/index.js create mode 100644 node_modules/postcss-normalize-unicode/types/index.d.ts create mode 100644 node_modules/postcss-normalize-url/LICENSE-MIT create mode 100644 node_modules/postcss-normalize-url/README.md create mode 100644 node_modules/postcss-normalize-url/package.json create mode 100644 node_modules/postcss-normalize-url/src/index.js create mode 100644 node_modules/postcss-normalize-url/src/normalize.js create mode 100644 node_modules/postcss-normalize-url/types/index.d.ts create mode 100644 node_modules/postcss-normalize-url/types/normalize.d.ts create mode 100644 node_modules/postcss-normalize-whitespace/LICENSE-MIT create mode 100644 node_modules/postcss-normalize-whitespace/README.md create mode 100644 node_modules/postcss-normalize-whitespace/package.json create mode 100644 node_modules/postcss-normalize-whitespace/src/index.js create mode 100644 node_modules/postcss-normalize-whitespace/types/index.d.ts create mode 100644 node_modules/postcss-opacity-percentage/LICENSE.md create mode 100644 node_modules/postcss-opacity-percentage/README.md create mode 100644 node_modules/postcss-opacity-percentage/index.js create mode 100644 node_modules/postcss-opacity-percentage/package.json create mode 100644 node_modules/postcss-ordered-values/LICENSE-MIT create mode 100644 node_modules/postcss-ordered-values/README.md create mode 100644 node_modules/postcss-ordered-values/package.json create mode 100644 node_modules/postcss-ordered-values/src/index.js create mode 100644 node_modules/postcss-ordered-values/src/lib/addSpace.js create mode 100644 node_modules/postcss-ordered-values/src/lib/getValue.js create mode 100644 node_modules/postcss-ordered-values/src/lib/joinGridValue.js create mode 100644 node_modules/postcss-ordered-values/src/lib/mathfunctions.js create mode 100644 node_modules/postcss-ordered-values/src/lib/vendorUnprefixed.js create mode 100644 node_modules/postcss-ordered-values/src/rules/animation.js create mode 100644 node_modules/postcss-ordered-values/src/rules/border.js create mode 100644 node_modules/postcss-ordered-values/src/rules/boxShadow.js create mode 100644 node_modules/postcss-ordered-values/src/rules/columns.js create mode 100644 node_modules/postcss-ordered-values/src/rules/flexFlow.js create mode 100644 node_modules/postcss-ordered-values/src/rules/grid.js create mode 100644 node_modules/postcss-ordered-values/src/rules/listStyle.js create mode 100644 node_modules/postcss-ordered-values/src/rules/listStyleTypes.json create mode 100644 node_modules/postcss-ordered-values/src/rules/transition.js create mode 100644 node_modules/postcss-ordered-values/types/index.d.ts create mode 100644 node_modules/postcss-ordered-values/types/lib/addSpace.d.ts create mode 100644 node_modules/postcss-ordered-values/types/lib/getValue.d.ts create mode 100644 node_modules/postcss-ordered-values/types/lib/joinGridValue.d.ts create mode 100644 node_modules/postcss-ordered-values/types/lib/mathfunctions.d.ts create mode 100644 node_modules/postcss-ordered-values/types/lib/vendorUnprefixed.d.ts create mode 100644 node_modules/postcss-ordered-values/types/rules/animation.d.ts create mode 100644 node_modules/postcss-ordered-values/types/rules/border.d.ts create mode 100644 node_modules/postcss-ordered-values/types/rules/boxShadow.d.ts create mode 100644 node_modules/postcss-ordered-values/types/rules/columns.d.ts create mode 100644 node_modules/postcss-ordered-values/types/rules/flexFlow.d.ts create mode 100644 node_modules/postcss-ordered-values/types/rules/grid.d.ts create mode 100644 node_modules/postcss-ordered-values/types/rules/listStyle.d.ts create mode 100644 node_modules/postcss-ordered-values/types/rules/transition.d.ts create mode 100644 node_modules/postcss-overflow-shorthand/CHANGELOG.md create mode 100644 node_modules/postcss-overflow-shorthand/LICENSE.md create mode 100644 node_modules/postcss-overflow-shorthand/README.md create mode 100644 node_modules/postcss-overflow-shorthand/dist/index.cjs create mode 100644 node_modules/postcss-overflow-shorthand/dist/index.d.ts create mode 100644 node_modules/postcss-overflow-shorthand/dist/index.mjs create mode 100644 node_modules/postcss-overflow-shorthand/package.json create mode 100644 node_modules/postcss-page-break/CHANGELOG.md create mode 100644 node_modules/postcss-page-break/LICENSE create mode 100644 node_modules/postcss-page-break/README.md create mode 100644 node_modules/postcss-page-break/index.js create mode 100644 node_modules/postcss-page-break/package.json create mode 100644 node_modules/postcss-place/CHANGELOG.md create mode 100644 node_modules/postcss-place/LICENSE.md create mode 100644 node_modules/postcss-place/README.md create mode 100644 node_modules/postcss-place/dist/index.cjs create mode 100644 node_modules/postcss-place/dist/index.d.ts create mode 100644 node_modules/postcss-place/dist/index.mjs create mode 100644 node_modules/postcss-place/dist/onCSSDeclaration.d.ts create mode 100644 node_modules/postcss-place/package.json create mode 100644 node_modules/postcss-preset-env/CHANGELOG.md create mode 100644 node_modules/postcss-preset-env/LICENSE.md create mode 100644 node_modules/postcss-preset-env/README.md create mode 100644 node_modules/postcss-preset-env/dist/index.cjs create mode 100644 node_modules/postcss-preset-env/dist/index.d.ts create mode 100644 node_modules/postcss-preset-env/dist/index.mjs create mode 100644 node_modules/postcss-preset-env/dist/options.d.ts create mode 100644 node_modules/postcss-preset-env/dist/plugins/plugins-options.d.ts create mode 100644 node_modules/postcss-preset-env/dist/types/postcss-clamp/plugin-options.d.ts create mode 100644 node_modules/postcss-preset-env/dist/types/postcss-font-variant/plugin-options.d.ts create mode 100644 node_modules/postcss-preset-env/dist/types/postcss-opacity-percentage/plugin-options.d.ts create mode 100644 node_modules/postcss-preset-env/dist/types/postcss-page-break/plugin-options.d.ts create mode 100644 node_modules/postcss-preset-env/dist/types/postcss-replace-overflow-wrap/plugin-options.d.ts create mode 100644 node_modules/postcss-preset-env/dist/types/postcss-system-ui-font-family/plugin-options.d.ts create mode 100644 node_modules/postcss-preset-env/package.json create mode 100644 node_modules/postcss-pseudo-class-any-link/CHANGELOG.md create mode 100644 node_modules/postcss-pseudo-class-any-link/LICENSE.md create mode 100644 node_modules/postcss-pseudo-class-any-link/README.md create mode 100644 node_modules/postcss-pseudo-class-any-link/dist/index.cjs create mode 100644 node_modules/postcss-pseudo-class-any-link/dist/index.d.ts create mode 100644 node_modules/postcss-pseudo-class-any-link/dist/index.mjs create mode 100644 node_modules/postcss-pseudo-class-any-link/dist/replace-any-link.d.ts create mode 100644 node_modules/postcss-pseudo-class-any-link/package.json create mode 100644 node_modules/postcss-reduce-initial/LICENSE-MIT create mode 100644 node_modules/postcss-reduce-initial/README.md create mode 100644 node_modules/postcss-reduce-initial/package.json create mode 100644 node_modules/postcss-reduce-initial/src/data/fromInitial.json create mode 100644 node_modules/postcss-reduce-initial/src/data/toInitial.json create mode 100644 node_modules/postcss-reduce-initial/src/index.js create mode 100644 node_modules/postcss-reduce-initial/types/index.d.ts create mode 100644 node_modules/postcss-reduce-transforms/LICENSE-MIT create mode 100644 node_modules/postcss-reduce-transforms/README.md create mode 100644 node_modules/postcss-reduce-transforms/package.json create mode 100644 node_modules/postcss-reduce-transforms/src/index.js create mode 100644 node_modules/postcss-reduce-transforms/types/index.d.ts create mode 100644 node_modules/postcss-replace-overflow-wrap/CHANGELOG.md create mode 100644 node_modules/postcss-replace-overflow-wrap/LICENSE create mode 100644 node_modules/postcss-replace-overflow-wrap/README.md create mode 100644 node_modules/postcss-replace-overflow-wrap/index.js create mode 100644 node_modules/postcss-replace-overflow-wrap/package.json create mode 100644 node_modules/postcss-reporter/LICENSE create mode 100644 node_modules/postcss-reporter/README.md create mode 100644 node_modules/postcss-reporter/index.js create mode 100644 node_modules/postcss-reporter/lib/formatter.js create mode 100644 node_modules/postcss-reporter/lib/reporter.js create mode 100644 node_modules/postcss-reporter/lib/util.js create mode 100644 node_modules/postcss-reporter/package.json create mode 100644 node_modules/postcss-selector-not/CHANGELOG.md create mode 100644 node_modules/postcss-selector-not/LICENSE create mode 100644 node_modules/postcss-selector-not/README.md create mode 100644 node_modules/postcss-selector-not/dist/index.cjs create mode 100644 node_modules/postcss-selector-not/dist/index.d.ts create mode 100644 node_modules/postcss-selector-not/dist/index.mjs create mode 100644 node_modules/postcss-selector-not/package.json create mode 100644 node_modules/postcss-selector-parser/API.md create mode 100644 node_modules/postcss-selector-parser/CHANGELOG.md create mode 100644 node_modules/postcss-selector-parser/LICENSE-MIT create mode 100644 node_modules/postcss-selector-parser/README.md create mode 100644 node_modules/postcss-selector-parser/dist/index.js create mode 100644 node_modules/postcss-selector-parser/dist/parser.js create mode 100644 node_modules/postcss-selector-parser/dist/processor.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/attribute.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/className.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/combinator.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/comment.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/constructors.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/container.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/guards.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/id.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/index.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/namespace.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/nesting.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/node.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/pseudo.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/root.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/selector.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/string.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/tag.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/types.js create mode 100644 node_modules/postcss-selector-parser/dist/selectors/universal.js create mode 100644 node_modules/postcss-selector-parser/dist/sortAscending.js create mode 100644 node_modules/postcss-selector-parser/dist/tokenTypes.js create mode 100644 node_modules/postcss-selector-parser/dist/tokenize.js create mode 100644 node_modules/postcss-selector-parser/dist/util/ensureObject.js create mode 100644 node_modules/postcss-selector-parser/dist/util/getProp.js create mode 100644 node_modules/postcss-selector-parser/dist/util/index.js create mode 100644 node_modules/postcss-selector-parser/dist/util/stripComments.js create mode 100644 node_modules/postcss-selector-parser/dist/util/unesc.js create mode 100644 node_modules/postcss-selector-parser/package.json create mode 100644 node_modules/postcss-selector-parser/postcss-selector-parser.d.ts create mode 100644 node_modules/postcss-svgo/LICENSE-MIT create mode 100644 node_modules/postcss-svgo/README.md create mode 100644 node_modules/postcss-svgo/package.json create mode 100644 node_modules/postcss-svgo/src/globals.d.ts create mode 100644 node_modules/postcss-svgo/src/index.js create mode 100644 node_modules/postcss-svgo/src/lib/url.js create mode 100644 node_modules/postcss-svgo/types/index.d.ts create mode 100644 node_modules/postcss-svgo/types/lib/url.d.ts create mode 100644 node_modules/postcss-unique-selectors/LICENSE-MIT create mode 100644 node_modules/postcss-unique-selectors/README.md create mode 100644 node_modules/postcss-unique-selectors/package.json create mode 100644 node_modules/postcss-unique-selectors/src/index.js create mode 100644 node_modules/postcss-unique-selectors/types/index.d.ts create mode 100644 node_modules/postcss-value-parser/LICENSE create mode 100644 node_modules/postcss-value-parser/README.md create mode 100644 node_modules/postcss-value-parser/lib/index.d.ts create mode 100644 node_modules/postcss-value-parser/lib/index.js create mode 100644 node_modules/postcss-value-parser/lib/parse.js create mode 100644 node_modules/postcss-value-parser/lib/stringify.js create mode 100644 node_modules/postcss-value-parser/lib/unit.js create mode 100644 node_modules/postcss-value-parser/lib/walk.js create mode 100644 node_modules/postcss-value-parser/package.json create mode 100644 node_modules/postcss/LICENSE create mode 100644 node_modules/postcss/README.md create mode 100644 node_modules/postcss/lib/at-rule.d.ts create mode 100644 node_modules/postcss/lib/at-rule.js create mode 100644 node_modules/postcss/lib/comment.d.ts create mode 100644 node_modules/postcss/lib/comment.js create mode 100644 node_modules/postcss/lib/container.d.ts create mode 100644 node_modules/postcss/lib/container.js create mode 100644 node_modules/postcss/lib/css-syntax-error.d.ts create mode 100644 node_modules/postcss/lib/css-syntax-error.js create mode 100644 node_modules/postcss/lib/declaration.d.ts create mode 100644 node_modules/postcss/lib/declaration.js create mode 100644 node_modules/postcss/lib/document.d.ts create mode 100644 node_modules/postcss/lib/document.js create mode 100644 node_modules/postcss/lib/fromJSON.d.ts create mode 100644 node_modules/postcss/lib/fromJSON.js create mode 100644 node_modules/postcss/lib/input.d.ts create mode 100644 node_modules/postcss/lib/input.js create mode 100644 node_modules/postcss/lib/lazy-result.d.ts create mode 100644 node_modules/postcss/lib/lazy-result.js create mode 100644 node_modules/postcss/lib/list.d.ts create mode 100644 node_modules/postcss/lib/list.js create mode 100644 node_modules/postcss/lib/map-generator.js create mode 100644 node_modules/postcss/lib/no-work-result.d.ts create mode 100644 node_modules/postcss/lib/no-work-result.js create mode 100644 node_modules/postcss/lib/node.d.ts create mode 100644 node_modules/postcss/lib/node.js create mode 100644 node_modules/postcss/lib/parse.d.ts create mode 100644 node_modules/postcss/lib/parse.js create mode 100644 node_modules/postcss/lib/parser.js create mode 100644 node_modules/postcss/lib/postcss.d.mts create mode 100644 node_modules/postcss/lib/postcss.d.ts create mode 100644 node_modules/postcss/lib/postcss.js create mode 100644 node_modules/postcss/lib/postcss.mjs create mode 100644 node_modules/postcss/lib/previous-map.d.ts create mode 100644 node_modules/postcss/lib/previous-map.js create mode 100644 node_modules/postcss/lib/processor.d.ts create mode 100644 node_modules/postcss/lib/processor.js create mode 100644 node_modules/postcss/lib/result.d.ts create mode 100644 node_modules/postcss/lib/result.js create mode 100644 node_modules/postcss/lib/root.d.ts create mode 100644 node_modules/postcss/lib/root.js create mode 100644 node_modules/postcss/lib/rule.d.ts create mode 100644 node_modules/postcss/lib/rule.js create mode 100644 node_modules/postcss/lib/stringifier.d.ts create mode 100644 node_modules/postcss/lib/stringifier.js create mode 100644 node_modules/postcss/lib/stringify.d.ts create mode 100644 node_modules/postcss/lib/stringify.js create mode 100644 node_modules/postcss/lib/symbols.js create mode 100644 node_modules/postcss/lib/terminal-highlight.js create mode 100644 node_modules/postcss/lib/tokenize.js create mode 100644 node_modules/postcss/lib/warn-once.js create mode 100644 node_modules/postcss/lib/warning.d.ts create mode 100644 node_modules/postcss/lib/warning.js create mode 100755 node_modules/postcss/package.json create mode 100644 node_modules/pretty-hrtime/.jshintignore create mode 100644 node_modules/pretty-hrtime/.npmignore create mode 100644 node_modules/pretty-hrtime/LICENSE create mode 100644 node_modules/pretty-hrtime/README.md create mode 100644 node_modules/pretty-hrtime/index.js create mode 100644 node_modules/pretty-hrtime/package.json create mode 100755 node_modules/queue-microtask/LICENSE create mode 100644 node_modules/queue-microtask/README.md create mode 100644 node_modules/queue-microtask/index.d.ts create mode 100644 node_modules/queue-microtask/index.js create mode 100644 node_modules/queue-microtask/package.json create mode 100644 node_modules/read-cache/LICENSE create mode 100644 node_modules/read-cache/README.md create mode 100644 node_modules/read-cache/index.js create mode 100644 node_modules/read-cache/package.json create mode 100644 node_modules/readdirp/LICENSE create mode 100644 node_modules/readdirp/README.md create mode 100644 node_modules/readdirp/index.d.ts create mode 100644 node_modules/readdirp/index.js create mode 100644 node_modules/readdirp/package.json create mode 100644 node_modules/require-directory/.jshintrc create mode 100644 node_modules/require-directory/.npmignore create mode 100644 node_modules/require-directory/.travis.yml create mode 100644 node_modules/require-directory/LICENSE create mode 100644 node_modules/require-directory/README.markdown create mode 100644 node_modules/require-directory/index.js create mode 100644 node_modules/require-directory/package.json create mode 100644 node_modules/reusify/.coveralls.yml create mode 100644 node_modules/reusify/.travis.yml create mode 100644 node_modules/reusify/LICENSE create mode 100644 node_modules/reusify/README.md create mode 100644 node_modules/reusify/benchmarks/createNoCodeFunction.js create mode 100644 node_modules/reusify/benchmarks/fib.js create mode 100644 node_modules/reusify/benchmarks/reuseNoCodeFunction.js create mode 100644 node_modules/reusify/package.json create mode 100644 node_modules/reusify/reusify.js create mode 100644 node_modules/reusify/test.js create mode 100644 node_modules/run-parallel/LICENSE create mode 100644 node_modules/run-parallel/README.md create mode 100644 node_modules/run-parallel/index.js create mode 100644 node_modules/run-parallel/package.json create mode 100644 node_modules/slash/index.d.ts create mode 100644 node_modules/slash/index.js create mode 100644 node_modules/slash/license create mode 100644 node_modules/slash/package.json create mode 100644 node_modules/slash/readme.md create mode 100644 node_modules/source-map-js/CHANGELOG.md create mode 100644 node_modules/source-map-js/LICENSE create mode 100644 node_modules/source-map-js/README.md create mode 100644 node_modules/source-map-js/lib/array-set.js create mode 100644 node_modules/source-map-js/lib/base64-vlq.js create mode 100644 node_modules/source-map-js/lib/base64.js create mode 100644 node_modules/source-map-js/lib/binary-search.js create mode 100644 node_modules/source-map-js/lib/mapping-list.js create mode 100644 node_modules/source-map-js/lib/quick-sort.js create mode 100644 node_modules/source-map-js/lib/source-map-consumer.js create mode 100644 node_modules/source-map-js/lib/source-map-generator.js create mode 100644 node_modules/source-map-js/lib/source-node.js create mode 100644 node_modules/source-map-js/lib/util.js create mode 100644 node_modules/source-map-js/package.json create mode 100644 node_modules/source-map-js/source-map.d.ts create mode 100644 node_modules/source-map-js/source-map.js create mode 100644 node_modules/string-width/index.d.ts create mode 100644 node_modules/string-width/index.js create mode 100644 node_modules/string-width/license create mode 100644 node_modules/string-width/package.json create mode 100644 node_modules/string-width/readme.md create mode 100644 node_modules/strip-ansi/index.d.ts create mode 100644 node_modules/strip-ansi/index.js create mode 100644 node_modules/strip-ansi/license create mode 100644 node_modules/strip-ansi/package.json create mode 100644 node_modules/strip-ansi/readme.md create mode 100644 node_modules/stylehacks/LICENSE-MIT create mode 100644 node_modules/stylehacks/README.md create mode 100644 node_modules/stylehacks/package.json create mode 100644 node_modules/stylehacks/src/dictionary/browsers.js create mode 100644 node_modules/stylehacks/src/dictionary/identifiers.js create mode 100644 node_modules/stylehacks/src/dictionary/postcss.js create mode 100644 node_modules/stylehacks/src/dictionary/tags.js create mode 100644 node_modules/stylehacks/src/exists.js create mode 100644 node_modules/stylehacks/src/index.js create mode 100644 node_modules/stylehacks/src/isMixin.js create mode 100644 node_modules/stylehacks/src/plugin.js create mode 100644 node_modules/stylehacks/src/plugins/bodyEmpty.js create mode 100644 node_modules/stylehacks/src/plugins/htmlCombinatorCommentBody.js create mode 100644 node_modules/stylehacks/src/plugins/htmlFirstChild.js create mode 100644 node_modules/stylehacks/src/plugins/important.js create mode 100644 node_modules/stylehacks/src/plugins/index.js create mode 100644 node_modules/stylehacks/src/plugins/leadingStar.js create mode 100644 node_modules/stylehacks/src/plugins/leadingUnderscore.js create mode 100644 node_modules/stylehacks/src/plugins/mediaSlash0.js create mode 100644 node_modules/stylehacks/src/plugins/mediaSlash0Slash9.js create mode 100644 node_modules/stylehacks/src/plugins/mediaSlash9.js create mode 100644 node_modules/stylehacks/src/plugins/slash9.js create mode 100644 node_modules/stylehacks/src/plugins/starHtml.js create mode 100644 node_modules/stylehacks/src/plugins/trailingSlashComma.js create mode 100644 node_modules/stylehacks/types/dictionary/browsers.d.ts create mode 100644 node_modules/stylehacks/types/dictionary/identifiers.d.ts create mode 100644 node_modules/stylehacks/types/dictionary/postcss.d.ts create mode 100644 node_modules/stylehacks/types/dictionary/tags.d.ts create mode 100644 node_modules/stylehacks/types/exists.d.ts create mode 100644 node_modules/stylehacks/types/index.d.ts create mode 100644 node_modules/stylehacks/types/isMixin.d.ts create mode 100644 node_modules/stylehacks/types/plugin.d.ts create mode 100644 node_modules/stylehacks/types/plugins/bodyEmpty.d.ts create mode 100644 node_modules/stylehacks/types/plugins/htmlCombinatorCommentBody.d.ts create mode 100644 node_modules/stylehacks/types/plugins/htmlFirstChild.d.ts create mode 100644 node_modules/stylehacks/types/plugins/important.d.ts create mode 100644 node_modules/stylehacks/types/plugins/index.d.ts create mode 100644 node_modules/stylehacks/types/plugins/leadingStar.d.ts create mode 100644 node_modules/stylehacks/types/plugins/leadingUnderscore.d.ts create mode 100644 node_modules/stylehacks/types/plugins/mediaSlash0.d.ts create mode 100644 node_modules/stylehacks/types/plugins/mediaSlash0Slash9.d.ts create mode 100644 node_modules/stylehacks/types/plugins/mediaSlash9.d.ts create mode 100644 node_modules/stylehacks/types/plugins/slash9.d.ts create mode 100644 node_modules/stylehacks/types/plugins/starHtml.d.ts create mode 100644 node_modules/stylehacks/types/plugins/trailingSlashComma.d.ts create mode 100644 node_modules/svgo/LICENSE create mode 100644 node_modules/svgo/README.md create mode 100755 node_modules/svgo/bin/svgo create mode 100644 node_modules/svgo/dist/svgo.browser.js create mode 100644 node_modules/svgo/lib/builtin.js create mode 100644 node_modules/svgo/lib/parser.js create mode 100644 node_modules/svgo/lib/path.js create mode 100644 node_modules/svgo/lib/stringifier.js create mode 100644 node_modules/svgo/lib/style.js create mode 100644 node_modules/svgo/lib/svgo-node.js create mode 100644 node_modules/svgo/lib/svgo.d.ts create mode 100644 node_modules/svgo/lib/svgo.js create mode 100644 node_modules/svgo/lib/svgo/coa.js create mode 100644 node_modules/svgo/lib/svgo/css-select-adapter.d.ts create mode 100644 node_modules/svgo/lib/svgo/css-select-adapter.js create mode 100644 node_modules/svgo/lib/svgo/plugins.js create mode 100644 node_modules/svgo/lib/svgo/tools.js create mode 100644 node_modules/svgo/lib/types.ts create mode 100644 node_modules/svgo/lib/xast.js create mode 100644 node_modules/svgo/package.json create mode 100644 node_modules/svgo/plugins/_collections.js create mode 100644 node_modules/svgo/plugins/_path.js create mode 100644 node_modules/svgo/plugins/_transforms.js create mode 100644 node_modules/svgo/plugins/addAttributesToSVGElement.js create mode 100644 node_modules/svgo/plugins/addClassesToSVGElement.js create mode 100644 node_modules/svgo/plugins/applyTransforms.js create mode 100644 node_modules/svgo/plugins/cleanupAttrs.js create mode 100644 node_modules/svgo/plugins/cleanupEnableBackground.js create mode 100644 node_modules/svgo/plugins/cleanupIds.js create mode 100644 node_modules/svgo/plugins/cleanupListOfValues.js create mode 100644 node_modules/svgo/plugins/cleanupNumericValues.js create mode 100644 node_modules/svgo/plugins/collapseGroups.js create mode 100644 node_modules/svgo/plugins/convertColors.js create mode 100644 node_modules/svgo/plugins/convertEllipseToCircle.js create mode 100644 node_modules/svgo/plugins/convertPathData.js create mode 100644 node_modules/svgo/plugins/convertShapeToPath.js create mode 100644 node_modules/svgo/plugins/convertStyleToAttrs.js create mode 100644 node_modules/svgo/plugins/convertTransform.js create mode 100644 node_modules/svgo/plugins/inlineStyles.js create mode 100644 node_modules/svgo/plugins/mergePaths.js create mode 100644 node_modules/svgo/plugins/mergeStyles.js create mode 100644 node_modules/svgo/plugins/minifyStyles.js create mode 100644 node_modules/svgo/plugins/moveElemsAttrsToGroup.js create mode 100644 node_modules/svgo/plugins/moveGroupAttrsToElems.js create mode 100644 node_modules/svgo/plugins/plugins-types.ts create mode 100644 node_modules/svgo/plugins/prefixIds.js create mode 100644 node_modules/svgo/plugins/preset-default.js create mode 100644 node_modules/svgo/plugins/removeAttributesBySelector.js create mode 100644 node_modules/svgo/plugins/removeAttrs.js create mode 100644 node_modules/svgo/plugins/removeComments.js create mode 100644 node_modules/svgo/plugins/removeDesc.js create mode 100644 node_modules/svgo/plugins/removeDimensions.js create mode 100644 node_modules/svgo/plugins/removeDoctype.js create mode 100644 node_modules/svgo/plugins/removeEditorsNSData.js create mode 100644 node_modules/svgo/plugins/removeElementsByAttr.js create mode 100644 node_modules/svgo/plugins/removeEmptyAttrs.js create mode 100644 node_modules/svgo/plugins/removeEmptyContainers.js create mode 100644 node_modules/svgo/plugins/removeEmptyText.js create mode 100644 node_modules/svgo/plugins/removeHiddenElems.js create mode 100644 node_modules/svgo/plugins/removeMetadata.js create mode 100644 node_modules/svgo/plugins/removeNonInheritableGroupAttrs.js create mode 100644 node_modules/svgo/plugins/removeOffCanvasPaths.js create mode 100644 node_modules/svgo/plugins/removeRasterImages.js create mode 100644 node_modules/svgo/plugins/removeScriptElement.js create mode 100644 node_modules/svgo/plugins/removeStyleElement.js create mode 100644 node_modules/svgo/plugins/removeTitle.js create mode 100644 node_modules/svgo/plugins/removeUnknownsAndDefaults.js create mode 100644 node_modules/svgo/plugins/removeUnusedNS.js create mode 100644 node_modules/svgo/plugins/removeUselessDefs.js create mode 100644 node_modules/svgo/plugins/removeUselessStrokeAndFill.js create mode 100644 node_modules/svgo/plugins/removeViewBox.js create mode 100644 node_modules/svgo/plugins/removeXMLNS.js create mode 100644 node_modules/svgo/plugins/removeXMLProcInst.js create mode 100644 node_modules/svgo/plugins/reusePaths.js create mode 100644 node_modules/svgo/plugins/sortAttrs.js create mode 100644 node_modules/svgo/plugins/sortDefsChildren.js create mode 100644 node_modules/thenby/LICENSE.TXT create mode 100644 node_modules/thenby/README.md create mode 100644 node_modules/thenby/package.json create mode 100644 node_modules/thenby/thenBy.min.js create mode 100644 node_modules/thenby/thenBy.module.d.ts create mode 100644 node_modules/thenby/thenBy.module.js create mode 100644 node_modules/to-regex-range/LICENSE create mode 100644 node_modules/to-regex-range/README.md create mode 100644 node_modules/to-regex-range/index.js create mode 100644 node_modules/to-regex-range/package.json create mode 100644 node_modules/universalify/LICENSE create mode 100644 node_modules/universalify/README.md create mode 100644 node_modules/universalify/index.js create mode 100644 node_modules/universalify/package.json create mode 100644 node_modules/update-browserslist-db/LICENSE create mode 100644 node_modules/update-browserslist-db/README.md create mode 100644 node_modules/update-browserslist-db/check-npm-version.js create mode 100755 node_modules/update-browserslist-db/cli.js create mode 100644 node_modules/update-browserslist-db/index.d.ts create mode 100644 node_modules/update-browserslist-db/index.js create mode 100644 node_modules/update-browserslist-db/package.json create mode 100644 node_modules/update-browserslist-db/utils.js create mode 100644 node_modules/util-deprecate/History.md create mode 100644 node_modules/util-deprecate/LICENSE create mode 100644 node_modules/util-deprecate/README.md create mode 100644 node_modules/util-deprecate/browser.js create mode 100644 node_modules/util-deprecate/node.js create mode 100644 node_modules/util-deprecate/package.json create mode 100755 node_modules/wrap-ansi/index.js create mode 100644 node_modules/wrap-ansi/license create mode 100644 node_modules/wrap-ansi/package.json create mode 100644 node_modules/wrap-ansi/readme.md create mode 100644 node_modules/y18n/CHANGELOG.md create mode 100644 node_modules/y18n/LICENSE create mode 100644 node_modules/y18n/README.md create mode 100644 node_modules/y18n/build/index.cjs create mode 100644 node_modules/y18n/build/lib/cjs.js create mode 100644 node_modules/y18n/build/lib/index.js create mode 100644 node_modules/y18n/build/lib/platform-shims/node.js create mode 100644 node_modules/y18n/index.mjs create mode 100644 node_modules/y18n/package.json create mode 100644 node_modules/yaml/LICENSE create mode 100644 node_modules/yaml/README.md create mode 100644 node_modules/yaml/browser/dist/compose/compose-collection.js create mode 100644 node_modules/yaml/browser/dist/compose/compose-doc.js create mode 100644 node_modules/yaml/browser/dist/compose/compose-node.js create mode 100644 node_modules/yaml/browser/dist/compose/compose-scalar.js create mode 100644 node_modules/yaml/browser/dist/compose/composer.js create mode 100644 node_modules/yaml/browser/dist/compose/resolve-block-map.js create mode 100644 node_modules/yaml/browser/dist/compose/resolve-block-scalar.js create mode 100644 node_modules/yaml/browser/dist/compose/resolve-block-seq.js create mode 100644 node_modules/yaml/browser/dist/compose/resolve-end.js create mode 100644 node_modules/yaml/browser/dist/compose/resolve-flow-collection.js create mode 100644 node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js create mode 100644 node_modules/yaml/browser/dist/compose/resolve-props.js create mode 100644 node_modules/yaml/browser/dist/compose/util-contains-newline.js create mode 100644 node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js create mode 100644 node_modules/yaml/browser/dist/compose/util-flow-indent-check.js create mode 100644 node_modules/yaml/browser/dist/compose/util-map-includes.js create mode 100644 node_modules/yaml/browser/dist/doc/Document.js create mode 100644 node_modules/yaml/browser/dist/doc/anchors.js create mode 100644 node_modules/yaml/browser/dist/doc/applyReviver.js create mode 100644 node_modules/yaml/browser/dist/doc/createNode.js create mode 100644 node_modules/yaml/browser/dist/doc/directives.js create mode 100644 node_modules/yaml/browser/dist/errors.js create mode 100644 node_modules/yaml/browser/dist/index.js create mode 100644 node_modules/yaml/browser/dist/log.js create mode 100644 node_modules/yaml/browser/dist/node_modules/tslib/tslib.es6.js create mode 100644 node_modules/yaml/browser/dist/nodes/Alias.js create mode 100644 node_modules/yaml/browser/dist/nodes/Collection.js create mode 100644 node_modules/yaml/browser/dist/nodes/Node.js create mode 100644 node_modules/yaml/browser/dist/nodes/Pair.js create mode 100644 node_modules/yaml/browser/dist/nodes/Scalar.js create mode 100644 node_modules/yaml/browser/dist/nodes/YAMLMap.js create mode 100644 node_modules/yaml/browser/dist/nodes/YAMLSeq.js create mode 100644 node_modules/yaml/browser/dist/nodes/addPairToJSMap.js create mode 100644 node_modules/yaml/browser/dist/nodes/identity.js create mode 100644 node_modules/yaml/browser/dist/nodes/toJS.js create mode 100644 node_modules/yaml/browser/dist/parse/cst-scalar.js create mode 100644 node_modules/yaml/browser/dist/parse/cst-stringify.js create mode 100644 node_modules/yaml/browser/dist/parse/cst-visit.js create mode 100644 node_modules/yaml/browser/dist/parse/cst.js create mode 100644 node_modules/yaml/browser/dist/parse/lexer.js create mode 100644 node_modules/yaml/browser/dist/parse/line-counter.js create mode 100644 node_modules/yaml/browser/dist/parse/parser.js create mode 100644 node_modules/yaml/browser/dist/public-api.js create mode 100644 node_modules/yaml/browser/dist/schema/Schema.js create mode 100644 node_modules/yaml/browser/dist/schema/common/map.js create mode 100644 node_modules/yaml/browser/dist/schema/common/null.js create mode 100644 node_modules/yaml/browser/dist/schema/common/seq.js create mode 100644 node_modules/yaml/browser/dist/schema/common/string.js create mode 100644 node_modules/yaml/browser/dist/schema/core/bool.js create mode 100644 node_modules/yaml/browser/dist/schema/core/float.js create mode 100644 node_modules/yaml/browser/dist/schema/core/int.js create mode 100644 node_modules/yaml/browser/dist/schema/core/schema.js create mode 100644 node_modules/yaml/browser/dist/schema/json/schema.js create mode 100644 node_modules/yaml/browser/dist/schema/tags.js create mode 100644 node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js create mode 100644 node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js create mode 100644 node_modules/yaml/browser/dist/schema/yaml-1.1/float.js create mode 100644 node_modules/yaml/browser/dist/schema/yaml-1.1/int.js create mode 100644 node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js create mode 100644 node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js create mode 100644 node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js create mode 100644 node_modules/yaml/browser/dist/schema/yaml-1.1/set.js create mode 100644 node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js create mode 100644 node_modules/yaml/browser/dist/stringify/foldFlowLines.js create mode 100644 node_modules/yaml/browser/dist/stringify/stringify.js create mode 100644 node_modules/yaml/browser/dist/stringify/stringifyCollection.js create mode 100644 node_modules/yaml/browser/dist/stringify/stringifyComment.js create mode 100644 node_modules/yaml/browser/dist/stringify/stringifyDocument.js create mode 100644 node_modules/yaml/browser/dist/stringify/stringifyNumber.js create mode 100644 node_modules/yaml/browser/dist/stringify/stringifyPair.js create mode 100644 node_modules/yaml/browser/dist/stringify/stringifyString.js create mode 100644 node_modules/yaml/browser/dist/util.js create mode 100644 node_modules/yaml/browser/dist/visit.js create mode 100644 node_modules/yaml/browser/index.js create mode 100644 node_modules/yaml/browser/package.json create mode 100644 node_modules/yaml/dist/compose/compose-collection.d.ts create mode 100644 node_modules/yaml/dist/compose/compose-collection.js create mode 100644 node_modules/yaml/dist/compose/compose-doc.d.ts create mode 100644 node_modules/yaml/dist/compose/compose-doc.js create mode 100644 node_modules/yaml/dist/compose/compose-node.d.ts create mode 100644 node_modules/yaml/dist/compose/compose-node.js create mode 100644 node_modules/yaml/dist/compose/compose-scalar.d.ts create mode 100644 node_modules/yaml/dist/compose/compose-scalar.js create mode 100644 node_modules/yaml/dist/compose/composer.d.ts create mode 100644 node_modules/yaml/dist/compose/composer.js create mode 100644 node_modules/yaml/dist/compose/resolve-block-map.d.ts create mode 100644 node_modules/yaml/dist/compose/resolve-block-map.js create mode 100644 node_modules/yaml/dist/compose/resolve-block-scalar.d.ts create mode 100644 node_modules/yaml/dist/compose/resolve-block-scalar.js create mode 100644 node_modules/yaml/dist/compose/resolve-block-seq.d.ts create mode 100644 node_modules/yaml/dist/compose/resolve-block-seq.js create mode 100644 node_modules/yaml/dist/compose/resolve-end.d.ts create mode 100644 node_modules/yaml/dist/compose/resolve-end.js create mode 100644 node_modules/yaml/dist/compose/resolve-flow-collection.d.ts create mode 100644 node_modules/yaml/dist/compose/resolve-flow-collection.js create mode 100644 node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts create mode 100644 node_modules/yaml/dist/compose/resolve-flow-scalar.js create mode 100644 node_modules/yaml/dist/compose/resolve-props.d.ts create mode 100644 node_modules/yaml/dist/compose/resolve-props.js create mode 100644 node_modules/yaml/dist/compose/util-contains-newline.d.ts create mode 100644 node_modules/yaml/dist/compose/util-contains-newline.js create mode 100644 node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts create mode 100644 node_modules/yaml/dist/compose/util-empty-scalar-position.js create mode 100644 node_modules/yaml/dist/compose/util-flow-indent-check.d.ts create mode 100644 node_modules/yaml/dist/compose/util-flow-indent-check.js create mode 100644 node_modules/yaml/dist/compose/util-map-includes.d.ts create mode 100644 node_modules/yaml/dist/compose/util-map-includes.js create mode 100644 node_modules/yaml/dist/doc/Document.d.ts create mode 100644 node_modules/yaml/dist/doc/Document.js create mode 100644 node_modules/yaml/dist/doc/anchors.d.ts create mode 100644 node_modules/yaml/dist/doc/anchors.js create mode 100644 node_modules/yaml/dist/doc/applyReviver.d.ts create mode 100644 node_modules/yaml/dist/doc/applyReviver.js create mode 100644 node_modules/yaml/dist/doc/createNode.d.ts create mode 100644 node_modules/yaml/dist/doc/createNode.js create mode 100644 node_modules/yaml/dist/doc/directives.d.ts create mode 100644 node_modules/yaml/dist/doc/directives.js create mode 100644 node_modules/yaml/dist/errors.d.ts create mode 100644 node_modules/yaml/dist/errors.js create mode 100644 node_modules/yaml/dist/index.d.ts create mode 100644 node_modules/yaml/dist/index.js create mode 100644 node_modules/yaml/dist/log.d.ts create mode 100644 node_modules/yaml/dist/log.js create mode 100644 node_modules/yaml/dist/nodes/Alias.d.ts create mode 100644 node_modules/yaml/dist/nodes/Alias.js create mode 100644 node_modules/yaml/dist/nodes/Collection.d.ts create mode 100644 node_modules/yaml/dist/nodes/Collection.js create mode 100644 node_modules/yaml/dist/nodes/Node.d.ts create mode 100644 node_modules/yaml/dist/nodes/Node.js create mode 100644 node_modules/yaml/dist/nodes/Pair.d.ts create mode 100644 node_modules/yaml/dist/nodes/Pair.js create mode 100644 node_modules/yaml/dist/nodes/Scalar.d.ts create mode 100644 node_modules/yaml/dist/nodes/Scalar.js create mode 100644 node_modules/yaml/dist/nodes/YAMLMap.d.ts create mode 100644 node_modules/yaml/dist/nodes/YAMLMap.js create mode 100644 node_modules/yaml/dist/nodes/YAMLSeq.d.ts create mode 100644 node_modules/yaml/dist/nodes/YAMLSeq.js create mode 100644 node_modules/yaml/dist/nodes/addPairToJSMap.d.ts create mode 100644 node_modules/yaml/dist/nodes/addPairToJSMap.js create mode 100644 node_modules/yaml/dist/nodes/identity.d.ts create mode 100644 node_modules/yaml/dist/nodes/identity.js create mode 100644 node_modules/yaml/dist/nodes/toJS.d.ts create mode 100644 node_modules/yaml/dist/nodes/toJS.js create mode 100644 node_modules/yaml/dist/options.d.ts create mode 100644 node_modules/yaml/dist/parse/cst-scalar.d.ts create mode 100644 node_modules/yaml/dist/parse/cst-scalar.js create mode 100644 node_modules/yaml/dist/parse/cst-stringify.d.ts create mode 100644 node_modules/yaml/dist/parse/cst-stringify.js create mode 100644 node_modules/yaml/dist/parse/cst-visit.d.ts create mode 100644 node_modules/yaml/dist/parse/cst-visit.js create mode 100644 node_modules/yaml/dist/parse/cst.d.ts create mode 100644 node_modules/yaml/dist/parse/cst.js create mode 100644 node_modules/yaml/dist/parse/lexer.d.ts create mode 100644 node_modules/yaml/dist/parse/lexer.js create mode 100644 node_modules/yaml/dist/parse/line-counter.d.ts create mode 100644 node_modules/yaml/dist/parse/line-counter.js create mode 100644 node_modules/yaml/dist/parse/parser.d.ts create mode 100644 node_modules/yaml/dist/parse/parser.js create mode 100644 node_modules/yaml/dist/public-api.d.ts create mode 100644 node_modules/yaml/dist/public-api.js create mode 100644 node_modules/yaml/dist/schema/Schema.d.ts create mode 100644 node_modules/yaml/dist/schema/Schema.js create mode 100644 node_modules/yaml/dist/schema/common/map.d.ts create mode 100644 node_modules/yaml/dist/schema/common/map.js create mode 100644 node_modules/yaml/dist/schema/common/null.d.ts create mode 100644 node_modules/yaml/dist/schema/common/null.js create mode 100644 node_modules/yaml/dist/schema/common/seq.d.ts create mode 100644 node_modules/yaml/dist/schema/common/seq.js create mode 100644 node_modules/yaml/dist/schema/common/string.d.ts create mode 100644 node_modules/yaml/dist/schema/common/string.js create mode 100644 node_modules/yaml/dist/schema/core/bool.d.ts create mode 100644 node_modules/yaml/dist/schema/core/bool.js create mode 100644 node_modules/yaml/dist/schema/core/float.d.ts create mode 100644 node_modules/yaml/dist/schema/core/float.js create mode 100644 node_modules/yaml/dist/schema/core/int.d.ts create mode 100644 node_modules/yaml/dist/schema/core/int.js create mode 100644 node_modules/yaml/dist/schema/core/schema.d.ts create mode 100644 node_modules/yaml/dist/schema/core/schema.js create mode 100644 node_modules/yaml/dist/schema/json-schema.d.ts create mode 100644 node_modules/yaml/dist/schema/json/schema.d.ts create mode 100644 node_modules/yaml/dist/schema/json/schema.js create mode 100644 node_modules/yaml/dist/schema/tags.d.ts create mode 100644 node_modules/yaml/dist/schema/tags.js create mode 100644 node_modules/yaml/dist/schema/types.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/binary.js create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/bool.js create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/float.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/float.js create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/int.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/int.js create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/omap.js create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/pairs.js create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/schema.js create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/set.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/set.js create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts create mode 100644 node_modules/yaml/dist/schema/yaml-1.1/timestamp.js create mode 100644 node_modules/yaml/dist/stringify/foldFlowLines.d.ts create mode 100644 node_modules/yaml/dist/stringify/foldFlowLines.js create mode 100644 node_modules/yaml/dist/stringify/stringify.d.ts create mode 100644 node_modules/yaml/dist/stringify/stringify.js create mode 100644 node_modules/yaml/dist/stringify/stringifyCollection.d.ts create mode 100644 node_modules/yaml/dist/stringify/stringifyCollection.js create mode 100644 node_modules/yaml/dist/stringify/stringifyComment.d.ts create mode 100644 node_modules/yaml/dist/stringify/stringifyComment.js create mode 100644 node_modules/yaml/dist/stringify/stringifyDocument.d.ts create mode 100644 node_modules/yaml/dist/stringify/stringifyDocument.js create mode 100644 node_modules/yaml/dist/stringify/stringifyNumber.d.ts create mode 100644 node_modules/yaml/dist/stringify/stringifyNumber.js create mode 100644 node_modules/yaml/dist/stringify/stringifyPair.d.ts create mode 100644 node_modules/yaml/dist/stringify/stringifyPair.js create mode 100644 node_modules/yaml/dist/stringify/stringifyString.d.ts create mode 100644 node_modules/yaml/dist/stringify/stringifyString.js create mode 100644 node_modules/yaml/dist/test-events.d.ts create mode 100644 node_modules/yaml/dist/test-events.js create mode 100644 node_modules/yaml/dist/util.d.ts create mode 100644 node_modules/yaml/dist/util.js create mode 100644 node_modules/yaml/dist/visit.d.ts create mode 100644 node_modules/yaml/dist/visit.js create mode 100644 node_modules/yaml/package.json create mode 100644 node_modules/yaml/util.js create mode 100644 node_modules/yargs-parser/CHANGELOG.md create mode 100644 node_modules/yargs-parser/LICENSE.txt create mode 100644 node_modules/yargs-parser/README.md create mode 100644 node_modules/yargs-parser/browser.js create mode 100644 node_modules/yargs-parser/build/index.cjs create mode 100644 node_modules/yargs-parser/build/lib/index.js create mode 100644 node_modules/yargs-parser/build/lib/string-utils.js create mode 100644 node_modules/yargs-parser/build/lib/tokenize-arg-string.js create mode 100644 node_modules/yargs-parser/build/lib/yargs-parser-types.js create mode 100644 node_modules/yargs-parser/build/lib/yargs-parser.js create mode 100644 node_modules/yargs-parser/package.json create mode 100644 node_modules/yargs/LICENSE create mode 100644 node_modules/yargs/README.md create mode 100644 node_modules/yargs/browser.d.ts create mode 100644 node_modules/yargs/browser.mjs create mode 100644 node_modules/yargs/build/index.cjs create mode 100644 node_modules/yargs/build/lib/argsert.js create mode 100644 node_modules/yargs/build/lib/command.js create mode 100644 node_modules/yargs/build/lib/completion-templates.js create mode 100644 node_modules/yargs/build/lib/completion.js create mode 100644 node_modules/yargs/build/lib/middleware.js create mode 100644 node_modules/yargs/build/lib/parse-command.js create mode 100644 node_modules/yargs/build/lib/typings/common-types.js create mode 100644 node_modules/yargs/build/lib/typings/yargs-parser-types.js create mode 100644 node_modules/yargs/build/lib/usage.js create mode 100644 node_modules/yargs/build/lib/utils/apply-extends.js create mode 100644 node_modules/yargs/build/lib/utils/is-promise.js create mode 100644 node_modules/yargs/build/lib/utils/levenshtein.js create mode 100644 node_modules/yargs/build/lib/utils/maybe-async-result.js create mode 100644 node_modules/yargs/build/lib/utils/obj-filter.js create mode 100644 node_modules/yargs/build/lib/utils/process-argv.js create mode 100644 node_modules/yargs/build/lib/utils/set-blocking.js create mode 100644 node_modules/yargs/build/lib/utils/which-module.js create mode 100644 node_modules/yargs/build/lib/validation.js create mode 100644 node_modules/yargs/build/lib/yargs-factory.js create mode 100644 node_modules/yargs/build/lib/yerror.js create mode 100644 node_modules/yargs/helpers/helpers.mjs create mode 100644 node_modules/yargs/helpers/index.js create mode 100644 node_modules/yargs/helpers/package.json create mode 100644 node_modules/yargs/index.cjs create mode 100644 node_modules/yargs/index.mjs create mode 100644 node_modules/yargs/lib/platform-shims/browser.mjs create mode 100644 node_modules/yargs/lib/platform-shims/esm.mjs create mode 100644 node_modules/yargs/locales/be.json create mode 100644 node_modules/yargs/locales/cs.json create mode 100644 node_modules/yargs/locales/de.json create mode 100644 node_modules/yargs/locales/en.json create mode 100644 node_modules/yargs/locales/es.json create mode 100644 node_modules/yargs/locales/fi.json create mode 100644 node_modules/yargs/locales/fr.json create mode 100644 node_modules/yargs/locales/hi.json create mode 100644 node_modules/yargs/locales/hu.json create mode 100644 node_modules/yargs/locales/id.json create mode 100644 node_modules/yargs/locales/it.json create mode 100644 node_modules/yargs/locales/ja.json create mode 100644 node_modules/yargs/locales/ko.json create mode 100644 node_modules/yargs/locales/nb.json create mode 100644 node_modules/yargs/locales/nl.json create mode 100644 node_modules/yargs/locales/nn.json create mode 100644 node_modules/yargs/locales/pirate.json create mode 100644 node_modules/yargs/locales/pl.json create mode 100644 node_modules/yargs/locales/pt.json create mode 100644 node_modules/yargs/locales/pt_BR.json create mode 100644 node_modules/yargs/locales/ru.json create mode 100644 node_modules/yargs/locales/th.json create mode 100644 node_modules/yargs/locales/tr.json create mode 100644 node_modules/yargs/locales/uk_UA.json create mode 100644 node_modules/yargs/locales/uz.json create mode 100644 node_modules/yargs/locales/zh_CN.json create mode 100644 node_modules/yargs/locales/zh_TW.json create mode 100644 node_modules/yargs/package.json create mode 100644 node_modules/yargs/yargs create mode 100644 node_modules/yargs/yargs.mjs (limited to 'node_modules') diff --git a/node_modules/.bin/autoprefixer b/node_modules/.bin/autoprefixer new file mode 120000 index 00000000..e876d81c --- /dev/null +++ b/node_modules/.bin/autoprefixer @@ -0,0 +1 @@ +../autoprefixer/bin/autoprefixer \ No newline at end of file diff --git a/node_modules/.bin/browserslist b/node_modules/.bin/browserslist new file mode 120000 index 00000000..3cd991b2 --- /dev/null +++ b/node_modules/.bin/browserslist @@ -0,0 +1 @@ +../browserslist/cli.js \ No newline at end of file diff --git a/node_modules/.bin/cssesc b/node_modules/.bin/cssesc new file mode 120000 index 00000000..487b6890 --- /dev/null +++ b/node_modules/.bin/cssesc @@ -0,0 +1 @@ +../cssesc/bin/cssesc \ No newline at end of file diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid new file mode 120000 index 00000000..e2be547b --- /dev/null +++ b/node_modules/.bin/nanoid @@ -0,0 +1 @@ +../nanoid/bin/nanoid.cjs \ No newline at end of file diff --git a/node_modules/.bin/postcss b/node_modules/.bin/postcss new file mode 120000 index 00000000..236af7c9 --- /dev/null +++ b/node_modules/.bin/postcss @@ -0,0 +1 @@ +../postcss-cli/index.js \ No newline at end of file diff --git a/node_modules/.bin/svgo b/node_modules/.bin/svgo new file mode 120000 index 00000000..d6a228b7 --- /dev/null +++ b/node_modules/.bin/svgo @@ -0,0 +1 @@ +../svgo/bin/svgo \ No newline at end of file diff --git a/node_modules/.bin/update-browserslist-db b/node_modules/.bin/update-browserslist-db new file mode 120000 index 00000000..b11e16f3 --- /dev/null +++ b/node_modules/.bin/update-browserslist-db @@ -0,0 +1 @@ +../update-browserslist-db/cli.js \ No newline at end of file diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 00000000..c3d9039d --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,3357 @@ +{ + "name": "index.html", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.5.tgz", + "integrity": "sha512-v/5ODKNBMfBl0us/WQjlfsvSlYxfZLhNMVIsuCPib2ulTwGKYbKJbwqw671+qH9Y4wvWVnu7LBChvml/wBKjFg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-3.0.2.tgz", + "integrity": "sha512-NMVs/l7Y9eIKL5XjbCHEgGcG8LOUT2qVcRjX6EzkCdlvftHVKr2tHIPzHavfrULRZ5Q2gxrJ9f44dAlj6fX97Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.1.4.tgz", + "integrity": "sha512-ZV1TSmToiNcQL1P3hfzlzZzA02mmVkVmXGaUDUqpYUG84PmLhVSZpKX+KfxAuOcK7de04UXSQPBrAvaya6iiGg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-1.4.0.tgz", + "integrity": "sha512-SlGd8E6ron24JYQPQAIzu5tvmWi1H4sDKTdA7UDnwF45oJv7AVESbOlOO1YjfBhrQFuvLWUgKiOY9DwGoAxwTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/color-helpers": "^3.0.2", + "@csstools/css-calc": "^1.1.4" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz", + "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^2.2.1" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz", + "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz", + "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + } + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-4.0.0.tgz", + "integrity": "sha512-dVPVVqQG0FixjM9CG/+8eHTsCAxRKqmNh6H69IpruolPlnEF1611f2AoLK8TijTSAsqBSclKd4WHs1KUb/LdJw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^3.0.0", + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.7.tgz", + "integrity": "sha512-/PIB20G1TPCXmQlaJLWIYzTZRZpj6csT4ijgnshIj/kcmniIRroAfDa0xSWnfuO1eNo0NptIaPU7jzUukWn55Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-function": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.7.tgz", + "integrity": "sha512-57/g8aGo5eKFjEeJMiRKh8Qq43K2rCyk5ZZTvJ34TNl4zUtYU5DvLkIkOnhCtL8/a4z9oMA42aOnFPddRrScUQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.1.tgz", + "integrity": "sha512-ZLK2iSK4DUxeypGce2PnQSdYugUqDTwxnhNiq1o6OyKMNYgYs4eKbvEhFG8JKr1sJWbeqBi5jRr0017l2EWVvg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-3.0.0.tgz", + "integrity": "sha512-ntkGj+1uDa/u6lpjPxnkPcjJn7ChO/Kcy08YxctOZI7vwtrdYvFhmE476dq8bj1yna306+jQ9gzXIG/SWfOaRg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.0.tgz", + "integrity": "sha512-6UQyK8l9YaG5Ao5rBDcCnKHrLsHiQ1E0zeFQuqDJqEtinVzAPb/MwSw3TenZXL1Rnd7th3tb+4CBFHBXdW5tbQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gradients-interpolation-method": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.7.tgz", + "integrity": "sha512-GT1CzE/Tyr/ei4j5BwKESkHAgg+Gzys/0mAY7W+UiR+XrcYk5hDbOrE/YJIx1rflfO/7La1bDoZtA0YnLl4qNA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.6.tgz", + "integrity": "sha512-uQgWt2Ho2yy2S6qthWY7mD5v57NKxi6dD1NB8nAybU5bJSsm+hLXRGm3/zbOH4xNrqO3Cl60DFSNlSrUME3Xjg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.2.tgz", + "integrity": "sha512-n28Er7W9qc48zNjJnvTKuVHY26/+6YlA9WzJRksIHiAWOMxSH5IksXkw7FpkIOd+jLi59BMrX/BWrZMgjkLBHg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^3.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-initial": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-1.0.0.tgz", + "integrity": "sha512-1l7iHHjIl5qmVeGItugr4ZOlCREDP71mNKqoEyxlosIoiu3Os1nPWMHpuCvDLCLiWI/ONTOg3nzJh7gwHOrqUA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-4.0.3.tgz", + "integrity": "sha512-/dt5M9Ty/x3Yiq0Nm/5PJJzwkVFchJgdjKVnryBPtoMCb9ohb/nDIJOwr/Wr3hK3FDs1EA1GE6PyRYsUmQPS8Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^3.0.0", + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-float-and-clear": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-2.0.0.tgz", + "integrity": "sha512-Wki4vxsF6icRvRz8eF9bPpAvwaAt0RHwhVOyzfoFg52XiIMjb6jcbHkGxwpJXP4DVrnFEwpwmrz5aTRqOW82kg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-resize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-2.0.0.tgz", + "integrity": "sha512-lCQ1aX8c5+WI4t5EoYf3alTzJNNocMqTb+u1J9CINdDhFh1fjovqK+0aHalUHsNstZmzFPNzIkU4Mb3eM9U8SA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-viewport-units": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.3.tgz", + "integrity": "sha512-xeVxqND5rlQyqLGdH7rX34sIm/JbbQKxpKQP8oD1YQqUHHCLQR9NUS57WqJKajxKN6AcNAMWJhb5LUH5RfPcyA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-tokenizer": "^2.2.1" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-minmax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.0.tgz", + "integrity": "sha512-t5Li/DPC5QmW/6VFLfUvsw/4dNYYseWR0tOXDeJg/9EKUodBgNawz5tuk5vYKtNvoj+Q08odMuXcpS5YJj0AFA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/media-query-list-parser": "^2.1.5" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.3.tgz", + "integrity": "sha512-IPL8AvnwMYW+cWtp+j8cW3MFN0RyXNT4hLOvs6Rf2N+NcbvXhSyKxZuE3W9Cv4KjaNoNoGx1d0UhT6tktq6tUw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/media-query-list-parser": "^2.1.5" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-3.0.0.tgz", + "integrity": "sha512-HsB66aDWAouOwD/GcfDTS0a7wCuVWaTpXcjl5VKP0XvFxDiU+r0T8FG7xgb6ovZNZ+qzvGIwRM+CLHhDgXrYgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-3.0.1.tgz", + "integrity": "sha512-nUvRxI+ALJwkxZdPU4EDyuM380vP91sAGvI3jAOHs/sr3jfcCOzLkY6xKI1Mr526kZ3RivmMoYM/xq+XFyE/bw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.7.tgz", + "integrity": "sha512-vBFTQD3CARB3u/XIGO44wWbcO7xG/4GsYqJlcPuUGRSK8mtxes6n4vvNFlIByyAZy2k4d4RY63nyvTbMpeNTaQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.0.2.tgz", + "integrity": "sha512-YEvTozk1SxnV/PGL5DllBVDuLQ+jiQhyCSQiZJ6CwBMU5JQ9hFde3i1qqzZHuclZfptjrU0JjlX4ePsOhxNzHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-relative-color-syntax": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.7.tgz", + "integrity": "sha512-2AiFbJSVF4EyymLxme4JzSrbXykHolx8DdZECHjYKMhoulhKLltx5ccYgtrK3BmXGd3v3nJrWFCc8JM8bjuiOg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-3.0.0.tgz", + "integrity": "sha512-GFNVsD97OuEcfHmcT0/DAZWAvTM/FFBDQndIOLawNc1Wq8YqpZwBdHa063Lq+Irk7azygTT+Iinyg3Lt76p7rg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.2.tgz", + "integrity": "sha512-I3wX44MZVv+tDuWfrd3BTvRB/YRIM2F5v1MBtTI89sxpFn47mNpTwpPYUOGPVCgKlRDfZSlxIUYhUQmqRQZZFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.3.tgz", + "integrity": "sha512-d5J9m49HhqXRcw1S6vTZuviHi/iknUKGjBpChiNK1ARg9sSa3b8m5lsWz5Izs8ISORZdv2bZRwbw5Z2R6gQ9kQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/color-helpers": "^3.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.2.tgz", + "integrity": "sha512-AwzNhF4QOKaLOKvMljwwFkeYXwufhRO15G+kKohHkyoNOL75xWkN+W2Y9ik9tSeAyDv+cYNlYaF+o/a79WjVjg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-3.0.0.tgz", + "integrity": "sha512-P0JD1WHh3avVyKKRKjd0dZIjCEeaBer8t1BbwGMUDtSZaLhXlLNBqZ8KkqHzYWXOJgHleXAny2/sx8LYl6qhEA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", + "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.13" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001549", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001549.tgz", + "integrity": "sha512-qRp48dPYSCYaP+KurZLhDYdVE+yEyht/3NlmcJgVQ2VMGt6JL36ndQ/7rgspdZsJuxDPFIo/OzBT2+GmIJ53BA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/css-blank-pseudo": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-6.0.0.tgz", + "integrity": "sha512-VbfLlOWO7sBHBTn6pwDQzc07Z0SDydgDBfNfCE0nvrehdBNv9RKsuupIRa/qal0+fBZhAALyQDPMKz5lnvcchw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-6.0.0.tgz", + "integrity": "sha512-X+r+JBuoO37FBOWVNhVJhxtSBUFHgHbrcc0CjFT28JEdOw1qaDwABv/uunyodUuSy2hMPe9j/HjssxSlvUmKjg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^3.0.0", + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-9.0.0.tgz", + "integrity": "sha512-03QGAk/FXIRseDdLb7XAiu6gidQ0Nd8945xuM7VFVPpc6goJsG9uIO8xQjTxwbPdPIIV4o4AJoOJyt8gwDl67g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.8.0.tgz", + "integrity": "sha512-SkeezZOQr5AHt9MgJgSFNyiuJwg1p8AwoVln6JwaQJsyxduRW9QJ+HP/gAQzbsz8SIqINtYvpJKjxTRI67zxLg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz", + "integrity": "sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^6.0.1", + "lilconfig": "^2.1.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz", + "integrity": "sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^4.0.0", + "postcss-calc": "^9.0.0", + "postcss-colormin": "^6.0.0", + "postcss-convert-values": "^6.0.0", + "postcss-discard-comments": "^6.0.0", + "postcss-discard-duplicates": "^6.0.0", + "postcss-discard-empty": "^6.0.0", + "postcss-discard-overridden": "^6.0.0", + "postcss-merge-longhand": "^6.0.0", + "postcss-merge-rules": "^6.0.1", + "postcss-minify-font-values": "^6.0.0", + "postcss-minify-gradients": "^6.0.0", + "postcss-minify-params": "^6.0.0", + "postcss-minify-selectors": "^6.0.0", + "postcss-normalize-charset": "^6.0.0", + "postcss-normalize-display-values": "^6.0.0", + "postcss-normalize-positions": "^6.0.0", + "postcss-normalize-repeat-style": "^6.0.0", + "postcss-normalize-string": "^6.0.0", + "postcss-normalize-timing-functions": "^6.0.0", + "postcss-normalize-unicode": "^6.0.0", + "postcss-normalize-url": "^6.0.0", + "postcss-normalize-whitespace": "^6.0.0", + "postcss-ordered-values": "^6.0.0", + "postcss-reduce-initial": "^6.0.0", + "postcss-reduce-transforms": "^6.0.0", + "postcss-svgo": "^6.0.0", + "postcss-unique-selectors": "^6.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", + "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.554", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz", + "integrity": "sha512-Q0umzPJjfBrrj8unkONTgbKQXzXRrH7sVV7D9ea2yBV3Oaogz991yhbpfvo2LMNkJItmruXTEzVpP9cp7vaIiQ==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/g": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/g/-/g-2.0.1.tgz", + "integrity": "sha512-Fi6Ng5fZ/ANLQ15H11hCe+09sgUoNvDEBevVgx3KoYOhsH5iLNPn54hx0jPZ+3oSWr+xajnp2Qau9VmPsc7hTA==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-6.0.2.tgz", + "integrity": "sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-cli": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", + "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", + "dev": true, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^11.0.0", + "get-stdin": "^9.0.0", + "globby": "^13.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^4.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.2.tgz", + "integrity": "sha512-FsjSmlSufuiFBsIqQ++VxFmvX7zKndZpBkHmfXr4wqhvzM92FTEkAh703iqWTl1U3faTgqioIqCbfqdWiFVwtw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^3.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-9.0.2.tgz", + "integrity": "sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-9.0.1.tgz", + "integrity": "sha512-ds4cq5BjRieizVb2PnvbJ0omg9VCo2/KzluvoFZbxuGpsGJ5BQSD93CHBooinEtangCM5YqUOerGDl4xGmOb6Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-colormin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", + "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", + "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.2.tgz", + "integrity": "sha512-zcEFNRmDm2fZvTPdI1pIW3W//UruMcLosmMiCdpQnrCsTRzWlKQPYMa1ud9auL0BmrryKK1+JjIGn19K0UjO/w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^1.0.5", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/media-query-list-parser": "^2.1.5" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-properties": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.2.tgz", + "integrity": "sha512-2Coszybpo8lpLY24vy2CYv9AasiZ39/bs8Imv0pWMq55Gl8NWzfc24OAo3zIX7rc6uUJAqESnVOMZ6V6lpMjJA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^1.0.5", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.6.tgz", + "integrity": "sha512-svsjWRaxqL3vAzv71dV0/65P24/FB8TbPX+lWyyf9SZ7aZm4S4NhCn7N3Bg+Z5sZunG3FS8xQ80LrCU9hb37cw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^1.0.5", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-8.0.0.tgz", + "integrity": "sha512-Oy5BBi0dWPwij/IA+yDYj+/OBMQ9EPqAzTHeSNUYrUWdll/PRJmcbiUj0MNcsBi681I1gcSTLvMERPaXzdbvJg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-discard-comments": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", + "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", + "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", + "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", + "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.2.tgz", + "integrity": "sha512-KTbvdOOy8z8zb0BTkEg4/1vqlRlApdvjw8/pFoehgQl0WVO+fezDGlvo0B8xRA+XccA7ohkQCULKNsiNOx70Cw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^3.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-9.0.0.tgz", + "integrity": "sha512-zA4TbVaIaT8npZBEROhZmlc+GBKE8AELPHXE7i4TmIUEQhw/P/mSJfY9t6tBzpQ1rABeGtEOHYrW4SboQeONMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-8.0.0.tgz", + "integrity": "sha512-E7+J9nuQzZaA37D/MUZMX1K817RZGDab8qw6pFwzAkDd/QtlWJ9/WTKmzewNiuxzeq6WWY7ATiRePVoDKp+DnA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-5.0.0.tgz", + "integrity": "sha512-YjsEEL6890P7MCv6fch6Am1yq0EhQCJMXyT4LBohiu87+4/WqR7y5W3RIv53WdA901hhytgRvjlrAhibhW4qsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-6.0.1.tgz", + "integrity": "sha512-VlZncC9hhZ5tg0JllY4g6Z28BeoPO8DIkelioEEkXL0AA0IORlqYpTi2L8TUnl4YQrlwvBgxVy+mdZJw5R/cIQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-lab-function": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.7.tgz", + "integrity": "sha512-4d1lhDVPukHFqkMv4G5vVcK+tgY52vwb5uR1SWKOaO5389r2q8fMxBWuXSW+YtbCOEGP0/X9KERi9E9le2pJuw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-logical": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-7.0.0.tgz", + "integrity": "sha512-zYf3vHkoW82f5UZTEXChTJvH49Yl9X37axTZsJGxrCG2kOUwtaAoz9E7tqYg0lsIoJLybaL8fk/2mOi81zVIUw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", + "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz", + "integrity": "sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", + "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", + "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^4.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", + "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^4.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", + "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-nesting": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.1.tgz", + "integrity": "sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^3.0.0", + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", + "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", + "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", + "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", + "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", + "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", + "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", + "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", + "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", + "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-2.0.0.tgz", + "integrity": "sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==", + "dev": true, + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", + "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", + "dev": true, + "dependencies": { + "cssnano-utils": "^4.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-5.0.0.tgz", + "integrity": "sha512-2rlxDyeSics/hC2FuMdPnWiP9WUPZ5x7FTuArXLFVpaSQ2woPSfZS4RD59HuEokbZhs/wPUQJ1E3MT6zVv94MQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-9.0.0.tgz", + "integrity": "sha512-qLEPD9VPH5opDVemwmRaujODF9nExn24VOC3ghgVLEvfYN7VZLwJHes0q/C9YR5hI2UC3VgBE8Wkdp1TxCXhtg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.2.0.tgz", + "integrity": "sha512-Lnr4C5gb7t5Cc8akQMJzNdJkqw7s7s7BHUaQSgsuf+CTY9Lsz5lqQTft5yNZr59JyCLz0aFNSAqSLm/xRtcTpg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/postcss-cascade-layers": "^4.0.0", + "@csstools/postcss-color-function": "^3.0.7", + "@csstools/postcss-color-mix-function": "^2.0.7", + "@csstools/postcss-exponential-functions": "^1.0.1", + "@csstools/postcss-font-format-keywords": "^3.0.0", + "@csstools/postcss-gamut-mapping": "^1.0.0", + "@csstools/postcss-gradients-interpolation-method": "^4.0.7", + "@csstools/postcss-hwb-function": "^3.0.6", + "@csstools/postcss-ic-unit": "^3.0.2", + "@csstools/postcss-initial": "^1.0.0", + "@csstools/postcss-is-pseudo-class": "^4.0.3", + "@csstools/postcss-logical-float-and-clear": "^2.0.0", + "@csstools/postcss-logical-resize": "^2.0.0", + "@csstools/postcss-logical-viewport-units": "^2.0.3", + "@csstools/postcss-media-minmax": "^1.1.0", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.3", + "@csstools/postcss-nested-calc": "^3.0.0", + "@csstools/postcss-normalize-display-values": "^3.0.1", + "@csstools/postcss-oklab-function": "^3.0.7", + "@csstools/postcss-progressive-custom-properties": "^3.0.2", + "@csstools/postcss-relative-color-syntax": "^2.0.7", + "@csstools/postcss-scope-pseudo-class": "^3.0.0", + "@csstools/postcss-stepped-value-functions": "^3.0.2", + "@csstools/postcss-text-decoration-shorthand": "^3.0.3", + "@csstools/postcss-trigonometric-functions": "^3.0.2", + "@csstools/postcss-unset-value": "^3.0.0", + "autoprefixer": "^10.4.16", + "browserslist": "^4.22.1", + "css-blank-pseudo": "^6.0.0", + "css-has-pseudo": "^6.0.0", + "css-prefers-color-scheme": "^9.0.0", + "cssdb": "^7.8.0", + "postcss-attribute-case-insensitive": "^6.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^6.0.2", + "postcss-color-hex-alpha": "^9.0.2", + "postcss-color-rebeccapurple": "^9.0.1", + "postcss-custom-media": "^10.0.2", + "postcss-custom-properties": "^13.3.2", + "postcss-custom-selectors": "^7.1.6", + "postcss-dir-pseudo-class": "^8.0.0", + "postcss-double-position-gradients": "^5.0.2", + "postcss-focus-visible": "^9.0.0", + "postcss-focus-within": "^8.0.0", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^5.0.0", + "postcss-image-set-function": "^6.0.1", + "postcss-lab-function": "^6.0.7", + "postcss-logical": "^7.0.0", + "postcss-nesting": "^12.0.1", + "postcss-opacity-percentage": "^2.0.0", + "postcss-overflow-shorthand": "^5.0.0", + "postcss-page-break": "^3.0.4", + "postcss-place": "^9.0.0", + "postcss-pseudo-class-any-link": "^9.0.0", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^7.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-9.0.0.tgz", + "integrity": "sha512-QNCYIL98VKFKY6HGDEJpF6+K/sg9bxcUYnOmNHJxZS5wsFDFaVoPeG68WAuhsqwbIBSo/b9fjEnTwY2mTSD+uA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", + "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", + "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-not": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-7.0.1.tgz", + "integrity": "sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", + "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.0.2" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", + "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylehacks": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", + "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/svgo": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", + "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + } + } +} diff --git a/node_modules/@csstools/cascade-layer-name-parser/CHANGELOG.md b/node_modules/@csstools/cascade-layer-name-parser/CHANGELOG.md new file mode 100644 index 00000000..d822b088 --- /dev/null +++ b/node_modules/@csstools/cascade-layer-name-parser/CHANGELOG.md @@ -0,0 +1,42 @@ +# Changes to Cascade Layer Name Parser + +### 1.0.5 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) + +### 1.0.4 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) + +### 1.0.3 + +_July 3, 2023_ + +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) + +### 1.0.2 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) + + + +### 1.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 1.0.0 + +_January 19, 2023_ + +- Initial version diff --git a/node_modules/@csstools/cascade-layer-name-parser/LICENSE.md b/node_modules/@csstools/cascade-layer-name-parser/LICENSE.md new file mode 100644 index 00000000..af5411fa --- /dev/null +++ b/node_modules/@csstools/cascade-layer-name-parser/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2022 Romain Menke, Antonio Laguna + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@csstools/cascade-layer-name-parser/README.md b/node_modules/@csstools/cascade-layer-name-parser/README.md new file mode 100644 index 00000000..44e2111e --- /dev/null +++ b/node_modules/@csstools/cascade-layer-name-parser/README.md @@ -0,0 +1,32 @@ +# Cascade Layer Name Parser + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +## Usage + +Add [Cascade Layer Name Parser] to your project: + +```bash +npm install @csstools/cascade-layer-name-parser @csstools/css-parser-algorithms @csstools/css-tokenizer --save-dev +``` + +[Cascade Layer Name Parser] depends on our CSS tokenizer and parser algorithms. +It must be used together with `@csstools/css-tokenizer` and `@csstools/css-parser-algorithms`. + +```ts +import { parse } from '@csstools/cascade-layer-name-parser'; + +const layerNames = parse('layer-name, foo.bar'); +layerNames.forEach((layerName) => { + console.log(layerName.name()) // "foo.bar" + console.log(layerName.segments()) // ["foo", "bar"] +}); +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/cascade-layer-name-parser + +[Cascade Layer Name Parser]: https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser diff --git a/node_modules/@csstools/cascade-layer-name-parser/dist/index.cjs b/node_modules/@csstools/cascade-layer-name-parser/dist/index.cjs new file mode 100644 index 00000000..08d61378 --- /dev/null +++ b/node_modules/@csstools/cascade-layer-name-parser/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/css-tokenizer"),n=require("@csstools/css-parser-algorithms");class LayerName{parts;constructor(e){this.parts=e}tokens(){return[...this.parts]}slice(n,r){const t=[];for(let n=0;nn[0]===e.TokenType.Ident||n[0]===e.TokenType.Delim)),r,...n.parts.filter((n=>n[0]===e.TokenType.Ident||n[0]===e.TokenType.Delim))])}segments(){return this.parts.filter((n=>n[0]===e.TokenType.Ident)).map((e=>e[4].value))}name(){return this.parts.filter((n=>n[0]===e.TokenType.Ident||n[0]===e.TokenType.Delim)).map((e=>e[1])).join("")}equal(e){const n=this.segments(),r=e.segments();if(n.length!==r.length)return!1;for(let e=0;e{}),o=["6.4.2. Layer Naming and Nesting","Layer name syntax"," = [ '.' ]*"],i=r[0][2],l=r[r.length-1][3],p=[];for(let r=0;re.tokens()));let c=!1,T=!1,y=null;for(let n=0;n{const r=n.segments();e:for(let t=0;t=o&&(s=n,o=t)}-1===s?e.push(r):e.splice(s+1,0,r)}})),e},exports.parse=function parse(n,r){const t=e.tokenizer({css:n},{onParseError:null==r?void 0:r.onParseError}),a=[];for(;!t.endOfFile();)a.push(t.nextToken());return a.push(t.nextToken()),parseFromTokens(a,r)},exports.parseFromTokens=parseFromTokens; diff --git a/node_modules/@csstools/cascade-layer-name-parser/dist/index.d.ts b/node_modules/@csstools/cascade-layer-name-parser/dist/index.d.ts new file mode 100644 index 00000000..2592bc2e --- /dev/null +++ b/node_modules/@csstools/cascade-layer-name-parser/dist/index.d.ts @@ -0,0 +1,3 @@ +export { LayerName } from './nodes/layer-name'; +export { addLayerToModel } from './util/model'; +export { parse, parseFromTokens } from './parser/parse'; diff --git a/node_modules/@csstools/cascade-layer-name-parser/dist/index.mjs b/node_modules/@csstools/cascade-layer-name-parser/dist/index.mjs new file mode 100644 index 00000000..e9cc05e9 --- /dev/null +++ b/node_modules/@csstools/cascade-layer-name-parser/dist/index.mjs @@ -0,0 +1 @@ +import{TokenType as e,stringify as t,ParseError as n,tokenizer as r}from"@csstools/css-tokenizer";import{parseCommaSeparatedListOfComponentValues as a,isTokenNode as s,isCommentNode as l,isWhitespaceNode as i}from"@csstools/css-parser-algorithms";class LayerName{parts;constructor(e){this.parts=e}tokens(){return[...this.parts]}slice(t,n){const r=[];for(let t=0;tt[0]===e.Ident||t[0]===e.Delim)),n,...t.parts.filter((t=>t[0]===e.Ident||t[0]===e.Delim))])}segments(){return this.parts.filter((t=>t[0]===e.Ident)).map((e=>e[4].value))}name(){return this.parts.filter((t=>t[0]===e.Ident||t[0]===e.Delim)).map((e=>e[1])).join("")}equal(e){const t=this.segments(),n=e.segments();if(t.length!==n.length)return!1;for(let e=0;e{const n=t.segments();e:for(let r=0;r=l&&(s=t,l=r)}-1===s?e.push(n):e.splice(s+1,0,n)}})),e}function parseFromTokens(t,r){const o=a(t,{onParseError:null==r?void 0:r.onParseError}),m=(null==r?void 0:r.onParseError)??(()=>{}),c=["6.4.2. Layer Naming and Nesting","Layer name syntax"," = [ '.' ]*"],d=t[0][2],u=t[t.length-1][3],p=[];for(let t=0;te.tokens()));let h=!1,f=!1,y=null;for(let t=0;t; + constructor(parts: Array); + tokens(): Array; + slice(start: number, end: number): LayerName; + concat(other: LayerName): LayerName; + segments(): Array; + name(): string; + equal(other: LayerName): boolean; + toString(): string; + toJSON(): { + parts: CSSToken[]; + segments: string[]; + name: string; + }; +} diff --git a/node_modules/@csstools/cascade-layer-name-parser/dist/parser/parse.d.ts b/node_modules/@csstools/cascade-layer-name-parser/dist/parser/parse.d.ts new file mode 100644 index 00000000..2f068c4c --- /dev/null +++ b/node_modules/@csstools/cascade-layer-name-parser/dist/parser/parse.d.ts @@ -0,0 +1,7 @@ +import { CSSToken, ParseError } from '@csstools/css-tokenizer'; +import { LayerName } from '../nodes/layer-name'; +export type Options = { + onParseError?: (error: ParseError) => void; +}; +export declare function parseFromTokens(tokens: Array, options?: Options): LayerName[]; +export declare function parse(source: string, options?: Options): LayerName[]; diff --git a/node_modules/@csstools/cascade-layer-name-parser/dist/util/model.d.ts b/node_modules/@csstools/cascade-layer-name-parser/dist/util/model.d.ts new file mode 100644 index 00000000..7347ce26 --- /dev/null +++ b/node_modules/@csstools/cascade-layer-name-parser/dist/util/model.d.ts @@ -0,0 +1,2 @@ +import { LayerName } from '../nodes/layer-name'; +export declare function addLayerToModel(layers: Array, currentLayerNames: Array): LayerName[]; diff --git a/node_modules/@csstools/cascade-layer-name-parser/package.json b/node_modules/@csstools/cascade-layer-name-parser/package.json new file mode 100644 index 00000000..e244cb90 --- /dev/null +++ b/node_modules/@csstools/cascade-layer-name-parser/package.json @@ -0,0 +1,74 @@ +{ + "name": "@csstools/cascade-layer-name-parser", + "description": "Parse CSS Cascade Layer names.", + "version": "1.0.5", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "stryker": "stryker run --logLevel error", + "test": "node ./test/test.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node ./test/test.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/cascade-layer-name-parser#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "packages/cascade-layer-name-parser" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "cascade-layer", + "css", + "parser" + ], + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/color-helpers/CHANGELOG.md b/node_modules/@csstools/color-helpers/CHANGELOG.md new file mode 100644 index 00000000..032f0578 --- /dev/null +++ b/node_modules/@csstools/color-helpers/CHANGELOG.md @@ -0,0 +1,40 @@ +# Changes to Color Helpers + +### 3.0.2 + +_September 2, 2023_ + +- Undo the changes from `3.0.1`. + +### 3.0.1 + +_August 28, 2023_ + +- Clamp negative saturation in `hsl` to `0`. + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 2.1.0 + +_May 19, 2023_ + +- Fix gamut mapping +- Fix `XYZ_D50_to_ProPhoto` +- Export `sRGB_to_HWB` + +### 2.0.0 + +_March 25, 2023_ + +- Removed certain implementation specific helpers. Keeping this package more focussed on general purpose color transformations. +- Added `xyz` specific helpers. These make it easy to transform to and from `xyz-d50` and any other color space. + +### 1.0.0 + +_February 2, 2023_ + +- Initial version diff --git a/node_modules/@csstools/color-helpers/LICENSE.md b/node_modules/@csstools/color-helpers/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/color-helpers/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/color-helpers/README.md b/node_modules/@csstools/color-helpers/README.md new file mode 100644 index 00000000..18358022 --- /dev/null +++ b/node_modules/@csstools/color-helpers/README.md @@ -0,0 +1,32 @@ +# Color Helpers + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +## Usage + +Add [Color Helpers] to your project: + +```bash +npm install @csstools/color-helpers --save-dev +``` + +This package exists to join all the different color functions scattered among the Colors 4 and Colors 5 plugins we maintain such as: + +* [PostCSS Color Function] +* [PostCSS Lab Function] +* [PostCSS OKLab Function] + +## Copyright + +This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/tree/main/css-color-4. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/color-helpers + +[Color Helpers]: https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers +[PostCSS Color Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-function +[PostCSS Lab Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-lab-functionw +[PostCSS OKLab Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-oklab-function diff --git a/node_modules/@csstools/color-helpers/dist/calculations/binary-search-gamut.d.ts b/node_modules/@csstools/color-helpers/dist/calculations/binary-search-gamut.d.ts new file mode 100644 index 00000000..a6569f95 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/calculations/binary-search-gamut.d.ts @@ -0,0 +1,2 @@ +import type { Color } from 'types/color'; +export declare function binarySearchGamut(startOKLCH: Color, toDestination: (x: Color) => Color, fromDestination: (x: Color) => Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/calculations/contrast.d.ts b/node_modules/@csstools/color-helpers/dist/calculations/contrast.d.ts new file mode 100644 index 00000000..fee9456e --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/calculations/contrast.d.ts @@ -0,0 +1,2 @@ +import type { Color } from 'types/color'; +export declare function contrast(RGB1: Color, RGB2: Color): number; diff --git a/node_modules/@csstools/color-helpers/dist/calculations/delta-EOK.d.ts b/node_modules/@csstools/color-helpers/dist/calculations/delta-EOK.d.ts new file mode 100644 index 00000000..ad7878ba --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/calculations/delta-EOK.d.ts @@ -0,0 +1,14 @@ +import type { Color } from 'types/color'; +/** + * @description Calculate deltaE OK which is the simple root sum of squares + * @param {number[]} reference - Array of OKLab values: L as 0..1, a and b as -1..1 + * @param {number[]} sample - Array of OKLab values: L as 0..1, a and b as -1..1 + * @return {number} How different a color sample is from reference + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js + */ +export declare function deltaEOK(reference: Color, sample: Color): number; diff --git a/node_modules/@csstools/color-helpers/dist/calculations/index.d.ts b/node_modules/@csstools/color-helpers/dist/calculations/index.d.ts new file mode 100644 index 00000000..86e5f357 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/calculations/index.d.ts @@ -0,0 +1,5 @@ +export * from './binary-search-gamut'; +export * from './map-gamut'; +export * from './delta-EOK'; +export * from './contrast'; +export * from './multiply-matrices'; diff --git a/node_modules/@csstools/color-helpers/dist/calculations/map-gamut.d.ts b/node_modules/@csstools/color-helpers/dist/calculations/map-gamut.d.ts new file mode 100644 index 00000000..7bf8f709 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/calculations/map-gamut.d.ts @@ -0,0 +1,2 @@ +import type { Color } from 'types/color'; +export declare function mapGamut(startOKLCH: Color, toDestination: (x: Color) => Color, fromDestination: (x: Color) => Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/calculations/multiply-matrices.d.ts b/node_modules/@csstools/color-helpers/dist/calculations/multiply-matrices.d.ts new file mode 100644 index 00000000..b78e13fd --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/calculations/multiply-matrices.d.ts @@ -0,0 +1,12 @@ +/** + * Simple matrix (and vector) multiplication + * Warning: No error handling for incompatible dimensions! + * @author Lea Verou 2020 MIT License + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js + */ +export declare function multiplyMatrices(a: Array> | Array, b: Array> | Array): Array> | Array; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/constants.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/constants.d.ts new file mode 100644 index 00000000..4d2e7a1e --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/constants.d.ts @@ -0,0 +1,2 @@ +export declare const D50: number[]; +export declare const D65: number[]; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/d50-to-d65.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/d50-to-d65.d.ts new file mode 100644 index 00000000..7afb26ae --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/d50-to-d65.d.ts @@ -0,0 +1,9 @@ +import type { Color } from 'types/color'; +/** + * Bradford chromatic adaptation from D50 to D65 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function D50_to_D65(XYZ: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/d65-to-d50.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/d65-to-d50.d.ts new file mode 100644 index 00000000..5409797a --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/d65-to-d50.d.ts @@ -0,0 +1,10 @@ +import type { Color } from 'types/color'; +/** + * Bradford chromatic adaptation from D65 to D50 + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html + */ +export declare function D65_to_D50(XYZ: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/gam-2020.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/gam-2020.d.ts new file mode 100644 index 00000000..a4327761 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/gam-2020.d.ts @@ -0,0 +1,10 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light rec2020 RGB in the range 0.0-1.0 + * to gamma corrected form ITU-R BT.2020-2 p.4 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function gam_2020(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/gam-a98rgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/gam-a98rgb.d.ts new file mode 100644 index 00000000..87727af7 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/gam-a98rgb.d.ts @@ -0,0 +1,10 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light a98-rgb in the range 0.0-1.0 + * to gamma corrected form. Negative values are also now accepted + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function gam_a98rgb(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/gam-p3.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/gam-p3.d.ts new file mode 100644 index 00000000..60d31f14 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/gam-p3.d.ts @@ -0,0 +1,10 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light display-p3 RGB in the range 0.0-1.0 + * to gamma corrected form + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function gam_P3(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/gam-pro-photo.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/gam-pro-photo.d.ts new file mode 100644 index 00000000..fe2aba29 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/gam-pro-photo.d.ts @@ -0,0 +1,11 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light prophoto-rgb in the range 0.0-1.0 + * to gamma corrected form. + * Transfer curve is gamma 1.8 with a small linear portion. + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function gam_ProPhoto(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/gam-srgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/gam-srgb.d.ts new file mode 100644 index 00000000..c7cfba5f --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/gam-srgb.d.ts @@ -0,0 +1,14 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light sRGB values in the range 0.0-1.0 to gamma corrected form + * Extended transfer function: + * For negative values, linear portion extends on reflection + * of axis, then uses reflected pow below that + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://en.wikipedia.org/wiki/SRGB + */ +export declare function gam_sRGB(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/hsl-to-srgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/hsl-to-srgb.d.ts new file mode 100644 index 00000000..1366bc00 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/hsl-to-srgb.d.ts @@ -0,0 +1,14 @@ +import type { Color } from 'types/color'; +/** + * @param {number} hue - Hue as degrees 0..360 + * @param {number} sat - Saturation as percentage 0..100 + * @param {number} light - Lightness as percentage 0..100 + * @return {number[]} Array of RGB components 0..1 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hslToRgb.js + */ +export declare function HSL_to_sRGB(HSL: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/hue-to-rgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/hue-to-rgb.d.ts new file mode 100644 index 00000000..8cb5ff7c --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/hue-to-rgb.d.ts @@ -0,0 +1,8 @@ +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */ +export declare function hueToRGB(t1: number, t2: number, hue: number): number; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/hwb-to-srgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/hwb-to-srgb.d.ts new file mode 100644 index 00000000..e359a498 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/hwb-to-srgb.d.ts @@ -0,0 +1,14 @@ +import type { Color } from 'types/color'; +/** + * @param {number} hue - Hue as degrees 0..360 + * @param {number} white - Whiteness as percentage 0..100 + * @param {number} black - Blackness as percentage 0..100 + * @return {number[]} Array of RGB components 0..1 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hwbToRgb.js + */ +export declare function HWB_to_sRGB(HWB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/index.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/index.d.ts new file mode 100644 index 00000000..9a2ed427 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/index.d.ts @@ -0,0 +1,40 @@ +export * from './constants'; +export * from './d50-to-d65'; +export * from './d65-to-d50'; +export * from './gam-2020'; +export * from './gam-a98rgb'; +export * from './gam-p3'; +export * from './gam-pro-photo'; +export * from './gam-srgb'; +export * from './hsl-to-srgb'; +export * from './hue-to-rgb'; +export * from './hwb-to-srgb'; +export * from './lab-to-lch'; +export * from './lab-to-xyz'; +export * from './lch-to-lab'; +export * from './lin-2020'; +export * from './lin-2020-to-xyz'; +export * from './lin-a98rgb'; +export * from './lin-a98rgb-to-xyz'; +export * from './lin-p3'; +export * from './lin-p3-to-xyz'; +export * from './lin-pro-photo'; +export * from './lin-pro-photo-to-xyz'; +export * from './lin-srgb'; +export * from './lin-srgb-to-xyz'; +export * from './naive-cmyk-to-srgb'; +export * from './oklab-to-oklch'; +export * from './oklab-to-xyz'; +export * from './oklch-to-oklab'; +export * from './srgb-to-hsl'; +export * from './srgb-to-hwb'; +export * from './srgb-to-luminance'; +export * from './xyz-to-lab'; +export * from './xyz-to-lin-2020'; +export * from './xyz-to-lin-a98rgb'; +export * from './xyz-to-lin-p3'; +export * from './xyz-to-lin-pro-photo'; +export * from './xyz-to-lin-srgb'; +export * from './xyz-to-oklab'; +export * from './xyz-to-uv'; +export * from './xyz-to-xy'; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lab-to-lch.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lab-to-lch.d.ts new file mode 100644 index 00000000..8ecc0b61 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lab-to-lch.d.ts @@ -0,0 +1,7 @@ +import type { Color } from 'types/color'; +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function Lab_to_LCH(Lab: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lab-to-xyz.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lab-to-xyz.d.ts new file mode 100644 index 00000000..dea458fe --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lab-to-xyz.d.ts @@ -0,0 +1,2 @@ +import type { Color } from 'types/color'; +export declare function Lab_to_XYZ(Lab: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lch-to-lab.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lch-to-lab.d.ts new file mode 100644 index 00000000..107b5148 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lch-to-lab.d.ts @@ -0,0 +1,7 @@ +import type { Color } from 'types/color'; +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function LCH_to_Lab(LCH: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-2020-to-xyz.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-2020-to-xyz.d.ts new file mode 100644 index 00000000..f9116c4a --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-2020-to-xyz.d.ts @@ -0,0 +1,12 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light rec2020 values to CIE XYZ + * using D65 (no chromatic adaptation) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */ +export declare function lin_2020_to_XYZ(rgb: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-2020.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-2020.d.ts new file mode 100644 index 00000000..03a5a29d --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-2020.d.ts @@ -0,0 +1,11 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of rec2020 RGB values in the range 0.0 - 1.0 + * to linear light (un-companded) form. + * ITU-R BT.2020-2 p.4 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function lin_2020(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-a98rgb-to-xyz.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-a98rgb-to-xyz.d.ts new file mode 100644 index 00000000..e73f04f2 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-a98rgb-to-xyz.d.ts @@ -0,0 +1,18 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light a98-rgb values to CIE XYZ + * http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + * has greater numerical precision than section 4.3.5.3 of + * https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf + * but the values below were calculated from first principles + * from the chromaticity coordinates of R G B W + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + * @see https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/matrixmaker.html + */ +export declare function lin_a98rgb_to_XYZ(rgb: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-a98rgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-a98rgb.d.ts new file mode 100644 index 00000000..ae9c470e --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-a98rgb.d.ts @@ -0,0 +1,10 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of a98-rgb values in the range 0.0 - 1.0 + * to linear light (un-companded) form. Negative values are also now accepted + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function lin_a98rgb(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-p3-to-xyz.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-p3-to-xyz.d.ts new file mode 100644 index 00000000..ed542c25 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-p3-to-xyz.d.ts @@ -0,0 +1,12 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light display-p3 values to CIE XYZ + * using D65 (no chromatic adaptation) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */ +export declare function lin_P3_to_XYZ(rgb: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-p3.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-p3.d.ts new file mode 100644 index 00000000..2475231c --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-p3.d.ts @@ -0,0 +1,10 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of display-p3 RGB values in the range 0.0 - 1.0 + * to linear light (un-companded) form. + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function lin_P3(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-pro-photo-to-xyz.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-pro-photo-to-xyz.d.ts new file mode 100644 index 00000000..a857852d --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-pro-photo-to-xyz.d.ts @@ -0,0 +1,12 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light prophoto-rgb values to CIE XYZ + * using D50 (so no chromatic adaptation needed afterwards) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */ +export declare function lin_ProPhoto_to_XYZ(rgb: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-pro-photo.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-pro-photo.d.ts new file mode 100644 index 00000000..3ecf2893 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-pro-photo.d.ts @@ -0,0 +1,11 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of prophoto-rgb values where in-gamut Colors are in the + * range [0.0 - 1.0] to linear light (un-companded) form. Transfer curve is + * gamma 1.8 with a small linear portion. Extended transfer function + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function lin_ProPhoto(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-srgb-to-xyz.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-srgb-to-xyz.d.ts new file mode 100644 index 00000000..81384165 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-srgb-to-xyz.d.ts @@ -0,0 +1,10 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of linear-light sRGB values to CIE XYZ + * using sRGB's own white, D65 (no chromatic adaptation) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function lin_sRGB_to_XYZ(rgb: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/lin-srgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/lin-srgb.d.ts new file mode 100644 index 00000000..4365c9b0 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/lin-srgb.d.ts @@ -0,0 +1,15 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of of sRGB values where in-gamut values are in the range + * [0 - 1] to linear light (un-companded) form. + * Extended transfer function: + * For negative values, linear portion is extended on reflection of axis, + * then reflected power function is used. + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://en.wikipedia.org/wiki/SRGB + */ +export declare function lin_sRGB(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/naive-cmyk-to-srgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/naive-cmyk-to-srgb.d.ts new file mode 100644 index 00000000..9584f125 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/naive-cmyk-to-srgb.d.ts @@ -0,0 +1,14 @@ +import type { Color } from 'types/color'; +/** + * CMYK is an array of four values in the range [0.0, 1.0] the output is an + * array of [RGB] also in the [0.0, 1.0] range because the naive algorithm + * does not generate out of gamut colors neither does it generate accurate + * simulations of practical CMYK colors + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */ +export declare function naive_CMYK_to_sRGB(CMYK: [number, number, number, number]): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/oklab-to-oklch.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/oklab-to-oklch.d.ts new file mode 100644 index 00000000..0c75e2e5 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/oklab-to-oklch.d.ts @@ -0,0 +1,9 @@ +import type { Color } from 'types/color'; +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */ +export declare function OKLab_to_OKLCH(OKLab: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/oklab-to-xyz.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/oklab-to-xyz.d.ts new file mode 100644 index 00000000..c42206d0 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/oklab-to-xyz.d.ts @@ -0,0 +1,2 @@ +import type { Color } from 'types/color'; +export declare function OKLab_to_XYZ(OKLab: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/oklch-to-oklab.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/oklch-to-oklab.d.ts new file mode 100644 index 00000000..9ba9533d --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/oklch-to-oklab.d.ts @@ -0,0 +1,9 @@ +import type { Color } from 'types/color'; +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */ +export declare function OKLCH_to_OKLab(OKLCH: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/srgb-to-hsl.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/srgb-to-hsl.d.ts new file mode 100644 index 00000000..0159a182 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/srgb-to-hsl.d.ts @@ -0,0 +1,16 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of gamma-corrected sRGB values in the 0.0 to 1.0 range to HSL. + * + * @param {Color} RGB [r, g, b] + * - Red component 0..1 + * - Green component 0..1 + * - Blue component 0..1 + * @return {number[]} Array of HSL values: Hue as degrees 0..360, Saturation and Lightness as percentages 0..100 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/rgbToHsl.js + */ +export declare function sRGB_to_HSL(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/srgb-to-hwb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/srgb-to-hwb.d.ts new file mode 100644 index 00000000..9a79caf7 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/srgb-to-hwb.d.ts @@ -0,0 +1,11 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of gamma-corrected sRGB values in the 0.0 to 1.0 range to HWB. + * + * @param {Color} RGB [r, g, b] + * - Red component 0..1 + * - Green component 0..1 + * - Blue component 0..1 + * @return {number[]} Array of HWB values + */ +export declare function sRGB_to_HWB(RGB: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/srgb-to-luminance.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/srgb-to-luminance.d.ts new file mode 100644 index 00000000..681feb09 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/srgb-to-luminance.d.ts @@ -0,0 +1,12 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of gamma-corrected sRGB values in the 0.0 to 1.0 range + * to linear-light sRGB, then to CIE XYZ and return luminance (the Y value) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */ +export declare function sRGB_to_luminance(RGB: Color): number; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lab.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lab.d.ts new file mode 100644 index 00000000..65a3ecfe --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lab.d.ts @@ -0,0 +1,2 @@ +import type { Color } from 'types/color'; +export declare function XYZ_to_Lab(XYZ: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-2020.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-2020.d.ts new file mode 100644 index 00000000..cae6c260 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-2020.d.ts @@ -0,0 +1,9 @@ +import type { Color } from 'types/color'; +/** + * Convert XYZ to linear-light rec2020 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function XYZ_to_lin_2020(XYZ: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-a98rgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-a98rgb.d.ts new file mode 100644 index 00000000..26353878 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-a98rgb.d.ts @@ -0,0 +1,9 @@ +import type { Color } from 'types/color'; +/** + * Convert XYZ to linear-light a98-rgb + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function XYZ_to_lin_a98rgb(XYZ: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-p3.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-p3.d.ts new file mode 100644 index 00000000..e52917c7 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-p3.d.ts @@ -0,0 +1,9 @@ +import type { Color } from 'types/color'; +/** + * Convert XYZ to linear-light P3 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function XYZ_to_lin_P3(XYZ: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-pro-photo.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-pro-photo.d.ts new file mode 100644 index 00000000..bf163166 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-pro-photo.d.ts @@ -0,0 +1,11 @@ +import type { Color } from 'types/color'; +/** + * Convert XYZ to linear-light prophoto-rgb + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */ +export declare function XYZ_to_lin_ProPhoto(XYZ: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-srgb.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-srgb.d.ts new file mode 100644 index 00000000..104891ff --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-lin-srgb.d.ts @@ -0,0 +1,7 @@ +import type { Color } from 'types/color'; +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +export declare function XYZ_to_lin_sRGB(XYZ: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-oklab.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-oklab.d.ts new file mode 100644 index 00000000..5d190539 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-oklab.d.ts @@ -0,0 +1,10 @@ +import type { Color } from 'types/color'; +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * XYZ <-> LMS matrices recalculated for consistent reference white + * @see https://github.com/w3c/csswg-drafts/issues/6642#issuecomment-943521484 + */ +export declare function XYZ_to_OKLab(XYZ: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-uv.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-uv.d.ts new file mode 100644 index 00000000..ab9a978e --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-uv.d.ts @@ -0,0 +1,11 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of three XYZ values to u*,v* chromaticity coordinates + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */ +export declare function XYZ_to_uv(XYZ: Color): [number, number]; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-xy.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-xy.d.ts new file mode 100644 index 00000000..ab662176 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz-to-xy.d.ts @@ -0,0 +1,11 @@ +import type { Color } from 'types/color'; +/** + * Convert an array of three XYZ values to x,y chromaticity coordinates + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */ +export declare function XYZ_to_xy(XYZ: Color): [number, number]; diff --git a/node_modules/@csstools/color-helpers/dist/conversions/xyz/index.d.ts b/node_modules/@csstools/color-helpers/dist/conversions/xyz/index.d.ts new file mode 100644 index 00000000..f9e446f5 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/conversions/xyz/index.d.ts @@ -0,0 +1,253 @@ +import type { Color } from 'types/color'; +/** + * @param {Color} color [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function sRGB_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} sRGB [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + */ +export declare function XYZ_D50_to_sRGB(x: Color): Color; +/** + * @param {Color} color [h, s, l] + * - Hue as degrees 0..360; + * - Saturation as number 0..100; + * - Lightness as number 0..100; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function HSL_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} HSL [r, g, b] + * - Hue as degrees 0..360; + * - Saturation as number 0..100; + * - Lightness as number 0..100; + */ +export declare function XYZ_D50_to_HSL(x: Color): Color; +/** + * @param {Color} color [h, w, b] + * - Hue as degrees 0..360; + * - Whiteness as number 0..100; + * - Blackness as number 0..100; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function HWB_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} HWB [r, g, b] + * - Hue as degrees 0..360; + * - Whiteness as number 0..100; + * - Blackness as number 0..100; + */ +export declare function XYZ_D50_to_HWB(x: Color): Color; +/** + * @param {Color} color [l, a, b] + * - Lightness as number 0..100; + * - a as number -160..160; + * - b as number -160..160; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function Lab_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} Lab [r, g, b] + * - Lightness as number 0..100; + * - a as number -160..160; + * - b as number -160..160; + */ +export declare function XYZ_D50_to_Lab(x: Color): Color; +/** + * @param {Color} color [l, c, h] + * - Lightness as number 0..100; + * - Chroma as number 0..230; + * - Hue as degrees 0..360; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function LCH_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} LCH [r, g, b] + * - Lightness as number 0..100; + * - Chroma as number 0..230; + * - Hue as degrees 0..360; + */ +export declare function XYZ_D50_to_LCH(x: Color): Color; +/** + * @param {Color} color [l, a, b] + * - Lightness as number 0..1; + * - a as number 0..0.5; + * - b as number 0..0.5; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function OKLab_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} OKLab [r, g, b] + * - Lightness as number 0..1; + * - a as number 0..0.5; + * - b as number 0..0.5; + */ +export declare function XYZ_D50_to_OKLab(x: Color): Color; +/** + * @param {Color} color [l, c, h] + * - Lightness as number 0..1; + * - Chroma as number 0..0.5; + * - Hue as degrees 0..360; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function OKLCH_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} OKLCH [r, g, b] + * - Lightness as number 0..1; + * - Chroma as number 0..0.5; + * - Hue as degrees 0..360; + */ +export declare function XYZ_D50_to_OKLCH(x: Color): Color; +/** + * @param {Color} color [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function lin_sRGB_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} linear sRGB [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + */ +export declare function XYZ_D50_to_lin_sRGB(x: Color): Color; +/** + * @param {Color} color [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function a98_RGB_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} a98 sRGB [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + */ +export declare function XYZ_D50_to_a98_RGB(x: Color): Color; +/** + * @param {Color} color [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function P3_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} P3 [r, g, b] + * - R as number 0..1; + * - G as number 0..1; + * - B as number 0..1; + */ +export declare function XYZ_D50_to_P3(x: Color): Color; +/** + * @param {Color} color [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function rec_2020_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} rec 2020 [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + */ +export declare function XYZ_D50_to_rec_2020(x: Color): Color; +/** + * @param {Color} color [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function ProPhoto_RGB_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} ProPhoto [r, g, b] + * - Red as number 0..1; + * - Green as number 0..1; + * - Blue as number 0..1; + */ +export declare function XYZ_D50_to_ProPhoto(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function XYZ_D65_to_XYZ_D50(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} D65 XYZ [x, y, z] + */ +export declare function XYZ_D50_to_XYZ_D65(x: Color): Color; +/** + * @param {Color} color [x, y, z] + * - X as number 0..1; + * - Y as number 0..1; + * - Z as number 0..1; + * @return {Color} D50 XYZ [x, y, z] + */ +export declare function XYZ_D50_to_XYZ_D50(x: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/index.cjs b/node_modules/@csstools/color-helpers/dist/index.cjs new file mode 100644 index 00000000..cf3e4310 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/index.cjs @@ -0,0 +1,388 @@ +"use strict"; +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/map-gamut.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + */function clip(t){return t.map((t=>t<0?0:t>1?1:t))} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */function OKLCH_to_OKLab(t){return[t[0],t[1]*Math.cos(t[2]*Math.PI/180),t[1]*Math.sin(t[2]*Math.PI/180)]} +/** + * @description Calculate deltaE OK which is the simple root sum of squares + * @param {number[]} reference - Array of OKLab values: L as 0..1, a and b as -1..1 + * @param {number[]} sample - Array of OKLab values: L as 0..1, a and b as -1..1 + * @return {number} How different a color sample is from reference + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js + */function deltaEOK(t,_){const[o,n,r]=t,[e,a,i]=_,l=o-e,u=n-a,c=r-i;return Math.sqrt(l**2+u**2+c**2)} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/map-gamut.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + */function inGamut(t){const[_,o,n]=t;return _>=-1e-4&&_<=1.0001&&o>=-1e-4&&o<=1.0001&&n>=-1e-4&&n<=1.0001}var t=Object.freeze({__proto__:null,clip:clip,inGamut:inGamut});const _=.02,o=1e-5;function binarySearchGamut(t,n,r){const e=t;let a=0,i=e[1];for(;i-a>o;){const t=(a+i)/2;e[1]=t;const o=n(e);if(inGamut(o)){a=t;continue}const l=clip(o);if(deltaEOK(OKLCH_to_OKLab(r(l)),OKLCH_to_OKLab(e))<_)return l;i=t}return clip(n([...e]))} +/** + * Convert an array of of sRGB values where in-gamut values are in the range + * [0 - 1] to linear light (un-companded) form. + * Extended transfer function: + * For negative values, linear portion is extended on reflection of axis, + * then reflected power function is used. + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://en.wikipedia.org/wiki/SRGB + */ +function lin_sRGB(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return o<.04045?t/12.92:_*Math.pow((o+.055)/1.055,2.4)}))} +/** + * Simple matrix (and vector) multiplication + * Warning: No error handling for incompatible dimensions! + * @author Lea Verou 2020 MIT License + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js + */function multiplyMatrices(t,_){const o=t.length;let n,r;n=Array.isArray(t[0])?t:[t],r=Array.isArray(_[0])?_:_.map((t=>[t]));const e=r[0].length,a=r[0].map(((t,_)=>r.map((t=>t[_]))));let i=n.map((t=>a.map((_=>Array.isArray(t)?t.reduce(((t,o,n)=>t+o*(_[n]||0)),0):_.reduce(((_,o)=>_+o*t),0)))));return 1===o&&(i=i[0]),1===e?i.map((t=>t[0])):i} +/** + * Convert an array of linear-light sRGB values to CIE XYZ + * using sRGB's own white, D65 (no chromatic adaptation) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_sRGB_to_XYZ(t){return multiplyMatrices([[506752/1228815,87881/245763,12673/70218],[87098/409605,175762/245763,12673/175545],[7918/409605,87881/737289,1001167/1053270]],t)} +/** + * Convert an array of gamma-corrected sRGB values in the 0.0 to 1.0 range + * to linear-light sRGB, then to CIE XYZ and return luminance (the Y value) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */function sRGB_to_luminance(t){return lin_sRGB_to_XYZ(lin_sRGB(t))[1]} +/** + * Return WCAG 2.1 contrast ratio for two sRGB values given as arrays + * + * of 0.0 to 1.0 + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + * @see https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio + */var n=Object.freeze({__proto__:null,binarySearchGamut:binarySearchGamut,contrast:function contrast(t,_){const o=sRGB_to_luminance(t),n=sRGB_to_luminance(_);return o>n?(o+.05)/(n+.05):(n+.05)/(o+.05)},deltaEOK:deltaEOK,mapGamut:function mapGamut(t,_,o){return binarySearchGamut(t,_,o)},multiplyMatrices:multiplyMatrices});const r=[.3457/.3585,1,.2958/.3585]; +/** + * Bradford chromatic adaptation from D50 to D65 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +function D50_to_D65(t){return multiplyMatrices([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],t)} +/** + * Bradford chromatic adaptation from D65 to D50 + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html + */function D65_to_D50(t){return multiplyMatrices([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],t)} +/** + * Convert an array of linear-light rec2020 RGB in the range 0.0-1.0 + * to gamma corrected form ITU-R BT.2020-2 p.4 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function gam_2020(t){const _=1.09929682680944;return t.map((function(t){const o=t<0?-1:1,n=Math.abs(t);return n>.018053968510807?o*(_*Math.pow(n,.45)-(_-1)):4.5*t}))} +/** + * Convert an array of linear-light a98-rgb in the range 0.0-1.0 + * to gamma corrected form. Negative values are also now accepted + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function gam_a98rgb(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return _*Math.pow(o,256/563)}))} +/** + * Convert an array of linear-light sRGB values in the range 0.0-1.0 to gamma corrected form + * Extended transfer function: + * For negative values, linear portion extends on reflection + * of axis, then uses reflected pow below that + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://en.wikipedia.org/wiki/SRGB + */function gam_sRGB(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return o>.0031308?_*(1.055*Math.pow(o,1/2.4)-.055):12.92*t}))} +/** + * Convert an array of linear-light display-p3 RGB in the range 0.0-1.0 + * to gamma corrected form + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function gam_P3(t){return gam_sRGB(t)} +/** + * Convert an array of linear-light prophoto-rgb in the range 0.0-1.0 + * to gamma corrected form. + * Transfer curve is gamma 1.8 with a small linear portion. + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function gam_ProPhoto(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return o>=.001953125?_*Math.pow(o,1/1.8):16*t}))} +/** + * @param {number} hue - Hue as degrees 0..360 + * @param {number} sat - Saturation as percentage 0..100 + * @param {number} light - Lightness as percentage 0..100 + * @return {number[]} Array of RGB components 0..1 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hslToRgb.js + */function HSL_to_sRGB(t){let _=t[0],o=t[1],n=t[2];function f(t){const r=(t+_/30)%12,e=o*Math.min(n,1-n);return n-e*Math.max(-1,Math.min(r-3,9-r,1))}return _%=360,_<0&&(_+=360),o/=100,n/=100,[f(0),f(8),f(4)]} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */ +/** + * @param {number} hue - Hue as degrees 0..360 + * @param {number} white - Whiteness as percentage 0..100 + * @param {number} black - Blackness as percentage 0..100 + * @return {number[]} Array of RGB components 0..1 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hwbToRgb.js + */ +function HWB_to_sRGB(t){const _=t[0];let o=t[1],n=t[2];if(o/=100,n/=100,o+n>=1){const t=o/(o+n);return[t,t,t]}const r=HSL_to_sRGB([_,100,50]);for(let t=0;t<3;t++)r[t]*=1-o-n,r[t]+=o;return r} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function Lab_to_LCH(t){const _=180*Math.atan2(t[2],t[1])/Math.PI;return[t[0],Math.sqrt(Math.pow(t[1],2)+Math.pow(t[2],2)),_>=0?_:_+360]} +/** + * Convert Lab to D50-adapted XYZ + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function Lab_to_XYZ(t){const _=24389/27,o=216/24389,n=[];n[1]=(t[0]+16)/116,n[0]=t[1]/500+n[1],n[2]=n[1]-t[2]/200;return[Math.pow(n[0],3)>o?Math.pow(n[0],3):(116*n[0]-16)/_,t[0]>8?Math.pow((t[0]+16)/116,3):t[0]/_,Math.pow(n[2],3)>o?Math.pow(n[2],3):(116*n[2]-16)/_].map(((t,_)=>t*r[_]))} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function LCH_to_Lab(t){return[t[0],t[1]*Math.cos(t[2]*Math.PI/180),t[1]*Math.sin(t[2]*Math.PI/180)]} +/** + * Convert an array of rec2020 RGB values in the range 0.0 - 1.0 + * to linear light (un-companded) form. + * ITU-R BT.2020-2 p.4 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_2020(t){const _=1.09929682680944;return t.map((function(t){const o=t<0?-1:1,n=Math.abs(t);return n<.08124285829863151?t/4.5:o*Math.pow((n+_-1)/_,1/.45)}))} +/** + * Convert an array of linear-light rec2020 values to CIE XYZ + * using D65 (no chromatic adaptation) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function lin_2020_to_XYZ(t){return multiplyMatrices([[63426534/99577255,20160776/139408157,47086771/278816314],[26158966/99577255,.677998071518871,8267143/139408157],[0,19567812/697040785,1.0609850577107909]],t)} +/** + * Convert an array of a98-rgb values in the range 0.0 - 1.0 + * to linear light (un-companded) form. Negative values are also now accepted + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_a98rgb(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return _*Math.pow(o,563/256)}))} +/** + * Convert an array of linear-light a98-rgb values to CIE XYZ + * http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + * has greater numerical precision than section 4.3.5.3 of + * https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf + * but the values below were calculated from first principles + * from the chromaticity coordinates of R G B W + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + * @see https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/matrixmaker.html + */function lin_a98rgb_to_XYZ(t){return multiplyMatrices([[573536/994567,263643/1420810,187206/994567],[591459/1989134,6239551/9945670,374412/4972835],[53769/1989134,351524/4972835,4929758/4972835]],t)} +/** + * Convert an array of display-p3 RGB values in the range 0.0 - 1.0 + * to linear light (un-companded) form. + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_P3(t){return lin_sRGB(t)} +/** + * Convert an array of linear-light display-p3 values to CIE XYZ + * using D65 (no chromatic adaptation) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function lin_P3_to_XYZ(t){return multiplyMatrices([[608311/1250200,189793/714400,198249/1000160],[35783/156275,247089/357200,198249/2500400],[0,32229/714400,5220557/5000800]],t)} +/** + * Convert an array of prophoto-rgb values where in-gamut Colors are in the + * range [0.0 - 1.0] to linear light (un-companded) form. Transfer curve is + * gamma 1.8 with a small linear portion. Extended transfer function + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_ProPhoto(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return o<=.03125?t/16:_*Math.pow(o,1.8)}))} +/** + * Convert an array of linear-light prophoto-rgb values to CIE XYZ + * using D50 (so no chromatic adaptation needed afterwards) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function lin_ProPhoto_to_XYZ(t){return multiplyMatrices([[.7977604896723027,.13518583717574031,.0313493495815248],[.2880711282292934,.7118432178101014,8565396060525902e-20],[0,0,.8251046025104601]],t)} +/** + * CMYK is an array of four values in the range [0.0, 1.0] the output is an + * array of [RGB] also in the [0.0, 1.0] range because the naive algorithm + * does not generate out of gamut colors neither does it generate accurate + * simulations of practical CMYK colors + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */ +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */ +function OKLab_to_OKLCH(t){const _=180*Math.atan2(t[2],t[1])/Math.PI;return[t[0],Math.sqrt(t[1]**2+t[2]**2),_>=0?_:_+360]} +/** + * Given OKLab, convert to XYZ relative to D65 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */function OKLab_to_XYZ(t){const _=multiplyMatrices([[.9999999984505198,.39633779217376786,.2158037580607588],[1.0000000088817609,-.10556134232365635,-.06385417477170591],[1.0000000546724108,-.08948418209496575,-1.2914855378640917]],t);return multiplyMatrices([[1.2268798733741557,-.5578149965554813,.28139105017721583],[-.04057576262431372,1.1122868293970594,-.07171106666151701],[-.07637294974672142,-.4214933239627914,1.5869240244272418]],_.map((t=>t**3)))} +/** + * Convert an array of gamma-corrected sRGB values in the 0.0 to 1.0 range to HSL. + * + * @param {Color} RGB [r, g, b] + * - Red component 0..1 + * - Green component 0..1 + * - Blue component 0..1 + * @return {number[]} Array of HSL values: Hue as degrees 0..360, Saturation and Lightness as percentages 0..100 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/rgbToHsl.js + */function sRGB_to_HSL(t){const _=t[0],o=t[1],n=t[2],r=Math.max(_,o,n),e=Math.min(_,o,n),a=(e+r)/2,i=r-e;let l=NaN,u=0;if(0!==Math.round(1e5*i)){switch(u=0===Math.round(1e5*a)||1e5===Math.round(1e5*a)?0:(r-a)/Math.min(a,1-a),r){case _:l=(o-n)/i+(ot/r[_])).map((t=>t>.008856451679035631?Math.cbrt(t):(903.2962962962963*t+16)/116));return[116*_[1]-16,500*(_[0]-_[1]),200*(_[1]-_[2])]} +/** + * Convert XYZ to linear-light rec2020 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function XYZ_to_lin_2020(t){return multiplyMatrices([[30757411/17917100,-6372589/17917100,-4539589/17917100],[-.666684351832489,1.616481236634939,467509/29648200],[792561/44930125,-1921689/44930125,.942103121235474]],t)} +/** + * Convert XYZ to linear-light a98-rgb + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function XYZ_to_lin_a98rgb(t){return multiplyMatrices([[1829569/896150,-506331/896150,-308931/896150],[-851781/878810,1648619/878810,36519/878810],[16779/1248040,-147721/1248040,1266979/1248040]],t)} +/** + * Convert XYZ to linear-light P3 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function XYZ_to_lin_P3(t){return multiplyMatrices([[446124/178915,-333277/357830,-72051/178915],[-14852/17905,63121/35810,423/17905],[11844/330415,-50337/660830,316169/330415]],t)} +/** + * Convert XYZ to linear-light prophoto-rgb + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function XYZ_to_lin_ProPhoto(t){return multiplyMatrices([[1.3457989731028281,-.25558010007997534,-.05110628506753401],[-.5446224939028347,1.5082327413132781,.02053603239147973],[0,0,1.2119675456389454]],t)} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function XYZ_to_lin_sRGB(t){return multiplyMatrices([[12831/3959,-329/214,-1974/3959],[-851781/878810,1648619/878810,36519/878810],[705/12673,-2585/12673,705/667]],t)} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * XYZ <-> LMS matrices recalculated for consistent reference white + * @see https://github.com/w3c/csswg-drafts/issues/6642#issuecomment-943521484 + */function XYZ_to_OKLab(t){const _=multiplyMatrices([[.8190224432164319,.3619062562801221,-.12887378261216414],[.0329836671980271,.9292868468965546,.03614466816999844],[.048177199566046255,.26423952494422764,.6335478258136937]],t);return multiplyMatrices([[.2104542553,.793617785,-.0040720468],[1.9779984951,-2.428592205,.4505937099],[.0259040371,.7827717662,-.808675766]],_.map((t=>Math.cbrt(t))))} +/** + * Convert an array of three XYZ values to u*,v* chromaticity coordinates + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */var e=Object.freeze({__proto__:null,D50:r,D50_to_D65:D50_to_D65,D65:[.3127/.329,1,.3583/.329],D65_to_D50:D65_to_D50,HSL_to_sRGB:HSL_to_sRGB,HWB_to_sRGB:HWB_to_sRGB,LCH_to_Lab:LCH_to_Lab,Lab_to_LCH:Lab_to_LCH,Lab_to_XYZ:Lab_to_XYZ,OKLCH_to_OKLab:OKLCH_to_OKLab,OKLab_to_OKLCH:OKLab_to_OKLCH,OKLab_to_XYZ:OKLab_to_XYZ,XYZ_to_Lab:XYZ_to_Lab,XYZ_to_OKLab:XYZ_to_OKLab,XYZ_to_lin_2020:XYZ_to_lin_2020,XYZ_to_lin_P3:XYZ_to_lin_P3,XYZ_to_lin_ProPhoto:XYZ_to_lin_ProPhoto,XYZ_to_lin_a98rgb:XYZ_to_lin_a98rgb,XYZ_to_lin_sRGB:XYZ_to_lin_sRGB,XYZ_to_uv:function XYZ_to_uv(t){const _=t[0],o=t[1],n=_+15*o+3*t[2];return[4*_/n,9*o/n]} +/** + * Convert an array of three XYZ values to x,y chromaticity coordinates + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */,XYZ_to_xy:function XYZ_to_xy(t){const _=t[0],o=t[1],n=_+o+t[2];return[_/n,o/n]},gam_2020:gam_2020,gam_P3:gam_P3,gam_ProPhoto:gam_ProPhoto,gam_a98rgb:gam_a98rgb,gam_sRGB:gam_sRGB,hueToRGB:function hueToRGB(t,_,o){return o<0&&(o+=6),o>=6&&(o-=6),o<1?(_-t)*o+t:o<3?_:o<4?(_-t)*(4-o)+t:t},lin_2020:lin_2020,lin_2020_to_XYZ:lin_2020_to_XYZ,lin_P3:lin_P3,lin_P3_to_XYZ:lin_P3_to_XYZ,lin_ProPhoto:lin_ProPhoto,lin_ProPhoto_to_XYZ:lin_ProPhoto_to_XYZ,lin_a98rgb:lin_a98rgb,lin_a98rgb_to_XYZ:lin_a98rgb_to_XYZ,lin_sRGB:lin_sRGB,lin_sRGB_to_XYZ:lin_sRGB_to_XYZ,naive_CMYK_to_sRGB:function naive_CMYK_to_sRGB(t){const _=t[0],o=t[1],n=t[2],r=t[3];return[1-Math.min(1,_*(1-r)+r),1-Math.min(1,o*(1-r)+r),1-Math.min(1,n*(1-r)+r)]},sRGB_to_HSL:sRGB_to_HSL,sRGB_to_HWB:function sRGB_to_HWB(t){const _=sRGB_to_HSL(t),o=Math.min(t[0],t[1],t[2]),n=1-Math.max(t[0],t[1],t[2]);return[_[0],100*o,100*n]},sRGB_to_luminance:sRGB_to_luminance});var a=Object.freeze({__proto__:null,HSL_to_XYZ_D50:function HSL_to_XYZ_D50(t){let _=t;return _=HSL_to_sRGB(_),_=lin_sRGB(_),_=lin_sRGB_to_XYZ(_),_=D65_to_D50(_),_},HWB_to_XYZ_D50:function HWB_to_XYZ_D50(t){let _=t;return _=HWB_to_sRGB(_),_=lin_sRGB(_),_=lin_sRGB_to_XYZ(_),_=D65_to_D50(_),_},LCH_to_XYZ_D50:function LCH_to_XYZ_D50(t){let _=t;return _=LCH_to_Lab(_),_=Lab_to_XYZ(_),_},Lab_to_XYZ_D50:function Lab_to_XYZ_D50(t){let _=t;return _=Lab_to_XYZ(_),_},OKLCH_to_XYZ_D50:function OKLCH_to_XYZ_D50(t){let _=t;return _=OKLCH_to_OKLab(_),_=OKLab_to_XYZ(_),_=D65_to_D50(_),_},OKLab_to_XYZ_D50:function OKLab_to_XYZ_D50(t){let _=t;return _=OKLab_to_XYZ(_),_=D65_to_D50(_),_},P3_to_XYZ_D50:function P3_to_XYZ_D50(t){let _=t;return _=lin_P3(_),_=lin_P3_to_XYZ(_),_=D65_to_D50(_),_},ProPhoto_RGB_to_XYZ_D50:function ProPhoto_RGB_to_XYZ_D50(t){let _=t;return _=lin_ProPhoto(_),_=lin_ProPhoto_to_XYZ(_),_},XYZ_D50_to_HSL:function XYZ_D50_to_HSL(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_sRGB(_),_=gam_sRGB(_),_=sRGB_to_HSL(_),_},XYZ_D50_to_HWB:function XYZ_D50_to_HWB(t){let _=t;_=D50_to_D65(_),_=XYZ_to_lin_sRGB(_);const o=gam_sRGB(_);_=sRGB_to_HSL(o);const n=Math.min(o[0],o[1],o[2]),r=1-Math.max(o[0],o[1],o[2]);return[_[0],100*n,100*r]},XYZ_D50_to_LCH:function XYZ_D50_to_LCH(t){let _=t;return _=XYZ_to_Lab(_),_=Lab_to_LCH(_),_},XYZ_D50_to_Lab:function XYZ_D50_to_Lab(t){let _=t;return _=XYZ_to_Lab(_),_},XYZ_D50_to_OKLCH:function XYZ_D50_to_OKLCH(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_OKLab(_),_=OKLab_to_OKLCH(_),_},XYZ_D50_to_OKLab:function XYZ_D50_to_OKLab(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_OKLab(_),_},XYZ_D50_to_P3:function XYZ_D50_to_P3(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_P3(_),_=gam_P3(_),_},XYZ_D50_to_ProPhoto:function XYZ_D50_to_ProPhoto(t){let _=t;return _=XYZ_to_lin_ProPhoto(_),_=gam_ProPhoto(_),_},XYZ_D50_to_XYZ_D50:function XYZ_D50_to_XYZ_D50(t){return t},XYZ_D50_to_XYZ_D65:function XYZ_D50_to_XYZ_D65(t){let _=t;return _=D50_to_D65(_),_},XYZ_D50_to_a98_RGB:function XYZ_D50_to_a98_RGB(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_a98rgb(_),_=gam_a98rgb(_),_},XYZ_D50_to_lin_sRGB:function XYZ_D50_to_lin_sRGB(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_sRGB(_),_},XYZ_D50_to_rec_2020:function XYZ_D50_to_rec_2020(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_2020(_),_=gam_2020(_),_},XYZ_D50_to_sRGB:function XYZ_D50_to_sRGB(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_sRGB(_),_=gam_sRGB(_),_},XYZ_D65_to_XYZ_D50:function XYZ_D65_to_XYZ_D50(t){let _=t;return _=D65_to_D50(_),_},a98_RGB_to_XYZ_D50:function a98_RGB_to_XYZ_D50(t){let _=t;return _=lin_a98rgb(_),_=lin_a98rgb_to_XYZ(_),_=D65_to_D50(_),_},lin_sRGB_to_XYZ_D50:function lin_sRGB_to_XYZ_D50(t){let _=t;return _=lin_sRGB_to_XYZ(_),_=D65_to_D50(_),_},rec_2020_to_XYZ_D50:function rec_2020_to_XYZ_D50(t){let _=t;return _=lin_2020(_),_=lin_2020_to_XYZ(_),_=D65_to_D50(_),_},sRGB_to_XYZ_D50:function sRGB_to_XYZ_D50(t){let _=t;return _=lin_sRGB(_),_=lin_sRGB_to_XYZ(_),_=D65_to_D50(_),_}});exports.calculations=n,exports.conversions=e,exports.namedColors={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]},exports.utils=t,exports.xyz=a; diff --git a/node_modules/@csstools/color-helpers/dist/index.d.ts b/node_modules/@csstools/color-helpers/dist/index.d.ts new file mode 100644 index 00000000..15af8c66 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/index.d.ts @@ -0,0 +1,6 @@ +export * as calculations from './calculations'; +export * as conversions from './conversions'; +export * as utils from './utils'; +export * as xyz from './conversions/xyz'; +export type { Color } from './types/color'; +export { namedColors } from './named-colors'; diff --git a/node_modules/@csstools/color-helpers/dist/index.mjs b/node_modules/@csstools/color-helpers/dist/index.mjs new file mode 100644 index 00000000..9a1bb789 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/index.mjs @@ -0,0 +1,388 @@ +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/map-gamut.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + */ +function clip(t){return t.map((t=>t<0?0:t>1?1:t))} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */function OKLCH_to_OKLab(t){return[t[0],t[1]*Math.cos(t[2]*Math.PI/180),t[1]*Math.sin(t[2]*Math.PI/180)]} +/** + * @description Calculate deltaE OK which is the simple root sum of squares + * @param {number[]} reference - Array of OKLab values: L as 0..1, a and b as -1..1 + * @param {number[]} sample - Array of OKLab values: L as 0..1, a and b as -1..1 + * @return {number} How different a color sample is from reference + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js + */function deltaEOK(t,_){const[o,n,r]=t,[e,a,i]=_,l=o-e,u=n-a,c=r-i;return Math.sqrt(l**2+u**2+c**2)} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/map-gamut.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + */function inGamut(t){const[_,o,n]=t;return _>=-1e-4&&_<=1.0001&&o>=-1e-4&&o<=1.0001&&n>=-1e-4&&n<=1.0001}var t=Object.freeze({__proto__:null,clip:clip,inGamut:inGamut});const _=.02,o=1e-5;function binarySearchGamut(t,n,r){const e=t;let a=0,i=e[1];for(;i-a>o;){const t=(a+i)/2;e[1]=t;const o=n(e);if(inGamut(o)){a=t;continue}const l=clip(o);if(deltaEOK(OKLCH_to_OKLab(r(l)),OKLCH_to_OKLab(e))<_)return l;i=t}return clip(n([...e]))} +/** + * Convert an array of of sRGB values where in-gamut values are in the range + * [0 - 1] to linear light (un-companded) form. + * Extended transfer function: + * For negative values, linear portion is extended on reflection of axis, + * then reflected power function is used. + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://en.wikipedia.org/wiki/SRGB + */ +function lin_sRGB(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return o<.04045?t/12.92:_*Math.pow((o+.055)/1.055,2.4)}))} +/** + * Simple matrix (and vector) multiplication + * Warning: No error handling for incompatible dimensions! + * @author Lea Verou 2020 MIT License + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js + */function multiplyMatrices(t,_){const o=t.length;let n,r;n=Array.isArray(t[0])?t:[t],r=Array.isArray(_[0])?_:_.map((t=>[t]));const e=r[0].length,a=r[0].map(((t,_)=>r.map((t=>t[_]))));let i=n.map((t=>a.map((_=>Array.isArray(t)?t.reduce(((t,o,n)=>t+o*(_[n]||0)),0):_.reduce(((_,o)=>_+o*t),0)))));return 1===o&&(i=i[0]),1===e?i.map((t=>t[0])):i} +/** + * Convert an array of linear-light sRGB values to CIE XYZ + * using sRGB's own white, D65 (no chromatic adaptation) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_sRGB_to_XYZ(t){return multiplyMatrices([[506752/1228815,87881/245763,12673/70218],[87098/409605,175762/245763,12673/175545],[7918/409605,87881/737289,1001167/1053270]],t)} +/** + * Convert an array of gamma-corrected sRGB values in the 0.0 to 1.0 range + * to linear-light sRGB, then to CIE XYZ and return luminance (the Y value) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */function sRGB_to_luminance(t){return lin_sRGB_to_XYZ(lin_sRGB(t))[1]} +/** + * Return WCAG 2.1 contrast ratio for two sRGB values given as arrays + * + * of 0.0 to 1.0 + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + * @see https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio + */var n=Object.freeze({__proto__:null,binarySearchGamut:binarySearchGamut,contrast:function contrast(t,_){const o=sRGB_to_luminance(t),n=sRGB_to_luminance(_);return o>n?(o+.05)/(n+.05):(n+.05)/(o+.05)},deltaEOK:deltaEOK,mapGamut:function mapGamut(t,_,o){return binarySearchGamut(t,_,o)},multiplyMatrices:multiplyMatrices});const r=[.3457/.3585,1,.2958/.3585]; +/** + * Bradford chromatic adaptation from D50 to D65 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */ +function D50_to_D65(t){return multiplyMatrices([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],t)} +/** + * Bradford chromatic adaptation from D65 to D50 + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html + */function D65_to_D50(t){return multiplyMatrices([[1.0479298208405488,.022946793341019088,-.05019222954313557],[.029627815688159344,.990434484573249,-.01707382502938514],[-.009243058152591178,.015055144896577895,.7518742899580008]],t)} +/** + * Convert an array of linear-light rec2020 RGB in the range 0.0-1.0 + * to gamma corrected form ITU-R BT.2020-2 p.4 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function gam_2020(t){const _=1.09929682680944;return t.map((function(t){const o=t<0?-1:1,n=Math.abs(t);return n>.018053968510807?o*(_*Math.pow(n,.45)-(_-1)):4.5*t}))} +/** + * Convert an array of linear-light a98-rgb in the range 0.0-1.0 + * to gamma corrected form. Negative values are also now accepted + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function gam_a98rgb(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return _*Math.pow(o,256/563)}))} +/** + * Convert an array of linear-light sRGB values in the range 0.0-1.0 to gamma corrected form + * Extended transfer function: + * For negative values, linear portion extends on reflection + * of axis, then uses reflected pow below that + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://en.wikipedia.org/wiki/SRGB + */function gam_sRGB(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return o>.0031308?_*(1.055*Math.pow(o,1/2.4)-.055):12.92*t}))} +/** + * Convert an array of linear-light display-p3 RGB in the range 0.0-1.0 + * to gamma corrected form + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function gam_P3(t){return gam_sRGB(t)} +/** + * Convert an array of linear-light prophoto-rgb in the range 0.0-1.0 + * to gamma corrected form. + * Transfer curve is gamma 1.8 with a small linear portion. + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function gam_ProPhoto(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return o>=.001953125?_*Math.pow(o,1/1.8):16*t}))} +/** + * @param {number} hue - Hue as degrees 0..360 + * @param {number} sat - Saturation as percentage 0..100 + * @param {number} light - Lightness as percentage 0..100 + * @return {number[]} Array of RGB components 0..1 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hslToRgb.js + */function HSL_to_sRGB(t){let _=t[0],o=t[1],n=t[2];function f(t){const r=(t+_/30)%12,e=o*Math.min(n,1-n);return n-e*Math.max(-1,Math.min(r-3,9-r,1))}return _%=360,_<0&&(_+=360),o/=100,n/=100,[f(0),f(8),f(4)]} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */ +/** + * @param {number} hue - Hue as degrees 0..360 + * @param {number} white - Whiteness as percentage 0..100 + * @param {number} black - Blackness as percentage 0..100 + * @return {number[]} Array of RGB components 0..1 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/hwbToRgb.js + */ +function HWB_to_sRGB(t){const _=t[0];let o=t[1],n=t[2];if(o/=100,n/=100,o+n>=1){const t=o/(o+n);return[t,t,t]}const r=HSL_to_sRGB([_,100,50]);for(let t=0;t<3;t++)r[t]*=1-o-n,r[t]+=o;return r} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function Lab_to_LCH(t){const _=180*Math.atan2(t[2],t[1])/Math.PI;return[t[0],Math.sqrt(Math.pow(t[1],2)+Math.pow(t[2],2)),_>=0?_:_+360]} +/** + * Convert Lab to D50-adapted XYZ + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function Lab_to_XYZ(t){const _=24389/27,o=216/24389,n=[];n[1]=(t[0]+16)/116,n[0]=t[1]/500+n[1],n[2]=n[1]-t[2]/200;return[Math.pow(n[0],3)>o?Math.pow(n[0],3):(116*n[0]-16)/_,t[0]>8?Math.pow((t[0]+16)/116,3):t[0]/_,Math.pow(n[2],3)>o?Math.pow(n[2],3):(116*n[2]-16)/_].map(((t,_)=>t*r[_]))} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function LCH_to_Lab(t){return[t[0],t[1]*Math.cos(t[2]*Math.PI/180),t[1]*Math.sin(t[2]*Math.PI/180)]} +/** + * Convert an array of rec2020 RGB values in the range 0.0 - 1.0 + * to linear light (un-companded) form. + * ITU-R BT.2020-2 p.4 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_2020(t){const _=1.09929682680944;return t.map((function(t){const o=t<0?-1:1,n=Math.abs(t);return n<.08124285829863151?t/4.5:o*Math.pow((n+_-1)/_,1/.45)}))} +/** + * Convert an array of linear-light rec2020 values to CIE XYZ + * using D65 (no chromatic adaptation) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function lin_2020_to_XYZ(t){return multiplyMatrices([[63426534/99577255,20160776/139408157,47086771/278816314],[26158966/99577255,.677998071518871,8267143/139408157],[0,19567812/697040785,1.0609850577107909]],t)} +/** + * Convert an array of a98-rgb values in the range 0.0 - 1.0 + * to linear light (un-companded) form. Negative values are also now accepted + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_a98rgb(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return _*Math.pow(o,563/256)}))} +/** + * Convert an array of linear-light a98-rgb values to CIE XYZ + * http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + * has greater numerical precision than section 4.3.5.3 of + * https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf + * but the values below were calculated from first principles + * from the chromaticity coordinates of R G B W + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + * @see https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/matrixmaker.html + */function lin_a98rgb_to_XYZ(t){return multiplyMatrices([[573536/994567,263643/1420810,187206/994567],[591459/1989134,6239551/9945670,374412/4972835],[53769/1989134,351524/4972835,4929758/4972835]],t)} +/** + * Convert an array of display-p3 RGB values in the range 0.0 - 1.0 + * to linear light (un-companded) form. + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_P3(t){return lin_sRGB(t)} +/** + * Convert an array of linear-light display-p3 values to CIE XYZ + * using D65 (no chromatic adaptation) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function lin_P3_to_XYZ(t){return multiplyMatrices([[608311/1250200,189793/714400,198249/1000160],[35783/156275,247089/357200,198249/2500400],[0,32229/714400,5220557/5000800]],t)} +/** + * Convert an array of prophoto-rgb values where in-gamut Colors are in the + * range [0.0 - 1.0] to linear light (un-companded) form. Transfer curve is + * gamma 1.8 with a small linear portion. Extended transfer function + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function lin_ProPhoto(t){return t.map((function(t){const _=t<0?-1:1,o=Math.abs(t);return o<=.03125?t/16:_*Math.pow(o,1.8)}))} +/** + * Convert an array of linear-light prophoto-rgb values to CIE XYZ + * using D50 (so no chromatic adaptation needed afterwards) + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function lin_ProPhoto_to_XYZ(t){return multiplyMatrices([[.7977604896723027,.13518583717574031,.0313493495815248],[.2880711282292934,.7118432178101014,8565396060525902e-20],[0,0,.8251046025104601]],t)} +/** + * CMYK is an array of four values in the range [0.0, 1.0] the output is an + * array of [RGB] also in the [0.0, 1.0] range because the naive algorithm + * does not generate out of gamut colors neither does it generate accurate + * simulations of practical CMYK colors + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */ +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */ +function OKLab_to_OKLCH(t){const _=180*Math.atan2(t[2],t[1])/Math.PI;return[t[0],Math.sqrt(t[1]**2+t[2]**2),_>=0?_:_+360]} +/** + * Given OKLab, convert to XYZ relative to D65 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */function OKLab_to_XYZ(t){const _=multiplyMatrices([[.9999999984505198,.39633779217376786,.2158037580607588],[1.0000000088817609,-.10556134232365635,-.06385417477170591],[1.0000000546724108,-.08948418209496575,-1.2914855378640917]],t);return multiplyMatrices([[1.2268798733741557,-.5578149965554813,.28139105017721583],[-.04057576262431372,1.1122868293970594,-.07171106666151701],[-.07637294974672142,-.4214933239627914,1.5869240244272418]],_.map((t=>t**3)))} +/** + * Convert an array of gamma-corrected sRGB values in the 0.0 to 1.0 range to HSL. + * + * @param {Color} RGB [r, g, b] + * - Red component 0..1 + * - Green component 0..1 + * - Blue component 0..1 + * @return {number[]} Array of HSL values: Hue as degrees 0..360, Saturation and Lightness as percentages 0..100 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/rgbToHsl.js + */function sRGB_to_HSL(t){const _=t[0],o=t[1],n=t[2],r=Math.max(_,o,n),e=Math.min(_,o,n),a=(e+r)/2,i=r-e;let l=NaN,u=0;if(0!==Math.round(1e5*i)){switch(u=0===Math.round(1e5*a)||1e5===Math.round(1e5*a)?0:(r-a)/Math.min(a,1-a),r){case _:l=(o-n)/i+(ot/r[_])).map((t=>t>.008856451679035631?Math.cbrt(t):(903.2962962962963*t+16)/116));return[116*_[1]-16,500*(_[0]-_[1]),200*(_[1]-_[2])]} +/** + * Convert XYZ to linear-light rec2020 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function XYZ_to_lin_2020(t){return multiplyMatrices([[30757411/17917100,-6372589/17917100,-4539589/17917100],[-.666684351832489,1.616481236634939,467509/29648200],[792561/44930125,-1921689/44930125,.942103121235474]],t)} +/** + * Convert XYZ to linear-light a98-rgb + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function XYZ_to_lin_a98rgb(t){return multiplyMatrices([[1829569/896150,-506331/896150,-308931/896150],[-851781/878810,1648619/878810,36519/878810],[16779/1248040,-147721/1248040,1266979/1248040]],t)} +/** + * Convert XYZ to linear-light P3 + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function XYZ_to_lin_P3(t){return multiplyMatrices([[446124/178915,-333277/357830,-72051/178915],[-14852/17905,63121/35810,423/17905],[11844/330415,-50337/660830,316169/330415]],t)} +/** + * Convert XYZ to linear-light prophoto-rgb + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html + */function XYZ_to_lin_ProPhoto(t){return multiplyMatrices([[1.3457989731028281,-.25558010007997534,-.05110628506753401],[-.5446224939028347,1.5082327413132781,.02053603239147973],[0,0,1.2119675456389454]],t)} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + */function XYZ_to_lin_sRGB(t){return multiplyMatrices([[12831/3959,-329/214,-1974/3959],[-851781/878810,1648619/878810,36519/878810],[705/12673,-2585/12673,705/667]],t)} +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * XYZ <-> LMS matrices recalculated for consistent reference white + * @see https://github.com/w3c/csswg-drafts/issues/6642#issuecomment-943521484 + */function XYZ_to_OKLab(t){const _=multiplyMatrices([[.8190224432164319,.3619062562801221,-.12887378261216414],[.0329836671980271,.9292868468965546,.03614466816999844],[.048177199566046255,.26423952494422764,.6335478258136937]],t);return multiplyMatrices([[.2104542553,.793617785,-.0040720468],[1.9779984951,-2.428592205,.4505937099],[.0259040371,.7827717662,-.808675766]],_.map((t=>Math.cbrt(t))))} +/** + * Convert an array of three XYZ values to u*,v* chromaticity coordinates + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */var e=Object.freeze({__proto__:null,D50:r,D50_to_D65:D50_to_D65,D65:[.3127/.329,1,.3583/.329],D65_to_D50:D65_to_D50,HSL_to_sRGB:HSL_to_sRGB,HWB_to_sRGB:HWB_to_sRGB,LCH_to_Lab:LCH_to_Lab,Lab_to_LCH:Lab_to_LCH,Lab_to_XYZ:Lab_to_XYZ,OKLCH_to_OKLab:OKLCH_to_OKLab,OKLab_to_OKLCH:OKLab_to_OKLCH,OKLab_to_XYZ:OKLab_to_XYZ,XYZ_to_Lab:XYZ_to_Lab,XYZ_to_OKLab:XYZ_to_OKLab,XYZ_to_lin_2020:XYZ_to_lin_2020,XYZ_to_lin_P3:XYZ_to_lin_P3,XYZ_to_lin_ProPhoto:XYZ_to_lin_ProPhoto,XYZ_to_lin_a98rgb:XYZ_to_lin_a98rgb,XYZ_to_lin_sRGB:XYZ_to_lin_sRGB,XYZ_to_uv:function XYZ_to_uv(t){const _=t[0],o=t[1],n=_+15*o+3*t[2];return[4*_/n,9*o/n]} +/** + * Convert an array of three XYZ values to x,y chromaticity coordinates + * + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @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). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/utilities.js + */,XYZ_to_xy:function XYZ_to_xy(t){const _=t[0],o=t[1],n=_+o+t[2];return[_/n,o/n]},gam_2020:gam_2020,gam_P3:gam_P3,gam_ProPhoto:gam_ProPhoto,gam_a98rgb:gam_a98rgb,gam_sRGB:gam_sRGB,hueToRGB:function hueToRGB(t,_,o){return o<0&&(o+=6),o>=6&&(o-=6),o<1?(_-t)*o+t:o<3?_:o<4?(_-t)*(4-o)+t:t},lin_2020:lin_2020,lin_2020_to_XYZ:lin_2020_to_XYZ,lin_P3:lin_P3,lin_P3_to_XYZ:lin_P3_to_XYZ,lin_ProPhoto:lin_ProPhoto,lin_ProPhoto_to_XYZ:lin_ProPhoto_to_XYZ,lin_a98rgb:lin_a98rgb,lin_a98rgb_to_XYZ:lin_a98rgb_to_XYZ,lin_sRGB:lin_sRGB,lin_sRGB_to_XYZ:lin_sRGB_to_XYZ,naive_CMYK_to_sRGB:function naive_CMYK_to_sRGB(t){const _=t[0],o=t[1],n=t[2],r=t[3];return[1-Math.min(1,_*(1-r)+r),1-Math.min(1,o*(1-r)+r),1-Math.min(1,n*(1-r)+r)]},sRGB_to_HSL:sRGB_to_HSL,sRGB_to_HWB:function sRGB_to_HWB(t){const _=sRGB_to_HSL(t),o=Math.min(t[0],t[1],t[2]),n=1-Math.max(t[0],t[1],t[2]);return[_[0],100*o,100*n]},sRGB_to_luminance:sRGB_to_luminance});var a=Object.freeze({__proto__:null,HSL_to_XYZ_D50:function HSL_to_XYZ_D50(t){let _=t;return _=HSL_to_sRGB(_),_=lin_sRGB(_),_=lin_sRGB_to_XYZ(_),_=D65_to_D50(_),_},HWB_to_XYZ_D50:function HWB_to_XYZ_D50(t){let _=t;return _=HWB_to_sRGB(_),_=lin_sRGB(_),_=lin_sRGB_to_XYZ(_),_=D65_to_D50(_),_},LCH_to_XYZ_D50:function LCH_to_XYZ_D50(t){let _=t;return _=LCH_to_Lab(_),_=Lab_to_XYZ(_),_},Lab_to_XYZ_D50:function Lab_to_XYZ_D50(t){let _=t;return _=Lab_to_XYZ(_),_},OKLCH_to_XYZ_D50:function OKLCH_to_XYZ_D50(t){let _=t;return _=OKLCH_to_OKLab(_),_=OKLab_to_XYZ(_),_=D65_to_D50(_),_},OKLab_to_XYZ_D50:function OKLab_to_XYZ_D50(t){let _=t;return _=OKLab_to_XYZ(_),_=D65_to_D50(_),_},P3_to_XYZ_D50:function P3_to_XYZ_D50(t){let _=t;return _=lin_P3(_),_=lin_P3_to_XYZ(_),_=D65_to_D50(_),_},ProPhoto_RGB_to_XYZ_D50:function ProPhoto_RGB_to_XYZ_D50(t){let _=t;return _=lin_ProPhoto(_),_=lin_ProPhoto_to_XYZ(_),_},XYZ_D50_to_HSL:function XYZ_D50_to_HSL(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_sRGB(_),_=gam_sRGB(_),_=sRGB_to_HSL(_),_},XYZ_D50_to_HWB:function XYZ_D50_to_HWB(t){let _=t;_=D50_to_D65(_),_=XYZ_to_lin_sRGB(_);const o=gam_sRGB(_);_=sRGB_to_HSL(o);const n=Math.min(o[0],o[1],o[2]),r=1-Math.max(o[0],o[1],o[2]);return[_[0],100*n,100*r]},XYZ_D50_to_LCH:function XYZ_D50_to_LCH(t){let _=t;return _=XYZ_to_Lab(_),_=Lab_to_LCH(_),_},XYZ_D50_to_Lab:function XYZ_D50_to_Lab(t){let _=t;return _=XYZ_to_Lab(_),_},XYZ_D50_to_OKLCH:function XYZ_D50_to_OKLCH(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_OKLab(_),_=OKLab_to_OKLCH(_),_},XYZ_D50_to_OKLab:function XYZ_D50_to_OKLab(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_OKLab(_),_},XYZ_D50_to_P3:function XYZ_D50_to_P3(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_P3(_),_=gam_P3(_),_},XYZ_D50_to_ProPhoto:function XYZ_D50_to_ProPhoto(t){let _=t;return _=XYZ_to_lin_ProPhoto(_),_=gam_ProPhoto(_),_},XYZ_D50_to_XYZ_D50:function XYZ_D50_to_XYZ_D50(t){return t},XYZ_D50_to_XYZ_D65:function XYZ_D50_to_XYZ_D65(t){let _=t;return _=D50_to_D65(_),_},XYZ_D50_to_a98_RGB:function XYZ_D50_to_a98_RGB(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_a98rgb(_),_=gam_a98rgb(_),_},XYZ_D50_to_lin_sRGB:function XYZ_D50_to_lin_sRGB(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_sRGB(_),_},XYZ_D50_to_rec_2020:function XYZ_D50_to_rec_2020(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_2020(_),_=gam_2020(_),_},XYZ_D50_to_sRGB:function XYZ_D50_to_sRGB(t){let _=t;return _=D50_to_D65(_),_=XYZ_to_lin_sRGB(_),_=gam_sRGB(_),_},XYZ_D65_to_XYZ_D50:function XYZ_D65_to_XYZ_D50(t){let _=t;return _=D65_to_D50(_),_},a98_RGB_to_XYZ_D50:function a98_RGB_to_XYZ_D50(t){let _=t;return _=lin_a98rgb(_),_=lin_a98rgb_to_XYZ(_),_=D65_to_D50(_),_},lin_sRGB_to_XYZ_D50:function lin_sRGB_to_XYZ_D50(t){let _=t;return _=lin_sRGB_to_XYZ(_),_=D65_to_D50(_),_},rec_2020_to_XYZ_D50:function rec_2020_to_XYZ_D50(t){let _=t;return _=lin_2020(_),_=lin_2020_to_XYZ(_),_=D65_to_D50(_),_},sRGB_to_XYZ_D50:function sRGB_to_XYZ_D50(t){let _=t;return _=lin_sRGB(_),_=lin_sRGB_to_XYZ(_),_=D65_to_D50(_),_}});const i={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]};export{n as calculations,e as conversions,i as namedColors,t as utils,a as xyz}; diff --git a/node_modules/@csstools/color-helpers/dist/named-colors/index.d.ts b/node_modules/@csstools/color-helpers/dist/named-colors/index.d.ts new file mode 100644 index 00000000..4d1a7edd --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/named-colors/index.d.ts @@ -0,0 +1,2 @@ +import type { Color } from 'types/color'; +export declare const namedColors: Record; diff --git a/node_modules/@csstools/color-helpers/dist/types/color.d.ts b/node_modules/@csstools/color-helpers/dist/types/color.d.ts new file mode 100644 index 00000000..4d390a28 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/types/color.d.ts @@ -0,0 +1 @@ +export type Color = [number, number, number]; diff --git a/node_modules/@csstools/color-helpers/dist/utils/clip.d.ts b/node_modules/@csstools/color-helpers/dist/utils/clip.d.ts new file mode 100644 index 00000000..c5ed70f0 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/utils/clip.d.ts @@ -0,0 +1,7 @@ +import type { Color } from 'types/color'; +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/map-gamut.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + */ +export declare function clip(color: Color): Color; diff --git a/node_modules/@csstools/color-helpers/dist/utils/in-gamut.d.ts b/node_modules/@csstools/color-helpers/dist/utils/in-gamut.d.ts new file mode 100644 index 00000000..b2217eb1 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/utils/in-gamut.d.ts @@ -0,0 +1,7 @@ +import type { Color } from 'types/color'; +/** + * @license W3C https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/map-gamut.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + */ +export declare function inGamut(x: Color): boolean; diff --git a/node_modules/@csstools/color-helpers/dist/utils/index.d.ts b/node_modules/@csstools/color-helpers/dist/utils/index.d.ts new file mode 100644 index 00000000..b73e4598 --- /dev/null +++ b/node_modules/@csstools/color-helpers/dist/utils/index.d.ts @@ -0,0 +1,2 @@ +export * from './clip'; +export * from './in-gamut'; diff --git a/node_modules/@csstools/color-helpers/package.json b/node_modules/@csstools/color-helpers/package.json new file mode 100644 index 00000000..9f8a26c8 --- /dev/null +++ b/node_modules/@csstools/color-helpers/package.json @@ -0,0 +1,73 @@ +{ + "name": "@csstools/color-helpers", + "description": "Color helpers to ease transformation between formats, gamut, etc", + "version": "3.0.2", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "check-sources-integrity": "node ./scripts/check-changes.mjs", + "check-sources-integrity:rewrite": "REWRITE_HASHES=true node ./scripts/check-changes.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node ./test/_import.mjs && node ./test/_require.cjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "packages/color-helpers" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "colors", + "css" + ], + "volta": { + "extends": "../../package.json" + }, + "eslintConfig": { + "rules": { + "@typescript-eslint/no-loss-of-precision": "off" + } + } +} diff --git a/node_modules/@csstools/css-calc/CHANGELOG.md b/node_modules/@csstools/css-calc/CHANGELOG.md new file mode 100644 index 00000000..78d8a5e1 --- /dev/null +++ b/node_modules/@csstools/css-calc/CHANGELOG.md @@ -0,0 +1,47 @@ +# Changes to CSS Calc + +### 1.1.4 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) + +### 1.1.3 + +_July 24, 2023_ + +- Correctly serialize negative zero `-0` values as `calc(-1 * 0px)` +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) + +### 1.1.2 + +_July 3, 2023_ + +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) + +### 1.1.1 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) + +### 1.1.0 + +_April 10, 2023_ + +- Expose the list of supported math functions. + +### 1.0.1 + +_March 25, 2023_ + +- Improve case insensitive string matching. + +### 1.0.0 + +_February 21, 2023_ + +- Initial version diff --git a/node_modules/@csstools/css-calc/LICENSE.md b/node_modules/@csstools/css-calc/LICENSE.md new file mode 100644 index 00000000..af5411fa --- /dev/null +++ b/node_modules/@csstools/css-calc/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2022 Romain Menke, Antonio Laguna + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@csstools/css-calc/README.md b/node_modules/@csstools/css-calc/README.md new file mode 100644 index 00000000..bae425a5 --- /dev/null +++ b/node_modules/@csstools/css-calc/README.md @@ -0,0 +1,132 @@ +# CSS Calc + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +Implemented from : https://drafts.csswg.org/css-values-4/ on 2023-02-17 + +## Usage + +Add [CSS calc] to your project: + +```bash +npm install @csstools/css-calc @csstools/css-parser-algorithms @csstools/css-tokenizer --save-dev +``` + +### With string values : + +```mjs +import { calc } from '@csstools/css-calc'; + +// '20' +console.log(calc('calc(10 * 2)')); +``` + +### With component values : + +```mjs +import { stringify, tokenizer } from '@csstools/css-tokenizer'; +import { parseCommaSeparatedListOfComponentValues } from '@csstools/css-parser-algorithms'; +import { calcFromComponentValues } from '@csstools/css-calc'; + +const t = tokenizer({ + css: 'calc(10 * 2)', +}); + +const tokens = []; + +{ + while (!t.endOfFile()) { + tokens.push(t.nextToken()); + } + + tokens.push(t.nextToken()); // EOF-token +} + +const result = parseCommaSeparatedListOfComponentValues(tokens, {}); + +// filter or mutate the component values + +const calcResult = calcFromComponentValues(result, { precision: 5, toCanonicalUnits: true }); + +// filter or mutate the component values even further + +const calcResultStr = calcResult.map((componentValues) => { + return componentValues.map((x) => stringify(...x.tokens())).join(''); +}).join(','); + +// '20' +console.log(calcResultStr); +``` + +### Options + +#### `precision` : + +The default precision is fairly high. +It aims to be high enough to make rounding unnoticeable in the browser. + +You can set it to a lower number to suit your needs. + +```mjs +import { calc } from '@csstools/css-calc'; + +// '0.3' +console.log(calc('calc(1 / 3)', { precision: 1 })); +// '0.33' +console.log(calc('calc(1 / 3)', { precision: 2 })); +``` + +#### `globals` : + +Pass global values as a map of key value pairs. + +> Example : Relative color syntax (`lch(from pink calc(l / 2) c h)`) exposes color channel information as ident tokens. +> By passing globals for `l`, `c` and `h` it is possible to solve nested `calc()`'s. + +```mjs +import { calc } from '@csstools/css-calc'; + +const globals = new Map([ + ['a', '10px'], + ['b', '2rem'], +]); + +// '20px' +console.log(calc('calc(a * 2)', { globals: globals })); +// '6rem' +console.log(calc('calc(b * 3)', { globals: globals })); +``` + +#### `toCanonicalUnits` : + +By default this package will try to preserve units. +The heuristic to do this is very simplistic. +We take the first unit we encounter and try to convert other dimensions to that unit. + +This better matches what users expect from a CSS dev tool. + +If you want to have outputs that are closes to CSS serialized values you can pass `toCanonicalUnits: true`. + +```mjs +import { calc } from '@csstools/css-calc'; + +// '20hz' +console.log(calc('calc(0.01khz + 10hz)', { toCanonicalUnits: true })); + +// '20hz' +console.log(calc('calc(10hz + 0.01khz)', { toCanonicalUnits: true })); + +// '0.02khz' !!! +console.log(calc('calc(0.01khz + 10hz)', { toCanonicalUnits: false })); + +// '20hz' +console.log(calc('calc(10hz + 0.01khz)', { toCanonicalUnits: false })); +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/css-calc + +[CSS calc]: https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc diff --git a/node_modules/@csstools/css-calc/dist/calculation.d.ts b/node_modules/@csstools/css-calc/dist/calculation.d.ts new file mode 100644 index 00000000..963a3854 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/calculation.d.ts @@ -0,0 +1,8 @@ +import type { Operation } from './operation/operation'; +import type { TokenNode } from '@csstools/css-parser-algorithms'; +export type Calculation = { + inputs: Array; + operation: Operation; +}; +export declare function isCalculation(x: unknown): x is Calculation; +export declare function solve(calculation: Calculation | -1): TokenNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/abs.d.ts b/node_modules/@csstools/css-calc/dist/functions/abs.d.ts new file mode 100644 index 00000000..e8971e3b --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/abs.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveAbs(absNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/acos.d.ts b/node_modules/@csstools/css-calc/dist/functions/acos.d.ts new file mode 100644 index 00000000..964f7470 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/acos.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveACos(acosNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/asin.d.ts b/node_modules/@csstools/css-calc/dist/functions/asin.d.ts new file mode 100644 index 00000000..a1465cb7 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/asin.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveASin(asinNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/atan.d.ts b/node_modules/@csstools/css-calc/dist/functions/atan.d.ts new file mode 100644 index 00000000..f800a7bf --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/atan.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveATan(atanNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/atan2.d.ts b/node_modules/@csstools/css-calc/dist/functions/atan2.d.ts new file mode 100644 index 00000000..651308f6 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/atan2.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveATan2(atan2Node: FunctionNode, a: TokenNode, b: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/calc.d.ts b/node_modules/@csstools/css-calc/dist/functions/calc.d.ts new file mode 100644 index 00000000..aa2f0dd4 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/calc.d.ts @@ -0,0 +1,29 @@ +import type { Calculation } from '../calculation'; +import type { ComponentValue, SimpleBlockNode, TokenNode } from '@csstools/css-parser-algorithms'; +import type { Globals } from '../util/globals'; +import { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare const mathFunctions: Map; +export declare function calc(calcNode: FunctionNode | SimpleBlockNode, globals: Globals): Calculation | -1; +export declare function singleNodeSolver(fnNode: FunctionNode, globals: Globals, solveFn: (node: FunctionNode, a: TokenNode) => Calculation | -1): Calculation | -1; +export declare function twoCommaSeparatedNodesSolver(fnNode: FunctionNode, globals: Globals, solveFn: (node: FunctionNode, a: TokenNode, b: TokenNode) => Calculation | -1): Calculation | -1; +export declare function variadicNodesSolver(fnNode: FunctionNode, globals: Globals, solveFn: (node: FunctionNode, x: Array) => Calculation | -1): Calculation | -1; +export declare function clamp(clampNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function max(maxNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function min(minNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function round(roundNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function mod(modNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function rem(remNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function abs(absNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function sign(signNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function sin(sinNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function cos(codNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function tan(tanNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function asin(asinNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function acos(acosNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function atan(atanNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function atan2(atan2Node: FunctionNode, globals: Globals): Calculation | -1; +export declare function exp(expNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function sqrt(sqrtNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function pow(powNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function hypot(hypotNode: FunctionNode, globals: Globals): Calculation | -1; +export declare function log(logNode: FunctionNode, globals: Globals): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/clamp.d.ts b/node_modules/@csstools/css-calc/dist/functions/clamp.d.ts new file mode 100644 index 00000000..19a49c4b --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/clamp.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveClamp(clampNode: FunctionNode, minimum: TokenNode | -1, central: TokenNode | -1, maximum: TokenNode | -1): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/cos.d.ts b/node_modules/@csstools/css-calc/dist/functions/cos.d.ts new file mode 100644 index 00000000..74359259 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/cos.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveCos(cosNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/exp.d.ts b/node_modules/@csstools/css-calc/dist/functions/exp.d.ts new file mode 100644 index 00000000..0d1a64d9 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/exp.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveExp(expNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/globals-and-constants.d.ts b/node_modules/@csstools/css-calc/dist/functions/globals-and-constants.d.ts new file mode 100644 index 00000000..d968bd11 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/globals-and-constants.d.ts @@ -0,0 +1,3 @@ +import { ComponentValue } from '@csstools/css-parser-algorithms'; +import { Globals } from '../util/globals'; +export declare function resolveGlobalsAndConstants(nodes: Array, globals: Globals): Array; diff --git a/node_modules/@csstools/css-calc/dist/functions/hypot.d.ts b/node_modules/@csstools/css-calc/dist/functions/hypot.d.ts new file mode 100644 index 00000000..9d22357f --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/hypot.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { ComponentValue, FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function solveHypot(hypotNode: FunctionNode, solvedNodes: Array): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/log.d.ts b/node_modules/@csstools/css-calc/dist/functions/log.d.ts new file mode 100644 index 00000000..9ed69293 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/log.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { ComponentValue, FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function solveLog(logNode: FunctionNode, solvedNodes: Array): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/max.d.ts b/node_modules/@csstools/css-calc/dist/functions/max.d.ts new file mode 100644 index 00000000..4181d6e5 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/max.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { ComponentValue, FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function solveMax(maxNode: FunctionNode, solvedNodes: Array): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/min.d.ts b/node_modules/@csstools/css-calc/dist/functions/min.d.ts new file mode 100644 index 00000000..9f76b07c --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/min.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { ComponentValue, FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function solveMin(minNode: FunctionNode, solvedNodes: Array): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/mod.d.ts b/node_modules/@csstools/css-calc/dist/functions/mod.d.ts new file mode 100644 index 00000000..0a6172e1 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/mod.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveMod(modNode: FunctionNode, a: TokenNode, b: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/pow.d.ts b/node_modules/@csstools/css-calc/dist/functions/pow.d.ts new file mode 100644 index 00000000..33efc20c --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/pow.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solvePow(powNode: FunctionNode, a: TokenNode, b: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/rem.d.ts b/node_modules/@csstools/css-calc/dist/functions/rem.d.ts new file mode 100644 index 00000000..ebaacfd1 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/rem.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveRem(remNode: FunctionNode, a: TokenNode, b: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/result-to-calculation.d.ts b/node_modules/@csstools/css-calc/dist/functions/result-to-calculation.d.ts new file mode 100644 index 00000000..1f79cf4e --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/result-to-calculation.d.ts @@ -0,0 +1,7 @@ +import { CSSToken } from '@csstools/css-tokenizer'; +import { FunctionNode } from '@csstools/css-parser-algorithms'; +import { Calculation } from '../calculation'; +export declare function resultToCalculation(node: FunctionNode, aToken: CSSToken, result: number): Calculation | -1; +export declare function dimensionToCalculation(node: FunctionNode, unit: string, result: number): Calculation | -1; +export declare function percentageToCalculation(node: FunctionNode, result: number): Calculation | -1; +export declare function numberToCalculation(node: FunctionNode, result: number): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/round.d.ts b/node_modules/@csstools/css-calc/dist/functions/round.d.ts new file mode 100644 index 00000000..87b8d78f --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/round.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveRound(roundNode: FunctionNode, roundingStrategy: string, a: TokenNode, b: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/sign.d.ts b/node_modules/@csstools/css-calc/dist/functions/sign.d.ts new file mode 100644 index 00000000..391f3b56 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/sign.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveSign(signNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/sin.d.ts b/node_modules/@csstools/css-calc/dist/functions/sin.d.ts new file mode 100644 index 00000000..9a0f484b --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/sin.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveSin(sinNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/sqrt.d.ts b/node_modules/@csstools/css-calc/dist/functions/sqrt.d.ts new file mode 100644 index 00000000..a9a43a69 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/sqrt.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveSqrt(sqrtNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/functions/tan.d.ts b/node_modules/@csstools/css-calc/dist/functions/tan.d.ts new file mode 100644 index 00000000..6294895d --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/functions/tan.d.ts @@ -0,0 +1,3 @@ +import type { Calculation } from '../calculation'; +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function solveTan(tanNode: FunctionNode, a: TokenNode): Calculation | -1; diff --git a/node_modules/@csstools/css-calc/dist/index.cjs b/node_modules/@csstools/css-calc/dist/index.cjs new file mode 100644 index 00000000..a9163530 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/css-parser-algorithms"),n=require("@csstools/css-tokenizer");const o=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(o,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const t={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"},r=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]]),u=new Map([["deg",e=>e],["grad",e=>e/.9],["rad",e=>e/180*Math.PI],["turn",e=>e/360]]),i=new Map([["deg",e=>.9*e],["grad",e=>e],["rad",e=>.9*e/180*Math.PI],["turn",e=>.9*e/360]]),a=new Map([["hz",e=>e],["khz",e=>e/1e3]]),l=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]]),s=new Map([["hz",e=>1e3*e],["khz",e=>e]]),c=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]]),T=new Map([["ms",e=>e],["s",e=>e/1e3]]),p=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]]),v=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]]),m=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]]),N=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]]),f=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]]),y=new Map([["ms",e=>1e3*e],["s",e=>e]]),k=new Map([["deg",e=>360*e],["grad",e=>360*e/.9],["rad",e=>360*e/180*Math.PI],["turn",e=>e]]),d=new Map([["cm",r],["mm",c],["q",N],["in",l],["pc",p],["pt",v],["px",m],["ms",T],["s",y],["deg",u],["grad",i],["rad",f],["turn",k],["hz",a],["khz",s]]);function convertUnit(e,o){if(e[0]!==n.TokenType.Dimension)return o;if(o[0]!==n.TokenType.Dimension)return o;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(o[4].unit);if(t===r)return o;const u=d.get(r);if(!u)return o;const i=u.get(t);if(!i)return o;const a=i(o[4].value);return[n.TokenType.Dimension,a.toString()+e[4].unit,o[2],o[3],{value:a,unit:e[4].unit,type:Number.isInteger(a)?n.NumberType.Integer:n.NumberType.Number}]}function toCanonicalUnit(e){if(e[0]!==n.TokenType.Dimension)return e;const o=toLowerCaseAZ(e[4].unit),r=t[o];if(o===r)return e;const u=d.get(o);if(!u)return e;const i=u.get(r);if(!i)return e;const a=i(e[4].value);return[n.TokenType.Dimension,a.toString()+r,e[2],e[3],{value:a,unit:r,type:Number.isInteger(a)?n.NumberType.Integer:n.NumberType.Number}]}function addition(o){if(2!==o.length)return-1;const t=o[0].value;let r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value+r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Percentage){const o=t[4].value+r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const o=t[4].value+r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}return-1}function division(o){if(2!==o.length)return-1;const t=o[0].value,r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value/r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:Number.isInteger(o)?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Number){const o=t[4].value/r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Number){const o=t[4].value/r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:Number.isInteger(o)?n.NumberType.Integer:n.NumberType.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(n){if(-1===n)return-1;const o=[];for(let t=0;te.type))).size)return-1;const r=t.value;if(!isNumeric(r))return-1;const u=o.map((e=>convertUnit(r,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),a=Math.hypot(...i);return resultToCalculation(n,r,a)}function solveMax(n,o){const t=o[0];if(!t||!e.isTokenNode(t))return-1;if(1!==new Set(o.map((e=>e.type))).size)return-1;const r=t.value;if(!isNumeric(r))return-1;const u=o.map((e=>convertUnit(r,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),a=Math.max(...i);return resultToCalculation(n,r,a)}function solveMin(n,o){const t=o[0];if(!t||!e.isTokenNode(t))return-1;if(1!==new Set(o.map((e=>e.type))).size)return-1;const r=t.value;if(!isNumeric(r))return-1;const u=o.map((e=>convertUnit(r,e.value)));if(!arrayOfSameNumeric(u))return-1;const i=u.map((e=>e[4].value)),a=Math.min(...i);return resultToCalculation(n,r,a)}function solveMod(e,n,o){const t=n.value;if(!isNumeric(t))return-1;const r=convertUnit(t,o.value);if(!twoOfSameNumeric(t,r))return-1;let u;return u=0===r[4].value?Number.NaN:Number.isFinite(t[4].value)&&(Number.isFinite(r[4].value)||(r[4].value!==Number.POSITIVE_INFINITY||t[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*t[4].value,-0))&&(r[4].value!==Number.NEGATIVE_INFINITY||t[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*t[4].value,0)))?Number.isFinite(r[4].value)?(t[4].value%r[4].value+r[4].value)%r[4].value:t[4].value:Number.NaN,resultToCalculation(e,t,u)}function solvePow(e,o,t){const r=o.value,u=t.value;if(r[0]!==n.TokenType.Number)return-1;if(!twoOfSameNumeric(r,u))return-1;return numberToCalculation(e,Math.pow(r[4].value,u[4].value))}function solveRem(e,n,o){const t=n.value;if(!isNumeric(t))return-1;const r=convertUnit(t,o.value);if(!twoOfSameNumeric(t,r))return-1;let u;return u=0===r[4].value?Number.NaN:Number.isFinite(t[4].value)?Number.isFinite(r[4].value)?t[4].value%r[4].value:t[4].value:Number.NaN,resultToCalculation(e,t,u)}function solveRound(e,n,o,t){const r=o.value;if(!isNumeric(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;let i;if(0===u[4].value)i=Number.NaN;else if(Number.isFinite(r[4].value)||Number.isFinite(u[4].value))if(!Number.isFinite(r[4].value)&&Number.isFinite(u[4].value))i=r[4].value;else if(Number.isFinite(r[4].value)&&!Number.isFinite(u[4].value))switch(n){case"down":i=r[4].value<0?-1/0:Object.is(-0,0*r[4].value)?-0:0;break;case"up":i=r[4].value>0?1/0:Object.is(0,0*r[4].value)?0:-0;break;default:i=Object.is(0,0*r[4].value)?0:-0}else if(Number.isFinite(u[4].value))switch(n){case"down":i=Math.floor(r[4].value/u[4].value)*u[4].value;break;case"up":i=Math.ceil(r[4].value/u[4].value)*u[4].value;break;case"to-zero":i=Math.trunc(r[4].value/u[4].value)*u[4].value;break;default:{let e=Math.floor(r[4].value/u[4].value)*u[4].value,n=Math.ceil(r[4].value/u[4].value)*u[4].value;if(e>n){const o=e;e=n,n=o}const o=Math.abs(r[4].value-e),t=Math.abs(r[4].value-n);i=o===t?n:o0?1/0:-1/0:Math.tan(l),numberToCalculation(e,l)}function subtraction(o){if(2!==o.length)return-1;const t=o[0].value;let r=o[1].value;if(t[0]===n.TokenType.Number&&r[0]===n.TokenType.Number){const o=t[4].value-r[4].value;return new e.TokenNode([n.TokenType.Number,o.toString(),t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number}])}if(t[0]===n.TokenType.Percentage&&r[0]===n.TokenType.Percentage){const o=t[4].value-r[4].value;return new e.TokenNode([n.TokenType.Percentage,o.toString()+"%",t[2],r[3],{value:o}])}if(t[0]===n.TokenType.Dimension&&r[0]===n.TokenType.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const o=t[4].value-r[4].value;return new e.TokenNode([n.TokenType.Dimension,o.toString()+t[4].unit,t[2],r[3],{value:o,type:t[4].type===n.NumberType.Integer&&r[4].type===n.NumberType.Integer?n.NumberType.Integer:n.NumberType.Number,unit:t[4].unit}])}return-1}function solveLog(o,t){if(1===t.length){const r=t[0];if(!r||!e.isTokenNode(r))return-1;const u=r.value;if(u[0]!==n.TokenType.Number)return-1;return numberToCalculation(o,Math.log(u[4].value))}if(2===t.length){const r=t[0];if(!r||!e.isTokenNode(r))return-1;const u=r.value;if(u[0]!==n.TokenType.Number)return-1;const i=t[1];if(!i||!e.isTokenNode(i))return-1;const a=i.value;if(a[0]!==n.TokenType.Number)return-1;return numberToCalculation(o,Math.log(u[4].value)/Math.log(a[4].value))}return-1}const b=new Map([["abs",function abs(e,n){return singleNodeSolver(e,n,solveAbs)}],["acos",function acos(e,n){return singleNodeSolver(e,n,solveACos)}],["asin",function asin(e,n){return singleNodeSolver(e,n,solveASin)}],["atan",function atan(e,n){return singleNodeSolver(e,n,solveATan)}],["atan2",function atan2(e,n){return twoCommaSeparatedNodesSolver(e,n,solveATan2)}],["calc",calc$1],["clamp",function clamp(o,t){const r=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),u=[],i=[],a=[];{let o=u;for(let t=0;t!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t);let u="";const i=[],a=[];{let o=i;for(let t=0;t!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t);if(1===r.length&&e.isTokenNode(r[0]))return{inputs:[r[0]],operation:unary};let u=0;for(;u!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),i=solve(calc$1(new e.FunctionNode([n.TokenType.Function,"calc(",-1,-1,{value:"calc"}],[n.TokenType.CloseParen,")",-1,-1,void 0],u),t));return-1===i?-1:r(o,i)}function twoCommaSeparatedNodesSolver(o,t,r){const u=resolveGlobalsAndConstants([...o.value.filter((n=>!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),i=[],a=[];{let o=i;for(let t=0;t!e.isCommentNode(n)&&!e.isWhitespaceNode(n)))],t),i=[];{const o=[];let r=[];for(let t=0;t{if(e.isFunctionNode(n)){const e=b.get(toLowerCaseAZ(n.getName()));if(e){const r=patchCalcResult(solve(e(n,t)),o);if(-1!==r)return r}}}))}const h=new Set(b.keys());exports.calc=function calc(o,t){return calcFromComponentValues(e.parseCommaSeparatedListOfComponentValues(n.tokenize({css:o}),{}),t).map((e=>e.map((e=>n.stringify(...e.tokens()))).join(""))).join(",")},exports.calcFromComponentValues=calcFromComponentValues,exports.mathFunctionNames=h; diff --git a/node_modules/@csstools/css-calc/dist/index.d.ts b/node_modules/@csstools/css-calc/dist/index.d.ts new file mode 100644 index 00000000..b7e6856b --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/index.d.ts @@ -0,0 +1,6 @@ +export type { conversionOptions } from './options'; +import type { conversionOptions } from './options'; +import { ComponentValue } from '@csstools/css-parser-algorithms'; +export declare function calc(css: string, options?: conversionOptions): string; +export declare function calcFromComponentValues(componentValuesList: Array>, options?: conversionOptions): ComponentValue[][]; +export declare const mathFunctionNames: Set; diff --git a/node_modules/@csstools/css-calc/dist/index.mjs b/node_modules/@csstools/css-calc/dist/index.mjs new file mode 100644 index 00000000..0bf6b70e --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/index.mjs @@ -0,0 +1 @@ +import{TokenNode as e,isTokenNode as n,isCommentNode as t,isWhitespaceNode as r,isSimpleBlockNode as u,isFunctionNode as i,FunctionNode as a,WhitespaceNode as o,parseCommaSeparatedListOfComponentValues as l,replaceComponentValues as c}from"@csstools/css-parser-algorithms";import{TokenType as s,NumberType as v,isToken as m,tokenizer as f,tokenize as p,stringify as N}from"@csstools/css-tokenizer";const g=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(g,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const b={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"},d=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]]),w=new Map([["deg",e=>e],["grad",e=>e/.9],["rad",e=>e/180*Math.PI],["turn",e=>e/360]]),h=new Map([["deg",e=>.9*e],["grad",e=>e],["rad",e=>.9*e/180*Math.PI],["turn",e=>.9*e/360]]),C=new Map([["hz",e=>e],["khz",e=>e/1e3]]),I=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]]),S=new Map([["hz",e=>1e3*e],["khz",e=>e]]),y=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]]),M=new Map([["ms",e=>e],["s",e=>e/1e3]]),P=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]]),D=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]]),T=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]]),A=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]]),k=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]]),F=new Map([["ms",e=>1e3*e],["s",e=>e]]),x=new Map([["deg",e=>360*e],["grad",e=>360*e/.9],["rad",e=>360*e/180*Math.PI],["turn",e=>e]]),O=new Map([["cm",d],["mm",y],["q",A],["in",I],["pc",P],["pt",D],["px",T],["ms",M],["s",F],["deg",w],["grad",h],["rad",k],["turn",x],["hz",C],["khz",S]]);function convertUnit(e,n){if(e[0]!==s.Dimension)return n;if(n[0]!==s.Dimension)return n;const t=toLowerCaseAZ(e[4].unit),r=toLowerCaseAZ(n[4].unit);if(t===r)return n;const u=O.get(r);if(!u)return n;const i=u.get(t);if(!i)return n;const a=i(n[4].value);return[s.Dimension,a.toString()+e[4].unit,n[2],n[3],{value:a,unit:e[4].unit,type:Number.isInteger(a)?v.Integer:v.Number}]}function toCanonicalUnit(e){if(e[0]!==s.Dimension)return e;const n=toLowerCaseAZ(e[4].unit),t=b[n];if(n===t)return e;const r=O.get(n);if(!r)return e;const u=r.get(t);if(!u)return e;const i=u(e[4].value);return[s.Dimension,i.toString()+t,e[2],e[3],{value:i,unit:t,type:Number.isInteger(i)?v.Integer:v.Number}]}function addition(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value+r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Percentage){const n=t[4].value+r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value+r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.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(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value/r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:Number.isInteger(n)?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Number){const n=t[4].value/r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Number){const n=t[4].value/r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:Number.isInteger(n)?v.Integer:v.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;re.type))).size)return-1;const u=r.value;if(!isNumeric(u))return-1;const i=t.map((e=>convertUnit(u,e.value)));if(!arrayOfSameNumeric(i))return-1;const a=i.map((e=>e[4].value)),o=Math.hypot(...a);return resultToCalculation(e,u,o)}function solveMax(e,t){const r=t[0];if(!r||!n(r))return-1;if(1!==new Set(t.map((e=>e.type))).size)return-1;const u=r.value;if(!isNumeric(u))return-1;const i=t.map((e=>convertUnit(u,e.value)));if(!arrayOfSameNumeric(i))return-1;const a=i.map((e=>e[4].value)),o=Math.max(...a);return resultToCalculation(e,u,o)}function solveMin(e,t){const r=t[0];if(!r||!n(r))return-1;if(1!==new Set(t.map((e=>e.type))).size)return-1;const u=r.value;if(!isNumeric(u))return-1;const i=t.map((e=>convertUnit(u,e.value)));if(!arrayOfSameNumeric(i))return-1;const a=i.map((e=>e[4].value)),o=Math.min(...a);return resultToCalculation(e,u,o)}function solveMod(e,n,t){const r=n.value;if(!isNumeric(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;let i;return i=0===u[4].value?Number.NaN:Number.isFinite(r[4].value)&&(Number.isFinite(u[4].value)||(u[4].value!==Number.POSITIVE_INFINITY||r[4].value!==Number.NEGATIVE_INFINITY&&!Object.is(0*r[4].value,-0))&&(u[4].value!==Number.NEGATIVE_INFINITY||r[4].value!==Number.POSITIVE_INFINITY&&!Object.is(0*r[4].value,0)))?Number.isFinite(u[4].value)?(r[4].value%u[4].value+u[4].value)%u[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,i)}function solvePow(e,n,t){const r=n.value,u=t.value;if(r[0]!==s.Number)return-1;if(!twoOfSameNumeric(r,u))return-1;return numberToCalculation(e,Math.pow(r[4].value,u[4].value))}function solveRem(e,n,t){const r=n.value;if(!isNumeric(r))return-1;const u=convertUnit(r,t.value);if(!twoOfSameNumeric(r,u))return-1;let i;return i=0===u[4].value?Number.NaN:Number.isFinite(r[4].value)?Number.isFinite(u[4].value)?r[4].value%u[4].value:r[4].value:Number.NaN,resultToCalculation(e,r,i)}function solveRound(e,n,t,r){const u=t.value;if(!isNumeric(u))return-1;const i=convertUnit(u,r.value);if(!twoOfSameNumeric(u,i))return-1;let a;if(0===i[4].value)a=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))a=u[4].value;else if(Number.isFinite(u[4].value)&&!Number.isFinite(i[4].value))switch(n){case"down":a=u[4].value<0?-1/0:Object.is(-0,0*u[4].value)?-0:0;break;case"up":a=u[4].value>0?1/0:Object.is(0,0*u[4].value)?0:-0;break;default:a=Object.is(0,0*u[4].value)?0:-0}else if(Number.isFinite(i[4].value))switch(n){case"down":a=Math.floor(u[4].value/i[4].value)*i[4].value;break;case"up":a=Math.ceil(u[4].value/i[4].value)*i[4].value;break;case"to-zero":a=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);a=t===r?n:t0?1/0:-1/0:Math.tan(i),numberToCalculation(e,i)}function subtraction(n){if(2!==n.length)return-1;const t=n[0].value;let r=n[1].value;if(t[0]===s.Number&&r[0]===s.Number){const n=t[4].value-r[4].value;return new e([s.Number,n.toString(),t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.Number}])}if(t[0]===s.Percentage&&r[0]===s.Percentage){const n=t[4].value-r[4].value;return new e([s.Percentage,n.toString()+"%",t[2],r[3],{value:n}])}if(t[0]===s.Dimension&&r[0]===s.Dimension&&(r=convertUnit(t,r),toLowerCaseAZ(t[4].unit)===toLowerCaseAZ(r[4].unit))){const n=t[4].value-r[4].value;return new e([s.Dimension,n.toString()+t[4].unit,t[2],r[3],{value:n,type:t[4].type===v.Integer&&r[4].type===v.Integer?v.Integer:v.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 u=r.value;if(u[0]!==s.Number)return-1;return numberToCalculation(e,Math.log(u[4].value))}if(2===t.length){const r=t[0];if(!r||!n(r))return-1;const u=r.value;if(u[0]!==s.Number)return-1;const i=t[1];if(!i||!n(i))return-1;const a=i.value;if(a[0]!==s.Number)return-1;return numberToCalculation(e,Math.log(u[4].value)/Math.log(a[4].value))}return-1}const Z=new Map([["abs",function abs(e,n){return singleNodeSolver(e,n,solveAbs)}],["acos",function acos(e,n){return singleNodeSolver(e,n,solveACos)}],["asin",function asin(e,n){return singleNodeSolver(e,n,solveASin)}],["atan",function atan(e,n){return singleNodeSolver(e,n,solveATan)}],["atan2",function atan2(e,n){return twoCommaSeparatedNodesSolver(e,n,solveATan2)}],["calc",calc$1],["clamp",function clamp(e,u){const i=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u),o=[],l=[],c=[];{let e=o;for(let t=0;t!t(e)&&!r(e)))],u);let o="";const l=[],c=[];{let e=l;for(let t=0;t!t(e)&&!r(e)))],a);if(1===o.length&&n(o[0]))return{inputs:[o[0]],operation:unary};let l=0;for(;l!t(e)&&!r(e)))],n),o=solve(calc$1(new a([s.Function,"calc(",-1,-1,{value:"calc"}],[s.CloseParen,")",-1,-1,void 0],i),n));return-1===o?-1:u(e,o)}function twoCommaSeparatedNodesSolver(e,u,i){const o=resolveGlobalsAndConstants([...e.value.filter((e=>!t(e)&&!r(e)))],u),l=[],c=[];{let e=l;for(let t=0;t!t(e)&&!r(e)))],u),l=[];{const e=[];let t=[];for(let r=0;re.map((e=>N(...e.tokens()))).join(""))).join(",")}function calcFromComponentValues(e,n){const t=tokenizeGlobals(null==n?void 0:n.globals);return c(e,(e=>{if(i(e)){const r=Z.get(toLowerCaseAZ(e.getName()));if(r){const u=patchCalcResult(solve(r(e,t)),n);if(-1!==u)return u}}}))}const z=new Set(Z.keys());export{calc,calcFromComponentValues,z as mathFunctionNames}; diff --git a/node_modules/@csstools/css-calc/dist/operation/addition.d.ts b/node_modules/@csstools/css-calc/dist/operation/addition.d.ts new file mode 100644 index 00000000..70e02cfd --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/operation/addition.d.ts @@ -0,0 +1,2 @@ +import { TokenNode } from '@csstools/css-parser-algorithms'; +export declare function addition(inputs: Array): TokenNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/operation/division.d.ts b/node_modules/@csstools/css-calc/dist/operation/division.d.ts new file mode 100644 index 00000000..5d6b01fd --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/operation/division.d.ts @@ -0,0 +1,2 @@ +import { TokenNode } from '@csstools/css-parser-algorithms'; +export declare function division(inputs: Array): TokenNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/operation/multiplication.d.ts b/node_modules/@csstools/css-calc/dist/operation/multiplication.d.ts new file mode 100644 index 00000000..d48978d6 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/operation/multiplication.d.ts @@ -0,0 +1,2 @@ +import { TokenNode } from '@csstools/css-parser-algorithms'; +export declare function multiplication(inputs: Array): TokenNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/operation/operation.d.ts b/node_modules/@csstools/css-calc/dist/operation/operation.d.ts new file mode 100644 index 00000000..aed9e0e3 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/operation/operation.d.ts @@ -0,0 +1,2 @@ +import type { TokenNode } from '@csstools/css-parser-algorithms'; +export type Operation = (inputs: Array) => TokenNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/operation/subtraction.d.ts b/node_modules/@csstools/css-calc/dist/operation/subtraction.d.ts new file mode 100644 index 00000000..0ac3f6be --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/operation/subtraction.d.ts @@ -0,0 +1,2 @@ +import { TokenNode } from '@csstools/css-parser-algorithms'; +export declare function subtraction(inputs: Array): TokenNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/operation/unary.d.ts b/node_modules/@csstools/css-calc/dist/operation/unary.d.ts new file mode 100644 index 00000000..b27463ec --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/operation/unary.d.ts @@ -0,0 +1,2 @@ +import type { TokenNode } from '@csstools/css-parser-algorithms'; +export declare function unary(inputs: Array): TokenNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/options.d.ts b/node_modules/@csstools/css-calc/dist/options.d.ts new file mode 100644 index 00000000..f24a05fd --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/options.d.ts @@ -0,0 +1,23 @@ +import { GlobalsWithStrings } from './util/globals'; +export type conversionOptions = { + /** + * Pass global values as a map of key value pairs. + */ + globals?: GlobalsWithStrings; + /** + * The default precision is fairly high. + * It aims to be high enough to make rounding unnoticeable in the browser. + * You can set it to a lower number to suite your needs. + */ + precision?: number; + /** + * By default this package will try to preserve units. + * The heuristic to do this is very simplistic. + * We take the first unit we encounter and try to convert other dimensions to that unit. + * + * This better matches what users expect from a CSS dev tool. + * + * If you want to have outputs that are closes to CSS serialized values you can set `true`. + */ + toCanonicalUnits?: boolean; +}; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/canonical.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/canonical.d.ts new file mode 100644 index 00000000..1c593d50 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/canonical.d.ts @@ -0,0 +1 @@ +export declare const canonicalUnits: Record; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/cm.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/cm.d.ts new file mode 100644 index 00000000..030a42d8 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/cm.d.ts @@ -0,0 +1 @@ +export declare const convert_cm: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/deg.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/deg.d.ts new file mode 100644 index 00000000..7e0fb6c0 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/deg.d.ts @@ -0,0 +1 @@ +export declare const convert_deg: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/grad.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/grad.d.ts new file mode 100644 index 00000000..9423ffcf --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/grad.d.ts @@ -0,0 +1 @@ +export declare const convert_grad: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/hz.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/hz.d.ts new file mode 100644 index 00000000..9957a80e --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/hz.d.ts @@ -0,0 +1 @@ +export declare const convert_hz: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/in.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/in.d.ts new file mode 100644 index 00000000..5bf4ed81 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/in.d.ts @@ -0,0 +1 @@ +export declare const convert_in: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/index.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/index.d.ts new file mode 100644 index 00000000..e9a5468b --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/index.d.ts @@ -0,0 +1,4 @@ +import type { CSSToken } from '@csstools/css-tokenizer'; +export declare const conversions: Map number>>; +export declare function convertUnit(a: CSSToken, b: T): T; +export declare function toCanonicalUnit(a: T): T; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/khz.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/khz.d.ts new file mode 100644 index 00000000..c1df1229 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/khz.d.ts @@ -0,0 +1 @@ +export declare const convert_khz: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/mm.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/mm.d.ts new file mode 100644 index 00000000..570b2447 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/mm.d.ts @@ -0,0 +1 @@ +export declare const convert_mm: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/ms.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/ms.d.ts new file mode 100644 index 00000000..68d9231d --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/ms.d.ts @@ -0,0 +1 @@ +export declare const convert_ms: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/pc.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/pc.d.ts new file mode 100644 index 00000000..d13b7da9 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/pc.d.ts @@ -0,0 +1 @@ +export declare const convert_pc: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/pt.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/pt.d.ts new file mode 100644 index 00000000..09407c95 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/pt.d.ts @@ -0,0 +1 @@ +export declare const convert_pt: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/px.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/px.d.ts new file mode 100644 index 00000000..641ea77f --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/px.d.ts @@ -0,0 +1 @@ +export declare const convert_px: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/q.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/q.d.ts new file mode 100644 index 00000000..5862e51d --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/q.d.ts @@ -0,0 +1 @@ +export declare const convert_q: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/rad.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/rad.d.ts new file mode 100644 index 00000000..70faf8e9 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/rad.d.ts @@ -0,0 +1 @@ +export declare const convert_rad: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/s.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/s.d.ts new file mode 100644 index 00000000..8240e359 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/s.d.ts @@ -0,0 +1 @@ +export declare const convert_s: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/unit-conversions/turn.d.ts b/node_modules/@csstools/css-calc/dist/unit-conversions/turn.d.ts new file mode 100644 index 00000000..e721ff8e --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/unit-conversions/turn.d.ts @@ -0,0 +1 @@ +export declare const convert_turn: Map number>; diff --git a/node_modules/@csstools/css-calc/dist/util/canonical-unit.d.ts b/node_modules/@csstools/css-calc/dist/util/canonical-unit.d.ts new file mode 100644 index 00000000..49f5e457 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/util/canonical-unit.d.ts @@ -0,0 +1,2 @@ +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function patchCanonicalUnit(x: TokenNode | FunctionNode | -1): TokenNode | FunctionNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/util/globals.d.ts b/node_modules/@csstools/css-calc/dist/util/globals.d.ts new file mode 100644 index 00000000..c9e43b74 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/util/globals.d.ts @@ -0,0 +1,4 @@ +import type { TokenDimension, TokenNumber, TokenPercentage } from '@csstools/css-tokenizer'; +export type Globals = Map; +export type GlobalsWithStrings = Map; +export declare function tokenizeGlobals(x: GlobalsWithStrings | undefined): Globals; diff --git a/node_modules/@csstools/css-calc/dist/util/infinity.d.ts b/node_modules/@csstools/css-calc/dist/util/infinity.d.ts new file mode 100644 index 00000000..588d3e13 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/util/infinity.d.ts @@ -0,0 +1,2 @@ +import { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function patchInfinity(x: TokenNode | FunctionNode | -1): TokenNode | FunctionNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/util/kind-of-number.d.ts b/node_modules/@csstools/css-calc/dist/util/kind-of-number.d.ts new file mode 100644 index 00000000..dac78981 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/util/kind-of-number.d.ts @@ -0,0 +1,5 @@ +import { CSSToken, TokenDimension, TokenNumber, TokenPercentage } from '@csstools/css-tokenizer'; +export declare function isNumeric(x: CSSToken): x is TokenDimension | TokenPercentage | TokenNumber; +export declare function isDimensionOrNumber(x: CSSToken): x is TokenDimension | TokenNumber; +export declare function arrayOfSameNumeric(x: Array): x is Array; +export declare function twoOfSameNumeric(x: T, y: CSSToken): y is T; diff --git a/node_modules/@csstools/css-calc/dist/util/minus-zero.d.ts b/node_modules/@csstools/css-calc/dist/util/minus-zero.d.ts new file mode 100644 index 00000000..67b9e553 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/util/minus-zero.d.ts @@ -0,0 +1,2 @@ +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function patchMinusZero(x: TokenNode | FunctionNode | -1): TokenNode | FunctionNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/util/nan.d.ts b/node_modules/@csstools/css-calc/dist/util/nan.d.ts new file mode 100644 index 00000000..a7e03354 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/util/nan.d.ts @@ -0,0 +1,2 @@ +import { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function patchNaN(x: TokenNode | FunctionNode | -1): TokenNode | FunctionNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/util/patch-result.d.ts b/node_modules/@csstools/css-calc/dist/util/patch-result.d.ts new file mode 100644 index 00000000..03330b3e --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/util/patch-result.d.ts @@ -0,0 +1,3 @@ +import { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +import { conversionOptions } from '../options'; +export declare function patchCalcResult(x: TokenNode | FunctionNode | -1, options?: conversionOptions): TokenNode | FunctionNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/util/precision.d.ts b/node_modules/@csstools/css-calc/dist/util/precision.d.ts new file mode 100644 index 00000000..424909c1 --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/util/precision.d.ts @@ -0,0 +1,2 @@ +import type { FunctionNode, TokenNode } from '@csstools/css-parser-algorithms'; +export declare function patchPrecision(x: TokenNode | FunctionNode | -1, precision?: number): TokenNode | FunctionNode | -1; diff --git a/node_modules/@csstools/css-calc/dist/util/to-lower-case-a-z.d.ts b/node_modules/@csstools/css-calc/dist/util/to-lower-case-a-z.d.ts new file mode 100644 index 00000000..396b252e --- /dev/null +++ b/node_modules/@csstools/css-calc/dist/util/to-lower-case-a-z.d.ts @@ -0,0 +1 @@ +export declare function toLowerCaseAZ(x: string): string; diff --git a/node_modules/@csstools/css-calc/package.json b/node_modules/@csstools/css-calc/package.json new file mode 100644 index 00000000..3744fe1e --- /dev/null +++ b/node_modules/@csstools/css-calc/package.json @@ -0,0 +1,72 @@ +{ + "name": "@csstools/css-calc", + "description": "Solve CSS math expressions", + "version": "1.1.4", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "stryker": "stryker run --logLevel error", + "test": "node ./test/test.mjs && node ./test/_import.mjs && node ./test/_require.cjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "packages/css-calc" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "calc", + "css" + ], + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/css-color-parser/CHANGELOG.md b/node_modules/@csstools/css-color-parser/CHANGELOG.md new file mode 100644 index 00000000..e0536567 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/CHANGELOG.md @@ -0,0 +1,98 @@ +# Changes to CSS Color Parser + +### 1.4.0 + +_October 9, 2023_ + +- Add utility to determine if a color is in the Display P3 gamut. + +### 1.3.3 + +_October 2, 2023_ + +- Fix interpolation of `hue` when either or both components are `none` and `longer` is the interpolation method. + +### 1.3.2 + +_September 24, 2023_ + +- Small performance improvements +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#114) (patch) + +### 1.3.1 + +_September 2, 2023_ + +- Fix clipping of values in `hsl`, `hwb` and `rgb` color notations. +- Updated [`@csstools/color-helpers`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers/CHANGELOG.md#302) (patch) + +### 1.3.0 + +_August 28, 2023_ + +- Add a `serializeOKLCH` function. +- Always convert to the target color space, even when the input color is already in that specific color space. +- Correctly apply the hue interpolation method when either angle is missing. +- Updated [`@csstools/color-helpers`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers) to [`3.0.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers/CHANGELOG.md#301) (patch) + +### 1.2.3 + +_July 24, 2023_ + +- Allow number values in `hwb`. +- Fix value calculation for `s`, `l` (`hsl`) and `w`, `b` (`hwb`) components in relative color syntax. +- `a` and `b` components in `lab` and `oklab` are analogous. +- Powerless components are limited to achromatic colors and only affect `hue` unless otherwise specified. +- Fix value normalization. +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#113) (patch) + +### 1.2.2 + +_July 3, 2023_ + +- Updated [`@csstools/color-helpers`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers) to [`3.0.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers/CHANGELOG.md#300) (major) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#112) (patch) + +### 1.2.1 + +_June 14, 2023_ + +- Fix value calculation for `hue` components in relative color syntax. + +### 1.2.0 + +_May 19, 2023_ + +- Add support for relative color syntax. +- Updated `@csstools/color-helpers` to `2.1.0` (minor) + +### 1.1.2 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/css-calc` to `1.1.1` (patch) + +### 1.1.1 + +_April 10, 2023_ + +- Improve the detection of math function in color notations. + +### 1.1.0 + +_March 28, 2023_ + +- Add a flag to `serializeP3` and `serializeRGB` to skip gamut mapping. + +### 1.0.0 + +_March 25, 2023_ + +- Initial version diff --git a/node_modules/@csstools/css-color-parser/LICENSE.md b/node_modules/@csstools/css-color-parser/LICENSE.md new file mode 100644 index 00000000..af5411fa --- /dev/null +++ b/node_modules/@csstools/css-color-parser/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2022 Romain Menke, Antonio Laguna + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@csstools/css-color-parser/README.md b/node_modules/@csstools/css-color-parser/README.md new file mode 100644 index 00000000..da0bd404 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/README.md @@ -0,0 +1,37 @@ +# CSS Color Parser + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +## Usage + +Add [CSS Color Parser] to your project: + +```bash +npm install @csstools/css-color-parser @csstools/css-parser-algorithms @csstools/css-tokenizer --save-dev +``` + +```ts +import { color } from '@csstools/css-color-parser'; +import { isFunctionNode, parseComponentValue } from '@csstools/css-parser-algorithms'; +import { serializeRGB } from '@csstools/css-color-parser'; +import { tokenize } from '@csstools/css-tokenizer'; + +// color() expects a parsed component value. +const hwbComponentValue = parseComponentValue(tokenize({ css: 'hwb(10deg 10% 20%)' })); +const colorData = color(hwbComponentValue); +if (colorData) { + console.log(colorData); + + // serializeRGB() returns a component value. + const rgbComponentValue = serializeRGB(colorData); + console.log(rgbComponentValue.toString()); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/css-color-parser + +[CSS Color Parser]: https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser diff --git a/node_modules/@csstools/css-color-parser/dist/color-data.d.ts b/node_modules/@csstools/css-color-parser/dist/color-data.d.ts new file mode 100644 index 00000000..9fa6a335 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/color-data.d.ts @@ -0,0 +1,34 @@ +import type { Color } from '@csstools/color-helpers'; +import type { ComponentValue } from '@csstools/css-parser-algorithms'; +import { ColorNotation } from './color-notation'; +import { TokenNumber } from '@csstools/css-tokenizer'; +export type ColorData = { + colorNotation: ColorNotation; + channels: Color; + alpha: number | ComponentValue; + syntaxFlags: Set; +}; +export declare enum SyntaxFlag { + ColorKeyword = "color-keyword", + HasAlpha = "has-alpha", + HasDimensionValues = "has-dimension-values", + HasNoneKeywords = "has-none-keywords", + HasNumberValues = "has-number-values", + HasPercentageAlpha = "has-percentage-alpha", + HasPercentageValues = "has-percentage-values", + HasVariableAlpha = "has-variable-alpha", + Hex = "hex", + LegacyHSL = "legacy-hsl", + LegacyRGB = "legacy-rgb", + NamedColor = "named-color", + RelativeColorSyntax = "relative-color-syntax", + ColorMix = "color-mix" +} +export declare function colorData_to_XYZ_D50(colorData: ColorData): ColorData; +export declare function colorDataTo(colorData: ColorData, toNotation: ColorNotation): ColorData; +export declare function convertPowerlessComponentsToMissingComponents(a: Color, colorNotation: ColorNotation): Color; +export declare function convertPowerlessComponentsToZeroValuesForDisplay(a: Color, colorNotation: ColorNotation): Color; +export declare function normalizeRelativeColorDataChannels(x: ColorData): Map; +export declare function noneToZeroInRelativeColorDataChannels(x: Map): Map; +export declare function colorDataFitsRGB_Gamut(x: ColorData): boolean; +export declare function colorDataFitsDisplayP3_Gamut(x: ColorData): boolean; diff --git a/node_modules/@csstools/css-color-parser/dist/color-notation.d.ts b/node_modules/@csstools/css-color-parser/dist/color-notation.d.ts new file mode 100644 index 00000000..242ebfb8 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/color-notation.d.ts @@ -0,0 +1,18 @@ +export declare enum ColorNotation { + A98_RGB = "a98-rgb", + Display_P3 = "display-p3", + HEX = "hex", + HSL = "hsl", + HWB = "hwb", + LCH = "lch", + Lab = "lab", + Linear_sRGB = "srgb-linear", + OKLCH = "oklch", + OKLab = "oklab", + ProPhoto_RGB = "prophoto-rgb", + RGB = "rgb", + sRGB = "srgb", + Rec2020 = "rec2020", + XYZ_D50 = "xyz-d50", + XYZ_D65 = "xyz-d65" +} diff --git a/node_modules/@csstools/css-color-parser/dist/color-parser.d.ts b/node_modules/@csstools/css-color-parser/dist/color-parser.d.ts new file mode 100644 index 00000000..325c0657 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/color-parser.d.ts @@ -0,0 +1,3 @@ +import type { ColorData } from './color-data'; +import type { ComponentValue } from '@csstools/css-parser-algorithms'; +export type ColorParser = (x: ComponentValue) => ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/color-keyword.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/color-keyword.d.ts new file mode 100644 index 00000000..6652208f --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/color-keyword.d.ts @@ -0,0 +1,2 @@ +import type { ColorData } from '../color-data'; +export declare function colorKeyword(name: string): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/color-mix.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/color-mix.d.ts new file mode 100644 index 00000000..8fc6aeda --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/color-mix.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import type { ColorParser } from '../color-parser'; +import type { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function colorMix(colorMixNode: FunctionNode, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/color-normalize-channel-values.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/color-normalize-channel-values.d.ts new file mode 100644 index 00000000..51b6624d --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/color-normalize-channel-values.d.ts @@ -0,0 +1,3 @@ +import type { ColorData } from '../color-data'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare function normalize_Color_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/color.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/color.d.ts new file mode 100644 index 00000000..34b95e2c --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/color.d.ts @@ -0,0 +1,4 @@ +import { ColorData } from '../color-data'; +import type { ColorParser } from '../color-parser'; +import { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function color(colorFunctionNode: FunctionNode, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/hex.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/hex.d.ts new file mode 100644 index 00000000..8b66473e --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/hex.d.ts @@ -0,0 +1,3 @@ +import type { ColorData } from '../color-data'; +import type { TokenHash } from '@csstools/css-tokenizer'; +export declare function hex(hexToken: TokenHash): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/hsl-normalize-channel-values.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/hsl-normalize-channel-values.d.ts new file mode 100644 index 00000000..068bcae7 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/hsl-normalize-channel-values.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare function normalize_legacy_HSL_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; +export declare function normalize_modern_HSL_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/hsl.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/hsl.d.ts new file mode 100644 index 00000000..919acdda --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/hsl.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import type { ColorParser } from '../color-parser'; +import { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function hsl(hslNode: FunctionNode, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/hue-normalize-channel-value.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/hue-normalize-channel-value.d.ts new file mode 100644 index 00000000..41a96c64 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/hue-normalize-channel-value.d.ts @@ -0,0 +1,3 @@ +import type { TokenNumber } from '@csstools/css-tokenizer'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare function normalizeHue(token: CSSToken): TokenNumber | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/hwb-normalize-channel-values.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/hwb-normalize-channel-values.d.ts new file mode 100644 index 00000000..81da6aac --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/hwb-normalize-channel-values.d.ts @@ -0,0 +1,3 @@ +import type { ColorData } from '../color-data'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare function normalize_HWB_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/hwb.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/hwb.d.ts new file mode 100644 index 00000000..1ddffe98 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/hwb.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import type { ColorParser } from '../color-parser'; +import type { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function hwb(hwbNode: FunctionNode, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/lab-normalize-channel-values.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/lab-normalize-channel-values.d.ts new file mode 100644 index 00000000..73587504 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/lab-normalize-channel-values.d.ts @@ -0,0 +1,3 @@ +import type { ColorData } from '../color-data'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare function normalize_Lab_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/lab.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/lab.d.ts new file mode 100644 index 00000000..fbbf35aa --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/lab.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import type { ColorParser } from '../color-parser'; +import type { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function lab(labNode: FunctionNode, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/lch-normalize-channel-values.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/lch-normalize-channel-values.d.ts new file mode 100644 index 00000000..a2227e44 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/lch-normalize-channel-values.d.ts @@ -0,0 +1,3 @@ +import type { ColorData } from '../color-data'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare function normalize_LCH_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/lch.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/lch.d.ts new file mode 100644 index 00000000..91788903 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/lch.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import type { ColorParser } from '../color-parser'; +import type { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function lch(lchNode: FunctionNode, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/named-color.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/named-color.d.ts new file mode 100644 index 00000000..376a093a --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/named-color.d.ts @@ -0,0 +1,2 @@ +import type { ColorData } from '../color-data'; +export declare function namedColor(name: string): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/normalize-channel-values.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/normalize-channel-values.d.ts new file mode 100644 index 00000000..c32172fd --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/normalize-channel-values.d.ts @@ -0,0 +1,3 @@ +import type { ColorData } from '../color-data'; +import { CSSToken } from '@csstools/css-tokenizer'; +export type normalizeChannelValuesFn = (token: CSSToken, index: number, colorData: ColorData) => CSSToken | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/normalize.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/normalize.d.ts new file mode 100644 index 00000000..0b57af5e --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/normalize.d.ts @@ -0,0 +1 @@ +export declare function normalize(x: number, scale: number, min: number, max: number): number; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/oklab-normalize-channel-values.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/oklab-normalize-channel-values.d.ts new file mode 100644 index 00000000..97b82792 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/oklab-normalize-channel-values.d.ts @@ -0,0 +1,3 @@ +import type { ColorData } from '../color-data'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare function normalize_OKLab_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/oklab.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/oklab.d.ts new file mode 100644 index 00000000..96e03847 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/oklab.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import type { ColorParser } from '../color-parser'; +import type { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function oklab(oklabNode: FunctionNode, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/oklch-normalize-channel-values.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/oklch-normalize-channel-values.d.ts new file mode 100644 index 00000000..afd514b3 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/oklch-normalize-channel-values.d.ts @@ -0,0 +1,3 @@ +import type { ColorData } from '../color-data'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare function normalize_OKLCH_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/oklch.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/oklch.d.ts new file mode 100644 index 00000000..d70197e7 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/oklch.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import type { ColorParser } from '../color-parser'; +import type { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function oklch(oklchNode: FunctionNode, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/rgb-normalize-channel-values.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/rgb-normalize-channel-values.d.ts new file mode 100644 index 00000000..eb3e89bc --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/rgb-normalize-channel-values.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare function normalize_legacy_sRGB_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; +export declare function normalize_modern_sRGB_ChannelValues(token: CSSToken, index: number, colorData: ColorData): CSSToken | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/rgb.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/rgb.d.ts new file mode 100644 index 00000000..c4aacca1 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/rgb.d.ts @@ -0,0 +1,4 @@ +import type { ColorData } from '../color-data'; +import type { ColorParser } from '../color-parser'; +import { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function rgb(rgbNode: FunctionNode, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/three-channel-legacy-syntax.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/three-channel-legacy-syntax.d.ts new file mode 100644 index 00000000..5bfe8c38 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/three-channel-legacy-syntax.d.ts @@ -0,0 +1,6 @@ +import type { ColorData } from '../color-data'; +import type { FunctionNode } from '@csstools/css-parser-algorithms'; +import { ColorNotation } from '../color-notation'; +import { SyntaxFlag } from '../color-data'; +import { normalizeChannelValuesFn } from './normalize-channel-values'; +export declare function threeChannelLegacySyntax(colorFunctionNode: FunctionNode, normalizeChannelValues: normalizeChannelValuesFn, colorNotation: ColorNotation, syntaxFlags: Array): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/functions/three-channel-space-separated.d.ts b/node_modules/@csstools/css-color-parser/dist/functions/three-channel-space-separated.d.ts new file mode 100644 index 00000000..8fb7e41b --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/functions/three-channel-space-separated.d.ts @@ -0,0 +1,7 @@ +import { ColorData } from '../color-data'; +import { FunctionNode } from '@csstools/css-parser-algorithms'; +import { ColorNotation } from '../color-notation'; +import { SyntaxFlag } from '../color-data'; +import { normalizeChannelValuesFn } from './normalize-channel-values'; +import { ColorParser } from '../color-parser'; +export declare function threeChannelSpaceSeparated(colorFunctionNode: FunctionNode, normalizeChannelValues: normalizeChannelValuesFn, colorNotation: ColorNotation, syntaxFlags: Array, colorParser: ColorParser): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/gamut-mapping/p3.d.ts b/node_modules/@csstools/css-color-parser/dist/gamut-mapping/p3.d.ts new file mode 100644 index 00000000..d0130b52 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/gamut-mapping/p3.d.ts @@ -0,0 +1,2 @@ +import { Color } from '@csstools/color-helpers'; +export declare function XYZ_D50_to_P3_Gamut(color: Color): Color; diff --git a/node_modules/@csstools/css-color-parser/dist/gamut-mapping/srgb.d.ts b/node_modules/@csstools/css-color-parser/dist/gamut-mapping/srgb.d.ts new file mode 100644 index 00000000..87b3ad80 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/gamut-mapping/srgb.d.ts @@ -0,0 +1,2 @@ +import { Color } from '@csstools/color-helpers'; +export declare function XYZ_D50_to_sRGB_Gamut(color: Color): Color; diff --git a/node_modules/@csstools/css-color-parser/dist/index.cjs b/node_modules/@csstools/css-color-parser/dist/index.cjs new file mode 100644 index 00000000..8cd9b2be --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e,o,n=require("@csstools/css-tokenizer"),a=require("@csstools/color-helpers"),t=require("@csstools/css-parser-algorithms"),r=require("@csstools/css-calc");function colorData_to_XYZ_D50(e){switch(e.colorNotation){case exports.ColorNotation.HEX:case exports.ColorNotation.RGB:case exports.ColorNotation.sRGB:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.sRGB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.Linear_sRGB:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.lin_sRGB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.Display_P3:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.P3_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.Rec2020:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.rec_2020_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.A98_RGB:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.a98_RGB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.ProPhoto_RGB:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.ProPhoto_RGB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.HSL:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.HSL_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.HWB:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.HWB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.Lab:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.Lab_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.OKLab:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.OKLab_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.LCH:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.LCH_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.OKLCH:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.OKLCH_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.XYZ_D50:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.XYZ_D50_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case exports.ColorNotation.XYZ_D65:return{...e,colorNotation:exports.ColorNotation.XYZ_D50,channels:a.xyz.XYZ_D65_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};default:throw new Error("Unsupported color notation")}}exports.ColorNotation=void 0,(e=exports.ColorNotation||(exports.ColorNotation={})).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",exports.SyntaxFlag=void 0,(o=exports.SyntaxFlag||(exports.SyntaxFlag={})).ColorKeyword="color-keyword",o.HasAlpha="has-alpha",o.HasDimensionValues="has-dimension-values",o.HasNoneKeywords="has-none-keywords",o.HasNumberValues="has-number-values",o.HasPercentageAlpha="has-percentage-alpha",o.HasPercentageValues="has-percentage-values",o.HasVariableAlpha="has-variable-alpha",o.Hex="hex",o.LegacyHSL="legacy-hsl",o.LegacyRGB="legacy-rgb",o.NamedColor="named-color",o.RelativeColorSyntax="relative-color-syntax",o.ColorMix="color-mix";const s=new Set([exports.ColorNotation.A98_RGB,exports.ColorNotation.Display_P3,exports.ColorNotation.HEX,exports.ColorNotation.Linear_sRGB,exports.ColorNotation.ProPhoto_RGB,exports.ColorNotation.RGB,exports.ColorNotation.sRGB,exports.ColorNotation.Rec2020,exports.ColorNotation.XYZ_D50,exports.ColorNotation.XYZ_D65]);function colorDataTo(e,o){const n={...e};if(e.colorNotation!==o){const e=colorData_to_XYZ_D50(n);switch(o){case exports.ColorNotation.HEX:case exports.ColorNotation.RGB:n.colorNotation=exports.ColorNotation.RGB,n.channels=a.xyz.XYZ_D50_to_sRGB(e.channels);break;case exports.ColorNotation.sRGB:n.colorNotation=exports.ColorNotation.sRGB,n.channels=a.xyz.XYZ_D50_to_sRGB(e.channels);break;case exports.ColorNotation.Linear_sRGB:n.colorNotation=exports.ColorNotation.Linear_sRGB,n.channels=a.xyz.XYZ_D50_to_lin_sRGB(e.channels);break;case exports.ColorNotation.Display_P3:n.colorNotation=exports.ColorNotation.Display_P3,n.channels=a.xyz.XYZ_D50_to_P3(e.channels);break;case exports.ColorNotation.Rec2020:n.colorNotation=exports.ColorNotation.Rec2020,n.channels=a.xyz.XYZ_D50_to_rec_2020(e.channels);break;case exports.ColorNotation.ProPhoto_RGB:n.colorNotation=exports.ColorNotation.ProPhoto_RGB,n.channels=a.xyz.XYZ_D50_to_ProPhoto(e.channels);break;case exports.ColorNotation.A98_RGB:n.colorNotation=exports.ColorNotation.A98_RGB,n.channels=a.xyz.XYZ_D50_to_a98_RGB(e.channels);break;case exports.ColorNotation.HSL:n.colorNotation=exports.ColorNotation.HSL,n.channels=a.xyz.XYZ_D50_to_HSL(e.channels);break;case exports.ColorNotation.HWB:n.colorNotation=exports.ColorNotation.HWB,n.channels=a.xyz.XYZ_D50_to_HWB(e.channels);break;case exports.ColorNotation.Lab:n.colorNotation=exports.ColorNotation.Lab,n.channels=a.xyz.XYZ_D50_to_Lab(e.channels);break;case exports.ColorNotation.LCH:n.colorNotation=exports.ColorNotation.LCH,n.channels=a.xyz.XYZ_D50_to_LCH(e.channels);break;case exports.ColorNotation.OKLCH:n.colorNotation=exports.ColorNotation.OKLCH,n.channels=a.xyz.XYZ_D50_to_OKLCH(e.channels);break;case exports.ColorNotation.OKLab:n.colorNotation=exports.ColorNotation.OKLab,n.channels=a.xyz.XYZ_D50_to_OKLab(e.channels);break;case exports.ColorNotation.XYZ_D50:n.colorNotation=exports.ColorNotation.XYZ_D50,n.channels=a.xyz.XYZ_D50_to_XYZ_D50(e.channels);break;case exports.ColorNotation.XYZ_D65:n.colorNotation=exports.ColorNotation.XYZ_D65,n.channels=a.xyz.XYZ_D50_to_XYZ_D65(e.channels);break;default:throw new Error("Unsupported color notation")}}else n.channels=e.channels.map((e=>Number.isNaN(e)?0:e));if(o===e.colorNotation)n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[0,1,2]);else if(s.has(o)&&s.has(e.colorNotation))n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[0,1,2]);else switch(o){case exports.ColorNotation.HSL:switch(e.colorNotation){case exports.ColorNotation.HWB:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[0]);break;case exports.ColorNotation.Lab:case exports.ColorNotation.OKLab:n.channels=carryForwardMissingComponents(e.channels,[2],n.channels,[0]);break;case exports.ColorNotation.LCH:case exports.ColorNotation.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[2,1,0])}break;case exports.ColorNotation.HWB:switch(e.colorNotation){case exports.ColorNotation.HSL:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[0]);break;case exports.ColorNotation.LCH:case exports.ColorNotation.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[2])}break;case exports.ColorNotation.Lab:case exports.ColorNotation.OKLab:switch(e.colorNotation){case exports.ColorNotation.HSL:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[2]);break;case exports.ColorNotation.Lab:case exports.ColorNotation.OKLab:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[0,1,2]);break;case exports.ColorNotation.LCH:case exports.ColorNotation.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[0])}break;case exports.ColorNotation.LCH:case exports.ColorNotation.OKLCH:switch(e.colorNotation){case exports.ColorNotation.HSL:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[2,1,0]);break;case exports.ColorNotation.HWB:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[2]);break;case exports.ColorNotation.Lab:case exports.ColorNotation.OKLab:n.channels=carryForwardMissingComponents(e.channels,[0],n.channels,[0]);break;case exports.ColorNotation.LCH:case exports.ColorNotation.OKLCH:n.channels=carryForwardMissingComponents(e.channels,[0,1,2],n.channels,[0,1,2])}}return n.channels=convertPowerlessComponentsToMissingComponents(n.channels,o),n}function convertPowerlessComponentsToMissingComponents(e,o){const n=[...e];switch(o){case exports.ColorNotation.HSL:reducePrecision(n[1],4)<=0&&(n[0]=NaN);break;case exports.ColorNotation.HWB:Math.max(0,reducePrecision(n[1],4))+Math.max(0,reducePrecision(n[2],4))>=100&&(n[0]=NaN);break;case exports.ColorNotation.LCH:reducePrecision(n[1],4)<=0&&(n[2]=NaN);break;case exports.ColorNotation.OKLCH:reducePrecision(n[1],6)<=0&&(n[2]=NaN)}return n}function convertPowerlessComponentsToZeroValuesForDisplay(e,o){const n=[...e];switch(o){case exports.ColorNotation.HSL:(reducePrecision(n[2])<=0||reducePrecision(n[2])>=100)&&(n[0]=NaN,n[1]=NaN),reducePrecision(n[1])<=0&&(n[0]=NaN);break;case exports.ColorNotation.HWB:Math.max(0,reducePrecision(n[1]))+Math.max(0,reducePrecision(n[2]))>=100&&(n[0]=NaN);break;case exports.ColorNotation.Lab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=NaN,n[2]=NaN);break;case exports.ColorNotation.LCH:reducePrecision(n[1])<=0&&(n[2]=NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=NaN,n[2]=NaN);break;case exports.ColorNotation.OKLab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=NaN,n[2]=NaN);break;case exports.ColorNotation.OKLCH:reducePrecision(n[1])<=0&&(n[2]=NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=NaN,n[2]=NaN)}return n}function carryForwardMissingComponents(e,o,n,a){const t=[...n];for(const n of o)Number.isNaN(e[o[n]])&&(t[a[n]]=NaN);return t}function normalizeRelativeColorDataChannels(e){const o=new Map;switch(e.colorNotation){case exports.ColorNotation.RGB:case exports.ColorNotation.HEX:o.set("r",dummyNumberToken(255*e.channels[0])),o.set("g",dummyNumberToken(255*e.channels[1])),o.set("b",dummyNumberToken(255*e.channels[2])),"number"==typeof e.alpha&&o.set("alpha",dummyNumberToken(e.alpha));break;case exports.ColorNotation.HSL:o.set("h",dummyNumberToken(e.channels[0])),o.set("s",dummyNumberToken(e.channels[1])),o.set("l",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&o.set("alpha",dummyNumberToken(e.alpha));break;case exports.ColorNotation.HWB:o.set("h",dummyNumberToken(e.channels[0])),o.set("w",dummyNumberToken(e.channels[1])),o.set("b",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&o.set("alpha",dummyNumberToken(e.alpha));break;case exports.ColorNotation.Lab:case exports.ColorNotation.OKLab:o.set("l",dummyNumberToken(e.channels[0])),o.set("a",dummyNumberToken(e.channels[1])),o.set("b",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&o.set("alpha",dummyNumberToken(e.alpha));break;case exports.ColorNotation.LCH:case exports.ColorNotation.OKLCH:o.set("l",dummyNumberToken(e.channels[0])),o.set("c",dummyNumberToken(e.channels[1])),o.set("h",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&o.set("alpha",dummyNumberToken(e.alpha));break;case exports.ColorNotation.sRGB:case exports.ColorNotation.A98_RGB:case exports.ColorNotation.Display_P3:case exports.ColorNotation.Rec2020:case exports.ColorNotation.Linear_sRGB:case exports.ColorNotation.ProPhoto_RGB:o.set("r",dummyNumberToken(e.channels[0])),o.set("g",dummyNumberToken(e.channels[1])),o.set("b",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&o.set("alpha",dummyNumberToken(e.alpha));break;case exports.ColorNotation.XYZ_D50:case exports.ColorNotation.XYZ_D65:o.set("x",dummyNumberToken(e.channels[0])),o.set("y",dummyNumberToken(e.channels[1])),o.set("z",dummyNumberToken(e.channels[2])),"number"==typeof e.alpha&&o.set("alpha",dummyNumberToken(e.alpha))}return o}function noneToZeroInRelativeColorDataChannels(e){const o=new Map(e);for(const[n,a]of e)Number.isNaN(a[4].value)&&o.set(n,dummyNumberToken(0));return o}function dummyNumberToken(e){return[n.TokenType.Number,e.toString(),-1,-1,{value:e,type:n.NumberType.Number}]}function reducePrecision(e,o=7){if(Number.isNaN(e))return 0;const n=Math.pow(10,o);return Math.round(e*n)/n}function normalize(e,o,n,a){return Math.min(Math.max(e/o,n),a)}const l=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(l,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}function normalize_Color_ChannelValues(e,o,a){if(e[0]===n.TokenType.Ident&&"none"===toLowerCaseAZ(e[4].value))return a.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords),[n.TokenType.Number,"none",e[2],e[3],{value:NaN,type:n.NumberType.Number}];if(e[0]===n.TokenType.Percentage){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);let t=normalize(e[4].value,100,-1/0,1/0);return 3===o&&(t=normalize(e[4].value,100,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);let t=normalize(e[4].value,1,-1/0,1/0);return 3===o&&(t=normalize(e[4].value,1,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}return!1}const i=new Set(["srgb","srgb-linear","display-p3","a98-rgb","prophoto-rgb","rec2020","xyz","xyz-d50","xyz-d65"]);function color$1(e,o){const a=[],s=[],l=[],u=[];let c,p,N=!1,m=!1;const h={colorNotation:exports.ColorNotation.sRGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([])};let y=a;for(let x=0;x=0){i=u.value[4].value;continue}}return!1}if(!l)return!1;a.push({color:l,percentage:i}),l=!1,i=!1}}if(l&&a.push({color:l,percentage:i}),2!==a.length)return!1;let u=a[0].percentage,c=a[1].percentage;return(!1===u||!(u<0||u>100))&&((!1===c||!(c<0||c>100))&&(!1===u&&!1===c?(u=50,c=50):!1!==u&&!1===c?c=100-u:!1===u&&!1!==c&&(u=100-c),(0!==u||0!==c)&&(!1!==u&&!1!==c&&(u+c>100&&(u=u/(u+c)*100,c=c/(u+c)*100),u+c<100&&(s=(u+c)/100,u=u/(u+c)*100,c=c/(u+c)*100),{a:{color:a[0].color,percentage:u},b:{color:a[1].color,percentage:c},alphaMultiplier:s}))))}function colorMixRectangular(e,o){if(!o)return!1;const n=o.a.color,a=o.b.color,t=o.a.percentage/100;let r=n.channels,s=a.channels,l=exports.ColorNotation.RGB,i=n.alpha;if("number"!=typeof i)return!1;let u=a.alpha;if("number"!=typeof u)return!1;switch(i=Number.isNaN(i)?u:i,u=Number.isNaN(u)?i:u,e){case"srgb":l=exports.ColorNotation.RGB;break;case"srgb-linear":l=exports.ColorNotation.Linear_sRGB;break;case"lab":l=exports.ColorNotation.Lab;break;case"oklab":l=exports.ColorNotation.OKLab;break;case"xyz-d50":l=exports.ColorNotation.XYZ_D50;break;case"xyz":case"xyz-d65":l=exports.ColorNotation.XYZ_D65}r=colorDataTo(n,l).channels,s=colorDataTo(a,l).channels,r[0]=fillInMissingComponent(r[0],s[0]),s[0]=fillInMissingComponent(s[0],r[0]),r[1]=fillInMissingComponent(r[1],s[1]),s[1]=fillInMissingComponent(s[1],r[1]),r[2]=fillInMissingComponent(r[2],s[2]),s[2]=fillInMissingComponent(s[2],r[2]),r[0]=premultiply(r[0],i),r[1]=premultiply(r[1],i),r[2]=premultiply(r[2],i),s[0]=premultiply(s[0],u),s[1]=premultiply(s[1],u),s[2]=premultiply(s[2],u);const c=interpolate(i,u,t);return{colorNotation:l,channels:[un_premultiply(interpolate(r[0],s[0],t),c),un_premultiply(interpolate(r[1],s[1],t),c),un_premultiply(interpolate(r[2],s[2],t),c)],alpha:c*o.alphaMultiplier,syntaxFlags:new Set([exports.SyntaxFlag.ColorMix])}}function colorMixPolar(e,o,n){if(!n)return!1;const a=n.a.color,t=n.b.color,r=n.a.percentage/100;let s=a.channels,l=t.channels,i=0,u=0,c=0,p=0,N=0,m=0,h=exports.ColorNotation.RGB,y=a.alpha;if("number"!=typeof y)return!1;let x=t.alpha;if("number"!=typeof x)return!1;switch(y=Number.isNaN(y)?x:y,x=Number.isNaN(x)?y:x,e){case"hsl":h=exports.ColorNotation.HSL;break;case"hwb":h=exports.ColorNotation.HWB;break;case"lch":h=exports.ColorNotation.LCH;break;case"oklch":h=exports.ColorNotation.OKLCH}switch(s=colorDataTo(a,h).channels,l=colorDataTo(t,h).channels,e){case"hsl":case"hwb":i=s[0],u=l[0],c=s[1],p=l[1],N=s[2],m=l[2];break;case"lch":case"oklch":c=s[0],p=l[0],N=s[1],m=l[1],i=s[2],u=l[2]}i=fillInMissingComponent(i,u),Number.isNaN(i)&&(i=0),u=fillInMissingComponent(u,i),Number.isNaN(u)&&(u=0),c=fillInMissingComponent(c,p),p=fillInMissingComponent(p,c),N=fillInMissingComponent(N,m),m=fillInMissingComponent(m,N);const T=u-i;switch(o){case"shorter":T>180?i+=360:T<-180&&(u+=360);break;case"longer":-1800?i+=360:u+=360);break;case"increasing":T<0&&(u+=360);break;case"decreasing":T>0&&(i+=360);break;default:throw new Error("Unknown hue interpolation method")}c=premultiply(c,y),N=premultiply(N,y),p=premultiply(p,x),m=premultiply(m,x);let b=[0,0,0];const C=interpolate(y,x,r);switch(e){case"hsl":case"hwb":b=[interpolate(i,u,r),un_premultiply(interpolate(c,p,r),C),un_premultiply(interpolate(N,m,r),C)];break;case"lch":case"oklch":b=[un_premultiply(interpolate(c,p,r),C),un_premultiply(interpolate(N,m,r),C),interpolate(i,u,r)]}return{colorNotation:h,channels:b,alpha:C*n.alphaMultiplier,syntaxFlags:new Set([exports.SyntaxFlag.ColorMix])}}function fillInMissingComponent(e,o){return Number.isNaN(e)?o:e}function interpolate(e,o,n){return e*n+o*(1-n)}function premultiply(e,o){return Number.isNaN(o)?e:Number.isNaN(e)?NaN:e*o}function un_premultiply(e,o){return 0===o||Number.isNaN(o)?e:Number.isNaN(e)?NaN:e/o}function hex(e){const o=toLowerCaseAZ(e[4].value);if(o.match(/[^a-f0-9]/))return!1;const n={colorNotation:exports.ColorNotation.HEX,channels:[0,0,0],alpha:1,syntaxFlags:new Set([exports.SyntaxFlag.Hex])},a=o.length;if(3===a){const e=o[0],a=o[1],t=o[2];return n.channels=[parseInt(e+e,16)/255,parseInt(a+a,16)/255,parseInt(t+t,16)/255],n}if(6===a){const e=o[0]+o[1],a=o[2]+o[3],t=o[4]+o[5];return n.channels=[parseInt(e,16)/255,parseInt(a,16)/255,parseInt(t,16)/255],n}if(4===a){const e=o[0],a=o[1],t=o[2],r=o[3];return n.channels=[parseInt(e+e,16)/255,parseInt(a+a,16)/255,parseInt(t+t,16)/255],n.alpha=parseInt(r+r,16)/255,n.syntaxFlags.add(exports.SyntaxFlag.HasAlpha),n}if(8===a){const e=o[0]+o[1],a=o[2]+o[3],t=o[4]+o[5],r=o[6]+o[7];return n.channels=[parseInt(e,16)/255,parseInt(a,16)/255,parseInt(t,16)/255],n.alpha=parseInt(r,16)/255,n.syntaxFlags.add(exports.SyntaxFlag.HasAlpha),n}return!1}function normalizeHue(e){if(e[0]===n.TokenType.Number)return e[4].value=e[4].value%360,e[1]=e[4].value.toString(),e;if(e[0]===n.TokenType.Dimension){let o=e[4].value;switch(toLowerCaseAZ(e[4].unit)){case"deg":break;case"rad":o=180*e[4].value/Math.PI;break;case"grad":o=.9*e[4].value;break;case"turn":o=360*e[4].value;break;default:return!1}return o%=360,[n.TokenType.Number,o.toString(),e[2],e[3],{value:o,type:n.NumberType.Number}]}return!1}function normalize_legacy_HSL_ChannelValues(e,o,a){if(0===o){const o=normalizeHue(e);return!1!==o&&(e[0]===n.TokenType.Dimension&&a.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues),o)}if(e[0]===n.TokenType.Percentage){3===o?a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageAlpha):a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);let t=normalize(e[4].value,1,0,100);return 3===o&&(t=normalize(e[4].value,100,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){if(3!==o)return!1;let a=normalize(e[4].value,1,0,100);return 3===o&&(a=normalize(e[4].value,1,0,1)),[n.TokenType.Number,a.toString(),e[2],e[3],{value:a,type:n.NumberType.Number}]}return!1}function normalize_modern_HSL_ChannelValues(e,o,a){if(e[0]===n.TokenType.Ident&&"none"===toLowerCaseAZ(e[4].value))return a.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords),[n.TokenType.Number,"none",e[2],e[3],{value:NaN,type:n.NumberType.Number}];if(0===o){const o=normalizeHue(e);return!1!==o&&(e[0]===n.TokenType.Dimension&&a.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues),o)}if(e[0]===n.TokenType.Percentage){3===o?a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageAlpha):a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);let t=e[4].value;return 3===o&&(t=normalize(e[4].value,100,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);let t=e[4].value;return 3===o&&(t=normalize(e[4].value,1,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}return!1}function threeChannelLegacySyntax(e,o,a,s){const l=[],i=[],u=[],c=[],p={colorNotation:a,channels:[0,0,0],alpha:1,syntaxFlags:new Set(s)};let N=l;for(let o=0;ot.isTokenNode(e)&&e.value[0]===n.TokenType.Comma))){const o=hslCommaSeparated(e);if(!1!==o)return o}{const n=hslSpaceSeparated(e,o);if(!1!==n)return n}return!1}function hslCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_HSL_ChannelValues,exports.ColorNotation.HSL,[exports.SyntaxFlag.LegacyHSL])}function hslSpaceSeparated(e,o){return threeChannelSpaceSeparated(e,normalize_modern_HSL_ChannelValues,exports.ColorNotation.HSL,[],o)}function normalize_HWB_ChannelValues(e,o,a){if(e[0]===n.TokenType.Ident&&"none"===toLowerCaseAZ(e[4].value))return a.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords),[n.TokenType.Number,"none",e[2],e[3],{value:NaN,type:n.NumberType.Number}];if(0===o){const o=normalizeHue(e);return!1!==o&&(e[0]===n.TokenType.Dimension&&a.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues),o)}if(e[0]===n.TokenType.Percentage){3===o?a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageAlpha):a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);let t=e[4].value;return 3===o&&(t=normalize(e[4].value,100,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);let t=e[4].value;return 3===o&&(t=normalize(e[4].value,1,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}return!1}function normalize_Lab_ChannelValues(e,o,a){if(e[0]===n.TokenType.Ident&&"none"===toLowerCaseAZ(e[4].value))return a.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords),[n.TokenType.Number,"none",e[2],e[3],{value:NaN,type:n.NumberType.Number}];if(e[0]===n.TokenType.Percentage){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);let t=normalize(e[4].value,1,0,100);return 1===o||2===o?t=normalize(e[4].value,.8,-1/0,1/0):3===o&&(t=normalize(e[4].value,100,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);let t=normalize(e[4].value,1,0,100);return 1===o||2===o?t=normalize(e[4].value,1,-1/0,1/0):3===o&&(t=normalize(e[4].value,1,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}return!1}function lab(e,o){return threeChannelSpaceSeparated(e,normalize_Lab_ChannelValues,exports.ColorNotation.Lab,[],o)}function normalize_LCH_ChannelValues(e,o,a){if(e[0]===n.TokenType.Ident&&"none"===toLowerCaseAZ(e[4].value))return a.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords),[n.TokenType.Number,"none",e[2],e[3],{value:NaN,type:n.NumberType.Number}];if(2===o){const o=normalizeHue(e);return!1!==o&&(e[0]===n.TokenType.Dimension&&a.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues),o)}if(e[0]===n.TokenType.Percentage){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);let t=normalize(e[4].value,1,0,100);return 1===o?t=normalize(e[4].value,100/150,0,1/0):3===o&&(t=normalize(e[4].value,100,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);let t=normalize(e[4].value,1,0,100);return 1===o?t=normalize(e[4].value,1,0,1/0):3===o&&(t=normalize(e[4].value,1,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}return!1}function lch(e,o){return threeChannelSpaceSeparated(e,normalize_LCH_ChannelValues,exports.ColorNotation.LCH,[],o)}const N=new Map;for(const[e,o]of Object.entries(a.namedColors))N.set(e,o);function namedColor(e){const o=N.get(toLowerCaseAZ(e));return!!o&&{colorNotation:exports.ColorNotation.RGB,channels:[o[0]/255,o[1]/255,o[2]/255],alpha:1,syntaxFlags:new Set([exports.SyntaxFlag.ColorKeyword,exports.SyntaxFlag.NamedColor])}}function normalize_OKLab_ChannelValues(e,o,a){if(e[0]===n.TokenType.Ident&&"none"===toLowerCaseAZ(e[4].value))return a.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords),[n.TokenType.Number,"none",e[2],e[3],{value:NaN,type:n.NumberType.Number}];if(e[0]===n.TokenType.Percentage){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);let t=normalize(e[4].value,100,0,1);return 1===o||2===o?t=normalize(e[4].value,250,-1/0,1/0):3===o&&(t=normalize(e[4].value,100,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);let t=normalize(e[4].value,1,0,1);return 1===o||2===o?t=normalize(e[4].value,1,-1/0,1/0):3===o&&(t=normalize(e[4].value,1,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}return!1}function oklab(e,o){return threeChannelSpaceSeparated(e,normalize_OKLab_ChannelValues,exports.ColorNotation.OKLab,[],o)}function normalize_OKLCH_ChannelValues(e,o,a){if(e[0]===n.TokenType.Ident&&"none"===toLowerCaseAZ(e[4].value))return a.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords),[n.TokenType.Number,"none",e[2],e[3],{value:NaN,type:n.NumberType.Number}];if(2===o){const o=normalizeHue(e);return!1!==o&&(e[0]===n.TokenType.Dimension&&a.syntaxFlags.add(exports.SyntaxFlag.HasDimensionValues),o)}if(e[0]===n.TokenType.Percentage){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);let t=normalize(e[4].value,100,0,1);return 1===o?t=normalize(e[4].value,250,0,1/0):3===o&&(t=normalize(e[4].value,100,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);let t=normalize(e[4].value,1,0,1);return 1===o?t=normalize(e[4].value,1,0,1/0):3===o&&(t=normalize(e[4].value,1,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}return!1}function oklch(e,o){return threeChannelSpaceSeparated(e,normalize_OKLCH_ChannelValues,exports.ColorNotation.OKLCH,[],o)}function normalize_legacy_sRGB_ChannelValues(e,o,a){if(e[0]===n.TokenType.Percentage){3===o?a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageAlpha):a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);const t=normalize(e[4].value,100,0,1);return[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);let t=normalize(e[4].value,255,0,1);return 3===o&&(t=normalize(e[4].value,1,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}return!1}function normalize_modern_sRGB_ChannelValues(e,o,a){if(e[0]===n.TokenType.Ident&&"none"===toLowerCaseAZ(e[4].value))return a.syntaxFlags.add(exports.SyntaxFlag.HasNoneKeywords),[n.TokenType.Number,"none",e[2],e[3],{value:NaN,type:n.NumberType.Number}];if(e[0]===n.TokenType.Percentage){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasPercentageValues);let t=normalize(e[4].value,100,-1/0,1/0);return 3===o&&(t=normalize(e[4].value,100,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}if(e[0]===n.TokenType.Number){3!==o&&a.syntaxFlags.add(exports.SyntaxFlag.HasNumberValues);let t=normalize(e[4].value,255,-1/0,1/0);return 3===o&&(t=normalize(e[4].value,1,0,1)),[n.TokenType.Number,t.toString(),e[2],e[3],{value:t,type:n.NumberType.Number}]}return!1}function rgb(e,o){if(e.value.some((e=>t.isTokenNode(e)&&e.value[0]===n.TokenType.Comma))){const o=rgbCommaSeparated(e);if(!1!==o)return(!o.syntaxFlags.has(exports.SyntaxFlag.HasNumberValues)||!o.syntaxFlags.has(exports.SyntaxFlag.HasPercentageValues))&&o}else{const n=rgbSpaceSeparated(e,o);if(!1!==n)return n}return!1}function rgbCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_sRGB_ChannelValues,exports.ColorNotation.RGB,[exports.SyntaxFlag.LegacyRGB])}function rgbSpaceSeparated(e,o){return threeChannelSpaceSeparated(e,normalize_modern_sRGB_ChannelValues,exports.ColorNotation.RGB,[],o)}function toPrecision(e,o=7){e=+e,o=+o;const n=(Math.floor(e)+"").length;if(o>n)return+e.toFixed(o-n);{const a=10**(n-o);return Math.round(e/a)*a}}function XYZ_D50_to_P3_Gamut(e){const o=a.xyz.XYZ_D50_to_P3(e);if(a.utils.inGamut(o))return a.utils.clip(o);let n=e.slice();return n=a.conversions.D50_to_D65(n),n=a.conversions.XYZ_to_OKLab(n),n=a.conversions.OKLab_to_OKLCH(n),n[0]<1e-6&&(n=[0,0,0]),n[0]>.999999&&(n=[1,0,0]),a.calculations.mapGamut(n,(e=>(e=a.conversions.OKLCH_to_OKLab(e),e=a.conversions.OKLab_to_XYZ(e),e=a.conversions.XYZ_to_lin_P3(e),a.conversions.gam_P3(e))),(e=>(e=a.conversions.lin_P3(e),e=a.conversions.lin_P3_to_XYZ(e),e=a.conversions.XYZ_to_OKLab(e),a.conversions.OKLab_to_OKLCH(e))))}function serializeWithAlpha(e,o,a,r){const s=[n.TokenType.CloseParen,")",-1,-1,void 0];if("number"==typeof e.alpha){const l=Math.min(1,Math.max(0,toPrecision(Number.isNaN(e.alpha)?0:e.alpha)));return 1===toPrecision(l,4)?new t.FunctionNode(o,s,r):new t.FunctionNode(o,s,[...r,new t.WhitespaceNode([a]),new t.TokenNode([n.TokenType.Delim,"/",-1,-1,{value:"/"}]),new t.WhitespaceNode([a]),new t.TokenNode([n.TokenType.Number,toPrecision(l,4).toString(),-1,-1,{value:e.alpha,type:n.NumberType.Integer}])])}return new t.FunctionNode(o,s,[...r,new t.WhitespaceNode([a]),new t.TokenNode([n.TokenType.Delim,"/",-1,-1,{value:"/"}]),new t.WhitespaceNode([a]),e.alpha])}function XYZ_D50_to_sRGB_Gamut(e){const o=a.xyz.XYZ_D50_to_sRGB(e);if(a.utils.inGamut(o))return a.utils.clip(o);let n=e.slice();return n=a.conversions.D50_to_D65(n),n=a.conversions.XYZ_to_OKLab(n),n=a.conversions.OKLab_to_OKLCH(n),n[0]<1e-6&&(n=[0,0,0]),n[0]>.999999&&(n=[1,0,0]),a.calculations.mapGamut(n,(e=>(e=a.conversions.OKLCH_to_OKLab(e),e=a.conversions.OKLab_to_XYZ(e),e=a.conversions.XYZ_to_lin_sRGB(e),a.conversions.gam_sRGB(e))),(e=>(e=a.conversions.lin_sRGB(e),e=a.conversions.lin_sRGB_to_XYZ(e),e=a.conversions.XYZ_to_OKLab(e),a.conversions.OKLab_to_OKLCH(e))))}exports.color=function color(e){if(t.isFunctionNode(e)){switch(toLowerCaseAZ(e.getName())){case"rgb":case"rgba":return rgb(e,color);case"hsl":case"hsla":return hsl(e,color);case"hwb":return o=color,threeChannelSpaceSeparated(e,normalize_HWB_ChannelValues,exports.ColorNotation.HWB,[],o);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)}}var o;if(t.isTokenNode(e)){if(e.value[0]===n.TokenType.Hash)return hex(e.value);if(e.value[0]===n.TokenType.Ident){const o=namedColor(e.value[4].value);return!1!==o?o:"transparent"===toLowerCaseAZ(e.value[4].value)&&{colorNotation:exports.ColorNotation.RGB,channels:[0,0,0],alpha:0,syntaxFlags:new Set([exports.SyntaxFlag.ColorKeyword])}}}return!1},exports.colorDataFitsDisplayP3_Gamut=function colorDataFitsDisplayP3_Gamut(e){const o={...e,channels:[...e.channels]};return o.channels=convertPowerlessComponentsToZeroValuesForDisplay(o.channels,o.colorNotation),!colorDataTo(o,exports.ColorNotation.Display_P3).channels.find((e=>e<-1e-5||e>1.00001))},exports.colorDataFitsRGB_Gamut=function colorDataFitsRGB_Gamut(e){const o={...e,channels:[...e.channels]};return o.channels=convertPowerlessComponentsToZeroValuesForDisplay(o.channels,o.colorNotation),!colorDataTo(o,exports.ColorNotation.RGB).channels.find((e=>e<-1e-5||e>1.00001))},exports.colorDataTo=colorDataTo,exports.serializeOKLCH=function serializeOKLCH(e){e.channels=convertPowerlessComponentsToZeroValuesForDisplay(e.channels,e.colorNotation);let o=e.channels.map((e=>Number.isNaN(e)?0:e));e.colorNotation!==exports.ColorNotation.OKLCH&&(o=a.xyz.XYZ_D50_to_OKLCH(colorData_to_XYZ_D50(e).channels));const r=toPrecision(o[0],6),s=toPrecision(o[1],6),l=toPrecision(o[2],6),i=[n.TokenType.Function,"oklch(",-1,-1,{value:"oklch"}],u=[n.TokenType.Whitespace," ",-1,-1,void 0];return serializeWithAlpha(e,i,u,[new t.TokenNode([n.TokenType.Number,r.toString(),-1,-1,{value:o[0],type:n.NumberType.Number}]),new t.WhitespaceNode([u]),new t.TokenNode([n.TokenType.Number,s.toString(),-1,-1,{value:o[1],type:n.NumberType.Number}]),new t.WhitespaceNode([u]),new t.TokenNode([n.TokenType.Number,l.toString(),-1,-1,{value:o[2],type:n.NumberType.Number}])])},exports.serializeP3=function serializeP3(e,o=!0){e.channels=convertPowerlessComponentsToZeroValuesForDisplay(e.channels,e.colorNotation);let r=e.channels.map((e=>Number.isNaN(e)?0:e));e.colorNotation!==exports.ColorNotation.Display_P3&&(r=o?XYZ_D50_to_P3_Gamut(colorData_to_XYZ_D50(e).channels):a.xyz.XYZ_D50_to_P3(colorData_to_XYZ_D50(e).channels));const s=toPrecision(r[0],6),l=toPrecision(r[1],6),i=toPrecision(r[2],6),u=[n.TokenType.Function,"color(",-1,-1,{value:"color"}],c=[n.TokenType.Whitespace," ",-1,-1,void 0];return serializeWithAlpha(e,u,c,[new t.TokenNode([n.TokenType.Ident,"display-p3",-1,-1,{value:"display-p3"}]),new t.WhitespaceNode([c]),new t.TokenNode([n.TokenType.Number,s.toString(),-1,-1,{value:r[0],type:n.NumberType.Number}]),new t.WhitespaceNode([c]),new t.TokenNode([n.TokenType.Number,l.toString(),-1,-1,{value:r[1],type:n.NumberType.Number}]),new t.WhitespaceNode([c]),new t.TokenNode([n.TokenType.Number,i.toString(),-1,-1,{value:r[2],type:n.NumberType.Number}])])},exports.serializeRGB=function serializeRGB(e,o=!0){e.channels=convertPowerlessComponentsToZeroValuesForDisplay(e.channels,e.colorNotation);let r=e.channels.map((e=>Number.isNaN(e)?0:e));r=o?XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(e).channels):a.xyz.XYZ_D50_to_sRGB(colorData_to_XYZ_D50(e).channels);const s=Math.min(255,Math.max(0,Math.round(255*toPrecision(r[0])))),l=Math.min(255,Math.max(0,Math.round(255*toPrecision(r[1])))),i=Math.min(255,Math.max(0,Math.round(255*toPrecision(r[2])))),u=[n.TokenType.CloseParen,")",-1,-1,void 0],c=[n.TokenType.Whitespace," ",-1,-1,void 0],p=[n.TokenType.Comma,",",-1,-1,void 0],N=[new t.TokenNode([n.TokenType.Number,s.toString(),-1,-1,{value:r[0],type:n.NumberType.Integer}]),new t.TokenNode(p),new t.WhitespaceNode([c]),new t.TokenNode([n.TokenType.Number,l.toString(),-1,-1,{value:r[1],type:n.NumberType.Integer}]),new t.TokenNode(p),new t.WhitespaceNode([c]),new t.TokenNode([n.TokenType.Number,i.toString(),-1,-1,{value:r[2],type:n.NumberType.Integer}])];if("number"==typeof e.alpha){const o=Math.min(1,Math.max(0,toPrecision(Number.isNaN(e.alpha)?0:e.alpha)));return 1===toPrecision(o,4)?new t.FunctionNode([n.TokenType.Function,"rgb(",-1,-1,{value:"rgb"}],u,N):new t.FunctionNode([n.TokenType.Function,"rgba(",-1,-1,{value:"rgba"}],u,[...N,new t.TokenNode(p),new t.WhitespaceNode([c]),new t.TokenNode([n.TokenType.Number,toPrecision(o,4).toString(),-1,-1,{value:e.alpha,type:n.NumberType.Number}])])}return new t.FunctionNode([n.TokenType.Function,"rgba(",-1,-1,{value:"rgba"}],u,[...N,new t.TokenNode(p),new t.WhitespaceNode([c]),e.alpha])}; diff --git a/node_modules/@csstools/css-color-parser/dist/index.d.ts b/node_modules/@csstools/css-color-parser/dist/index.d.ts new file mode 100644 index 00000000..94de2a86 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/index.d.ts @@ -0,0 +1,10 @@ +import type { ColorData } from './color-data'; +import type { ComponentValue } from '@csstools/css-parser-algorithms'; +export type { ColorData } from './color-data'; +export { ColorNotation } from './color-notation'; +export { SyntaxFlag } from './color-data'; +export { colorDataTo, colorDataFitsRGB_Gamut, colorDataFitsDisplayP3_Gamut } from './color-data'; +export { serializeP3 } from './serialize/p3'; +export { serializeRGB } from './serialize/rgb'; +export { serializeOKLCH } from './serialize/oklch'; +export declare function color(colorNode: ComponentValue): ColorData | false; diff --git a/node_modules/@csstools/css-color-parser/dist/index.mjs b/node_modules/@csstools/css-color-parser/dist/index.mjs new file mode 100644 index 00000000..950bcf13 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/index.mjs @@ -0,0 +1 @@ +import{TokenType as e,NumberType as a}from"@csstools/css-tokenizer";import{xyz as n,namedColors as r,utils as o,conversions as t,calculations as l}from"@csstools/color-helpers";import{isWhitespaceNode as s,isCommentNode as u,isTokenNode as i,isFunctionNode as c,TokenNode as m,FunctionNode as h,WhitespaceNode as N}from"@csstools/css-parser-algorithms";import{mathFunctionNames as p,calcFromComponentValues as b}from"@csstools/css-calc";var _,g;function colorData_to_XYZ_D50(e){switch(e.colorNotation){case _.HEX:case _.RGB:case _.sRGB:return{...e,colorNotation:_.XYZ_D50,channels:n.sRGB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.Linear_sRGB:return{...e,colorNotation:_.XYZ_D50,channels:n.lin_sRGB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.Display_P3:return{...e,colorNotation:_.XYZ_D50,channels:n.P3_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.Rec2020:return{...e,colorNotation:_.XYZ_D50,channels:n.rec_2020_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.A98_RGB:return{...e,colorNotation:_.XYZ_D50,channels:n.a98_RGB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.ProPhoto_RGB:return{...e,colorNotation:_.XYZ_D50,channels:n.ProPhoto_RGB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.HSL:return{...e,colorNotation:_.XYZ_D50,channels:n.HSL_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.HWB:return{...e,colorNotation:_.XYZ_D50,channels:n.HWB_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.Lab:return{...e,colorNotation:_.XYZ_D50,channels:n.Lab_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.OKLab:return{...e,colorNotation:_.XYZ_D50,channels:n.OKLab_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.LCH:return{...e,colorNotation:_.XYZ_D50,channels:n.LCH_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.OKLCH:return{...e,colorNotation:_.XYZ_D50,channels:n.OKLCH_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.XYZ_D50:return{...e,colorNotation:_.XYZ_D50,channels:n.XYZ_D50_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};case _.XYZ_D65:return{...e,colorNotation:_.XYZ_D50,channels:n.XYZ_D65_to_XYZ_D50(e.channels.map((e=>Number.isNaN(e)?0:e)))};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"}(_||(_={})),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"}(g||(g={}));const f=new Set([_.A98_RGB,_.Display_P3,_.HEX,_.Linear_sRGB,_.ProPhoto_RGB,_.RGB,_.sRGB,_.Rec2020,_.XYZ_D50,_.XYZ_D65]);function colorDataTo(e,a){const r={...e};if(e.colorNotation!==a){const e=colorData_to_XYZ_D50(r);switch(a){case _.HEX:case _.RGB:r.colorNotation=_.RGB,r.channels=n.XYZ_D50_to_sRGB(e.channels);break;case _.sRGB:r.colorNotation=_.sRGB,r.channels=n.XYZ_D50_to_sRGB(e.channels);break;case _.Linear_sRGB:r.colorNotation=_.Linear_sRGB,r.channels=n.XYZ_D50_to_lin_sRGB(e.channels);break;case _.Display_P3:r.colorNotation=_.Display_P3,r.channels=n.XYZ_D50_to_P3(e.channels);break;case _.Rec2020:r.colorNotation=_.Rec2020,r.channels=n.XYZ_D50_to_rec_2020(e.channels);break;case _.ProPhoto_RGB:r.colorNotation=_.ProPhoto_RGB,r.channels=n.XYZ_D50_to_ProPhoto(e.channels);break;case _.A98_RGB:r.colorNotation=_.A98_RGB,r.channels=n.XYZ_D50_to_a98_RGB(e.channels);break;case _.HSL:r.colorNotation=_.HSL,r.channels=n.XYZ_D50_to_HSL(e.channels);break;case _.HWB:r.colorNotation=_.HWB,r.channels=n.XYZ_D50_to_HWB(e.channels);break;case _.Lab:r.colorNotation=_.Lab,r.channels=n.XYZ_D50_to_Lab(e.channels);break;case _.LCH:r.colorNotation=_.LCH,r.channels=n.XYZ_D50_to_LCH(e.channels);break;case _.OKLCH:r.colorNotation=_.OKLCH,r.channels=n.XYZ_D50_to_OKLCH(e.channels);break;case _.OKLab:r.colorNotation=_.OKLab,r.channels=n.XYZ_D50_to_OKLab(e.channels);break;case _.XYZ_D50:r.colorNotation=_.XYZ_D50,r.channels=n.XYZ_D50_to_XYZ_D50(e.channels);break;case _.XYZ_D65:r.colorNotation=_.XYZ_D65,r.channels=n.XYZ_D50_to_XYZ_D65(e.channels);break;default:throw new Error("Unsupported color notation")}}else r.channels=e.channels.map((e=>Number.isNaN(e)?0:e));if(a===e.colorNotation)r.channels=carryForwardMissingComponents(e.channels,[0,1,2],r.channels,[0,1,2]);else if(f.has(a)&&f.has(e.colorNotation))r.channels=carryForwardMissingComponents(e.channels,[0,1,2],r.channels,[0,1,2]);else switch(a){case _.HSL:switch(e.colorNotation){case _.HWB:r.channels=carryForwardMissingComponents(e.channels,[0],r.channels,[0]);break;case _.Lab:case _.OKLab:r.channels=carryForwardMissingComponents(e.channels,[2],r.channels,[0]);break;case _.LCH:case _.OKLCH:r.channels=carryForwardMissingComponents(e.channels,[0,1,2],r.channels,[2,1,0])}break;case _.HWB:switch(e.colorNotation){case _.HSL:r.channels=carryForwardMissingComponents(e.channels,[0],r.channels,[0]);break;case _.LCH:case _.OKLCH:r.channels=carryForwardMissingComponents(e.channels,[0],r.channels,[2])}break;case _.Lab:case _.OKLab:switch(e.colorNotation){case _.HSL:r.channels=carryForwardMissingComponents(e.channels,[0],r.channels,[2]);break;case _.Lab:case _.OKLab:r.channels=carryForwardMissingComponents(e.channels,[0,1,2],r.channels,[0,1,2]);break;case _.LCH:case _.OKLCH:r.channels=carryForwardMissingComponents(e.channels,[0],r.channels,[0])}break;case _.LCH:case _.OKLCH:switch(e.colorNotation){case _.HSL:r.channels=carryForwardMissingComponents(e.channels,[0,1,2],r.channels,[2,1,0]);break;case _.HWB:r.channels=carryForwardMissingComponents(e.channels,[0],r.channels,[2]);break;case _.Lab:case _.OKLab:r.channels=carryForwardMissingComponents(e.channels,[0],r.channels,[0]);break;case _.LCH:case _.OKLCH:r.channels=carryForwardMissingComponents(e.channels,[0,1,2],r.channels,[0,1,2])}}return r.channels=convertPowerlessComponentsToMissingComponents(r.channels,a),r}function convertPowerlessComponentsToMissingComponents(e,a){const n=[...e];switch(a){case _.HSL:reducePrecision(n[1],4)<=0&&(n[0]=NaN);break;case _.HWB:Math.max(0,reducePrecision(n[1],4))+Math.max(0,reducePrecision(n[2],4))>=100&&(n[0]=NaN);break;case _.LCH:reducePrecision(n[1],4)<=0&&(n[2]=NaN);break;case _.OKLCH:reducePrecision(n[1],6)<=0&&(n[2]=NaN)}return n}function convertPowerlessComponentsToZeroValuesForDisplay(e,a){const n=[...e];switch(a){case _.HSL:(reducePrecision(n[2])<=0||reducePrecision(n[2])>=100)&&(n[0]=NaN,n[1]=NaN),reducePrecision(n[1])<=0&&(n[0]=NaN);break;case _.HWB:Math.max(0,reducePrecision(n[1]))+Math.max(0,reducePrecision(n[2]))>=100&&(n[0]=NaN);break;case _.Lab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=NaN,n[2]=NaN);break;case _.LCH:reducePrecision(n[1])<=0&&(n[2]=NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=100)&&(n[1]=NaN,n[2]=NaN);break;case _.OKLab:(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=NaN,n[2]=NaN);break;case _.OKLCH:reducePrecision(n[1])<=0&&(n[2]=NaN),(reducePrecision(n[0])<=0||reducePrecision(n[0])>=1)&&(n[1]=NaN,n[2]=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]]=NaN);return o}function normalizeRelativeColorDataChannels(e){const a=new Map;switch(e.colorNotation){case _.RGB:case _.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 _.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 _.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 _.Lab:case _.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 _.LCH:case _.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 _.sRGB:case _.A98_RGB:case _.Display_P3:case _.Rec2020:case _.Linear_sRGB:case _.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 _.XYZ_D50:case _.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[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,_.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,_.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 v=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(v,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}function normalize_Color_ChannelValues(n,r,o){if(n[0]===e.Ident&&"none"===toLowerCaseAZ(n[4].value))return o.syntaxFlags.add(g.HasNoneKeywords),[e.Number,"none",n[2],n[3],{value:NaN,type:a.Number}];if(n[0]===e.Percentage){3!==r&&o.syntaxFlags.add(g.HasPercentageValues);let t=normalize(n[4].value,100,-1/0,1/0);return 3===r&&(t=normalize(n[4].value,100,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){3!==r&&o.syntaxFlags.add(g.HasNumberValues);let t=normalize(n[4].value,1,-1/0,1/0);return 3===r&&(t=normalize(n[4].value,1,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}return!1}const d=new Set(["srgb","srgb-linear","display-p3","a98-rgb","prophoto-rgb","rec2020","xyz","xyz-d50","xyz-d65"]);function color$1(a,n){const r=[],o=[],t=[],l=[];let h,N,f=!1,v=!1;const y={colorNotation:_.sRGB,channels:[0,0,0],alpha:1,syntaxFlags:new Set([])};let C=r;for(let _=0;_=0){l=m.value[4].value;continue}}return!1}if(!t)return!1;r.push({color:t,percentage:l}),t=!1,l=!1}}if(t&&r.push({color:t,percentage:l}),2!==r.length)return!1;let m=r[0].percentage,h=r[1].percentage;return(!1===m||!(m<0||m>100))&&((!1===h||!(h<0||h>100))&&(!1===m&&!1===h?(m=50,h=50):!1!==m&&!1===h?h=100-m:!1===m&&!1!==h&&(m=100-h),(0!==m||0!==h)&&(!1!==m&&!1!==h&&(m+h>100&&(m=m/(m+h)*100,h=h/(m+h)*100),m+h<100&&(o=(m+h)/100,m=m/(m+h)*100,h=h/(m+h)*100),{a:{color:r[0].color,percentage:m},b:{color:r[1].color,percentage:h},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=_.RGB,u=n.alpha;if("number"!=typeof u)return!1;let i=r.alpha;if("number"!=typeof i)return!1;switch(u=Number.isNaN(u)?i:u,i=Number.isNaN(i)?u:i,e){case"srgb":s=_.RGB;break;case"srgb-linear":s=_.Linear_sRGB;break;case"lab":s=_.Lab;break;case"oklab":s=_.OKLab;break;case"xyz-d50":s=_.XYZ_D50;break;case"xyz":case"xyz-d65":s=_.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],i),l[1]=premultiply(l[1],i),l[2]=premultiply(l[2],i);const c=interpolate(u,i,o);return{colorNotation:s,channels:[un_premultiply(interpolate(t[0],l[0],o),c),un_premultiply(interpolate(t[1],l[1],o),c),un_premultiply(interpolate(t[2],l[2],o),c)],alpha:c*a.alphaMultiplier,syntaxFlags:new Set([g.ColorMix])}}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,i=0,c=0,m=0,h=0,N=0,p=_.RGB,b=r.alpha;if("number"!=typeof b)return!1;let f=o.alpha;if("number"!=typeof f)return!1;switch(b=Number.isNaN(b)?f:b,f=Number.isNaN(f)?b:f,e){case"hsl":p=_.HSL;break;case"hwb":p=_.HWB;break;case"lch":p=_.LCH;break;case"oklch":p=_.OKLCH}switch(l=colorDataTo(r,p).channels,s=colorDataTo(o,p).channels,e){case"hsl":case"hwb":u=l[0],i=s[0],c=l[1],m=s[1],h=l[2],N=s[2];break;case"lch":case"oklch":c=l[0],m=s[0],h=l[1],N=s[1],u=l[2],i=s[2]}u=fillInMissingComponent(u,i),Number.isNaN(u)&&(u=0),i=fillInMissingComponent(i,u),Number.isNaN(i)&&(i=0),c=fillInMissingComponent(c,m),m=fillInMissingComponent(m,c),h=fillInMissingComponent(h,N),N=fillInMissingComponent(N,h);const v=i-u;switch(a){case"shorter":v>180?u+=360:v<-180&&(i+=360);break;case"longer":-1800?u+=360:i+=360);break;case"increasing":v<0&&(i+=360);break;case"decreasing":v>0&&(u+=360);break;default:throw new Error("Unknown hue interpolation method")}c=premultiply(c,b),h=premultiply(h,b),m=premultiply(m,f),N=premultiply(N,f);let d=[0,0,0];const y=interpolate(b,f,t);switch(e){case"hsl":case"hwb":d=[interpolate(u,i,t),un_premultiply(interpolate(c,m,t),y),un_premultiply(interpolate(h,N,t),y)];break;case"lch":case"oklch":d=[un_premultiply(interpolate(c,m,t),y),un_premultiply(interpolate(h,N,t),y),interpolate(u,i,t)]}return{colorNotation:p,channels:d,alpha:y*n.alphaMultiplier,syntaxFlags:new Set([g.ColorMix])}}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)?NaN:e*a}function un_premultiply(e,a){return 0===a||Number.isNaN(a)?e:Number.isNaN(e)?NaN:e/a}function hex(e){const a=toLowerCaseAZ(e[4].value);if(a.match(/[^a-f0-9]/))return!1;const n={colorNotation:_.HEX,channels:[0,0,0],alpha:1,syntaxFlags:new Set([g.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(g.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(g.HasAlpha),n}return!1}function normalizeHue(n){if(n[0]===e.Number)return n[4].value=n[4].value%360,n[1]=n[4].value.toString(),n;if(n[0]===e.Dimension){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,r,o){if(0===r){const a=normalizeHue(n);return!1!==a&&(n[0]===e.Dimension&&o.syntaxFlags.add(g.HasDimensionValues),a)}if(n[0]===e.Percentage){3===r?o.syntaxFlags.add(g.HasPercentageAlpha):o.syntaxFlags.add(g.HasPercentageValues);let t=normalize(n[4].value,1,0,100);return 3===r&&(t=normalize(n[4].value,100,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){if(3!==r)return!1;let o=normalize(n[4].value,1,0,100);return 3===r&&(o=normalize(n[4].value,1,0,1)),[e.Number,o.toString(),n[2],n[3],{value:o,type:a.Number}]}return!1}function normalize_modern_HSL_ChannelValues(n,r,o){if(n[0]===e.Ident&&"none"===toLowerCaseAZ(n[4].value))return o.syntaxFlags.add(g.HasNoneKeywords),[e.Number,"none",n[2],n[3],{value:NaN,type:a.Number}];if(0===r){const a=normalizeHue(n);return!1!==a&&(n[0]===e.Dimension&&o.syntaxFlags.add(g.HasDimensionValues),a)}if(n[0]===e.Percentage){3===r?o.syntaxFlags.add(g.HasPercentageAlpha):o.syntaxFlags.add(g.HasPercentageValues);let t=n[4].value;return 3===r&&(t=normalize(n[4].value,100,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){3!==r&&o.syntaxFlags.add(g.HasNumberValues);let t=n[4].value;return 3===r&&(t=normalize(n[4].value,1,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}return!1}function threeChannelLegacySyntax(a,n,r,o){const t=[],l=[],m=[],h=[],N={colorNotation:r,channels:[0,0,0],alpha:1,syntaxFlags:new Set(o)};let _=t;for(let n=0;ni(a)&&a.value[0]===e.Comma))){const e=hslCommaSeparated(a);if(!1!==e)return e}{const e=hslSpaceSeparated(a,n);if(!1!==e)return e}return!1}function hslCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_HSL_ChannelValues,_.HSL,[g.LegacyHSL])}function hslSpaceSeparated(e,a){return threeChannelSpaceSeparated(e,normalize_modern_HSL_ChannelValues,_.HSL,[],a)}function normalize_HWB_ChannelValues(n,r,o){if(n[0]===e.Ident&&"none"===toLowerCaseAZ(n[4].value))return o.syntaxFlags.add(g.HasNoneKeywords),[e.Number,"none",n[2],n[3],{value:NaN,type:a.Number}];if(0===r){const a=normalizeHue(n);return!1!==a&&(n[0]===e.Dimension&&o.syntaxFlags.add(g.HasDimensionValues),a)}if(n[0]===e.Percentage){3===r?o.syntaxFlags.add(g.HasPercentageAlpha):o.syntaxFlags.add(g.HasPercentageValues);let t=n[4].value;return 3===r&&(t=normalize(n[4].value,100,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){3!==r&&o.syntaxFlags.add(g.HasNumberValues);let t=n[4].value;return 3===r&&(t=normalize(n[4].value,1,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}return!1}function normalize_Lab_ChannelValues(n,r,o){if(n[0]===e.Ident&&"none"===toLowerCaseAZ(n[4].value))return o.syntaxFlags.add(g.HasNoneKeywords),[e.Number,"none",n[2],n[3],{value:NaN,type:a.Number}];if(n[0]===e.Percentage){3!==r&&o.syntaxFlags.add(g.HasPercentageValues);let t=normalize(n[4].value,1,0,100);return 1===r||2===r?t=normalize(n[4].value,.8,-1/0,1/0):3===r&&(t=normalize(n[4].value,100,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){3!==r&&o.syntaxFlags.add(g.HasNumberValues);let t=normalize(n[4].value,1,0,100);return 1===r||2===r?t=normalize(n[4].value,1,-1/0,1/0):3===r&&(t=normalize(n[4].value,1,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}return!1}function lab(e,a){return threeChannelSpaceSeparated(e,normalize_Lab_ChannelValues,_.Lab,[],a)}function normalize_LCH_ChannelValues(n,r,o){if(n[0]===e.Ident&&"none"===toLowerCaseAZ(n[4].value))return o.syntaxFlags.add(g.HasNoneKeywords),[e.Number,"none",n[2],n[3],{value:NaN,type:a.Number}];if(2===r){const a=normalizeHue(n);return!1!==a&&(n[0]===e.Dimension&&o.syntaxFlags.add(g.HasDimensionValues),a)}if(n[0]===e.Percentage){3!==r&&o.syntaxFlags.add(g.HasPercentageValues);let t=normalize(n[4].value,1,0,100);return 1===r?t=normalize(n[4].value,100/150,0,1/0):3===r&&(t=normalize(n[4].value,100,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){3!==r&&o.syntaxFlags.add(g.HasNumberValues);let t=normalize(n[4].value,1,0,100);return 1===r?t=normalize(n[4].value,1,0,1/0):3===r&&(t=normalize(n[4].value,1,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}return!1}function lch(e,a){return threeChannelSpaceSeparated(e,normalize_LCH_ChannelValues,_.LCH,[],a)}const L=new Map;for(const[e,a]of Object.entries(r))L.set(e,a);function namedColor(e){const a=L.get(toLowerCaseAZ(e));return!!a&&{colorNotation:_.RGB,channels:[a[0]/255,a[1]/255,a[2]/255],alpha:1,syntaxFlags:new Set([g.ColorKeyword,g.NamedColor])}}function normalize_OKLab_ChannelValues(n,r,o){if(n[0]===e.Ident&&"none"===toLowerCaseAZ(n[4].value))return o.syntaxFlags.add(g.HasNoneKeywords),[e.Number,"none",n[2],n[3],{value:NaN,type:a.Number}];if(n[0]===e.Percentage){3!==r&&o.syntaxFlags.add(g.HasPercentageValues);let t=normalize(n[4].value,100,0,1);return 1===r||2===r?t=normalize(n[4].value,250,-1/0,1/0):3===r&&(t=normalize(n[4].value,100,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){3!==r&&o.syntaxFlags.add(g.HasNumberValues);let t=normalize(n[4].value,1,0,1);return 1===r||2===r?t=normalize(n[4].value,1,-1/0,1/0):3===r&&(t=normalize(n[4].value,1,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}return!1}function oklab(e,a){return threeChannelSpaceSeparated(e,normalize_OKLab_ChannelValues,_.OKLab,[],a)}function normalize_OKLCH_ChannelValues(n,r,o){if(n[0]===e.Ident&&"none"===toLowerCaseAZ(n[4].value))return o.syntaxFlags.add(g.HasNoneKeywords),[e.Number,"none",n[2],n[3],{value:NaN,type:a.Number}];if(2===r){const a=normalizeHue(n);return!1!==a&&(n[0]===e.Dimension&&o.syntaxFlags.add(g.HasDimensionValues),a)}if(n[0]===e.Percentage){3!==r&&o.syntaxFlags.add(g.HasPercentageValues);let t=normalize(n[4].value,100,0,1);return 1===r?t=normalize(n[4].value,250,0,1/0):3===r&&(t=normalize(n[4].value,100,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){3!==r&&o.syntaxFlags.add(g.HasNumberValues);let t=normalize(n[4].value,1,0,1);return 1===r?t=normalize(n[4].value,1,0,1/0):3===r&&(t=normalize(n[4].value,1,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}return!1}function oklch(e,a){return threeChannelSpaceSeparated(e,normalize_OKLCH_ChannelValues,_.OKLCH,[],a)}function normalize_legacy_sRGB_ChannelValues(n,r,o){if(n[0]===e.Percentage){3===r?o.syntaxFlags.add(g.HasPercentageAlpha):o.syntaxFlags.add(g.HasPercentageValues);const t=normalize(n[4].value,100,0,1);return[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){3!==r&&o.syntaxFlags.add(g.HasNumberValues);let t=normalize(n[4].value,255,0,1);return 3===r&&(t=normalize(n[4].value,1,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}return!1}function normalize_modern_sRGB_ChannelValues(n,r,o){if(n[0]===e.Ident&&"none"===toLowerCaseAZ(n[4].value))return o.syntaxFlags.add(g.HasNoneKeywords),[e.Number,"none",n[2],n[3],{value:NaN,type:a.Number}];if(n[0]===e.Percentage){3!==r&&o.syntaxFlags.add(g.HasPercentageValues);let t=normalize(n[4].value,100,-1/0,1/0);return 3===r&&(t=normalize(n[4].value,100,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}if(n[0]===e.Number){3!==r&&o.syntaxFlags.add(g.HasNumberValues);let t=normalize(n[4].value,255,-1/0,1/0);return 3===r&&(t=normalize(n[4].value,1,0,1)),[e.Number,t.toString(),n[2],n[3],{value:t,type:a.Number}]}return!1}function rgb(a,n){if(a.value.some((a=>i(a)&&a.value[0]===e.Comma))){const e=rgbCommaSeparated(a);if(!1!==e)return(!e.syntaxFlags.has(g.HasNumberValues)||!e.syntaxFlags.has(g.HasPercentageValues))&&e}else{const e=rgbSpaceSeparated(a,n);if(!1!==e)return e}return!1}function rgbCommaSeparated(e){return threeChannelLegacySyntax(e,normalize_legacy_sRGB_ChannelValues,_.RGB,[g.LegacyRGB])}function rgbSpaceSeparated(e,a){return threeChannelSpaceSeparated(e,normalize_modern_sRGB_ChannelValues,_.RGB,[],a)}function toPrecision(e,a=7){e=+e,a=+a;const n=(Math.floor(e)+"").length;if(a>n)return+e.toFixed(a-n);{const r=10**(n-a);return Math.round(e/r)*r}}function XYZ_D50_to_P3_Gamut(e){const a=n.XYZ_D50_to_P3(e);if(o.inGamut(a))return o.clip(a);let r=e.slice();return r=t.D50_to_D65(r),r=t.XYZ_to_OKLab(r),r=t.OKLab_to_OKLCH(r),r[0]<1e-6&&(r=[0,0,0]),r[0]>.999999&&(r=[1,0,0]),l.mapGamut(r,(e=>(e=t.OKLCH_to_OKLab(e),e=t.OKLab_to_XYZ(e),e=t.XYZ_to_lin_P3(e),t.gam_P3(e))),(e=>(e=t.lin_P3(e),e=t.lin_P3_to_XYZ(e),e=t.XYZ_to_OKLab(e),t.OKLab_to_OKLCH(e))))}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 h(r,l,t):new h(r,l,[...t,new N([o]),new m([e.Delim,"/",-1,-1,{value:"/"}]),new N([o]),new m([e.Number,toPrecision(s,4).toString(),-1,-1,{value:n.alpha,type:a.Integer}])])}return new h(r,l,[...t,new N([o]),new m([e.Delim,"/",-1,-1,{value:"/"}]),new N([o]),n.alpha])}function serializeP3(r,o=!0){r.channels=convertPowerlessComponentsToZeroValuesForDisplay(r.channels,r.colorNotation);let t=r.channels.map((e=>Number.isNaN(e)?0:e));r.colorNotation!==_.Display_P3&&(t=o?XYZ_D50_to_P3_Gamut(colorData_to_XYZ_D50(r).channels):n.XYZ_D50_to_P3(colorData_to_XYZ_D50(r).channels));const l=toPrecision(t[0],6),s=toPrecision(t[1],6),u=toPrecision(t[2],6),i=[e.Function,"color(",-1,-1,{value:"color"}],c=[e.Whitespace," ",-1,-1,void 0];return serializeWithAlpha(r,i,c,[new m([e.Ident,"display-p3",-1,-1,{value:"display-p3"}]),new N([c]),new m([e.Number,l.toString(),-1,-1,{value:t[0],type:a.Number}]),new N([c]),new m([e.Number,s.toString(),-1,-1,{value:t[1],type:a.Number}]),new N([c]),new m([e.Number,u.toString(),-1,-1,{value:t[2],type:a.Number}])])}function XYZ_D50_to_sRGB_Gamut(e){const a=n.XYZ_D50_to_sRGB(e);if(o.inGamut(a))return o.clip(a);let r=e.slice();return r=t.D50_to_D65(r),r=t.XYZ_to_OKLab(r),r=t.OKLab_to_OKLCH(r),r[0]<1e-6&&(r=[0,0,0]),r[0]>.999999&&(r=[1,0,0]),l.mapGamut(r,(e=>(e=t.OKLCH_to_OKLab(e),e=t.OKLab_to_XYZ(e),e=t.XYZ_to_lin_sRGB(e),t.gam_sRGB(e))),(e=>(e=t.lin_sRGB(e),e=t.lin_sRGB_to_XYZ(e),e=t.XYZ_to_OKLab(e),t.OKLab_to_OKLCH(e))))}function serializeRGB(r,o=!0){r.channels=convertPowerlessComponentsToZeroValuesForDisplay(r.channels,r.colorNotation);let t=r.channels.map((e=>Number.isNaN(e)?0:e));t=o?XYZ_D50_to_sRGB_Gamut(colorData_to_XYZ_D50(r).channels):n.XYZ_D50_to_sRGB(colorData_to_XYZ_D50(r).channels);const l=Math.min(255,Math.max(0,Math.round(255*toPrecision(t[0])))),s=Math.min(255,Math.max(0,Math.round(255*toPrecision(t[1])))),u=Math.min(255,Math.max(0,Math.round(255*toPrecision(t[2])))),i=[e.CloseParen,")",-1,-1,void 0],c=[e.Whitespace," ",-1,-1,void 0],p=[e.Comma,",",-1,-1,void 0],b=[new m([e.Number,l.toString(),-1,-1,{value:t[0],type:a.Integer}]),new m(p),new N([c]),new m([e.Number,s.toString(),-1,-1,{value:t[1],type:a.Integer}]),new m(p),new N([c]),new m([e.Number,u.toString(),-1,-1,{value:t[2],type:a.Integer}])];if("number"==typeof r.alpha){const n=Math.min(1,Math.max(0,toPrecision(Number.isNaN(r.alpha)?0:r.alpha)));return 1===toPrecision(n,4)?new h([e.Function,"rgb(",-1,-1,{value:"rgb"}],i,b):new h([e.Function,"rgba(",-1,-1,{value:"rgba"}],i,[...b,new m(p),new N([c]),new m([e.Number,toPrecision(n,4).toString(),-1,-1,{value:r.alpha,type:a.Number}])])}return new h([e.Function,"rgba(",-1,-1,{value:"rgba"}],i,[...b,new m(p),new N([c]),r.alpha])}function serializeOKLCH(r){r.channels=convertPowerlessComponentsToZeroValuesForDisplay(r.channels,r.colorNotation);let o=r.channels.map((e=>Number.isNaN(e)?0:e));r.colorNotation!==_.OKLCH&&(o=n.XYZ_D50_to_OKLCH(colorData_to_XYZ_D50(r).channels));const t=toPrecision(o[0],6),l=toPrecision(o[1],6),s=toPrecision(o[2],6),u=[e.Function,"oklch(",-1,-1,{value:"oklch"}],i=[e.Whitespace," ",-1,-1,void 0];return serializeWithAlpha(r,u,i,[new m([e.Number,t.toString(),-1,-1,{value:o[0],type:a.Number}]),new N([i]),new m([e.Number,l.toString(),-1,-1,{value:o[1],type:a.Number}]),new N([i]),new m([e.Number,s.toString(),-1,-1,{value:o[2],type:a.Number}])])}function color(a){if(c(a)){switch(toLowerCaseAZ(a.getName())){case"rgb":case"rgba":return rgb(a,color);case"hsl":case"hsla":return hsl(a,color);case"hwb":return n=color,threeChannelSpaceSeparated(a,normalize_HWB_ChannelValues,_.HWB,[],n);case"lab":return lab(a,color);case"lch":return lch(a,color);case"oklab":return oklab(a,color);case"oklch":return oklch(a,color);case"color":return color$1(a,color);case"color-mix":return colorMix(a,color)}}var n;if(i(a)){if(a.value[0]===e.Hash)return hex(a.value);if(a.value[0]===e.Ident){const e=namedColor(a.value[4].value);return!1!==e?e:"transparent"===toLowerCaseAZ(a.value[4].value)&&{colorNotation:_.RGB,channels:[0,0,0],alpha:0,syntaxFlags:new Set([g.ColorKeyword])}}}return!1}export{_ as ColorNotation,g as SyntaxFlag,color,colorDataFitsDisplayP3_Gamut,colorDataFitsRGB_Gamut,colorDataTo,serializeOKLCH,serializeP3,serializeRGB}; diff --git a/node_modules/@csstools/css-color-parser/dist/serialize/oklch.d.ts b/node_modules/@csstools/css-color-parser/dist/serialize/oklch.d.ts new file mode 100644 index 00000000..1963c49e --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/serialize/oklch.d.ts @@ -0,0 +1,3 @@ +import { ColorData } from '../color-data'; +import { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function serializeOKLCH(color: ColorData): FunctionNode; diff --git a/node_modules/@csstools/css-color-parser/dist/serialize/p3.d.ts b/node_modules/@csstools/css-color-parser/dist/serialize/p3.d.ts new file mode 100644 index 00000000..503c5a25 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/serialize/p3.d.ts @@ -0,0 +1,3 @@ +import { ColorData } from '../color-data'; +import { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function serializeP3(color: ColorData, gamutMapping?: boolean): FunctionNode; diff --git a/node_modules/@csstools/css-color-parser/dist/serialize/rgb.d.ts b/node_modules/@csstools/css-color-parser/dist/serialize/rgb.d.ts new file mode 100644 index 00000000..b4c38133 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/serialize/rgb.d.ts @@ -0,0 +1,3 @@ +import { ColorData } from '../color-data'; +import { FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function serializeRGB(color: ColorData, gamutMapping?: boolean): FunctionNode; diff --git a/node_modules/@csstools/css-color-parser/dist/serialize/to-precision.d.ts b/node_modules/@csstools/css-color-parser/dist/serialize/to-precision.d.ts new file mode 100644 index 00000000..1bcc6b27 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/serialize/to-precision.d.ts @@ -0,0 +1 @@ +export declare function toPrecision(n: number, precision?: number): number; diff --git a/node_modules/@csstools/css-color-parser/dist/serialize/with-alpha.d.ts b/node_modules/@csstools/css-color-parser/dist/serialize/with-alpha.d.ts new file mode 100644 index 00000000..c214a9cc --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/serialize/with-alpha.d.ts @@ -0,0 +1,4 @@ +import { ColorData } from '../color-data'; +import type { TokenFunction, TokenWhitespace } from '@csstools/css-tokenizer'; +import { FunctionNode, TokenNode, WhitespaceNode } from '@csstools/css-parser-algorithms'; +export declare function serializeWithAlpha(color: ColorData, fn: TokenFunction, space: TokenWhitespace, channels: Array): FunctionNode; diff --git a/node_modules/@csstools/css-color-parser/dist/util/to-lower-case-a-z.d.ts b/node_modules/@csstools/css-color-parser/dist/util/to-lower-case-a-z.d.ts new file mode 100644 index 00000000..396b252e --- /dev/null +++ b/node_modules/@csstools/css-color-parser/dist/util/to-lower-case-a-z.d.ts @@ -0,0 +1 @@ +export declare function toLowerCaseAZ(x: string): string; diff --git a/node_modules/@csstools/css-color-parser/package.json b/node_modules/@csstools/css-color-parser/package.json new file mode 100644 index 00000000..6ef632c9 --- /dev/null +++ b/node_modules/@csstools/css-color-parser/package.json @@ -0,0 +1,77 @@ +{ + "name": "@csstools/css-color-parser", + "description": "Parse CSS color values", + "version": "1.4.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/color-helpers": "^3.0.2", + "@csstools/css-calc": "^1.1.4" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "stryker": "stryker run --logLevel error", + "test": "node ./test/test.mjs && node ./test/_import.mjs && node ./test/_require.cjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "packages/css-color-parser" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "color", + "css", + "parser" + ], + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md b/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md new file mode 100644 index 00000000..8d6ae2ff --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/CHANGELOG.md @@ -0,0 +1,65 @@ +# Changes to CSS Parser Algorithms + +### 2.3.2 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) + +### 2.3.1 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) + +### 2.3.0 + +_July 3, 2023_ + +- Add `sourceIndices` helper function. + +This makes it easier to get the start and end indices of a node in the source string. +This function accepts any node that can be converted into an array of tokens. + +### 2.2.0 + +_June 1, 2023_ + +- Add `state` to `walk` methods. + +This makes it possible pass down information from a parent structure to children. +e.g. you can set `entry.state.isInCalcExpression = true` for `calc((10 + 5) / 2)` when walking the `FunctionNode` for `calc`. + +### 2.1.1 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) + +### 2.1.0 + +_March 25, 2023_ + +- Add `replaceComponentValues` utility function. +- Add `stringify` utility function. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 19, 2023_ + +- Fix: Removes `UnclosedFunctionNode` and `UnclosedSimpleBlockNode`. (breaking) +- Change the `ParseError` interface, this is now a subclass of `Error` (breaking) +- Change `nameTokenValue` in `FunctionNode` to `getName` (breaking) +- Fix: Do not discard empty items in comma separated lists. + +### 1.0.0 + +_November 14, 2022_ + +- Initial version diff --git a/node_modules/@csstools/css-parser-algorithms/LICENSE.md b/node_modules/@csstools/css-parser-algorithms/LICENSE.md new file mode 100644 index 00000000..af5411fa --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2022 Romain Menke, Antonio Laguna + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@csstools/css-parser-algorithms/README.md b/node_modules/@csstools/css-parser-algorithms/README.md new file mode 100644 index 00000000..b63c2ce3 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/README.md @@ -0,0 +1,115 @@ +# CSS Parser Algorithms + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +Implemented from : https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/ + +## Usage + +Add [CSS Parser Algorithms] to your project: + +```bash +npm install @csstools/css-parser-algorithms @csstools/css-tokenizer --save-dev +``` + +[CSS Parser Algorithms] only accepts tokenized CSS. +It must be used together with `@csstools/css-tokenizer`. + + +```js +import { tokenizer, TokenType } from '@csstools/css-tokenizer'; +import { parseComponentValue } from '@csstools/css-parser-algorithms'; + +const myCSS = `@media only screen and (min-width: 768rem) { + .foo { + content: 'Some content!' !important; + } +} +`; + +const t = tokenizer({ + css: myCSS, +}); + +const tokens = []; + +{ + while (!t.endOfFile()) { + tokens.push(t.nextToken()); + } + + tokens.push(t.nextToken()); // EOF-token +} + +const options = { + onParseError: ((err) => { + throw err; + }), +}; + +const result = parseComponentValue(tokens, options); + +console.log(result); +``` + +### Available functions + +- [`parseComponentValue`](https://www.w3.org/TR/css-syntax-3/#parse-component-value) +- [`parseListOfComponentValues`](https://www.w3.org/TR/css-syntax-3/#parse-list-of-component-values) +- [`parseCommaSeparatedListOfComponentValues`](https://www.w3.org/TR/css-syntax-3/#parse-comma-separated-list-of-component-values) + +### Utilities + +#### `gatherNodeAncestry` + +The AST does not expose the entire ancestry of each node. +The walker methods do provide access to the current parent, but also not the entire ancestry. + +To gather the entire ancestry for a a given sub tree of the AST you can use `gatherNodeAncestry`. +The result is a `Map` with the child nodes as keys and the parents as values. +This allows you to lookup any ancestor of any node. + +```css +import { parseComponentValue } from '@csstools/css-parser-algorithms'; + +const result = parseComponentValue(tokens, options); +const ancestry = gatherNodeAncestry(result); +``` + +### Options + +```ts +{ + onParseError?: (error: ParseError) => void +} +``` + +#### `onParseError` + +The parser algorithms are forgiving and won't stop when a parse error is encountered. +Parse errors also aren't tokens. + +To receive parsing error information you can set a callback. + +Parser errors will try to inform you about the point in the parsing logic the error happened. +This tells you the kind of error. + +## Goals and non-goals + +Things this package aims to be: +- specification compliant CSS parser +- a reliable low level package to be used in CSS sub-grammars + +What it is not: +- opinionated +- fast +- small +- a replacement for PostCSS (PostCSS is fast and also an ecosystem) + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/css-parser-algorithms + +[CSS Parser Algorithms]: https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms diff --git a/node_modules/@csstools/css-parser-algorithms/dist/consume/consume-component-block-function.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/consume/consume-component-block-function.d.ts new file mode 100644 index 00000000..59cdf944 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/consume/consume-component-block-function.d.ts @@ -0,0 +1,118 @@ +import { CSSToken, TokenFunction } from '@csstools/css-tokenizer'; +import { Context } from '../interfaces/context'; +import { ComponentValueType } from '../util/component-value-type'; +export type ContainerNode = FunctionNode | SimpleBlockNode; +export type ComponentValue = FunctionNode | SimpleBlockNode | WhitespaceNode | CommentNode | TokenNode; +export declare function consumeComponentValue(ctx: Context, tokens: Array): { + advance: number; + node: ComponentValue; +}; +export declare class FunctionNode { + type: ComponentValueType; + name: TokenFunction; + endToken: CSSToken; + value: Array; + constructor(name: TokenFunction, endToken: CSSToken, value: Array); + getName(): string; + /** + * Normalize the current Function: + * - if the "endToken" is EOF, replace with a ")-token" + */ + normalize(): void; + tokens(): Array; + toString(): string; + indexOf(item: ComponentValue): number | string; + at(index: number | string): ComponentValue | undefined; + walk>(cb: (entry: { + node: ComponentValue; + parent: ContainerNode; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): unknown; + isFunctionNode(): this is FunctionNode; + static isFunctionNode(x: unknown): x is FunctionNode; +} +export declare function consumeFunction(ctx: Context, tokens: Array): { + advance: number; + node: FunctionNode; +}; +export declare class SimpleBlockNode { + type: ComponentValueType; + startToken: CSSToken; + endToken: CSSToken; + value: Array; + constructor(startToken: CSSToken, endToken: CSSToken, value: Array); + /** + * Normalize the current Simple Block: + * - if the "endToken" is EOF, replace with the mirror token of the "startToken" + */ + normalize(): void; + tokens(): Array; + toString(): string; + indexOf(item: ComponentValue): number | string; + at(index: number | string): ComponentValue | undefined; + walk>(cb: (entry: { + node: ComponentValue; + parent: ContainerNode; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): unknown; + isSimpleBlockNode(): this is SimpleBlockNode; + static isSimpleBlockNode(x: unknown): x is SimpleBlockNode; +} +/** https://www.w3.org/TR/css-syntax-3/#consume-simple-block */ +export declare function consumeSimpleBlock(ctx: Context, tokens: Array): { + advance: number; + node: SimpleBlockNode; +}; +export declare class WhitespaceNode { + type: ComponentValueType; + value: Array; + constructor(value: Array); + tokens(): Array; + toString(): string; + toJSON(): { + type: ComponentValueType; + tokens: CSSToken[]; + }; + isWhitespaceNode(): this is WhitespaceNode; + static isWhitespaceNode(x: unknown): x is WhitespaceNode; +} +export declare function consumeWhitespace(ctx: Context, tokens: Array): { + advance: number; + node: WhitespaceNode; +}; +export declare class CommentNode { + type: ComponentValueType; + value: CSSToken; + constructor(value: CSSToken); + tokens(): Array; + toString(): string; + toJSON(): { + type: ComponentValueType; + tokens: CSSToken[]; + }; + isCommentNode(): this is CommentNode; + static isCommentNode(x: unknown): x is CommentNode; +} +export declare function consumeComment(ctx: Context, tokens: Array): { + advance: number; + node: CommentNode; +}; +export declare function consumeAllCommentsAndWhitespace(ctx: Context, tokens: Array): { + advance: number; + nodes: Array; +}; +export declare class TokenNode { + type: ComponentValueType; + value: CSSToken; + constructor(value: CSSToken); + tokens(): Array; + toString(): string; + toJSON(): { + type: ComponentValueType; + tokens: CSSToken[]; + }; + isTokenNode(): this is TokenNode; + static isTokenNode(x: unknown): x is TokenNode; +} diff --git a/node_modules/@csstools/css-parser-algorithms/dist/index.cjs b/node_modules/@csstools/css-parser-algorithms/dist/index.cjs new file mode 100644 index 00000000..4405dce4 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e,n=require("@csstools/css-tokenizer");function consumeComponentValue(e,o){const t=o[0];if(t[0]===n.TokenType.OpenParen||t[0]===n.TokenType.OpenCurly||t[0]===n.TokenType.OpenSquare){const n=consumeSimpleBlock(e,o);return{advance:n.advance,node:n.node}}if(t[0]===n.TokenType.Function){const n=consumeFunction(e,o);return{advance:n.advance,node:n.node}}if(t[0]===n.TokenType.Whitespace){const n=consumeWhitespace(e,o);return{advance:n.advance,node:n.node}}if(t[0]===n.TokenType.Comment){const n=consumeComment(e,o);return{advance:n.advance,node:n.node}}return{advance:1,node:new TokenNode(t)}}exports.ComponentValueType=void 0,(e=exports.ComponentValueType||(exports.ComponentValueType={})).Function="function",e.SimpleBlock="simple-block",e.Whitespace="whitespace",e.Comment="comment",e.Token="token";class FunctionNode{type=exports.ComponentValueType.Function;name;endToken;value;constructor(e,n,o){this.name=e,this.endToken=n,this.value=o}getName(){return this.name[4].value}normalize(){this.endToken[0]===n.TokenType.EOF&&(this.endToken=[n.TokenType.CloseParen,")",-1,-1,void 0])}tokens(){return this.endToken[0]===n.TokenType.EOF?[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=>n.isToken(e)?n.stringify(e):e.toString())).join("");return n.stringify(this.name)+e+n.stringify(this.endToken)}indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}walk(e,n){let o=!1;if(this.value.forEach(((t,s)=>{if(o)return;let i;n&&(i={...n}),!1!==e({node:t,parent:this,state:i},s)?"walk"in t&&!1===t.walk(e,i)&&(o=!0):o=!0})),o)return!1}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===exports.ComponentValueType.Function)}}function consumeFunction(e,o){const t=[];let s=1;for(;;){const i=o[s];if(!i||i[0]===n.TokenType.EOF)return e.onParseError(new n.ParseError("Unexpected EOF while consuming a function.",o[0][2],o[o.length-1][3],["5.4.9. Consume a function","Unexpected EOF"])),{advance:o.length,node:new FunctionNode(o[0],i,t)};if(i[0]===n.TokenType.CloseParen)return{advance:s+1,node:new FunctionNode(o[0],i,t)};if(i[0]===n.TokenType.Comment||i[0]===n.TokenType.Whitespace){const n=consumeAllCommentsAndWhitespace(e,o.slice(s));s+=n.advance,t.push(...n.nodes);continue}const r=consumeComponentValue(e,o.slice(s));s+=r.advance,t.push(r.node)}}class SimpleBlockNode{type=exports.ComponentValueType.SimpleBlock;startToken;endToken;value;constructor(e,n,o){this.startToken=e,this.endToken=n,this.value=o}normalize(){if(this.endToken[0]===n.TokenType.EOF){const e=n.mirrorVariant(this.startToken);e&&(this.endToken=e)}}tokens(){return this.endToken[0]===n.TokenType.EOF?[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=>n.isToken(e)?n.stringify(e):e.toString())).join("");return n.stringify(this.startToken)+e+n.stringify(this.endToken)}indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}walk(e,n){let o=!1;if(this.value.forEach(((t,s)=>{if(o)return;let i;n&&(i={...n}),!1!==e({node:t,parent:this,state:i},s)?"walk"in t&&!1===t.walk(e,i)&&(o=!0):o=!0})),o)return!1}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===exports.ComponentValueType.SimpleBlock)}}function consumeSimpleBlock(e,o){const t=n.mirrorVariantType(o[0][0]);if(!t)throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");const s=[];let i=1;for(;;){const r=o[i];if(!r||r[0]===n.TokenType.EOF)return e.onParseError(new n.ParseError("Unexpected EOF while consuming a simple block.",o[0][2],o[o.length-1][3],["5.4.8. Consume a simple block","Unexpected EOF"])),{advance:o.length,node:new SimpleBlockNode(o[0],r,s)};if(r[0]===t)return{advance:i+1,node:new SimpleBlockNode(o[0],r,s)};if(r[0]===n.TokenType.Comment||r[0]===n.TokenType.Whitespace){const n=consumeAllCommentsAndWhitespace(e,o.slice(i));i+=n.advance,s.push(...n.nodes);continue}const a=consumeComponentValue(e,o.slice(i));i+=a.advance,s.push(a.node)}}class WhitespaceNode{type=exports.ComponentValueType.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return n.stringify(...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===exports.ComponentValueType.Whitespace)}}function consumeWhitespace(e,o){let t=0;for(;;){if(o[t][0]!==n.TokenType.Whitespace)return{advance:t,node:new WhitespaceNode(o.slice(0,t))};t++}}class CommentNode{type=exports.ComponentValueType.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return n.stringify(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===exports.ComponentValueType.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(e,o){const t=[];let s=0;for(;;)if(o[s][0]!==n.TokenType.Whitespace){if(o[s][0]!==n.TokenType.Comment)return{advance:s,nodes:t};t.push(new CommentNode(o[s])),s++}else{const e=consumeWhitespace(0,o.slice(s));s+=e.advance,t.push(e.node)}}class TokenNode{type=exports.ComponentValueType.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return n.stringify(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===exports.ComponentValueType.Token)}}function isSimpleBlockNode(e){return SimpleBlockNode.isSimpleBlockNode(e)}function isFunctionNode(e){return FunctionNode.isFunctionNode(e)}exports.CommentNode=CommentNode,exports.FunctionNode=FunctionNode,exports.SimpleBlockNode=SimpleBlockNode,exports.TokenNode=TokenNode,exports.WhitespaceNode=WhitespaceNode,exports.consumeAllCommentsAndWhitespace=consumeAllCommentsAndWhitespace,exports.consumeComment=consumeComment,exports.consumeComponentValue=consumeComponentValue,exports.consumeFunction=consumeFunction,exports.consumeSimpleBlock=consumeSimpleBlock,exports.consumeWhitespace=consumeWhitespace,exports.gatherNodeAncestry=function gatherNodeAncestry(e){const n=new Map;return e.walk((e=>{Array.isArray(e.node)?e.node.forEach((o=>{n.set(o,e.parent)})):n.set(e.node,e.parent)})),n},exports.isCommentNode=function isCommentNode(e){return CommentNode.isCommentNode(e)},exports.isFunctionNode=isFunctionNode,exports.isSimpleBlockNode=isSimpleBlockNode,exports.isTokenNode=function isTokenNode(e){return TokenNode.isTokenNode(e)},exports.isWhitespaceNode=function isWhitespaceNode(e){return WhitespaceNode.isWhitespaceNode(e)},exports.parseCommaSeparatedListOfComponentValues=function parseCommaSeparatedListOfComponentValues(e,o){const t={onParseError:(null==o?void 0:o.onParseError)??(()=>{})},s=[...e];if(0===e.length)return[];s[s.length-1][0]!==n.TokenType.EOF&&s.push([n.TokenType.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=[],a=0;for(;;){if(!s[a]||s[a][0]===n.TokenType.EOF)return r.length&&i.push(r),i;if(s[a][0]===n.TokenType.Comma){i.push(r),r=[],a++;continue}const o=consumeComponentValue(t,e.slice(a));r.push(o.node),a+=o.advance}},exports.parseComponentValue=function parseComponentValue(e,o){const t={onParseError:(null==o?void 0:o.onParseError)??(()=>{})},s=[...e];s[s.length-1][0]!==n.TokenType.EOF&&s.push([n.TokenType.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=consumeComponentValue(t,s);if(s[Math.min(i.advance,s.length-1)][0]===n.TokenType.EOF)return i.node;t.onParseError(new n.ParseError("Expected EOF after parsing a component value.",e[0][2],e[e.length-1][3],["5.3.9. Parse a component value","Expected EOF"]))},exports.parseListOfComponentValues=function parseListOfComponentValues(e,o){const t={onParseError:(null==o?void 0:o.onParseError)??(()=>{})},s=[...e];s[s.length-1][0]!==n.TokenType.EOF&&s.push([n.TokenType.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=0;for(;;){if(!s[r]||s[r][0]===n.TokenType.EOF)return i;const e=consumeComponentValue(t,s.slice(r));i.push(e.node),r+=e.advance}},exports.replaceComponentValues=function replaceComponentValues(e,n){for(let o=0;o{if("number"!=typeof o)return;const t=e.node,s=n(t);s&&e.parent.value.splice(o,1,s)}))}}return e},exports.sourceIndices=function sourceIndices(e){if(Array.isArray(e)){const n=e[0];if(!n)return[0,0];const o=e[e.length-1]||n;return[sourceIndices(n)[0],sourceIndices(o)[1]]}const n=e.tokens(),o=n[0],t=n[n.length-1];return o&&t?[o[2],t[3]]:[0,0]},exports.stringify=function stringify(e){return e.map((e=>e.map((e=>n.stringify(...e.tokens()))).join(""))).join(",")}; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts new file mode 100644 index 00000000..47c3cec9 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/index.d.ts @@ -0,0 +1,10 @@ +export * from './consume/consume-component-block-function'; +export { parseComponentValue } from './parse/parse-component-value'; +export { parseListOfComponentValues } from './parse/parse-list-of-component-values'; +export { parseCommaSeparatedListOfComponentValues } from './parse/parse-comma-separated-list-of-component-values'; +export { gatherNodeAncestry } from './util/node-ancestry'; +export { replaceComponentValues } from './util/replace-component-values'; +export { stringify } from './util/stringify'; +export { ComponentValueType } from './util/component-value-type'; +export { isCommentNode, isFunctionNode, isSimpleBlockNode, isTokenNode, isWhitespaceNode, } from './util/type-predicates'; +export { sourceIndices } from './util/source-indices'; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/index.mjs b/node_modules/@csstools/css-parser-algorithms/dist/index.mjs new file mode 100644 index 00000000..cc63349e --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/index.mjs @@ -0,0 +1 @@ +import{TokenType as e,isToken as n,stringify as t,ParseError as o,mirrorVariant as s,mirrorVariantType as i}from"@csstools/css-tokenizer";var r;function consumeComponentValue(n,t){const o=t[0];if(o[0]===e.OpenParen||o[0]===e.OpenCurly||o[0]===e.OpenSquare){const e=consumeSimpleBlock(n,t);return{advance:e.advance,node:e.node}}if(o[0]===e.Function){const e=consumeFunction(n,t);return{advance:e.advance,node:e.node}}if(o[0]===e.Whitespace){const e=consumeWhitespace(n,t);return{advance:e.advance,node:e.node}}if(o[0]===e.Comment){const e=consumeComment(n,t);return{advance:e.advance,node:e.node}}return{advance:1,node:new TokenNode(o)}}!function(e){e.Function="function",e.SimpleBlock="simple-block",e.Whitespace="whitespace",e.Comment="comment",e.Token="token"}(r||(r={}));class FunctionNode{type=r.Function;name;endToken;value;constructor(e,n,t){this.name=e,this.endToken=n,this.value=t}getName(){return this.name[4].value}normalize(){this.endToken[0]===e.EOF&&(this.endToken=[e.CloseParen,")",-1,-1,void 0])}tokens(){return this.endToken[0]===e.EOF?[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=>n(e)?t(e):e.toString())).join("");return t(this.name)+e+t(this.endToken)}indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}walk(e,n){let t=!1;if(this.value.forEach(((o,s)=>{if(t)return;let i;n&&(i={...n}),!1!==e({node:o,parent:this,state:i},s)?"walk"in o&&!1===o.walk(e,i)&&(t=!0):t=!0})),t)return!1}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===r.Function)}}function consumeFunction(n,t){const s=[];let i=1;for(;;){const r=t[i];if(!r||r[0]===e.EOF)return n.onParseError(new o("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],r,s)};if(r[0]===e.CloseParen)return{advance:i+1,node:new FunctionNode(t[0],r,s)};if(r[0]===e.Comment||r[0]===e.Whitespace){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 SimpleBlockNode{type=r.SimpleBlock;startToken;endToken;value;constructor(e,n,t){this.startToken=e,this.endToken=n,this.value=t}normalize(){if(this.endToken[0]===e.EOF){const e=s(this.startToken);e&&(this.endToken=e)}}tokens(){return this.endToken[0]===e.EOF?[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=>n(e)?t(e):e.toString())).join("");return t(this.startToken)+e+t(this.endToken)}indexOf(e){return this.value.indexOf(e)}at(e){if("number"==typeof e)return e<0&&(e=this.value.length+e),this.value[e]}walk(e,n){let t=!1;if(this.value.forEach(((o,s)=>{if(t)return;let i;n&&(i={...n}),!1!==e({node:o,parent:this,state:i},s)?"walk"in o&&!1===o.walk(e,i)&&(t=!0):t=!0})),t)return!1}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===r.SimpleBlock)}}function consumeSimpleBlock(n,t){const s=i(t[0][0]);if(!s)throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");const r=[];let a=1;for(;;){const i=t[a];if(!i||i[0]===e.EOF)return n.onParseError(new o("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],i,r)};if(i[0]===s)return{advance:a+1,node:new SimpleBlockNode(t[0],i,r)};if(i[0]===e.Comment||i[0]===e.Whitespace){const e=consumeAllCommentsAndWhitespace(n,t.slice(a));a+=e.advance,r.push(...e.nodes);continue}const c=consumeComponentValue(n,t.slice(a));a+=c.advance,r.push(c.node)}}class WhitespaceNode{type=r.Whitespace;value;constructor(e){this.value=e}tokens(){return this.value}toString(){return t(...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===r.Whitespace)}}function consumeWhitespace(n,t){let o=0;for(;;){if(t[o][0]!==e.Whitespace)return{advance:o,node:new WhitespaceNode(t.slice(0,o))};o++}}class CommentNode{type=r.Comment;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return t(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===r.Comment)}}function consumeComment(e,n){return{advance:1,node:new CommentNode(n[0])}}function consumeAllCommentsAndWhitespace(n,t){const o=[];let s=0;for(;;)if(t[s][0]!==e.Whitespace){if(t[s][0]!==e.Comment)return{advance:s,nodes:o};o.push(new CommentNode(t[s])),s++}else{const e=consumeWhitespace(0,t.slice(s));s+=e.advance,o.push(e.node)}}class TokenNode{type=r.Token;value;constructor(e){this.value=e}tokens(){return[this.value]}toString(){return t(this.value)}toJSON(){return{type:this.type,tokens:this.tokens()}}isTokenNode(){return TokenNode.isTokenNode(this)}static isTokenNode(e){return!!e&&(e instanceof TokenNode&&e.type===r.Token)}}function parseComponentValue(n,t){const s={onParseError:(null==t?void 0:t.onParseError)??(()=>{})},i=[...n];i[i.length-1][0]!==e.EOF&&i.push([e.EOF,"",i[i.length-1][2],i[i.length-1][3],void 0]);const r=consumeComponentValue(s,i);if(i[Math.min(r.advance,i.length-1)][0]===e.EOF)return r.node;s.onParseError(new o("Expected EOF after parsing a component value.",n[0][2],n[n.length-1][3],["5.3.9. Parse a component value","Expected EOF"]))}function parseListOfComponentValues(n,t){const o={onParseError:(null==t?void 0:t.onParseError)??(()=>{})},s=[...n];s[s.length-1][0]!==e.EOF&&s.push([e.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=0;for(;;){if(!s[r]||s[r][0]===e.EOF)return i;const n=consumeComponentValue(o,s.slice(r));i.push(n.node),r+=n.advance}}function parseCommaSeparatedListOfComponentValues(n,t){const o={onParseError:(null==t?void 0:t.onParseError)??(()=>{})},s=[...n];if(0===n.length)return[];s[s.length-1][0]!==e.EOF&&s.push([e.EOF,"",s[s.length-1][2],s[s.length-1][3],void 0]);const i=[];let r=[],a=0;for(;;){if(!s[a]||s[a][0]===e.EOF)return r.length&&i.push(r),i;if(s[a][0]===e.Comma){i.push(r),r=[],a++;continue}const t=consumeComponentValue(o,n.slice(a));r.push(t.node),a+=t.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 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 isTokenNode(e){return TokenNode.isTokenNode(e)}function replaceComponentValues(e,n){for(let t=0;t{if("number"!=typeof t)return;const o=e.node,s=n(o);s&&e.parent.value.splice(t,1,s)}))}}return e}function stringify(e){return e.map((e=>e.map((e=>t(...e.tokens()))).join(""))).join(",")}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,r as ComponentValueType,FunctionNode,SimpleBlockNode,TokenNode,WhitespaceNode,consumeAllCommentsAndWhitespace,consumeComment,consumeComponentValue,consumeFunction,consumeSimpleBlock,consumeWhitespace,gatherNodeAncestry,isCommentNode,isFunctionNode,isSimpleBlockNode,isTokenNode,isWhitespaceNode,parseCommaSeparatedListOfComponentValues,parseComponentValue,parseListOfComponentValues,replaceComponentValues,sourceIndices,stringify}; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/interfaces/context.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/interfaces/context.d.ts new file mode 100644 index 00000000..dc246e00 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/interfaces/context.d.ts @@ -0,0 +1,4 @@ +import { ParseError } from '@csstools/css-tokenizer'; +export type Context = { + onParseError: (error: ParseError) => void; +}; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/parse/parse-comma-separated-list-of-component-values.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/parse/parse-comma-separated-list-of-component-values.d.ts new file mode 100644 index 00000000..67dff1d0 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/parse/parse-comma-separated-list-of-component-values.d.ts @@ -0,0 +1,5 @@ +import { CSSToken, ParseError } from '@csstools/css-tokenizer'; +import { ComponentValue } from '../consume/consume-component-block-function'; +export declare function parseCommaSeparatedListOfComponentValues(tokens: Array, options?: { + onParseError?: (error: ParseError) => void; +}): ComponentValue[][]; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/parse/parse-component-value.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/parse/parse-component-value.d.ts new file mode 100644 index 00000000..2961290f --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/parse/parse-component-value.d.ts @@ -0,0 +1,4 @@ +import { CSSToken, ParseError } from '@csstools/css-tokenizer'; +export declare function parseComponentValue(tokens: Array, options?: { + onParseError?: (error: ParseError) => void; +}): import("../consume/consume-component-block-function").ComponentValue | undefined; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/parse/parse-list-of-component-values.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/parse/parse-list-of-component-values.d.ts new file mode 100644 index 00000000..737f554d --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/parse/parse-list-of-component-values.d.ts @@ -0,0 +1,5 @@ +import { CSSToken, ParseError } from '@csstools/css-tokenizer'; +import { ComponentValue } from '../consume/consume-component-block-function'; +export declare function parseListOfComponentValues(tokens: Array, options?: { + onParseError?: (error: ParseError) => void; +}): ComponentValue[]; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/util/component-value-type.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/util/component-value-type.d.ts new file mode 100644 index 00000000..eda7ee93 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/util/component-value-type.d.ts @@ -0,0 +1,7 @@ +export declare enum ComponentValueType { + Function = "function", + SimpleBlock = "simple-block", + Whitespace = "whitespace", + Comment = "comment", + Token = "token" +} diff --git a/node_modules/@csstools/css-parser-algorithms/dist/util/node-ancestry.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/util/node-ancestry.d.ts new file mode 100644 index 00000000..219ea619 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/util/node-ancestry.d.ts @@ -0,0 +1,7 @@ +export interface walkable { + walk(cb: (entry: { + node: Array | unknown; + parent: unknown; + }, index: number | string) => boolean | void): false | undefined; +} +export declare function gatherNodeAncestry(node: walkable): Map; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/util/replace-component-values.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/util/replace-component-values.d.ts new file mode 100644 index 00000000..774051c6 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/util/replace-component-values.d.ts @@ -0,0 +1,2 @@ +import type { ComponentValue } from '../consume/consume-component-block-function'; +export declare function replaceComponentValues(componentValuesList: Array>, replaceWith: (componentValue: ComponentValue) => ComponentValue | void): ComponentValue[][]; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/util/source-indices.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/util/source-indices.d.ts new file mode 100644 index 00000000..92d124be --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/util/source-indices.d.ts @@ -0,0 +1,9 @@ +import { CSSToken } from '@csstools/css-tokenizer'; +interface TokenConvertible { + tokens(): Array; +} +/** + * Returns the start and end index of a node in the CSS source string. + */ +export declare function sourceIndices(x: TokenConvertible | Array): [number, number]; +export {}; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/util/stringify.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/util/stringify.d.ts new file mode 100644 index 00000000..6ab4140c --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/util/stringify.d.ts @@ -0,0 +1,2 @@ +import type { ComponentValue } from '../consume/consume-component-block-function'; +export declare function stringify(componentValueLists: Array>): string; diff --git a/node_modules/@csstools/css-parser-algorithms/dist/util/type-predicates.d.ts b/node_modules/@csstools/css-parser-algorithms/dist/util/type-predicates.d.ts new file mode 100644 index 00000000..896d3036 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/dist/util/type-predicates.d.ts @@ -0,0 +1,6 @@ +import { CommentNode, FunctionNode, SimpleBlockNode, TokenNode, WhitespaceNode } from '../consume/consume-component-block-function'; +export declare function isSimpleBlockNode(x: unknown): x is SimpleBlockNode; +export declare function isFunctionNode(x: unknown): x is FunctionNode; +export declare function isWhitespaceNode(x: unknown): x is WhitespaceNode; +export declare function isCommentNode(x: unknown): x is CommentNode; +export declare function isTokenNode(x: unknown): x is TokenNode; diff --git a/node_modules/@csstools/css-parser-algorithms/package.json b/node_modules/@csstools/css-parser-algorithms/package.json new file mode 100644 index 00000000..009c0560 --- /dev/null +++ b/node_modules/@csstools/css-parser-algorithms/package.json @@ -0,0 +1,72 @@ +{ + "name": "@csstools/css-parser-algorithms", + "description": "Algorithms to help you parse CSS from an array of tokens.", + "version": "2.3.2", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "@csstools/css-tokenizer": "^2.2.1" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "stryker": "stryker run --logLevel error", + "test": "node ./test/test.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node ./test/test.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "packages/css-parser-algorithms" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "css", + "parser" + ], + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/css-tokenizer/CHANGELOG.md b/node_modules/@csstools/css-tokenizer/CHANGELOG.md new file mode 100644 index 00000000..ee539e2a --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/CHANGELOG.md @@ -0,0 +1,54 @@ +# Changes to CSS Tokenizer + +### 2.2.1 + +_September 24, 2023_ + +- Small performance improvements + +### 2.2.0 + +_July 24, 2023_ + +- Add support for `unicode-range-token` +- Add `signCharacter` to `DimensionToken`, `NumberToken` and `PercentageToken` +- Correctly tokenize negative zero `-0` + +### 2.1.1 + +_April 10, 2023_ + +- Document `tokenize` helper function + +### 2.1.0 + +_February 21, 2023_ + +- Add `tokenize` helper function + +### 2.0.2 + +_February 13, 2023_ + +- Relax `isToken` to match artificial tokens that correctly follow the interface. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 19, 2023_ + +- Simplify `Reader` interface (breaking) +- Change the `ParseError` interface, this is now a subclass of `Error` (breaking) +- Remove the `commentsAreTokens` option as `true` was the only desirable value (breaking) +- Improve performance + +### 1.0.0 + +_November 14, 2022_ + +- Initial version diff --git a/node_modules/@csstools/css-tokenizer/LICENSE.md b/node_modules/@csstools/css-tokenizer/LICENSE.md new file mode 100644 index 00000000..af5411fa --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2022 Romain Menke, Antonio Laguna + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@csstools/css-tokenizer/README.md b/node_modules/@csstools/css-tokenizer/README.md new file mode 100644 index 00000000..810e47c8 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/README.md @@ -0,0 +1,108 @@ +# CSS Tokenizer + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +Implemented from : https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/ + +## Usage + +Add [CSS Tokenizer] to your project: + +```bash +npm install @csstools/css-tokenizer --save-dev +``` + +```js +import { tokenizer, TokenType } from '@csstools/css-tokenizer'; + +const myCSS = `@media only screen and (min-width: 768rem) { + .foo { + content: 'Some content!' !important; + } +} +`; + +const t = tokenizer({ + css: myCSS, +}); + +while (true) { + const token = t.nextToken(); + if (token[0] === TokenType.EOF) { + break; + } + + console.log(token); +} +``` + +Or use the `tokenize` helper function: + +```js +import { tokenize } from '@csstools/css-tokenizer'; + +const myCSS = `@media only screen and (min-width: 768rem) { + .foo { + content: 'Some content!' !important; + } +} +`; + +const tokens = tokenize({ + css: myCSS, +}); + +console.log(tokens); +``` + +### Options + +```ts +{ + onParseError?: (error: ParseError) => void +} +``` + +#### `onParseError` + +The tokenizer is forgiving and won't stop when a parse error is encountered. +Parse errors also aren't tokens. + +To receive parsing error information you can set a callback. + +```js +import { tokenizer, TokenType } from '@csstools/css-tokenizer'; + +const t = tokenizer({ + css: '\\', +}, { onParseError: (err) => console.warn(err) }); + +while (true) { + const token = t.nextToken(); + if (token[0] === TokenType.EOF) { + break; + } +} +``` + +Parser errors will try to inform you about the point in the tokenizer logic the error happened. +This tells you the kind of error. + +## Goals and non-goals + +Things this package aims to be: +- specification compliant CSS tokenizer +- a reliable low level package to be used in CSS parsers + +What it is not: +- opinionated +- fast +- small + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/css-tokenizer + +[CSS Tokenizer]: https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer diff --git a/node_modules/@csstools/css-tokenizer/dist/checks/four-code-points-would-start-cdo.d.ts b/node_modules/@csstools/css-tokenizer/dist/checks/four-code-points-would-start-cdo.d.ts new file mode 100644 index 00000000..a9243f63 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/checks/four-code-points-would-start-cdo.d.ts @@ -0,0 +1,2 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +export declare function checkIfFourCodePointsWouldStartCDO(reader: CodePointReader): boolean; diff --git a/node_modules/@csstools/css-tokenizer/dist/checks/matches-url-ident.d.ts b/node_modules/@csstools/css-tokenizer/dist/checks/matches-url-ident.d.ts new file mode 100644 index 00000000..6af31e4e --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/checks/matches-url-ident.d.ts @@ -0,0 +1 @@ +export declare function checkIfCodePointsMatchURLIdent(codePoints: Array): boolean; diff --git a/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-cdc.d.ts b/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-cdc.d.ts new file mode 100644 index 00000000..09bd2323 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-cdc.d.ts @@ -0,0 +1,2 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +export declare function checkIfThreeCodePointsWouldStartCDC(reader: CodePointReader): boolean; diff --git a/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-ident-sequence.d.ts b/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-ident-sequence.d.ts new file mode 100644 index 00000000..d48323bb --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-ident-sequence.d.ts @@ -0,0 +1,3 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +export declare function checkIfThreeCodePointsWouldStartAnIdentSequence(ctx: Context, reader: CodePointReader): boolean; diff --git a/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-number.d.ts b/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-number.d.ts new file mode 100644 index 00000000..9c428a45 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-number.d.ts @@ -0,0 +1,2 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +export declare function checkIfThreeCodePointsWouldStartANumber(reader: CodePointReader): boolean; diff --git a/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-unicode-range.d.ts b/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-unicode-range.d.ts new file mode 100644 index 00000000..46c91076 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/checks/three-code-points-would-start-unicode-range.d.ts @@ -0,0 +1,2 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +export declare function checkIfThreeCodePointsWouldStartAUnicodeRange(reader: CodePointReader): boolean; diff --git a/node_modules/@csstools/css-tokenizer/dist/checks/two-code-points-are-valid-escape.d.ts b/node_modules/@csstools/css-tokenizer/dist/checks/two-code-points-are-valid-escape.d.ts new file mode 100644 index 00000000..99d954fd --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/checks/two-code-points-are-valid-escape.d.ts @@ -0,0 +1,2 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +export declare function checkIfTwoCodePointsAreAValidEscape(reader: CodePointReader): boolean; diff --git a/node_modules/@csstools/css-tokenizer/dist/checks/two-code-points-start-comment.d.ts b/node_modules/@csstools/css-tokenizer/dist/checks/two-code-points-start-comment.d.ts new file mode 100644 index 00000000..9d9fd495 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/checks/two-code-points-start-comment.d.ts @@ -0,0 +1,2 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +export declare function checkIfTwoCodePointsStartAComment(reader: CodePointReader): boolean; diff --git a/node_modules/@csstools/css-tokenizer/dist/code-points/code-points.d.ts b/node_modules/@csstools/css-tokenizer/dist/code-points/code-points.d.ts new file mode 100644 index 00000000..3dcc4778 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/code-points/code-points.d.ts @@ -0,0 +1,96 @@ +/** ' */ +export declare const APOSTROPHE = 39; +/** * */ +export declare const ASTERISK = 42; +/** \b */ +export declare const BACKSPACE = 8; +/** \r */ +export declare const CARRIAGE_RETURN = 13; +/** \t */ +export declare const CHARACTER_TABULATION = 9; +/** : */ +export declare const COLON = 58; +/** , */ +export declare const COMMA = 44; +/** @ */ +export declare const COMMERCIAL_AT = 64; +/** \x7F */ +export declare const DELETE = 127; +/** ! */ +export declare const EXCLAMATION_MARK = 33; +/** \f */ +export declare const FORM_FEED = 12; +/** . */ +export declare const FULL_STOP = 46; +/** > */ +export declare const GREATER_THAN_SIGN = 62; +/** - */ +export declare const HYPHEN_MINUS = 45; +/** \x1F */ +export declare const INFORMATION_SEPARATOR_ONE = 31; +/** E */ +export declare const LATIN_CAPITAL_LETTER_E = 69; +/** e */ +export declare const LATIN_SMALL_LETTER_E = 101; +/** { */ +export declare const LEFT_CURLY_BRACKET = 123; +/** ( */ +export declare const LEFT_PARENTHESIS = 40; +/** [ */ +export declare const LEFT_SQUARE_BRACKET = 91; +/** < */ +export declare const LESS_THAN_SIGN = 60; +/** \n */ +export declare const LINE_FEED = 10; +/** \v */ +export declare const LINE_TABULATION = 11; +/** _ */ +export declare const LOW_LINE = 95; +/** \x10FFFF */ +export declare const MAXIMUM_ALLOWED_CODEPOINT = 1114111; +/** \x00 */ +export declare const NULL = 0; +/** # */ +export declare const NUMBER_SIGN = 35; +/** % */ +export declare const PERCENTAGE_SIGN = 37; +/** + */ +export declare const PLUS_SIGN = 43; +/** " */ +export declare const QUOTATION_MARK = 34; +/** � */ +export declare const REPLACEMENT_CHARACTER = 65533; +/** \ */ +export declare const REVERSE_SOLIDUS = 92; +/** } */ +export declare const RIGHT_CURLY_BRACKET = 125; +/** ) */ +export declare const RIGHT_PARENTHESIS = 41; +/** ] */ +export declare const RIGHT_SQUARE_BRACKET = 93; +/** ; */ +export declare const SEMICOLON = 59; +/** \u0E */ +export declare const SHIFT_OUT = 14; +/** / */ +export declare const SOLIDUS = 47; +/** \u20 */ +export declare const SPACE = 32; +/** u */ +export declare const LATIN_SMALL_LETTER_U = 117; +/** U */ +export declare const LATIN_CAPITAL_LETTER_U = 85; +/** r */ +export declare const LATIN_SMALL_LETTER_R = 114; +/** R */ +export declare const LATIN_CAPITAL_LETTER_R = 82; +/** l */ +export declare const LATIN_SMALL_LETTER_L = 108; +/** L */ +export declare const LATIN_CAPITAL_LETTER_L = 76; +/** ? */ +export declare const QUESTION_MARK = 63; +/** 0 */ +export declare const DIGIT_ZERO = 48; +/** F */ +export declare const LATIN_CAPITAL_LETTER_F = 70; diff --git a/node_modules/@csstools/css-tokenizer/dist/code-points/ranges.d.ts b/node_modules/@csstools/css-tokenizer/dist/code-points/ranges.d.ts new file mode 100644 index 00000000..2fe67d8c --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/code-points/ranges.d.ts @@ -0,0 +1,13 @@ +export declare function isDigitCodePoint(search: number): boolean; +export declare function isUppercaseLetterCodePoint(search: number): boolean; +export declare function isLowercaseLetterCodePoint(search: number): boolean; +export declare function isHexDigitCodePoint(search: number): boolean; +export declare function isLetterCodePoint(search: number): boolean; +export declare function isNonASCIICodePoint(search: number): boolean; +export declare function isIdentStartCodePoint(search: number): boolean; +export declare function isIdentCodePoint(search: number): boolean; +export declare function isNonASCII_IdentCodePoint(search: number): boolean; +export declare function isNonPrintableCodePoint(search: number): boolean; +export declare function isNewLine(search: number): boolean; +export declare function isWhitespace(search: number): boolean; +export declare function isSurrogate(search: number): boolean; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/bad-url.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/bad-url.d.ts new file mode 100644 index 00000000..4b18d0e8 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/bad-url.d.ts @@ -0,0 +1,3 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +export declare function consumeBadURL(ctx: Context, reader: CodePointReader): void; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/comment.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/comment.d.ts new file mode 100644 index 00000000..d4ba2211 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/comment.d.ts @@ -0,0 +1,4 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +import { TokenComment } from '../interfaces/token'; +export declare function consumeComment(ctx: Context, reader: CodePointReader): TokenComment; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/escaped-code-point.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/escaped-code-point.d.ts new file mode 100644 index 00000000..a6f8dc2e --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/escaped-code-point.d.ts @@ -0,0 +1,3 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +export declare function consumeEscapedCodePoint(ctx: Context, reader: CodePointReader): number; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/hash-token.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/hash-token.d.ts new file mode 100644 index 00000000..ac061a84 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/hash-token.d.ts @@ -0,0 +1,4 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +import { TokenDelim, TokenHash } from '../interfaces/token'; +export declare function consumeHashToken(ctx: Context, reader: CodePointReader): TokenDelim | TokenHash; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/ident-like-token.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/ident-like-token.d.ts new file mode 100644 index 00000000..6be73762 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/ident-like-token.d.ts @@ -0,0 +1,4 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +import { TokenBadURL, TokenFunction, TokenIdent, TokenURL } from '../interfaces/token'; +export declare function consumeIdentLikeToken(ctx: Context, reader: CodePointReader): TokenIdent | TokenFunction | TokenURL | TokenBadURL; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/ident-sequence.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/ident-sequence.d.ts new file mode 100644 index 00000000..992520e2 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/ident-sequence.d.ts @@ -0,0 +1,3 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +export declare function consumeIdentSequence(ctx: Context, reader: CodePointReader): Array; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/number.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/number.d.ts new file mode 100644 index 00000000..18f1704f --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/number.d.ts @@ -0,0 +1,4 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +import { NumberType } from '../interfaces/token'; +export declare function consumeNumber(ctx: Context, reader: CodePointReader): NumberType; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/numeric-token.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/numeric-token.d.ts new file mode 100644 index 00000000..1217bb0a --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/numeric-token.d.ts @@ -0,0 +1,4 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +import { TokenDimension, TokenNumber, TokenPercentage } from '../interfaces/token'; +export declare function consumeNumericToken(ctx: Context, reader: CodePointReader): TokenPercentage | TokenNumber | TokenDimension; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/string-token.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/string-token.d.ts new file mode 100644 index 00000000..31f6448f --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/string-token.d.ts @@ -0,0 +1,4 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +import { TokenBadString, TokenString } from '../interfaces/token'; +export declare function consumeStringToken(ctx: Context, reader: CodePointReader): TokenBadString | TokenString; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/unicode-range-token.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/unicode-range-token.d.ts new file mode 100644 index 00000000..526bcfe1 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/unicode-range-token.d.ts @@ -0,0 +1,4 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +import { TokenUnicodeRange } from '../interfaces/token'; +export declare function consumeUnicodeRangeToken(ctx: Context, reader: CodePointReader): TokenUnicodeRange; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/url-token.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/url-token.d.ts new file mode 100644 index 00000000..9140be70 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/url-token.d.ts @@ -0,0 +1,4 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { Context } from '../interfaces/context'; +import { TokenBadURL, TokenURL } from '../interfaces/token'; +export declare function consumeUrlToken(ctx: Context, reader: CodePointReader): TokenURL | TokenBadURL; diff --git a/node_modules/@csstools/css-tokenizer/dist/consume/whitespace-token.d.ts b/node_modules/@csstools/css-tokenizer/dist/consume/whitespace-token.d.ts new file mode 100644 index 00000000..4584dc9a --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/consume/whitespace-token.d.ts @@ -0,0 +1,3 @@ +import { CodePointReader } from '../interfaces/code-point-reader'; +import { TokenWhitespace } from '../interfaces/token'; +export declare function consumeWhiteSpace(reader: CodePointReader): TokenWhitespace; diff --git a/node_modules/@csstools/css-tokenizer/dist/index.cjs b/node_modules/@csstools/css-tokenizer/dist/index.cjs new file mode 100644 index 00000000..915afc28 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/index.cjs @@ -0,0 +1 @@ +"use strict";class ParseError extends Error{sourceStart;sourceEnd;parserState;constructor(e,o,n,r){super(e),this.name="ParseError",this.sourceStart=o,this.sourceEnd=n,this.parserState=r}}class Reader{cursor=0;source="";codePointSource=[];representationIndices=[-1];length=0;representationStart=0;representationEnd=-1;constructor(e){this.source=e;{let o=-1,n="";for(n of e)o+=n.length,this.codePointSource.push(n.codePointAt(0)),this.representationIndices.push(o)}this.length=this.codePointSource.length}advanceCodePoint(e=1){this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor]}readCodePoint(e=1){const o=this.codePointSource[this.cursor];return void 0!==o&&(this.cursor=this.cursor+e,this.representationEnd=this.representationIndices[this.cursor],o)}unreadCodePoint(e=1){this.cursor=this.cursor-e,this.representationEnd=this.representationIndices[this.cursor]}resetRepresentation(){this.representationStart=this.representationIndices[this.cursor]+1,this.representationEnd=-1}}var e,o,n;exports.TokenType=void 0,(e=exports.TokenType||(exports.TokenType={})).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",exports.NumberType=void 0,(o=exports.NumberType||(exports.NumberType={})).Integer="integer",o.Number="number",function(e){e.Unrestricted="unrestricted",e.ID="id"}(n||(n={}));const r=Object.values(exports.TokenType);const t=39,i=42,s=8,c=13,a=9,u=58,d=44,p=64,P=127,S=33,C=12,T=46,l=62,k=45,f=31,m=69,h=101,E=123,v=40,x=91,y=60,g=10,I=11,O=95,U=1114111,w=0,D=35,R=37,A=43,L=34,N=65533,b=92,q=125,W=41,F=93,H=59,V=14,B=47,z=32,K=117,M=85,$=114,J=82,_=108,j=76,Q=63,G=48,X=70;function checkIfFourCodePointsWouldStartCDO(e){return e.codePointSource[e.cursor]===y&&e.codePointSource[e.cursor+1]===S&&e.codePointSource[e.cursor+2]===k&&e.codePointSource[e.cursor+3]===k}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 isDigitCodePoint(e)||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)||e===O}function isIdentCodePoint(e){return isIdentStartCodePoint(e)||isDigitCodePoint(e)||e===k}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||e>=65536)}function isNewLine(e){return 10===e||13===e||12===e}function isWhitespace(e){return 32===e||10===e||9===e||13===e||12===e}function checkIfTwoCodePointsAreAValidEscape(e){return e.codePointSource[e.cursor]===b&&!isNewLine(e.codePointSource[e.cursor+1])}function checkIfThreeCodePointsWouldStartAnIdentSequence(e,o){return o.codePointSource[o.cursor]===k?o.codePointSource[o.cursor+1]===k||(!!isIdentStartCodePoint(o.codePointSource[o.cursor+1])||o.codePointSource[o.cursor+1]===b&&!isNewLine(o.codePointSource[o.cursor+2])):!!isIdentStartCodePoint(o.codePointSource[o.cursor])||checkIfTwoCodePointsAreAValidEscape(o)}function checkIfThreeCodePointsWouldStartANumber(e){return e.codePointSource[e.cursor]===A||e.codePointSource[e.cursor]===k?!!isDigitCodePoint(e.codePointSource[e.cursor+1])||e.codePointSource[e.cursor+1]===T&&isDigitCodePoint(e.codePointSource[e.cursor+2]):e.codePointSource[e.cursor]===T?isDigitCodePoint(e.codePointSource[e.cursor+1]):isDigitCodePoint(e.codePointSource[e.cursor])}function checkIfTwoCodePointsStartAComment(e){return e.codePointSource[e.cursor]===B&&e.codePointSource[e.cursor+1]===i}function checkIfThreeCodePointsWouldStartCDC(e){return e.codePointSource[e.cursor]===k&&e.codePointSource[e.cursor+1]===k&&e.codePointSource[e.cursor+2]===l}function consumeComment(e,o){for(o.advanceCodePoint(2);;){const n=o.readCodePoint();if(!1===n){e.onParseError(new ParseError("Unexpected EOF while consuming a comment.",o.representationStart,o.representationEnd,["4.3.2. Consume comments","Unexpected EOF"]));break}if(n===i&&(void 0!==o.codePointSource[o.cursor]&&o.codePointSource[o.cursor]===B)){o.advanceCodePoint();break}}return[exports.TokenType.Comment,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}function consumeEscapedCodePoint(e,o){const n=o.readCodePoint();if(!1===n)return e.onParseError(new ParseError("Unexpected EOF while consuming an escaped code point.",o.representationStart,o.representationEnd,["4.3.7. Consume an escaped code point","Unexpected EOF"])),N;if(isHexDigitCodePoint(n)){const e=[n];for(;void 0!==o.codePointSource[o.cursor]&&isHexDigitCodePoint(o.codePointSource[o.cursor])&&e.length<6;)e.push(o.codePointSource[o.cursor]),o.advanceCodePoint();isWhitespace(o.codePointSource[o.cursor])&&o.advanceCodePoint();const t=parseInt(String.fromCodePoint(...e),16);return 0===t?N:(r=t)>=55296&&r<=57343||t>U?N:t}var r;return n}function consumeIdentSequence(e,o){const n=[];for(;;)if(isIdentCodePoint(o.codePointSource[o.cursor]))n.push(o.codePointSource[o.cursor]),o.advanceCodePoint();else{if(!checkIfTwoCodePointsAreAValidEscape(o))return n;o.advanceCodePoint(),n.push(consumeEscapedCodePoint(e,o))}}function consumeHashToken(e,o){if(o.advanceCodePoint(),void 0!==o.codePointSource[o.cursor]&&(isIdentCodePoint(o.codePointSource[o.cursor])||checkIfTwoCodePointsAreAValidEscape(o))){let r=n.Unrestricted;checkIfThreeCodePointsWouldStartAnIdentSequence(0,o)&&(r=n.ID);const t=consumeIdentSequence(e,o);return[exports.TokenType.Hash,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...t),type:r}]}return[exports.TokenType.Delim,"#",o.representationStart,o.representationEnd,{value:"#"}]}function consumeNumber(e,o){let n=exports.NumberType.Integer;for(o.codePointSource[o.cursor]!==A&&o.codePointSource[o.cursor]!==k||o.advanceCodePoint();isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===T&&isDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint(2),n=exports.NumberType.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===h||o.codePointSource[o.cursor]===m){if(isDigitCodePoint(o.codePointSource[o.cursor+1]))o.advanceCodePoint(2);else{if(o.codePointSource[o.cursor+1]!==k&&o.codePointSource[o.cursor+1]!==A||!isDigitCodePoint(o.codePointSource[o.cursor+2]))return n;o.advanceCodePoint(3)}for(n=exports.NumberType.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint()}return n}function consumeNumericToken(e,o){let n;{const e=o.codePointSource[o.cursor];e===k?n="-":e===A&&(n="+")}const r=consumeNumber(0,o),t=parseFloat(o.source.slice(o.representationStart,o.representationEnd+1))||0;if(checkIfThreeCodePointsWouldStartAnIdentSequence(0,o)){const i=consumeIdentSequence(e,o);return[exports.TokenType.Dimension,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:t,signCharacter:n,type:r,unit:String.fromCodePoint(...i)}]}return o.codePointSource[o.cursor]===R?(o.advanceCodePoint(),[exports.TokenType.Percentage,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:t,signCharacter:n}]):[exports.TokenType.Number,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:t,signCharacter:n,type:r}]}function consumeWhiteSpace(e){for(;isWhitespace(e.codePointSource[e.cursor]);)e.advanceCodePoint();return[exports.TokenType.Whitespace,e.source.slice(e.representationStart,e.representationEnd+1),e.representationStart,e.representationEnd,void 0]}function consumeStringToken(e,o){let n="";const r=o.readCodePoint();for(;;){const t=o.readCodePoint();if(!1===t)return e.onParseError(new ParseError("Unexpected EOF while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected EOF"])),[exports.TokenType.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(isNewLine(t))return e.onParseError(new ParseError("Unexpected newline while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected newline"])),o.unreadCodePoint(),[exports.TokenType.BadString,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(t===r)return[exports.TokenType.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(t!==b)n+=String.fromCodePoint(t);else{if(void 0===o.codePointSource[o.cursor])continue;if(isNewLine(o.codePointSource[o.cursor])){o.advanceCodePoint();continue}n+=String.fromCodePoint(consumeEscapedCodePoint(e,o))}}}function checkIfCodePointsMatchURLIdent(e){return!(3!==e.length||e[0]!==K&&e[0]!==M||e[1]!==$&&e[1]!==J||e[2]!==_&&e[2]!==j)}function consumeBadURL(e,o){for(;;){if(void 0===o.codePointSource[o.cursor])return;if(o.codePointSource[o.cursor]===W)return void o.advanceCodePoint();checkIfTwoCodePointsAreAValidEscape(o)?(o.advanceCodePoint(),consumeEscapedCodePoint(e,o)):o.advanceCodePoint()}}function consumeUrlToken(e,o){for(;isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();let n="";for(;;){if(void 0===o.codePointSource[o.cursor])return e.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected EOF"])),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(o.codePointSource[o.cursor]===W)return o.advanceCodePoint(),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}];if(isWhitespace(o.codePointSource[o.cursor])){for(o.advanceCodePoint();isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();return void 0===o.codePointSource[o.cursor]?(e.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Consume as much whitespace as possible","Unexpected EOF"])),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}]):o.codePointSource[o.cursor]===W?(o.advanceCodePoint(),[exports.TokenType.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:n}]):(consumeBadURL(e,o),[exports.TokenType.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0])}if(o.codePointSource[o.cursor]===L||o.codePointSource[o.cursor]===t||o.codePointSource[o.cursor]===v||((r=o.codePointSource[o.cursor])===I||r===P||w<=r&&r<=s||V<=r&&r<=f))return consumeBadURL(e,o),e.onParseError(new ParseError("Unexpected character while consuming a url token.",o.representationStart,o.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"])),[exports.TokenType.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(o.codePointSource[o.cursor]===b){if(checkIfTwoCodePointsAreAValidEscape(o)){o.advanceCodePoint(),n+=String.fromCodePoint(consumeEscapedCodePoint(e,o));continue}return consumeBadURL(e,o),e.onParseError(new ParseError("Invalid escape sequence while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[exports.TokenType.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}n+=String.fromCodePoint(o.codePointSource[o.cursor]),o.advanceCodePoint()}var r}function consumeIdentLikeToken(e,o){const n=consumeIdentSequence(e,o);if(o.codePointSource[o.cursor]!==v)return[exports.TokenType.Ident,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...n)}];if(checkIfCodePointsMatchURLIdent(n)){o.advanceCodePoint();let r=0;for(;;){const e=isWhitespace(o.codePointSource[o.cursor]),i=isWhitespace(o.codePointSource[o.cursor+1]);if(e&&i){r+=1,o.advanceCodePoint(1);continue}const s=e?o.codePointSource[o.cursor+1]:o.codePointSource[o.cursor];if(s===L||s===t)return r>0&&o.unreadCodePoint(r),[exports.TokenType.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...n)}];break}return consumeUrlToken(e,o)}return o.advanceCodePoint(),[exports.TokenType.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...n)}]}function checkIfThreeCodePointsWouldStartAUnicodeRange(e){return!(e.codePointSource[e.cursor]!==K&&e.codePointSource[e.cursor]!==M||e.codePointSource[e.cursor+1]!==A||e.codePointSource[e.cursor+2]!==Q&&!isHexDigitCodePoint(e.codePointSource[e.cursor+2]))}function consumeUnicodeRangeToken(e,o){o.advanceCodePoint(2);const n=[],r=[];for(;void 0!==o.codePointSource[o.cursor]&&n.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)n.push(o.codePointSource[o.cursor]),o.advanceCodePoint();for(;void 0!==o.codePointSource[o.cursor]&&n.length<6&&o.codePointSource[o.cursor]===Q;)0===r.length&&r.push(...n),n.push(G),r.push(X),o.advanceCodePoint();if(!r.length&&o.codePointSource[o.cursor]===k&&isHexDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint();void 0!==o.codePointSource[o.cursor]&&r.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)r.push(o.codePointSource[o.cursor]),o.advanceCodePoint();if(!r.length){const e=parseInt(String.fromCodePoint(...n),16);return[exports.TokenType.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:e,endOfRange:e}]}const t=parseInt(String.fromCodePoint(...n),16),i=parseInt(String.fromCodePoint(...r),16);return[exports.TokenType.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:t,endOfRange:i}]}function tokenizer(e,o){const n=e.css.valueOf(),r=e.unicodeRangesAllowed??!1,i=new Reader(n),s={onParseError:(null==o?void 0:o.onParseError)??(()=>{})};return{nextToken:function nextToken(){i.resetRepresentation();const e=i.codePointSource[i.cursor];if(void 0===e)return[exports.TokenType.EOF,"",-1,-1,void 0];if(e===B&&checkIfTwoCodePointsStartAComment(i))return consumeComment(s,i);if(r&&(e===K||e===M)&&checkIfThreeCodePointsWouldStartAUnicodeRange(i))return consumeUnicodeRangeToken(0,i);if(isIdentStartCodePoint(e))return consumeIdentLikeToken(s,i);if(isDigitCodePoint(e))return consumeNumericToken(s,i);switch(e){case d:return i.advanceCodePoint(),[exports.TokenType.Comma,",",i.representationStart,i.representationEnd,void 0];case u:return i.advanceCodePoint(),[exports.TokenType.Colon,":",i.representationStart,i.representationEnd,void 0];case H:return i.advanceCodePoint(),[exports.TokenType.Semicolon,";",i.representationStart,i.representationEnd,void 0];case v:return i.advanceCodePoint(),[exports.TokenType.OpenParen,"(",i.representationStart,i.representationEnd,void 0];case W:return i.advanceCodePoint(),[exports.TokenType.CloseParen,")",i.representationStart,i.representationEnd,void 0];case x:return i.advanceCodePoint(),[exports.TokenType.OpenSquare,"[",i.representationStart,i.representationEnd,void 0];case F:return i.advanceCodePoint(),[exports.TokenType.CloseSquare,"]",i.representationStart,i.representationEnd,void 0];case E:return i.advanceCodePoint(),[exports.TokenType.OpenCurly,"{",i.representationStart,i.representationEnd,void 0];case q:return i.advanceCodePoint(),[exports.TokenType.CloseCurly,"}",i.representationStart,i.representationEnd,void 0];case t:case L:return consumeStringToken(s,i);case D:return consumeHashToken(s,i);case A:case T:return checkIfThreeCodePointsWouldStartANumber(i)?consumeNumericToken(s,i):(i.advanceCodePoint(),[exports.TokenType.Delim,i.source[i.representationStart],i.representationStart,i.representationEnd,{value:i.source[i.representationStart]}]);case g:case c:case C:case a:case z:return consumeWhiteSpace(i);case k:return checkIfThreeCodePointsWouldStartANumber(i)?consumeNumericToken(s,i):checkIfThreeCodePointsWouldStartCDC(i)?(i.advanceCodePoint(3),[exports.TokenType.CDC,"--\x3e",i.representationStart,i.representationEnd,void 0]):checkIfThreeCodePointsWouldStartAnIdentSequence(0,i)?consumeIdentLikeToken(s,i):(i.advanceCodePoint(),[exports.TokenType.Delim,"-",i.representationStart,i.representationEnd,{value:"-"}]);case y:return checkIfFourCodePointsWouldStartCDO(i)?(i.advanceCodePoint(4),[exports.TokenType.CDO,"\x3c!--",i.representationStart,i.representationEnd,void 0]):(i.advanceCodePoint(),[exports.TokenType.Delim,"<",i.representationStart,i.representationEnd,{value:"<"}]);case p:if(i.advanceCodePoint(),checkIfThreeCodePointsWouldStartAnIdentSequence(0,i)){const e=consumeIdentSequence(s,i);return[exports.TokenType.AtKeyword,i.source.slice(i.representationStart,i.representationEnd+1),i.representationStart,i.representationEnd,{value:String.fromCodePoint(...e)}]}return[exports.TokenType.Delim,"@",i.representationStart,i.representationEnd,{value:"@"}];case b:return checkIfTwoCodePointsAreAValidEscape(i)?consumeIdentLikeToken(s,i):(i.advanceCodePoint(),s.onParseError(new ParseError('Invalid escape sequence after "\\"',i.representationStart,i.representationEnd,["4.3.1. Consume a token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[exports.TokenType.Delim,"\\",i.representationStart,i.representationEnd,{value:"\\"}])}return i.advanceCodePoint(),[exports.TokenType.Delim,i.source[i.representationStart],i.representationStart,i.representationEnd,{value:i.source[i.representationStart]}]},endOfFile:function endOfFile(){return void 0===i.codePointSource[i.cursor]}}}exports.ParseError=ParseError,exports.Reader=Reader,exports.cloneTokens=function cloneTokens(e){return"undefined"!=typeof globalThis&&"structuredClone"in globalThis?structuredClone(e):JSON.parse(JSON.stringify(e))},exports.isToken=function isToken(e){return!!Array.isArray(e)&&(!(e.length<4)&&(!!r.includes(e[0])&&("string"==typeof e[1]&&("number"==typeof e[2]&&"number"==typeof e[3]))))},exports.mirrorVariant=function mirrorVariant(e){switch(e[0]){case exports.TokenType.OpenParen:return[exports.TokenType.CloseParen,")",-1,-1,void 0];case exports.TokenType.CloseParen:return[exports.TokenType.OpenParen,"(",-1,-1,void 0];case exports.TokenType.OpenCurly:return[exports.TokenType.CloseCurly,"}",-1,-1,void 0];case exports.TokenType.CloseCurly:return[exports.TokenType.OpenCurly,"{",-1,-1,void 0];case exports.TokenType.OpenSquare:return[exports.TokenType.CloseSquare,"]",-1,-1,void 0];case exports.TokenType.CloseSquare:return[exports.TokenType.OpenSquare,"[",-1,-1,void 0];default:return null}},exports.mirrorVariantType=function mirrorVariantType(e){switch(e){case exports.TokenType.OpenParen:return exports.TokenType.CloseParen;case exports.TokenType.CloseParen:return exports.TokenType.OpenParen;case exports.TokenType.OpenCurly:return exports.TokenType.CloseCurly;case exports.TokenType.CloseCurly:return exports.TokenType.OpenCurly;case exports.TokenType.OpenSquare:return exports.TokenType.CloseSquare;case exports.TokenType.CloseSquare:return exports.TokenType.OpenSquare;default:return null}},exports.mutateIdent=function mutateIdent(e,o){let n="";const r=[];{let e="";for(e of o)r.push(e.codePointAt(0))}let t=0;r[0]===k&&r[1]===k?(n="--",t=2):r[0]===k&&r[1]?(n="-",t=2,isIdentStartCodePoint(r[1])?n+=o[1]:n+=`\\${r[1].toString(16)} `):isIdentStartCodePoint(r[0])?(n=o[0],t=1):(n=`\\${r[0].toString(16)} `,t=1);for(let e=t;e=48&&e<=57}function isUppercaseLetterCodePoint(e){return e>=65&&e<=90}function isLowercaseLetterCodePoint(e){return e>=97&&e<=122}function isHexDigitCodePoint(e){return isDigitCodePoint(e)||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)||e===w}function isIdentCodePoint(e){return isIdentStartCodePoint(e)||isDigitCodePoint(e)||e===h}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||e>=65536)}function isNewLine(e){return 10===e||13===e||12===e}function isWhitespace(e){return 32===e||10===e||9===e||13===e||12===e}function checkIfTwoCodePointsAreAValidEscape(e){return e.codePointSource[e.cursor]===W&&!isNewLine(e.codePointSource[e.cursor+1])}function checkIfThreeCodePointsWouldStartAnIdentSequence(e,n){return n.codePointSource[n.cursor]===h?n.codePointSource[n.cursor+1]===h||(!!isIdentStartCodePoint(n.codePointSource[n.cursor+1])||n.codePointSource[n.cursor+1]===W&&!isNewLine(n.codePointSource[n.cursor+2])):!!isIdentStartCodePoint(n.codePointSource[n.cursor])||checkIfTwoCodePointsAreAValidEscape(n)}function checkIfThreeCodePointsWouldStartANumber(e){return e.codePointSource[e.cursor]===x||e.codePointSource[e.cursor]===h?!!isDigitCodePoint(e.codePointSource[e.cursor+1])||e.codePointSource[e.cursor+1]===l&&isDigitCodePoint(e.codePointSource[e.cursor+2]):e.codePointSource[e.cursor]===l?isDigitCodePoint(e.codePointSource[e.cursor+1]):isDigitCodePoint(e.codePointSource[e.cursor])}function checkIfTwoCodePointsStartAComment(e){return e.codePointSource[e.cursor]===B&&e.codePointSource[e.cursor+1]===i}function checkIfThreeCodePointsWouldStartCDC(e){return e.codePointSource[e.cursor]===h&&e.codePointSource[e.cursor+1]===h&&e.codePointSource[e.cursor+2]===f}function consumeComment(n,o){for(o.advanceCodePoint(2);;){const e=o.readCodePoint();if(!1===e){n.onParseError(new ParseError("Unexpected EOF while consuming a comment.",o.representationStart,o.representationEnd,["4.3.2. Consume comments","Unexpected EOF"]));break}if(e===i&&(void 0!==o.codePointSource[o.cursor]&&o.codePointSource[o.cursor]===B)){o.advanceCodePoint();break}}return[e.Comment,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}function consumeEscapedCodePoint(e,n){const o=n.readCodePoint();if(!1===o)return e.onParseError(new ParseError("Unexpected EOF while consuming an escaped code point.",n.representationStart,n.representationEnd,["4.3.7. Consume an escaped code point","Unexpected EOF"])),q;if(isHexDigitCodePoint(o)){const e=[o];for(;void 0!==n.codePointSource[n.cursor]&&isHexDigitCodePoint(n.codePointSource[n.cursor])&&e.length<6;)e.push(n.codePointSource[n.cursor]),n.advanceCodePoint();isWhitespace(n.codePointSource[n.cursor])&&n.advanceCodePoint();const t=parseInt(String.fromCodePoint(...e),16);return 0===t?q:(r=t)>=55296&&r<=57343||t>D?q:t}var r;return o}function consumeIdentSequence(e,n){const o=[];for(;;)if(isIdentCodePoint(n.codePointSource[n.cursor]))o.push(n.codePointSource[n.cursor]),n.advanceCodePoint();else{if(!checkIfTwoCodePointsAreAValidEscape(n))return o;n.advanceCodePoint(),o.push(consumeEscapedCodePoint(e,n))}}function consumeHashToken(n,r){if(r.advanceCodePoint(),void 0!==r.codePointSource[r.cursor]&&(isIdentCodePoint(r.codePointSource[r.cursor])||checkIfTwoCodePointsAreAValidEscape(r))){let t=o.Unrestricted;checkIfThreeCodePointsWouldStartAnIdentSequence(0,r)&&(t=o.ID);const i=consumeIdentSequence(n,r);return[e.Hash,r.source.slice(r.representationStart,r.representationEnd+1),r.representationStart,r.representationEnd,{value:String.fromCodePoint(...i),type:t}]}return[e.Delim,"#",r.representationStart,r.representationEnd,{value:"#"}]}function consumeNumber(e,o){let r=n.Integer;for(o.codePointSource[o.cursor]!==x&&o.codePointSource[o.cursor]!==h||o.advanceCodePoint();isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===l&&isDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint(2),r=n.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint();if(o.codePointSource[o.cursor]===v||o.codePointSource[o.cursor]===m){if(isDigitCodePoint(o.codePointSource[o.cursor+1]))o.advanceCodePoint(2);else{if(o.codePointSource[o.cursor+1]!==h&&o.codePointSource[o.cursor+1]!==x||!isDigitCodePoint(o.codePointSource[o.cursor+2]))return r;o.advanceCodePoint(3)}for(r=n.Number;isDigitCodePoint(o.codePointSource[o.cursor]);)o.advanceCodePoint()}return r}function consumeNumericToken(n,o){let r;{const e=o.codePointSource[o.cursor];e===h?r="-":e===x&&(r="+")}const t=consumeNumber(0,o),i=parseFloat(o.source.slice(o.representationStart,o.representationEnd+1))||0;if(checkIfThreeCodePointsWouldStartAnIdentSequence(0,o)){const c=consumeIdentSequence(n,o);return[e.Dimension,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i,signCharacter:r,type:t,unit:String.fromCodePoint(...c)}]}return o.codePointSource[o.cursor]===L?(o.advanceCodePoint(),[e.Percentage,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i,signCharacter:r}]):[e.Number,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:i,signCharacter:r,type:t}]}function consumeWhiteSpace(n){for(;isWhitespace(n.codePointSource[n.cursor]);)n.advanceCodePoint();return[e.Whitespace,n.source.slice(n.representationStart,n.representationEnd+1),n.representationStart,n.representationEnd,void 0]}function consumeStringToken(n,o){let r="";const t=o.readCodePoint();for(;;){const i=o.readCodePoint();if(!1===i)return n.onParseError(new ParseError("Unexpected EOF while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected EOF"])),[e.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(isNewLine(i))return n.onParseError(new ParseError("Unexpected newline while consuming a string token.",o.representationStart,o.representationEnd,["4.3.5. Consume a string token","Unexpected newline"])),o.unreadCodePoint(),[e.BadString,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(i===t)return[e.String,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(i!==W)r+=String.fromCodePoint(i);else{if(void 0===o.codePointSource[o.cursor])continue;if(isNewLine(o.codePointSource[o.cursor])){o.advanceCodePoint();continue}r+=String.fromCodePoint(consumeEscapedCodePoint(n,o))}}}function checkIfCodePointsMatchURLIdent(e){return!(3!==e.length||e[0]!==K&&e[0]!==M||e[1]!==$&&e[1]!==J||e[2]!==_&&e[2]!==j)}function consumeBadURL(e,n){for(;;){if(void 0===n.codePointSource[n.cursor])return;if(n.codePointSource[n.cursor]===b)return void n.advanceCodePoint();checkIfTwoCodePointsAreAValidEscape(n)?(n.advanceCodePoint(),consumeEscapedCodePoint(e,n)):n.advanceCodePoint()}}function consumeUrlToken(n,o){for(;isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();let r="";for(;;){if(void 0===o.codePointSource[o.cursor])return n.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Unexpected EOF"])),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(o.codePointSource[o.cursor]===b)return o.advanceCodePoint(),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}];if(isWhitespace(o.codePointSource[o.cursor])){for(o.advanceCodePoint();isWhitespace(o.codePointSource[o.cursor]);)o.advanceCodePoint();return void 0===o.codePointSource[o.cursor]?(n.onParseError(new ParseError("Unexpected EOF while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","Consume as much whitespace as possible","Unexpected EOF"])),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}]):o.codePointSource[o.cursor]===b?(o.advanceCodePoint(),[e.URL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:r}]):(consumeBadURL(n,o),[e.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0])}if(o.codePointSource[o.cursor]===y||o.codePointSource[o.cursor]===t||o.codePointSource[o.cursor]===k||((i=o.codePointSource[o.cursor])===U||i===p||A<=i&&i<=c||V<=i&&i<=E))return consumeBadURL(n,o),n.onParseError(new ParseError("Unexpected character while consuming a url token.",o.representationStart,o.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"])),[e.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0];if(o.codePointSource[o.cursor]===W){if(checkIfTwoCodePointsAreAValidEscape(o)){o.advanceCodePoint(),r+=String.fromCodePoint(consumeEscapedCodePoint(n,o));continue}return consumeBadURL(n,o),n.onParseError(new ParseError("Invalid escape sequence while consuming a url token.",o.representationStart,o.representationEnd,["4.3.6. Consume a url token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[e.BadURL,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,void 0]}r+=String.fromCodePoint(o.codePointSource[o.cursor]),o.advanceCodePoint()}var i}function consumeIdentLikeToken(n,o){const r=consumeIdentSequence(n,o);if(o.codePointSource[o.cursor]!==k)return[e.Ident,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...r)}];if(checkIfCodePointsMatchURLIdent(r)){o.advanceCodePoint();let i=0;for(;;){const n=isWhitespace(o.codePointSource[o.cursor]),c=isWhitespace(o.codePointSource[o.cursor+1]);if(n&&c){i+=1,o.advanceCodePoint(1);continue}const s=n?o.codePointSource[o.cursor+1]:o.codePointSource[o.cursor];if(s===y||s===t)return i>0&&o.unreadCodePoint(i),[e.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...r)}];break}return consumeUrlToken(n,o)}return o.advanceCodePoint(),[e.Function,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{value:String.fromCodePoint(...r)}]}function checkIfThreeCodePointsWouldStartAUnicodeRange(e){return!(e.codePointSource[e.cursor]!==K&&e.codePointSource[e.cursor]!==M||e.codePointSource[e.cursor+1]!==x||e.codePointSource[e.cursor+2]!==Q&&!isHexDigitCodePoint(e.codePointSource[e.cursor+2]))}function consumeUnicodeRangeToken(n,o){o.advanceCodePoint(2);const r=[],t=[];for(;void 0!==o.codePointSource[o.cursor]&&r.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)r.push(o.codePointSource[o.cursor]),o.advanceCodePoint();for(;void 0!==o.codePointSource[o.cursor]&&r.length<6&&o.codePointSource[o.cursor]===Q;)0===t.length&&t.push(...r),r.push(G),t.push(X),o.advanceCodePoint();if(!t.length&&o.codePointSource[o.cursor]===h&&isHexDigitCodePoint(o.codePointSource[o.cursor+1]))for(o.advanceCodePoint();void 0!==o.codePointSource[o.cursor]&&t.length<6&&isHexDigitCodePoint(o.codePointSource[o.cursor]);)t.push(o.codePointSource[o.cursor]),o.advanceCodePoint();if(!t.length){const n=parseInt(String.fromCodePoint(...r),16);return[e.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:n,endOfRange:n}]}const i=parseInt(String.fromCodePoint(...r),16),c=parseInt(String.fromCodePoint(...t),16);return[e.UnicodeRange,o.source.slice(o.representationStart,o.representationEnd+1),o.representationStart,o.representationEnd,{startOfRange:i,endOfRange:c}]}function tokenize(e,n){const o=tokenizer(e,n),r=[];{for(;!o.endOfFile();){const e=o.nextToken();e&&r.push(e)}const e=o.nextToken();e&&r.push(e)}return r}function tokenizer(n,o){const r=n.css.valueOf(),i=n.unicodeRangesAllowed??!1,c=new Reader(r),p={onParseError:(null==o?void 0:o.onParseError)??(()=>{})};return{nextToken:function nextToken(){c.resetRepresentation();const n=c.codePointSource[c.cursor];if(void 0===n)return[e.EOF,"",-1,-1,void 0];if(n===B&&checkIfTwoCodePointsStartAComment(c))return consumeComment(p,c);if(i&&(n===K||n===M)&&checkIfThreeCodePointsWouldStartAUnicodeRange(c))return consumeUnicodeRangeToken(0,c);if(isIdentStartCodePoint(n))return consumeIdentLikeToken(p,c);if(isDigitCodePoint(n))return consumeNumericToken(p,c);switch(n){case d:return c.advanceCodePoint(),[e.Comma,",",c.representationStart,c.representationEnd,void 0];case u:return c.advanceCodePoint(),[e.Colon,":",c.representationStart,c.representationEnd,void 0];case H:return c.advanceCodePoint(),[e.Semicolon,";",c.representationStart,c.representationEnd,void 0];case k:return c.advanceCodePoint(),[e.OpenParen,"(",c.representationStart,c.representationEnd,void 0];case b:return c.advanceCodePoint(),[e.CloseParen,")",c.representationStart,c.representationEnd,void 0];case I:return c.advanceCodePoint(),[e.OpenSquare,"[",c.representationStart,c.representationEnd,void 0];case F:return c.advanceCodePoint(),[e.CloseSquare,"]",c.representationStart,c.representationEnd,void 0];case g:return c.advanceCodePoint(),[e.OpenCurly,"{",c.representationStart,c.representationEnd,void 0];case N:return c.advanceCodePoint(),[e.CloseCurly,"}",c.representationStart,c.representationEnd,void 0];case t:case y:return consumeStringToken(p,c);case R:return consumeHashToken(p,c);case x:case l:return checkIfThreeCodePointsWouldStartANumber(c)?consumeNumericToken(p,c):(c.advanceCodePoint(),[e.Delim,c.source[c.representationStart],c.representationStart,c.representationEnd,{value:c.source[c.representationStart]}]);case O:case s:case C:case a:case z:return consumeWhiteSpace(c);case h:return checkIfThreeCodePointsWouldStartANumber(c)?consumeNumericToken(p,c):checkIfThreeCodePointsWouldStartCDC(c)?(c.advanceCodePoint(3),[e.CDC,"--\x3e",c.representationStart,c.representationEnd,void 0]):checkIfThreeCodePointsWouldStartAnIdentSequence(0,c)?consumeIdentLikeToken(p,c):(c.advanceCodePoint(),[e.Delim,"-",c.representationStart,c.representationEnd,{value:"-"}]);case T:return checkIfFourCodePointsWouldStartCDO(c)?(c.advanceCodePoint(4),[e.CDO,"\x3c!--",c.representationStart,c.representationEnd,void 0]):(c.advanceCodePoint(),[e.Delim,"<",c.representationStart,c.representationEnd,{value:"<"}]);case P:if(c.advanceCodePoint(),checkIfThreeCodePointsWouldStartAnIdentSequence(0,c)){const n=consumeIdentSequence(p,c);return[e.AtKeyword,c.source.slice(c.representationStart,c.representationEnd+1),c.representationStart,c.representationEnd,{value:String.fromCodePoint(...n)}]}return[e.Delim,"@",c.representationStart,c.representationEnd,{value:"@"}];case W:return checkIfTwoCodePointsAreAValidEscape(c)?consumeIdentLikeToken(p,c):(c.advanceCodePoint(),p.onParseError(new ParseError('Invalid escape sequence after "\\"',c.representationStart,c.representationEnd,["4.3.1. Consume a token","U+005C REVERSE SOLIDUS (\\)","The input stream does not start with a valid escape sequence"])),[e.Delim,"\\",c.representationStart,c.representationEnd,{value:"\\"}])}return c.advanceCodePoint(),[e.Delim,c.source[c.representationStart],c.representationStart,c.representationEnd,{value:c.source[c.representationStart]}]},endOfFile:function endOfFile(){return void 0===c.codePointSource[c.cursor]}}}function cloneTokens(e){return"undefined"!=typeof globalThis&&"structuredClone"in globalThis?structuredClone(e):JSON.parse(JSON.stringify(e))}function mutateIdent(e,n){let o="";const r=[];{let e="";for(e of n)r.push(e.codePointAt(0))}let t=0;r[0]===h&&r[1]===h?(o="--",t=2):r[0]===h&&r[1]?(o="-",t=2,isIdentStartCodePoint(r[1])?o+=n[1]:o+=`\\${r[1].toString(16)} `):isIdentStartCodePoint(r[0])?(o=n[0],t=1):(o=`\\${r[0].toString(16)} `,t=1);for(let e=t;e; + representationIndices: Array; + source: string; + advanceCodePoint(n?: number): void; + readCodePoint(n?: number): number | false; + unreadCodePoint(n?: number): void; + resetRepresentation(): void; +}; diff --git a/node_modules/@csstools/css-tokenizer/dist/interfaces/context.d.ts b/node_modules/@csstools/css-tokenizer/dist/interfaces/context.d.ts new file mode 100644 index 00000000..339bfe4e --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/interfaces/context.d.ts @@ -0,0 +1,4 @@ +import { ParseError } from './error'; +export type Context = { + onParseError: (error: ParseError) => void; +}; diff --git a/node_modules/@csstools/css-tokenizer/dist/interfaces/error.d.ts b/node_modules/@csstools/css-tokenizer/dist/interfaces/error.d.ts new file mode 100644 index 00000000..dc47e1d6 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/interfaces/error.d.ts @@ -0,0 +1,9 @@ +export declare class ParseError extends Error { + /** The index of the start character of the current token. */ + sourceStart: number; + /** The index of the end character of the current token. */ + sourceEnd: number; + /** The parser steps that preceded the error. */ + parserState: Array; + constructor(message: string, sourceStart: number, sourceEnd: number, parserState: Array); +} diff --git a/node_modules/@csstools/css-tokenizer/dist/interfaces/token.d.ts b/node_modules/@csstools/css-tokenizer/dist/interfaces/token.d.ts new file mode 100644 index 00000000..c4f2f4e3 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/interfaces/token.d.ts @@ -0,0 +1,137 @@ +export declare enum TokenType { + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#comment-diagram */ + Comment = "comment", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-at-keyword-token */ + AtKeyword = "at-keyword-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-bad-string-token */ + BadString = "bad-string-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-bad-url-token */ + BadURL = "bad-url-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-cdc-token */ + CDC = "CDC-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-cdo-token */ + CDO = "CDO-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-colon-token */ + Colon = "colon-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-comma-token */ + Comma = "comma-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-delim-token */ + Delim = "delim-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-dimension-token */ + Dimension = "dimension-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-eof-token */ + EOF = "EOF-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-function-token */ + Function = "function-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-hash-token */ + Hash = "hash-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-ident-token */ + Ident = "ident-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-percentage-token */ + Number = "number-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-percentage-token */ + Percentage = "percentage-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-semicolon-token */ + Semicolon = "semicolon-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-string-token */ + String = "string-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-url-token */ + URL = "url-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#typedef-whitespace-token */ + Whitespace = "whitespace-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-open-paren */ + OpenParen = "(-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-close-paren */ + CloseParen = ")-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-open-square */ + OpenSquare = "[-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-close-square */ + CloseSquare = "]-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-open-curly */ + OpenCurly = "{-token", + /** https://www.w3.org/TR/2021/CRD-css-syntax-3-20211224/#tokendef-close-curly */ + CloseCurly = "}-token", + /** https://drafts.csswg.org/css-syntax/#typedef-unicode-range-token */ + UnicodeRange = "unicode-range-token" +} +export declare enum NumberType { + Integer = "integer", + Number = "number" +} +export declare enum HashType { + Unrestricted = "unrestricted", + ID = "id" +} +export type TokenAtKeyword = Token; +export type TokenBadString = Token; +export type TokenBadURL = Token; +export type TokenCDC = Token; +export type TokenCDO = Token; +export type TokenColon = Token; +export type TokenComma = Token; +export type TokenComment = Token; +export type TokenDelim = Token; +export type TokenDimension = Token; +export type TokenEOF = Token; +export type TokenFunction = Token; +export type TokenHash = Token; +export type TokenIdent = Token; +export type TokenNumber = Token; +export type TokenPercentage = Token; +export type TokenSemicolon = Token; +export type TokenString = Token; +export type TokenURL = Token; +export type TokenWhitespace = Token; +export type TokenOpenParen = Token; +export type TokenCloseParen = Token; +export type TokenOpenSquare = Token; +export type TokenCloseSquare = Token; +export type TokenOpenCurly = Token; +export type TokenCloseCurly = Token; +export type TokenUnicodeRange = Token; +export type CSSToken = TokenAtKeyword | TokenBadString | TokenBadURL | TokenCDC | TokenCDO | TokenColon | TokenComma | TokenComment | TokenDelim | TokenDimension | TokenEOF | TokenFunction | TokenHash | TokenIdent | TokenNumber | TokenPercentage | TokenSemicolon | TokenString | TokenURL | TokenWhitespace | TokenOpenParen | TokenCloseParen | TokenOpenSquare | TokenCloseSquare | TokenOpenCurly | TokenCloseCurly | TokenUnicodeRange; +export type Token = [ + /** The type of token */ + T, + /** The token representation */ + string, + /** Start position of representation */ + number, + /** End position of representation */ + number, + /** Extra data */ + U +]; +export declare function mirrorVariantType(type: TokenType): TokenType | null; +export declare function mirrorVariant(token: CSSToken): CSSToken | null; +export declare function isToken(x: any): x is CSSToken; diff --git a/node_modules/@csstools/css-tokenizer/dist/reader.d.ts b/node_modules/@csstools/css-tokenizer/dist/reader.d.ts new file mode 100644 index 00000000..fc798c58 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/reader.d.ts @@ -0,0 +1,15 @@ +import { CodePointReader } from './interfaces/code-point-reader'; +export declare class Reader implements CodePointReader { + cursor: number; + source: string; + codePointSource: Array; + representationIndices: Array; + length: number; + representationStart: number; + representationEnd: number; + constructor(source: string); + advanceCodePoint(n?: number): void; + readCodePoint(n?: number): number | false; + unreadCodePoint(n?: number): void; + resetRepresentation(): void; +} diff --git a/node_modules/@csstools/css-tokenizer/dist/stringify.d.ts b/node_modules/@csstools/css-tokenizer/dist/stringify.d.ts new file mode 100644 index 00000000..574d2043 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/stringify.d.ts @@ -0,0 +1,2 @@ +import type { CSSToken } from './interfaces/token'; +export declare function stringify(...tokens: Array): string; diff --git a/node_modules/@csstools/css-tokenizer/dist/tokenizer.d.ts b/node_modules/@csstools/css-tokenizer/dist/tokenizer.d.ts new file mode 100644 index 00000000..318a16bb --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/tokenizer.d.ts @@ -0,0 +1,21 @@ +import { CSSToken } from './interfaces/token'; +import { ParseError } from './interfaces/error'; +interface Stringer { + valueOf(): string; +} +export declare function tokenize(input: { + css: Stringer; + unicodeRangesAllowed?: boolean; +}, options?: { + onParseError?: (error: ParseError) => void; +}): Array; +export declare function tokenizer(input: { + css: Stringer; + unicodeRangesAllowed?: boolean; +}, options?: { + onParseError?: (error: ParseError) => void; +}): { + nextToken: () => CSSToken | undefined; + endOfFile: () => boolean; +}; +export {}; diff --git a/node_modules/@csstools/css-tokenizer/dist/util/clone-tokens.d.ts b/node_modules/@csstools/css-tokenizer/dist/util/clone-tokens.d.ts new file mode 100644 index 00000000..1db05d03 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/util/clone-tokens.d.ts @@ -0,0 +1,2 @@ +import { CSSToken } from '../interfaces/token'; +export declare function cloneTokens(tokens: Array): Array; diff --git a/node_modules/@csstools/css-tokenizer/dist/util/mutations.d.ts b/node_modules/@csstools/css-tokenizer/dist/util/mutations.d.ts new file mode 100644 index 00000000..37f23cd2 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/dist/util/mutations.d.ts @@ -0,0 +1,2 @@ +import { TokenIdent } from '../interfaces/token'; +export declare function mutateIdent(ident: TokenIdent, newValue: string): void; diff --git a/node_modules/@csstools/css-tokenizer/package.json b/node_modules/@csstools/css-tokenizer/package.json new file mode 100644 index 00000000..4fcbeb61 --- /dev/null +++ b/node_modules/@csstools/css-tokenizer/package.json @@ -0,0 +1,73 @@ +{ + "name": "@csstools/css-tokenizer", + "description": "Tokenize CSS", + "version": "2.2.1", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "devDependencies": { + "@rmenke/css-tokenizer-tests": "^1.1.1", + "postcss-parser-tests": "^8.8.0" + }, + "scripts": { + "benchmark": "node ./test/benchmark.mjs", + "build": "rollup -c ../../rollup/default.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "stryker": "stryker run --logLevel error", + "test": "node ./test/test.mjs && node ./test/_import.mjs && node ./test/_require.cjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "packages/css-tokenizer" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "css", + "tokenizer" + ], + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/media-query-list-parser/CHANGELOG.md b/node_modules/@csstools/media-query-list-parser/CHANGELOG.md new file mode 100644 index 00000000..d8f8b70f --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/CHANGELOG.md @@ -0,0 +1,84 @@ +# Changes to Media Query List Parser + +### 2.1.5 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) + +### 2.1.4 + +_August 5, 2023_ + +- Do not allow keywords as media feature values in range context queries. + +### 2.1.3 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) + +### 2.1.2 + +_July 3, 2023_ + +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) + +### 2.1.1 + +_June 21, 2023_ + +- Fix parsing of `(width == 100px)`. This was erroneously parsed as a range query and will now instead be a general enclosed node. + +### 2.1.0 + +_June 1, 2023_ + +- Fix `walk` for `MediaFeatureValue` with complex component values. +- Add `state` to `walk` methods. + +This makes it possible pass down information from a parent structure to children. +e.g. you can set `entry.state.inInPrintQuery = true` for `print and (min-width: 30cm)`. + +### 2.0.4 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) + +### 2.0.3 + +_April 10, 2023_ + +- Add support for `env()` functions as values in media queries. +- Improve the detection of math function as values in media queries. + +### 2.0.2 + +_March 25, 2023_ + +- Improve case insensitive string matching. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 19, 2023_ + +- Refactor `MediaFeatureBoolean` so that it follows the same structure as `MediaFeaturePlain` (breaking) +- Change the `ParseError` interface, this is now a subclass of `Error` (breaking) +- Add `getName` and `getNameToken` to all nodes that have a feature name. +- Add `@custom-media` parsing. + +### 1.0.0 + +_November 14, 2022_ + +- Initial version diff --git a/node_modules/@csstools/media-query-list-parser/LICENSE.md b/node_modules/@csstools/media-query-list-parser/LICENSE.md new file mode 100644 index 00000000..af5411fa --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/LICENSE.md @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2022 Romain Menke, Antonio Laguna + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@csstools/media-query-list-parser/README.md b/node_modules/@csstools/media-query-list-parser/README.md new file mode 100644 index 00000000..d72dc7dd --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/README.md @@ -0,0 +1,61 @@ +# Media Query List Parser + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +Implemented from : https://www.w3.org/TR/mediaqueries-5/ + +## Usage + +Add [Media Query List Parser] to your project: + +```bash +npm install @csstools/media-query-list-parser @csstools/css-parser-algorithms @csstools/css-tokenizer --save-dev +``` + +[Media Query List Parser] depends on our CSS tokenizer and parser algorithms. +It must be used together with `@csstools/css-tokenizer` and `@csstools/css-parser-algorithms`. + +```ts +import { parse } from '@csstools/media-query-list-parser'; + +export function parseCustomMedia() { + const mediaQueryList = parse('screen and (min-width: 300px), (50px < height < 30vw)'); + + mediaQueryList.forEach((mediaQuery) => { + mediaQuery.walk((entry, index) => { + // Index of the current Node in `parent`. + console.log(index); + // Type of `parent`. + console.log(entry.parent.type); + + // Type of `node` + { + // Sometimes nodes can be arrays. + if (Array.isArray(entry.node)) { + entry.node.forEach((item) => { + console.log(item.type); + }); + } + + if ('type' in entry.node) { + console.log(entry.node.type); + } + } + + // stringified version of the current node. + console.log(entry.node.toString()); + + // Return `false` to stop the walker. + return false; + }); + }); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/media-query-list-parser + +[Media Query List Parser]: https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser diff --git a/node_modules/@csstools/media-query-list-parser/dist/index.cjs b/node_modules/@csstools/media-query-list-parser/dist/index.cjs new file mode 100644 index 00000000..aabcfbcc --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e,t=require("@csstools/css-parser-algorithms"),i=require("@csstools/css-tokenizer");exports.NodeType=void 0,(e=exports.NodeType||(exports.NodeType={})).CustomMedia="custom-media",e.GeneralEnclosed="general-enclosed",e.MediaAnd="media-and",e.MediaCondition="media-condition",e.MediaConditionListWithAnd="media-condition-list-and",e.MediaConditionListWithOr="media-condition-list-or",e.MediaFeature="media-feature",e.MediaFeatureBoolean="mf-boolean",e.MediaFeatureName="mf-name",e.MediaFeaturePlain="mf-plain",e.MediaFeatureRangeNameValue="mf-range-name-value",e.MediaFeatureRangeValueName="mf-range-value-name",e.MediaFeatureRangeValueNameValue="mf-range-value-name-value",e.MediaFeatureValue="mf-value",e.MediaInParens="media-in-parens",e.MediaNot="media-not",e.MediaOr="media-or",e.MediaQueryWithType="media-query-with-type",e.MediaQueryWithoutType="media-query-without-type",e.MediaQueryInvalid="media-query-invalid";const a=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(a,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}class MediaCondition{type=exports.NodeType.MediaCondition;media;constructor(e){this.media=e}tokens(){return this.media.tokens()}toString(){return this.media.toString()}indexOf(e){return e===this.media?"media":-1}at(e){if("media"===e)return this.media}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.media,parent:this,state:i},"media")&&this.media.walk(e,i)}toJSON(){return{type:this.type,media:this.media.toJSON()}}isMediaCondition(){return MediaCondition.isMediaCondition(this)}static isMediaCondition(e){return!!e&&(e instanceof MediaCondition&&e.type===exports.NodeType.MediaCondition)}}class MediaInParens{type=exports.NodeType.MediaInParens;media;before;after;constructor(e,t=[],i=[]){this.media=e,this.before=t,this.after=i}tokens(){return[...this.before,...this.media.tokens(),...this.after]}toString(){return i.stringify(...this.before)+this.media.toString()+i.stringify(...this.after)}indexOf(e){return e===this.media?"media":-1}at(e){if("media"===e)return this.media}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.media,parent:this,state:i},"media")&&("walk"in this.media?this.media.walk(e,i):void 0)}toJSON(){return{type:this.type,media:this.media.toJSON(),before:this.before,after:this.after}}isMediaInParens(){return MediaInParens.isMediaInParens(this)}static isMediaInParens(e){return!!e&&(e instanceof MediaInParens&&e.type===exports.NodeType.MediaInParens)}}class MediaQueryWithType{type=exports.NodeType.MediaQueryWithType;modifier;mediaType;and=void 0;media=void 0;constructor(e,t,i,a){this.modifier=e,this.mediaType=t,i&&a&&(this.and=i,this.media=a)}getModifier(){if(!this.modifier.length)return"";for(let e=0;ee.tokens()))}toString(){return this.media.map((e=>e.toString())).join("")}walk(e,t){let i=!1;if(this.media.forEach(((a,r)=>{if(i)return;let n;t&&(n={...t}),!1!==e({node:a,parent:this,state:n},r)?"walk"in a&&!1===a.walk(e,n)&&(i=!0):i=!0})),i)return!1}toJSON(){return{type:this.type,string:this.toString(),media:this.media}}isMediaQueryInvalid(){return MediaQueryInvalid.isMediaQueryInvalid(this)}static isMediaQueryInvalid(e){return!!e&&(e instanceof MediaQueryInvalid&&e.type===exports.NodeType.MediaQueryInvalid)}}class GeneralEnclosed{type=exports.NodeType.GeneralEnclosed;value;constructor(e){this.value=e}tokens(){return this.value.tokens()}toString(){return this.value.toString()}indexOf(e){return e===this.value?"value":-1}at(e){if("value"===e)return this.value}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.value,parent:this,state:i},"value")&&("walk"in this.value?this.value.walk(e,i):void 0)}toJSON(){return{type:this.type,tokens:this.tokens()}}isGeneralEnclosed(){return GeneralEnclosed.isGeneralEnclosed(this)}static isGeneralEnclosed(e){return!!e&&(e instanceof GeneralEnclosed&&e.type===exports.NodeType.GeneralEnclosed)}}class MediaAnd{type=exports.NodeType.MediaAnd;modifier;media;constructor(e,t){this.modifier=e,this.media=t}tokens(){return[...this.modifier,...this.media.tokens()]}toString(){return i.stringify(...this.modifier)+this.media.toString()}indexOf(e){return e===this.media?"media":-1}at(e){return"media"===e?this.media:null}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.media,parent:this,state:i},"media")&&this.media.walk(e,i)}toJSON(){return{type:this.type,modifier:this.modifier,media:this.media.toJSON()}}isMediaAnd(){return MediaAnd.isMediaAnd(this)}static isMediaAnd(e){return!!e&&(e instanceof MediaAnd&&e.type===exports.NodeType.MediaAnd)}}class MediaConditionListWithAnd{type=exports.NodeType.MediaConditionListWithAnd;leading;list;before;after;constructor(e,t,i=[],a=[]){this.leading=e,this.list=t,this.before=i,this.after=a}tokens(){return[...this.before,...this.leading.tokens(),...this.list.flatMap((e=>e.tokens())),...this.after]}toString(){return i.stringify(...this.before)+this.leading.toString()+this.list.map((e=>e.toString())).join("")+i.stringify(...this.after)}indexOf(e){return e===this.leading?"leading":"media-and"===e.type?this.list.indexOf(e):-1}at(e){return"leading"===e?this.leading:"number"==typeof e?(e<0&&(e=this.list.length+e),this.list[e]):void 0}walk(e,t){let i;if(t&&(i={...t}),!1===e({node:this.leading,parent:this,state:i},"leading"))return!1;if("walk"in this.leading&&!1===this.leading.walk(e,i))return!1;let a=!1;return this.list.forEach(((r,n)=>{a||(t&&(i={...t}),!1!==e({node:r,parent:this,state:i},n)?"walk"in r&&!1===r.walk(e,i)&&(a=!0):a=!0)})),!a&&void 0}toJSON(){return{type:this.type,leading:this.leading.toJSON(),list:this.list.map((e=>e.toJSON())),before:this.before,after:this.after}}isMediaConditionListWithAnd(){return MediaConditionListWithAnd.isMediaConditionListWithAnd(this)}static isMediaConditionListWithAnd(e){return!!e&&(e instanceof MediaConditionListWithAnd&&e.type===exports.NodeType.MediaConditionListWithAnd)}}class MediaConditionListWithOr{type=exports.NodeType.MediaConditionListWithOr;leading;list;before;after;constructor(e,t,i=[],a=[]){this.leading=e,this.list=t,this.before=i,this.after=a}tokens(){return[...this.before,...this.leading.tokens(),...this.list.flatMap((e=>e.tokens())),...this.after]}toString(){return i.stringify(...this.before)+this.leading.toString()+this.list.map((e=>e.toString())).join("")+i.stringify(...this.after)}indexOf(e){return e===this.leading?"leading":"media-or"===e.type?this.list.indexOf(e):-1}at(e){return"leading"===e?this.leading:"number"==typeof e?(e<0&&(e=this.list.length+e),this.list[e]):void 0}walk(e,t){let i;if(t&&(i={...t}),!1===e({node:this.leading,parent:this,state:i},"leading"))return!1;if("walk"in this.leading&&!1===this.leading.walk(e,i))return!1;let a=!1;return this.list.forEach(((r,n)=>{a||(t&&(i={...t}),!1!==e({node:r,parent:this,state:i},n)?"walk"in r&&!1===r.walk(e,i)&&(a=!0):a=!0)})),!a&&void 0}toJSON(){return{type:this.type,leading:this.leading.toJSON(),list:this.list.map((e=>e.toJSON())),before:this.before,after:this.after}}isMediaConditionListWithOr(){return MediaConditionListWithOr.isMediaConditionListWithOr(this)}static isMediaConditionListWithOr(e){return!!e&&(e instanceof MediaConditionListWithOr&&e.type===exports.NodeType.MediaConditionListWithOr)}}function isNumber(e){return!!(e.type===t.ComponentValueType.Token&&e.value[0]===i.TokenType.Number||e.type===t.ComponentValueType.Function&&r.has(toLowerCaseAZ(e.name[4].value)))}const r=new Set(["abs","acos","asin","atan","atan2","calc","clamp","cos","exp","hypot","log","max","min","mod","pow","rem","round","sign","sin","sqrt","tan"]);function isDimension(e){return e.type===t.ComponentValueType.Token&&e.value[0]===i.TokenType.Dimension}function isIdent(e){return e.type===t.ComponentValueType.Token&&e.value[0]===i.TokenType.Ident}function isEnvironmentVariable(e){return e.type===t.ComponentValueType.Function&&"env"===toLowerCaseAZ(e.name[4].value)}class MediaFeatureName{type=exports.NodeType.MediaFeatureName;name;before;after;constructor(e,t=[],i=[]){this.name=e,this.before=t,this.after=i}getName(){return this.name.value[4].value}getNameToken(){return this.name.value}tokens(){return[...this.before,...this.name.tokens(),...this.after]}toString(){return i.stringify(...this.before)+this.name.toString()+i.stringify(...this.after)}indexOf(e){return e===this.name?"name":-1}at(e){if("name"===e)return this.name}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens()}}isMediaFeatureName(){return MediaFeatureName.isMediaFeatureName(this)}static isMediaFeatureName(e){return!!e&&(e instanceof MediaFeatureName&&e.type===exports.NodeType.MediaFeatureName)}}function parseMediaFeatureName(e){let i=-1;for(let a=0;ae.tokens())),e.slice(i+1).flatMap((e=>e.tokens())))}class MediaFeatureBoolean{type=exports.NodeType.MediaFeatureBoolean;name;constructor(e){this.name=e}getName(){return this.name.getName()}getNameToken(){return this.name.getNameToken()}tokens(){return this.name.tokens()}toString(){return this.name.toString()}indexOf(e){return e===this.name?"name":-1}at(e){if("name"===e)return this.name}toJSON(){return{type:this.type,name:this.name.toJSON(),tokens:this.tokens()}}isMediaFeatureBoolean(){return MediaFeatureBoolean.isMediaFeatureBoolean(this)}static isMediaFeatureBoolean(e){return!!e&&(e instanceof MediaFeatureBoolean&&e.type===exports.NodeType.MediaFeatureBoolean)}}function parseMediaFeatureBoolean(e){const t=parseMediaFeatureName(e);return!1===t?t:new MediaFeatureBoolean(t)}class MediaFeatureValue{type=exports.NodeType.MediaFeatureValue;value;before;after;constructor(e,t=[],i=[]){Array.isArray(e)&&1===e.length?this.value=e[0]:this.value=e,this.before=t,this.after=i}tokens(){return Array.isArray(this.value)?[...this.before,...this.value.flatMap((e=>e.tokens())),...this.after]:[...this.before,...this.value.tokens(),...this.after]}toString(){return Array.isArray(this.value)?i.stringify(...this.before)+this.value.map((e=>e.toString())).join("")+i.stringify(...this.after):i.stringify(...this.before)+this.value.toString()+i.stringify(...this.after)}indexOf(e){return e===this.value?"value":-1}at(e){return"value"===e?this.value:Array.isArray(this.value)&&"number"==typeof e?(e<0&&(e=this.value.length+e),this.value[e]):void 0}walk(e,t){if(Array.isArray(this.value)){let i=!1;if(this.value.forEach(((a,r)=>{if(i)return;let n;t&&(n={...t}),!1!==e({node:a,parent:this,state:n},r)?"walk"in a&&!1===a.walk(e,n)&&(i=!0):i=!0})),i)return!1}else{let i;if(t&&(i={...t}),!1===e({node:this.value,parent:this,state:i},"value"))return!1;if("walk"in this.value)return this.value.walk(e,i)}}toJSON(){return Array.isArray(this.value)?{type:this.type,value:this.value.map((e=>e.toJSON())),tokens:this.tokens()}:{type:this.type,value:this.value.toJSON(),tokens:this.tokens()}}isMediaFeatureValue(){return MediaFeatureValue.isMediaFeatureValue(this)}static isMediaFeatureValue(e){return!!e&&(e instanceof MediaFeatureValue&&e.type===exports.NodeType.MediaFeatureValue)}}function parseMediaFeatureValue(e,i=!1){let a=-1,r=-1;for(let n=0;ne.tokens())),e.slice(r+1).flatMap((e=>e.tokens())))}function matchesRatioExactly(e){let t=-1,i=-1;const a=matchesRatio(e);if(-1===a)return-1;t=a[0],i=a[1];for(let t=i+1;t2)return!1;if(e[0][0]!==i.TokenType.Delim)return!1;if(1===e.length)switch(e[0][4].value){case exports.MediaFeatureEQ.EQ:return exports.MediaFeatureEQ.EQ;case exports.MediaFeatureLT.LT:return exports.MediaFeatureLT.LT;case exports.MediaFeatureGT.GT:return exports.MediaFeatureGT.GT;default:return!1}if(e[1][0]!==i.TokenType.Delim)return!1;if(e[1][4].value!==exports.MediaFeatureEQ.EQ)return!1;switch(e[0][4].value){case exports.MediaFeatureLT.LT:return exports.MediaFeatureLT.LT_OR_EQ;case exports.MediaFeatureGT.GT:return exports.MediaFeatureGT.GT_OR_EQ;default:return!1}}exports.MediaFeatureLT=void 0,(n=exports.MediaFeatureLT||(exports.MediaFeatureLT={})).LT="<",n.LT_OR_EQ="<=",exports.MediaFeatureGT=void 0,(s=exports.MediaFeatureGT||(exports.MediaFeatureGT={})).GT=">",s.GT_OR_EQ=">=",exports.MediaFeatureEQ=void 0,(exports.MediaFeatureEQ||(exports.MediaFeatureEQ={})).EQ="=";class MediaFeatureRangeNameValue{type=exports.NodeType.MediaFeatureRangeNameValue;name;operator;value;constructor(e,t,i){this.name=e,this.operator=t,this.value=i}operatorKind(){return comparisonFromTokens(this.operator)}getName(){return this.name.getName()}getNameToken(){return this.name.getNameToken()}tokens(){return[...this.name.tokens(),...this.operator,...this.value.tokens()]}toString(){return this.name.toString()+i.stringify(...this.operator)+this.value.toString()}indexOf(e){return e===this.name?"name":e===this.value?"value":-1}at(e){return"name"===e?this.name:"value"===e?this.value:void 0}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.value,parent:this,state:i},"value")&&("walk"in this.value?this.value.walk(e,i):void 0)}toJSON(){return{type:this.type,name:this.name.toJSON(),value:this.value.toJSON(),tokens:this.tokens()}}isMediaFeatureRangeNameValue(){return MediaFeatureRangeNameValue.isMediaFeatureRangeNameValue(this)}static isMediaFeatureRangeNameValue(e){return!!e&&(e instanceof MediaFeatureRangeNameValue&&e.type===exports.NodeType.MediaFeatureRangeNameValue)}}class MediaFeatureRangeValueName{type=exports.NodeType.MediaFeatureRangeValueName;name;operator;value;constructor(e,t,i){this.name=e,this.operator=t,this.value=i}operatorKind(){return comparisonFromTokens(this.operator)}getName(){return this.name.getName()}getNameToken(){return this.name.getNameToken()}tokens(){return[...this.value.tokens(),...this.operator,...this.name.tokens()]}toString(){return this.value.toString()+i.stringify(...this.operator)+this.name.toString()}indexOf(e){return e===this.name?"name":e===this.value?"value":-1}at(e){return"name"===e?this.name:"value"===e?this.value:void 0}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.value,parent:this,state:i},"value")&&("walk"in this.value?this.value.walk(e,i):void 0)}toJSON(){return{type:this.type,name:this.name.toJSON(),value:this.value.toJSON(),tokens:this.tokens()}}isMediaFeatureRangeValueName(){return MediaFeatureRangeValueName.isMediaFeatureRangeValueName(this)}static isMediaFeatureRangeValueName(e){return!!e&&(e instanceof MediaFeatureRangeValueName&&e.type===exports.NodeType.MediaFeatureRangeValueName)}}class MediaFeatureRangeValueNameValue{type=exports.NodeType.MediaFeatureRangeValueNameValue;name;valueOne;valueOneOperator;valueTwo;valueTwoOperator;constructor(e,t,i,a,r){this.name=e,this.valueOne=t,this.valueOneOperator=i,this.valueTwo=a,this.valueTwoOperator=r}valueOneOperatorKind(){return comparisonFromTokens(this.valueOneOperator)}valueTwoOperatorKind(){return comparisonFromTokens(this.valueTwoOperator)}getName(){return this.name.getName()}getNameToken(){return this.name.getNameToken()}tokens(){return[...this.valueOne.tokens(),...this.valueOneOperator,...this.name.tokens(),...this.valueTwoOperator,...this.valueTwo.tokens()]}toString(){return this.valueOne.toString()+i.stringify(...this.valueOneOperator)+this.name.toString()+i.stringify(...this.valueTwoOperator)+this.valueTwo.toString()}indexOf(e){return e===this.name?"name":e===this.valueOne?"valueOne":e===this.valueTwo?"valueTwo":-1}at(e){return"name"===e?this.name:"valueOne"===e?this.valueOne:"valueTwo"===e?this.valueTwo:void 0}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.valueOne,parent:this,state:i},"valueOne")&&((!("walk"in this.valueOne)||!1!==this.valueOne.walk(e,i))&&(t&&(i={...t}),!1!==e({node:this.valueTwo,parent:this,state:i},"valueTwo")&&((!("walk"in this.valueTwo)||!1!==this.valueTwo.walk(e,i))&&void 0)))}toJSON(){return{type:this.type,name:this.name.toJSON(),valueOne:this.valueOne.toJSON(),valueTwo:this.valueTwo.toJSON(),tokens:this.tokens()}}isMediaFeatureRangeValueNameValue(){return MediaFeatureRangeValueNameValue.isMediaFeatureRangeValueNameValue(this)}static isMediaFeatureRangeValueNameValue(e){return!!e&&(e instanceof MediaFeatureRangeValueNameValue&&e.type===exports.NodeType.MediaFeatureRangeValueNameValue)}}function parseMediaFeatureRange(e){let a=!1,r=!1;for(let n=0;ne.tokens())),-1!==r&&(o=e.slice(a+1,r+1).flatMap((e=>e.tokens())))):-1!==r&&(o=e.slice(0,r+1).flatMap((e=>e.tokens())));const u=parseMediaConditionWithoutOr(e.slice(Math.max(a,r,n)+1));return!1===u?new MediaQueryWithType(s,[...o,...e.slice(r+1).flatMap((e=>e.tokens()))]):new MediaQueryWithType(s,o,e.slice(r+1,n+1).flatMap((e=>e.tokens())),u)}}function parseMediaConditionListWithOr(e){let i=!1;const a=[];let r=-1,n=-1;for(let s=0;se.tokens())),e.slice(n+1).flatMap((e=>e.tokens())))}function parseMediaConditionListWithAnd(e){let i=!1;const a=[];let r=-1,n=-1;for(let s=0;se.tokens())),e.slice(n+1).flatMap((e=>e.tokens())))}function parseMediaCondition(e){const t=parseMediaNot(e);if(!1!==t)return new MediaCondition(t);const i=parseMediaConditionListWithAnd(e);if(!1!==i)return new MediaCondition(i);const a=parseMediaConditionListWithOr(e);if(!1!==a)return new MediaCondition(a);const r=parseMediaInParens(e);return!1!==r&&new MediaCondition(r)}function parseMediaConditionWithoutOr(e){const t=parseMediaNot(e);if(!1!==t)return new MediaCondition(t);const i=parseMediaConditionListWithAnd(e);if(!1!==i)return new MediaCondition(i);const a=parseMediaInParens(e);return!1!==a&&new MediaCondition(a)}function parseMediaInParens(e){let a=-1;for(let i=0;ie.tokens())),r.startToken],s=[r.endToken,...e.slice(a+1).flatMap((e=>e.tokens()))],o=parseMediaFeature(r,n,s);if(!1!==o)return new MediaInParens(o);const u=parseMediaCondition(r.value);return!1!==u?new MediaInParens(u,n,s):new MediaInParens(new GeneralEnclosed(r),e.slice(0,a).flatMap((e=>e.tokens())),e.slice(a+1).flatMap((e=>e.tokens())))}function parseMediaInParensFromSimpleBlock(e){if(e.startToken[0]!==i.TokenType.OpenParen)return!1;const t=parseMediaFeature(e,[e.startToken],[e.endToken]);if(!1!==t)return new MediaInParens(t);const a=parseMediaCondition(e.value);return!1!==a?new MediaInParens(a,[e.startToken],[e.endToken]):new MediaInParens(new GeneralEnclosed(e))}function parseMediaNot(e){let i=!1,a=null;for(let r=0;re.tokens())),t)}}}return a||!1}function parseMediaOr(e){let i=!1;for(let a=0;ae.tokens())),t)}}return!1}}return!1}function parseMediaAnd(e){let i=!1;for(let a=0;ae.tokens())),t)}}return!1}}return!1}function parseFromTokens(e,i){const a=t.parseCommaSeparatedListOfComponentValues(e,{onParseError:null==i?void 0:i.onParseError});return a.map(((e,t)=>{const r=parseMediaQuery(e);return 0==r&&!0===(null==i?void 0:i.preserveInvalidMediaQueries)?new MediaQueryInvalid(a[t]):r})).filter((e=>!!e))}exports.MediaQueryModifier=void 0,(o=exports.MediaQueryModifier||(exports.MediaQueryModifier={})).Not="not",o.Only="only";class CustomMedia{type=exports.NodeType.CustomMedia;name;mediaQueryList=null;trueOrFalseKeyword=null;constructor(e,t,i){this.name=e,this.mediaQueryList=t,this.trueOrFalseKeyword=i??null}getName(){for(let e=0;ee.toJSON()))}}isCustomMedia(){return CustomMedia.isCustomMedia(this)}static isCustomMedia(e){return!!e&&(e instanceof CustomMedia&&e.type===exports.NodeType.CustomMedia)}}function parseCustomMediaFromTokens(e,t){let a=[],r=e;for(let t=0;tString.fromCharCode(e.charCodeAt(0)+32)))}class MediaCondition{type=f.MediaCondition;media;constructor(e){this.media=e}tokens(){return this.media.tokens()}toString(){return this.media.toString()}indexOf(e){return e===this.media?"media":-1}at(e){if("media"===e)return this.media}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.media,parent:this,state:i},"media")&&this.media.walk(e,i)}toJSON(){return{type:this.type,media:this.media.toJSON()}}isMediaCondition(){return MediaCondition.isMediaCondition(this)}static isMediaCondition(e){return!!e&&(e instanceof MediaCondition&&e.type===f.MediaCondition)}}class MediaInParens{type=f.MediaInParens;media;before;after;constructor(e,t=[],i=[]){this.media=e,this.before=t,this.after=i}tokens(){return[...this.before,...this.media.tokens(),...this.after]}toString(){return u(...this.before)+this.media.toString()+u(...this.after)}indexOf(e){return e===this.media?"media":-1}at(e){if("media"===e)return this.media}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.media,parent:this,state:i},"media")&&("walk"in this.media?this.media.walk(e,i):void 0)}toJSON(){return{type:this.type,media:this.media.toJSON(),before:this.before,after:this.after}}isMediaInParens(){return MediaInParens.isMediaInParens(this)}static isMediaInParens(e){return!!e&&(e instanceof MediaInParens&&e.type===f.MediaInParens)}}class MediaQueryWithType{type=f.MediaQueryWithType;modifier;mediaType;and=void 0;media=void 0;constructor(e,t,i,a){this.modifier=e,this.mediaType=t,i&&a&&(this.and=i,this.media=a)}getModifier(){if(!this.modifier.length)return"";for(let e=0;ee.tokens()))}toString(){return this.media.map((e=>e.toString())).join("")}walk(e,t){let i=!1;if(this.media.forEach(((a,n)=>{if(i)return;let r;t&&(r={...t}),!1!==e({node:a,parent:this,state:r},n)?"walk"in a&&!1===a.walk(e,r)&&(i=!0):i=!0})),i)return!1}toJSON(){return{type:this.type,string:this.toString(),media:this.media}}isMediaQueryInvalid(){return MediaQueryInvalid.isMediaQueryInvalid(this)}static isMediaQueryInvalid(e){return!!e&&(e instanceof MediaQueryInvalid&&e.type===f.MediaQueryInvalid)}}class GeneralEnclosed{type=f.GeneralEnclosed;value;constructor(e){this.value=e}tokens(){return this.value.tokens()}toString(){return this.value.toString()}indexOf(e){return e===this.value?"value":-1}at(e){if("value"===e)return this.value}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.value,parent:this,state:i},"value")&&("walk"in this.value?this.value.walk(e,i):void 0)}toJSON(){return{type:this.type,tokens:this.tokens()}}isGeneralEnclosed(){return GeneralEnclosed.isGeneralEnclosed(this)}static isGeneralEnclosed(e){return!!e&&(e instanceof GeneralEnclosed&&e.type===f.GeneralEnclosed)}}class MediaAnd{type=f.MediaAnd;modifier;media;constructor(e,t){this.modifier=e,this.media=t}tokens(){return[...this.modifier,...this.media.tokens()]}toString(){return u(...this.modifier)+this.media.toString()}indexOf(e){return e===this.media?"media":-1}at(e){return"media"===e?this.media:null}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.media,parent:this,state:i},"media")&&this.media.walk(e,i)}toJSON(){return{type:this.type,modifier:this.modifier,media:this.media.toJSON()}}isMediaAnd(){return MediaAnd.isMediaAnd(this)}static isMediaAnd(e){return!!e&&(e instanceof MediaAnd&&e.type===f.MediaAnd)}}class MediaConditionListWithAnd{type=f.MediaConditionListWithAnd;leading;list;before;after;constructor(e,t,i=[],a=[]){this.leading=e,this.list=t,this.before=i,this.after=a}tokens(){return[...this.before,...this.leading.tokens(),...this.list.flatMap((e=>e.tokens())),...this.after]}toString(){return u(...this.before)+this.leading.toString()+this.list.map((e=>e.toString())).join("")+u(...this.after)}indexOf(e){return e===this.leading?"leading":"media-and"===e.type?this.list.indexOf(e):-1}at(e){return"leading"===e?this.leading:"number"==typeof e?(e<0&&(e=this.list.length+e),this.list[e]):void 0}walk(e,t){let i;if(t&&(i={...t}),!1===e({node:this.leading,parent:this,state:i},"leading"))return!1;if("walk"in this.leading&&!1===this.leading.walk(e,i))return!1;let a=!1;return this.list.forEach(((n,r)=>{a||(t&&(i={...t}),!1!==e({node:n,parent:this,state:i},r)?"walk"in n&&!1===n.walk(e,i)&&(a=!0):a=!0)})),!a&&void 0}toJSON(){return{type:this.type,leading:this.leading.toJSON(),list:this.list.map((e=>e.toJSON())),before:this.before,after:this.after}}isMediaConditionListWithAnd(){return MediaConditionListWithAnd.isMediaConditionListWithAnd(this)}static isMediaConditionListWithAnd(e){return!!e&&(e instanceof MediaConditionListWithAnd&&e.type===f.MediaConditionListWithAnd)}}class MediaConditionListWithOr{type=f.MediaConditionListWithOr;leading;list;before;after;constructor(e,t,i=[],a=[]){this.leading=e,this.list=t,this.before=i,this.after=a}tokens(){return[...this.before,...this.leading.tokens(),...this.list.flatMap((e=>e.tokens())),...this.after]}toString(){return u(...this.before)+this.leading.toString()+this.list.map((e=>e.toString())).join("")+u(...this.after)}indexOf(e){return e===this.leading?"leading":"media-or"===e.type?this.list.indexOf(e):-1}at(e){return"leading"===e?this.leading:"number"==typeof e?(e<0&&(e=this.list.length+e),this.list[e]):void 0}walk(e,t){let i;if(t&&(i={...t}),!1===e({node:this.leading,parent:this,state:i},"leading"))return!1;if("walk"in this.leading&&!1===this.leading.walk(e,i))return!1;let a=!1;return this.list.forEach(((n,r)=>{a||(t&&(i={...t}),!1!==e({node:n,parent:this,state:i},r)?"walk"in n&&!1===n.walk(e,i)&&(a=!0):a=!0)})),!a&&void 0}toJSON(){return{type:this.type,leading:this.leading.toJSON(),list:this.list.map((e=>e.toJSON())),before:this.before,after:this.after}}isMediaConditionListWithOr(){return MediaConditionListWithOr.isMediaConditionListWithOr(this)}static isMediaConditionListWithOr(e){return!!e&&(e instanceof MediaConditionListWithOr&&e.type===f.MediaConditionListWithOr)}}function isNumber(t){return!!(t.type===e.Token&&t.value[0]===d.Number||t.type===e.Function&&M.has(toLowerCaseAZ(t.name[4].value)))}const M=new Set(["abs","acos","asin","atan","atan2","calc","clamp","cos","exp","hypot","log","max","min","mod","pow","rem","round","sign","sin","sqrt","tan"]);function isDimension(t){return t.type===e.Token&&t.value[0]===d.Dimension}function isIdent(t){return t.type===e.Token&&t.value[0]===d.Ident}function isEnvironmentVariable(t){return t.type===e.Function&&"env"===toLowerCaseAZ(t.name[4].value)}class MediaFeatureName{type=f.MediaFeatureName;name;before;after;constructor(e,t=[],i=[]){this.name=e,this.before=t,this.after=i}getName(){return this.name.value[4].value}getNameToken(){return this.name.value}tokens(){return[...this.before,...this.name.tokens(),...this.after]}toString(){return u(...this.before)+this.name.toString()+u(...this.after)}indexOf(e){return e===this.name?"name":-1}at(e){if("name"===e)return this.name}toJSON(){return{type:this.type,name:this.getName(),tokens:this.tokens()}}isMediaFeatureName(){return MediaFeatureName.isMediaFeatureName(this)}static isMediaFeatureName(e){return!!e&&(e instanceof MediaFeatureName&&e.type===f.MediaFeatureName)}}function parseMediaFeatureName(t){let i=-1;for(let a=0;ae.tokens())),t.slice(i+1).flatMap((e=>e.tokens())))}class MediaFeatureBoolean{type=f.MediaFeatureBoolean;name;constructor(e){this.name=e}getName(){return this.name.getName()}getNameToken(){return this.name.getNameToken()}tokens(){return this.name.tokens()}toString(){return this.name.toString()}indexOf(e){return e===this.name?"name":-1}at(e){if("name"===e)return this.name}toJSON(){return{type:this.type,name:this.name.toJSON(),tokens:this.tokens()}}isMediaFeatureBoolean(){return MediaFeatureBoolean.isMediaFeatureBoolean(this)}static isMediaFeatureBoolean(e){return!!e&&(e instanceof MediaFeatureBoolean&&e.type===f.MediaFeatureBoolean)}}function parseMediaFeatureBoolean(e){const t=parseMediaFeatureName(e);return!1===t?t:new MediaFeatureBoolean(t)}class MediaFeatureValue{type=f.MediaFeatureValue;value;before;after;constructor(e,t=[],i=[]){Array.isArray(e)&&1===e.length?this.value=e[0]:this.value=e,this.before=t,this.after=i}tokens(){return Array.isArray(this.value)?[...this.before,...this.value.flatMap((e=>e.tokens())),...this.after]:[...this.before,...this.value.tokens(),...this.after]}toString(){return Array.isArray(this.value)?u(...this.before)+this.value.map((e=>e.toString())).join("")+u(...this.after):u(...this.before)+this.value.toString()+u(...this.after)}indexOf(e){return e===this.value?"value":-1}at(e){return"value"===e?this.value:Array.isArray(this.value)&&"number"==typeof e?(e<0&&(e=this.value.length+e),this.value[e]):void 0}walk(e,t){if(Array.isArray(this.value)){let i=!1;if(this.value.forEach(((a,n)=>{if(i)return;let r;t&&(r={...t}),!1!==e({node:a,parent:this,state:r},n)?"walk"in a&&!1===a.walk(e,r)&&(i=!0):i=!0})),i)return!1}else{let i;if(t&&(i={...t}),!1===e({node:this.value,parent:this,state:i},"value"))return!1;if("walk"in this.value)return this.value.walk(e,i)}}toJSON(){return Array.isArray(this.value)?{type:this.type,value:this.value.map((e=>e.toJSON())),tokens:this.tokens()}:{type:this.type,value:this.value.toJSON(),tokens:this.tokens()}}isMediaFeatureValue(){return MediaFeatureValue.isMediaFeatureValue(this)}static isMediaFeatureValue(e){return!!e&&(e instanceof MediaFeatureValue&&e.type===f.MediaFeatureValue)}}function parseMediaFeatureValue(t,i=!1){let a=-1,n=-1;for(let r=0;re.tokens())),t.slice(n+1).flatMap((e=>e.tokens())))}function matchesRatioExactly(e){let t=-1,i=-1;const a=matchesRatio(e);if(-1===a)return-1;t=a[0],i=a[1];for(let t=i+1;t2)return!1;if(e[0][0]!==d.Delim)return!1;if(1===e.length)switch(e[0][4].value){case v.EQ:return v.EQ;case p.LT:return p.LT;case y.GT:return y.GT;default:return!1}if(e[1][0]!==d.Delim)return!1;if(e[1][4].value!==v.EQ)return!1;switch(e[0][4].value){case p.LT:return p.LT_OR_EQ;case y.GT:return y.GT_OR_EQ;default:return!1}}function invertComparison(e){switch(e){case v.EQ:return v.EQ;case p.LT:return y.GT;case p.LT_OR_EQ:return y.GT_OR_EQ;case y.GT:return p.LT;case y.GT_OR_EQ:return p.LT_OR_EQ;default:return!1}}!function(e){e.LT="<",e.LT_OR_EQ="<="}(p||(p={})),function(e){e.GT=">",e.GT_OR_EQ=">="}(y||(y={})),function(e){e.EQ="="}(v||(v={}));class MediaFeatureRangeNameValue{type=f.MediaFeatureRangeNameValue;name;operator;value;constructor(e,t,i){this.name=e,this.operator=t,this.value=i}operatorKind(){return comparisonFromTokens(this.operator)}getName(){return this.name.getName()}getNameToken(){return this.name.getNameToken()}tokens(){return[...this.name.tokens(),...this.operator,...this.value.tokens()]}toString(){return this.name.toString()+u(...this.operator)+this.value.toString()}indexOf(e){return e===this.name?"name":e===this.value?"value":-1}at(e){return"name"===e?this.name:"value"===e?this.value:void 0}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.value,parent:this,state:i},"value")&&("walk"in this.value?this.value.walk(e,i):void 0)}toJSON(){return{type:this.type,name:this.name.toJSON(),value:this.value.toJSON(),tokens:this.tokens()}}isMediaFeatureRangeNameValue(){return MediaFeatureRangeNameValue.isMediaFeatureRangeNameValue(this)}static isMediaFeatureRangeNameValue(e){return!!e&&(e instanceof MediaFeatureRangeNameValue&&e.type===f.MediaFeatureRangeNameValue)}}class MediaFeatureRangeValueName{type=f.MediaFeatureRangeValueName;name;operator;value;constructor(e,t,i){this.name=e,this.operator=t,this.value=i}operatorKind(){return comparisonFromTokens(this.operator)}getName(){return this.name.getName()}getNameToken(){return this.name.getNameToken()}tokens(){return[...this.value.tokens(),...this.operator,...this.name.tokens()]}toString(){return this.value.toString()+u(...this.operator)+this.name.toString()}indexOf(e){return e===this.name?"name":e===this.value?"value":-1}at(e){return"name"===e?this.name:"value"===e?this.value:void 0}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.value,parent:this,state:i},"value")&&("walk"in this.value?this.value.walk(e,i):void 0)}toJSON(){return{type:this.type,name:this.name.toJSON(),value:this.value.toJSON(),tokens:this.tokens()}}isMediaFeatureRangeValueName(){return MediaFeatureRangeValueName.isMediaFeatureRangeValueName(this)}static isMediaFeatureRangeValueName(e){return!!e&&(e instanceof MediaFeatureRangeValueName&&e.type===f.MediaFeatureRangeValueName)}}class MediaFeatureRangeValueNameValue{type=f.MediaFeatureRangeValueNameValue;name;valueOne;valueOneOperator;valueTwo;valueTwoOperator;constructor(e,t,i,a,n){this.name=e,this.valueOne=t,this.valueOneOperator=i,this.valueTwo=a,this.valueTwoOperator=n}valueOneOperatorKind(){return comparisonFromTokens(this.valueOneOperator)}valueTwoOperatorKind(){return comparisonFromTokens(this.valueTwoOperator)}getName(){return this.name.getName()}getNameToken(){return this.name.getNameToken()}tokens(){return[...this.valueOne.tokens(),...this.valueOneOperator,...this.name.tokens(),...this.valueTwoOperator,...this.valueTwo.tokens()]}toString(){return this.valueOne.toString()+u(...this.valueOneOperator)+this.name.toString()+u(...this.valueTwoOperator)+this.valueTwo.toString()}indexOf(e){return e===this.name?"name":e===this.valueOne?"valueOne":e===this.valueTwo?"valueTwo":-1}at(e){return"name"===e?this.name:"valueOne"===e?this.valueOne:"valueTwo"===e?this.valueTwo:void 0}walk(e,t){let i;return t&&(i={...t}),!1!==e({node:this.valueOne,parent:this,state:i},"valueOne")&&((!("walk"in this.valueOne)||!1!==this.valueOne.walk(e,i))&&(t&&(i={...t}),!1!==e({node:this.valueTwo,parent:this,state:i},"valueTwo")&&((!("walk"in this.valueTwo)||!1!==this.valueTwo.walk(e,i))&&void 0)))}toJSON(){return{type:this.type,name:this.name.toJSON(),valueOne:this.valueOne.toJSON(),valueTwo:this.valueTwo.toJSON(),tokens:this.tokens()}}isMediaFeatureRangeValueNameValue(){return MediaFeatureRangeValueNameValue.isMediaFeatureRangeValueNameValue(this)}static isMediaFeatureRangeValueNameValue(e){return!!e&&(e instanceof MediaFeatureRangeValueNameValue&&e.type===f.MediaFeatureRangeValueNameValue)}}function parseMediaFeatureRange(t){let i=!1,a=!1;for(let n=0;ne.tokens())),-1!==i&&(u=e.slice(t+1,i+1).flatMap((e=>e.tokens())))):-1!==i&&(u=e.slice(0,i+1).flatMap((e=>e.tokens())));const l=parseMediaConditionWithoutOr(e.slice(Math.max(t,i,s)+1));return!1===l?new MediaQueryWithType(o,[...u,...e.slice(i+1).flatMap((e=>e.tokens()))]):new MediaQueryWithType(o,u,e.slice(i+1,s+1).flatMap((e=>e.tokens())),l)}}function parseMediaConditionListWithOr(t){let i=!1;const a=[];let n=-1,r=-1;for(let o=0;oe.tokens())),t.slice(r+1).flatMap((e=>e.tokens())))}function parseMediaConditionListWithAnd(t){let i=!1;const a=[];let n=-1,r=-1;for(let o=0;oe.tokens())),t.slice(r+1).flatMap((e=>e.tokens())))}function parseMediaCondition(e){const t=parseMediaNot(e);if(!1!==t)return new MediaCondition(t);const i=parseMediaConditionListWithAnd(e);if(!1!==i)return new MediaCondition(i);const a=parseMediaConditionListWithOr(e);if(!1!==a)return new MediaCondition(a);const n=parseMediaInParens(e);return!1!==n&&new MediaCondition(n)}function parseMediaConditionWithoutOr(e){const t=parseMediaNot(e);if(!1!==t)return new MediaCondition(t);const i=parseMediaConditionListWithAnd(e);if(!1!==i)return new MediaCondition(i);const a=parseMediaInParens(e);return!1!==a&&new MediaCondition(a)}function parseMediaInParens(t){let i=-1;for(let a=0;ae.tokens())),a.startToken],r=[a.endToken,...t.slice(i+1).flatMap((e=>e.tokens()))],o=parseMediaFeature(a,n,r);if(!1!==o)return new MediaInParens(o);const u=parseMediaCondition(a.value);return!1!==u?new MediaInParens(u,n,r):new MediaInParens(new GeneralEnclosed(a),t.slice(0,i).flatMap((e=>e.tokens())),t.slice(i+1).flatMap((e=>e.tokens())))}function parseMediaInParensFromSimpleBlock(e){if(e.startToken[0]!==d.OpenParen)return!1;const t=parseMediaFeature(e,[e.startToken],[e.endToken]);if(!1!==t)return new MediaInParens(t);const i=parseMediaCondition(e.value);return!1!==i?new MediaInParens(i,[e.startToken],[e.endToken]):new MediaInParens(new GeneralEnclosed(e))}function parseMediaNot(t){let i=!1,a=null;for(let n=0;ne.tokens())),e)}}}return a||!1}function parseMediaOr(t){let i=!1;for(let a=0;ae.tokens())),e)}}return!1}}return!1}function parseMediaAnd(t){let i=!1;for(let a=0;ae.tokens())),e)}}return!1}}return!1}function parseFromTokens(e,t){const i=o(e,{onParseError:null==t?void 0:t.onParseError});return i.map(((e,a)=>{const n=parseMediaQuery(e);return 0==n&&!0===(null==t?void 0:t.preserveInvalidMediaQueries)?new MediaQueryInvalid(i[a]):n})).filter((e=>!!e))}function parse(e,t){const i=h({css:e},{onParseError:null==t?void 0:t.onParseError}),a=[];for(;!i.endOfFile();)a.push(i.nextToken());return a.push(i.nextToken()),parseFromTokens(a,t)}!function(e){e.Not="not",e.Only="only"}(g||(g={}));class CustomMedia{type=f.CustomMedia;name;mediaQueryList=null;trueOrFalseKeyword=null;constructor(e,t,i){this.name=e,this.mediaQueryList=t,this.trueOrFalseKeyword=i??null}getName(){for(let e=0;ee.toJSON()))}}isCustomMedia(){return CustomMedia.isCustomMedia(this)}static isCustomMedia(e){return!!e&&(e instanceof CustomMedia&&e.type===f.CustomMedia)}}function parseCustomMediaFromTokens(e,t){let i=[],a=e;for(let t=0;t; + mediaQueryList: Array | null; + trueOrFalseKeyword: Array | null; + constructor(name: Array, mediaQueryList: Array | null, trueOrFalseKeyword?: Array); + getName(): string; + getNameToken(): CSSToken | null; + hasMediaQueryList(): boolean; + hasTrueKeyword(): boolean; + hasFalseKeyword(): boolean; + tokens(): Array; + toString(): string; + toJSON(): { + type: NodeType; + string: string; + nameValue: string; + name: CSSToken[]; + hasFalseKeyword: boolean; + hasTrueKeyword: boolean; + trueOrFalseKeyword: CSSToken[] | null; + mediaQueryList: ({ + type: NodeType; + string: string; + modifier: CSSToken[]; + mediaType: CSSToken[]; + and: CSSToken[] | undefined; + media: import("./media-condition").MediaCondition | undefined; + } | { + type: NodeType; + string: string; + media: import("./media-condition").MediaCondition; + } | { + type: NodeType; + string: string; + media: import("@csstools/css-parser-algorithms").ComponentValue[]; + })[] | undefined; + }; + isCustomMedia(): this is CustomMedia; + static isCustomMedia(x: unknown): x is CustomMedia; +} diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/general-enclosed.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/general-enclosed.d.ts new file mode 100644 index 00000000..5ab840f5 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/general-enclosed.d.ts @@ -0,0 +1,25 @@ +import { ComponentValue, ContainerNode } from '@csstools/css-parser-algorithms'; +import { CSSToken } from '@csstools/css-tokenizer'; +import { NodeType } from '../util/node-type'; +export declare class GeneralEnclosed { + type: NodeType; + value: ComponentValue; + constructor(value: ComponentValue); + tokens(): Array; + toString(): string; + indexOf(item: ComponentValue): number | string; + at(index: number | string): ComponentValue | undefined; + walk>(cb: (entry: { + node: GeneralEnclosedWalkerEntry; + parent: GeneralEnclosedWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + tokens: CSSToken[]; + }; + isGeneralEnclosed(): this is GeneralEnclosed; + static isGeneralEnclosed(x: unknown): x is GeneralEnclosed; +} +export type GeneralEnclosedWalkerEntry = ComponentValue; +export type GeneralEnclosedWalkerParent = ContainerNode | GeneralEnclosed; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-and.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-and.d.ts new file mode 100644 index 00000000..ddd73d53 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-and.d.ts @@ -0,0 +1,23 @@ +import { CSSToken } from '@csstools/css-tokenizer'; +import { MediaInParens, MediaInParensWalkerEntry, MediaInParensWalkerParent } from './media-in-parens'; +import { NodeType } from '../util/node-type'; +export declare class MediaAnd { + type: NodeType; + modifier: Array; + media: MediaInParens; + constructor(modifier: Array, media: MediaInParens); + tokens(): Array; + toString(): string; + indexOf(item: MediaInParens): number | string; + at(index: number | string): MediaInParens | null; + walk>(cb: (entry: { + node: MediaAndWalkerEntry; + parent: MediaAndWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): unknown; + isMediaAnd(): this is MediaAnd; + static isMediaAnd(x: unknown): x is MediaAnd; +} +export type MediaAndWalkerEntry = MediaInParensWalkerEntry | MediaInParens; +export type MediaAndWalkerParent = MediaInParensWalkerParent | MediaAnd; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-condition-list.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-condition-list.d.ts new file mode 100644 index 00000000..ddc51062 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-condition-list.d.ts @@ -0,0 +1,50 @@ +import { CSSToken } from '@csstools/css-tokenizer'; +import { MediaAnd, MediaAndWalkerEntry, MediaAndWalkerParent } from './media-and'; +import { MediaInParens } from './media-in-parens'; +import { MediaOr, MediaOrWalkerEntry, MediaOrWalkerParent } from './media-or'; +import { NodeType } from '../util/node-type'; +export type MediaConditionList = MediaConditionListWithAnd | MediaConditionListWithOr; +export declare class MediaConditionListWithAnd { + type: NodeType; + leading: MediaInParens; + list: Array; + before: Array; + after: Array; + constructor(leading: MediaInParens, list: Array, before?: Array, after?: Array); + tokens(): Array; + toString(): string; + indexOf(item: MediaInParens | MediaAnd): number | string; + at(index: number | string): MediaInParens | MediaAnd | undefined; + walk>(cb: (entry: { + node: MediaConditionListWithAndWalkerEntry; + parent: MediaConditionListWithAndWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): unknown; + isMediaConditionListWithAnd(): this is MediaConditionListWithAnd; + static isMediaConditionListWithAnd(x: unknown): x is MediaConditionListWithAnd; +} +export type MediaConditionListWithAndWalkerEntry = MediaAndWalkerEntry | MediaAnd; +export type MediaConditionListWithAndWalkerParent = MediaAndWalkerParent | MediaConditionListWithAnd; +export declare class MediaConditionListWithOr { + type: NodeType; + leading: MediaInParens; + list: Array; + before: Array; + after: Array; + constructor(leading: MediaInParens, list: Array, before?: Array, after?: Array); + tokens(): Array; + toString(): string; + indexOf(item: MediaInParens | MediaOr): number | string; + at(index: number | string): MediaInParens | MediaOr | undefined; + walk>(cb: (entry: { + node: MediaConditionListWithOrWalkerEntry; + parent: MediaConditionListWithOrWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): unknown; + isMediaConditionListWithOr(): this is MediaConditionListWithOr; + static isMediaConditionListWithOr(x: unknown): x is MediaConditionListWithOr; +} +export type MediaConditionListWithOrWalkerEntry = MediaOrWalkerEntry | MediaOr; +export type MediaConditionListWithOrWalkerParent = MediaOrWalkerParent | MediaConditionListWithOr; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-condition.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-condition.d.ts new file mode 100644 index 00000000..faf2b49d --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-condition.d.ts @@ -0,0 +1,24 @@ +import { CSSToken } from '@csstools/css-tokenizer'; +import { MediaConditionListWithAnd, MediaConditionListWithAndWalkerEntry, MediaConditionListWithAndWalkerParent, MediaConditionListWithOr, MediaConditionListWithOrWalkerEntry, MediaConditionListWithOrWalkerParent } from './media-condition-list'; +import { MediaInParens } from './media-in-parens'; +import { MediaNot, MediaNotWalkerEntry, MediaNotWalkerParent } from './media-not'; +import { NodeType } from '../util/node-type'; +export declare class MediaCondition { + type: NodeType; + media: MediaNot | MediaInParens | MediaConditionListWithAnd | MediaConditionListWithOr; + constructor(media: MediaNot | MediaInParens | MediaConditionListWithAnd | MediaConditionListWithOr); + tokens(): Array; + toString(): string; + indexOf(item: MediaNot | MediaInParens | MediaConditionListWithAnd | MediaConditionListWithOr): number | string; + at(index: number | string): MediaNot | MediaInParens | MediaConditionListWithAnd | MediaConditionListWithOr | undefined; + walk>(cb: (entry: { + node: MediaConditionWalkerEntry; + parent: MediaConditionWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): unknown; + isMediaCondition(): this is MediaCondition; + static isMediaCondition(x: unknown): x is MediaCondition; +} +export type MediaConditionWalkerEntry = MediaNotWalkerEntry | MediaConditionListWithAndWalkerEntry | MediaConditionListWithOrWalkerEntry | MediaNot | MediaConditionListWithAnd | MediaConditionListWithOr; +export type MediaConditionWalkerParent = MediaNotWalkerParent | MediaConditionListWithAndWalkerParent | MediaConditionListWithOrWalkerParent | MediaCondition; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-boolean.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-boolean.d.ts new file mode 100644 index 00000000..a5c64ec1 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-boolean.d.ts @@ -0,0 +1,27 @@ +import { ComponentValue } from '@csstools/css-parser-algorithms'; +import { MediaFeatureName } from './media-feature-name'; +import { NodeType } from '../util/node-type'; +import { CSSToken } from '@csstools/css-tokenizer'; +export declare class MediaFeatureBoolean { + type: NodeType; + name: MediaFeatureName; + constructor(name: MediaFeatureName); + getName(): string; + getNameToken(): CSSToken; + tokens(): Array; + toString(): string; + indexOf(item: MediaFeatureName): number | string; + at(index: number | string): MediaFeatureName | undefined; + toJSON(): { + type: NodeType; + name: { + type: NodeType; + name: string; + tokens: CSSToken[]; + }; + tokens: CSSToken[]; + }; + isMediaFeatureBoolean(): this is MediaFeatureBoolean; + static isMediaFeatureBoolean(x: unknown): x is MediaFeatureBoolean; +} +export declare function parseMediaFeatureBoolean(componentValues: Array): false | MediaFeatureBoolean; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-comparison.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-comparison.d.ts new file mode 100644 index 00000000..37769657 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-comparison.d.ts @@ -0,0 +1,17 @@ +import { ComponentValue } from '@csstools/css-parser-algorithms'; +import { TokenDelim } from '@csstools/css-tokenizer'; +export declare enum MediaFeatureLT { + LT = "<", + LT_OR_EQ = "<=" +} +export declare enum MediaFeatureGT { + GT = ">", + GT_OR_EQ = ">=" +} +export declare enum MediaFeatureEQ { + EQ = "=" +} +export type MediaFeatureComparison = MediaFeatureLT | MediaFeatureGT | MediaFeatureEQ; +export declare function matchesComparison(componentValues: Array): false | [number, number]; +export declare function comparisonFromTokens(tokens: [TokenDelim, TokenDelim] | [TokenDelim]): MediaFeatureComparison | false; +export declare function invertComparison(operator: MediaFeatureComparison): MediaFeatureComparison | false; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-name.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-name.d.ts new file mode 100644 index 00000000..332b421a --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-name.d.ts @@ -0,0 +1,24 @@ +import { ComponentValue } from '@csstools/css-parser-algorithms'; +import { CSSToken } from '@csstools/css-tokenizer'; +import { NodeType } from '../util/node-type'; +export declare class MediaFeatureName { + type: NodeType; + name: ComponentValue; + before: Array; + after: Array; + constructor(name: ComponentValue, before?: Array, after?: Array); + getName(): string; + getNameToken(): CSSToken; + tokens(): Array; + toString(): string; + indexOf(item: ComponentValue): number | string; + at(index: number | string): ComponentValue | undefined; + toJSON(): { + type: NodeType; + name: string; + tokens: CSSToken[]; + }; + isMediaFeatureName(): this is MediaFeatureName; + static isMediaFeatureName(x: unknown): x is MediaFeatureName; +} +export declare function parseMediaFeatureName(componentValues: Array): MediaFeatureName | false; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-plain.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-plain.d.ts new file mode 100644 index 00000000..32f22c40 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-plain.d.ts @@ -0,0 +1,42 @@ +import { ComponentValue } from '@csstools/css-parser-algorithms'; +import { CSSToken, TokenColon } from '@csstools/css-tokenizer'; +import { MediaFeatureName } from './media-feature-name'; +import { MediaFeatureValue, MediaFeatureValueWalkerEntry, MediaFeatureValueWalkerParent } from './media-feature-value'; +import { NodeType } from '../util/node-type'; +export declare class MediaFeaturePlain { + type: NodeType; + name: MediaFeatureName; + colon: TokenColon; + value: MediaFeatureValue; + constructor(name: MediaFeatureName, colon: TokenColon, value: MediaFeatureValue); + getName(): string; + getNameToken(): CSSToken; + tokens(): Array; + toString(): string; + indexOf(item: MediaFeatureName | MediaFeatureValue): number | string; + at(index: number | string): MediaFeatureName | MediaFeatureValue | undefined; + walk>(cb: (entry: { + node: MediaFeaturePlainWalkerEntry; + parent: MediaFeaturePlainWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + name: { + type: NodeType; + name: string; + tokens: CSSToken[]; + }; + value: { + type: NodeType; + value: unknown; + tokens: CSSToken[]; + }; + tokens: CSSToken[]; + }; + isMediaFeaturePlain(): this is MediaFeaturePlain; + static isMediaFeaturePlain(x: unknown): x is MediaFeaturePlain; +} +export type MediaFeaturePlainWalkerEntry = MediaFeatureValueWalkerEntry | MediaFeatureValue; +export type MediaFeaturePlainWalkerParent = MediaFeatureValueWalkerParent | MediaFeaturePlain; +export declare function parseMediaFeaturePlain(componentValues: Array): MediaFeaturePlain | false; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-range.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-range.d.ts new file mode 100644 index 00000000..afe322ae --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-range.d.ts @@ -0,0 +1,123 @@ +import { ComponentValue } from '@csstools/css-parser-algorithms'; +import { CSSToken, TokenDelim } from '@csstools/css-tokenizer'; +import { MediaFeatureComparison } from './media-feature-comparison'; +import { MediaFeatureName } from './media-feature-name'; +import { MediaFeatureValue, MediaFeatureValueWalkerEntry, MediaFeatureValueWalkerParent } from './media-feature-value'; +import { NodeType } from '../util/node-type'; +export type MediaFeatureRange = MediaFeatureRangeNameValue | MediaFeatureRangeValueName | MediaFeatureRangeValueNameValue; +export declare class MediaFeatureRangeNameValue { + type: NodeType; + name: MediaFeatureName; + operator: [TokenDelim, TokenDelim] | [TokenDelim]; + value: MediaFeatureValue; + constructor(name: MediaFeatureName, operator: [TokenDelim, TokenDelim] | [TokenDelim], value: MediaFeatureValue); + operatorKind(): MediaFeatureComparison | false; + getName(): string; + getNameToken(): CSSToken; + tokens(): Array; + toString(): string; + indexOf(item: MediaFeatureName | MediaFeatureValue): number | string; + at(index: number | string): MediaFeatureName | MediaFeatureValue | undefined; + walk>(cb: (entry: { + node: MediaFeatureRangeWalkerEntry; + parent: MediaFeatureRangeWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + name: { + type: NodeType; + name: string; + tokens: CSSToken[]; + }; + value: { + type: NodeType; + value: unknown; + tokens: CSSToken[]; + }; + tokens: CSSToken[]; + }; + isMediaFeatureRangeNameValue(): this is MediaFeatureRangeNameValue; + static isMediaFeatureRangeNameValue(x: unknown): x is MediaFeatureRangeNameValue; +} +export declare class MediaFeatureRangeValueName { + type: NodeType; + name: MediaFeatureName; + operator: [TokenDelim, TokenDelim] | [TokenDelim]; + value: MediaFeatureValue; + constructor(name: MediaFeatureName, operator: [TokenDelim, TokenDelim] | [TokenDelim], value: MediaFeatureValue); + operatorKind(): MediaFeatureComparison | false; + getName(): string; + getNameToken(): CSSToken; + tokens(): Array; + toString(): string; + indexOf(item: MediaFeatureName | MediaFeatureValue): number | string; + at(index: number | string): MediaFeatureName | MediaFeatureValue | undefined; + walk>(cb: (entry: { + node: MediaFeatureRangeWalkerEntry; + parent: MediaFeatureRangeWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + name: { + type: NodeType; + name: string; + tokens: CSSToken[]; + }; + value: { + type: NodeType; + value: unknown; + tokens: CSSToken[]; + }; + tokens: CSSToken[]; + }; + isMediaFeatureRangeValueName(): this is MediaFeatureRangeValueName; + static isMediaFeatureRangeValueName(x: unknown): x is MediaFeatureRangeValueName; +} +export declare class MediaFeatureRangeValueNameValue { + type: NodeType; + name: MediaFeatureName; + valueOne: MediaFeatureValue; + valueOneOperator: [TokenDelim, TokenDelim] | [TokenDelim]; + valueTwo: MediaFeatureValue; + valueTwoOperator: [TokenDelim, TokenDelim] | [TokenDelim]; + constructor(name: MediaFeatureName, valueOne: MediaFeatureValue, valueOneOperator: [TokenDelim, TokenDelim] | [TokenDelim], valueTwo: MediaFeatureValue, valueTwoOperator: [TokenDelim, TokenDelim] | [TokenDelim]); + valueOneOperatorKind(): MediaFeatureComparison | false; + valueTwoOperatorKind(): MediaFeatureComparison | false; + getName(): string; + getNameToken(): CSSToken; + tokens(): Array; + toString(): string; + indexOf(item: MediaFeatureName | MediaFeatureValue): number | string; + at(index: number | string): MediaFeatureName | MediaFeatureValue | undefined; + walk>(cb: (entry: { + node: MediaFeatureRangeWalkerEntry; + parent: MediaFeatureRangeWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + name: { + type: NodeType; + name: string; + tokens: CSSToken[]; + }; + valueOne: { + type: NodeType; + value: unknown; + tokens: CSSToken[]; + }; + valueTwo: { + type: NodeType; + value: unknown; + tokens: CSSToken[]; + }; + tokens: CSSToken[]; + }; + isMediaFeatureRangeValueNameValue(): this is MediaFeatureRangeValueNameValue; + static isMediaFeatureRangeValueNameValue(x: unknown): x is MediaFeatureRangeValueNameValue; +} +export type MediaFeatureRangeWalkerEntry = MediaFeatureValueWalkerEntry | MediaFeatureValue; +export type MediaFeatureRangeWalkerParent = MediaFeatureValueWalkerParent | MediaFeatureRange; +export declare function parseMediaFeatureRange(componentValues: Array): MediaFeatureRange | false; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-value.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-value.d.ts new file mode 100644 index 00000000..dda072bb --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature-value.d.ts @@ -0,0 +1,31 @@ +import { ComponentValue, ContainerNode } from '@csstools/css-parser-algorithms'; +import { CSSToken } from '@csstools/css-tokenizer'; +import { NodeType } from '../util/node-type'; +export declare class MediaFeatureValue { + type: NodeType; + value: ComponentValue | Array; + before: Array; + after: Array; + constructor(value: ComponentValue | Array, before?: Array, after?: Array); + tokens(): Array; + toString(): string; + indexOf(item: ComponentValue): number | string; + at(index: number | string): ComponentValue | Array | undefined; + walk>(cb: (entry: { + node: MediaFeatureValueWalkerEntry; + parent: MediaFeatureValueWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + value: unknown; + tokens: CSSToken[]; + }; + isMediaFeatureValue(): this is MediaFeatureValue; + static isMediaFeatureValue(x: unknown): x is MediaFeatureValue; +} +export type MediaFeatureValueWalkerEntry = ComponentValue; +export type MediaFeatureValueWalkerParent = ContainerNode | MediaFeatureValue; +export declare function parseMediaFeatureValue(componentValues: Array, inRangeContext?: boolean): MediaFeatureValue | false; +export declare function matchesRatioExactly(componentValues: Array): number[] | -1; +export declare function matchesRatio(componentValues: Array): number[] | -1; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature.d.ts new file mode 100644 index 00000000..bf9c0384 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-feature.d.ts @@ -0,0 +1,45 @@ +import { SimpleBlockNode } from '@csstools/css-parser-algorithms'; +import { CSSToken } from '@csstools/css-tokenizer'; +import { MediaFeatureBoolean } from './media-feature-boolean'; +import { MediaFeaturePlain, MediaFeaturePlainWalkerEntry, MediaFeaturePlainWalkerParent } from './media-feature-plain'; +import { MediaFeatureRange, MediaFeatureRangeWalkerEntry, MediaFeatureRangeWalkerParent } from './media-feature-range'; +import { NodeType } from '../util/node-type'; +export declare class MediaFeature { + type: NodeType; + feature: MediaFeaturePlain | MediaFeatureBoolean | MediaFeatureRange; + before: Array; + after: Array; + constructor(feature: MediaFeaturePlain | MediaFeatureBoolean | MediaFeatureRange, before?: Array, after?: Array); + getName(): string; + getNameToken(): CSSToken; + tokens(): Array; + toString(): string; + indexOf(item: MediaFeaturePlain | MediaFeatureBoolean | MediaFeatureRange): number | string; + at(index: number | string): MediaFeatureBoolean | MediaFeaturePlain | MediaFeatureRange | undefined; + walk>(cb: (entry: { + node: MediaFeatureWalkerEntry; + parent: MediaFeatureWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + feature: { + type: NodeType; + name: { + type: NodeType; + name: string; + tokens: CSSToken[]; + }; + tokens: CSSToken[]; + }; + before: CSSToken[]; + after: CSSToken[]; + }; + isMediaFeature(): this is MediaFeature; + static isMediaFeature(x: unknown): x is MediaFeature; +} +export type MediaFeatureWalkerEntry = MediaFeaturePlainWalkerEntry | MediaFeatureRangeWalkerEntry | MediaFeaturePlain | MediaFeatureBoolean | MediaFeatureRange; +export type MediaFeatureWalkerParent = MediaFeaturePlainWalkerParent | MediaFeatureRangeWalkerParent | MediaFeature; +export declare function parseMediaFeature(simpleBlock: SimpleBlockNode, before?: Array, after?: Array): false | MediaFeature; +export declare function newMediaFeatureBoolean(name: string): MediaFeature; +export declare function newMediaFeaturePlain(name: string, ...value: Array): MediaFeature; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-in-parens.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-in-parens.d.ts new file mode 100644 index 00000000..904a0725 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-in-parens.d.ts @@ -0,0 +1,41 @@ +import { ComponentValue, ContainerNode } from '@csstools/css-parser-algorithms'; +import { CSSToken } from '@csstools/css-tokenizer'; +import { GeneralEnclosed } from './general-enclosed'; +import { MediaAnd } from './media-and'; +import { MediaCondition } from './media-condition'; +import { MediaConditionList } from './media-condition-list'; +import { MediaFeature } from './media-feature'; +import { MediaFeatureBoolean } from './media-feature-boolean'; +import { MediaFeatureName } from './media-feature-name'; +import { MediaFeaturePlain } from './media-feature-plain'; +import { MediaFeatureRange } from './media-feature-range'; +import { MediaFeatureValue } from './media-feature-value'; +import { NodeType } from '../util/node-type'; +import { MediaNot } from './media-not'; +import { MediaOr } from './media-or'; +export declare class MediaInParens { + type: NodeType; + media: MediaCondition | MediaFeature | GeneralEnclosed; + before: Array; + after: Array; + constructor(media: MediaCondition | MediaFeature | GeneralEnclosed, before?: Array, after?: Array); + tokens(): Array; + toString(): string; + indexOf(item: MediaCondition | MediaFeature | GeneralEnclosed): number | string; + at(index: number | string): MediaCondition | MediaFeature | GeneralEnclosed | undefined; + walk>(cb: (entry: { + node: MediaInParensWalkerEntry; + parent: MediaInParensWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + media: unknown; + before: CSSToken[]; + after: CSSToken[]; + }; + isMediaInParens(): this is MediaInParens; + static isMediaInParens(x: unknown): x is MediaInParens; +} +export type MediaInParensWalkerEntry = ComponentValue | GeneralEnclosed | MediaAnd | MediaNot | MediaOr | MediaConditionList | MediaCondition | MediaFeatureBoolean | MediaFeatureName | MediaFeaturePlain | MediaFeatureRange | MediaFeatureValue | MediaFeature | GeneralEnclosed | MediaInParens; +export type MediaInParensWalkerParent = ContainerNode | GeneralEnclosed | MediaAnd | MediaNot | MediaOr | MediaConditionList | MediaCondition | MediaFeatureBoolean | MediaFeatureName | MediaFeaturePlain | MediaFeatureRange | MediaFeatureValue | MediaFeature | GeneralEnclosed | MediaInParens; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-not.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-not.d.ts new file mode 100644 index 00000000..2bedcaa3 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-not.d.ts @@ -0,0 +1,32 @@ +import { CSSToken } from '@csstools/css-tokenizer'; +import { MediaInParens, MediaInParensWalkerEntry, MediaInParensWalkerParent } from './media-in-parens'; +import { NodeType } from '../util/node-type'; +export declare class MediaNot { + type: NodeType; + modifier: Array; + media: MediaInParens; + constructor(modifier: Array, media: MediaInParens); + tokens(): Array; + toString(): string; + indexOf(item: MediaInParens): number | string; + at(index: number | string): MediaInParens | undefined; + walk>(cb: (entry: { + node: MediaNotWalkerEntry; + parent: MediaNotWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + modifier: CSSToken[]; + media: { + type: NodeType; + media: unknown; + before: CSSToken[]; + after: CSSToken[]; + }; + }; + isMediaNot(): this is MediaNot; + static isMediaNot(x: unknown): x is MediaNot; +} +export type MediaNotWalkerEntry = MediaInParensWalkerEntry | MediaInParens; +export type MediaNotWalkerParent = MediaInParensWalkerParent | MediaNot; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-or.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-or.d.ts new file mode 100644 index 00000000..4459412d --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-or.d.ts @@ -0,0 +1,32 @@ +import { CSSToken } from '@csstools/css-tokenizer'; +import { MediaInParens, MediaInParensWalkerEntry, MediaInParensWalkerParent } from './media-in-parens'; +import { NodeType } from '../util/node-type'; +export declare class MediaOr { + type: NodeType; + modifier: Array; + media: MediaInParens; + constructor(modifier: Array, media: MediaInParens); + tokens(): Array; + toString(): string; + indexOf(item: MediaInParens): number | string; + at(index: number | string): MediaInParens | undefined; + walk>(cb: (entry: { + node: MediaOrWalkerEntry; + parent: MediaOrWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + modifier: CSSToken[]; + media: { + type: NodeType; + media: unknown; + before: CSSToken[]; + after: CSSToken[]; + }; + }; + isMediaOr(): this is MediaOr; + static isMediaOr(x: unknown): x is MediaOr; +} +export type MediaOrWalkerEntry = MediaInParensWalkerEntry | MediaInParens; +export type MediaOrWalkerParent = MediaInParensWalkerParent | MediaOr; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-query-modifier.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-query-modifier.d.ts new file mode 100644 index 00000000..df9733cb --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-query-modifier.d.ts @@ -0,0 +1,6 @@ +import { TokenIdent } from '@csstools/css-tokenizer'; +export declare enum MediaQueryModifier { + Not = "not", + Only = "only" +} +export declare function modifierFromToken(token: TokenIdent): MediaQueryModifier | false; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-query.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-query.d.ts new file mode 100644 index 00000000..aa77dee0 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-query.d.ts @@ -0,0 +1,83 @@ +import { ComponentValue } from '@csstools/css-parser-algorithms'; +import { CSSToken } from '@csstools/css-tokenizer'; +import { NodeType } from '../util/node-type'; +import { MediaCondition, MediaConditionWalkerEntry, MediaConditionWalkerParent } from './media-condition'; +export type MediaQuery = MediaQueryWithType | MediaQueryWithoutType | MediaQueryInvalid; +export declare class MediaQueryWithType { + type: NodeType; + modifier: Array; + mediaType: Array; + and: Array | undefined; + media: MediaCondition | undefined; + constructor(modifier: Array, mediaType: Array, and?: Array | undefined, media?: MediaCondition | undefined); + getModifier(): string; + negateQuery(): MediaQuery; + getMediaType(): string; + tokens(): Array; + toString(): string; + indexOf(item: MediaCondition): number | string; + at(index: number | string): MediaCondition | undefined; + walk>(cb: (entry: { + node: MediaQueryWithTypeWalkerEntry; + parent: MediaQueryWithTypeWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + string: string; + modifier: CSSToken[]; + mediaType: CSSToken[]; + and: CSSToken[] | undefined; + media: MediaCondition | undefined; + }; + isMediaQueryWithType(): this is MediaQueryWithType; + static isMediaQueryWithType(x: unknown): x is MediaQueryWithType; +} +export type MediaQueryWithTypeWalkerEntry = MediaConditionWalkerEntry | MediaCondition; +export type MediaQueryWithTypeWalkerParent = MediaConditionWalkerParent | MediaQueryWithType; +export declare class MediaQueryWithoutType { + type: NodeType; + media: MediaCondition; + constructor(media: MediaCondition); + negateQuery(): MediaQuery; + tokens(): Array; + toString(): string; + indexOf(item: MediaCondition): number | string; + at(index: number | string): MediaCondition | undefined; + walk>(cb: (entry: { + node: MediaQueryWithoutTypeWalkerEntry; + parent: MediaQueryWithoutTypeWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + string: string; + media: MediaCondition; + }; + isMediaQueryWithoutType(): this is MediaQueryWithoutType; + static isMediaQueryWithoutType(x: unknown): x is MediaQueryWithoutType; +} +export type MediaQueryWithoutTypeWalkerEntry = MediaConditionWalkerEntry | MediaCondition; +export type MediaQueryWithoutTypeWalkerParent = MediaConditionWalkerParent | MediaQueryWithoutType; +export declare class MediaQueryInvalid { + type: NodeType; + media: Array; + constructor(media: Array); + negateQuery(): MediaQuery; + tokens(): Array; + toString(): string; + walk>(cb: (entry: { + node: MediaQueryInvalidWalkerEntry; + parent: MediaQueryInvalidWalkerParent; + state?: T; + }, index: number | string) => boolean | void, state?: T): false | undefined; + toJSON(): { + type: NodeType; + string: string; + media: ComponentValue[]; + }; + isMediaQueryInvalid(): this is MediaQueryInvalid; + static isMediaQueryInvalid(x: unknown): x is MediaQueryInvalid; +} +export type MediaQueryInvalidWalkerEntry = ComponentValue; +export type MediaQueryInvalidWalkerParent = ComponentValue | MediaQueryInvalid; diff --git a/node_modules/@csstools/media-query-list-parser/dist/nodes/media-type.d.ts b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-type.d.ts new file mode 100644 index 00000000..b7924b76 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/nodes/media-type.d.ts @@ -0,0 +1,24 @@ +import { TokenIdent } from '@csstools/css-tokenizer'; +export declare enum MediaType { + /** Always matches */ + All = "all", + Print = "print", + Screen = "screen", + /** Never matches */ + Tty = "tty", + /** Never matches */ + Tv = "tv", + /** Never matches */ + Projection = "projection", + /** Never matches */ + Handheld = "handheld", + /** Never matches */ + Braille = "braille", + /** Never matches */ + Embossed = "embossed", + /** Never matches */ + Aural = "aural", + /** Never matches */ + Speech = "speech" +} +export declare function typeFromToken(token: TokenIdent): MediaType | false; diff --git a/node_modules/@csstools/media-query-list-parser/dist/parser/parse-custom-media.d.ts b/node_modules/@csstools/media-query-list-parser/dist/parser/parse-custom-media.d.ts new file mode 100644 index 00000000..1be3d0f3 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/parser/parse-custom-media.d.ts @@ -0,0 +1,8 @@ +import { CSSToken, ParseError } from '@csstools/css-tokenizer'; +import { CustomMedia } from '../nodes/custom-media'; +export type Options = { + preserveInvalidMediaQueries?: boolean; + onParseError?: (error: ParseError) => void; +}; +export declare function parseCustomMediaFromTokens(tokens: Array, options?: Options): CustomMedia | false; +export declare function parseCustomMedia(source: string, options?: Options): CustomMedia | false; diff --git a/node_modules/@csstools/media-query-list-parser/dist/parser/parse-media-query.d.ts b/node_modules/@csstools/media-query-list-parser/dist/parser/parse-media-query.d.ts new file mode 100644 index 00000000..3801d178 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/parser/parse-media-query.d.ts @@ -0,0 +1,24 @@ +import { ComponentValue, SimpleBlockNode } from '@csstools/css-parser-algorithms'; +import { MediaAnd } from '../nodes/media-and'; +import { MediaCondition } from '../nodes/media-condition'; +import { MediaConditionListWithAnd, MediaConditionListWithOr } from '../nodes/media-condition-list'; +import { MediaInParens } from '../nodes/media-in-parens'; +import { MediaNot } from '../nodes/media-not'; +import { MediaOr } from '../nodes/media-or'; +import { MediaQuery } from '../nodes/media-query'; +export declare function parseMediaQuery(componentValues: Array): MediaQuery | false; +export declare function parseMediaConditionListWithOr(componentValues: Array): MediaConditionListWithOr | false; +export declare function parseMediaConditionListWithAnd(componentValues: Array): MediaConditionListWithAnd | false; +export declare function parseMediaCondition(componentValues: Array): MediaCondition | false; +export declare function parseMediaConditionWithoutOr(componentValues: Array): MediaCondition | false; +export declare function parseMediaInParens(componentValues: Array): MediaInParens | false; +export declare function parseMediaInParensFromSimpleBlock(simpleBlock: SimpleBlockNode): MediaInParens | false; +export declare function parseMediaNot(componentValues: Array): MediaNot | false; +export declare function parseMediaOr(componentValues: Array): false | { + advance: number; + node: MediaOr; +}; +export declare function parseMediaAnd(componentValues: Array): false | { + advance: number; + node: MediaAnd; +}; diff --git a/node_modules/@csstools/media-query-list-parser/dist/parser/parse.d.ts b/node_modules/@csstools/media-query-list-parser/dist/parser/parse.d.ts new file mode 100644 index 00000000..a09339bd --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/parser/parse.d.ts @@ -0,0 +1,8 @@ +import { CSSToken, ParseError } from '@csstools/css-tokenizer'; +import { MediaQuery } from '../nodes/media-query'; +export type Options = { + preserveInvalidMediaQueries?: boolean; + onParseError?: (error: ParseError) => void; +}; +export declare function parseFromTokens(tokens: Array, options?: Options): MediaQuery[]; +export declare function parse(source: string, options?: Options): MediaQuery[]; diff --git a/node_modules/@csstools/media-query-list-parser/dist/util/clone-media-query.d.ts b/node_modules/@csstools/media-query-list-parser/dist/util/clone-media-query.d.ts new file mode 100644 index 00000000..e0702c23 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/util/clone-media-query.d.ts @@ -0,0 +1,2 @@ +import { MediaQueryInvalid, MediaQueryWithoutType, MediaQueryWithType } from '../nodes/media-query'; +export declare function cloneMediaQuery(x: T): T; diff --git a/node_modules/@csstools/media-query-list-parser/dist/util/component-value-is.d.ts b/node_modules/@csstools/media-query-list-parser/dist/util/component-value-is.d.ts new file mode 100644 index 00000000..f0763807 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/util/component-value-is.d.ts @@ -0,0 +1,5 @@ +import { ComponentValue } from '@csstools/css-parser-algorithms'; +export declare function isNumber(componentValue: ComponentValue): boolean; +export declare function isDimension(componentValue: ComponentValue): boolean; +export declare function isIdent(componentValue: ComponentValue): boolean; +export declare function isEnvironmentVariable(componentValue: ComponentValue): boolean; diff --git a/node_modules/@csstools/media-query-list-parser/dist/util/node-type.d.ts b/node_modules/@csstools/media-query-list-parser/dist/util/node-type.d.ts new file mode 100644 index 00000000..935e6eb5 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/util/node-type.d.ts @@ -0,0 +1,22 @@ +export declare enum NodeType { + CustomMedia = "custom-media", + GeneralEnclosed = "general-enclosed", + MediaAnd = "media-and", + MediaCondition = "media-condition", + MediaConditionListWithAnd = "media-condition-list-and", + MediaConditionListWithOr = "media-condition-list-or", + MediaFeature = "media-feature", + MediaFeatureBoolean = "mf-boolean", + MediaFeatureName = "mf-name", + MediaFeaturePlain = "mf-plain", + MediaFeatureRangeNameValue = "mf-range-name-value", + MediaFeatureRangeValueName = "mf-range-value-name", + MediaFeatureRangeValueNameValue = "mf-range-value-name-value", + MediaFeatureValue = "mf-value", + MediaInParens = "media-in-parens", + MediaNot = "media-not", + MediaOr = "media-or", + MediaQueryWithType = "media-query-with-type", + MediaQueryWithoutType = "media-query-without-type", + MediaQueryInvalid = "media-query-invalid" +} diff --git a/node_modules/@csstools/media-query-list-parser/dist/util/to-lower-case-a-z.d.ts b/node_modules/@csstools/media-query-list-parser/dist/util/to-lower-case-a-z.d.ts new file mode 100644 index 00000000..396b252e --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/util/to-lower-case-a-z.d.ts @@ -0,0 +1 @@ +export declare function toLowerCaseAZ(x: string): string; diff --git a/node_modules/@csstools/media-query-list-parser/dist/util/type-predicates.d.ts b/node_modules/@csstools/media-query-list-parser/dist/util/type-predicates.d.ts new file mode 100644 index 00000000..2313f29b --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/dist/util/type-predicates.d.ts @@ -0,0 +1,37 @@ +import { GeneralEnclosed } from '../nodes/general-enclosed'; +import { MediaAnd } from '../nodes/media-and'; +import { MediaCondition } from '../nodes/media-condition'; +import { MediaConditionList, MediaConditionListWithAnd, MediaConditionListWithOr } from '../nodes/media-condition-list'; +import { MediaFeature } from '../nodes/media-feature'; +import { MediaFeatureBoolean } from '../nodes/media-feature-boolean'; +import { MediaFeatureName } from '../nodes/media-feature-name'; +import { MediaFeaturePlain } from '../nodes/media-feature-plain'; +import { MediaFeatureRange, MediaFeatureRangeNameValue, MediaFeatureRangeValueName, MediaFeatureRangeValueNameValue } from '../nodes/media-feature-range'; +import { MediaFeatureValue } from '../nodes/media-feature-value'; +import { MediaInParens } from '../nodes/media-in-parens'; +import { MediaNot } from '../nodes/media-not'; +import { MediaOr } from '../nodes/media-or'; +import { MediaQuery, MediaQueryInvalid, MediaQueryWithoutType, MediaQueryWithType } from '../nodes/media-query'; +export declare function isCustomMedia(x: unknown): x is GeneralEnclosed; +export declare function isGeneralEnclosed(x: unknown): x is GeneralEnclosed; +export declare function isMediaAnd(x: unknown): x is MediaAnd; +export declare function isMediaConditionList(x: unknown): x is MediaConditionList; +export declare function isMediaConditionListWithAnd(x: unknown): x is MediaConditionListWithAnd; +export declare function isMediaConditionListWithOr(x: unknown): x is MediaConditionListWithOr; +export declare function isMediaCondition(x: unknown): x is MediaCondition; +export declare function isMediaFeatureBoolean(x: unknown): x is MediaFeatureBoolean; +export declare function isMediaFeatureName(x: unknown): x is MediaFeatureName; +export declare function isMediaFeatureValue(x: unknown): x is MediaFeatureValue; +export declare function isMediaFeaturePlain(x: unknown): x is MediaFeaturePlain; +export declare function isMediaFeatureRange(x: unknown): x is MediaFeatureRange; +export declare function isMediaFeatureRangeNameValue(x: unknown): x is MediaFeatureRangeNameValue; +export declare function isMediaFeatureRangeValueName(x: unknown): x is MediaFeatureRangeValueName; +export declare function isMediaFeatureRangeValueNameValue(x: unknown): x is MediaFeatureRangeValueNameValue; +export declare function isMediaFeature(x: unknown): x is MediaFeature; +export declare function isMediaInParens(x: unknown): x is MediaInParens; +export declare function isMediaNot(x: unknown): x is MediaNot; +export declare function isMediaOr(x: unknown): x is MediaOr; +export declare function isMediaQuery(x: unknown): x is MediaQuery; +export declare function isMediaQueryWithType(x: unknown): x is MediaQueryWithType; +export declare function isMediaQueryWithoutType(x: unknown): x is MediaQueryWithoutType; +export declare function isMediaQueryInvalid(x: unknown): x is MediaQueryInvalid; diff --git a/node_modules/@csstools/media-query-list-parser/package.json b/node_modules/@csstools/media-query-list-parser/package.json new file mode 100644 index 00000000..d9037c74 --- /dev/null +++ b/node_modules/@csstools/media-query-list-parser/package.json @@ -0,0 +1,74 @@ +{ + "name": "@csstools/media-query-list-parser", + "description": "Parse CSS media query lists.", + "version": "2.1.5", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "stryker": "stryker run --logLevel error", + "test": "node ./test/test.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node ./test/test.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "packages/media-query-list-parser" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "css", + "media query", + "parser" + ], + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-cascade-layers/CHANGELOG.md b/node_modules/@csstools/postcss-cascade-layers/CHANGELOG.md new file mode 100644 index 00000000..ebe49f70 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/CHANGELOG.md @@ -0,0 +1,87 @@ +# Changes to PostCSS Cascade Layers + +### 4.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/selector-specificity`](/packages/selector-specificity) to [`3.0.0`](/packages/selector-specificity/CHANGELOG.md#300) (major) + +### 3.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 3.0.0 + +_January 24, 2023_ + +- Run `postcss-cascade-layers` late compared to other PostCSS plugins (breaking) + +_This will be the last time we change this after several times back and forth. +We are sticking with this configuration now._ + +### 2.0.0 + +_November 14, 2022_ + +- Run `postcss-cascade-layers` early compared to other PostCSS plugins (breaking) +- Updated: Support for Node v14+ (major). +- Fix: Do not throw when a selector is invalid, show a warning instead. + +### 1.1.1 + +_September 17, 2022_ + +- Fix pre-defined layer order in nested `@layer` rules. + +### 1.1.0 + +_September 14, 2022_ + +- Add support for `@scope` and `@container` as parent rules for `@layer` + +### 1.0.6 + +_September 7, 2022_ + +- Fix broken `@keyframes` in `@layer`. + +### 1.0.5 + +_July 8, 2022_ + +- Fix case insensitive `@layer` matching (`@LaYeR`). +- Updated `@csstools/selector-specificity` to `2.0.2` (patch) + +### 1.0.4 + +_June 23, 2022_ + +- Fix selector order with any pseudo element. This plugin will no longer re-order selectors. + +### 1.0.3 + +_June 4, 2022_ + +- Update `@csstools/selector-specificity` (major) + +### 1.0.2 + +_May 20, 2022_ + +- Use only simple `:not(#\#)` selectors to adjust specificity. + +### 1.0.1 + +_May 17, 2022_ + +- Process CSS after most other plugins to ensure correct analysis and transformation of sugary CSS. +- Fix selector order with `:before` and other pseudo elements. + +### 1.0.0 + +_May 12, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-cascade-layers/LICENSE.md b/node_modules/@csstools/postcss-cascade-layers/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-cascade-layers/README.md b/node_modules/@csstools/postcss-cascade-layers/README.md new file mode 100644 index 00000000..0bbceb7c --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/README.md @@ -0,0 +1,202 @@ +# PostCSS Cascade Layers [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +[PostCSS Cascade Layers] lets you use `@layer` following the [Cascade Layers Specification]. For more information on layers, checkout [A Complete Guide to CSS Cascade Layers] by Miriam Suzanne. + +```pcss + +target { + color: purple; +} + +@layer { + target { + color: green; + } +} + + +/* becomes */ + + +target:not(#\#) { + color: purple; +} + +target { + color: green; + } + +``` + +## How it works + +[PostCSS Cascade Layers] creates "layers" of specificity. + +It applies extra specificity on all your styles based on : +- the most specific selector found +- the order in which layers are defined + +```css +@layer A, B; + +@layer B { + .a-less-specific-selector { + /* styles */ + } +} + +@layer A { + #something #very-specific { + /* styles */ + } +} + +@layer C { + .a-less-specific-selector { + /* styles */ + } +} +``` + +most specific selector : +- `#something #very-specific` +- `[2, 0, 0]` +- `2 + 1` -> `3` to ensure there is no overlap + +the order in which layers are defined : +- `A` +- `B` +- `C` + +| layer | previous adjustment | specificity adjustment | selector | +| ------ | ------ | ----------- | --- | +| `A` | `0` | `0 + 0 = 0` | N/A | +| `B` | `0` | `0 + 3 = 3` | `:not(#\#):not(#\#):not(#\#)` | +| `C` | `3` | `3 + 3 = 6` | `:not(#\#):not(#\#):not(#\#):not(#\#):not(#\#):not(#\#)` | + +This approach lets more important (later) layers always override less important (earlier) layers.
+And layers have enough room internally so that each selector works and overrides as expected. + +More layers with more specificity will cause longer `:not(...)` selectors to be generated. + +⚠️ For this to work the plugin needs to analyze your entire stylesheet at once.
+If you have different assets that are unaware of each other it will not work correctly as the analysis will be incorrect. + +## Usage + +Add [PostCSS Cascade Layers] to your project: + +```bash +npm install postcss @csstools/postcss-cascade-layers --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssCascadeLayers = require('@csstools/postcss-cascade-layers'); + +postcss([ + postcssCascadeLayers(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Cascade Layers] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### onRevertLayerKeyword + +The `onRevertLayerKeyword` option enables warnings if `revert-layer` is used. +Transforming `revert-layer` for older browsers is not possible in this plugin. + +Defaults to `warn` + +```js +postcssCascadeLayers({ onRevertLayerKeyword: 'warn' }) // 'warn' | false +``` + +```pcss +/* [postcss-cascade-layers]: handling "revert-layer" is unsupported by this plugin and will cause style differences between browser versions. */ +@layer { + .foo { + color: revert-layer; + } +} +``` + +### onConditionalRulesChangingLayerOrder + +The `onConditionalRulesChangingLayerOrder` option enables warnings if layers are declared in multiple different orders in conditional rules. +Transforming these layers correctly for older browsers is not possible in this plugin. + +Defaults to `warn` + +```js +postcssCascadeLayers({ onConditionalRulesChangingLayerOrder: 'warn' }) // 'warn' | false +``` + +```pcss +/* [postcss-cascade-layers]: handling different layer orders in conditional rules is unsupported by this plugin and will cause style differences between browser versions. */ +@media (min-width: 10px) { + @layer B { + .foo { + color: red; + } + } +} + +@layer A { + .foo { + color: pink; + } +} + +@layer B { + .foo { + color: red; + } +} +``` + +### onImportLayerRule + +The `@import` at-rule can also be used with cascade layers, specifically to create a new layer like so: +```css +@import 'theme.css' layer(utilities); +``` +If your CSS uses `@import` with layers, you will also need the [postcss-import] plugin. This plugin alone will not handle the `@import` at-rule. + +This plugin will warn you when it detects that [postcss-import] did not transform`@import` at-rules. + +```js +postcssCascadeLayers({ onImportLayerRule: 'warn' }) // 'warn' | false +``` + +### Contributors +The contributors to this plugin were [Olu Niyi-Awosusi] and [Sana Javed] from [Oddbird] and Romain Menke. + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#cascade-layers +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-cascade-layers + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Cascade Layers]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-cascade-layers +[Cascade Layers Specification]: https://www.w3.org/TR/css-cascade-5/#layering +[A Complete Guide to CSS Cascade Layers]: https://css-tricks.com/css-cascade-layers/ +[Olu Niyi-Awosusi]: https://github.com/oluoluoxenfree +[Sana Javed]: https://github.com/sanajaved7 +[Oddbird]: https://github.com/oddbird +[postcss-import]: https://github.com/postcss/postcss-import diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/adjust-selector-specificity.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/adjust-selector-specificity.d.ts new file mode 100644 index 00000000..af7b5e19 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/adjust-selector-specificity.d.ts @@ -0,0 +1 @@ +export declare function adjustSelectorSpecificity(selector: string, amount: number): string; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/clean-blocks.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/clean-blocks.d.ts new file mode 100644 index 00000000..b9f2a564 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/clean-blocks.d.ts @@ -0,0 +1,3 @@ +import type { Container } from 'postcss'; +export declare function removeEmptyDescendantBlocks(block: Container | undefined): void; +export declare function removeEmptyAncestorBlocks(block: Container | undefined): void; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/constants.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/constants.d.ts new file mode 100644 index 00000000..6a4c9c36 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/constants.d.ts @@ -0,0 +1,8 @@ +/** @constant {string} INVALID_LAYER_NAME Used to replace "layer" temporarily when an invalid layer is detected. This allows us to ignore this rule in further processing. */ +export declare const INVALID_LAYER_NAME = "csstools-invalid-layer"; +/** @constant {string} WITH_SELECTORS_LAYER_NAME Used to replace "layer" temporarily for any layer at rules that contain selectors. This allows us to sort these differently from other layer at rules. */ +export declare const WITH_SELECTORS_LAYER_NAME = "csstools-layer-with-selector-rules"; +export declare const ANONYMOUS_LAYER_SUFFIX = "6efdb677-bb05-44e5-840f-29d2175862fd"; +export declare const IMPLICIT_LAYER_SUFFIX = "b147acf6-11a6-4338-a4d0-80aef4cd1a2f"; +export declare const CONDITIONAL_ATRULES: string[]; +export declare const ATRULES_WITH_NON_SELECTOR_BLOCK_LISTS: string[]; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/desugar-and-parse-layer-names.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/desugar-and-parse-layer-names.d.ts new file mode 100644 index 00000000..d44fd454 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/desugar-and-parse-layer-names.d.ts @@ -0,0 +1,3 @@ +import type { Container } from 'postcss'; +import type { Model } from './model'; +export declare function desugarAndParseLayerNames(root: Container, model: Model): void; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/desugar-nested-layers.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/desugar-nested-layers.d.ts new file mode 100644 index 00000000..e15d3bfb --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/desugar-nested-layers.d.ts @@ -0,0 +1,3 @@ +import type { Container, ChildNode } from 'postcss'; +import type { Model } from './model'; +export declare function desugarNestedLayers(root: Container, model: Model): void; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/get-conditional-atrule-ancestor.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/get-conditional-atrule-ancestor.d.ts new file mode 100644 index 00000000..25a6756a --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/get-conditional-atrule-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { AtRule } from 'postcss'; +export declare function getConditionalAtRuleAncestor(layerRule: AtRule): AtRule | null; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/get-layer-atrule-ancestor.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/get-layer-atrule-ancestor.d.ts new file mode 100644 index 00000000..b59be340 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/get-layer-atrule-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { AtRule, Node } from 'postcss'; +export declare function getLayerAtRuleAncestor(node: Node): AtRule | null; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/index.cjs b/node_modules/@csstools/postcss-cascade-layers/dist/index.cjs new file mode 100644 index 00000000..6788e74a --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-selector-parser"),r=require("@csstools/selector-specificity");const t="csstools-invalid-layer",a="csstools-layer-with-selector-rules",s="6efdb677-bb05-44e5-840f-29d2175862fd",n="b147acf6-11a6-4338-a4d0-80aef4cd1a2f",o=["media","supports"],l=["keyframes"],i=new Set(["layer","supports","media","container","scope"]);function isProcessableLayerRule(e){if("atrule"!==e.type)return!1;if("layer"!==e.name.toLowerCase())return!1;let r=e.parent;for(;r;){if("rule"===r.type)return!1;if("atrule"===r.type&&!i.has(r.name.toLowerCase()))return!1;r=r.parent}return!0}class Model{anonymousLayerCount=0;layerCount=0;layerOrder;layerParamsParsed;layerNameParts;constructor(){this.anonymousLayerCount=0,this.layerCount=0,this.layerOrder=new Map,this.layerParamsParsed=new Map,this.layerNameParts=new Map}createAnonymousLayerName(){const e=`anonymous-${this.anonymousLayerCount}-${s}`;return this.addLayerNameParts(e),this.layerParamsParsed.set(e,[e]),this.anonymousLayerCount++,e}createImplicitLayerName(e){const r=this.layerNameParts.get(e)??[],t=`implicit-${r[r.length-1]}-${n}`;return this.addLayerNameParts([...r,t]),this.layerParamsParsed.set(t,[t]),t}addLayerParams(e,r){r?"string"!=typeof r?this.layerParamsParsed.set(e,r):this.layerParamsParsed.set(e,[r]):this.layerParamsParsed.set(e,[e])}addLayerNameParts(e){"string"!=typeof e?this.layerNameParts.set(e.join("."),e):this.layerNameParts.set(e,[e])}getLayerParams(e){const r=[...this.layerParamsParsed.get(e.params)??[]];let t=e.parent;for(;t;)"atrule"===t.type?(isProcessableLayerRule(t)&&r.push(...this.layerParamsParsed.get(t.params)??[]),t=t.parent):t=t.parent;return r.reverse(),r.flatMap((e=>this.layerNameParts.get(e)??[]))}getLayerNameList(e){const r=this.layerNameParts.get(e)??[],t=[];for(let e=0;e{const t=this.layerNameParts.get(e[0])??[],a=this.layerNameParts.get(r[0])??[];if(t[0]!==a[0])return(this.layerOrder.get(t[0])??0)-(this.layerOrder.get(a[0])??0);const s=Math.max(t.length,a.length);for(let e=0;e{this.layerOrder.set(e[0],r)}))}}function adjustSelectorSpecificity(r,t){const a=e().astSync(r),s=e().astSync(generateNot(t));let n=!1;for(let r=0;r{if(r(e))return t=!0,!1})),t}function someAtRuleInTree(e,r){let t=!1;return e.walkAtRules((e=>{if(r(e))return t=!0,!1})),t}function getLayerAtRuleAncestor(e){let r=e.parent;for(;r;)if("atrule"===r.type){if(isProcessableLayerRule(r))return r;r=r.parent}else r=r.parent;return null}function removeEmptyDescendantBlocks(e){var r;e&&(e.walk((e=>{var r;("rule"===e.type||"atrule"===e.type&&["layer",...o].includes(e.name.toLowerCase()))&&(0===(null==(r=e.nodes)?void 0:r.length)&&e.remove())})),0===(null==(r=e.nodes)?void 0:r.length)&&e.remove())}function removeEmptyAncestorBlocks(e){if(!e)return;let r=e;for(;r;){if(void 0===r.nodes)return;if(r.nodes.length>0)return;const e=r.parent;r.remove(),r=e}}function desugarAndParseLayerNames(r,a){r.walkAtRules((r=>{if(!isProcessableLayerRule(r))return;if(r.params){const s=[];let n=!1;if(e().astSync(r.params).each((e=>{const r=[];e.walk((e=>{switch(e.type){case"class":case"tag":r.push(e.value);break;default:n=!0}})),n||(s.push(r.join(".")),a.addLayerNameParts(r))})),a.addLayerParams(r.params,s),r.nodes&&s.length>1&&(n=!0),n)return void(r.name=t);if(!r.nodes||0===r.nodes.length){if(s.length<=1)return;return s.slice(0,-1).forEach((e=>{a.addLayerParams(e,e),r.cloneBefore({params:e})})),a.addLayerParams(s[s.length-1],s[s.length-1]),void(r.params=s[s.length-1])}}r.params||(r.raws.afterName=" ",r.params=a.createAnonymousLayerName());const s=someAtRuleInTree(r,(e=>isProcessableLayerRule(e))),n=someInTree(r,(e=>{if("rule"!==e.type)return!1;return getLayerAtRuleAncestor(e)===r}));if(s&&n){const e=a.createImplicitLayerName(r.params),t=r.clone({params:e});t.walkAtRules((e=>{isProcessableLayerRule(e)&&e.remove()})),r.walk((e=>{if("atrule"===e.type&&isProcessableLayerRule(e))return;if("atrule"===e.type&&o.includes(e.name.toLowerCase()))return;getLayerAtRuleAncestor(e)===r&&e.remove()})),r.append(t),removeEmptyDescendantBlocks(r),removeEmptyAncestorBlocks(r)}}))}function desugarNestedLayers(e,r){for(;someAtRuleInTree(e,(e=>e.nodes&&someAtRuleInTree(e,(e=>isProcessableLayerRule(e)))));){let t=!1;if(e.walkAtRules((a=>{var s,n;if(isProcessableLayerRule(a)&&a.parent!==e){if("atrule"===(null==(s=a.parent)?void 0:s.type)&&isProcessableLayerRule(a.parent)){const e=a.parent;{const t=r.layerNameParts.get(e.params),s=r.layerNameParts.get(a.params);if(!t||!s)return;r.layerNameParts.set(`${e.params}.${a.params}`,[...t,...s]),r.layerParamsParsed.set(`${e.params}.${a.params}`,[`${e.params}.${a.params}`])}return a.params=`${e.params}.${a.params}`,e.before(a),removeEmptyDescendantBlocks(e),void removeEmptyAncestorBlocks(e)}if("atrule"===(null==(n=a.parent)?void 0:n.type)){const e=a.parent,r=e.clone(),t=a.clone();return r.removeAll(),t.removeAll(),r.append(a.nodes),t.append(r),e.before(t),a.remove(),removeEmptyDescendantBlocks(e),void removeEmptyAncestorBlocks(e)}t=!0}})),t)break}}function sortRootNodes(e,r){e.walkAtRules((e=>{if(!isProcessableLayerRule(e))return;const r=e.clone(),t=e.clone();r.walkAtRules((e=>{if(l.includes(e.name.toLowerCase())){const r=e.parent;return e.remove(),removeEmptyDescendantBlocks(r),void removeEmptyAncestorBlocks(r)}if(someInTree(e,(e=>"rule"===e.type)))return;const r=e.parent;e.remove(),removeEmptyDescendantBlocks(r),removeEmptyAncestorBlocks(r)})),t.walkRules((e=>{if(e.parent&&"atrule"===e.parent.type&&l.includes(e.parent.name.toLowerCase()))return;const r=e.parent;e.remove(),removeEmptyDescendantBlocks(r),removeEmptyAncestorBlocks(r)})),t.walkAtRules((e=>{if(o.includes(e.name.toLowerCase()))return removeEmptyDescendantBlocks(e),void removeEmptyAncestorBlocks(e)})),r.name=a,e.replaceWith(r,t),0===r.nodes.length&&r.remove(),0===t.nodes.length&&t.remove()})),e.nodes.sort(((e,t)=>{const a="atrule"===e.type&&"layer"===e.name.toLowerCase(),s="atrule"===t.type&&"layer"===t.name.toLowerCase();if(a&&s){return(r.layerOrder.get(e.params)??0)-(r.layerOrder.get(t.params)??0)}return a!==s?a?-1:1:0})),e.walkAtRules(a,(e=>{e.name="layer"}))}function getConditionalAtRuleAncestor(e){let r=e.parent;for(;r;)if("atrule"===r.type){if(o.includes(r.name.toLowerCase()))return r;r=r.parent}else r=r.parent;return null}function recordLayerOrder(e,r,{result:t,options:a}){e.walkAtRules((e=>{if(!isProcessableLayerRule(e))return;const o=r.getLayerParams(e),l=o.join(".");r.layerOrder.has(l)||(a.onConditionalRulesChangingLayerOrder&&getConditionalAtRuleAncestor(e)&&!e.params.endsWith(n)&&!e.params.endsWith(s)&&e.warn(t,"handling different layer orders in conditional rules is unsupported by this plugin and will cause style differences between browser versions."),r.layerParamsParsed.has(l)||r.layerParamsParsed.set(l,[l]),r.layerNameParts.has(l)||r.layerNameParts.set(l,[...o]),r.getLayerNameList(l).forEach((e=>{r.layerOrder.has(e)||(r.layerOrder.set(e,r.layerCount),r.layerCount+=1)}))),e.nodes&&0!==e.nodes.length||e.remove()}))}function splitImportantStyles(e){e.walkDecls((e=>{var r;if(!e.important)return;const t=e.parent;if(!t)return;if("atrule"===(null==t||null==(r=t.parent)?void 0:r.type)&&l.includes(t.parent.name.toLowerCase()))return;const a=t.clone();a.each((e=>{"decl"===e.type&&e.important||e.remove()})),t.each((e=>{"decl"===e.type&&e.important&&e.remove()})),t.before(a),removeEmptyDescendantBlocks(t)}))}const creator=a=>{const s=Object.assign({onRevertLayerKeyword:"warn",onConditionalRulesChangingLayerOrder:"warn",onImportLayerRule:"warn"},a);return{postcssPlugin:"postcss-cascade-layers",OnceExit(a,{result:n}){s.onRevertLayerKeyword&&a.walkDecls((e=>{"revert-layer"===e.value.toLowerCase()&&e.warn(n,'handling "revert-layer" is unsupported by this plugin and will cause style differences between browser versions.')})),s.onImportLayerRule&&a.walkAtRules((e=>{"import"===e.name.toLowerCase()&&e.params.toLowerCase().includes("layer")&&e.warn(n,"To use @import with layers, the postcss-import plugin is also required. This plugin alone will not support using the @import at-rule.")})),splitImportantStyles(a);const o=new Model;if(desugarAndParseLayerNames(a,o),recordLayerOrder(a,o,{result:n,options:s}),!o.layerCount)return void a.walkAtRules(t,(e=>{e.name="layer"}));let i=0;for(a.walkRules((t=>{t.selectors.forEach((a=>{try{const t=r.selectorSpecificity(e().astSync(a));i=Math.max(i,t.a+1)}catch(e){t.warn(n,`Failed to parse selector : "${a}" with message: "${e.message}"`)}}))})),a.walkRules((e=>{e.parent&&"atrule"===e.parent.type&&l.includes(e.parent.name.toLowerCase())||getLayerAtRuleAncestor(e)||e.some((e=>"decl"===e.type&&e.important))||(e.selectors=e.selectors.map((r=>{try{return adjustSelectorSpecificity(r,o.layerCount*i)}catch(t){e.warn(n,`Failed to parse selector : "${r}" with message: "${t.message}"`)}return r})))})),o.sortLayerNames(),desugarNestedLayers(a,o),sortRootNodes(a,o),a.walkRules((e=>{if(e.parent&&"atrule"===e.parent.type&&l.includes(e.parent.name.toLowerCase()))return;const r=getLayerAtRuleAncestor(e);if(!r)return;const t=o.getLayerParams(r).join(".");let a=(o.layerOrder.get(t)??0)*i;e.some((e=>"decl"===e.type&&e.important))&&(a=o.layerCount-a),e.selectors=e.selectors.map((e=>adjustSelectorSpecificity(e,a)))}));someAtRuleInTree(a,(e=>isProcessableLayerRule(e)));)a.walkAtRules((e=>{isProcessableLayerRule(e)&&e.replaceWith(e.nodes)}));a.walkAtRules(t,(e=>{e.name="layer"}))}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/index.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/index.d.ts new file mode 100644 index 00000000..9f366fbb --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/index.d.ts @@ -0,0 +1,5 @@ +import type { PluginCreator } from 'postcss'; +import type { pluginOptions } from './options'; +export type { pluginOptions } from './options'; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/index.mjs b/node_modules/@csstools/postcss-cascade-layers/dist/index.mjs new file mode 100644 index 00000000..5894e725 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-selector-parser";import{selectorSpecificity as r}from"@csstools/selector-specificity";const t="csstools-invalid-layer",a="csstools-layer-with-selector-rules",s="6efdb677-bb05-44e5-840f-29d2175862fd",n="b147acf6-11a6-4338-a4d0-80aef4cd1a2f",o=["media","supports"],l=["keyframes"],i=new Set(["layer","supports","media","container","scope"]);function isProcessableLayerRule(e){if("atrule"!==e.type)return!1;if("layer"!==e.name.toLowerCase())return!1;let r=e.parent;for(;r;){if("rule"===r.type)return!1;if("atrule"===r.type&&!i.has(r.name.toLowerCase()))return!1;r=r.parent}return!0}class Model{anonymousLayerCount=0;layerCount=0;layerOrder;layerParamsParsed;layerNameParts;constructor(){this.anonymousLayerCount=0,this.layerCount=0,this.layerOrder=new Map,this.layerParamsParsed=new Map,this.layerNameParts=new Map}createAnonymousLayerName(){const e=`anonymous-${this.anonymousLayerCount}-${s}`;return this.addLayerNameParts(e),this.layerParamsParsed.set(e,[e]),this.anonymousLayerCount++,e}createImplicitLayerName(e){const r=this.layerNameParts.get(e)??[],t=`implicit-${r[r.length-1]}-${n}`;return this.addLayerNameParts([...r,t]),this.layerParamsParsed.set(t,[t]),t}addLayerParams(e,r){r?"string"!=typeof r?this.layerParamsParsed.set(e,r):this.layerParamsParsed.set(e,[r]):this.layerParamsParsed.set(e,[e])}addLayerNameParts(e){"string"!=typeof e?this.layerNameParts.set(e.join("."),e):this.layerNameParts.set(e,[e])}getLayerParams(e){const r=[...this.layerParamsParsed.get(e.params)??[]];let t=e.parent;for(;t;)"atrule"===t.type?(isProcessableLayerRule(t)&&r.push(...this.layerParamsParsed.get(t.params)??[]),t=t.parent):t=t.parent;return r.reverse(),r.flatMap((e=>this.layerNameParts.get(e)??[]))}getLayerNameList(e){const r=this.layerNameParts.get(e)??[],t=[];for(let e=0;e{const t=this.layerNameParts.get(e[0])??[],a=this.layerNameParts.get(r[0])??[];if(t[0]!==a[0])return(this.layerOrder.get(t[0])??0)-(this.layerOrder.get(a[0])??0);const s=Math.max(t.length,a.length);for(let e=0;e{this.layerOrder.set(e[0],r)}))}}function adjustSelectorSpecificity(r,t){const a=e().astSync(r),s=e().astSync(generateNot(t));let n=!1;for(let r=0;r{if(r(e))return t=!0,!1})),t}function someAtRuleInTree(e,r){let t=!1;return e.walkAtRules((e=>{if(r(e))return t=!0,!1})),t}function getLayerAtRuleAncestor(e){let r=e.parent;for(;r;)if("atrule"===r.type){if(isProcessableLayerRule(r))return r;r=r.parent}else r=r.parent;return null}function removeEmptyDescendantBlocks(e){var r;e&&(e.walk((e=>{var r;("rule"===e.type||"atrule"===e.type&&["layer",...o].includes(e.name.toLowerCase()))&&(0===(null==(r=e.nodes)?void 0:r.length)&&e.remove())})),0===(null==(r=e.nodes)?void 0:r.length)&&e.remove())}function removeEmptyAncestorBlocks(e){if(!e)return;let r=e;for(;r;){if(void 0===r.nodes)return;if(r.nodes.length>0)return;const e=r.parent;r.remove(),r=e}}function desugarAndParseLayerNames(r,a){r.walkAtRules((r=>{if(!isProcessableLayerRule(r))return;if(r.params){const s=[];let n=!1;if(e().astSync(r.params).each((e=>{const r=[];e.walk((e=>{switch(e.type){case"class":case"tag":r.push(e.value);break;default:n=!0}})),n||(s.push(r.join(".")),a.addLayerNameParts(r))})),a.addLayerParams(r.params,s),r.nodes&&s.length>1&&(n=!0),n)return void(r.name=t);if(!r.nodes||0===r.nodes.length){if(s.length<=1)return;return s.slice(0,-1).forEach((e=>{a.addLayerParams(e,e),r.cloneBefore({params:e})})),a.addLayerParams(s[s.length-1],s[s.length-1]),void(r.params=s[s.length-1])}}r.params||(r.raws.afterName=" ",r.params=a.createAnonymousLayerName());const s=someAtRuleInTree(r,(e=>isProcessableLayerRule(e))),n=someInTree(r,(e=>{if("rule"!==e.type)return!1;return getLayerAtRuleAncestor(e)===r}));if(s&&n){const e=a.createImplicitLayerName(r.params),t=r.clone({params:e});t.walkAtRules((e=>{isProcessableLayerRule(e)&&e.remove()})),r.walk((e=>{if("atrule"===e.type&&isProcessableLayerRule(e))return;if("atrule"===e.type&&o.includes(e.name.toLowerCase()))return;getLayerAtRuleAncestor(e)===r&&e.remove()})),r.append(t),removeEmptyDescendantBlocks(r),removeEmptyAncestorBlocks(r)}}))}function desugarNestedLayers(e,r){for(;someAtRuleInTree(e,(e=>e.nodes&&someAtRuleInTree(e,(e=>isProcessableLayerRule(e)))));){let t=!1;if(e.walkAtRules((a=>{var s,n;if(isProcessableLayerRule(a)&&a.parent!==e){if("atrule"===(null==(s=a.parent)?void 0:s.type)&&isProcessableLayerRule(a.parent)){const e=a.parent;{const t=r.layerNameParts.get(e.params),s=r.layerNameParts.get(a.params);if(!t||!s)return;r.layerNameParts.set(`${e.params}.${a.params}`,[...t,...s]),r.layerParamsParsed.set(`${e.params}.${a.params}`,[`${e.params}.${a.params}`])}return a.params=`${e.params}.${a.params}`,e.before(a),removeEmptyDescendantBlocks(e),void removeEmptyAncestorBlocks(e)}if("atrule"===(null==(n=a.parent)?void 0:n.type)){const e=a.parent,r=e.clone(),t=a.clone();return r.removeAll(),t.removeAll(),r.append(a.nodes),t.append(r),e.before(t),a.remove(),removeEmptyDescendantBlocks(e),void removeEmptyAncestorBlocks(e)}t=!0}})),t)break}}function sortRootNodes(e,r){e.walkAtRules((e=>{if(!isProcessableLayerRule(e))return;const r=e.clone(),t=e.clone();r.walkAtRules((e=>{if(l.includes(e.name.toLowerCase())){const r=e.parent;return e.remove(),removeEmptyDescendantBlocks(r),void removeEmptyAncestorBlocks(r)}if(someInTree(e,(e=>"rule"===e.type)))return;const r=e.parent;e.remove(),removeEmptyDescendantBlocks(r),removeEmptyAncestorBlocks(r)})),t.walkRules((e=>{if(e.parent&&"atrule"===e.parent.type&&l.includes(e.parent.name.toLowerCase()))return;const r=e.parent;e.remove(),removeEmptyDescendantBlocks(r),removeEmptyAncestorBlocks(r)})),t.walkAtRules((e=>{if(o.includes(e.name.toLowerCase()))return removeEmptyDescendantBlocks(e),void removeEmptyAncestorBlocks(e)})),r.name=a,e.replaceWith(r,t),0===r.nodes.length&&r.remove(),0===t.nodes.length&&t.remove()})),e.nodes.sort(((e,t)=>{const a="atrule"===e.type&&"layer"===e.name.toLowerCase(),s="atrule"===t.type&&"layer"===t.name.toLowerCase();if(a&&s){return(r.layerOrder.get(e.params)??0)-(r.layerOrder.get(t.params)??0)}return a!==s?a?-1:1:0})),e.walkAtRules(a,(e=>{e.name="layer"}))}function getConditionalAtRuleAncestor(e){let r=e.parent;for(;r;)if("atrule"===r.type){if(o.includes(r.name.toLowerCase()))return r;r=r.parent}else r=r.parent;return null}function recordLayerOrder(e,r,{result:t,options:a}){e.walkAtRules((e=>{if(!isProcessableLayerRule(e))return;const o=r.getLayerParams(e),l=o.join(".");r.layerOrder.has(l)||(a.onConditionalRulesChangingLayerOrder&&getConditionalAtRuleAncestor(e)&&!e.params.endsWith(n)&&!e.params.endsWith(s)&&e.warn(t,"handling different layer orders in conditional rules is unsupported by this plugin and will cause style differences between browser versions."),r.layerParamsParsed.has(l)||r.layerParamsParsed.set(l,[l]),r.layerNameParts.has(l)||r.layerNameParts.set(l,[...o]),r.getLayerNameList(l).forEach((e=>{r.layerOrder.has(e)||(r.layerOrder.set(e,r.layerCount),r.layerCount+=1)}))),e.nodes&&0!==e.nodes.length||e.remove()}))}function splitImportantStyles(e){e.walkDecls((e=>{var r;if(!e.important)return;const t=e.parent;if(!t)return;if("atrule"===(null==t||null==(r=t.parent)?void 0:r.type)&&l.includes(t.parent.name.toLowerCase()))return;const a=t.clone();a.each((e=>{"decl"===e.type&&e.important||e.remove()})),t.each((e=>{"decl"===e.type&&e.important&&e.remove()})),t.before(a),removeEmptyDescendantBlocks(t)}))}const creator=a=>{const s=Object.assign({onRevertLayerKeyword:"warn",onConditionalRulesChangingLayerOrder:"warn",onImportLayerRule:"warn"},a);return{postcssPlugin:"postcss-cascade-layers",OnceExit(a,{result:n}){s.onRevertLayerKeyword&&a.walkDecls((e=>{"revert-layer"===e.value.toLowerCase()&&e.warn(n,'handling "revert-layer" is unsupported by this plugin and will cause style differences between browser versions.')})),s.onImportLayerRule&&a.walkAtRules((e=>{"import"===e.name.toLowerCase()&&e.params.toLowerCase().includes("layer")&&e.warn(n,"To use @import with layers, the postcss-import plugin is also required. This plugin alone will not support using the @import at-rule.")})),splitImportantStyles(a);const o=new Model;if(desugarAndParseLayerNames(a,o),recordLayerOrder(a,o,{result:n,options:s}),!o.layerCount)return void a.walkAtRules(t,(e=>{e.name="layer"}));let i=0;for(a.walkRules((t=>{t.selectors.forEach((a=>{try{const t=r(e().astSync(a));i=Math.max(i,t.a+1)}catch(e){t.warn(n,`Failed to parse selector : "${a}" with message: "${e.message}"`)}}))})),a.walkRules((e=>{e.parent&&"atrule"===e.parent.type&&l.includes(e.parent.name.toLowerCase())||getLayerAtRuleAncestor(e)||e.some((e=>"decl"===e.type&&e.important))||(e.selectors=e.selectors.map((r=>{try{return adjustSelectorSpecificity(r,o.layerCount*i)}catch(t){e.warn(n,`Failed to parse selector : "${r}" with message: "${t.message}"`)}return r})))})),o.sortLayerNames(),desugarNestedLayers(a,o),sortRootNodes(a,o),a.walkRules((e=>{if(e.parent&&"atrule"===e.parent.type&&l.includes(e.parent.name.toLowerCase()))return;const r=getLayerAtRuleAncestor(e);if(!r)return;const t=o.getLayerParams(r).join(".");let a=(o.layerOrder.get(t)??0)*i;e.some((e=>"decl"===e.type&&e.important))&&(a=o.layerCount-a),e.selectors=e.selectors.map((e=>adjustSelectorSpecificity(e,a)))}));someAtRuleInTree(a,(e=>isProcessableLayerRule(e)));)a.walkAtRules((e=>{isProcessableLayerRule(e)&&e.replaceWith(e.nodes)}));a.walkAtRules(t,(e=>{e.name="layer"}))}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/is-processable-layer-rule.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/is-processable-layer-rule.d.ts new file mode 100644 index 00000000..115b5dba --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/is-processable-layer-rule.d.ts @@ -0,0 +1,2 @@ +import type { AtRule } from 'postcss'; +export declare function isProcessableLayerRule(atRule: AtRule): boolean; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/model.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/model.d.ts new file mode 100644 index 00000000..38a268e4 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/model.d.ts @@ -0,0 +1,18 @@ +import type { AtRule } from 'postcss'; +export declare class Model { + anonymousLayerCount: number; + layerCount: number; + layerOrder: Map; + layerParamsParsed: Map>; + layerNameParts: Map>; + constructor(); + createAnonymousLayerName(): string; + createImplicitLayerName(layerName: string): string; + addLayerParams(key: string, parts?: string): void; + addLayerParams(key: string, parts: Array): void; + addLayerNameParts(parts: string): void; + addLayerNameParts(parts: Array): void; + getLayerParams(layer: AtRule): Array; + getLayerNameList(layerName: string): Array; + sortLayerNames(): void; +} diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/options.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/options.d.ts new file mode 100644 index 00000000..e3a1943d --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/options.d.ts @@ -0,0 +1,9 @@ +/** postcss-cascasde-layers plugin options */ +export type pluginOptions = { + /** Emit a warning when the "revert" keyword is found in your CSS. default: "warn" */ + onRevertLayerKeyword?: 'warn' | false; + /** Emit a warning when conditional rules could change the layer order. default: "warn" */ + onConditionalRulesChangingLayerOrder?: 'warn' | false; + /** Emit a warning when "layer" is used in "@import". default: "warn" */ + onImportLayerRule?: 'warn' | false; +}; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/record-layer-order.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/record-layer-order.d.ts new file mode 100644 index 00000000..05d6ac7d --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/record-layer-order.d.ts @@ -0,0 +1,7 @@ +import type { Container, Result } from 'postcss'; +import type { Model } from './model'; +import { pluginOptions } from './options'; +export declare function recordLayerOrder(root: Container, model: Model, { result, options }: { + result: Result; + options: pluginOptions; +}): void; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/some-in-tree.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/some-in-tree.d.ts new file mode 100644 index 00000000..8c416c59 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/some-in-tree.d.ts @@ -0,0 +1,3 @@ +import type { Container, ChildNode, AtRule } from 'postcss'; +export declare function someInTree(container: Container, predicate: (node: ChildNode) => boolean): boolean; +export declare function someAtRuleInTree(container: Container, predicate: (node: AtRule) => boolean): boolean; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/sort-root-nodes.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/sort-root-nodes.d.ts new file mode 100644 index 00000000..8eb479ed --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/sort-root-nodes.d.ts @@ -0,0 +1,3 @@ +import type { Container } from 'postcss'; +import type { Model } from './model'; +export declare function sortRootNodes(root: Container, model: Model): void; diff --git a/node_modules/@csstools/postcss-cascade-layers/dist/split-important-styles.d.ts b/node_modules/@csstools/postcss-cascade-layers/dist/split-important-styles.d.ts new file mode 100644 index 00000000..270c69a9 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/dist/split-important-styles.d.ts @@ -0,0 +1,2 @@ +import type { Container } from 'postcss'; +export declare function splitImportantStyles(root: Container): void; diff --git a/node_modules/@csstools/postcss-cascade-layers/package.json b/node_modules/@csstools/postcss-cascade-layers/package.json new file mode 100644 index 00000000..62751263 --- /dev/null +++ b/node_modules/@csstools/postcss-cascade-layers/package.json @@ -0,0 +1,102 @@ +{ + "name": "@csstools/postcss-cascade-layers", + "description": "Use cascade layers in CSS", + "version": "4.0.0", + "contributors": [ + { + "name": "Olu Niyi-Awosusi", + "email": "o.niyiawosusi@gmail.com" + }, + { + "name": "Sana Javed", + "email": "sanajaved7@gmail.com" + }, + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/selector-specificity": "^3.0.0", + "postcss-selector-parser": "^6.0.13" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*", + "postcss-import": "^15.1.0", + "puppeteer": "^20.7.4" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:browser": "node ./test/_browser.mjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-cascade-layers#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-cascade-layers" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "cascade", + "css", + "layers", + "postcss", + "postcss-plugin", + "selectors", + "specificity" + ], + "csstools": { + "assumesToProcessBundledCSS": true, + "cssdbId": "cascade-layers", + "exportName": "postcssCascadeLayers", + "humanReadableName": "PostCSS Cascade Layers", + "specUrl": "https://www.w3.org/TR/css-cascade-5/#layering" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-color-function/CHANGELOG.md b/node_modules/@csstools/postcss-color-function/CHANGELOG.md new file mode 100644 index 00000000..53ab6b0a --- /dev/null +++ b/node_modules/@csstools/postcss-color-function/CHANGELOG.md @@ -0,0 +1,156 @@ +# Changes to PostCSS Color Function + +### 3.0.7 + +_October 9, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch) + +### 3.0.6 + +_October 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch) + +### 3.0.5 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#132) (patch) + +### 3.0.4 + +_September 18, 2023_ + +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.1`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#301) (patch) + +### 3.0.3 + +_September 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#131) (patch) + +### 3.0.2 + +_August 28, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#130) (minor) + +### 3.0.1 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.0`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#300) (major) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.2.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#122) (patch) + +### 2.2.3 + +_June 1, 2023_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `2.3.0` (minor) + +### 2.2.2 + +_May 19, 2023_ + +- Ignore relative color syntax +- Updated `@csstools/postcss-progressive-custom-properties` to `2.2.0` (minor) +- Updated `@csstools/css-color-parser` to `1.2.0` (minor) + +### 2.2.1 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/css-color-parser` to `1.1.2` (patch) + +### 2.2.0 + +_March 25, 2023_ + +- Add `@csstools/css-color-parser` dependency for all color value transformations. +- Add support for `calc` expressions in color components. +- Remove support for missing channel values (`color(display-p3 1)`). This was never documented and was removed from the specification. + +### 2.1.0 + +_February 6, 2023_ + +- Add: `@csstools/color-helpers` dependency for all color value transformations. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.1.1 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 1.1.0 + +_April 4, 2022_ + +- Allow percentage units in XYZ color spaces. + +```css +.percentages { + color-1: color(xyz-d50 64.331% 19.245% 16.771%); + color-2: color(xyz-d65 64.331% 19.245% 16.771%); + color-3: color(xyz 64.331% 19.245% 16.771%); + + /* becomes */ + + color-1: rgb(245,0,135); + color-2: rgb(253,0,127); + color-3: rgb(253,0,127); +} +``` + +### 1.0.3 + +_March 8, 2022_ + +- Fix gamut mapping giving overly unsaturated colors. +- Implement powerless color components in gamut mapping. + +### 1.0.2 + +_February 12, 2022_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `1.1.0`. + +### 1.0.1 + +_February 11, 2022_ + +- Add tests for percentage values in non-xyz color spaces. +- Ignore percentage values in xyz color space as these are not supported. + +### 1.0.0 + +_February 7, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-color-function/LICENSE.md b/node_modules/@csstools/postcss-color-function/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-color-function/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-color-function/README.md b/node_modules/@csstools/postcss-color-function/README.md new file mode 100644 index 00000000..44168b62 --- /dev/null +++ b/node_modules/@csstools/postcss-color-function/README.md @@ -0,0 +1,162 @@ +# PostCSS Color Function [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-color-function --save-dev +``` + +[PostCSS Color Function] lets you use the `color` function in +CSS, following the [CSS Color] specification. + +```pcss +.color { + color: color(display-p3 0.64331 0.19245 0.16771); +} + +:root { + --a-color: color(srgb 0.64331 0.19245 0.16771); +} + +/* becomes */ + +.color { + color: rgb(179, 35, 35); +} + +:root { + --a-color: rgb(164, 49, 43); +} +``` + +## Usage + +Add [PostCSS Color Function] to your project: + +```bash +npm install postcss @csstools/postcss-color-function --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssColorFunction = require('@csstools/postcss-color-function'); + +postcss([ + postcssColorFunction(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Color Function] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcssColorFunction({ preserve: true }) +``` + +```pcss +.color { + color: color(display-p3 0.64331 0.19245 0.16771); +} + +:root { + --a-color: color(srgb 0.64331 0.19245 0.16771); +} + +/* becomes */ + +.color { + color: rgb(179, 35, 35); + color: color(display-p3 0.64331 0.19245 0.16771); +} + +:root { + --a-color: rgb(164, 49, 43); +} + +@supports (color: color(display-p3 0 0 0)) { +:root { + --a-color: color(srgb 0.64331 0.19245 0.16771); +} +} +``` + +### enableProgressiveCustomProperties + +The `enableProgressiveCustomProperties` option determines whether the original notation +is wrapped with `@supports` when used in Custom Properties. By default, it is enabled. + +⚠️ We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties. See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme). + +```js +postcssColorFunction({ enableProgressiveCustomProperties: false }) +``` + +```pcss +.color { + color: color(display-p3 0.64331 0.19245 0.16771); +} + +:root { + --a-color: color(srgb 0.64331 0.19245 0.16771); +} + +/* becomes */ + +.color { + color: rgb(179, 35, 35); + color: color(display-p3 0.64331 0.19245 0.16771); +} + +:root { + --a-color: rgb(164, 49, 43); + --a-color: color(srgb 0.64331 0.19245 0.16771); +} +``` + +_Custom properties do not fallback to the previous declaration_ + +## Supported Color Spaces + +```css +.color-spaces { + color: color(a98-rgb 0.803 0.484 0.944); + color: color(display-p3 0.8434 0.509 0.934); + color: color(prophoto-rgb 0.759 0.493 0.898); + color: color(rec2020 0.772 0.491 0.920); + color: color(srgb 0.897 0.488 0.959); + color: color(srgb-linear 0.783 0.203 0.910); + color: color(xyz 0.560 0.377 0.904); + color: color(xyz-d50 0.550 0.375 0.680); + color: color(xyz-d65 0.560 0.377 0.904); +} +``` + +## Copyright : color conversions + +This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/tree/main/css-color-4. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#color-function +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-color-function + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Color Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-function +[CSS Color]: https://www.w3.org/TR/css-color-4/#funcdef-color diff --git a/node_modules/@csstools/postcss-color-function/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-color-function/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..d7ae8d89 --- /dev/null +++ b/node_modules/@csstools/postcss-color-function/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasFallback(node: Declaration): boolean; diff --git a/node_modules/@csstools/postcss-color-function/dist/has-supports-at-rule-ancestor.d.ts b/node_modules/@csstools/postcss-color-function/dist/has-supports-at-rule-ancestor.d.ts new file mode 100644 index 00000000..a46009ec --- /dev/null +++ b/node_modules/@csstools/postcss-color-function/dist/has-supports-at-rule-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { Node } from 'postcss'; +export declare function hasSupportsAtRuleAncestor(node: Node): boolean; diff --git a/node_modules/@csstools/postcss-color-function/dist/index.cjs b/node_modules/@csstools/postcss-color-function/dist/index.cjs new file mode 100644 index 00000000..d6a9614a --- /dev/null +++ b/node_modules/@csstools/postcss-color-function/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e({postcssPlugin:"postcss-color-function",Declaration:a=>{const c=a.value;if(!o.test(c))return;if(hasFallback(a))return;if(hasSupportsAtRuleAncestor(a))return;const i=s.tokenize({css:c}),l=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(i),(e=>{if(t.isFunctionNode(e)&&n.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.serializeRGB(s)}})),p=t.stringify(l);p!==c&&(a.cloneBefore({value:p}),null!=e&&e.preserve||a.remove())}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},s);return r.enableProgressiveCustomProperties&&r.preserve?{postcssPlugin:"postcss-color-function",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin; diff --git a/node_modules/@csstools/postcss-color-function/dist/index.d.ts b/node_modules/@csstools/postcss-color-function/dist/index.d.ts new file mode 100644 index 00000000..616abbd7 --- /dev/null +++ b/node_modules/@csstools/postcss-color-function/dist/index.d.ts @@ -0,0 +1,10 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-color-function plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; + /** Enable "@csstools/postcss-progressive-custom-properties". default: true */ + enableProgressiveCustomProperties?: boolean; +}; +declare const postcssPlugin: PluginCreator; +export default postcssPlugin; diff --git a/node_modules/@csstools/postcss-color-function/dist/index.mjs b/node_modules/@csstools/postcss-color-function/dist/index.mjs new file mode 100644 index 00000000..b1bc9224 --- /dev/null +++ b/node_modules/@csstools/postcss-color-function/dist/index.mjs @@ -0,0 +1 @@ +import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as r}from"@csstools/css-tokenizer";import{color as e,SyntaxFlag as o,serializeRGB as t}from"@csstools/css-color-parser";import{replaceComponentValues as n,parseCommaSeparatedListOfComponentValues as c,isFunctionNode as a,stringify as p}from"@csstools/css-parser-algorithms";function hasFallback(s){const r=s.parent;if(!r)return!1;const e=s.prop.toLowerCase(),o=r.index(s);for(let s=0;s({postcssPlugin:"postcss-color-function",Declaration:u=>{const f=u.value;if(!l.test(f))return;if(hasFallback(u))return;if(hasSupportsAtRuleAncestor(u))return;const m=r({css:f}),g=n(c(m),(s=>{if(a(s)&&i.test(s.getName())){const r=e(s);if(!r)return;if(r.syntaxFlags.has(o.HasNoneKeywords))return;if(r.syntaxFlags.has(o.RelativeColorSyntax))return;return t(r)}})),v=p(g);v!==f&&(u.cloneBefore({value:v}),null!=s&&s.preserve||u.remove())}});basePlugin.postcss=!0;const postcssPlugin=r=>{const e=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},r);return e.enableProgressiveCustomProperties&&e.preserve?{postcssPlugin:"postcss-color-function",plugins:[s(),basePlugin(e)]}:basePlugin(e)};postcssPlugin.postcss=!0;export{postcssPlugin as default}; diff --git a/node_modules/@csstools/postcss-color-function/package.json b/node_modules/@csstools/postcss-color-function/package.json new file mode 100644 index 00000000..a2b330a4 --- /dev/null +++ b/node_modules/@csstools/postcss-color-function/package.json @@ -0,0 +1,89 @@ +{ + "name": "@csstools/postcss-color-function", + "description": "Use the color() function in CSS", + "version": "3.0.7", + "author": "Jonathan Neal ", + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*", + "postcss-lab-function": "^6.0.0" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-function#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-color-function" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "color", + "css", + "design", + "display-p3", + "postcss", + "postcss-plugin", + "prophoto-rgb", + "rec2020", + "rgb", + "rgba", + "srgb-linear", + "syntax", + "xyz" + ], + "csstools": { + "cssdbId": "color-function", + "exportName": "postcssColorFunction", + "humanReadableName": "PostCSS Color Function", + "specUrl": "https://www.w3.org/TR/css-color-4/#funcdef-color" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-color-mix-function/CHANGELOG.md b/node_modules/@csstools/postcss-color-mix-function/CHANGELOG.md new file mode 100644 index 00000000..e56cec1c --- /dev/null +++ b/node_modules/@csstools/postcss-color-mix-function/CHANGELOG.md @@ -0,0 +1,85 @@ +# Changes to PostCSS Color Mix Function + +### 2.0.7 + +_October 9, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch) + +### 2.0.6 + +_October 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch) + +### 2.0.5 + +_September 24, 2023_ + +- Small performance improvements +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#132) (patch) + +### 2.0.4 + +_September 18, 2023_ + +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.1`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#301) (patch) + +### 2.0.3 + +_September 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#131) (patch) + +### 2.0.2 + +_August 28, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#130) (minor) + +### 2.0.1 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) + +### 2.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.0`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#300) (major) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.2.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#122) (patch) + +### 1.0.3 + +_June 1, 2023_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `2.3.0` (minor) + + +### 1.0.2 + +_May 19, 2023_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `2.2.0` (minor) +- Updated `@csstools/css-color-parser` to `1.2.0` (minor) + +### 1.0.1 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/css-color-parser` to `1.1.2` (patch) + +### 1.0.0 + +_March 25, 2023_ + +- Initial version diff --git a/node_modules/@csstools/postcss-color-mix-function/LICENSE.md b/node_modules/@csstools/postcss-color-mix-function/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-color-mix-function/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-color-mix-function/README.md b/node_modules/@csstools/postcss-color-mix-function/README.md new file mode 100644 index 00000000..e7c54e48 --- /dev/null +++ b/node_modules/@csstools/postcss-color-mix-function/README.md @@ -0,0 +1,84 @@ +# PostCSS Color Mix Function [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-color-mix-function --save-dev +``` + +[PostCSS Color Mix Function] lets you use the `color-mix()` function following the [CSS Color 5 Specification]. + +```pcss +.purple_plum { + color: color-mix(in lch, purple 50%, plum 50%); +} + +/* becomes */ + +.purple_plum { + color: rgb(175, 92, 174); +} +``` + +## Usage + +Add [PostCSS Color Mix Function] to your project: + +```bash +npm install postcss @csstools/postcss-color-mix-function --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssColorMixFunction = require('@csstools/postcss-color-mix-function'); + +postcss([ + postcssColorMixFunction(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Color Mix Function] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcssColorMixFunction({ preserve: true }) +``` + +```pcss +.purple_plum { + color: color-mix(in lch, purple 50%, plum 50%); +} + +/* becomes */ + +.purple_plum { + color: rgb(175, 92, 174); + color: color-mix(in lch, purple 50%, plum 50%); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#color-mix +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-color-mix-function + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Color Mix Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-mix-function +[CSS Color 5 Specification]: https://www.w3.org/TR/css-color-5/#color-mix diff --git a/node_modules/@csstools/postcss-color-mix-function/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-color-mix-function/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..d7ae8d89 --- /dev/null +++ b/node_modules/@csstools/postcss-color-mix-function/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasFallback(node: Declaration): boolean; diff --git a/node_modules/@csstools/postcss-color-mix-function/dist/has-supports-at-rule-ancestor.d.ts b/node_modules/@csstools/postcss-color-mix-function/dist/has-supports-at-rule-ancestor.d.ts new file mode 100644 index 00000000..a46009ec --- /dev/null +++ b/node_modules/@csstools/postcss-color-mix-function/dist/has-supports-at-rule-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { Node } from 'postcss'; +export declare function hasSupportsAtRuleAncestor(node: Node): boolean; diff --git a/node_modules/@csstools/postcss-color-mix-function/dist/index.cjs b/node_modules/@csstools/postcss-color-mix-function/dist/index.cjs new file mode 100644 index 00000000..ef647904 --- /dev/null +++ b/node_modules/@csstools/postcss-color-mix-function/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e({postcssPlugin:"postcss-color-mix-function",Declaration:i=>{const a=i.value;if(!o.test(a))return;if(hasFallback(i))return;if(hasSupportsAtRuleAncestor(i))return;const u=s.tokenize({css:a}),l=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(u),(e=>{if(t.isFunctionNode(e)&&n.test(e.getName())){const s=r.color(e);if(!s)return;return r.serializeRGB(s)}})),c=t.stringify(l);if(c===a)return;let p=c;null!=e&&e.subFeatures.displayP3&&(p=t.stringify(t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(u),(e=>{if(t.isFunctionNode(e)&&n.test(e.getName())){const s=r.color(e);if(!s)return;return r.colorDataFitsRGB_Gamut(s)?r.serializeRGB(s):r.serializeP3(s)}})))),i.cloneBefore({value:c}),null!=e&&e.subFeatures.displayP3&&p!==c&&i.cloneBefore({value:p}),null!=e&&e.preserve||i.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-color-mix-function",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin; diff --git a/node_modules/@csstools/postcss-color-mix-function/dist/index.d.ts b/node_modules/@csstools/postcss-color-mix-function/dist/index.d.ts new file mode 100644 index 00000000..22a656f0 --- /dev/null +++ b/node_modules/@csstools/postcss-color-mix-function/dist/index.d.ts @@ -0,0 +1,15 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-color-mix-function plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; + /** Enable "@csstools/postcss-progressive-custom-properties". default: true */ + enableProgressiveCustomProperties?: boolean; + /** Toggle sub features. default: { displayP3: true } */ + subFeatures?: { + /** Enable displayP3 fallbacks. default: true */ + displayP3?: boolean; + }; +}; +declare const postcssPlugin: PluginCreator; +export default postcssPlugin; diff --git a/node_modules/@csstools/postcss-color-mix-function/dist/index.mjs b/node_modules/@csstools/postcss-color-mix-function/dist/index.mjs new file mode 100644 index 00000000..35b6a3c0 --- /dev/null +++ b/node_modules/@csstools/postcss-color-mix-function/dist/index.mjs @@ -0,0 +1 @@ +import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as r,serializeRGB as t,colorDataFitsRGB_Gamut as o,serializeP3 as n}from"@csstools/css-color-parser";import{replaceComponentValues as u,parseCommaSeparatedListOfComponentValues as i,isFunctionNode as a,stringify as c}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),t=e.index(s);for(let s=0;s({postcssPlugin:"postcss-color-mix-function",Declaration:f=>{const m=f.value;if(!l.test(m))return;if(hasFallback(f))return;if(hasSupportsAtRuleAncestor(f))return;const b=e({css:m}),g=u(i(b),(s=>{if(a(s)&&p.test(s.getName())){const e=r(s);if(!e)return;return t(e)}})),P=c(g);if(P===m)return;let d=P;null!=s&&s.subFeatures.displayP3&&(d=c(u(i(b),(s=>{if(a(s)&&p.test(s.getName())){const e=r(s);if(!e)return;return o(e)?t(e):n(e)}})))),f.cloneBefore({value:P}),null!=s&&s.subFeatures.displayP3&&d!==P&&f.cloneBefore({value:d}),null!=s&&s.preserve||f.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-color-mix-function",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0;export{postcssPlugin as default}; diff --git a/node_modules/@csstools/postcss-color-mix-function/package.json b/node_modules/@csstools/postcss-color-mix-function/package.json new file mode 100644 index 00000000..1636ac7f --- /dev/null +++ b/node_modules/@csstools/postcss-color-mix-function/package.json @@ -0,0 +1,97 @@ +{ + "name": "@csstools/postcss-color-mix-function", + "description": "Use the color-mix function in CSS", + "version": "2.0.7", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-mix-function#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-color-mix-function" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "color-mix", + "css", + "display-p3", + "interpolation", + "postcss-plugin", + "prophoto-rgb", + "rec2020", + "rgb", + "rgba", + "srgb-linear", + "syntax", + "xyz" + ], + "csstools": { + "cssdbId": "color-mix", + "exportName": "postcssColorMixFunction", + "humanReadableName": "PostCSS Color Mix Function", + "specUrl": "https://www.w3.org/TR/css-color-5/#color-mix" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-exponential-functions/CHANGELOG.md b/node_modules/@csstools/postcss-exponential-functions/CHANGELOG.md new file mode 100644 index 00000000..cd08f07e --- /dev/null +++ b/node_modules/@csstools/postcss-exponential-functions/CHANGELOG.md @@ -0,0 +1,18 @@ +# Changes to PostCSS Exponential Functions + +### 1.0.1 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#114) (patch) + +### 1.0.0 + +_July 24, 2023_ + +- Initial version +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#113) (patch) diff --git a/node_modules/@csstools/postcss-exponential-functions/LICENSE.md b/node_modules/@csstools/postcss-exponential-functions/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-exponential-functions/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-exponential-functions/README.md b/node_modules/@csstools/postcss-exponential-functions/README.md new file mode 100644 index 00000000..f09493e6 --- /dev/null +++ b/node_modules/@csstools/postcss-exponential-functions/README.md @@ -0,0 +1,104 @@ +# PostCSS Exponential Functions [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-exponential-functions --save-dev +``` + +[PostCSS Exponential Functions] lets you use the `pow()`, `sqrt()`, `hypot()`, `log()`, `exp()` functions following the [CSS Values 4 Specification]. + +```pcss +.foo { + top: calc(1px * pow(2, 3)); + line-height: sqrt(1.2); + padding: hypot(3px, 4px); + order: log(10, 10); + min-height: calc(e - exp(1)); +} + +/* becomes */ + +.foo { + top: 8px; + line-height: 1.0954451150103; + padding: 5px; + order: 1; + min-height: 0; +} +``` + +## Usage + +Add [PostCSS Exponential Functions] to your project: + +```bash +npm install postcss @csstools/postcss-exponential-functions --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssExponentialFunctions = require('@csstools/postcss-exponential-functions'); + +postcss([ + postcssExponentialFunctions(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Exponential Functions] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcssExponentialFunctions({ preserve: true }) +``` + +```pcss +.foo { + top: calc(1px * pow(2, 3)); + line-height: sqrt(1.2); + padding: hypot(3px, 4px); + order: log(10, 10); + min-height: calc(e - exp(1)); +} + +/* becomes */ + +.foo { + top: 8px; + top: calc(1px * pow(2, 3)); + line-height: 1.0954451150103; + line-height: sqrt(1.2); + padding: 5px; + padding: hypot(3px, 4px); + order: 1; + order: log(10, 10); + min-height: 0; + min-height: calc(e - exp(1)); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#exponential-functions +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-exponential-functions + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Exponential Functions]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-exponential-functions +[CSS Values 4 Specification]: https://www.w3.org/TR/css-values-4/#exponent-funcs diff --git a/node_modules/@csstools/postcss-exponential-functions/dist/calc.d.ts b/node_modules/@csstools/postcss-exponential-functions/dist/calc.d.ts new file mode 100644 index 00000000..5a1ee11e --- /dev/null +++ b/node_modules/@csstools/postcss-exponential-functions/dist/calc.d.ts @@ -0,0 +1 @@ +export declare function calc(css: string): string; diff --git a/node_modules/@csstools/postcss-exponential-functions/dist/checks.d.ts b/node_modules/@csstools/postcss-exponential-functions/dist/checks.d.ts new file mode 100644 index 00000000..6623beb7 --- /dev/null +++ b/node_modules/@csstools/postcss-exponential-functions/dist/checks.d.ts @@ -0,0 +1,2 @@ +export declare const FUNCTION_NAME_REGEXP: RegExp; +export declare const FUNCTION_CALL_REGEXP: RegExp; diff --git a/node_modules/@csstools/postcss-exponential-functions/dist/index.cjs b/node_modules/@csstools/postcss-exponential-functions/dist/index.cjs new file mode 100644 index 00000000..defdaba9 --- /dev/null +++ b/node_modules/@csstools/postcss-exponential-functions/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/css-calc");const s=new RegExp(`(${["exp","hypot","log","pow","sqrt"].join("|")})\\(`,"i"),creator=o=>{const t=Object.assign({preserve:!1},o);return{postcssPlugin:"postcss-exponential-functions",Declaration(o){if(!s.test(o.value))return;const c=e.calc(o.value);c!==o.value&&(o.cloneBefore({value:c}),t.preserve||o.remove())}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-exponential-functions/dist/index.d.ts b/node_modules/@csstools/postcss-exponential-functions/dist/index.d.ts new file mode 100644 index 00000000..d216e578 --- /dev/null +++ b/node_modules/@csstools/postcss-exponential-functions/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-exponential-functions plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-exponential-functions/dist/index.mjs b/node_modules/@csstools/postcss-exponential-functions/dist/index.mjs new file mode 100644 index 00000000..748e9dbb --- /dev/null +++ b/node_modules/@csstools/postcss-exponential-functions/dist/index.mjs @@ -0,0 +1 @@ +import{calc as e}from"@csstools/css-calc";const s=new RegExp(`(${["exp","hypot","log","pow","sqrt"].join("|")})\\(`,"i"),creator=o=>{const t=Object.assign({preserve:!1},o);return{postcssPlugin:"postcss-exponential-functions",Declaration(o){if(!s.test(o.value))return;const n=e(o.value);n!==o.value&&(o.cloneBefore({value:n}),t.preserve||o.remove())}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-exponential-functions/package.json b/node_modules/@csstools/postcss-exponential-functions/package.json new file mode 100644 index 00000000..5b6fd683 --- /dev/null +++ b/node_modules/@csstools/postcss-exponential-functions/package.json @@ -0,0 +1,91 @@ +{ + "name": "@csstools/postcss-exponential-functions", + "description": "Use pow(), sqrt(), hypot(), log(), exp() exponential functions in CSS", + "version": "1.0.1", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-exponential-functions#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-exponential-functions" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "exp", + "exponential", + "hypot", + "log", + "postcss-plugin", + "pow", + "sqrt" + ], + "csstools": { + "cssdbId": "exponential-functions", + "exportName": "postcssExponentialFunctions", + "humanReadableName": "PostCSS Exponential Functions", + "specUrl": "https://www.w3.org/TR/css-values-4/#exponent-funcs" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-font-format-keywords/CHANGELOG.md b/node_modules/@csstools/postcss-font-format-keywords/CHANGELOG.md new file mode 100644 index 00000000..78f76768 --- /dev/null +++ b/node_modules/@csstools/postcss-font-format-keywords/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changes to PostCSS Font Format + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 2.0.2 + +_February 8, 2023_ + +- Reduce the amount of duplicate fallback CSS. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.0.1 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 1.0.0 + +_January 25, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-font-format-keywords/LICENSE.md b/node_modules/@csstools/postcss-font-format-keywords/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-font-format-keywords/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-font-format-keywords/README.md b/node_modules/@csstools/postcss-font-format-keywords/README.md new file mode 100644 index 00000000..bf4927ee --- /dev/null +++ b/node_modules/@csstools/postcss-font-format-keywords/README.md @@ -0,0 +1,86 @@ +# PostCSS Font Format [PostCSS Logo][postcss] + +[npm version][npm-url] +[CSS Standard Status][css-url] +[Build Status][cli-url] +[Discord][discord] + +[PostCSS Font Format Keywords] lets you specify font formats as keywords, following the [CSS Fonts] specification. + +```pcss +@font-face { + src: url(file.woff2) format(woff2); +} + +/* becomes */ + +@font-face { + src: url(file.woff2) format("woff2"); +} +``` + +_See prior work by [valtlai](https://github.com/valtlai) here [postcss-font-format-keywords](https://github.com/valtlai/postcss-font-format-keywords) +To ensure long term maintenance and to provide the needed features this plugin was recreated based on valtlai's work._ + +## Usage + +Add [PostCSS Font Format Keywords] to your project: + +```bash +npm install postcss @csstools/postcss-font-format-keywords --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssFontFormatKeywords = require('@csstools/postcss-font-format-keywords'); + +postcss([ + postcssFontFormatKeywords(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Font Format Keywords] runs in all Node environments, with special +instructions for: + +| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | +| --- | --- | --- | --- | --- | + +## Options + +### preserve + +The `preserve` option determines whether the original source +is preserved. By default, it is not preserved. + +```js +postcssFontFormatKeywords({ preserve: true }) +``` + +```pcss +@font-face { + src: url(file.woff2) format(woff2); +} + +/* becomes */ + +@font-face { + src: url(file.woff2) format("woff2"); + src: url(file.woff2) format(woff2); +} +``` + +[postcss]: https://github.com/postcss/postcss + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#font-format-keywords +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-font-format-keywords + +[CSS Fonts]: https://www.w3.org/TR/css-fonts-4/#font-format-values +[Gulp PostCSS]: https://github.com/postcss/gulp-postcss +[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Loader]: https://github.com/postcss/postcss-loader +[PostCSS Font Format Keywords]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-font-format-keywords diff --git a/node_modules/@csstools/postcss-font-format-keywords/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-font-format-keywords/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..d7ae8d89 --- /dev/null +++ b/node_modules/@csstools/postcss-font-format-keywords/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasFallback(node: Declaration): boolean; diff --git a/node_modules/@csstools/postcss-font-format-keywords/dist/index.cjs b/node_modules/@csstools/postcss-font-format-keywords/dist/index.cjs new file mode 100644 index 00000000..7ffbcdcb --- /dev/null +++ b/node_modules/@csstools/postcss-font-format-keywords/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-value-parser");function hasFallback(e){const t=e.parent;if(!t)return!1;const o=e.prop.toLowerCase(),r=t.index(e);for(let e=0;e{const r="preserve"in Object(o)&&Boolean(null==o?void 0:o.preserve);return{postcssPlugin:"postcss-font-format-keywords",Declaration(o){if("src"!==o.prop.toLowerCase())return;if(!o.value.toLowerCase().includes("format("))return;if(hasFallback(o))return;const n=o.parent;if(!n||"atrule"!==n.type)return;if("font-face"!==n.name.toLowerCase())return;const s=e(o.value);s.walk((o=>{"function"===o.type&&"format"===o.value.toLowerCase()&&o.nodes.forEach((o=>{"word"===o.type&&t.includes(o.value.toLowerCase())&&(o.value=e.stringify({type:"string",value:o.value,quote:'"'}))}))})),s.toString()!==o.value&&(o.cloneBefore({value:s.toString()}),r||o.remove())}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-font-format-keywords/dist/index.d.ts b/node_modules/@csstools/postcss-font-format-keywords/dist/index.d.ts new file mode 100644 index 00000000..08f71203 --- /dev/null +++ b/node_modules/@csstools/postcss-font-format-keywords/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-font-format-keywords plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-font-format-keywords/dist/index.mjs b/node_modules/@csstools/postcss-font-format-keywords/dist/index.mjs new file mode 100644 index 00000000..896d2b41 --- /dev/null +++ b/node_modules/@csstools/postcss-font-format-keywords/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-value-parser";function hasFallback(e){const o=e.parent;if(!o)return!1;const t=e.prop.toLowerCase(),r=o.index(e);for(let e=0;e{const r="preserve"in Object(t)&&Boolean(null==t?void 0:t.preserve);return{postcssPlugin:"postcss-font-format-keywords",Declaration(t){if("src"!==t.prop.toLowerCase())return;if(!t.value.toLowerCase().includes("format("))return;if(hasFallback(t))return;const n=t.parent;if(!n||"atrule"!==n.type)return;if("font-face"!==n.name.toLowerCase())return;const s=e(t.value);s.walk((t=>{"function"===t.type&&"format"===t.value.toLowerCase()&&t.nodes.forEach((t=>{"word"===t.type&&o.includes(t.value.toLowerCase())&&(t.value=e.stringify({type:"string",value:t.value,quote:'"'}))}))})),s.toString()!==t.value&&(t.cloneBefore({value:s.toString()}),r||t.remove())}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-font-format-keywords/package.json b/node_modules/@csstools/postcss-font-format-keywords/package.json new file mode 100644 index 00000000..2f41adca --- /dev/null +++ b/node_modules/@csstools/postcss-font-format-keywords/package.json @@ -0,0 +1,79 @@ +{ + "name": "@csstools/postcss-font-format-keywords", + "description": "Use unquoted format on @font-face CSS definitions.", + "version": "3.0.0", + "author": "Jonathan Neal ", + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-font-format-keywords#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-font-format-keywords" + }, + "keywords": [ + "css", + "embedded-opentype", + "font", + "font-format-keywords", + "format", + "opentype", + "postcss-plugin", + "truetype", + "woff", + "woff2" + ], + "csstools": { + "exportName": "postcssFontFormatKeywords", + "humanReadableName": "PostCSS Font Format Keywords" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-gamut-mapping/CHANGELOG.md b/node_modules/@csstools/postcss-gamut-mapping/CHANGELOG.md new file mode 100644 index 00000000..646591c8 --- /dev/null +++ b/node_modules/@csstools/postcss-gamut-mapping/CHANGELOG.md @@ -0,0 +1,8 @@ +# Changes to PostCSS gamut-mapping + +### 1.0.0 + +_October 9, 2023_ + +- Initial version +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor) diff --git a/node_modules/@csstools/postcss-gamut-mapping/LICENSE.md b/node_modules/@csstools/postcss-gamut-mapping/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-gamut-mapping/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-gamut-mapping/README.md b/node_modules/@csstools/postcss-gamut-mapping/README.md new file mode 100644 index 00000000..a5edb31c --- /dev/null +++ b/node_modules/@csstools/postcss-gamut-mapping/README.md @@ -0,0 +1,84 @@ +# PostCSS Gamut Mapping [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-gamut-mapping --save-dev +``` + +[PostCSS Gamut Mapping] lets you use wide gamut colors with gamut mapping for specific displays following the [CSS Color 4 Specification]. + +When out of gamut colors are naively clipped the result can be radically different. +A saturated and bright color will be much darker after clipping. + +To correctly adjust colors for a narrow gamut display, the colors must be mapped. +This is done by lowering the `chroma` in `oklch` until the color is in gamut. + +Using the `@media (color-gamut)` media feature makes it possible to only use the wide gamut colors on displays that support them. + +```pcss +p { + background-color: oklch(80% 0.05 0.39 / 0.5); + color: oklch(20% 0.234 0.39 / 0.5); + border-color: color(display-p3 0 1 0); +} + +/* becomes */ + +p { + background-color: oklch(80% 0.05 0.39 / 0.5); + color: rgba(50, 0, 20, 0.5); + border-color: rgb(0, 249, 66); +} + +@media (color-gamut: rec2020) { +p { + color: oklch(20% 0.234 0.39 / 0.5); +} +} + +@media (color-gamut: p3) { +p { + border-color: color(display-p3 0 1 0); +} +} +``` + +## Usage + +Add [PostCSS Gamut Mapping] to your project: + +```bash +npm install postcss @csstools/postcss-gamut-mapping --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssGamutMapping = require('@csstools/postcss-gamut-mapping'); + +postcss([ + postcssGamutMapping(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Gamut Mapping] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#gamut-mapping +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-gamut-mapping + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Gamut Mapping]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-gamut-mapping +[CSS Color 4 Specification]: https://www.w3.org/TR/css-color-4/#gamut-mapping diff --git a/node_modules/@csstools/postcss-gamut-mapping/dist/has-conditional-ancestor.d.ts b/node_modules/@csstools/postcss-gamut-mapping/dist/has-conditional-ancestor.d.ts new file mode 100644 index 00000000..7c086270 --- /dev/null +++ b/node_modules/@csstools/postcss-gamut-mapping/dist/has-conditional-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { Node } from 'postcss'; +export declare function hasConditionalAncestor(node: Node): boolean; diff --git a/node_modules/@csstools/postcss-gamut-mapping/dist/has-override-decl.d.ts b/node_modules/@csstools/postcss-gamut-mapping/dist/has-override-decl.d.ts new file mode 100644 index 00000000..e98c4f8a --- /dev/null +++ b/node_modules/@csstools/postcss-gamut-mapping/dist/has-override-decl.d.ts @@ -0,0 +1,5 @@ +import type { Declaration } from 'postcss'; +export declare function hasOverrideOrFallback(node: Declaration): { + hasOverride: boolean; + hasFallback: boolean; +}; diff --git a/node_modules/@csstools/postcss-gamut-mapping/dist/index.cjs b/node_modules/@csstools/postcss-gamut-mapping/dist/index.cjs new file mode 100644 index 00000000..77030d6a --- /dev/null +++ b/node_modules/@csstools/postcss-gamut-mapping/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/css-tokenizer"),o=require("@csstools/css-parser-algorithms"),a=require("@csstools/css-color-parser");const t=/\bcolor-gamut\b/i;function hasConditionalAncestor(e){let o=e.parent;for(;o;)if("atrule"===o.type){if("media"===o.name.toLowerCase()&&t.test(o.params))return!0;o=o.parent}else o=o.parent;return!1}function hasOverrideOrFallback(e){var o;const a=e.prop.toLowerCase();let t=!1,s=!1;const r=(null==(o=e.parent)?void 0:o.nodes)??[],n=r.indexOf(e);for(let e=0;e({postcssPlugin:"postcss-gamut-mapping",prepare(){const t=new WeakMap;return{OnceExit:(n,{postcss:l})=>{n.walkDecls((n=>{const i=n.value;if(!s.test(i))return;if(!n.parent||hasConditionalAncestor(n))return;const{hasOverride:c,hasFallback:p}=hasOverrideOrFallback(n);if(c)return;const u=t.get(n.parent)||{conditionalRules:[],propNames:new Set,lastConditionParams:{media:void 0},lastConditionalRule:void 0};t.set(n.parent,u);let d=!1;const m=o.replaceComponentValues(o.parseCommaSeparatedListOfComponentValues(e.tokenize({css:i})),(e=>{if(!o.isFunctionNode(e)||!r.test(e.getName()))return;const t=a.color(e);return!t||t.syntaxFlags.has(a.SyntaxFlag.HasNoneKeywords)||a.colorDataFitsRGB_Gamut(t)?void 0:(d||a.colorDataFitsDisplayP3_Gamut(t)||(d=!0),a.serializeRGB(t,!0))})),f=o.stringify(m);if(f===i)return;const v=`(color-gamut: ${d?"rec2020":"p3"})`;if(u.lastConditionParams.media!==v&&(u.lastConditionalRule=void 0),u.lastConditionalRule)return p||n.cloneBefore({value:f}),u.lastConditionalRule.append(n.clone()),void n.remove();p||n.cloneBefore({value:f});const h=l.atRule({name:"media",params:v,source:n.parent.source,raws:{before:"\n\n",after:"\n"}}),C=n.parent.clone();C.removeAll(),C.raws.before="\n",C.append(n.clone()),n.remove(),u.lastConditionParams.media=h.params,u.lastConditionalRule=C,h.append(C),u.conditionalRules.push(h)})),n.walk((e=>{const o=t.get(e);o&&0!==o.conditionalRules.length&&o.conditionalRules.reverse().forEach((o=>{e.after(o)}))}))}}}});creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-gamut-mapping/dist/index.d.ts b/node_modules/@csstools/postcss-gamut-mapping/dist/index.d.ts new file mode 100644 index 00000000..cf42343c --- /dev/null +++ b/node_modules/@csstools/postcss-gamut-mapping/dist/index.d.ts @@ -0,0 +1,5 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-gamut-mapping plugin options */ +export type pluginOptions = never; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-gamut-mapping/dist/index.mjs b/node_modules/@csstools/postcss-gamut-mapping/dist/index.mjs new file mode 100644 index 00000000..1899c2c4 --- /dev/null +++ b/node_modules/@csstools/postcss-gamut-mapping/dist/index.mjs @@ -0,0 +1 @@ +import{tokenize as e}from"@csstools/css-tokenizer";import{replaceComponentValues as o,parseCommaSeparatedListOfComponentValues as t,isFunctionNode as a,stringify as r}from"@csstools/css-parser-algorithms";import{color as n,SyntaxFlag as s,colorDataFitsRGB_Gamut as l,colorDataFitsDisplayP3_Gamut as i,serializeRGB as c}from"@csstools/css-color-parser";const p=/\bcolor-gamut\b/i;function hasConditionalAncestor(e){let o=e.parent;for(;o;)if("atrule"===o.type){if("media"===o.name.toLowerCase()&&p.test(o.params))return!0;o=o.parent}else o=o.parent;return!1}function hasOverrideOrFallback(e){var o;const t=e.prop.toLowerCase();let a=!1,r=!1;const n=(null==(o=e.parent)?void 0:o.nodes)??[],s=n.indexOf(e);for(let e=0;e({postcssPlugin:"postcss-gamut-mapping",prepare(){const p=new WeakMap;return{OnceExit:(m,{postcss:f})=>{m.walkDecls((m=>{const h=m.value;if(!d.test(h))return;if(!m.parent||hasConditionalAncestor(m))return;const{hasOverride:v,hasFallback:b}=hasOverrideOrFallback(m);if(v)return;const k=p.get(m.parent)||{conditionalRules:[],propNames:new Set,lastConditionParams:{media:void 0},lastConditionalRule:void 0};p.set(m.parent,k);let C=!1;const g=o(t(e({css:h})),(e=>{if(!a(e)||!u.test(e.getName()))return;const o=n(e);return!o||o.syntaxFlags.has(s.HasNoneKeywords)||l(o)?void 0:(C||i(o)||(C=!0),c(o,!0))})),w=r(g);if(w===h)return;const R=`(color-gamut: ${C?"rec2020":"p3"})`;if(k.lastConditionParams.media!==R&&(k.lastConditionalRule=void 0),k.lastConditionalRule)return b||m.cloneBefore({value:w}),k.lastConditionalRule.append(m.clone()),void m.remove();b||m.cloneBefore({value:w});const O=f.atRule({name:"media",params:R,source:m.parent.source,raws:{before:"\n\n",after:"\n"}}),F=m.parent.clone();F.removeAll(),F.raws.before="\n",F.append(m.clone()),m.remove(),k.lastConditionParams.media=O.params,k.lastConditionalRule=F,O.append(F),k.conditionalRules.push(O)})),m.walk((e=>{const o=p.get(e);o&&0!==o.conditionalRules.length&&o.conditionalRules.reverse().forEach((o=>{e.after(o)}))}))}}}});creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-gamut-mapping/package.json b/node_modules/@csstools/postcss-gamut-mapping/package.json new file mode 100644 index 00000000..45255518 --- /dev/null +++ b/node_modules/@csstools/postcss-gamut-mapping/package.json @@ -0,0 +1,94 @@ +{ + "name": "@csstools/postcss-gamut-mapping", + "description": "Gamut map css colors to fit display specific gamuts", + "version": "1.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-gamut-mapping#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-gamut-mapping" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "color", + "css", + "display-p3", + "gamut mapping", + "p3", + "postcss", + "postcss-plugin", + "rec2020", + "srgb", + "wide gamut" + ], + "csstools": { + "cssdbId": "gamut-mapping", + "exportName": "postcssGamutMapping", + "humanReadableName": "PostCSS Gamut Mapping", + "specUrl": "https://www.w3.org/TR/css-color-4/#gamut-mapping" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/CHANGELOG.md b/node_modules/@csstools/postcss-gradients-interpolation-method/CHANGELOG.md new file mode 100644 index 00000000..1c0818d0 --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/CHANGELOG.md @@ -0,0 +1,129 @@ +# Changes to PostCSS Gradients Interpolation Method + +### 4.0.7 + +_October 9, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch) + +### 4.0.6 + +_October 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch) + +### 4.0.5 + +_September 24, 2023_ + +- Small performance improvements +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#132) (patch) + +### 4.0.4 + +_September 18, 2023_ + +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.1`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#301) (patch) + +### 4.0.3 + +_September 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#131) (patch) + +### 4.0.2 + +_August 28, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#130) (minor) + +### 4.0.1 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) + +### 4.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.0`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#300) (major) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.2.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#122) (patch) + +### 3.0.6 + +_June 1, 2023_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `2.3.0` (minor) + + +### 3.0.5 + +_May 19, 2023_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `2.2.0` (minor) +- Updated `@csstools/css-color-parser` to `1.2.0` (minor) + + + +### 3.0.4 + +_April 17, 2023_ + +- Fix infinite loop when parsing gradient functions. (see : https://github.com/csstools/postcss-plugins/issues/948) + +### 3.0.3 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/css-color-parser` to `1.1.2` (patch) + +### 3.0.2 + +_April 10, 2023_ + +- Fix interpolation method `longer`, `increasing`,... for color stops with the same color. + +### 3.0.1 + +_March 28, 2023_ + +- Skip gamut mapping for interpolation color hints. + +### 3.0.0 + +_March 25, 2023_ + +- Handle `color-mix()` internally with `@csstools/css-color-parser` + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.0.1 + +_March 7, 2022_ + +- fix dependencies + +### 1.0.0 + +_March 4, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/LICENSE.md b/node_modules/@csstools/postcss-gradients-interpolation-method/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/README.md b/node_modules/@csstools/postcss-gradients-interpolation-method/README.md new file mode 100644 index 00000000..8412d0aa --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/README.md @@ -0,0 +1,169 @@ +# PostCSS Gradients Interpolation Method [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-gradients-interpolation-method --save-dev +``` + +[PostCSS Gradients Interpolation Method] lets you use different interpolation methods in CSS gradient functions following [CSS Images Module 4]. + +```pcss +.example { + background-image: linear-gradient(in oklch, hsl(0deg 85% 75%) 0%, hsl(180deg 80% 65%) 100%); +} + +:root { + --background-image: linear-gradient(in oklab, hsl(96, 42%, 24%) 0%, hsl(302, 67%, 25%) 100%); +} + +/* becomes */ + +.example { + background-image: linear-gradient(rgb(245, 137, 137) 0%, rgb(248, 146, 114), rgb(244, 158, 94), rgb(235, 171, 82), rgb(220, 185, 81), rgb(201, 199, 95), rgb(177, 211, 118), rgb(151, 221, 146), rgb(125, 229, 177), rgb(103, 235, 208), rgb(94, 237, 237) 100%); + background-image: linear-gradient(in oklch, hsl(0deg 85% 75%) 0%, hsl(180deg 80% 65%) 100%); +} + +:root { + --background-image: linear-gradient(rgb(56, 87, 35) 0%, rgb(64, 83, 46), rgb(70, 79, 54), rgb(76, 74, 62), rgb(82, 69, 68), rgb(86, 64, 75), rgb(91, 58, 81), rgb(95, 51, 87), rgb(99, 44, 93), rgb(103, 34, 98), rgb(106, 21, 104) 100%); +} + +@supports (background: linear-gradient(in oklch, red 0%, red 0% 1%, red 2%)) { +:root { + --background-image: linear-gradient(in oklab, hsl(96, 42%, 24%) 0%, hsl(302, 67%, 25%) 100%); +} +} +``` + +## Shortcomings + +⚠️ Color stops with only a color or only an interpolation hint are not supported. + +For best results you should always provide at least the color and position for each color stop. +Double position color stops are supported. + +```pcss +.foo { + /* Only a color: can't transform */ + background-image: linear-gradient(in oklch, black 0%, green, blue 100%); + + /* Only an interpolation hint: can't transform */ + background-image: linear-gradient(in oklch, black 0%, 25%, blue 100%); +} +``` + +⚠️ Variable colors are also not supported. +We can not mix colors when the color is a variable. + +```pcss +.foo { + --red: red; + /* Color stop variable : can't transform */ + background-image: linear-gradient(in oklch, black 0%, var(--red), blue 100%); +} +``` + +## Usage + +Add [PostCSS Gradients Interpolation Method] to your project: + +```bash +npm install postcss @csstools/postcss-gradients-interpolation-method --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssGradientsInterpolationMethod = require('@csstools/postcss-gradients-interpolation-method'); + +postcss([ + postcssGradientsInterpolationMethod(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Gradients Interpolation Method] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is preserved. + +```js +postcssGradientsInterpolationMethod({ preserve: false }) +``` + +```pcss +.example { + background-image: linear-gradient(in oklch, hsl(0deg 85% 75%) 0%, hsl(180deg 80% 65%) 100%); +} + +:root { + --background-image: linear-gradient(in oklab, hsl(96, 42%, 24%) 0%, hsl(302, 67%, 25%) 100%); +} + +/* becomes */ + +.example { + background-image: linear-gradient(rgb(245, 137, 137) 0%, rgb(248, 146, 114), rgb(244, 158, 94), rgb(235, 171, 82), rgb(220, 185, 81), rgb(201, 199, 95), rgb(177, 211, 118), rgb(151, 221, 146), rgb(125, 229, 177), rgb(103, 235, 208), rgb(94, 237, 237) 100%); +} + +:root { + --background-image: linear-gradient(rgb(56, 87, 35) 0%, rgb(64, 83, 46), rgb(70, 79, 54), rgb(76, 74, 62), rgb(82, 69, 68), rgb(86, 64, 75), rgb(91, 58, 81), rgb(95, 51, 87), rgb(99, 44, 93), rgb(103, 34, 98), rgb(106, 21, 104) 100%); +} +``` + +### enableProgressiveCustomProperties + +The `enableProgressiveCustomProperties` option determines whether the original notation +is wrapped with `@supports` when used in Custom Properties. By default, it is enabled. + +⚠️ We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties. See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme). + +```js +postcssGradientsInterpolationMethod({ enableProgressiveCustomProperties: false }) +``` + +```pcss +.example { + background-image: linear-gradient(in oklch, hsl(0deg 85% 75%) 0%, hsl(180deg 80% 65%) 100%); +} + +:root { + --background-image: linear-gradient(in oklab, hsl(96, 42%, 24%) 0%, hsl(302, 67%, 25%) 100%); +} + +/* becomes */ + +.example { + background-image: linear-gradient(rgb(245, 137, 137) 0%, rgb(248, 146, 114), rgb(244, 158, 94), rgb(235, 171, 82), rgb(220, 185, 81), rgb(201, 199, 95), rgb(177, 211, 118), rgb(151, 221, 146), rgb(125, 229, 177), rgb(103, 235, 208), rgb(94, 237, 237) 100%); + background-image: linear-gradient(in oklch, hsl(0deg 85% 75%) 0%, hsl(180deg 80% 65%) 100%); +} + +:root { + --background-image: linear-gradient(rgb(56, 87, 35) 0%, rgb(64, 83, 46), rgb(70, 79, 54), rgb(76, 74, 62), rgb(82, 69, 68), rgb(86, 64, 75), rgb(91, 58, 81), rgb(95, 51, 87), rgb(99, 44, 93), rgb(103, 34, 98), rgb(106, 21, 104) 100%); + --background-image: linear-gradient(in oklab, hsl(96, 42%, 24%) 0%, hsl(302, 67%, 25%) 100%); +} +``` + +_Custom properties do not fallback to the previous declaration_ + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#gradients-interpolation-method +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-gradients-interpolation-method + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Gradients Interpolation Method]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-gradients-interpolation-method +[CSS Images Module 4]: https://drafts.csswg.org/css-images-4/#linear-gradients diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/dist/color-stop-list.d.ts b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/color-stop-list.d.ts new file mode 100644 index 00000000..4159c39f --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/color-stop-list.d.ts @@ -0,0 +1,9 @@ +import type { ColorData } from '@csstools/css-color-parser'; +import type { ComponentValue } from '@csstools/css-parser-algorithms'; +import { TokenNode } from '@csstools/css-parser-algorithms'; +export type ColorStop = { + color: ComponentValue; + colorData: ColorData; + position: ComponentValue; +}; +export declare function interpolateColorsInColorStopsList(colorStops: Array, colorSpace: TokenNode, hueInterpolationMethod: TokenNode | null, wideGamut?: boolean): Array | false; diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..d7ae8d89 --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasFallback(node: Declaration): boolean; diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/dist/has-supports-at-rule-ancestor.d.ts b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/has-supports-at-rule-ancestor.d.ts new file mode 100644 index 00000000..a46009ec --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/has-supports-at-rule-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { Node } from 'postcss'; +export declare function hasSupportsAtRuleAncestor(node: Node): boolean; diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.cjs b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.cjs new file mode 100644 index 00000000..3ab3f55e --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),o=require("@csstools/css-parser-algorithms"),t=require("@csstools/css-tokenizer"),n=require("@csstools/css-color-parser");const i=/(repeating-)?(linear|radial|conic)-gradient\(.*?in/i,s=/^(repeating-)?(linear|radial|conic)-gradient$/i;function hasFallback(e){const o=e.parent;if(!o)return!1;const t=e.prop.toLowerCase(),n=o.index(e);for(let e=0;e0&&N.some((e=>!o.isCommentNode(e)))&&N.push(new o.TokenNode([t.TokenType.Comma,",",-1,-1,void 0]),new o.WhitespaceNode([[t.TokenType.Whitespace," ",-1,-1,void 0]])),trim([...N,...trim(g)])}function trim(e){let t=0,n=e.length-1;for(let n=0;n=0;t--)if(!o.isWhitespaceNode(e[t])){n=t;break}return e.slice(t,n+1)}const basePlugin=e=>({postcssPlugin:"postcss-gradients-interpolation-method",Declaration(n){if(!i.test(n.value))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const s=t.tokenize({css:n.value}),r=o.stringify(o.replaceComponentValues(o.parseCommaSeparatedListOfComponentValues(s),(e=>{if(!o.isFunctionNode(e))return;const t=modifyGradientFunctionComponentValues(e);t&&(e.value=t)})));if(r===n.value)return;const a=o.stringify(o.replaceComponentValues(o.parseCommaSeparatedListOfComponentValues(s),(e=>{if(!o.isFunctionNode(e))return;const t=modifyGradientFunctionComponentValues(e,!0);t&&(e.value=t)})));n.cloneBefore({value:r}),r!==a&&n.cloneBefore({value:a}),null!=e&&e.preserve||n.remove()}});basePlugin.postcss=!0;const postcssPlugin=o=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!0},o);return t.enableProgressiveCustomProperties?{postcssPlugin:"postcss-gradients-interpolation-method",plugins:[e(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0,module.exports=postcssPlugin; diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.d.ts b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.d.ts new file mode 100644 index 00000000..0520e965 --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.d.ts @@ -0,0 +1,10 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-gradients-interpolation-method plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: true */ + preserve?: boolean; + /** Enable "@csstools/postcss-progressive-custom-properties". default: true */ + enableProgressiveCustomProperties?: boolean; +}; +declare const postcssPlugin: PluginCreator; +export default postcssPlugin; diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.mjs b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.mjs new file mode 100644 index 00000000..392d72e1 --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/index.mjs @@ -0,0 +1 @@ +import o from"@csstools/postcss-progressive-custom-properties";import{WhitespaceNode as e,TokenNode as t,FunctionNode as r,isCommentNode as n,isWhitespaceNode as i,isTokenNode as s,stringify as l,replaceComponentValues as a,parseCommaSeparatedListOfComponentValues as c,isFunctionNode as u}from"@csstools/css-parser-algorithms";import{TokenType as p,tokenize as f}from"@csstools/css-tokenizer";import{serializeP3 as v,color as h,colorDataFitsRGB_Gamut as d,serializeRGB as m}from"@csstools/css-color-parser";const g=/(repeating-)?(linear|radial|conic)-gradient\(.*?in/i,w=/^(repeating-)?(linear|radial|conic)-gradient$/i;function hasFallback(o){const e=o.parent;if(!e)return!1;const t=o.prop.toLowerCase(),r=e.index(o);for(let o=0;o0&&S.some((o=>!n(o)))&&S.push(new t([p.Comma,",",-1,-1,void 0]),new e([[p.Whitespace," ",-1,-1,void 0]])),trim([...S,...trim(g)])}function trim(o){let e=0,t=o.length-1;for(let t=0;t=0;e--)if(!i(o[e])){t=e;break}return o.slice(e,t+1)}const basePlugin=o=>({postcssPlugin:"postcss-gradients-interpolation-method",Declaration(e){if(!g.test(e.value))return;if(hasFallback(e))return;if(hasSupportsAtRuleAncestor(e))return;const t=f({css:e.value}),r=l(a(c(t),(o=>{if(!u(o))return;const e=modifyGradientFunctionComponentValues(o);e&&(o.value=e)})));if(r===e.value)return;const n=l(a(c(t),(o=>{if(!u(o))return;const e=modifyGradientFunctionComponentValues(o,!0);e&&(o.value=e)})));e.cloneBefore({value:r}),r!==n&&e.cloneBefore({value:n}),null!=o&&o.preserve||e.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const t=Object.assign({enableProgressiveCustomProperties:!0,preserve:!0},e);return t.enableProgressiveCustomProperties?{postcssPlugin:"postcss-gradients-interpolation-method",plugins:[o(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0;export{postcssPlugin as default}; diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/dist/is-gradient.d.ts b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/is-gradient.d.ts new file mode 100644 index 00000000..2d83e89e --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/is-gradient.d.ts @@ -0,0 +1,2 @@ +export declare const gradientFunctionRegex: RegExp; +export declare const gradientNameRegex: RegExp; diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/dist/modify-gradient-component-values.d.ts b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/modify-gradient-component-values.d.ts new file mode 100644 index 00000000..6917beda --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/modify-gradient-component-values.d.ts @@ -0,0 +1,2 @@ +import type { ComponentValue, FunctionNode } from '@csstools/css-parser-algorithms'; +export declare function modifyGradientFunctionComponentValues(gradientFunction: FunctionNode, wideGamut?: boolean): Array | false; diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/dist/parse-color-stops.d.ts b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/parse-color-stops.d.ts new file mode 100644 index 00000000..0342da5c --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/dist/parse-color-stops.d.ts @@ -0,0 +1,3 @@ +import type { ColorStop } from './color-stop-list'; +import type { ComponentValue } from '@csstools/css-parser-algorithms'; +export declare function parseColorStops(componentValues: Array): Array | false; diff --git a/node_modules/@csstools/postcss-gradients-interpolation-method/package.json b/node_modules/@csstools/postcss-gradients-interpolation-method/package.json new file mode 100644 index 00000000..b6fdb43e --- /dev/null +++ b/node_modules/@csstools/postcss-gradients-interpolation-method/package.json @@ -0,0 +1,88 @@ +{ + "name": "@csstools/postcss-gradients-interpolation-method", + "description": "Use interpolation methods in CSS gradient functions", + "version": "4.0.7", + "author": "Jonathan Neal ", + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-gradients-interpolation-method#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-gradients-interpolation-method" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "color", + "color space interpolation", + "conic", + "css", + "gradients", + "hue interpolation method", + "interpolation", + "linear", + "postcss", + "postcss-plugin", + "radial", + "repeating", + "syntax" + ], + "csstools": { + "cssdbId": "gradients-interpolation-method", + "exportName": "postcssGradientsInterpolationMethod", + "humanReadableName": "PostCSS Gradients Interpolation Method", + "specUrl": "https://drafts.csswg.org/css-images-4/#linear-gradients" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-hwb-function/CHANGELOG.md b/node_modules/@csstools/postcss-hwb-function/CHANGELOG.md new file mode 100644 index 00000000..d3d6844f --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/CHANGELOG.md @@ -0,0 +1,113 @@ +# Changes to PostCSS HWB Function + +### 3.0.6 + +_October 9, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor) + +### 3.0.5 + +_October 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch) + +### 3.0.4 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#132) (patch) + +### 3.0.3 + +_September 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#131) (patch) + +### 3.0.2 + +_August 28, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#130) (minor) + +### 3.0.1 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.2.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#122) (patch) + +### 2.2.2 + +_May 19, 2023_ + +- Ignore relative color syntax +- Updated `@csstools/css-color-parser` to `1.2.0` (minor) + + +### 2.2.1 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/css-color-parser` to `1.1.2` (patch) + +### 2.2.0 + +_March 25, 2023_ + +- Add `@csstools/css-color-parser` dependency for all color value transformations. +- Add support for `calc` expressions in color components. + +### 2.1.1 + +_February 8, 2023_ + +- Reduce the amount of duplicate fallback CSS. + +### 2.1.0 + +_February 2, 2023_ + +- Add: `@csstools/color-helpers` dependency for all color value transformations. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.0.2 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 1.0.1 + +_May 18, 2022_ + +- Fix grayscale conversions. + +### 1.0.0 + +_January 22, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-hwb-function/INSTALL.md b/node_modules/@csstools/postcss-hwb-function/INSTALL.md new file mode 100644 index 00000000..eaf1cf25 --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/INSTALL.md @@ -0,0 +1,235 @@ +# Installing PostCSS HWB Function + +[PostCSS HWB Function] runs in all Node environments, with special instructions for: + +- [Node](#node) +- [PostCSS CLI](#postcss-cli) +- [PostCSS Load Config](#postcss-load-config) +- [Webpack](#webpack) +- [Next.js](#nextjs) +- [Gulp](#gulp) +- [Grunt](#grunt) + + + +## Node + +Add [PostCSS HWB Function] to your project: + +```bash +npm install postcss @csstools/postcss-hwb-function --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +// commonjs +const postcss = require('postcss'); +const postcssHWBFunction = require('@csstools/postcss-hwb-function'); + +postcss([ + postcssHWBFunction(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +```js +// esm +import postcss from 'postcss'; +import postcssHWBFunction from '@csstools/postcss-hwb-function'; + +postcss([ + postcssHWBFunction(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +## PostCSS CLI + +Add [PostCSS CLI] to your project: + +```bash +npm install postcss-cli @csstools/postcss-hwb-function --save-dev +``` + +Use [PostCSS HWB Function] in your `postcss.config.js` configuration file: + +```js +const postcssHWBFunction = require('@csstools/postcss-hwb-function'); + +module.exports = { + plugins: [ + postcssHWBFunction(/* pluginOptions */) + ] +} +``` + +## PostCSS Load Config + +If your framework/CLI supports [`postcss-load-config`](https://github.com/postcss/postcss-load-config). + +```bash +npm install @csstools/postcss-hwb-function --save-dev +``` + +`package.json`: + +```json +{ + "postcss": { + "plugins": { + "@csstools/postcss-hwb-function": {} + } + } +} +``` + +`.postcssrc.json`: + +```json +{ + "plugins": { + "@csstools/postcss-hwb-function": {} + } +} +``` + +_See the [README of `postcss-load-config`](https://github.com/postcss/postcss-load-config#usage) for more usage options._ + +## Webpack + +_Webpack version 5_ + +Add [PostCSS Loader] to your project: + +```bash +npm install postcss-loader @csstools/postcss-hwb-function --save-dev +``` + +Use [PostCSS HWB Function] in your Webpack configuration: + +```js +module.exports = { + module: { + rules: [ + { + test: /\.css$/i, + use: [ + "style-loader", + { + loader: "css-loader", + options: { importLoaders: 1 }, + }, + { + loader: "postcss-loader", + options: { + postcssOptions: { + plugins: [ + // Other plugins, + [ + "@csstools/postcss-hwb-function", + { + // Options + }, + ], + ], + }, + }, + }, + ], + }, + ], + }, +}; +``` + +## Next.js + +Read the instructions on how to [customize the PostCSS configuration in Next.js](https://nextjs.org/docs/advanced-features/customizing-postcss-config) + +```bash +npm install @csstools/postcss-hwb-function --save-dev +``` + +Use [PostCSS HWB Function] in your `postcss.config.json` file: + +```json +{ + "plugins": [ + "@csstools/postcss-hwb-function" + ] +} +``` + +```json5 +{ + "plugins": [ + [ + "@csstools/postcss-hwb-function", + { + // Optionally add plugin options + } + ] + ] +} +``` + +## Gulp + +Add [Gulp PostCSS] to your project: + +```bash +npm install gulp-postcss @csstools/postcss-hwb-function --save-dev +``` + +Use [PostCSS HWB Function] in your Gulpfile: + +```js +const postcss = require('gulp-postcss'); +const postcssHWBFunction = require('@csstools/postcss-hwb-function'); + +gulp.task('css', function () { + var plugins = [ + postcssHWBFunction(/* pluginOptions */) + ]; + + return gulp.src('./src/*.css') + .pipe(postcss(plugins)) + .pipe(gulp.dest('.')); +}); +``` + +## Grunt + +Add [Grunt PostCSS] to your project: + +```bash +npm install grunt-postcss @csstools/postcss-hwb-function --save-dev +``` + +Use [PostCSS HWB Function] in your Gruntfile: + +```js +const postcssHWBFunction = require('@csstools/postcss-hwb-function'); + +grunt.loadNpmTasks('grunt-postcss'); + +grunt.initConfig({ + postcss: { + options: { + processors: [ + postcssHWBFunction(/* pluginOptions */) + ] + }, + dist: { + src: '*.css' + } + } +}); +``` + +[Gulp PostCSS]: https://github.com/postcss/gulp-postcss +[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss +[PostCSS]: https://github.com/postcss/postcss +[PostCSS CLI]: https://github.com/postcss/postcss-cli +[PostCSS Loader]: https://github.com/postcss/postcss-loader +[PostCSS HWB Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-hwb-function +[Next.js]: https://nextjs.org diff --git a/node_modules/@csstools/postcss-hwb-function/LICENSE.md b/node_modules/@csstools/postcss-hwb-function/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-hwb-function/README.md b/node_modules/@csstools/postcss-hwb-function/README.md new file mode 100644 index 00000000..1d20d6da --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/README.md @@ -0,0 +1,88 @@ +# PostCSS HWB Function [PostCSS Logo][postcss] + +[npm version][npm-url] +[CSS Standard Status][css-url] +[Build Status][cli-url] +[Discord][discord] + + +[PostCSS HWB Function] lets you use `hwb` color functions in +CSS, following the [CSS Color] specification. + +```pcss +a { + color: hwb(194 0% 0%); + color: hwb(194 0% 0% / .5); +} + +/* becomes */ + +a { + color: rgb(0, 195, 255); + color: rgba(0, 195, 255, .5); +} +``` + +## Usage + +Add [PostCSS HWB Function] to your project: + +```bash +npm install postcss @csstools/postcss-hwb-function --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssHWBFunction = require('@csstools/postcss-hwb-function'); + +postcss([ + postcssHWBFunction(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS HWB Function] runs in all Node environments, with special +instructions for: + +| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | +| --- | --- | --- | --- | --- | + +## Options + +### preserve + +The `preserve` option determines whether the original functional color notation +is preserved. By default, it is not preserved. + +```js +postcssHWBFunction({ preserve: true }) +``` + +```pcss +a { + color: hwb(194 0% 0%); + color: hwb(194 0% 0% / .5); +} + +/* becomes */ + +a { + color: rgb(0, 195, 255); + color: hwb(194 0% 0%); + color: rgba(0, 195, 255, .5); + color: hwb(194 0% 0% / .5); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#hwb-function +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-hwb-function + +[CSS Color]: https://drafts.csswg.org/css-color/#the-hwb-notation +[Gulp PostCSS]: https://github.com/postcss/gulp-postcss +[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Loader]: https://github.com/postcss/postcss-loader +[PostCSS HWB Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-hwb-function diff --git a/node_modules/@csstools/postcss-hwb-function/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-hwb-function/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..d7ae8d89 --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasFallback(node: Declaration): boolean; diff --git a/node_modules/@csstools/postcss-hwb-function/dist/has-supports-at-rule-ancestor.d.ts b/node_modules/@csstools/postcss-hwb-function/dist/has-supports-at-rule-ancestor.d.ts new file mode 100644 index 00000000..7fbe0b29 --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/dist/has-supports-at-rule-ancestor.d.ts @@ -0,0 +1,3 @@ +import type { Node } from 'postcss'; +export declare const atSupportsHwbParams = "(color: hwb(0 0% 0%))"; +export declare function hasSupportsAtRuleAncestor(node: Node): boolean; diff --git a/node_modules/@csstools/postcss-hwb-function/dist/index.cjs b/node_modules/@csstools/postcss-hwb-function/dist/index.cjs new file mode 100644 index 00000000..19fafe2e --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms"),r=require("@csstools/css-tokenizer");const s="(color: hwb(0 0% 0%))";function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&t.params.includes(s))return!0;t=t.parent}else t=t.parent;return!1}function hasFallback(e){const t=e.parent;if(!t)return!1;const r=e.prop.toLowerCase(),s=t.index(e);for(let e=0;e{const l="preserve"in Object(a)&&Boolean(null==a?void 0:a.preserve);return{postcssPlugin:"postcss-hwb-function",Declaration:(a,{postcss:c})=>{const p=a.value;if(!o.test(p))return;if(l&&hasSupportsAtRuleAncestor(a))return;if(hasFallback(a))return;const u=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(r.tokenize({css:p})),(r=>{if(t.isFunctionNode(r)&&n.test(r.getName())){const t=e.color(r);if(!t)return;if(t.syntaxFlags.has(e.SyntaxFlag.HasNoneKeywords))return;if(t.syntaxFlags.has(e.SyntaxFlag.RelativeColorSyntax))return;return e.serializeRGB(t)}})),i=t.stringify(u);if(i!==p)if(a.variable&&l&&a.parent){const e=a.parent,t=c.atRule({name:"supports",params:s,source:a.source}),r=e.clone();r.removeAll(),r.append(a.clone()),t.append(r),insertAtSupportsAfterCorrectRule(t,e,s),a.replaceWith(a.clone({value:i}))}else l?a.cloneBefore({value:i}):a.replaceWith(a.clone({value:i}))}}};function insertAtSupportsAfterCorrectRule(e,t,r){let s=t,o=t.next();for(;s&&o&&"atrule"===o.type&&"supports"===o.name.toLowerCase()&&o.params===r;)s=o,o=o.next();s.after(e)}postcssPlugin.postcss=!0,module.exports=postcssPlugin; diff --git a/node_modules/@csstools/postcss-hwb-function/dist/index.d.ts b/node_modules/@csstools/postcss-hwb-function/dist/index.d.ts new file mode 100644 index 00000000..0304f878 --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/dist/index.d.ts @@ -0,0 +1,9 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-hwb-function plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; +}; +/** Transform hwb() functions in CSS. */ +declare const postcssPlugin: PluginCreator; +export default postcssPlugin; diff --git a/node_modules/@csstools/postcss-hwb-function/dist/index.mjs b/node_modules/@csstools/postcss-hwb-function/dist/index.mjs new file mode 100644 index 00000000..067e6891 --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/dist/index.mjs @@ -0,0 +1 @@ +import{color as e,SyntaxFlag as t,serializeRGB as r}from"@csstools/css-color-parser";import{replaceComponentValues as s,parseCommaSeparatedListOfComponentValues as o,isFunctionNode as n,stringify as a}from"@csstools/css-parser-algorithms";import{tokenize as l}from"@csstools/css-tokenizer";const p="(color: hwb(0 0% 0%))";function hasSupportsAtRuleAncestor(e){let t=e.parent;for(;t;)if("atrule"===t.type){if("supports"===t.name.toLowerCase()&&t.params.includes(p))return!0;t=t.parent}else t=t.parent;return!1}function hasFallback(e){const t=e.parent;if(!t)return!1;const r=e.prop.toLowerCase(),s=t.index(e);for(let e=0;e{const f="preserve"in Object(i)&&Boolean(null==i?void 0:i.preserve);return{postcssPlugin:"postcss-hwb-function",Declaration:(i,{postcss:m})=>{const h=i.value;if(!c.test(h))return;if(f&&hasSupportsAtRuleAncestor(i))return;if(hasFallback(i))return;const v=s(o(l({css:h})),(s=>{if(n(s)&&u.test(s.getName())){const o=e(s);if(!o)return;if(o.syntaxFlags.has(t.HasNoneKeywords))return;if(o.syntaxFlags.has(t.RelativeColorSyntax))return;return r(o)}})),d=a(v);if(d!==h)if(i.variable&&f&&i.parent){const e=i.parent,t=m.atRule({name:"supports",params:p,source:i.source}),r=e.clone();r.removeAll(),r.append(i.clone()),t.append(r),insertAtSupportsAfterCorrectRule(t,e,p),i.replaceWith(i.clone({value:d}))}else f?i.cloneBefore({value:d}):i.replaceWith(i.clone({value:d}))}}};function insertAtSupportsAfterCorrectRule(e,t,r){let s=t,o=t.next();for(;s&&o&&"atrule"===o.type&&"supports"===o.name.toLowerCase()&&o.params===r;)s=o,o=o.next();s.after(e)}postcssPlugin.postcss=!0;export{postcssPlugin as default}; diff --git a/node_modules/@csstools/postcss-hwb-function/package.json b/node_modules/@csstools/postcss-hwb-function/package.json new file mode 100644 index 00000000..de60d8d8 --- /dev/null +++ b/node_modules/@csstools/postcss-hwb-function/package.json @@ -0,0 +1,88 @@ +{ + "name": "@csstools/postcss-hwb-function", + "description": "Use hwb() color functions in CSS", + "version": "3.0.6", + "author": "Jonathan Neal ", + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "INSTALL.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-hwb-function#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-hwb-function" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "color", + "comma", + "css", + "design", + "functional", + "hsl", + "hsla", + "hwb", + "notation", + "postcss", + "postcss-plugin", + "rgb", + "rgba", + "space", + "syntax" + ], + "csstools": { + "exportName": "postcssHWBFunction", + "humanReadableName": "PostCSS HWB Function" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-ic-unit/CHANGELOG.md b/node_modules/@csstools/postcss-ic-unit/CHANGELOG.md new file mode 100644 index 00000000..33354058 --- /dev/null +++ b/node_modules/@csstools/postcss-ic-unit/CHANGELOG.md @@ -0,0 +1,65 @@ +# Changes to PostCSS IC Unit + +### 3.0.2 + +_October 9, 2023_ + +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch) + +### 3.0.1 + +_September 18, 2023_ + +- Improve performance +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.1`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#301) (patch) + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.0`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#300) (major) + +### 2.0.4 + +_June 1, 2023_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `2.3.0` (minor) + + +### 2.0.3 + +_May 19, 2023_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `2.2.0` (minor) + + +### 2.0.2 + +_February 8, 2023_ + +- Reduce the amount of duplicate fallback CSS. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.0.1 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 1.0.0 + +_February 15, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-ic-unit/LICENSE.md b/node_modules/@csstools/postcss-ic-unit/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-ic-unit/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-ic-unit/README.md b/node_modules/@csstools/postcss-ic-unit/README.md new file mode 100644 index 00000000..b7069c16 --- /dev/null +++ b/node_modules/@csstools/postcss-ic-unit/README.md @@ -0,0 +1,94 @@ +# PostCSS IC Unit [PostCSS Logo][postcss] + + +[npm version][npm-url] +[CSS Standard Status][css-url] +[Build Status][cli-url] +[Discord][discord] + +[PostCSS IC Unit] lets you use the ic length unit, following the [CSS Values and Units Module] specification. + +```pcss +p { + text-indent: 2ic; +} + +.bubble { + width: calc(8ic + 20px); +} + +/* becomes */ +p { + text-indent: 2em; +} + +.bubble { + width: calc(8em + 20px); +} +``` + +_See prior work by [JLHwung](https://github.com/JLHwung) here [postcss-ic-unit](https://github.com/JLHwung/postcss-ic-unit) +To ensure long term maintenance and to provide the needed features this plugin was recreated based on JLHwung's work._ + +## Usage + +Add [PostCSS IC Unit] to your project: + +```bash +npm install postcss @csstools/postcss-ic-unit --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssIcUnit = require('@csstools/postcss-ic-unit'); + +postcss([ + postcssIcUnit(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS IC Unit] runs in all Node environments, with special +instructions for: + +| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | +| --- | --- | --- | --- | --- | + +## Options + +### preserve + +The `preserve` option determines whether the original source +is preserved. By default, it is not preserved. + +```js +postcssIcUnit({ preserve: true }) +``` + +```pcss +p { + text-indent: 2ic; +} + +/* becomes */ + +p { + text-indent: 2em; + text-indent: 2ic; +} +``` + +[postcss]: https://github.com/postcss/postcss + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#ic-unit +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-ic-unit + +[Gulp PostCSS]: https://github.com/postcss/gulp-postcss +[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Loader]: https://github.com/postcss/postcss-loader +[CSS Values and Units Module]: https://www.w3.org/TR/css-values-4/#ic +[PostCSS IC Unit]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-ic-unit diff --git a/node_modules/@csstools/postcss-ic-unit/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-ic-unit/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..d7ae8d89 --- /dev/null +++ b/node_modules/@csstools/postcss-ic-unit/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasFallback(node: Declaration): boolean; diff --git a/node_modules/@csstools/postcss-ic-unit/dist/has-supports-at-rule-ancestor.d.ts b/node_modules/@csstools/postcss-ic-unit/dist/has-supports-at-rule-ancestor.d.ts new file mode 100644 index 00000000..a46009ec --- /dev/null +++ b/node_modules/@csstools/postcss-ic-unit/dist/has-supports-at-rule-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { Node } from 'postcss'; +export declare function hasSupportsAtRuleAncestor(node: Node): boolean; diff --git a/node_modules/@csstools/postcss-ic-unit/dist/index.cjs b/node_modules/@csstools/postcss-ic-unit/dist/index.cjs new file mode 100644 index 00000000..d85ab48a --- /dev/null +++ b/node_modules/@csstools/postcss-ic-unit/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("postcss-value-parser");function hasFallback(e){const s=e.parent;if(!s)return!1;const t=e.prop.toLowerCase(),r=s.index(e);for(let e=0;e({postcssPlugin:"postcss-ic-unit",Declaration(r){if(!t.test(r.value))return;if(hasFallback(r))return;if(hasSupportsAtRuleAncestor(r))return;const o=s(r.value);o.walk((e=>{if(!e.type||"word"!==e.type)return;const t=s.unit(e.value);t&&"ic"===t.unit.toLowerCase()&&(e.value=`${t.number}em`)}));const n=String(o);n!==r.value&&(r.cloneBefore({value:n}),null!=e&&e.preserve||r.remove())}});basePlugin.postcss=!0;const postcssPlugin=s=>{const t=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},s);return t.enableProgressiveCustomProperties&&t.preserve?{postcssPlugin:"postcss-ic-unit",plugins:[e(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0,module.exports=postcssPlugin; diff --git a/node_modules/@csstools/postcss-ic-unit/dist/index.d.ts b/node_modules/@csstools/postcss-ic-unit/dist/index.d.ts new file mode 100644 index 00000000..6900fd7d --- /dev/null +++ b/node_modules/@csstools/postcss-ic-unit/dist/index.d.ts @@ -0,0 +1,10 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-ic-unit plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; + /** Enable "@csstools/postcss-progressive-custom-properties". default: true */ + enableProgressiveCustomProperties?: boolean; +}; +declare const postcssPlugin: PluginCreator; +export default postcssPlugin; diff --git a/node_modules/@csstools/postcss-ic-unit/dist/index.mjs b/node_modules/@csstools/postcss-ic-unit/dist/index.mjs new file mode 100644 index 00000000..ef0b7a83 --- /dev/null +++ b/node_modules/@csstools/postcss-ic-unit/dist/index.mjs @@ -0,0 +1 @@ +import e from"@csstools/postcss-progressive-custom-properties";import s from"postcss-value-parser";function hasFallback(e){const s=e.parent;if(!s)return!1;const t=e.prop.toLowerCase(),r=s.index(e);for(let e=0;e({postcssPlugin:"postcss-ic-unit",Declaration(r){if(!t.test(r.value))return;if(hasFallback(r))return;if(hasSupportsAtRuleAncestor(r))return;const o=s(r.value);o.walk((e=>{if(!e.type||"word"!==e.type)return;const t=s.unit(e.value);t&&"ic"===t.unit.toLowerCase()&&(e.value=`${t.number}em`)}));const n=String(o);n!==r.value&&(r.cloneBefore({value:n}),null!=e&&e.preserve||r.remove())}});basePlugin.postcss=!0;const postcssPlugin=s=>{const t=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},s);return t.enableProgressiveCustomProperties&&t.preserve?{postcssPlugin:"postcss-ic-unit",plugins:[e(),basePlugin(t)]}:basePlugin(t)};postcssPlugin.postcss=!0;export{postcssPlugin as default}; diff --git a/node_modules/@csstools/postcss-ic-unit/package.json b/node_modules/@csstools/postcss-ic-unit/package.json new file mode 100644 index 00000000..e638c94a --- /dev/null +++ b/node_modules/@csstools/postcss-ic-unit/package.json @@ -0,0 +1,78 @@ +{ + "name": "@csstools/postcss-ic-unit", + "description": "Use the ic length unit", + "version": "3.0.2", + "author": "Jonathan Neal ", + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^3.0.2", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-ic-unit#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-ic-unit" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "CJK water ideograph", + "css", + "glyph", + "ic", + "length", + "postcss-plugin", + "values" + ], + "csstools": { + "exportName": "postcssIcUnit", + "humanReadableName": "PostCSS IC Unit" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-initial/CHANGELOG.md b/node_modules/@csstools/postcss-initial/CHANGELOG.md new file mode 100644 index 00000000..296a43b5 --- /dev/null +++ b/node_modules/@csstools/postcss-initial/CHANGELOG.md @@ -0,0 +1,7 @@ +# Changes to PostCSS Initial + +### 1.0.0 + +_September 18, 2023_ + +- Initial version diff --git a/node_modules/@csstools/postcss-initial/LICENSE.md b/node_modules/@csstools/postcss-initial/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-initial/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-initial/README.md b/node_modules/@csstools/postcss-initial/README.md new file mode 100644 index 00000000..26d6b14a --- /dev/null +++ b/node_modules/@csstools/postcss-initial/README.md @@ -0,0 +1,87 @@ +# PostCSS Initial [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-initial --save-dev +``` + +[PostCSS Initial] fallback the `initial` keyword following the [CSS Cascade 4 Specification]. + +```pcss +.foo { + border: initial; +} + +/* becomes */ + +.foo { + border: medium none currentcolor; + border: initial; +} +``` + +_See prior work by [maximkoretskiy](https://github.com/maximkoretskiy) here [postcss-initial](https://github.com/maximkoretskiy/postcss-initial) +To ensure long term maintenance and to provide the needed features this plugin was recreated based on maximkoretskiy's work._ + +## Usage + +Add [PostCSS Initial] to your project: + +```bash +npm install postcss @csstools/postcss-initial --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssInitial = require('@csstools/postcss-initial'); + +postcss([ + postcssInitial(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Initial] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is preserved. + +```js +postcssInitial({ preserve: false }) +``` + +```pcss +.foo { + border: initial; +} + +/* becomes */ + +.foo { + border: medium none currentcolor; +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#all-property +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-initial + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Initial]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-initial +[CSS Cascade 4 Specification]: https://www.w3.org/TR/css-cascade-4/#initial diff --git a/node_modules/@csstools/postcss-initial/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-initial/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..c044b787 --- /dev/null +++ b/node_modules/@csstools/postcss-initial/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasExactFallback(node: Declaration, newValue: string): boolean; diff --git a/node_modules/@csstools/postcss-initial/dist/index.cjs b/node_modules/@csstools/postcss-initial/dist/index.cjs new file mode 100644 index 00000000..a28e74ee --- /dev/null +++ b/node_modules/@csstools/postcss-initial/dist/index.cjs @@ -0,0 +1 @@ +"use strict";const o=new Map([["animation","none 0s ease 0s 1 normal none running"],["animation-delay","0s"],["animation-direction","normal"],["animation-duration","0s"],["animation-fill-mode","none"],["animation-iteration-count","1"],["animation-name","none"],["animation-play-state","running"],["animation-timing-function","ease"],["backface-visibility","visible"],["background","transparent none repeat 0 0 / auto auto padding-box border-box scroll"],["background-attachment","scroll"],["background-clip","border-box"],["background-color","transparent"],["background-image","none"],["background-origin","padding-box"],["background-position","0 0"],["background-position-x","0"],["background-position-y","0"],["background-repeat","repeat"],["background-size","auto auto"],["border","medium none currentcolor"],["border-style","none"],["border-width","medium"],["border-color","currentcolor"],["border-bottom","0"],["border-bottom-color","currentcolor"],["border-bottom-left-radius","0"],["border-bottom-right-radius","0"],["border-bottom-style","none"],["border-bottom-width","medium"],["border-collapse","separate"],["border-image","none"],["border-left","0"],["border-left-color","currentcolor"],["border-left-style","none"],["border-left-width","medium"],["border-radius","0"],["border-right","0"],["border-right-color","currentcolor"],["border-right-style","none"],["border-right-width","medium"],["border-spacing","0"],["border-top","0"],["border-top-color","currentcolor"],["border-top-left-radius","0"],["border-top-right-radius","0"],["border-top-style","none"],["border-top-width","medium"],["bottom","auto"],["box-shadow","none"],["box-sizing","content-box"],["caption-side","top"],["clear","none"],["clip","auto"],["color","#000"],["columns","auto"],["column-count","auto"],["column-fill","balance"],["column-gap","normal"],["column-rule","medium none currentcolor"],["column-rule-color","currentcolor"],["column-rule-style","none"],["column-rule-width","medium"],["column-span","1"],["column-width","auto"],["content","normal"],["counter-increment","none"],["counter-reset","none"],["cursor","auto"],["direction","ltr"],["display","inline"],["empty-cells","show"],["float","none"],["font-family","serif"],["font-size","medium"],["font-style","normal"],["font-variant","normal"],["font-weight","normal"],["font-stretch","normal"],["line-height","normal"],["height","auto"],["hyphens","none"],["left","auto"],["letter-spacing","normal"],["list-style","disc outside none"],["list-style-image","none"],["list-style-position","outside"],["list-style-type","disc"],["margin","0"],["margin-bottom","0"],["margin-left","0"],["margin-right","0"],["margin-top","0"],["max-height","none"],["max-width","none"],["min-height","0"],["min-width","0"],["opacity","1"],["orphans","2"],["outline","medium none currentcolor"],["outline-color","currentcolor"],["outline-style","none"],["outline-width","medium"],["overflow","visible"],["overflow-x","visible"],["overflow-y","visible"],["padding","0"],["padding-bottom","0"],["padding-left","0"],["padding-right","0"],["padding-top","0"],["page-break-after","auto"],["page-break-before","auto"],["page-break-inside","auto"],["perspective","none"],["perspective-origin","50% 50%"],["position","static"],["quotes",'"“" "”" "‘" "’"'],["right","auto"],["tab-size","8"],["table-layout","auto"],["text-align","left"],["text-align-last","auto"],["text-decoration","none"],["text-decoration-color","currentcolor"],["text-decoration-line","none"],["text-decoration-style","solid"],["text-indent","0"],["text-shadow","none"],["text-transform","none"],["top","auto"],["transform","none"],["transform-origin","50% 50% 0"],["transform-style","flat"],["transition","none 0s ease 0s"],["transition-delay","0s"],["transition-duration","0s"],["transition-property","none"],["transition-timing-function","ease"],["unicode-bidi","normal"],["vertical-align","baseline"],["visibility","visible"],["white-space","normal"],["widows","2"],["width","auto"],["word-spacing","normal"],["z-index","auto"]]),t=["animation","backface-visibility","background","border","border-collapse","border-image","border-radius","border-spacing","bottom","box-shadow","box-sizing","caption-side","clear","clip","color","columns","column-count","column-fill","column-gap","column-rule","column-span","column-width","content","counter-increment","counter-reset","cursor","display","empty-cells","float","font-family","font-size","font-style","font-variant","font-weight","font-stretch","line-height","font","height","hyphens","left","letter-spacing","list-style","margin","max-height","max-width","min-height","min-width","opacity","orphans","outline","overflow","overflow-x","overflow-y","padding","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","position","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-indent","text-shadow","text-transform","top","transform","transform-origin","transform-style","transition","vertical-align","visibility","white-space","widows","width","word-spacing","z-index"];function hasExactFallback(o,t){const e=o.parent;if(!e)return!1;const n=o.prop.toLowerCase();for(let r=e.index(o)-1;r>=0;r--){const o=e.nodes[r];if("decl"===o.type&&o.prop.toLowerCase()===n)return o.value===t}return!1}const e=/^\s?initial\s?$/i,n=/^font$/i,r=/^all$/i,i=["font-family","font-size","font-style","font-variant","font-weight","font-stretch","line-height"],creator=a=>{const l=Object.assign({preserve:!0},a);return{postcssPlugin:"postcss-initial",Declaration(a){if(a.variable)return;if(!e.test(a.value))return;let s;s=n.test(a.prop)?i:r.test(a.prop)?t:[a.prop.toLowerCase()],s.forEach((t=>{const e=o.get(t);e&&(hasExactFallback(a,e)||a.cloneBefore({prop:t,value:e}))})),l.preserve||a.remove()}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-initial/dist/index.d.ts b/node_modules/@csstools/postcss-initial/dist/index.d.ts new file mode 100644 index 00000000..55f858c1 --- /dev/null +++ b/node_modules/@csstools/postcss-initial/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-initial plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-initial/dist/index.mjs b/node_modules/@csstools/postcss-initial/dist/index.mjs new file mode 100644 index 00000000..be1f1b9d --- /dev/null +++ b/node_modules/@csstools/postcss-initial/dist/index.mjs @@ -0,0 +1 @@ +const o=new Map([["animation","none 0s ease 0s 1 normal none running"],["animation-delay","0s"],["animation-direction","normal"],["animation-duration","0s"],["animation-fill-mode","none"],["animation-iteration-count","1"],["animation-name","none"],["animation-play-state","running"],["animation-timing-function","ease"],["backface-visibility","visible"],["background","transparent none repeat 0 0 / auto auto padding-box border-box scroll"],["background-attachment","scroll"],["background-clip","border-box"],["background-color","transparent"],["background-image","none"],["background-origin","padding-box"],["background-position","0 0"],["background-position-x","0"],["background-position-y","0"],["background-repeat","repeat"],["background-size","auto auto"],["border","medium none currentcolor"],["border-style","none"],["border-width","medium"],["border-color","currentcolor"],["border-bottom","0"],["border-bottom-color","currentcolor"],["border-bottom-left-radius","0"],["border-bottom-right-radius","0"],["border-bottom-style","none"],["border-bottom-width","medium"],["border-collapse","separate"],["border-image","none"],["border-left","0"],["border-left-color","currentcolor"],["border-left-style","none"],["border-left-width","medium"],["border-radius","0"],["border-right","0"],["border-right-color","currentcolor"],["border-right-style","none"],["border-right-width","medium"],["border-spacing","0"],["border-top","0"],["border-top-color","currentcolor"],["border-top-left-radius","0"],["border-top-right-radius","0"],["border-top-style","none"],["border-top-width","medium"],["bottom","auto"],["box-shadow","none"],["box-sizing","content-box"],["caption-side","top"],["clear","none"],["clip","auto"],["color","#000"],["columns","auto"],["column-count","auto"],["column-fill","balance"],["column-gap","normal"],["column-rule","medium none currentcolor"],["column-rule-color","currentcolor"],["column-rule-style","none"],["column-rule-width","medium"],["column-span","1"],["column-width","auto"],["content","normal"],["counter-increment","none"],["counter-reset","none"],["cursor","auto"],["direction","ltr"],["display","inline"],["empty-cells","show"],["float","none"],["font-family","serif"],["font-size","medium"],["font-style","normal"],["font-variant","normal"],["font-weight","normal"],["font-stretch","normal"],["line-height","normal"],["height","auto"],["hyphens","none"],["left","auto"],["letter-spacing","normal"],["list-style","disc outside none"],["list-style-image","none"],["list-style-position","outside"],["list-style-type","disc"],["margin","0"],["margin-bottom","0"],["margin-left","0"],["margin-right","0"],["margin-top","0"],["max-height","none"],["max-width","none"],["min-height","0"],["min-width","0"],["opacity","1"],["orphans","2"],["outline","medium none currentcolor"],["outline-color","currentcolor"],["outline-style","none"],["outline-width","medium"],["overflow","visible"],["overflow-x","visible"],["overflow-y","visible"],["padding","0"],["padding-bottom","0"],["padding-left","0"],["padding-right","0"],["padding-top","0"],["page-break-after","auto"],["page-break-before","auto"],["page-break-inside","auto"],["perspective","none"],["perspective-origin","50% 50%"],["position","static"],["quotes",'"“" "”" "‘" "’"'],["right","auto"],["tab-size","8"],["table-layout","auto"],["text-align","left"],["text-align-last","auto"],["text-decoration","none"],["text-decoration-color","currentcolor"],["text-decoration-line","none"],["text-decoration-style","solid"],["text-indent","0"],["text-shadow","none"],["text-transform","none"],["top","auto"],["transform","none"],["transform-origin","50% 50% 0"],["transform-style","flat"],["transition","none 0s ease 0s"],["transition-delay","0s"],["transition-duration","0s"],["transition-property","none"],["transition-timing-function","ease"],["unicode-bidi","normal"],["vertical-align","baseline"],["visibility","visible"],["white-space","normal"],["widows","2"],["width","auto"],["word-spacing","normal"],["z-index","auto"]]),t=["animation","backface-visibility","background","border","border-collapse","border-image","border-radius","border-spacing","bottom","box-shadow","box-sizing","caption-side","clear","clip","color","columns","column-count","column-fill","column-gap","column-rule","column-span","column-width","content","counter-increment","counter-reset","cursor","display","empty-cells","float","font-family","font-size","font-style","font-variant","font-weight","font-stretch","line-height","font","height","hyphens","left","letter-spacing","list-style","margin","max-height","max-width","min-height","min-width","opacity","orphans","outline","overflow","overflow-x","overflow-y","padding","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","position","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-indent","text-shadow","text-transform","top","transform","transform-origin","transform-style","transition","vertical-align","visibility","white-space","widows","width","word-spacing","z-index"];function hasExactFallback(o,t){const e=o.parent;if(!e)return!1;const n=o.prop.toLowerCase();for(let r=e.index(o)-1;r>=0;r--){const o=e.nodes[r];if("decl"===o.type&&o.prop.toLowerCase()===n)return o.value===t}return!1}const e=/^\s?initial\s?$/i,n=/^font$/i,r=/^all$/i,i=["font-family","font-size","font-style","font-variant","font-weight","font-stretch","line-height"],creator=a=>{const l=Object.assign({preserve:!0},a);return{postcssPlugin:"postcss-initial",Declaration(a){if(a.variable)return;if(!e.test(a.value))return;let s;s=n.test(a.prop)?i:r.test(a.prop)?t:[a.prop.toLowerCase()],s.forEach((t=>{const e=o.get(t);e&&(hasExactFallback(a,e)||a.cloneBefore({prop:t,value:e}))})),l.preserve||a.remove()}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-initial/dist/properties.d.ts b/node_modules/@csstools/postcss-initial/dist/properties.d.ts new file mode 100644 index 00000000..5345546e --- /dev/null +++ b/node_modules/@csstools/postcss-initial/dist/properties.d.ts @@ -0,0 +1,2 @@ +export declare const properties: Map; +export declare const allProperties: string[]; diff --git a/node_modules/@csstools/postcss-initial/package.json b/node_modules/@csstools/postcss-initial/package.json new file mode 100644 index 00000000..d5b6e09e --- /dev/null +++ b/node_modules/@csstools/postcss-initial/package.json @@ -0,0 +1,80 @@ +{ + "name": "@csstools/postcss-initial", + "description": "PostCSS plugin to fallback initial keyword.", + "version": "1.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-initial#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-initial" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "postcss-plugin" + ], + "csstools": { + "cssdbId": "all-property", + "exportName": "postcssInitial", + "humanReadableName": "PostCSS Initial", + "specUrl": "https://www.w3.org/TR/css-cascade-4/#initial" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-is-pseudo-class/CHANGELOG.md b/node_modules/@csstools/postcss-is-pseudo-class/CHANGELOG.md new file mode 100644 index 00000000..12453434 --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/CHANGELOG.md @@ -0,0 +1,148 @@ +# Changes to PostCSS Is Pseudo Class + +### 4.0.3 + +_October 2, 2023_ + +- Prevent incorrect transforms when `:is()` is wrapped in `:has()`. + +### 4.0.2 + +_September 18, 2023_ + +- Improve performance + +### 4.0.1 + +_September 2, 2023_ + +- Fix substitution when selectors have mixed types for compound selectors where one of two parts is a `:is()` pseudo class. + +```diff +header:is(.a .b) {} + +/* becomes : */ + +- header.a .b {} ++ .a header.b {} +``` + +### 4.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/selector-specificity`](https://github.com/csstools/postcss-plugins/tree/main/packages/selector-specificity) to [`3.0.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/selector-specificity/CHANGELOG.md#300) (major) + +### 3.2.1 + +_May 19, 2023_ + +- Fix compound selectors with `*`. + +```diff +:is(.a *):is(h1, h2, h3) {} + +/* becomes : */ + +- .a *h1, .a *h2, .a *h3 {} ++ .a h1, .a h2, .a h3 {} +``` + +### 3.2.0 + +_April 10, 2023_ + +- Add support for more complex selector patterns. In particular anything where `:is()` is in the left-most compound selector. + +### 3.1.1 + +_February 8, 2023_ + +- Reduce the amount of duplicate fallback CSS. + +### 3.1.0 + +_February 2, 2023_ + +- Fix is pseudo inside a not pseudo (`:not(:is(h1, h2, h3))`) +- Reduce the output size when all selectors are known to be valid + +### 3.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 3.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 2.0.7 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 2.0.6 + +_June 23, 2022_ + +- Fix selector order with any pseudo element. +- Fix transforming pseudo elements in `:is()`. Following the specification pseudo elements are invalid and we now transform to a known invalid pseudo element. +- Add `onPseudoElement` plugin option. Set `{ onPseudoElement: 'warning' }` to receive warnings when this plugin encounters an unprocessable pseudo element. + +### 2.0.5 + +_June 4, 2022_ + +- Update `@csstools/selector-specificity` (major) + +### 2.0.4 + +_May 17, 2022_ + +- Fix selector order with `:before` and other pseudo elements. + +### 2.0.3 + +_May 11, 2022_ + +- Use `@csstools/selector-specificity` for specificity calculations. + +### 2.0.2 + +_April 4, 2022_ + +- Improved : compound selector order with pseudo elements +- Improved : selector specificity calculation. + +### 2.0.1 + +_March 4, 2022_ + +- Preserve selector order as much as possible. Fixes issues where pseudo elements `::before` were moved. + +### 2.0.0 + +_January 31, 2022_ + +- Remove `skip` flag in `onComplexSelectors` option. + +If a complex selector is encountered that has no known equivalent, it will always be skipped and preserved now. + +The previous behavior was to remove `:is()` even if that broke the selector. + +### 1.0.1 + +_January 17, 2022_ + +- Fix selector order + +### 1.0.0 + +_January 13, 2022_ + +- initial release diff --git a/node_modules/@csstools/postcss-is-pseudo-class/LICENSE.md b/node_modules/@csstools/postcss-is-pseudo-class/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-is-pseudo-class/README.md b/node_modules/@csstools/postcss-is-pseudo-class/README.md new file mode 100644 index 00000000..407fab67 --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/README.md @@ -0,0 +1,251 @@ +# PostCSS Is Pseudo [PostCSS][postcss] + +[![NPM Version][npm-img]][npm-url] +[![CSS Standard Status][css-img]][css-url] +[Build Status][cli-url] +[Discord][discord] + +[PostCSS Is Pseudo Class] lets you use the `:is` pseudo class function, following the +[CSS Selector] specification. + +```pcss +:is(input, button):is(:hover, :focus) { + order: 1; +} +``` + +Becomes : + +```pcss +input:hover { + order: 1; +} +input:focus { + order: 1; +} +button:hover { + order: 1; +} +button:focus { + order: 1; +} +``` + +## Usage + +Add [PostCSS Is Pseudo Class] to your project: + +```bash +npm install @csstools/postcss-is-pseudo-class --save-dev +``` + +Use [PostCSS Is Pseudo Class] as a [PostCSS] plugin: + +```js +import postcss from 'postcss'; +import postcssIsPseudoClass from '@csstools/postcss-is-pseudo-class'; + +postcss([ + postcssIsPseudoClass(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Is Pseudo Class] runs in all Node environments, with special instructions for: + +| [Node](INSTALL.md#node) | [Webpack](INSTALL.md#webpack) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | +| --- | --- | --- | --- | + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcss([ + postcssIsPseudoClass({ preserve: true }) +]).process(YOUR_CSS /*, processOptions */); +``` + +```pcss +:is(input, button):is(:hover, :focus) { + order: 1; +} +``` + +Becomes : + +```pcss +input:hover { + order: 1; +} +input:focus { + order: 1; +} +button:hover { + order: 1; +} +button:focus { + order: 1; +} +:is(input, button):is(:hover, :focus) { + order: 1; +} +``` + +### specificityMatchingName + +The `specificityMatchingName` option allows you to change the selector used to adjust specificity. +The default value is `does-not-exist`. +If this is an actual class, id or tag name in your code, you will need to set a different option here. + +See how `:not` is used to modify [specificity](#specificity). + +```js +postcss([ + postcssIsPseudoClass({ specificityMatchingName: 'something-random' }) +]).process(YOUR_CSS /*, processOptions */); +``` + +```pcss +:is(.button, button):hover { + order: 7; +} +``` + +Becomes : + +```pcss +.button:hover { + order: 7; +} + +button:not(.something-random):hover { + order: 7; +} +``` + +### onComplexSelector + +Warn on complex selectors in `:is` pseudo class functions. + +```js +postcss([ + postcssIsPseudoClass({ onComplexSelector: 'warning' }) +]).process(YOUR_CSS /*, processOptions */); +``` + +### onPseudoElement + +Warn when pseudo elements are used in `:is` pseudo class functions. + +⚠️ Pseudo elements are always invalid and will be transformed to `::-csstools-invalid-`. + +```js +postcss([ + postcssIsPseudoClass({ onPseudoElement: 'warning' }) +]).process(YOUR_CSS /*, processOptions */); +``` + +```css +:is(::after):hover { + order: 1.0; +} + +/* becomes */ + +::-csstools-invalid-after:hover { + order: 1.0; +} +``` + +## ⚠️ Known shortcomings + +### Specificity + +`:is` takes the specificity of the most specific list item. +We can increase specificity with `:not` selectors, but we can't decrease it. + +Converted selectors are ensured to have the same specificity as `:is` for the most important bit. +Less important bits can have higher specificity that `:is`. + +Before : + +[specificity: 0, 2, 0](https://polypane.app/css-specificity-calculator/#selector=%3Ais(%3Ahover%2C%20%3Afocus)%3Ais(.button%2C%20button)) + +```pcss +:is(:hover, :focus):is(.button, button) { + order: 7; +} +``` + +After : + +```pcss +/* specificity: [0, 2, 0] */ +.button:hover { + order: 7; +} + +/* specificity: [0, 2, 1] */ +/* last bit is higher than it should be, but middle bit matches */ +button:not(.does-not-exist):hover { + order: 7; +} + +/* specificity: [0, 2, 0] */ +.button:focus { + order: 7; +} + +/* specificity: [0, 2, 1] */ +/* last bit is higher than it should be, but middle bit matches */ +button:not(.does-not-exist):focus { + order: 7; +} +``` + +### Complex selectors + +Before : + + +```pcss +:is(.alpha > .beta) ~ :is(:focus > .beta) { + order: 2; +} +``` + +After : + +```pcss +.alpha > .beta ~ :focus > .beta { + order: 2; +} +``` + +_this is a different selector than expected as `.beta ~ :focus` matches `.beta` followed by `:focus`._
+_avoid these cases._
+_writing the selector without `:is()` is advised here_ + +```pcss +/* without is */ +.alpha:focus > .beta ~ .beta { + order: 2; +} +``` + +If you have a specific pattern you can open an issue to discuss it. +We can detect and transform some cases but can't generalize them into a single solution that tackles all of them. + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-img]: https://cssdb.org/images/badges/is-pseudo-class.svg +[css-url]: https://cssdb.org/#is-pseudo-class +[discord]: https://discord.gg/bUadyRwkJS +[npm-img]: https://img.shields.io/npm/v/@csstools/postcss-is-pseudo-class.svg +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-is-pseudo-class + +[CSS Selector]: https://www.w3.org/TR/selectors-4/#matches +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Is Pseudo Class]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-is-pseudo-class diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/index.cjs b/node_modules/@csstools/postcss-is-pseudo-class/dist/index.cjs new file mode 100644 index 00000000..939299bd --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-selector-parser"),o=require("@csstools/selector-specificity");function alwaysValidSelector(o){const s=e().astSync(o);let t=!0;return s.walk((e=>{var o,s;if("class"!==e.type&&"comment"!==e.type&&"id"!==e.type&&"root"!==e.type&&"selector"!==e.type&&"string"!==e.type&&"tag"!==e.type&&"universal"!==e.type&&("attribute"!==e.type||e.insensitive)&&("combinator"!==e.type||"+"!==e.value&&">"!==e.value&&"~"!==e.value&&" "!==e.value)&&("pseudo"!==e.type||null!=(o=e.nodes)&&o.length||":hover"!==e.value.toLowerCase()&&":focus"!==e.value.toLowerCase())){if("pseudo"===e.type&&1===(null==(s=e.nodes)?void 0:s.length)&&":not"===e.value.toLowerCase()){let o=!0;if(e.nodes[0].walkCombinators((()=>{o=!1})),o)return}return t=!1,!1}})),t}function sortCompoundSelectorsInsideComplexSelector(o){if(!o||!o.nodes||1===o.nodes.length)return;const s=[];let t=[];for(let n=0;n"selector"===e.type&&"selector"===o.type&&e.nodes.length&&o.nodes.length?selectorTypeOrder(e.nodes[0],e.nodes[0].type)-selectorTypeOrder(o.nodes[0],o.nodes[0].type):"selector"===e.type&&e.nodes.length?selectorTypeOrder(e.nodes[0],e.nodes[0].type)-selectorTypeOrder(o,o.type):"selector"===o.type&&o.nodes.length?selectorTypeOrder(e,e.type)-selectorTypeOrder(o.nodes[0],o.nodes[0].type):selectorTypeOrder(e,e.type)-selectorTypeOrder(o,o.type)));const t=new Set(o.map((e=>e.type))),r=t.has("universal")&&(t.has("tag")||t.has("attribute")||t.has("class")||t.has("id")||t.has("pseudo"));for(let e=0;e=0;s--){const t=n[s-1];if(n[s].remove(),t&&"tag"===t.type&&"tag"===n[s].type){const t=e.pseudo({value:":is",nodes:[e.selector({value:"",nodes:[n[s]]})]});o.prepend(t)}else o.prepend(n[s])}}function selectorTypeOrder(o,t){return e.isPseudoElement(o)?s.pseudoElement:s[t]}const s={universal:0,tag:1,pseudoElement:2,id:3,class:4,attribute:5,pseudo:6,selector:7,string:8,root:9,comment:10};function childAdjacentChild(e){return!(!e||!e.nodes)&&("selector"===e.type&&(3===e.nodes.length&&(!(!e.nodes[0]||"pseudo"!==e.nodes[0].type||":-csstools-matches"!==e.nodes[0].value)&&(!(!e.nodes[1]||"combinator"!==e.nodes[1].type||"+"!==e.nodes[1].value&&"~"!==e.nodes[1].value)&&(!(!e.nodes[2]||"pseudo"!==e.nodes[2].type||":-csstools-matches"!==e.nodes[2].value)&&(!(!e.nodes[0].nodes||1!==e.nodes[0].nodes.length)&&("selector"===e.nodes[0].nodes[0].type&&(!(!e.nodes[0].nodes[0].nodes||3!==e.nodes[0].nodes[0].nodes.length)&&(!(!e.nodes[0].nodes[0].nodes||"combinator"!==e.nodes[0].nodes[0].nodes[1].type||">"!==e.nodes[0].nodes[0].nodes[1].value)&&(!(!e.nodes[2].nodes||1!==e.nodes[2].nodes.length)&&("selector"===e.nodes[2].nodes[0].type&&(!(!e.nodes[2].nodes[0].nodes||3!==e.nodes[2].nodes[0].nodes.length)&&(!(!e.nodes[2].nodes[0].nodes||"combinator"!==e.nodes[2].nodes[0].nodes[1].type||">"!==e.nodes[2].nodes[0].nodes[1].value)&&(e.nodes[0].nodes[0].insertAfter(e.nodes[0].nodes[0].nodes[0],e.nodes[2].nodes[0].nodes[0].clone()),e.nodes[2].nodes[0].nodes[1].remove(),e.nodes[2].nodes[0].nodes[0].remove(),e.nodes[0].replaceWith(e.nodes[0].nodes[0]),e.nodes[2].replaceWith(e.nodes[2].nodes[0]),!0))))))))))))))}function isInCompoundWithOneOtherElement(o){if(!o||!o.nodes)return!1;if("selector"!==o.type)return!1;if(2!==o.nodes.length)return!1;let s,t;return o.nodes[0]&&"pseudo"===o.nodes[0].type&&":-csstools-matches"===o.nodes[0].value?(s=0,t=1):o.nodes[1]&&"pseudo"===o.nodes[1].type&&":-csstools-matches"===o.nodes[1].value&&(s=1,t=0),!!s&&(!!o.nodes[t]&&(("selector"!==o.nodes[t].type||!o.nodes[t].some((o=>"combinator"===o.type||e.isPseudoElement(o))))&&("combinator"!==o.nodes[t].type&&(o.nodes[s].nodes[0].append(o.nodes[t].clone()),o.nodes[s].replaceWith(...o.nodes[s].nodes[0].nodes),o.nodes[t].remove(),!0))))}function isPseudoInFirstCompound(e){if(!e||!e.nodes)return!1;if("selector"!==e.type)return!1;let o=-1;for(let s=0;s{t.nodes[0].append(e.clone())})),n.forEach((e=>{t.nodes[0].append(e.clone())})),t.replaceWith(...t.nodes),s.forEach((e=>{e.remove()})),n.forEach((e=>{e.remove()})),!0}function complexSelectors(o,s,t,n){return o.flatMap((o=>{if(-1===o.indexOf(":-csstools-matches")&&-1===o.toLowerCase().indexOf(":is"))return o;const r=e().astSync(o);return r.walkPseudos((o=>{if(":is"===o.value.toLowerCase()&&o.nodes&&o.nodes.length&&"selector"===o.nodes[0].type&&0===o.nodes[0].nodes.length)return o.value=":not",void o.nodes[0].append(e.universal());if(":-csstools-matches"===o.value)if(!o.nodes||o.nodes.length){if(o.walkPseudos((o=>{if(e.isPseudoElement(o)){let e=o.value;if(e.startsWith("::-csstools-invalid-"))return;for(;e.startsWith(":");)e=e.slice(1);o.value=`::-csstools-invalid-${e}`,n()}})),1===o.nodes.length&&"selector"===o.nodes[0].type){if(1===o.nodes[0].nodes.length)return void o.replaceWith(o.nodes[0].nodes[0]);if(!o.nodes[0].some((e=>"combinator"===e.type)))return void o.replaceWith(...o.nodes[0].nodes)}1!==r.nodes.length||"selector"!==r.nodes[0].type||1!==r.nodes[0].nodes.length||r.nodes[0].nodes[0]!==o?childAdjacentChild(o.parent)||isInCompoundWithOneOtherElement(o.parent)||isPseudoInFirstCompound(o.parent)||("warning"===s.onComplexSelector&&t(),o.value=":is"):o.replaceWith(...o.nodes[0].nodes)}else o.remove()})),r.walk((e=>{"selector"===e.type&&"nodes"in e&&1===e.nodes.length&&"selector"===e.nodes[0].type&&e.replaceWith(e.nodes[0])})),r.walk((e=>{"nodes"in e&&sortCompoundSelectorsInsideComplexSelector(e)})),r.toString()})).filter((e=>!!e))}function splitSelectors(s,t,n=0){const r=":not(#"+t.specificityMatchingName+")",l=":not(."+t.specificityMatchingName+")",d=":not("+t.specificityMatchingName+")";return s.flatMap((s=>{if(-1===s.toLowerCase().indexOf(":is"))return s;let i=!1;const c=[];if(e().astSync(s).walkPseudos((e=>{var s,t,n,a;if(":is"!==e.value.toLowerCase()||!e.nodes||!e.nodes.length)return;if("selector"===e.nodes[0].type&&0===e.nodes[0].nodes.length)return;if("pseudo"===(null==(s=e.parent)||null==(s=s.parent)?void 0:s.type)&&":not"===(null==(t=e.parent)||null==(t=t.parent)||null==(t=t.value)?void 0:t.toLowerCase()))return void c.push([{start:e.parent.parent.sourceIndex,end:e.parent.parent.sourceIndex+e.parent.parent.toString().length,option:`:not(${e.nodes.toString()})`}]);if("pseudo"===(null==(n=e.parent)||null==(n=n.parent)?void 0:n.type)&&":has"===(null==(a=e.parent)||null==(a=a.parent)||null==(a=a.value)?void 0:a.toLowerCase()))return void(e.value=":-csstools-matches");let p=e.parent;for(;p;){if(p.value&&":is"===p.value.toLowerCase()&&"pseudo"===p.type)return void(i=!0);p=p.parent}const u=o.selectorSpecificity(e),h=e.sourceIndex,f=h+e.toString().length,y=[];e.nodes.forEach((e=>{const s={start:h,end:f,option:""},t=o.selectorSpecificity(e);let n=e.toString().trim();const i=Math.max(0,u.a-t.a),c=Math.max(0,u.b-t.b),a=Math.max(0,u.c-t.c);for(let e=0;e{let o="";for(let n=0;n!!e))}function cartesianProduct(...e){const o=[],s=e.length-1;return function helper(t,n){for(let r=0,l=e[n].length;r{const o={specificityMatchingName:"does-not-exist",...e||{}};return{postcssPlugin:"postcss-is-pseudo-class",prepare(){const e=new WeakSet;return{Rule(s,{result:n}){if(!s.selector)return;if(!t.test(s.selector))return;if(e.has(s))return;let r=!1;const warnOnComplexSelector=()=>{"warning"===o.onComplexSelector&&(r||(r=!0,s.warn(n,`Complex selectors in '${s.selector}' can not be transformed to an equivalent selector without ':is()'.`)))};let l=!1;const warnOnPseudoElements=()=>{"warning"===o.onPseudoElement&&(l||(l=!0,s.warn(n,`Pseudo elements are not allowed in ':is()', unable to transform '${s.selector}'`)))};try{let t=!1;const n=[],r=complexSelectors(splitSelectors(s.selectors,{specificityMatchingName:o.specificityMatchingName}),{onComplexSelector:o.onComplexSelector},warnOnComplexSelector,warnOnPseudoElements);if(Array.from(new Set(r)).forEach((o=>{if(s.selectors.indexOf(o)>-1)n.push(o);else{if(alwaysValidSelector(o))return n.push(o),void(t=!0);e.add(s),s.cloneBefore({selector:o}),t=!0}})),n.length&&t&&(e.add(s),s.cloneBefore({selectors:n})),!o.preserve){if(!t)return;s.remove()}}catch(e){if(e.message.indexOf("call stack size exceeded")>-1)throw e;s.warn(n,`Failed to parse selector "${s.selector}"`)}}}}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/index.d.ts b/node_modules/@csstools/postcss-is-pseudo-class/dist/index.d.ts new file mode 100644 index 00000000..5b65f016 --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/index.d.ts @@ -0,0 +1,23 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-is-pseudo-class plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; + /** + * Warn on complex selectors in `:is` pseudo class functions. + * default: _not set_ + */ + onComplexSelector?: 'warning'; + /** + * Warn when pseudo elements are used in `:is` pseudo class functions. + * default: _not set_ + */ + onPseudoElement?: 'warning'; + /** + * Change the selector used to adjust specificity. + * default: `does-not-exist`. + */ + specificityMatchingName?: string; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/index.mjs b/node_modules/@csstools/postcss-is-pseudo-class/dist/index.mjs new file mode 100644 index 00000000..98bdd1ac --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-selector-parser";import{selectorSpecificity as o}from"@csstools/selector-specificity";function alwaysValidSelector(o){const s=e().astSync(o);let t=!0;return s.walk((e=>{var o,s;if("class"!==e.type&&"comment"!==e.type&&"id"!==e.type&&"root"!==e.type&&"selector"!==e.type&&"string"!==e.type&&"tag"!==e.type&&"universal"!==e.type&&("attribute"!==e.type||e.insensitive)&&("combinator"!==e.type||"+"!==e.value&&">"!==e.value&&"~"!==e.value&&" "!==e.value)&&("pseudo"!==e.type||null!=(o=e.nodes)&&o.length||":hover"!==e.value.toLowerCase()&&":focus"!==e.value.toLowerCase())){if("pseudo"===e.type&&1===(null==(s=e.nodes)?void 0:s.length)&&":not"===e.value.toLowerCase()){let o=!0;if(e.nodes[0].walkCombinators((()=>{o=!1})),o)return}return t=!1,!1}})),t}function sortCompoundSelectorsInsideComplexSelector(o){if(!o||!o.nodes||1===o.nodes.length)return;const s=[];let t=[];for(let n=0;n"selector"===e.type&&"selector"===o.type&&e.nodes.length&&o.nodes.length?selectorTypeOrder(e.nodes[0],e.nodes[0].type)-selectorTypeOrder(o.nodes[0],o.nodes[0].type):"selector"===e.type&&e.nodes.length?selectorTypeOrder(e.nodes[0],e.nodes[0].type)-selectorTypeOrder(o,o.type):"selector"===o.type&&o.nodes.length?selectorTypeOrder(e,e.type)-selectorTypeOrder(o.nodes[0],o.nodes[0].type):selectorTypeOrder(e,e.type)-selectorTypeOrder(o,o.type)));const t=new Set(o.map((e=>e.type))),r=t.has("universal")&&(t.has("tag")||t.has("attribute")||t.has("class")||t.has("id")||t.has("pseudo"));for(let e=0;e=0;s--){const t=n[s-1];if(n[s].remove(),t&&"tag"===t.type&&"tag"===n[s].type){const t=e.pseudo({value:":is",nodes:[e.selector({value:"",nodes:[n[s]]})]});o.prepend(t)}else o.prepend(n[s])}}function selectorTypeOrder(o,t){return e.isPseudoElement(o)?s.pseudoElement:s[t]}const s={universal:0,tag:1,pseudoElement:2,id:3,class:4,attribute:5,pseudo:6,selector:7,string:8,root:9,comment:10};function childAdjacentChild(e){return!(!e||!e.nodes)&&("selector"===e.type&&(3===e.nodes.length&&(!(!e.nodes[0]||"pseudo"!==e.nodes[0].type||":-csstools-matches"!==e.nodes[0].value)&&(!(!e.nodes[1]||"combinator"!==e.nodes[1].type||"+"!==e.nodes[1].value&&"~"!==e.nodes[1].value)&&(!(!e.nodes[2]||"pseudo"!==e.nodes[2].type||":-csstools-matches"!==e.nodes[2].value)&&(!(!e.nodes[0].nodes||1!==e.nodes[0].nodes.length)&&("selector"===e.nodes[0].nodes[0].type&&(!(!e.nodes[0].nodes[0].nodes||3!==e.nodes[0].nodes[0].nodes.length)&&(!(!e.nodes[0].nodes[0].nodes||"combinator"!==e.nodes[0].nodes[0].nodes[1].type||">"!==e.nodes[0].nodes[0].nodes[1].value)&&(!(!e.nodes[2].nodes||1!==e.nodes[2].nodes.length)&&("selector"===e.nodes[2].nodes[0].type&&(!(!e.nodes[2].nodes[0].nodes||3!==e.nodes[2].nodes[0].nodes.length)&&(!(!e.nodes[2].nodes[0].nodes||"combinator"!==e.nodes[2].nodes[0].nodes[1].type||">"!==e.nodes[2].nodes[0].nodes[1].value)&&(e.nodes[0].nodes[0].insertAfter(e.nodes[0].nodes[0].nodes[0],e.nodes[2].nodes[0].nodes[0].clone()),e.nodes[2].nodes[0].nodes[1].remove(),e.nodes[2].nodes[0].nodes[0].remove(),e.nodes[0].replaceWith(e.nodes[0].nodes[0]),e.nodes[2].replaceWith(e.nodes[2].nodes[0]),!0))))))))))))))}function isInCompoundWithOneOtherElement(o){if(!o||!o.nodes)return!1;if("selector"!==o.type)return!1;if(2!==o.nodes.length)return!1;let s,t;return o.nodes[0]&&"pseudo"===o.nodes[0].type&&":-csstools-matches"===o.nodes[0].value?(s=0,t=1):o.nodes[1]&&"pseudo"===o.nodes[1].type&&":-csstools-matches"===o.nodes[1].value&&(s=1,t=0),!!s&&(!!o.nodes[t]&&(("selector"!==o.nodes[t].type||!o.nodes[t].some((o=>"combinator"===o.type||e.isPseudoElement(o))))&&("combinator"!==o.nodes[t].type&&(o.nodes[s].nodes[0].append(o.nodes[t].clone()),o.nodes[s].replaceWith(...o.nodes[s].nodes[0].nodes),o.nodes[t].remove(),!0))))}function isPseudoInFirstCompound(e){if(!e||!e.nodes)return!1;if("selector"!==e.type)return!1;let o=-1;for(let s=0;s{t.nodes[0].append(e.clone())})),n.forEach((e=>{t.nodes[0].append(e.clone())})),t.replaceWith(...t.nodes),s.forEach((e=>{e.remove()})),n.forEach((e=>{e.remove()})),!0}function complexSelectors(o,s,t,n){return o.flatMap((o=>{if(-1===o.indexOf(":-csstools-matches")&&-1===o.toLowerCase().indexOf(":is"))return o;const r=e().astSync(o);return r.walkPseudos((o=>{if(":is"===o.value.toLowerCase()&&o.nodes&&o.nodes.length&&"selector"===o.nodes[0].type&&0===o.nodes[0].nodes.length)return o.value=":not",void o.nodes[0].append(e.universal());if(":-csstools-matches"===o.value)if(!o.nodes||o.nodes.length){if(o.walkPseudos((o=>{if(e.isPseudoElement(o)){let e=o.value;if(e.startsWith("::-csstools-invalid-"))return;for(;e.startsWith(":");)e=e.slice(1);o.value=`::-csstools-invalid-${e}`,n()}})),1===o.nodes.length&&"selector"===o.nodes[0].type){if(1===o.nodes[0].nodes.length)return void o.replaceWith(o.nodes[0].nodes[0]);if(!o.nodes[0].some((e=>"combinator"===e.type)))return void o.replaceWith(...o.nodes[0].nodes)}1!==r.nodes.length||"selector"!==r.nodes[0].type||1!==r.nodes[0].nodes.length||r.nodes[0].nodes[0]!==o?childAdjacentChild(o.parent)||isInCompoundWithOneOtherElement(o.parent)||isPseudoInFirstCompound(o.parent)||("warning"===s.onComplexSelector&&t(),o.value=":is"):o.replaceWith(...o.nodes[0].nodes)}else o.remove()})),r.walk((e=>{"selector"===e.type&&"nodes"in e&&1===e.nodes.length&&"selector"===e.nodes[0].type&&e.replaceWith(e.nodes[0])})),r.walk((e=>{"nodes"in e&&sortCompoundSelectorsInsideComplexSelector(e)})),r.toString()})).filter((e=>!!e))}function splitSelectors(s,t,n=0){const r=":not(#"+t.specificityMatchingName+")",l=":not(."+t.specificityMatchingName+")",d=":not("+t.specificityMatchingName+")";return s.flatMap((s=>{if(-1===s.toLowerCase().indexOf(":is"))return s;let a=!1;const i=[];if(e().astSync(s).walkPseudos((e=>{var s,t,n,c;if(":is"!==e.value.toLowerCase()||!e.nodes||!e.nodes.length)return;if("selector"===e.nodes[0].type&&0===e.nodes[0].nodes.length)return;if("pseudo"===(null==(s=e.parent)||null==(s=s.parent)?void 0:s.type)&&":not"===(null==(t=e.parent)||null==(t=t.parent)||null==(t=t.value)?void 0:t.toLowerCase()))return void i.push([{start:e.parent.parent.sourceIndex,end:e.parent.parent.sourceIndex+e.parent.parent.toString().length,option:`:not(${e.nodes.toString()})`}]);if("pseudo"===(null==(n=e.parent)||null==(n=n.parent)?void 0:n.type)&&":has"===(null==(c=e.parent)||null==(c=c.parent)||null==(c=c.value)?void 0:c.toLowerCase()))return void(e.value=":-csstools-matches");let p=e.parent;for(;p;){if(p.value&&":is"===p.value.toLowerCase()&&"pseudo"===p.type)return void(a=!0);p=p.parent}const u=o(e),h=e.sourceIndex,f=h+e.toString().length,y=[];e.nodes.forEach((e=>{const s={start:h,end:f,option:""},t=o(e);let n=e.toString().trim();const a=Math.max(0,u.a-t.a),i=Math.max(0,u.b-t.b),c=Math.max(0,u.c-t.c);for(let e=0;e{let o="";for(let n=0;n!!e))}function cartesianProduct(...e){const o=[],s=e.length-1;return function helper(t,n){for(let r=0,l=e[n].length;r{const o={specificityMatchingName:"does-not-exist",...e||{}};return{postcssPlugin:"postcss-is-pseudo-class",prepare(){const e=new WeakSet;return{Rule(s,{result:n}){if(!s.selector)return;if(!t.test(s.selector))return;if(e.has(s))return;let r=!1;const warnOnComplexSelector=()=>{"warning"===o.onComplexSelector&&(r||(r=!0,s.warn(n,`Complex selectors in '${s.selector}' can not be transformed to an equivalent selector without ':is()'.`)))};let l=!1;const warnOnPseudoElements=()=>{"warning"===o.onPseudoElement&&(l||(l=!0,s.warn(n,`Pseudo elements are not allowed in ':is()', unable to transform '${s.selector}'`)))};try{let t=!1;const n=[],r=complexSelectors(splitSelectors(s.selectors,{specificityMatchingName:o.specificityMatchingName}),{onComplexSelector:o.onComplexSelector},warnOnComplexSelector,warnOnPseudoElements);if(Array.from(new Set(r)).forEach((o=>{if(s.selectors.indexOf(o)>-1)n.push(o);else{if(alwaysValidSelector(o))return n.push(o),void(t=!0);e.add(s),s.cloneBefore({selector:o}),t=!0}})),n.length&&t&&(e.add(s),s.cloneBefore({selectors:n})),!o.preserve){if(!t)return;s.remove()}}catch(e){if(e.message.indexOf("call stack size exceeded")>-1)throw e;s.warn(n,`Failed to parse selector "${s.selector}"`)}}}}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/always-valid.d.ts b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/always-valid.d.ts new file mode 100644 index 00000000..a3bb60b3 --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/always-valid.d.ts @@ -0,0 +1 @@ +export default function alwaysValidSelector(selector: string): boolean; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex.d.ts b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex.d.ts new file mode 100644 index 00000000..904515e7 --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex.d.ts @@ -0,0 +1,3 @@ +export default function complexSelectors(selectors: Array, pluginOptions: { + onComplexSelector?: 'warning'; +}, warnOnComplexSelector: () => void, warnOnPseudoElements: () => void): string[]; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/child-adjacent-child.d.ts b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/child-adjacent-child.d.ts new file mode 100644 index 00000000..644eaaec --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/child-adjacent-child.d.ts @@ -0,0 +1 @@ +export declare function childAdjacentChild(selector: any): boolean; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/is-in-compound.d.ts b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/is-in-compound.d.ts new file mode 100644 index 00000000..3a91eef6 --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/is-in-compound.d.ts @@ -0,0 +1 @@ +export declare function isInCompoundWithOneOtherElement(selector: any): boolean; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/is-pseudo-in-first-compound.d.ts b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/is-pseudo-in-first-compound.d.ts new file mode 100644 index 00000000..06ba1481 --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/complex/is-pseudo-in-first-compound.d.ts @@ -0,0 +1 @@ +export declare function isPseudoInFirstCompound(selector: any): boolean; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/compound-selector-order.d.ts b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/compound-selector-order.d.ts new file mode 100644 index 00000000..3fb1e39f --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/compound-selector-order.d.ts @@ -0,0 +1 @@ +export declare function sortCompoundSelectorsInsideComplexSelector(node: any): void; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/split-selectors.d.ts b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/split-selectors.d.ts new file mode 100644 index 00000000..7bb70f21 --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/dist/split-selectors/split-selectors.d.ts @@ -0,0 +1,3 @@ +export default function splitSelectors(selectors: Array, pluginOptions: { + specificityMatchingName: string; +}, recursionDepth?: number): Array; diff --git a/node_modules/@csstools/postcss-is-pseudo-class/package.json b/node_modules/@csstools/postcss-is-pseudo-class/package.json new file mode 100644 index 00000000..05e2749c --- /dev/null +++ b/node_modules/@csstools/postcss-is-pseudo-class/package.json @@ -0,0 +1,81 @@ +{ + "name": "@csstools/postcss-is-pseudo-class", + "description": "A pseudo-class for matching elements in a selector list", + "version": "4.0.3", + "author": "Jonathan Neal ", + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/selector-specificity": "^3.0.0", + "postcss-selector-parser": "^6.0.13" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*", + "puppeteer": "^21.3.6" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:browser": "node ./test/_browser.mjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-is-pseudo-class#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-is-pseudo-class" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "css", + "is", + "matches", + "polyfill", + "postcss", + "postcss-plugin", + "pseudo", + "selector" + ], + "csstools": { + "exportName": "postcssIsPseudoClass", + "humanReadableName": "PostCSS Is Pseudo" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/CHANGELOG.md b/node_modules/@csstools/postcss-logical-float-and-clear/CHANGELOG.md new file mode 100644 index 00000000..b11158f8 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/CHANGELOG.md @@ -0,0 +1,19 @@ +# Changes to PostCSS Logical Float And Clear + +### 2.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 1.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 1.0.0 + +_January 19, 2023_ + +- Initial version diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/LICENSE.md b/node_modules/@csstools/postcss-logical-float-and-clear/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/README.md b/node_modules/@csstools/postcss-logical-float-and-clear/README.md new file mode 100644 index 00000000..268c3085 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/README.md @@ -0,0 +1,95 @@ +# PostCSS Logical Float And Clear [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +[PostCSS Logical Float And Clear] lets you use logical, rather than physical, direction and dimension mappings in CSS, following the [CSS Logical Properties and Values] specification. + +```pcss +.element { + clear: inline-start; + float: inline-end; +} + +/* becomes */ + +.element { + clear: left; + float: right; +} +``` + +## Usage + +Add [PostCSS Logical Float And Clear] to your project: + +```bash +npm install postcss @csstools/postcss-logical-float-and-clear --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssLogicalFloatAndClear = require('@csstools/postcss-logical-float-and-clear'); + +postcss([ + postcssLogicalFloatAndClear(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Logical Float And Clear] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### inlineDirection + +The `inlineDirection` option allows you to specify the direction of the inline axe. The default value is `left-to-right` respectively which would match any latin language. + +You might want to tweak these value if you are using a different writing system, such as Arabic, Hebrew or Chinese for example. + +```js +postcssLogicalFloatAndClear({ + inlineDirection: 'right-to-left' +}) +``` + +```pcss +.element { + clear: inline-start; + float: inline-end; +} + +/* becomes */ + +.element { + clear: right; + float: left; +} +``` + +Each direction must be one of the following: + +- `top-to-bottom` +- `bottom-to-top` +- `left-to-right` +- `right-to-left` + +Please do note that transformations won't run if `inlineDirection` becomes vertical. + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#float-clear-logical-values +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-logical-float-and-clear + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Logical Float And Clear]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-float-and-clear +[CSS Logical Properties and Values]: https://www.w3.org/TR/css-logical-1/#float-clear diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/dist/index.cjs b/node_modules/@csstools/postcss-logical-float-and-clear/dist/index.cjs new file mode 100644 index 00000000..c073727d --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/dist/index.cjs @@ -0,0 +1 @@ +"use strict";const t="inline-start",o="inline-end";var e,i;function directionFlowToAxes(t){switch(t){case e.TopToBottom:return[i.Top,i.Bottom];case e.BottomToTop:return[i.Bottom,i.Top];case e.RightToLeft:return[i.Right,i.Left];case e.LeftToRight:return[i.Left,i.Right]}}function cloneDeclaration(t,o,e){t.parent&&t.parent.some((t=>"decl"==t.type&&t.prop===e&&t.value===o))||t.cloneBefore({value:o,prop:e})}!function(t){t.TopToBottom="top-to-bottom",t.BottomToTop="bottom-to-top",t.RightToLeft="right-to-left",t.LeftToRight="left-to-right"}(e||(e={})),function(t){t.Top="top",t.Right="right",t.Bottom="bottom",t.Left="left"}(i||(i={}));const creator=i=>{const n=Object.assign({inlineDirection:e.LeftToRight},i),c=Object.values(e);if(!c.includes(n.inlineDirection))throw new Error(`[postcss-logical-float-and-clear] "inlineDirection" must be one of ${c.join(", ")}`);if(![e.LeftToRight,e.RightToLeft].includes(n.inlineDirection))return{postcssPlugin:"postcss-logical-float-and-clear",Once(){}};const[r,l]=directionFlowToAxes(n.inlineDirection),makeTransform=e=>{const i=e.value.toLowerCase();if(![t,o].includes(i))return;cloneDeclaration(e,i===t?r:l,e.prop),e.remove()};return{postcssPlugin:"postcss-logical-float-and-clear",Declaration:{float:makeTransform,clear:makeTransform}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/dist/index.d.ts b/node_modules/@csstools/postcss-logical-float-and-clear/dist/index.d.ts new file mode 100644 index 00000000..8faa333f --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/dist/index.d.ts @@ -0,0 +1,9 @@ +import type { PluginCreator } from 'postcss'; +import { DirectionFlow } from './lib/types'; +/** postcss-logical-float-and-clear plugin options */ +export type pluginOptions = { + /** Sets the direction for inline. default: left-to-right */ + inlineDirection?: DirectionFlow; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/dist/index.mjs b/node_modules/@csstools/postcss-logical-float-and-clear/dist/index.mjs new file mode 100644 index 00000000..f05b6578 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/dist/index.mjs @@ -0,0 +1 @@ +const t="inline-start",o="inline-end";var e,n;function directionFlowToAxes(t){switch(t){case e.TopToBottom:return[n.Top,n.Bottom];case e.BottomToTop:return[n.Bottom,n.Top];case e.RightToLeft:return[n.Right,n.Left];case e.LeftToRight:return[n.Left,n.Right]}}function cloneDeclaration(t,o,e){t.parent&&t.parent.some((t=>"decl"==t.type&&t.prop===e&&t.value===o))||t.cloneBefore({value:o,prop:e})}!function(t){t.TopToBottom="top-to-bottom",t.BottomToTop="bottom-to-top",t.RightToLeft="right-to-left",t.LeftToRight="left-to-right"}(e||(e={})),function(t){t.Top="top",t.Right="right",t.Bottom="bottom",t.Left="left"}(n||(n={}));const creator=n=>{const i=Object.assign({inlineDirection:e.LeftToRight},n),c=Object.values(e);if(!c.includes(i.inlineDirection))throw new Error(`[postcss-logical-float-and-clear] "inlineDirection" must be one of ${c.join(", ")}`);if(![e.LeftToRight,e.RightToLeft].includes(i.inlineDirection))return{postcssPlugin:"postcss-logical-float-and-clear",Once(){}};const[r,l]=directionFlowToAxes(i.inlineDirection),makeTransform=e=>{const n=e.value.toLowerCase();if(![t,o].includes(n))return;cloneDeclaration(e,n===t?r:l,e.prop),e.remove()};return{postcssPlugin:"postcss-logical-float-and-clear",Declaration:{float:makeTransform,clear:makeTransform}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/dist/lib/clone-declaration.d.ts b/node_modules/@csstools/postcss-logical-float-and-clear/dist/lib/clone-declaration.d.ts new file mode 100644 index 00000000..1503bf6f --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/dist/lib/clone-declaration.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function cloneDeclaration(declaration: Declaration, value: string, prop: string): void; diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/dist/lib/types.d.ts b/node_modules/@csstools/postcss-logical-float-and-clear/dist/lib/types.d.ts new file mode 100644 index 00000000..2b3c47f9 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/dist/lib/types.d.ts @@ -0,0 +1,18 @@ +export declare const DirectionValues: { + BlockStart: string; + BlockEnd: string; + InlineStart: string; + InlineEnd: string; +}; +export declare enum DirectionFlow { + TopToBottom = "top-to-bottom", + BottomToTop = "bottom-to-top", + RightToLeft = "right-to-left", + LeftToRight = "left-to-right" +} +export declare enum Axes { + Top = "top", + Right = "right", + Bottom = "bottom", + Left = "left" +} diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/dist/utils/direction-flow-to-axes.d.ts b/node_modules/@csstools/postcss-logical-float-and-clear/dist/utils/direction-flow-to-axes.d.ts new file mode 100644 index 00000000..2652d71d --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/dist/utils/direction-flow-to-axes.d.ts @@ -0,0 +1,2 @@ +import { DirectionFlow, Axes } from '../lib/types'; +export declare function directionFlowToAxes(directionFlow: DirectionFlow): [Axes, Axes]; diff --git a/node_modules/@csstools/postcss-logical-float-and-clear/package.json b/node_modules/@csstools/postcss-logical-float-and-clear/package.json new file mode 100644 index 00000000..5738faeb --- /dev/null +++ b/node_modules/@csstools/postcss-logical-float-and-clear/package.json @@ -0,0 +1,87 @@ +{ + "name": "@csstools/postcss-logical-float-and-clear", + "description": "Use flow-relative (inline-start and inline-end) values for float and clear", + "version": "2.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-float-and-clear#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-logical-float-and-clear" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "block", + "clear", + "css", + "float", + "inline", + "logical", + "postcss", + "postcss-plugin" + ], + "csstools": { + "cssdbId": "float-clear-logical-values", + "exportName": "postcssLogicalFloatAndClear", + "humanReadableName": "PostCSS Logical Float And Clear", + "specUrl": "https://www.w3.org/TR/css-logical-1/#float-clear" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-logical-resize/CHANGELOG.md b/node_modules/@csstools/postcss-logical-resize/CHANGELOG.md new file mode 100644 index 00000000..5d9ea88f --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/CHANGELOG.md @@ -0,0 +1,19 @@ +# Changes to PostCSS Logical Resize + +### 2.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 1.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 1.0.0 + +_January 21, 20223_ + +- Initial version diff --git a/node_modules/@csstools/postcss-logical-resize/LICENSE.md b/node_modules/@csstools/postcss-logical-resize/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-logical-resize/README.md b/node_modules/@csstools/postcss-logical-resize/README.md new file mode 100644 index 00000000..3e0d3a24 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/README.md @@ -0,0 +1,108 @@ +# PostCSS Logical Resize [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +[PostCSS Logical Resize] lets you use logical, rather than physical, values for `resize`, following the [CSS Logical Properties and Values] specification. + +```pcss +.resize-block { + resize: block; +} + +.resize-inline { + resize: inline; +} + +/* becomes */ + +.resize-block { + resize: vertical; +} + +.resize-inline { + resize: horizontal; +} +``` + +## Usage + +Add [PostCSS Logical Resize] to your project: + +```bash +npm install postcss @csstools/postcss-logical-resize --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssLogicalResize = require('@csstools/postcss-logical-resize'); + +postcss([ + postcssLogicalResize(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Logical Resize] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### blockDirection & inlineDirection + +The `blockDirection` and `inlineDirection` options allow you to specify the direction of the block and inline axes. The default values are `top-to-bottom` and `left-to-right` respectively which would match any latin language. + +You might want to tweak these values if you are using a different writing system, such as Arabic, Hebrew or Chinese for example. + +```js +postcssLogicalResize({ + blockDirection: 'right-to-left', + inlineDirection: 'top-to-bottom' +}) +``` + +```pcss +.resize-block { + resize: block; +} + +.resize-inline { + resize: inline; +} + +/* becomes */ + +.resize-block { + resize: horizontal; +} + +.resize-inline { + resize: vertical; +} +``` + +Each direction must be one of the following: + +- `top-to-bottom` +- `bottom-to-top` +- `left-to-right` +- `right-to-left` + +You can't mix two vertical directions or two horizontal directions so for example `top-to-bottom` and `right-to-left` are valid, but `top-to-bottom` and `bottom-to-top` are not. + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#logical-resize +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-logical-resize + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Logical Resize]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-resize +[CSS Logical Properties and Values]: https://www.w3.org/TR/css-logical-1/ diff --git a/node_modules/@csstools/postcss-logical-resize/dist/index.cjs b/node_modules/@csstools/postcss-logical-resize/dist/index.cjs new file mode 100644 index 00000000..6c1aaad1 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var o,t,e,i,n=require("postcss-value-parser");function cloneDeclaration(o,t,e){o.parent&&o.parent.some((o=>"decl"==o.type&&o.prop===e&&o.value===t))||o.cloneBefore({value:t,prop:e})}function transformResize(o){return t=>{const{prop:e,value:i}=t,r=n(i),c=o.inlineIsHorizontal?"horizontal":"vertical",s=o.inlineIsHorizontal?"vertical":"horizontal";r.nodes.forEach((o=>{if("word"===o.type){const t=o.value.toLowerCase();if("inline"===t)return void(o.value=c);"block"===t&&(o.value=s)}}));const l=r.toString();return l!==i&&(cloneDeclaration(t,l,e),!0)}}function directionFlowToAxes(o){switch(o){case e.TopToBottom:return[i.Top,i.Bottom];case e.BottomToTop:return[i.Bottom,i.Top];case e.RightToLeft:return[i.Right,i.Left];case e.LeftToRight:return[i.Left,i.Right]}}!function(o){o.Block="block",o.Inline="inline"}(o||(o={})),function(o){o.Start="start",o.End="end"}(t||(t={})),function(o){o.TopToBottom="top-to-bottom",o.BottomToTop="bottom-to-top",o.RightToLeft="right-to-left",o.LeftToRight="left-to-right"}(e||(e={})),function(o){o.Top="top",o.Right="right",o.Bottom="bottom",o.Left="left"}(i||(i={}));const creator=o=>{const t=Object.assign({blockDirection:e.TopToBottom,inlineDirection:e.LeftToRight},o),n=Object.values(e);if(!n.includes(t.blockDirection))throw new Error(`[postcss-logical-resize] "blockDirection" must be one of ${n.join(", ")}`);if(!n.includes(t.inlineDirection))throw new Error(`[postcss-logical-resize] "inlineDirection" must be one of ${n.join(", ")}`);const[r,c]=directionFlowToAxes(t.blockDirection),[s,l]=directionFlowToAxes(t.inlineDirection);if(!Object.values(i).every((o=>[r,c,s,l].includes(o))))throw new Error('[postcss-logical-resize] "blockDirection" and "inlineDirection" must be on separate axes');const a={block:[r,c],inline:[s,l],inlineIsHorizontal:[e.LeftToRight,e.RightToLeft].includes(t.inlineDirection)};return{postcssPlugin:"postcss-logical-resize",Declaration:{resize:(u=transformResize(a),(o,{result:t})=>{if(!u)return;let e=!1;try{e=u(o)}catch(e){return void o.warn(t,e.message)}e&&o.remove()})}};var u};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-logical-resize/dist/index.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/index.d.ts new file mode 100644 index 00000000..0cac31d0 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/dist/index.d.ts @@ -0,0 +1,11 @@ +import type { PluginCreator } from 'postcss'; +import { DirectionFlow } from './lib/types'; +/** postcss-logical-resize plugin options */ +export type pluginOptions = { + /** Sets the direction for block. default: top-to-bottom */ + blockDirection?: DirectionFlow; + /** Sets the direction for inline. default: left-to-right */ + inlineDirection?: DirectionFlow; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-logical-resize/dist/index.mjs b/node_modules/@csstools/postcss-logical-resize/dist/index.mjs new file mode 100644 index 00000000..5cffc5e7 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/dist/index.mjs @@ -0,0 +1 @@ +import o from"postcss-value-parser";var t,e,i,n;function cloneDeclaration(o,t,e){o.parent&&o.parent.some((o=>"decl"==o.type&&o.prop===e&&o.value===t))||o.cloneBefore({value:t,prop:e})}function transformResize(t){return e=>{const{prop:i,value:n}=e,r=o(n),c=t.inlineIsHorizontal?"horizontal":"vertical",s=t.inlineIsHorizontal?"vertical":"horizontal";r.nodes.forEach((o=>{if("word"===o.type){const t=o.value.toLowerCase();if("inline"===t)return void(o.value=c);"block"===t&&(o.value=s)}}));const l=r.toString();return l!==n&&(cloneDeclaration(e,l,i),!0)}}function directionFlowToAxes(o){switch(o){case i.TopToBottom:return[n.Top,n.Bottom];case i.BottomToTop:return[n.Bottom,n.Top];case i.RightToLeft:return[n.Right,n.Left];case i.LeftToRight:return[n.Left,n.Right]}}!function(o){o.Block="block",o.Inline="inline"}(t||(t={})),function(o){o.Start="start",o.End="end"}(e||(e={})),function(o){o.TopToBottom="top-to-bottom",o.BottomToTop="bottom-to-top",o.RightToLeft="right-to-left",o.LeftToRight="left-to-right"}(i||(i={})),function(o){o.Top="top",o.Right="right",o.Bottom="bottom",o.Left="left"}(n||(n={}));const creator=o=>{const t=Object.assign({blockDirection:i.TopToBottom,inlineDirection:i.LeftToRight},o),e=Object.values(i);if(!e.includes(t.blockDirection))throw new Error(`[postcss-logical-resize] "blockDirection" must be one of ${e.join(", ")}`);if(!e.includes(t.inlineDirection))throw new Error(`[postcss-logical-resize] "inlineDirection" must be one of ${e.join(", ")}`);const[r,c]=directionFlowToAxes(t.blockDirection),[s,l]=directionFlowToAxes(t.inlineDirection);if(!Object.values(n).every((o=>[r,c,s,l].includes(o))))throw new Error('[postcss-logical-resize] "blockDirection" and "inlineDirection" must be on separate axes');const a={block:[r,c],inline:[s,l],inlineIsHorizontal:[i.LeftToRight,i.RightToLeft].includes(t.inlineDirection)};return{postcssPlugin:"postcss-logical-resize",Declaration:{resize:(u=transformResize(a),(o,{result:t})=>{if(!u)return;let e=!1;try{e=u(o)}catch(e){return void o.warn(t,e.message)}e&&o.remove()})}};var u};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-logical-resize/dist/lib/clone-declaration.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/lib/clone-declaration.d.ts new file mode 100644 index 00000000..1503bf6f --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/dist/lib/clone-declaration.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function cloneDeclaration(declaration: Declaration, value: string, prop: string): void; diff --git a/node_modules/@csstools/postcss-logical-resize/dist/lib/transform-resize.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/lib/transform-resize.d.ts new file mode 100644 index 00000000..12100551 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/dist/lib/transform-resize.d.ts @@ -0,0 +1,3 @@ +import type { Declaration } from 'postcss'; +import { DirectionConfig } from './types'; +export declare function transformResize(directionConfig: DirectionConfig): (declaration: Declaration) => boolean; diff --git a/node_modules/@csstools/postcss-logical-resize/dist/lib/types.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/lib/types.d.ts new file mode 100644 index 00000000..7f27fd46 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/dist/lib/types.d.ts @@ -0,0 +1,31 @@ +export declare enum Direction { + Block = "block", + Inline = "inline" +} +export declare enum DirectionValue { + Start = "start", + End = "end" +} +export declare const DirectionValues: { + BlockStart: string; + BlockEnd: string; + InlineStart: string; + InlineEnd: string; +}; +export declare enum DirectionFlow { + TopToBottom = "top-to-bottom", + BottomToTop = "bottom-to-top", + RightToLeft = "right-to-left", + LeftToRight = "left-to-right" +} +export declare enum Axes { + Top = "top", + Right = "right", + Bottom = "bottom", + Left = "left" +} +export type DirectionConfig = { + [Direction.Block]: [Axes, Axes]; + [Direction.Inline]: [Axes, Axes]; + inlineIsHorizontal: boolean; +}; diff --git a/node_modules/@csstools/postcss-logical-resize/dist/utils/direction-flow-to-axes.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/utils/direction-flow-to-axes.d.ts new file mode 100644 index 00000000..2652d71d --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/dist/utils/direction-flow-to-axes.d.ts @@ -0,0 +1,2 @@ +import { DirectionFlow, Axes } from '../lib/types'; +export declare function directionFlowToAxes(directionFlow: DirectionFlow): [Axes, Axes]; diff --git a/node_modules/@csstools/postcss-logical-resize/package.json b/node_modules/@csstools/postcss-logical-resize/package.json new file mode 100644 index 00000000..9fa60ff6 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-resize/package.json @@ -0,0 +1,89 @@ +{ + "name": "@csstools/postcss-logical-resize", + "description": "Use logical values in the resize property", + "version": "2.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-resize#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-logical-resize" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "block", + "css", + "inline", + "logical", + "postcss", + "postcss-plugin", + "resize" + ], + "csstools": { + "cssdbId": "logical-resize", + "exportName": "postcssLogicalResize", + "humanReadableName": "PostCSS Logical Resize", + "specUrl": "https://www.w3.org/TR/css-logical-1/" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-logical-viewport-units/CHANGELOG.md b/node_modules/@csstools/postcss-logical-viewport-units/CHANGELOG.md new file mode 100644 index 00000000..a93e5c0c --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/CHANGELOG.md @@ -0,0 +1,49 @@ +# Changes to PostCSS Logical Viewport Units + +### 2.0.3 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) + +### 2.0.2 + +_September 18, 2023_ + +- Improve performance + +### 2.0.1 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) + +### 2.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 1.0.3 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) + +### 1.0.2 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 1.0.1 + +_January 24, 2023_ + +- Correctly list dependencies in `package.json` + +### 1.0.0 + +_January 19, 2023_ + +- Initial version diff --git a/node_modules/@csstools/postcss-logical-viewport-units/LICENSE.md b/node_modules/@csstools/postcss-logical-viewport-units/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-logical-viewport-units/README.md b/node_modules/@csstools/postcss-logical-viewport-units/README.md new file mode 100644 index 00000000..622864c0 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/README.md @@ -0,0 +1,118 @@ +# PostCSS Logical Viewport Units [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-logical-viewport-units --save-dev +``` + +[PostCSS Logical Viewport Units] lets you easily use `vb` and `vi` length units following the [CSS-Values-4 Specification]. + +```pcss +.foo { + margin: 10vi 20vb; +} + +/* becomes */ + +.foo { + margin: 10vw 20vh; + margin: 10vi 20vb; +} +``` + +## Usage + +Add [PostCSS Logical Viewport Units] to your project: + +```bash +npm install postcss @csstools/postcss-logical-viewport-units --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssLogicalViewportUnits = require('@csstools/postcss-logical-viewport-units'); + +postcss([ + postcssLogicalViewportUnits(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Logical Viewport Units] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### inlineDirection + +The `inlineDirection` option allows you to specify the direction of the inline axe. The default value is `left-to-right`, which would match any latin language. + +**You should tweak this value so that it is specific to your language and writing mode.** + +```js +postcssLogicalViewportUnits({ + inlineDirection: 'top-to-bottom' +}) +``` + +```pcss +.foo { + margin: 10vi 20vb; +} + +/* becomes */ + +.foo { + margin: 10vh 20vw; + margin: 10vi 20vb; +} +``` + +Each direction must be one of the following: + +- `top-to-bottom` +- `bottom-to-top` +- `left-to-right` +- `right-to-left` + +Please do note that transformations won't do anything particular for `right-to-left` or `bottom-to-top`. + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is preserved. + +```js +postcssLogicalViewportUnits({ preserve: false }) +``` + +```pcss +.foo { + margin: 10vi 20vb; +} + +/* becomes */ + +.foo { + margin: 10vw 20vh; +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#logical-viewport-units +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-logical-viewport-units + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Logical Viewport Units]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-viewport-units +[CSS-Values-4 Specification]: https://www.w3.org/TR/css-values-4/#viewport-relative-units diff --git a/node_modules/@csstools/postcss-logical-viewport-units/dist/has-feature.d.ts b/node_modules/@csstools/postcss-logical-viewport-units/dist/has-feature.d.ts new file mode 100644 index 00000000..a902b0da --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/dist/has-feature.d.ts @@ -0,0 +1 @@ +export declare function hasFeature(source: string): boolean; diff --git a/node_modules/@csstools/postcss-logical-viewport-units/dist/has-supports-at-rule-ancestor.d.ts b/node_modules/@csstools/postcss-logical-viewport-units/dist/has-supports-at-rule-ancestor.d.ts new file mode 100644 index 00000000..a46009ec --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/dist/has-supports-at-rule-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { Node } from 'postcss'; +export declare function hasSupportsAtRuleAncestor(node: Node): boolean; diff --git a/node_modules/@csstools/postcss-logical-viewport-units/dist/index.cjs b/node_modules/@csstools/postcss-logical-viewport-units/dist/index.cjs new file mode 100644 index 00000000..4371e8d6 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var t,e,o=require("@csstools/css-tokenizer");function hasFeature(t){{const e=t.toLowerCase();if(!e.includes("vb")&&!e.includes("vi"))return!1}const e=o.tokenizer({css:t});for(;;){const t=e.nextToken();if(!t)break;if(t[0]===o.TokenType.EOF)break;if(t[0]!==o.TokenType.Dimension)continue;const n=t[4].unit.toLowerCase();if("vb"===n||"vi"===n)return!0}return!1}function hasSupportsAtRuleAncestor(t){let e=t.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()&&hasFeature(e.params))return!0;e=e.parent}else e=e.parent;return!1}function transform(t,e){const n=o.tokenizer({css:t}),r=[];let i=!1;for(;;){const t=n.nextToken();if(!t)break;if(r.push(t),t[0]===o.TokenType.EOF)break;if(t[0]!==o.TokenType.Dimension)continue;const s=t[4].unit.toLowerCase();let u;"vi"===s?u=e.vi:"vb"===s&&(u=e.vb),u&&(t[1]=t[4].value.toString()+u,t[4].unit=u,i=!0)}return i?o.stringify(...r):t}!function(t){t.TopToBottom="top-to-bottom",t.BottomToTop="bottom-to-top",t.RightToLeft="right-to-left",t.LeftToRight="left-to-right"}(t||(t={})),function(t){t.Top="top",t.Right="right",t.Bottom="bottom",t.Left="left"}(e||(e={}));const n=/(?:vi|vb)\b/i,creator=e=>{const o=Object.assign({inlineDirection:t.LeftToRight,preserve:!0},e),r=Object.values(t);if(!r.includes(o.inlineDirection))throw new Error(`[postcss-logical-viewport-units] "inlineDirection" must be one of ${r.join(", ")}`);const i=[t.LeftToRight,t.RightToLeft].includes(o.inlineDirection),s={vb:"vh",vi:"vw"};return i||(s.vb="vw",s.vi="vh"),{postcssPlugin:"postcss-logical-viewport-units",Declaration(t,{atRule:e}){{if(!n.test(t.value))return;const e=t.prev();if(e&&"decl"===e.type&&e.prop===t.prop)return;if(hasSupportsAtRuleAncestor(t))return}const r=transform(t.value,s);if(r===t.value)return;if(t.cloneBefore({value:r}),!o.preserve)return void t.remove();if(!t.variable)return;const i=e({name:"supports",params:"(top: 1vi)",source:t.source}),u=t.parent;if(!u)return;const c=u.cloneAfter({nodes:[]});c.append(t),i.append(c),u.after(i)}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-logical-viewport-units/dist/index.d.ts b/node_modules/@csstools/postcss-logical-viewport-units/dist/index.d.ts new file mode 100644 index 00000000..bf4c6641 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/dist/index.d.ts @@ -0,0 +1,11 @@ +import type { PluginCreator } from 'postcss'; +import { DirectionFlow } from './lib/types'; +/** postcss-logical-viewport-units plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; + /** Sets the direction for inline. default: left-to-right */ + inlineDirection?: DirectionFlow; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-logical-viewport-units/dist/index.mjs b/node_modules/@csstools/postcss-logical-viewport-units/dist/index.mjs new file mode 100644 index 00000000..5cd02459 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/dist/index.mjs @@ -0,0 +1 @@ +import{tokenizer as t,TokenType as e,stringify as o}from"@csstools/css-tokenizer";function hasFeature(o){{const t=o.toLowerCase();if(!t.includes("vb")&&!t.includes("vi"))return!1}const n=t({css:o});for(;;){const t=n.nextToken();if(!t)break;if(t[0]===e.EOF)break;if(t[0]!==e.Dimension)continue;const o=t[4].unit.toLowerCase();if("vb"===o||"vi"===o)return!0}return!1}function hasSupportsAtRuleAncestor(t){let e=t.parent;for(;e;)if("atrule"===e.type){if("supports"===e.name.toLowerCase()&&hasFeature(e.params))return!0;e=e.parent}else e=e.parent;return!1}var n,r;function transform(n,r){const i=t({css:n}),s=[];let u=!1;for(;;){const t=i.nextToken();if(!t)break;if(s.push(t),t[0]===e.EOF)break;if(t[0]!==e.Dimension)continue;const o=t[4].unit.toLowerCase();let n;"vi"===o?n=r.vi:"vb"===o&&(n=r.vb),n&&(t[1]=t[4].value.toString()+n,t[4].unit=n,u=!0)}return u?o(...s):n}!function(t){t.TopToBottom="top-to-bottom",t.BottomToTop="bottom-to-top",t.RightToLeft="right-to-left",t.LeftToRight="left-to-right"}(n||(n={})),function(t){t.Top="top",t.Right="right",t.Bottom="bottom",t.Left="left"}(r||(r={}));const i=/(?:vi|vb)\b/i,creator=t=>{const e=Object.assign({inlineDirection:n.LeftToRight,preserve:!0},t),o=Object.values(n);if(!o.includes(e.inlineDirection))throw new Error(`[postcss-logical-viewport-units] "inlineDirection" must be one of ${o.join(", ")}`);const r=[n.LeftToRight,n.RightToLeft].includes(e.inlineDirection),s={vb:"vh",vi:"vw"};return r||(s.vb="vw",s.vi="vh"),{postcssPlugin:"postcss-logical-viewport-units",Declaration(t,{atRule:o}){{if(!i.test(t.value))return;const e=t.prev();if(e&&"decl"===e.type&&e.prop===t.prop)return;if(hasSupportsAtRuleAncestor(t))return}const n=transform(t.value,s);if(n===t.value)return;if(t.cloneBefore({value:n}),!e.preserve)return void t.remove();if(!t.variable)return;const r=o({name:"supports",params:"(top: 1vi)",source:t.source}),u=t.parent;if(!u)return;const c=u.cloneAfter({nodes:[]});c.append(t),r.append(c),u.after(r)}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-logical-viewport-units/dist/lib/types.d.ts b/node_modules/@csstools/postcss-logical-viewport-units/dist/lib/types.d.ts new file mode 100644 index 00000000..2b3c47f9 --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/dist/lib/types.d.ts @@ -0,0 +1,18 @@ +export declare const DirectionValues: { + BlockStart: string; + BlockEnd: string; + InlineStart: string; + InlineEnd: string; +}; +export declare enum DirectionFlow { + TopToBottom = "top-to-bottom", + BottomToTop = "bottom-to-top", + RightToLeft = "right-to-left", + LeftToRight = "left-to-right" +} +export declare enum Axes { + Top = "top", + Right = "right", + Bottom = "bottom", + Left = "left" +} diff --git a/node_modules/@csstools/postcss-logical-viewport-units/dist/transform.d.ts b/node_modules/@csstools/postcss-logical-viewport-units/dist/transform.d.ts new file mode 100644 index 00000000..0d007ffa --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/dist/transform.d.ts @@ -0,0 +1,4 @@ +export declare function transform(source: string, replacements: { + vi: 'vw' | 'vh'; + vb: 'vw' | 'vh'; +}): string; diff --git a/node_modules/@csstools/postcss-logical-viewport-units/package.json b/node_modules/@csstools/postcss-logical-viewport-units/package.json new file mode 100644 index 00000000..f20a819d --- /dev/null +++ b/node_modules/@csstools/postcss-logical-viewport-units/package.json @@ -0,0 +1,90 @@ +{ + "name": "@csstools/postcss-logical-viewport-units", + "description": "Use vb and vi length units in CSS", + "version": "2.0.3", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-tokenizer": "^2.2.1" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-viewport-units#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-logical-viewport-units" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "block", + "css", + "inline", + "logical", + "padding", + "postcss", + "postcss-plugin", + "viewport units" + ], + "csstools": { + "cssdbId": "logical-viewport-units", + "exportName": "postcssLogicalViewportUnits", + "humanReadableName": "PostCSS Logical Viewport Units", + "specUrl": "https://www.w3.org/TR/css-values-4/#viewport-relative-units" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-media-minmax/CHANGELOG.md b/node_modules/@csstools/postcss-media-minmax/CHANGELOG.md new file mode 100644 index 00000000..2ed00d6d --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/CHANGELOG.md @@ -0,0 +1,69 @@ +# Changes to PostCSS Media MinMax + +### 1.1.0 + +_September 24, 2023_ + +- Add support for `@custom-media` queries. +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#114) (patch) +- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.5`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#215) (patch) + +### 1.0.7 + +_August 5, 2023_ + +- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#214) (patch) + +### 1.0.6 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#113) (patch) +- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#213) (patch) + +### 1.0.5 + +_July 3, 2023_ + +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#112) (patch) +- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#212) (patch) + +### 1.0.4 + +_June 21, 2023_ + +- Updated `@csstools/media-query-list-parser` to `2.1.1` (patch) + + +### 1.0.3 + +_June 1, 2023_ + +- Updated `@csstools/media-query-list-parser` to `2.1.0` (minor) + + +### 1.0.2 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/css-calc` to `1.1.1` (patch) +- Updated `@csstools/media-query-list-parser` to `2.0.4` (patch) + +### 1.0.1 + +_April 10, 2023_ + +- Improve the detection of math function in media queries. + +### 1.0.0 + +_March 30, 2023_ + +- Initial version diff --git a/node_modules/@csstools/postcss-media-minmax/LICENSE.md b/node_modules/@csstools/postcss-media-minmax/LICENSE.md new file mode 100644 index 00000000..324aa86d --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2022 Romain Menke, Antonio Laguna , PostCSS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-media-minmax/README.md b/node_modules/@csstools/postcss-media-minmax/README.md new file mode 100644 index 00000000..6129f0ab --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/README.md @@ -0,0 +1,67 @@ +# PostCSS Media MinMax [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-media-minmax --save-dev +``` + +[PostCSS Media MinMax] lets you use the range notation in media queries following the [Media Queries 4 Specification]. + +```pcss +@media screen and (width >=500px) and (width <=1200px) { + .bar { + display: block; + } +} + +/* becomes */ + +@media screen and (min-width:500px) and (max-width:1200px) { + .bar { + display: block; + } +} +``` + +## Usage + +Add [PostCSS Media MinMax] to your project: + +```bash +npm install postcss @csstools/postcss-media-minmax --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssMediaMinMax = require('@csstools/postcss-media-minmax'); + +postcss([ + postcssMediaMinMax(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Media MinMax] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +_See prior work by [yisibl](https://github.com/yisibl) here [postcss-media-minmax](https://github.com/postcss/postcss-media-minmax) +To ensure long term maintenance and to provide the needed features this plugin was recreated based on yisibl's work._ + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#media-query-ranges +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-media-minmax + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Media MinMax]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-media-minmax +[Media Queries 4 Specification]: https://www.w3.org/TR/mediaqueries-4/#mq-features diff --git a/node_modules/@csstools/postcss-media-minmax/dist/index.cjs b/node_modules/@csstools/postcss-media-minmax/dist/index.cjs new file mode 100644 index 00000000..1552173d --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/css-parser-algorithms"),i=require("@csstools/css-tokenizer"),n=require("@csstools/media-query-list-parser"),a=require("@csstools/css-calc");const t=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(t,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const r={width:"px",height:"px","device-width":"px","device-height":"px","aspect-ratio":"","device-aspect-ratio":"",color:"","color-index":"",monochrome:"",resolution:"dpi"},o={width:!1,height:!1,"device-width":!1,"device-height":!1,"aspect-ratio":!1,"device-aspect-ratio":!1,color:!0,"color-index":!0,monochrome:!0,resolution:"dpi"};function featureNamePrefix(e){return e===n.MediaFeatureLT.LT||e===n.MediaFeatureLT.LT_OR_EQ?"max-":e===n.MediaFeatureGT.GT||e===n.MediaFeatureGT.GT_OR_EQ?"min-":""}const s={">":1,"<":-1},u=.001,d=.02;function transformSingleNameValuePair(t,l,c,p){let T=c.before,m=c.after;if(p||(T=c.after,m=c.before),!p){const e=n.invertComparison(l);if(!1===e)return;l=e}if(l===n.MediaFeatureEQ.EQ||l===n.MediaFeatureLT.LT_OR_EQ||l===n.MediaFeatureGT.GT_OR_EQ)return Array.isArray(c.value)?n.newMediaFeaturePlain(featureNamePrefix(l)+t,...T,...c.value.flatMap((e=>e.tokens())),...m):n.newMediaFeaturePlain(featureNamePrefix(l)+t,...T,...c.value.tokens(),...m);let f,v,y=!1;if(Array.isArray(c.value)){if(!n.matchesRatioExactly(c.value))return;if("aspect-ratio"!==t&&"device-aspect-ratio"!==t)return;const e=n.matchesRatio(c.value);if(-1===e)return;y=!0,f=c.value[e[0]],v=[...c.value.slice(e[0]+1).flatMap((e=>e.tokens()))]}else f=c.value,v=[];const h=r[t.toLowerCase()];if(e.isFunctionNode(f)){const r=toLowerCaseAZ(f.getName());if(a.mathFunctionNames.has(r)||"env"===r){const[[r]]=a.calcFromComponentValues([[f]],{precision:5,toCanonicalUnits:!0});if(!r||!e.isTokenNode(r)||r.value[0]!==i.TokenType.Number&&r.value[0]!==i.TokenType.Percentage&&r.value[0]!==i.TokenType.Dimension||!Number.isInteger(r.value[4].value)){let e;if(void 0!==h){const n=s[l]*("px"===h?d:u);e=[i.TokenType.Dimension,`${n.toString()}${h}`,-1,-1,{value:n,unit:h,type:i.NumberType.Integer}]}else if(!0===o[t]){const n=s[l];e=[i.TokenType.Number,n.toString(),-1,-1,{value:n,type:i.NumberType.Integer}]}else if(y){const n=s[l]*u;e=[i.TokenType.Number,n.toString(),-1,-1,{value:n,type:i.NumberType.Integer}]}else{const n=s[l];e=[i.TokenType.Number,n.toString(),-1,-1,{value:n,type:i.NumberType.Integer}]}return n.newMediaFeaturePlain(featureNamePrefix(l)+t,...T,[i.TokenType.Function,"calc(",-1,-1,{value:"calc("}],[i.TokenType.OpenParen,"(",-1,-1,void 0],...f.tokens().slice(1),[i.TokenType.Whitespace," ",-1,-1,void 0],[i.TokenType.Delim,"+",-1,-1,{value:"+"}],[i.TokenType.Whitespace," ",-1,-1,void 0],e,[i.TokenType.CloseParen,")",-1,-1,void 0],...v,...m)}f=r}}if(!e.isTokenNode(f))return;let g,k=f.value,M="";if(void 0!==h&&k[0]===i.TokenType.Number&&0===k[4].value)g=s[l],M=h;else if(k[0]===i.TokenType.Number&&0===k[4].value)g=s[l],M="";else if(k[0]===i.TokenType.Dimension&&0===k[4].value)g=s[l],M=k[4].unit;else if(k[0]===i.TokenType.Number&&!0===o[t])g=k[4].value+s[l];else if(k[0]===i.TokenType.Dimension&&"px"===k[4].unit&&k[4].type===i.NumberType.Integer)g=Number(Math.round(Number(k[4].value+d*s[l]+"e6"))+"e-6");else{if(k[0]!==i.TokenType.Dimension&&k[0]!==i.TokenType.Number)return;g=Number(Math.round(Number(k[4].value+u*s[l]+"e6"))+"e-6")}return M&&(k=[i.TokenType.Dimension,k[1],k[2],k[3],{value:k[4].value,unit:M,type:k[4].type}]),k[4].value=g,k[0]===i.TokenType.Dimension?k[1]=k[4].value.toString()+k[4].unit:k[1]=k[4].value.toString(),n.newMediaFeaturePlain(featureNamePrefix(l)+t,...T,k,...v,...m)}const l=new Set(["aspect-ratio","color","color-index","device-aspect-ratio","device-height","device-width","height","horizontal-viewport-segments","monochrome","resolution","vertical-viewport-segments","width"]);function transform(a){return a.map(((a,t)=>{const r=e.gatherNodeAncestry(a);a.walk((e=>{const t=e.node;if(!n.isMediaFeatureRange(t))return;const o=e.parent;if(!n.isMediaFeature(o))return;const s=toLowerCaseAZ(t.name.getName());if(!l.has(s))return;if(n.isMediaFeatureRangeNameValue(t)||n.isMediaFeatureRangeValueName(t)){const e=t.operatorKind();if(!1===e)return;const i=transformSingleNameValuePair(s,e,t.value,n.isMediaFeatureRangeNameValue(t));return void(i&&(o.feature=i.feature))}const u=r.get(o);if(!n.isMediaInParens(u))return;let d=null,c=null;{const e=t.valueOneOperatorKind();if(!1===e)return;const i=transformSingleNameValuePair(s,e,t.valueOne,!1);if(!i)return;e===n.MediaFeatureLT.LT||e===n.MediaFeatureLT.LT_OR_EQ?(d=i,d.before=o.before):(c=i,c.after=o.after)}{const e=t.valueTwoOperatorKind();if(!1===e)return;const i=transformSingleNameValuePair(s,e,t.valueTwo,!0);if(!i)return;e===n.MediaFeatureLT.LT||e===n.MediaFeatureLT.LT_OR_EQ?(c=i,c.before=o.before):(d=i,d.after=o.after)}if(!d||!c)return;const p=new n.MediaInParens(d),T=new n.MediaInParens(c),m=getMediaConditionListWithAndFromAncestry(u,r);if(m)return m.leading===u?(m.leading=p,void(m.list=[new n.MediaAnd([[i.TokenType.Whitespace," ",-1,-1,void 0],[i.TokenType.Ident,"and",-1,-1,{value:"and"}],[i.TokenType.Whitespace," ",-1,-1,void 0]],T),...m.list])):void m.list.splice(m.indexOf(r.get(u)),1,new n.MediaAnd([[i.TokenType.Whitespace," ",-1,-1,void 0],[i.TokenType.Ident,"and",-1,-1,{value:"and"}],[i.TokenType.Whitespace," ",-1,-1,void 0]],p),new n.MediaAnd([[i.TokenType.Whitespace," ",-1,-1,void 0],[i.TokenType.Ident,"and",-1,-1,{value:"and"}],[i.TokenType.Whitespace," ",-1,-1,void 0]],T));const f=new n.MediaConditionListWithAnd(p,[new n.MediaAnd([[i.TokenType.Whitespace," ",-1,-1,void 0],[i.TokenType.Ident,"and",-1,-1,{value:"and"}],[i.TokenType.Whitespace," ",-1,-1,void 0]],T)],[[i.TokenType.Whitespace," ",-1,-1,void 0]]),v=getMediaConditionInShallowMediaQueryFromAncestry(u,a,r);v?v.media=f:u.media=new n.MediaCondition(new n.MediaInParens(new n.MediaCondition(f),[[i.TokenType.Whitespace," ",-1,-1,void 0],[i.TokenType.OpenParen,"(",-1,-1,void 0]],[[i.TokenType.CloseParen,")",-1,-1,void 0]]))}));const o=a.tokens();return i.stringify(...o.filter(((e,n)=>(0!==n||0!==t||e[0]!==i.TokenType.Whitespace)&&(e[0]!==i.TokenType.Whitespace||!o[n+1]||o[n+1][0]!==i.TokenType.Whitespace))))})).join(",")}function getMediaConditionListWithAndFromAncestry(e,i){let a=e;if(a){if(a=i.get(a),n.isMediaConditionListWithAnd(a))return a;if(n.isMediaAnd(a))return a=i.get(a),n.isMediaConditionListWithAnd(a)?a:void 0}}function getMediaConditionInShallowMediaQueryFromAncestry(e,i,a){let t=e;if(!t)return;if(t=a.get(t),!n.isMediaCondition(t))return;const r=t;return t=a.get(t),n.isMediaQuery(t)&&t===i?r:void 0}const creator=()=>({postcssPlugin:"postcss-media-minmax",AtRule:{media:e=>{if(!(e.params.includes("<")||e.params.includes(">")||e.params.includes("=")))return;const i=transform(n.parse(e.params,{preserveInvalidMediaQueries:!0,onParseError:()=>{throw e.error(`Unable to parse media query "${e.params}"`)}}));e.params!==i&&(e.params=i)},"custom-media":e=>{if(!(e.params.includes("<")||e.params.includes(">")||e.params.includes("=")))return;const a=n.parseCustomMedia(e.params,{preserveInvalidMediaQueries:!0,onParseError:()=>{throw e.error(`Unable to parse media query "${e.params}"`)}});if(!a||!a.mediaQueryList)return;const t=a.mediaQueryList.map((e=>e.toString())).join(","),r=transform(a.mediaQueryList);t!==r&&(e.params=`${i.stringify(...a.name)} ${r}`)}}});creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-media-minmax/dist/index.d.ts b/node_modules/@csstools/postcss-media-minmax/dist/index.d.ts new file mode 100644 index 00000000..f22ef708 --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/dist/index.d.ts @@ -0,0 +1,5 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-media-minmax plugin options */ +export type pluginOptions = never; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-media-minmax/dist/index.mjs b/node_modules/@csstools/postcss-media-minmax/dist/index.mjs new file mode 100644 index 00000000..1d4c7bf2 --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/dist/index.mjs @@ -0,0 +1 @@ +import{isFunctionNode as e,isTokenNode as t,gatherNodeAncestry as r}from"@csstools/css-parser-algorithms";import{TokenType as i,NumberType as n,stringify as a}from"@csstools/css-tokenizer";import{invertComparison as o,MediaFeatureEQ as s,MediaFeatureLT as u,MediaFeatureGT as l,newMediaFeaturePlain as c,matchesRatioExactly as d,matchesRatio as m,isMediaFeatureRange as f,isMediaFeature as v,isMediaFeatureRangeNameValue as p,isMediaFeatureRangeValueName as h,isMediaInParens as g,MediaInParens as w,MediaAnd as N,MediaConditionListWithAnd as y,MediaCondition as b,isMediaConditionListWithAnd as x,isMediaAnd as P,isMediaCondition as W,isMediaQuery as A,parse as L,parseCustomMedia as S}from"@csstools/media-query-list-parser";import{mathFunctionNames as C,calcFromComponentValues as I}from"@csstools/css-calc";const Q=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(Q,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}const O={width:"px",height:"px","device-width":"px","device-height":"px","aspect-ratio":"","device-aspect-ratio":"",color:"","color-index":"",monochrome:"",resolution:"dpi"},M={width:!1,height:!1,"device-width":!1,"device-height":!1,"aspect-ratio":!1,"device-aspect-ratio":!1,color:!0,"color-index":!0,monochrome:!0,resolution:"dpi"};function featureNamePrefix(e){return e===u.LT||e===u.LT_OR_EQ?"max-":e===l.GT||e===l.GT_OR_EQ?"min-":""}const T={">":1,"<":-1},_=.001,E=.02;function transformSingleNameValuePair(r,a,f,v){let p=f.before,h=f.after;if(v||(p=f.after,h=f.before),!v){const e=o(a);if(!1===e)return;a=e}if(a===s.EQ||a===u.LT_OR_EQ||a===l.GT_OR_EQ)return Array.isArray(f.value)?c(featureNamePrefix(a)+r,...p,...f.value.flatMap((e=>e.tokens())),...h):c(featureNamePrefix(a)+r,...p,...f.value.tokens(),...h);let g,w,N=!1;if(Array.isArray(f.value)){if(!d(f.value))return;if("aspect-ratio"!==r&&"device-aspect-ratio"!==r)return;const e=m(f.value);if(-1===e)return;N=!0,g=f.value[e[0]],w=[...f.value.slice(e[0]+1).flatMap((e=>e.tokens()))]}else g=f.value,w=[];const y=O[r.toLowerCase()];if(e(g)){const e=toLowerCaseAZ(g.getName());if(C.has(e)||"env"===e){const[[e]]=I([[g]],{precision:5,toCanonicalUnits:!0});if(!e||!t(e)||e.value[0]!==i.Number&&e.value[0]!==i.Percentage&&e.value[0]!==i.Dimension||!Number.isInteger(e.value[4].value)){let e;if(void 0!==y){const t=T[a]*("px"===y?E:_);e=[i.Dimension,`${t.toString()}${y}`,-1,-1,{value:t,unit:y,type:n.Integer}]}else if(!0===M[r]){const t=T[a];e=[i.Number,t.toString(),-1,-1,{value:t,type:n.Integer}]}else if(N){const t=T[a]*_;e=[i.Number,t.toString(),-1,-1,{value:t,type:n.Integer}]}else{const t=T[a];e=[i.Number,t.toString(),-1,-1,{value:t,type:n.Integer}]}return c(featureNamePrefix(a)+r,...p,[i.Function,"calc(",-1,-1,{value:"calc("}],[i.OpenParen,"(",-1,-1,void 0],...g.tokens().slice(1),[i.Whitespace," ",-1,-1,void 0],[i.Delim,"+",-1,-1,{value:"+"}],[i.Whitespace," ",-1,-1,void 0],e,[i.CloseParen,")",-1,-1,void 0],...w,...h)}g=e}}if(!t(g))return;let b,x=g.value,P="";if(void 0!==y&&x[0]===i.Number&&0===x[4].value)b=T[a],P=y;else if(x[0]===i.Number&&0===x[4].value)b=T[a],P="";else if(x[0]===i.Dimension&&0===x[4].value)b=T[a],P=x[4].unit;else if(x[0]===i.Number&&!0===M[r])b=x[4].value+T[a];else if(x[0]===i.Dimension&&"px"===x[4].unit&&x[4].type===n.Integer)b=Number(Math.round(Number(x[4].value+E*T[a]+"e6"))+"e-6");else{if(x[0]!==i.Dimension&&x[0]!==i.Number)return;b=Number(Math.round(Number(x[4].value+_*T[a]+"e6"))+"e-6")}return P&&(x=[i.Dimension,x[1],x[2],x[3],{value:x[4].value,unit:P,type:x[4].type}]),x[4].value=b,x[0]===i.Dimension?x[1]=x[4].value.toString()+x[4].unit:x[1]=x[4].value.toString(),c(featureNamePrefix(a)+r,...p,x,...w,...h)}const D=new Set(["aspect-ratio","color","color-index","device-aspect-ratio","device-height","device-width","height","horizontal-viewport-segments","monochrome","resolution","vertical-viewport-segments","width"]);function transform(e){return e.map(((e,t)=>{const n=r(e);e.walk((t=>{const r=t.node;if(!f(r))return;const a=t.parent;if(!v(a))return;const o=toLowerCaseAZ(r.name.getName());if(!D.has(o))return;if(p(r)||h(r)){const e=r.operatorKind();if(!1===e)return;const t=transformSingleNameValuePair(o,e,r.value,p(r));return void(t&&(a.feature=t.feature))}const s=n.get(a);if(!g(s))return;let l=null,c=null;{const e=r.valueOneOperatorKind();if(!1===e)return;const t=transformSingleNameValuePair(o,e,r.valueOne,!1);if(!t)return;e===u.LT||e===u.LT_OR_EQ?(l=t,l.before=a.before):(c=t,c.after=a.after)}{const e=r.valueTwoOperatorKind();if(!1===e)return;const t=transformSingleNameValuePair(o,e,r.valueTwo,!0);if(!t)return;e===u.LT||e===u.LT_OR_EQ?(c=t,c.before=a.before):(l=t,l.after=a.after)}if(!l||!c)return;const d=new w(l),m=new w(c),x=getMediaConditionListWithAndFromAncestry(s,n);if(x)return x.leading===s?(x.leading=d,void(x.list=[new N([[i.Whitespace," ",-1,-1,void 0],[i.Ident,"and",-1,-1,{value:"and"}],[i.Whitespace," ",-1,-1,void 0]],m),...x.list])):void x.list.splice(x.indexOf(n.get(s)),1,new N([[i.Whitespace," ",-1,-1,void 0],[i.Ident,"and",-1,-1,{value:"and"}],[i.Whitespace," ",-1,-1,void 0]],d),new N([[i.Whitespace," ",-1,-1,void 0],[i.Ident,"and",-1,-1,{value:"and"}],[i.Whitespace," ",-1,-1,void 0]],m));const P=new y(d,[new N([[i.Whitespace," ",-1,-1,void 0],[i.Ident,"and",-1,-1,{value:"and"}],[i.Whitespace," ",-1,-1,void 0]],m)],[[i.Whitespace," ",-1,-1,void 0]]),W=getMediaConditionInShallowMediaQueryFromAncestry(s,e,n);W?W.media=P:s.media=new b(new w(new b(P),[[i.Whitespace," ",-1,-1,void 0],[i.OpenParen,"(",-1,-1,void 0]],[[i.CloseParen,")",-1,-1,void 0]]))}));const o=e.tokens();return a(...o.filter(((e,r)=>(0!==r||0!==t||e[0]!==i.Whitespace)&&(e[0]!==i.Whitespace||!o[r+1]||o[r+1][0]!==i.Whitespace))))})).join(",")}function getMediaConditionListWithAndFromAncestry(e,t){let r=e;if(r){if(r=t.get(r),x(r))return r;if(P(r))return r=t.get(r),x(r)?r:void 0}}function getMediaConditionInShallowMediaQueryFromAncestry(e,t,r){let i=e;if(!i)return;if(i=r.get(i),!W(i))return;const n=i;return i=r.get(i),A(i)&&i===t?n:void 0}const creator=()=>({postcssPlugin:"postcss-media-minmax",AtRule:{media:e=>{if(!(e.params.includes("<")||e.params.includes(">")||e.params.includes("=")))return;const t=transform(L(e.params,{preserveInvalidMediaQueries:!0,onParseError:()=>{throw e.error(`Unable to parse media query "${e.params}"`)}}));e.params!==t&&(e.params=t)},"custom-media":e=>{if(!(e.params.includes("<")||e.params.includes(">")||e.params.includes("=")))return;const t=S(e.params,{preserveInvalidMediaQueries:!0,onParseError:()=>{throw e.error(`Unable to parse media query "${e.params}"`)}});if(!t||!t.mediaQueryList)return;const r=t.mediaQueryList.map((e=>e.toString())).join(","),i=transform(t.mediaQueryList);r!==i&&(e.params=`${a(...t.name)} ${i}`)}}});creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-media-minmax/dist/to-lower-case-a-z.d.ts b/node_modules/@csstools/postcss-media-minmax/dist/to-lower-case-a-z.d.ts new file mode 100644 index 00000000..396b252e --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/dist/to-lower-case-a-z.d.ts @@ -0,0 +1 @@ +export declare function toLowerCaseAZ(x: string): string; diff --git a/node_modules/@csstools/postcss-media-minmax/dist/transform-single-pair.d.ts b/node_modules/@csstools/postcss-media-minmax/dist/transform-single-pair.d.ts new file mode 100644 index 00000000..2b3e5ce0 --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/dist/transform-single-pair.d.ts @@ -0,0 +1,2 @@ +import { MediaFeature, MediaFeatureComparison, MediaFeatureValue } from '@csstools/media-query-list-parser'; +export declare function transformSingleNameValuePair(name: string, operator: MediaFeatureComparison, value: MediaFeatureValue, nameBeforeValue: boolean): MediaFeature | undefined; diff --git a/node_modules/@csstools/postcss-media-minmax/dist/transform.d.ts b/node_modules/@csstools/postcss-media-minmax/dist/transform.d.ts new file mode 100644 index 00000000..9bcd6223 --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/dist/transform.d.ts @@ -0,0 +1,2 @@ +import { MediaQuery } from '@csstools/media-query-list-parser'; +export declare function transform(mediaQueries: Array): string; diff --git a/node_modules/@csstools/postcss-media-minmax/package.json b/node_modules/@csstools/postcss-media-minmax/package.json new file mode 100644 index 00000000..1da41c6a --- /dev/null +++ b/node_modules/@csstools/postcss-media-minmax/package.json @@ -0,0 +1,92 @@ +{ + "name": "@csstools/postcss-media-minmax", + "description": "Use the range notation in CSS media queries", + "version": "1.1.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + }, + { + "name": "yisi" + } + ], + "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/media-query-list-parser": "^2.1.5" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:browser": "node ./test/_browser.mjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-media-minmax#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-media-minmax" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "media queries", + "postcss-plugin", + "range" + ], + "csstools": { + "cssdbId": "media-query-ranges", + "exportName": "postcssMediaMinMax", + "humanReadableName": "PostCSS Media MinMax", + "specUrl": "https://www.w3.org/TR/mediaqueries-4/#mq-features" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md new file mode 100644 index 00000000..71c37160 --- /dev/null +++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/CHANGELOG.md @@ -0,0 +1,68 @@ +# Changes to PostCSS Media Queries Aspect-Ratio Number Values + +### 2.0.3 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.5`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#215) (patch) + +### 2.0.2 + +_August 5, 2023_ + +- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#214) (patch) + +### 2.0.1 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) +- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#213) (patch) + +### 2.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/media-query-list-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser) to [`2.1.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/media-query-list-parser/CHANGELOG.md#212) (patch) + +### 1.0.4 + +_June 21, 2023_ + +- Updated `@csstools/media-query-list-parser` to `2.1.1` (patch) + + +### 1.0.3 + +_June 1, 2023_ + +- Updated `@csstools/media-query-list-parser` to `2.1.0` (minor) + + +### 1.0.2 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/media-query-list-parser` to `2.0.4` (patch) + +### 1.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` +- Updated `@csstools/css-parser-algorithms` to `2.0.0` (major) +- Updated `@csstools/css-tokenizer` to `2.0.0` (major) +- Updated `@csstools/media-query-list-parser` to `2.0.0` (major) + +### 1.0.0 + +_November 14, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/LICENSE.md b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md new file mode 100644 index 00000000..8ed8ca89 --- /dev/null +++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md @@ -0,0 +1,75 @@ +# PostCSS Media Queries Aspect-Ratio Number Values [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-media-queries-aspect-ratio-number-values --save-dev +``` + +[PostCSS Media Queries Aspect-Ratio Number Values] lets you use non-integer numbers and `calc()` in `aspect-ratio` feature queries following the [Media Queries 4 Specification]. + +```pcss +@media (min-aspect-ratio: 1.77) {} + +/* becomes */ + +@media (min-aspect-ratio: 177/100) {} +``` + +## Usage + +Add [PostCSS Media Queries Aspect-Ratio Number Values] to your project: + +```bash +npm install postcss @csstools/postcss-media-queries-aspect-ratio-number-values --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssMediaQueriesAspectRatioNumberValues = require('@csstools/postcss-media-queries-aspect-ratio-number-values'); + +postcss([ + postcssMediaQueriesAspectRatioNumberValues(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Media Queries Aspect-Ratio Number Values] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcssMediaQueriesAspectRatioNumberValues({ preserve: true }) +``` + +```pcss +@media (min-aspect-ratio: 1.77) {} + +/* becomes */ + +@media (min-aspect-ratio: 1.77),(min-aspect-ratio: 177/100) {} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#media-queries-aspect-ratio-number-values +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-media-queries-aspect-ratio-number-values + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Media Queries Aspect-Ratio Number Values]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-media-queries-aspect-ratio-number-values +[Media Queries 4 Specification]: https://www.w3.org/TR/mediaqueries-4/#aspect-ratio diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.cjs b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.cjs new file mode 100644 index 00000000..836078f8 --- /dev/null +++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/media-query-list-parser"),r=require("@csstools/css-parser-algorithms"),n=require("@csstools/css-tokenizer");const o=1e5,t=2147483647;function transformMediaFeatureValue(a){if(Array.isArray(a.value)&&e.matchesRatioExactly(a.value)){const e=[];for(let o=0;oe&&([e,r]=[r,e]);;){if(0==r)return e;if(0==(e%=r))return r;r%=e}}const a=new Set(["aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio"]);function transformMediaQueryList(r,n){const o=e.parse(r,{preserveInvalidMediaQueries:!0,onParseError:()=>{throw new Error(`Unable to parse media query "${r}"`)}}),t=new Set(o.map((e=>e.toString())));return o.flatMap((r=>{if(e.isMediaQueryInvalid(r))return[r.toString()];const o=e.cloneMediaQuery(r);o.walk((r=>{const n=r.node;if(e.isMediaFeaturePlain(n)||e.isMediaFeatureRangeNameValue(n)||e.isMediaFeatureRangeValueName(n)){const e=n.name.getName().toLowerCase();if(!a.has(e))return;transformMediaFeatureValue(n.value)}else if(e.isMediaFeatureRangeValueNameValue(n)){const e=n.name.getName().toLowerCase();if(!a.has(e))return;transformMediaFeatureValue(n.valueOne);transformMediaFeatureValue(n.valueTwo)}else;}));const i=r.toString(),u=o.toString();return u===i||t.has(u)?[i]:n?[i,u]:[u]})).join(",")}const creator=e=>{const r=Object.assign({preserve:!1},e);return{postcssPlugin:"postcss-media-queries-aspect-ratio-number-values",AtRule(e,{result:n}){if("media"!==e.name.toLowerCase())return;const o=e.params.toLowerCase();if(!(o.includes("aspect-ratio")||o.includes("min-aspect-ratio")||o.includes("max-aspect-ratio")||o.includes("device-aspect-ratio")||o.includes("min-device-aspect-ratio")||o.includes("max-device-aspect-ratio")))return;let t;try{if(t=transformMediaQueryList(e.params,r.preserve),t===e.params)return}catch(r){return void e.warn(n,`Failed to transform @media params for "${e.params}" with message: "${r.message}"`)}e.cloneBefore({params:t}),e.remove()}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.d.ts b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.d.ts new file mode 100644 index 00000000..92223f79 --- /dev/null +++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-media-queries-aspect-ratio-number-values plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.mjs b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.mjs new file mode 100644 index 00000000..ceb624c5 --- /dev/null +++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/index.mjs @@ -0,0 +1 @@ +import{matchesRatioExactly as e,parse as r,isMediaQueryInvalid as t,cloneMediaQuery as a,isMediaFeaturePlain as n,isMediaFeatureRangeNameValue as o,isMediaFeatureRangeValueName as i,isMediaFeatureRangeValueNameValue as u}from"@csstools/media-query-list-parser";import{isTokenNode as s,isFunctionNode as l,TokenNode as c,FunctionNode as m,SimpleBlockNode as v,WhitespaceNode as d}from"@csstools/css-parser-algorithms";import{TokenType as p,NumberType as f}from"@csstools/css-tokenizer";const g=1e5,w=2147483647;function transformMediaFeatureValue(r){if(Array.isArray(r.value)&&e(r.value)){const e=[];for(let t=0;te&&([e,r]=[r,e]);;){if(0==r)return e;if(0==(e%=r))return r;r%=e}}const N=new Set(["aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio"]);function transformMediaQueryList(e,s){const l=r(e,{preserveInvalidMediaQueries:!0,onParseError:()=>{throw new Error(`Unable to parse media query "${e}"`)}}),c=new Set(l.map((e=>e.toString())));return l.flatMap((e=>{if(t(e))return[e.toString()];const r=a(e);r.walk((e=>{const r=e.node;if(n(r)||o(r)||i(r)){const e=r.name.getName().toLowerCase();if(!N.has(e))return;transformMediaFeatureValue(r.value)}else if(u(r)){const e=r.name.getName().toLowerCase();if(!N.has(e))return;transformMediaFeatureValue(r.valueOne);transformMediaFeatureValue(r.valueTwo)}else;}));const l=e.toString(),m=r.toString();return m===l||c.has(m)?[l]:s?[l,m]:[m]})).join(",")}const creator=e=>{const r=Object.assign({preserve:!1},e);return{postcssPlugin:"postcss-media-queries-aspect-ratio-number-values",AtRule(e,{result:t}){if("media"!==e.name.toLowerCase())return;const a=e.params.toLowerCase();if(!(a.includes("aspect-ratio")||a.includes("min-aspect-ratio")||a.includes("max-aspect-ratio")||a.includes("device-aspect-ratio")||a.includes("min-device-aspect-ratio")||a.includes("max-device-aspect-ratio")))return;let n;try{if(n=transformMediaQueryList(e.params,r.preserve),n===e.params)return}catch(r){return void e.warn(t,`Failed to transform @media params for "${e.params}" with message: "${r.message}"`)}e.cloneBefore({params:n}),e.remove()}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/transform-media-feature-value.d.ts b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/transform-media-feature-value.d.ts new file mode 100644 index 00000000..1808b946 --- /dev/null +++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/transform-media-feature-value.d.ts @@ -0,0 +1,2 @@ +import { MediaFeatureValue } from '@csstools/media-query-list-parser'; +export declare function transformMediaFeatureValue(value: MediaFeatureValue): void; diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/transform-media-query-list.d.ts b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/transform-media-query-list.d.ts new file mode 100644 index 00000000..a2fcb6a9 --- /dev/null +++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/dist/transform-media-query-list.d.ts @@ -0,0 +1 @@ +export declare function transformMediaQueryList(params: string, preserve: boolean): string; diff --git a/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/package.json b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/package.json new file mode 100644 index 00000000..b7c3b033 --- /dev/null +++ b/node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/package.json @@ -0,0 +1,87 @@ +{ + "name": "@csstools/postcss-media-queries-aspect-ratio-number-values", + "description": "Use number values in aspect-ratio media queries.", + "version": "2.0.3", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/media-query-list-parser": "^2.1.5" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-media-queries-aspect-ratio-number-values#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-media-queries-aspect-ratio-number-values" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "aspect-ratio", + "media queries", + "postcss-plugin" + ], + "csstools": { + "cssdbId": "media-queries-aspect-ratio-number-values", + "exportName": "postcssMediaQueriesAspectRatioNumberValues", + "humanReadableName": "PostCSS Media Queries Aspect-Ratio Number Values", + "specUrl": "https://www.w3.org/TR/mediaqueries-4/#aspect-ratio" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-nested-calc/CHANGELOG.md b/node_modules/@csstools/postcss-nested-calc/CHANGELOG.md new file mode 100644 index 00000000..fc9be8f1 --- /dev/null +++ b/node_modules/@csstools/postcss-nested-calc/CHANGELOG.md @@ -0,0 +1,31 @@ +# Changes to PostCSS Nested Calc + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 2.0.2 + +_February 9, 2023_ + +- Reduce the amount of duplicate fallback CSS. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.0.0 + +_August 15, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-nested-calc/LICENSE.md b/node_modules/@csstools/postcss-nested-calc/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-nested-calc/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-nested-calc/README.md b/node_modules/@csstools/postcss-nested-calc/README.md new file mode 100644 index 00000000..fb7beee0 --- /dev/null +++ b/node_modules/@csstools/postcss-nested-calc/README.md @@ -0,0 +1,80 @@ +# PostCSS Nested Calc [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +[PostCSS Nested Calc] lets you use nested `calc()` expressions following the [CSS Values and Units 4 specification]. + +```pcss +.example { + order: calc(1 + calc(2 * 2)); +} + +/* becomes */ + +.example { + order: calc(1 + (2 * 2)); + order: calc(1 + calc(2 * 2)); +} +``` + +## Usage + +Add [PostCSS Nested Calc] to your project: + +```bash +npm install postcss @csstools/postcss-nested-calc --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssNestedCalc = require('@csstools/postcss-nested-calc'); + +postcss([ + postcssNestedCalc(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Nested Calc] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default the original values are preserved. + +```js +postcssNestedCalc({ preserve: false }) +``` + +```pcss +.example { + order: calc(1 + calc(2 * 2)); +} + +/* becomes */ + +.example { + order: calc(1 + (2 * 2)); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#nested-calc +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-nested-calc + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Nested Calc]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-nested-calc +[CSS Values and Units 4 specification]: https://www.w3.org/TR/css-values/#calc-func diff --git a/node_modules/@csstools/postcss-nested-calc/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-nested-calc/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..d7ae8d89 --- /dev/null +++ b/node_modules/@csstools/postcss-nested-calc/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasFallback(node: Declaration): boolean; diff --git a/node_modules/@csstools/postcss-nested-calc/dist/index.cjs b/node_modules/@csstools/postcss-nested-calc/dist/index.cjs new file mode 100644 index 00000000..a52f3cd7 --- /dev/null +++ b/node_modules/@csstools/postcss-nested-calc/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-value-parser");const t=/calc\(/gim;function hasFallback(e){const t=e.parent;if(!t)return!1;const r=t.index(e);for(let a=0;a{const a=Object.assign({preserve:!0},r);return{postcssPlugin:"postcss-nested-calc",Declaration(r,{result:n}){if((r.value.match(t)||[]).length<2)return;if(r.variable)return;if(hasFallback(r))return;const o=r.value;let s;try{s=e(o)}catch(e){return void r.warn(n,`Failed to parse value '${o}'. Leaving the original value intact.`)}if(void 0===s)return;e.walk(s.nodes,(t=>{t.type&&"function"===t.type&&"calc"===t.value.toLowerCase()&&e.walk(t.nodes,(e=>{if(e.type&&"function"===e.type)return"calc"===e.value.toLowerCase()&&void(e.value="")}))}),!0);const c=String(s);c!==o&&(r.cloneBefore({value:c}),a.preserve||r.remove())}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-nested-calc/dist/index.d.ts b/node_modules/@csstools/postcss-nested-calc/dist/index.d.ts new file mode 100644 index 00000000..139448be --- /dev/null +++ b/node_modules/@csstools/postcss-nested-calc/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-nested-calc plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: true */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-nested-calc/dist/index.mjs b/node_modules/@csstools/postcss-nested-calc/dist/index.mjs new file mode 100644 index 00000000..41363381 --- /dev/null +++ b/node_modules/@csstools/postcss-nested-calc/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-value-parser";const t=/calc\(/gim;function hasFallback(e){const t=e.parent;if(!t)return!1;const r=t.index(e);for(let a=0;a{const a=Object.assign({preserve:!0},r);return{postcssPlugin:"postcss-nested-calc",Declaration(r,{result:o}){if((r.value.match(t)||[]).length<2)return;if(r.variable)return;if(hasFallback(r))return;const n=r.value;let s;try{s=e(n)}catch(e){return void r.warn(o,`Failed to parse value '${n}'. Leaving the original value intact.`)}if(void 0===s)return;e.walk(s.nodes,(t=>{t.type&&"function"===t.type&&"calc"===t.value.toLowerCase()&&e.walk(t.nodes,(e=>{if(e.type&&"function"===e.type)return"calc"===e.value.toLowerCase()&&void(e.value="")}))}),!0);const c=String(s);c!==n&&(r.cloneBefore({value:c}),a.preserve||r.remove())}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-nested-calc/dist/occurrences.d.ts b/node_modules/@csstools/postcss-nested-calc/dist/occurrences.d.ts new file mode 100644 index 00000000..61f8b784 --- /dev/null +++ b/node_modules/@csstools/postcss-nested-calc/dist/occurrences.d.ts @@ -0,0 +1 @@ +export declare function numberOfCalcOccurrences(value: string): number; diff --git a/node_modules/@csstools/postcss-nested-calc/package.json b/node_modules/@csstools/postcss-nested-calc/package.json new file mode 100644 index 00000000..3f36e0b1 --- /dev/null +++ b/node_modules/@csstools/postcss-nested-calc/package.json @@ -0,0 +1,87 @@ +{ + "name": "@csstools/postcss-nested-calc", + "description": "Use nested calc() expressions in CSS", + "version": "3.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-nested-calc#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-nested-calc" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "calc", + "css", + "math", + "nested", + "postcss-plugin" + ], + "csstools": { + "cssdbId": "nested-calc", + "exportName": "postcssNestedCalc", + "humanReadableName": "PostCSS Nested Calc", + "specUrl": "https://www.w3.org/TR/css-values/#calc-func" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-normalize-display-values/CHANGELOG.md b/node_modules/@csstools/postcss-normalize-display-values/CHANGELOG.md new file mode 100644 index 00000000..a1c02e84 --- /dev/null +++ b/node_modules/@csstools/postcss-normalize-display-values/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changes to PostCSS Normalize Display Values + +### 3.0.1 + +_September 18, 2023_ + +- Improve performance + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.0.1 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 1.0.0 + +_January 25, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-normalize-display-values/LICENSE.md b/node_modules/@csstools/postcss-normalize-display-values/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-normalize-display-values/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-normalize-display-values/README.md b/node_modules/@csstools/postcss-normalize-display-values/README.md new file mode 100644 index 00000000..5af8725b --- /dev/null +++ b/node_modules/@csstools/postcss-normalize-display-values/README.md @@ -0,0 +1,86 @@ +# PostCSS Normalize Display Values [PostCSS Logo][postcss] + +[npm version][npm-url] +[CSS Standard Status][css-url] +[Build Status][cli-url] +[Discord][discord] + +[PostCSS Normalize Display Values] lets you specify definition of outer and inner displays types for an element. + +```pcss +.element { + display: inline flow-root; +} + +/* becomes */ + +.element { + display: inline-block; + display: inline flow-root; +} +``` + +_See prior work by [cssnano](https://github.com/cssnano) here [postcss-normalize-display-values](https://github.com/cssnano/cssnano/tree/master/packages/postcss-normalize-display-values) +To ensure long term maintenance and to provide the needed features this plugin was recreated based on cssnano's work._ + +## Usage + +Add [PostCSS Normalize Display Values] to your project: + +```bash +npm install postcss @csstools/postcss-normalize-display-values --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssNormalizeDisplayValues = require('@csstools/postcss-normalize-display-values'); + +postcss([ + postcssNormalizeDisplayValues(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Normalize Display Values] runs in all Node environments, with special +instructions for: + +| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | +| --- | --- | --- | --- | --- | + +## Options + +### preserve + +The `preserve` option determines whether the original source +is preserved. By default, it is preserved. + +```js +postcssNormalizeDisplayValues({ preserve: false }) +``` + +```pcss +.element { + display: inline flow-root; +} + +/* becomes */ + +.element { + display: inline-block; +} +``` + +[postcss]: https://github.com/postcss/postcss + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#display-two-values +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-normalize-display-values + +[CSS Fonts]: https://www.w3.org/TR/css-display-3/#the-display-properties +[Gulp PostCSS]: https://github.com/postcss/gulp-postcss +[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Loader]: https://github.com/postcss/postcss-loader +[PostCSS Normalize Display Values]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-normalize-display-values diff --git a/node_modules/@csstools/postcss-normalize-display-values/dist/index.cjs b/node_modules/@csstools/postcss-normalize-display-values/dist/index.cjs new file mode 100644 index 00000000..cdd54eb4 --- /dev/null +++ b/node_modules/@csstools/postcss-normalize-display-values/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-value-parser"),l=new Map([["block,flow","block"],["block,flow-root","flow-root"],["inline,flow","inline"],["inline,flow-root","inline-block"],["run-in,flow","run-in"],["list-item,block,flow","list-item"],["inline,flow,list-item","inline list-item"],["block,flex","flex"],["inline,flex","inline-flex"],["block,grid","grid"],["inline,grid","inline-grid"],["inline,ruby","ruby"],["block,table","table"],["inline,table","inline-table"],["table-cell,flow","table-cell"],["table-caption,flow","table-caption"],["ruby-base,flow","ruby-base"],["ruby-text,flow","ruby-text"]]);function transform(n){const{nodes:t}=e(n);if(1===t.length)return n;const o=t.filter((e=>"word"===e.type)).map((e=>e.value.toLowerCase()));if(o.length<=1)return n;const i=l.get(o.join(","));return i||n}const n=/^display$/i,creator=e=>{const l=!("preserve"in Object(e))||Boolean(null==e?void 0:e.preserve);return{postcssPlugin:"postcss-normalize-display-values",prepare(){const e=new Map;return{Declaration(t){if(!n.test(t.prop))return;const o=t.value;if(!o)return;if(e.has(o))return void(t.value!==e.get(o)&&(t.cloneBefore({value:e.get(o)}),l||t.remove()));const i=transform(o);e.set(o,i),t.value!==i&&(t.cloneBefore({value:i}),l||t.remove())}}}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-normalize-display-values/dist/index.d.ts b/node_modules/@csstools/postcss-normalize-display-values/dist/index.d.ts new file mode 100644 index 00000000..b0606a31 --- /dev/null +++ b/node_modules/@csstools/postcss-normalize-display-values/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-normalize-display-values plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: true */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-normalize-display-values/dist/index.mjs b/node_modules/@csstools/postcss-normalize-display-values/dist/index.mjs new file mode 100644 index 00000000..bda81c6d --- /dev/null +++ b/node_modules/@csstools/postcss-normalize-display-values/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-value-parser";var l=new Map([["block,flow","block"],["block,flow-root","flow-root"],["inline,flow","inline"],["inline,flow-root","inline-block"],["run-in,flow","run-in"],["list-item,block,flow","list-item"],["inline,flow,list-item","inline list-item"],["block,flex","flex"],["inline,flex","inline-flex"],["block,grid","grid"],["inline,grid","inline-grid"],["inline,ruby","ruby"],["block,table","table"],["inline,table","inline-table"],["table-cell,flow","table-cell"],["table-caption,flow","table-caption"],["ruby-base,flow","ruby-base"],["ruby-text,flow","ruby-text"]]);function transform(n){const{nodes:o}=e(n);if(1===o.length)return n;const t=o.filter((e=>"word"===e.type)).map((e=>e.value.toLowerCase()));if(t.length<=1)return n;const i=l.get(t.join(","));return i||n}const n=/^display$/i,creator=e=>{const l=!("preserve"in Object(e))||Boolean(null==e?void 0:e.preserve);return{postcssPlugin:"postcss-normalize-display-values",prepare(){const e=new Map;return{Declaration(o){if(!n.test(o.prop))return;const t=o.value;if(!t)return;if(e.has(t))return void(o.value!==e.get(t)&&(o.cloneBefore({value:e.get(t)}),l||o.remove()));const i=transform(t);e.set(t,i),o.value!==i&&(o.cloneBefore({value:i}),l||o.remove())}}}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-normalize-display-values/dist/mappings.d.ts b/node_modules/@csstools/postcss-normalize-display-values/dist/mappings.d.ts new file mode 100644 index 00000000..7ca13f69 --- /dev/null +++ b/node_modules/@csstools/postcss-normalize-display-values/dist/mappings.d.ts @@ -0,0 +1,5 @@ +/** + * Specification: https://www.w3.org/TR/css-display-3/#the-display-properties + */ +declare const _default: Map; +export default _default; diff --git a/node_modules/@csstools/postcss-normalize-display-values/package.json b/node_modules/@csstools/postcss-normalize-display-values/package.json new file mode 100644 index 00000000..d2fa0fad --- /dev/null +++ b/node_modules/@csstools/postcss-normalize-display-values/package.json @@ -0,0 +1,89 @@ +{ + "name": "@csstools/postcss-normalize-display-values", + "description": "Use two values display syntax for inner and outer display types.", + "version": "3.0.1", + "author": "Jonathan Neal ", + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-normalize-display-values" + }, + "keywords": [ + "block", + "css", + "display", + "flex", + "flow", + "flow-root", + "grid", + "inline", + "inline-block", + "inline-flex", + "inline-grid", + "inline-table", + "list-item", + "postcss-plugin", + "ruby", + "ruby-base", + "ruby-text", + "run-in", + "table", + "table-caption", + "table-cell" + ], + "csstools": { + "exportName": "postcssNormalizeDisplayValues", + "humanReadableName": "PostCSS Normalize Display Values" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-oklab-function/CHANGELOG.md b/node_modules/@csstools/postcss-oklab-function/CHANGELOG.md new file mode 100644 index 00000000..ba174ce8 --- /dev/null +++ b/node_modules/@csstools/postcss-oklab-function/CHANGELOG.md @@ -0,0 +1,165 @@ +# Changes to PostCSS OKLab Function + +### 3.0.7 + +_October 9, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch) + +### 3.0.6 + +_October 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch) + +### 3.0.5 + +_September 24, 2023_ + +- Small performance improvements +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#132) (patch) + +### 3.0.4 + +_September 18, 2023_ + +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.1`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#301) (patch) + +### 3.0.3 + +_September 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#131) (patch) + +### 3.0.2 + +_August 28, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#130) (minor) + +### 3.0.1 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.0`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#300) (major) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.2.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#122) (patch) + +### 2.2.3 + +_June 1, 2023_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `2.3.0` (minor) + + +### 2.2.2 + +_May 19, 2023_ + +- Ignore relative color syntax +- Updated `@csstools/postcss-progressive-custom-properties` to `2.2.0` (minor) +- Updated `@csstools/css-color-parser` to `1.2.0` (minor) + + + +### 2.2.1 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/css-color-parser` to `1.1.2` (patch) + +### 2.2.0 + +_March 25, 2023_ + +- Add `@csstools/css-color-parser` dependency for all color value transformations. +- Add support for `calc` expressions in color components. +- Skip `color(display-p3 0 0 0)` fallbacks when the color is already in the `srgb` gamut. + +### 2.1.0 + +_February 6, 2023_ + +- Add: `@csstools/color-helpers` dependency for all color value transformations. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.1.1 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 1.1.0 + +_April 4, 2022_ + +- Allow percentage and number units in more color components. + +```css +.percentages { + color-1: oklab(40% 0.309% 0.975%); + color-2: oklch(40% 31.718385875% 34.568626); + + /* becomes */ + + color-1: rgb(73, 71, 69); + color-1: color(display-p3 0.28515 0.27983 0.27246); + color-2: rgb(126, 37, 15); + color-2: color(display-p3 0.45368 0.16978 0.09411); +} + +.numbers { + color-1: oklab(0.40 0.001236 0.0039); + color-2: oklch(0.40 0.1268735435 34.568626); + + /* becomes */ + + color-1: rgb(73, 71, 69); + color-1: color(display-p3 0.28515 0.27983 0.27246); + color-2: rgb(126, 37, 15); + color-2: color(display-p3 0.45368 0.16978 0.09411); +} +``` + +### 1.0.2 + +_March 8, 2022_ + +- Fix gamut mapping giving overly unsaturated colors. +- Implement powerless color components in gamut mapping. + +### 1.0.1 + +_February 12, 2022_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `1.1.0`. + +### 1.0.0 + +_February 11, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-oklab-function/LICENSE.md b/node_modules/@csstools/postcss-oklab-function/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-oklab-function/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-oklab-function/README.md b/node_modules/@csstools/postcss-oklab-function/README.md new file mode 100644 index 00000000..6543b063 --- /dev/null +++ b/node_modules/@csstools/postcss-oklab-function/README.md @@ -0,0 +1,169 @@ +# PostCSS OKLab Function [PostCSS Logo][postcss] + +[npm version][npm-url] +[CSS Standard Status][css-url] +[Build Status][cli-url] +[Discord][discord] + +[PostCSS OKLab Function] lets you use `oklab` and `oklch` color functions in +CSS, following the [CSS Color] specification. + +```pcss +.test-oklab { + color: oklab(40% 0.001236 0.0039); +} + +.test-oklch { + color: oklch(40% 0.268735435 34.568626); +} + +/* becomes */ + +.test-oklab { + color: rgb(73, 71, 69); + color: color(display-p3 0.28515 0.27983 0.27246); +} + +.test-oklch { + color: rgb(131, 28, 0); + color: color(display-p3 0.49163 0.11178 0.00000); +} +``` + +## Usage + +Add [PostCSS OKLab Function] to your project: + +```bash +npm install postcss @csstools/postcss-oklab-function --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssOKLabFunction = require('@csstools/postcss-oklab-function'); + +postcss([ + postcssOKLabFunction(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS OKLab Function] runs in all Node environments, with special +instructions for: + +| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | +| --- | --- | --- | --- | --- | + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcssOKLabFunction({ preserve: true }) +``` + +```pcss +.test-oklab { + color: oklab(40% 0.001236 0.0039); +} + +.test-oklch { + color: oklch(40% 0.268735435 34.568626); +} + +/* becomes */ + +.test-oklab { + color: rgb(73, 71, 69); + color: color(display-p3 0.28515 0.27983 0.27246); + color: oklab(40% 0.001236 0.0039); +} + +.test-oklch { + color: rgb(131, 28, 0); + color: color(display-p3 0.49163 0.11178 0.00000); + color: oklch(40% 0.268735435 34.568626); +} +``` + +### enableProgressiveCustomProperties + +The `enableProgressiveCustomProperties` option determines whether the original notation +is wrapped with `@supports` when used in Custom Properties. By default, it is enabled. + +⚠️ We only recommend disabling this when you set `preserve` to `false` or if you bring your own fix for Custom Properties. See what the plugin does in its [README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties#readme). + +```js +postcssOKLabFunction({ enableProgressiveCustomProperties: false }) +``` + +```pcss +:root { + --firebrick: oklab(40% 0.234 0.39); +} + +/* becomes */ + +:root { + --firebrick: rgb(133, 0, 67); /* will never be used, not even in older browser */ + --firebrick: color(display-p3 0.49890 0.00000 0.25954); /* will never be used, not even in older browser */ + --firebrick: oklab(40% 0.234 0.39); +} +``` + +### subFeatures + +#### displayP3 + +The `subFeatures.displayP3` option determines if `color(display-p3 ...)` is used as a fallback.
+By default, it is enabled. + +`display-p3` can display wider gamut colors than `rgb` on some devices. + +```js +postcssOKLabFunction({ + subFeatures: { + displayP3: false + } +}) +``` + +```pcss +.test-oklab { + color: oklab(40% 0.001236 0.0039); +} + +.test-oklch { + color: oklch(40% 0.268735435 34.568626); +} + +/* becomes */ + +.test-oklab { + color: rgb(73, 71, 69); +} + +.test-oklch { + color: rgb(131, 28, 0); +} +``` + +## Copyright : color conversions + +This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/tree/main/css-color-4. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#oklab-function +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-oklab-function + +[CSS Color]: https://www.w3.org/TR/css-color-4/#specifying-oklab-oklch +[Gulp PostCSS]: https://github.com/postcss/gulp-postcss +[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Loader]: https://github.com/postcss/postcss-loader +[PostCSS OKLab Function]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-oklab-function diff --git a/node_modules/@csstools/postcss-oklab-function/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-oklab-function/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..d7ae8d89 --- /dev/null +++ b/node_modules/@csstools/postcss-oklab-function/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasFallback(node: Declaration): boolean; diff --git a/node_modules/@csstools/postcss-oklab-function/dist/has-supports-at-rule-ancestor.d.ts b/node_modules/@csstools/postcss-oklab-function/dist/has-supports-at-rule-ancestor.d.ts new file mode 100644 index 00000000..a46009ec --- /dev/null +++ b/node_modules/@csstools/postcss-oklab-function/dist/has-supports-at-rule-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { Node } from 'postcss'; +export declare function hasSupportsAtRuleAncestor(node: Node): boolean; diff --git a/node_modules/@csstools/postcss-oklab-function/dist/index.cjs b/node_modules/@csstools/postcss-oklab-function/dist/index.cjs new file mode 100644 index 00000000..161dff7e --- /dev/null +++ b/node_modules/@csstools/postcss-oklab-function/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e({postcssPlugin:"postcss-oklab-function",Declaration:n=>{const l=n.value;if(!o.test(l))return;if(hasFallback(n))return;if(hasSupportsAtRuleAncestor(n))return;const i=s.tokenize({css:l}),u=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(i),(e=>{if(t.isFunctionNode(e)&&a.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.serializeRGB(s)}})),c=t.stringify(u);if(c===l)return;let p=c;null!=e&&e.subFeatures.displayP3&&(p=t.stringify(t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(i),(e=>{if(t.isFunctionNode(e)&&a.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.colorDataFitsRGB_Gamut(s)?r.serializeRGB(s):r.serializeP3(s)}})))),n.cloneBefore({value:c}),null!=e&&e.subFeatures.displayP3&&p!==c&&n.cloneBefore({value:p}),null!=e&&e.preserve||n.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-oklab-function",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin; diff --git a/node_modules/@csstools/postcss-oklab-function/dist/index.d.ts b/node_modules/@csstools/postcss-oklab-function/dist/index.d.ts new file mode 100644 index 00000000..aee8de5f --- /dev/null +++ b/node_modules/@csstools/postcss-oklab-function/dist/index.d.ts @@ -0,0 +1,15 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-oklab-function plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; + /** Enable "@csstools/postcss-progressive-custom-properties". default: true */ + enableProgressiveCustomProperties?: boolean; + /** Toggle sub features. default: { displayP3: true } */ + subFeatures?: { + /** Enable displayP3 fallbacks. default: true */ + displayP3?: boolean; + }; +}; +declare const postcssPlugin: PluginCreator; +export default postcssPlugin; diff --git a/node_modules/@csstools/postcss-oklab-function/dist/index.mjs b/node_modules/@csstools/postcss-oklab-function/dist/index.mjs new file mode 100644 index 00000000..8544a15e --- /dev/null +++ b/node_modules/@csstools/postcss-oklab-function/dist/index.mjs @@ -0,0 +1 @@ +import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as r,SyntaxFlag as t,serializeRGB as o,colorDataFitsRGB_Gamut as a,serializeP3 as n}from"@csstools/css-color-parser";import{replaceComponentValues as l,parseCommaSeparatedListOfComponentValues as u,isFunctionNode as i,stringify as p}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),t=e.index(s);for(let s=0;s({postcssPlugin:"postcss-oklab-function",Declaration:m=>{const b=m.value;if(!c.test(b))return;if(hasFallback(m))return;if(hasSupportsAtRuleAncestor(m))return;const g=e({css:b}),y=l(u(g),(s=>{if(i(s)&&f.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(e.syntaxFlags.has(t.RelativeColorSyntax))return;return o(e)}})),d=p(y);if(d===b)return;let h=d;null!=s&&s.subFeatures.displayP3&&(h=p(l(u(g),(s=>{if(i(s)&&f.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(e.syntaxFlags.has(t.RelativeColorSyntax))return;return a(e)?o(e):n(e)}})))),m.cloneBefore({value:d}),null!=s&&s.subFeatures.displayP3&&h!==d&&m.cloneBefore({value:h}),null!=s&&s.preserve||m.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-oklab-function",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0;export{postcssPlugin as default}; diff --git a/node_modules/@csstools/postcss-oklab-function/package.json b/node_modules/@csstools/postcss-oklab-function/package.json new file mode 100644 index 00000000..34b11c0e --- /dev/null +++ b/node_modules/@csstools/postcss-oklab-function/package.json @@ -0,0 +1,82 @@ +{ + "name": "@csstools/postcss-oklab-function", + "description": "Use oklab() and oklch() color functions in CSS", + "version": "3.0.7", + "author": "Jonathan Neal ", + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-oklab-function#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-oklab-function" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "color", + "css", + "design", + "display-p3", + "oklab", + "oklch", + "postcss", + "postcss-plugin", + "syntax" + ], + "csstools": { + "exportName": "postcssOKLabFunction", + "humanReadableName": "PostCSS OKLab Function" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/CHANGELOG.md b/node_modules/@csstools/postcss-progressive-custom-properties/CHANGELOG.md new file mode 100644 index 00000000..ad87d81d --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/CHANGELOG.md @@ -0,0 +1,95 @@ +# Changes to PostCSS Progressive Custom Properties + +### 3.0.2 + +_October 9, 2023_ + +- Add support for css nesting +- Improve grouping of `@supports` rules +- Reduce the size of the generated `@supports` rules for values that contain `var()` + +### 3.0.1 + +_September 18, 2023_ + +- Improve performance + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 2.3.0 + +_June 1, 2023_ + +- Add support for regular properties whose values contain `var()` + +```css +.property-with-var--1 { + color: rgba(87, 107, 149, var(--opacity)); + color: rgb(87 107 149 / var(--opacity)); +} + +/* becomes */ +.property-with-var--1 { + color: rgba(87, 107, 149, var(--opacity)); +} + +@supports (color: rgb(0 0 0 / 0)) and (top: var(--f)) { + .property-with-var--1 { + color: rgb(87 107 149 / var(--opacity)); + } +} +``` + +### 2.2.0 + +_May 19, 2023_ + +- Add relative color syntax support. +- Fix false positive matches for `rgb` and `hsl` modern function notations. + +### 2.1.1 + +_March 25, 2023_ + +- Smaller `@supports` check for `color-mix`. + +### 2.1.0 + +_February 2, 2023_ + +- Group support rules with the same params to reduce the output size. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +## 1.3.0 (March 7, 2022) + +- Add matching rules for `color-mix` +- Fix matching rules for gradient functions +- Reduce matchers size + +## 1.2.0 (February 15, 2022) + +- More matching rules for [double position gradients](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-double-position-gradients#readme). + +## 1.1.0 (February 12, 2022) + +- No longer uses custom properties in `@supports` rules. +- Implement AST matching for values and units and generate minimal `@supports` for select features. + +## 1.0.0 (February 6, 2022) + +Initial release diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/LICENSE.md b/node_modules/@csstools/postcss-progressive-custom-properties/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/README.md b/node_modules/@csstools/postcss-progressive-custom-properties/README.md new file mode 100644 index 00000000..1e59a3e4 --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/README.md @@ -0,0 +1,121 @@ +# PostCSS Progressive Custom Properties [PostCSS][postcss] + +[![NPM Version][npm-img]][npm-url] +[![Build Status][cli-img]][cli-url] +[Discord][discord] + +[PostCSS Progressive Custom Properties] is a utility plugin to correctly declare Custom Property fallbacks and enhancements. + +⚠️ It is not intended to be used directly by stylesheet authors. +Meant to be included in other PostCSS plugins that provide CSS value transforms as fallbacks. + +[Custom Properties are not discarded like regular declarations when invalid.](https://www.w3.org/TR/css-variables-1/#invalid-variables) +This makes it tricky to provide fallback values for older browsers. + +The solution is to wrap Custom Property declarations in an `@supports` rule. + +```pcss +:root { + /* fallback */ + --a-color: red; + /* progressive enhancement */ + --a-color: oklch(40% 0.234 0.39 / var(--opacity-50)); +} + +/* becomes */ + +:root { + --a-color: red; +} + +@supports (color: oklch(0% 0 0)) { + :root { + --a-color: oklch(40% 0.234 0.39 / var(--opacity-50)); + } +} +``` + +## Ignored values + +`initial` and `` are ignored. + +```pcss +.initial { + --prop-1: red; + --prop-1: initial; +} + +.white-space { + --prop-1: red; + --prop-1:; + + --prop-2: red; + --prop-2: ; + + --prop-3: red; + --prop-3: ; +} + +/* remains */ + +.initial { + --prop-1: red; + --prop-1: initial; +} + +.white-space { + --prop-1: red; + --prop-1:; + + --prop-2: red; + --prop-2: ; + + --prop-3: red; + --prop-3: ; +} +``` + +## Usage + +Add [PostCSS Progressive Custom Properties] to your project: + +```bash +npm install @csstools/postcss-progressive-custom-properties --save-dev +``` + +Use [PostCSS Progressive Custom Properties] as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssCustomProperties = require('@csstools/postcss-progressive-custom-properties'); + +postcss([ + postcssProgressiveCustomProperties() +]).process(YOUR_CSS /*, processOptions */); +``` + +## @supports + +This plugin wraps Custom Property override declarations in an `@supports` rule. +With PostCSS 8 this trigger declaration visitors to run again. + +Make sure your plugin detects and ignores values inside relevant `@supports` rules. + +## Reading list + +- https://moderncss.dev/how-custom-property-values-are-computed/ + +[PostCSS Progressive Custom Properties] runs in all Node environments, with special instructions for: + +| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | +| --- | --- | --- | --- | --- | + + +[cli-img]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml/badge.svg +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-img]: https://img.shields.io/npm/v/@csstools/postcss-progressive-custom-properties.svg +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-progressive-custom-properties + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Progressive Custom Properties]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/dist/conditions-from-values.d.ts b/node_modules/@csstools/postcss-progressive-custom-properties/dist/conditions-from-values.d.ts new file mode 100644 index 00000000..250b5e91 --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/dist/conditions-from-values.d.ts @@ -0,0 +1,3 @@ +export declare function conditionsFromValue(value: string, mustContainVar?: boolean): { + support: Array; +}; diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/dist/custom/double-position-gradients.d.ts b/node_modules/@csstools/postcss-progressive-custom-properties/dist/custom/double-position-gradients.d.ts new file mode 100644 index 00000000..6ca404c9 --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/dist/custom/double-position-gradients.d.ts @@ -0,0 +1,2 @@ +import type { Node } from 'postcss-value-parser'; +export declare function doublePositionGradients(node: Node): Array; diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/dist/index.cjs b/node_modules/@csstools/postcss-progressive-custom-properties/dist/index.cjs new file mode 100644 index 00000000..35a10519 --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-value-parser");const a=["at","bottom","center","circle","closest-corner","closest-side","ellipse","farthest-corner","farthest-side","from","in","left","right","to","top"];function doublePositionGradients(e){const r=[],p=e.value.toLowerCase();if("function"===e.type&&("conic-gradient"===p||"linear-gradient"===p||"radial-gradient"===p||"repeating-conic-gradient"===p||"repeating-linear-gradient"===p||"repeating-radial-gradient"===p)){let p=0,t=!1,i=!1;e:for(let o=0;oa.includes(e.sniff)));let s=!1;try{e(a).walk((a=>{"function"===a.type&&p.test(a.value)&&(s=!0);try{const r=e.unit(a.value);!1!==r&&(a.dimension=r)}catch{}for(let e=0;e({postcssPlugin:"postcss-progressive-custom-properties",prepare(){const e=new WeakMap;return{OnceExit:(a,{postcss:r})=>{a.walkDecls((a=>{if(!a.parent)return;const p=e.get(a.parent)||{conditionalRules:[],propNames:new Set,lastConditionParams:{support:void 0},lastConditionalRule:void 0};if(e.set(a.parent,p),a.variable){if(!p.propNames.has(a.prop))return void p.propNames.add(a.prop)}else{const e=a.prop.toLowerCase();if(!p.propNames.has(e))return void p.propNames.add(e)}if(!a.variable&&!t.test(a.value))return;if(i.test(a.value))return;if(o.test(a.value))return;const s=!a.variable,l=conditionsFromValue(a.value,s).support.join(" and ");if(!l)return;if(p.lastConditionParams.support!==l&&(p.lastConditionalRule=void 0),p.lastConditionalRule)return p.lastConditionalRule.append(a.clone()),void a.remove();const y=[];if(l&&y.push(r.atRule({name:"supports",params:l,source:a.parent.source,raws:{before:"\n\n",after:"\n"}})),!y.length)return;for(let e=0;e{const r=e.get(a);r&&0!==r.conditionalRules.length&&r.conditionalRules.reverse().forEach((e=>{a.after(e)}))}))}}}});creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/dist/index.d.ts b/node_modules/@csstools/postcss-progressive-custom-properties/dist/index.d.ts new file mode 100644 index 00000000..5b5a74dd --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/dist/index.d.ts @@ -0,0 +1,3 @@ +import { type PluginCreator } from 'postcss'; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/dist/index.mjs b/node_modules/@csstools/postcss-progressive-custom-properties/dist/index.mjs new file mode 100644 index 00000000..19ceb72e --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-value-parser";const a=["at","bottom","center","circle","closest-corner","closest-side","ellipse","farthest-corner","farthest-side","from","in","left","right","to","top"];function doublePositionGradients(e){const r=[],p=e.value.toLowerCase();if("function"===e.type&&("conic-gradient"===p||"linear-gradient"===p||"radial-gradient"===p||"repeating-conic-gradient"===p||"repeating-linear-gradient"===p||"repeating-radial-gradient"===p)){let p=0,t=!1,i=!1;e:for(let o=0;oa.includes(e.sniff)));let s=!1;try{e(a).walk((a=>{"function"===a.type&&p.test(a.value)&&(s=!0);try{const r=e.unit(a.value);!1!==r&&(a.dimension=r)}catch{}for(let e=0;e({postcssPlugin:"postcss-progressive-custom-properties",prepare(){const e=new WeakMap;return{OnceExit:(a,{postcss:r})=>{a.walkDecls((a=>{if(!a.parent)return;const p=e.get(a.parent)||{conditionalRules:[],propNames:new Set,lastConditionParams:{support:void 0},lastConditionalRule:void 0};if(e.set(a.parent,p),a.variable){if(!p.propNames.has(a.prop))return void p.propNames.add(a.prop)}else{const e=a.prop.toLowerCase();if(!p.propNames.has(e))return void p.propNames.add(e)}if(!a.variable&&!t.test(a.value))return;if(i.test(a.value))return;if(o.test(a.value))return;const s=!a.variable,l=conditionsFromValue(a.value,s).support.join(" and ");if(!l)return;if(p.lastConditionParams.support!==l&&(p.lastConditionalRule=void 0),p.lastConditionalRule)return p.lastConditionalRule.append(a.clone()),void a.remove();const y=[];if(l&&y.push(r.atRule({name:"supports",params:l,source:a.parent.source,raws:{before:"\n\n",after:"\n"}})),!y.length)return;for(let e=0;e{const r=e.get(a);r&&0!==r.conditionalRules.length&&r.conditionalRules.reverse().forEach((e=>{a.after(e)}))}))}}}});creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/dist/match.d.ts b/node_modules/@csstools/postcss-progressive-custom-properties/dist/match.d.ts new file mode 100644 index 00000000..95a56e03 --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/dist/match.d.ts @@ -0,0 +1,11 @@ +type MatcherNode = { + type: string; + value?: string; + nodes?: Array; + dimension?: { + unit?: string; + }; + isVariable?: boolean; +}; +export declare function matches(a: MatcherNode, b: MatcherNode): boolean; +export {}; diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/dist/matchers.d.ts b/node_modules/@csstools/postcss-progressive-custom-properties/dist/matchers.d.ts new file mode 100644 index 00000000..746c0edb --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/dist/matchers.d.ts @@ -0,0 +1,33 @@ +export declare const matchers: ({ + supports: string; + property: string; + sniff: string; + matchers: { + type: string; + value: string; + nodes: ({ + type: string; + value: string; + isVariable?: undefined; + } | { + type: string; + value?: undefined; + isVariable?: undefined; + } | { + type: string; + isVariable: boolean; + value?: undefined; + })[]; + }[]; +} | { + supports: string; + property: string; + sniff: string; + matchers: { + type: string; + value: string; + dimension: { + unit: string; + }; + }[]; +})[]; diff --git a/node_modules/@csstools/postcss-progressive-custom-properties/package.json b/node_modules/@csstools/postcss-progressive-custom-properties/package.json new file mode 100644 index 00000000..6a30f654 --- /dev/null +++ b/node_modules/@csstools/postcss-progressive-custom-properties/package.json @@ -0,0 +1,78 @@ +{ + "name": "@csstools/postcss-progressive-custom-properties", + "description": "Correctly declare progressive enhancements for CSS Custom Properties.", + "version": "3.0.2", + "author": "Jonathan Neal ", + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "node ./generate/matchers.mjs && eslint --fix ./src/matchers.ts && rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-progressive-custom-properties" + }, + "keywords": [ + "css", + "custom", + "declarations", + "postcss", + "postcss-plugin", + "progressive", + "properties", + "utility", + "variables", + "vars" + ], + "csstools": { + "exportName": "postcssProgressiveCustomProperties", + "humanReadableName": "PostCSS Progressive Custom Properties" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-relative-color-syntax/CHANGELOG.md b/node_modules/@csstools/postcss-relative-color-syntax/CHANGELOG.md new file mode 100644 index 00000000..70ab0992 --- /dev/null +++ b/node_modules/@csstools/postcss-relative-color-syntax/CHANGELOG.md @@ -0,0 +1,79 @@ +# Changes to PostCSS Relative Color Syntax + +### 2.0.7 + +_October 9, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.4.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#140) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#302) (patch) + +### 2.0.6 + +_October 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#133) (patch) + +### 2.0.5 + +_September 24, 2023_ + +- Small performance improvements +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#132) (patch) + +### 2.0.4 + +_September 18, 2023_ + +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.1`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#301) (patch) + +### 2.0.3 + +_September 2, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#131) (patch) + +### 2.0.2 + +_August 28, 2023_ + +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#130) (minor) + +### 2.0.1 + +_July 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) + +### 2.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/postcss-progressive-custom-properties`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties) to [`3.0.0`](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-progressive-custom-properties/CHANGELOG.md#300) (major) +- Updated [`@csstools/css-color-parser`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser) to [`1.2.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-color-parser/CHANGELOG.md#122) (patch) + +### 1.0.2 + +_June 14, 2023_ + +- Fix value calculation for `hue` components in relative color syntax. + +### 1.0.1 + +_June 1, 2023_ + +- Updated `@csstools/postcss-progressive-custom-properties` to `2.3.0` (minor) + +### 1.0.0 + +_May 19, 2023_ + +- Initial version +- Updated `@csstools/postcss-progressive-custom-properties` to `2.2.0` (minor) +- Updated `@csstools/css-color-parser` to `1.2.0` (minor) + + diff --git a/node_modules/@csstools/postcss-relative-color-syntax/LICENSE.md b/node_modules/@csstools/postcss-relative-color-syntax/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-relative-color-syntax/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-relative-color-syntax/README.md b/node_modules/@csstools/postcss-relative-color-syntax/README.md new file mode 100644 index 00000000..f61aaa14 --- /dev/null +++ b/node_modules/@csstools/postcss-relative-color-syntax/README.md @@ -0,0 +1,84 @@ +# PostCSS Relative Color Syntax [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-relative-color-syntax --save-dev +``` + +[PostCSS Relative Color Syntax] lets you use the relative color syntax in CSS color functions following [CSS Color Module 5]. + +```pcss +.example { + background: oklab(from oklab(54.3% -22.5% -5%) calc(1.0 - l) calc(a * 0.8) b); +} + +/* becomes */ + +.example { + background: rgb(12, 100, 100); +} +``` + +## Usage + +Add [PostCSS Relative Color Syntax] to your project: + +```bash +npm install postcss @csstools/postcss-relative-color-syntax --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssRelativeColorSyntax = require('@csstools/postcss-relative-color-syntax'); + +postcss([ + postcssRelativeColorSyntax(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Relative Color Syntax] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcssRelativeColorSyntax({ preserve: true }) +``` + +```pcss +.example { + background: oklab(from oklab(54.3% -22.5% -5%) calc(1.0 - l) calc(a * 0.8) b); +} + +/* becomes */ + +.example { + background: rgb(12, 100, 100); + background: oklab(from oklab(54.3% -22.5% -5%) calc(1.0 - l) calc(a * 0.8) b); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#relative-color-syntax +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-relative-color-syntax + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Relative Color Syntax]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-relative-color-syntax +[CSS Color Module 5]: https://www.w3.org/TR/css-color-5/#relative-colors diff --git a/node_modules/@csstools/postcss-relative-color-syntax/dist/has-fallback-decl.d.ts b/node_modules/@csstools/postcss-relative-color-syntax/dist/has-fallback-decl.d.ts new file mode 100644 index 00000000..d7ae8d89 --- /dev/null +++ b/node_modules/@csstools/postcss-relative-color-syntax/dist/has-fallback-decl.d.ts @@ -0,0 +1,2 @@ +import type { Declaration } from 'postcss'; +export declare function hasFallback(node: Declaration): boolean; diff --git a/node_modules/@csstools/postcss-relative-color-syntax/dist/has-supports-at-rule-ancestor.d.ts b/node_modules/@csstools/postcss-relative-color-syntax/dist/has-supports-at-rule-ancestor.d.ts new file mode 100644 index 00000000..a46009ec --- /dev/null +++ b/node_modules/@csstools/postcss-relative-color-syntax/dist/has-supports-at-rule-ancestor.d.ts @@ -0,0 +1,2 @@ +import type { Node } from 'postcss'; +export declare function hasSupportsAtRuleAncestor(node: Node): boolean; diff --git a/node_modules/@csstools/postcss-relative-color-syntax/dist/index.cjs b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.cjs new file mode 100644 index 00000000..6d266ad5 --- /dev/null +++ b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/postcss-progressive-custom-properties"),s=require("@csstools/css-tokenizer"),r=require("@csstools/css-color-parser"),t=require("@csstools/css-parser-algorithms");function hasFallback(e){const s=e.parent;if(!s)return!1;const r=e.prop.toLowerCase(),t=s.index(e);for(let e=0;e({postcssPlugin:"postcss-relative-color-syntax",Declaration:o=>{const i=o.value;if(!a.test(i))return;if(!n.test(i))return;if(hasFallback(o))return;if(hasSupportsAtRuleAncestor(o))return;const u=s.tokenize({css:i}),c=t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(u),(e=>{if(t.isFunctionNode(e)&&l.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(!s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.serializeRGB(s)}})),p=t.stringify(c);if(p===i)return;let f=p;null!=e&&e.subFeatures.displayP3&&(f=t.stringify(t.replaceComponentValues(t.parseCommaSeparatedListOfComponentValues(u),(e=>{if(t.isFunctionNode(e)&&l.test(e.getName())){const s=r.color(e);if(!s)return;if(s.syntaxFlags.has(r.SyntaxFlag.HasNoneKeywords))return;if(!s.syntaxFlags.has(r.SyntaxFlag.RelativeColorSyntax))return;return r.colorDataFitsRGB_Gamut(s)?r.serializeRGB(s):r.serializeP3(s)}})))),o.cloneBefore({value:p}),null!=e&&e.subFeatures.displayP3&&f!==p&&o.cloneBefore({value:f}),null!=e&&e.preserve||o.remove()}});basePlugin.postcss=!0;const postcssPlugin=s=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},s);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-relative-color-syntax",plugins:[e(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0,module.exports=postcssPlugin; diff --git a/node_modules/@csstools/postcss-relative-color-syntax/dist/index.d.ts b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.d.ts new file mode 100644 index 00000000..15f89fd4 --- /dev/null +++ b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.d.ts @@ -0,0 +1,15 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-relative-color-syntax plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; + /** Enable "@csstools/postcss-progressive-custom-properties". default: true */ + enableProgressiveCustomProperties?: boolean; + /** Toggle sub features. default: { displayP3: true } */ + subFeatures?: { + /** Enable displayP3 fallbacks. default: true */ + displayP3?: boolean; + }; +}; +declare const postcssPlugin: PluginCreator; +export default postcssPlugin; diff --git a/node_modules/@csstools/postcss-relative-color-syntax/dist/index.mjs b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.mjs new file mode 100644 index 00000000..0c2dd8bd --- /dev/null +++ b/node_modules/@csstools/postcss-relative-color-syntax/dist/index.mjs @@ -0,0 +1 @@ +import s from"@csstools/postcss-progressive-custom-properties";import{tokenize as e}from"@csstools/css-tokenizer";import{color as r,SyntaxFlag as t,serializeRGB as o,colorDataFitsRGB_Gamut as a,serializeP3 as l}from"@csstools/css-color-parser";import{replaceComponentValues as n,parseCommaSeparatedListOfComponentValues as u,isFunctionNode as c,stringify as i}from"@csstools/css-parser-algorithms";function hasFallback(s){const e=s.parent;if(!e)return!1;const r=s.prop.toLowerCase(),t=e.index(s);for(let s=0;s({postcssPlugin:"postcss-relative-color-syntax",Declaration:p=>{const m=p.value;if(!f.test(m))return;if(!h.test(m))return;if(hasFallback(p))return;if(hasSupportsAtRuleAncestor(p))return;const g=e({css:m}),y=n(u(g),(s=>{if(c(s)&&b.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(!e.syntaxFlags.has(t.RelativeColorSyntax))return;return o(e)}})),v=i(y);if(v===m)return;let F=v;null!=s&&s.subFeatures.displayP3&&(F=i(n(u(g),(s=>{if(c(s)&&b.test(s.getName())){const e=r(s);if(!e)return;if(e.syntaxFlags.has(t.HasNoneKeywords))return;if(!e.syntaxFlags.has(t.RelativeColorSyntax))return;return a(e)?o(e):l(e)}})))),p.cloneBefore({value:v}),null!=s&&s.subFeatures.displayP3&&F!==v&&p.cloneBefore({value:F}),null!=s&&s.preserve||p.remove()}});basePlugin.postcss=!0;const postcssPlugin=e=>{const r=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},e);return r.subFeatures=Object.assign({displayP3:!0},r.subFeatures),r.enableProgressiveCustomProperties&&(r.preserve||r.subFeatures.displayP3)?{postcssPlugin:"postcss-relative-color-syntax",plugins:[s(),basePlugin(r)]}:basePlugin(r)};postcssPlugin.postcss=!0;export{postcssPlugin as default}; diff --git a/node_modules/@csstools/postcss-relative-color-syntax/package.json b/node_modules/@csstools/postcss-relative-color-syntax/package.json new file mode 100644 index 00000000..5667037c --- /dev/null +++ b/node_modules/@csstools/postcss-relative-color-syntax/package.json @@ -0,0 +1,88 @@ +{ + "name": "@csstools/postcss-relative-color-syntax", + "description": "Use the relative color syntax in CSS", + "version": "2.0.7", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-color-parser": "^1.4.0", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.2" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-relative-color-syntax#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-relative-color-syntax" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "color", + "postcss-plugin", + "relative color syntax" + ], + "csstools": { + "cssdbId": "relative-color-syntax", + "exportName": "postcssRelativeColorSyntax", + "humanReadableName": "PostCSS Relative Color Syntax", + "specUrl": "https://www.w3.org/TR/css-color-5/#relative-colors" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-scope-pseudo-class/CHANGELOG.md b/node_modules/@csstools/postcss-scope-pseudo-class/CHANGELOG.md new file mode 100644 index 00000000..18bfb712 --- /dev/null +++ b/node_modules/@csstools/postcss-scope-pseudo-class/CHANGELOG.md @@ -0,0 +1,32 @@ +# Changes to PostCSS Scope Pseudo Class + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 2.0.2 + +_February 9, 2023_ + +- Reduce the amount of duplicate fallback CSS. + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). +- Fix: Do not throw when a selector is invalid, show a warning instead. + +### 1.0.0 + +_November 4, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-scope-pseudo-class/LICENSE.md b/node_modules/@csstools/postcss-scope-pseudo-class/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-scope-pseudo-class/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-scope-pseudo-class/README.md b/node_modules/@csstools/postcss-scope-pseudo-class/README.md new file mode 100644 index 00000000..eb1ff5ba --- /dev/null +++ b/node_modules/@csstools/postcss-scope-pseudo-class/README.md @@ -0,0 +1,82 @@ +# PostCSS Scope Pseudo Class [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +[PostCSS Scope Pseudo Class] lets you use the `:scope` Pseudo-class following the [Selectors 4 specification]. + +```pcss +:scope { + color: green; +} + +/* becomes */ + +:root { + color: green; +} +``` + +## Usage + +Add [PostCSS Scope Pseudo Class] to your project: + +```bash +npm install postcss @csstools/postcss-scope-pseudo-class --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssScopePseudoClass = require('@csstools/postcss-scope-pseudo-class'); + +postcss([ + postcssScopePseudoClass(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Scope Pseudo Class] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcssScopePseudoClass({ preserve: true }) +``` + +```pcss +:scope { + color: green; +} + +/* becomes */ + +:root { + color: green; +} +:scope { + color: green; +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#scope-pseudo-class +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-scope-pseudo-class + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Scope Pseudo Class]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-scope-pseudo-class +[Selectors 4 specification]: https://www.w3.org/TR/selectors-4/#the-scope-pseudo diff --git a/node_modules/@csstools/postcss-scope-pseudo-class/dist/index.cjs b/node_modules/@csstools/postcss-scope-pseudo-class/dist/index.cjs new file mode 100644 index 00000000..e4bc3bd9 --- /dev/null +++ b/node_modules/@csstools/postcss-scope-pseudo-class/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-selector-parser");const creator=s=>{const r=Object.assign({preserve:!1},s);return{postcssPlugin:"postcss-scope-pseudo-class",prepare(){const s=new WeakSet;return{Rule(t,{result:o}){if(!t.selector.toLowerCase().includes(":scope"))return;if(s.has(t))return;{let e=t.parent;for(;e;){if("atrule"===e.type&&"scope"===e.name.toLowerCase())return;e=e.parent}}let a=t.selector;try{const s=e().astSync(a);if(!s)return;s.walkPseudos((e=>{if(":has"===e.value.toLowerCase())return!1;":scope"===e.value.toLowerCase()&&(e.value=":root")})),a=s.toString()}catch(e){t.warn(o,`Failed to parse selector : "${t.selector}" with message: "${e.message}"`)}a!==t.selector&&(s.add(t),t.cloneBefore({selector:a}),r.preserve||t.remove())}}}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-scope-pseudo-class/dist/index.d.ts b/node_modules/@csstools/postcss-scope-pseudo-class/dist/index.d.ts new file mode 100644 index 00000000..77dc51e7 --- /dev/null +++ b/node_modules/@csstools/postcss-scope-pseudo-class/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-scope-pseudo-class plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-scope-pseudo-class/dist/index.mjs b/node_modules/@csstools/postcss-scope-pseudo-class/dist/index.mjs new file mode 100644 index 00000000..76a5d07b --- /dev/null +++ b/node_modules/@csstools/postcss-scope-pseudo-class/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-selector-parser";const creator=s=>{const r=Object.assign({preserve:!1},s);return{postcssPlugin:"postcss-scope-pseudo-class",prepare(){const s=new WeakSet;return{Rule(t,{result:o}){if(!t.selector.toLowerCase().includes(":scope"))return;if(s.has(t))return;{let e=t.parent;for(;e;){if("atrule"===e.type&&"scope"===e.name.toLowerCase())return;e=e.parent}}let a=t.selector;try{const s=e().astSync(a);if(!s)return;s.walkPseudos((e=>{if(":has"===e.value.toLowerCase())return!1;":scope"===e.value.toLowerCase()&&(e.value=":root")})),a=s.toString()}catch(e){t.warn(o,`Failed to parse selector : "${t.selector}" with message: "${e.message}"`)}a!==t.selector&&(s.add(t),t.cloneBefore({selector:a}),r.preserve||t.remove())}}}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-scope-pseudo-class/package.json b/node_modules/@csstools/postcss-scope-pseudo-class/package.json new file mode 100644 index 00000000..2e67a480 --- /dev/null +++ b/node_modules/@csstools/postcss-scope-pseudo-class/package.json @@ -0,0 +1,86 @@ +{ + "name": "@csstools/postcss-scope-pseudo-class", + "description": "The Reference Element Pseudo-class: :scope", + "version": "3.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-scope-pseudo-class#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-scope-pseudo-class" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "postcss-plugin", + "pseudo", + "scope", + "selector" + ], + "csstools": { + "cssdbId": "scope-pseudo-class", + "exportName": "postcssScopePseudoClass", + "humanReadableName": "PostCSS Scope Pseudo Class", + "specUrl": "https://www.w3.org/TR/selectors-4/#the-scope-pseudo" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md b/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md new file mode 100644 index 00000000..5f310e1a --- /dev/null +++ b/node_modules/@csstools/postcss-stepped-value-functions/CHANGELOG.md @@ -0,0 +1,66 @@ +# Changes to PostCSS Stepped Value Functions + +### 3.0.2 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#114) (patch) + +### 3.0.1 + +_July 24, 2023_ + +- Use the latest utilities from `@csstools/css-tokenizer` to reduce the bundle size. +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#113) (patch) + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#112) (patch) + +### 2.1.1 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/css-calc` to `1.1.1` (patch) + +### 2.1.0 + +_February 21, 2023_ + +- Removed: warnings on `var()` or otherwise unconvertible values (doesn't affect the output, non-breaking) +- Added: `@csstools/css-calc` +- Added: unit conversions (`mod(735ms, 0.1s)`) + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.0.1 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 1.0.0 + +_May 2, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-stepped-value-functions/LICENSE.md b/node_modules/@csstools/postcss-stepped-value-functions/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-stepped-value-functions/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-stepped-value-functions/README.md b/node_modules/@csstools/postcss-stepped-value-functions/README.md new file mode 100644 index 00000000..54a2a1c5 --- /dev/null +++ b/node_modules/@csstools/postcss-stepped-value-functions/README.md @@ -0,0 +1,120 @@ +# PostCSS Stepped Value Functions [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-stepped-value-functions --save-dev +``` + +[PostCSS Stepped Value Functions] lets you use `round`, `rem` and `mod` stepped value functions, following the [CSS Values 4]. + +```pcss +.test-functions { + padding: 8px mod(18px, 5px) 1px calc(rem(15px, 6px) + 50%); + transform: rotate(mod(-140deg, -90deg)); + top: round(15px, 4px); + right: round(nearest, 15px, 4px); + bottom: round(up, 15px, 7px); + left: round(down, 15px, 4px); + width: round(to-zero, 15px, 4px); +} + +/* becomes */ + +.test-functions { + padding: 8px 3px 1px calc(3px + 50%); + transform: rotate(-50deg); + top: 16px; + right: 16px; + bottom: 21px; + left: 12px; + width: 12px; +} +``` + +## Usage + +Add [PostCSS Stepped Value Functions] to your project: + +```bash +npm install postcss @csstools/postcss-stepped-value-functions --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssSteppedValueFunctions = require('@csstools/postcss-stepped-value-functions'); + +postcss([ + postcssSteppedValueFunctions(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Stepped Value Functions] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## ⚠️ About custom properties + +Given the dynamic nature of custom properties it's impossible to know what the variable value is, which means the plugin can't compute a final value for the stylesheet. + +Because of that, any usage that contains a `var` is skipped. + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcssSteppedValueFunctions({ preserve: true }) +``` + +```pcss +.test-functions { + padding: 8px mod(18px, 5px) 1px calc(rem(15px, 6px) + 50%); + transform: rotate(mod(-140deg, -90deg)); + top: round(15px, 4px); + right: round(nearest, 15px, 4px); + bottom: round(up, 15px, 7px); + left: round(down, 15px, 4px); + width: round(to-zero, 15px, 4px); +} + +/* becomes */ + +.test-functions { + padding: 8px 3px 1px calc(3px + 50%); + padding: 8px mod(18px, 5px) 1px calc(rem(15px, 6px) + 50%); + transform: rotate(-50deg); + transform: rotate(mod(-140deg, -90deg)); + top: 16px; + top: round(15px, 4px); + right: 16px; + right: round(nearest, 15px, 4px); + bottom: 21px; + bottom: round(up, 15px, 7px); + left: 12px; + left: round(down, 15px, 4px); + width: 12px; + width: round(to-zero, 15px, 4px); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#stepped-value-functions +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-stepped-value-functions + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Stepped Value Functions]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-stepped-value-functions +[CSS Values 4]: https://www.w3.org/TR/css-values-4/#round-func diff --git a/node_modules/@csstools/postcss-stepped-value-functions/dist/calc.d.ts b/node_modules/@csstools/postcss-stepped-value-functions/dist/calc.d.ts new file mode 100644 index 00000000..5a1ee11e --- /dev/null +++ b/node_modules/@csstools/postcss-stepped-value-functions/dist/calc.d.ts @@ -0,0 +1 @@ +export declare function calc(css: string): string; diff --git a/node_modules/@csstools/postcss-stepped-value-functions/dist/checks.d.ts b/node_modules/@csstools/postcss-stepped-value-functions/dist/checks.d.ts new file mode 100644 index 00000000..6623beb7 --- /dev/null +++ b/node_modules/@csstools/postcss-stepped-value-functions/dist/checks.d.ts @@ -0,0 +1,2 @@ +export declare const FUNCTION_NAME_REGEXP: RegExp; +export declare const FUNCTION_CALL_REGEXP: RegExp; diff --git a/node_modules/@csstools/postcss-stepped-value-functions/dist/index.cjs b/node_modules/@csstools/postcss-stepped-value-functions/dist/index.cjs new file mode 100644 index 00000000..0ccad206 --- /dev/null +++ b/node_modules/@csstools/postcss-stepped-value-functions/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/css-calc"),s=require("@csstools/css-parser-algorithms"),o=require("@csstools/css-tokenizer");const n=["mod","rem","round"],t=new RegExp(`^(${n.join("|")})$`,"i"),r=new RegExp(`(${n.join("|")})\\(`,"i");function calc(n){const r=o.tokenize({css:n});return r.some((e=>e[0]===o.TokenType.Function&&t.test(e[4].value)))?s.stringify(e.calcFromComponentValues(s.parseCommaSeparatedListOfComponentValues(r),{precision:5,toCanonicalUnits:!0})):n}const creator=e=>{const s=Object.assign({preserve:!1,onInvalid:""},e);return{postcssPlugin:"postcss-stepped-value-functions",Declaration(e){if(!r.test(e.value))return;const o=calc(e.value);o!==e.value&&(e.cloneBefore({value:o}),s.preserve||e.remove())}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-stepped-value-functions/dist/index.d.ts b/node_modules/@csstools/postcss-stepped-value-functions/dist/index.d.ts new file mode 100644 index 00000000..c7772f76 --- /dev/null +++ b/node_modules/@csstools/postcss-stepped-value-functions/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-stepped-value-functions plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-stepped-value-functions/dist/index.mjs b/node_modules/@csstools/postcss-stepped-value-functions/dist/index.mjs new file mode 100644 index 00000000..2e8dbdf0 --- /dev/null +++ b/node_modules/@csstools/postcss-stepped-value-functions/dist/index.mjs @@ -0,0 +1 @@ +import{calcFromComponentValues as s}from"@csstools/css-calc";import{stringify as o,parseCommaSeparatedListOfComponentValues as e}from"@csstools/css-parser-algorithms";import{tokenize as t,TokenType as n}from"@csstools/css-tokenizer";const c=["mod","rem","round"],r=new RegExp(`^(${c.join("|")})$`,"i"),i=new RegExp(`(${c.join("|")})\\(`,"i");function calc(c){const i=t({css:c});return i.some((s=>s[0]===n.Function&&r.test(s[4].value)))?o(s(e(i),{precision:5,toCanonicalUnits:!0})):c}const creator=s=>{const o=Object.assign({preserve:!1,onInvalid:""},s);return{postcssPlugin:"postcss-stepped-value-functions",Declaration(s){if(!i.test(s.value))return;const e=calc(s.value);e!==s.value&&(s.cloneBefore({value:e}),o.preserve||s.remove())}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-stepped-value-functions/package.json b/node_modules/@csstools/postcss-stepped-value-functions/package.json new file mode 100644 index 00000000..eab24b20 --- /dev/null +++ b/node_modules/@csstools/postcss-stepped-value-functions/package.json @@ -0,0 +1,90 @@ +{ + "name": "@csstools/postcss-stepped-value-functions", + "description": "Use round, rem and mod functions in CSS", + "version": "3.0.2", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-stepped-value-functions#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-stepped-value-functions" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "css", + "modulus", + "postcss-plugin", + "remainder", + "round", + "stepped" + ], + "csstools": { + "cssdbId": "stepped-value-functions", + "exportName": "postcssSteppedValueFunctions", + "humanReadableName": "PostCSS Stepped Value Functions", + "specUrl": "https://www.w3.org/TR/css-values-4/#round-func" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-text-decoration-shorthand/CHANGELOG.md b/node_modules/@csstools/postcss-text-decoration-shorthand/CHANGELOG.md new file mode 100644 index 00000000..00ec3a12 --- /dev/null +++ b/node_modules/@csstools/postcss-text-decoration-shorthand/CHANGELOG.md @@ -0,0 +1,82 @@ +# Changes to PostCSS Text Decoration Shorthand + +### 3.0.3 + +_September 18, 2023_ + +- Improve performance + +### 3.0.2 + +_September 2, 2023_ + +- Updated [`@csstools/color-helpers`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers) to [`3.0.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers/CHANGELOG.md#302) (patch) + +### 3.0.1 + +_August 28, 2023_ + +- Updated [`@csstools/color-helpers`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers) to [`3.0.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers/CHANGELOG.md#301) (patch) + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/color-helpers`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers) to [`3.0.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/color-helpers/CHANGELOG.md#300) (major) + +### 2.2.4 + +_May 19, 2023_ + +- Updated `@csstools/color-helpers` to `2.1.0` (minor) + + +### 2.2.3 + +_April 10, 2023_ + +- Updated: `@csstools/color-helpers` to `v2.0.0` + +### 2.2.2 + +_March 25, 2023_ + +- Add `color-mix` as a known color function. + +### 2.2.1 + +_February 13, 2023_ + +- Updated: `preserve` option defaults to `true` + +### 2.2.0 + +_February 2, 2023_ + +- Add: `@csstools/color-helpers` dependency for the named colors list. + +### 2.1.0 + +_January 28, 2023_ + +- Add: support for multiple line values (`text-decoration: overline underline;`) + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). +- Add: `-webkit-text-decoration` shorthand for single value `text-decoration: underline;`. [autoprefixer 1473](https://github.com/postcss/autoprefixer/issues/1473#issuecomment-1243370592) + +### 1.0.0 + +_August 15, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-text-decoration-shorthand/LICENSE.md b/node_modules/@csstools/postcss-text-decoration-shorthand/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-text-decoration-shorthand/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-text-decoration-shorthand/README.md b/node_modules/@csstools/postcss-text-decoration-shorthand/README.md new file mode 100644 index 00000000..4e16d512 --- /dev/null +++ b/node_modules/@csstools/postcss-text-decoration-shorthand/README.md @@ -0,0 +1,88 @@ +# PostCSS Text Decoration Shorthand [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-text-decoration-shorthand --save-dev +``` + +[PostCSS Text Decoration Shorthand] lets you use `text-decoration` as a shorthand following the [Text Decoration Specification]. + +```pcss +.example { + text-decoration: wavy underline purple 25%; +} + +/* becomes */ + +.example { + text-decoration: underline; + text-decoration: underline wavy purple; + text-decoration-thickness: calc(0.01em * 25); + text-decoration: wavy underline purple 25%; +} +``` + +## Usage + +Add [PostCSS Text Decoration Shorthand] to your project: + +```bash +npm install postcss @csstools/postcss-text-decoration-shorthand --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssTextDecorationShorthand = require('@csstools/postcss-text-decoration-shorthand'); + +postcss([ + postcssTextDecorationShorthand(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Text Decoration Shorthand] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is preserved. + +```js +postcssTextDecorationShorthand({ preserve: false }) +``` + +```pcss +.example { + text-decoration: wavy underline purple 25%; +} + +/* becomes */ + +.example { + text-decoration: underline; + text-decoration: underline wavy purple; + text-decoration-thickness: calc(0.01em * 25); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#text-decoration-shorthand +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-text-decoration-shorthand + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Text Decoration Shorthand]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-text-decoration-shorthand +[Text Decoration Specification]: https://drafts.csswg.org/css-text-decor-4/#text-decoration-property diff --git a/node_modules/@csstools/postcss-text-decoration-shorthand/dist/index.cjs b/node_modules/@csstools/postcss-text-decoration-shorthand/dist/index.cjs new file mode 100644 index 00000000..44f618a9 --- /dev/null +++ b/node_modules/@csstools/postcss-text-decoration-shorthand/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("@csstools/color-helpers"),o=require("postcss-value-parser");const r=/^text-decoration$/i,creator=e=>{const c=Object.assign({preserve:!0},e);return{postcssPlugin:"postcss-text-decoration-shorthand",prepare(){const e=new Map;return{OnceExit:()=>{e.clear()},Declaration:u=>{if(!r.test(u.prop))return;const a=u.parent;if(!a)return;const i=a.index(u);if(a.nodes.some((o=>"decl"===o.type&&r.test(o.prop)&&e.get(u.value)===o.value&&a.index(o)!==i)))return;const d=o(u.value),p=d.nodes.filter((e=>"space"!==e.type&&"comment"!==e.type));if(p.find((e=>"var"===e.value.toLowerCase()&&"function"===e.type)))return;if(p.find((e=>"word"===e.type&&t.includes(e.value))))return;const f={line:[],style:null,color:null,thickness:null};for(let e=0;e; +export default creator; diff --git a/node_modules/@csstools/postcss-text-decoration-shorthand/dist/index.mjs b/node_modules/@csstools/postcss-text-decoration-shorthand/dist/index.mjs new file mode 100644 index 00000000..09cd53e2 --- /dev/null +++ b/node_modules/@csstools/postcss-text-decoration-shorthand/dist/index.mjs @@ -0,0 +1 @@ +import{namedColors as e}from"@csstools/color-helpers";import o from"postcss-value-parser";const r=/^text-decoration$/i,creator=e=>{const c=Object.assign({preserve:!0},e);return{postcssPlugin:"postcss-text-decoration-shorthand",prepare(){const e=new Map;return{OnceExit:()=>{e.clear()},Declaration:a=>{if(!r.test(a.prop))return;const u=a.parent;if(!u)return;const i=u.index(a);if(u.nodes.some((o=>"decl"===o.type&&r.test(o.prop)&&e.get(a.value)===o.value&&u.index(o)!==i)))return;const d=o(a.value),p=d.nodes.filter((e=>"space"!==e.type&&"comment"!==e.type));if(p.find((e=>"var"===e.value.toLowerCase()&&"function"===e.type)))return;if(p.find((e=>"word"===e.type&&t.includes(e.value))))return;const f={line:[],style:null,color:null,thickness:null};for(let e=0;e=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/color-helpers": "^3.0.2", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*", + "autoprefixer": "^10.4.15" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-text-decoration-shorthand#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-text-decoration-shorthand" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "css", + "postcss-plugin", + "shorthand", + "text-decoration", + "text-decoration-thickness" + ], + "csstools": { + "cssdbId": "text-decoration-shorthand", + "exportName": "postcssTextDecorationShorthand", + "humanReadableName": "PostCSS Text Decoration Shorthand", + "specUrl": "https://drafts.csswg.org/css-text-decor-4/#text-decoration-property" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-trigonometric-functions/CHANGELOG.md b/node_modules/@csstools/postcss-trigonometric-functions/CHANGELOG.md new file mode 100644 index 00000000..9ec73779 --- /dev/null +++ b/node_modules/@csstools/postcss-trigonometric-functions/CHANGELOG.md @@ -0,0 +1,71 @@ +# Changes to PostCSS Trigonometric Functions + +### 3.0.2 + +_September 24, 2023_ + +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#221) (patch) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#232) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.4`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#114) (patch) + +### 3.0.1 + +_July 24, 2023_ + +- Use the latest utilities from `@csstools/css-tokenizer` to reduce the bundle size. +- Updated [`@csstools/css-tokenizer`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer) to [`2.2.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-tokenizer/CHANGELOG.md#220) (minor) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.1`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#231) (patch) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.3`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#113) (patch) + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/css-parser-algorithms`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms) to [`2.3.0`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-parser-algorithms/CHANGELOG.md#230) (minor) +- Updated [`@csstools/css-calc`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc) to [`1.1.2`](https://github.com/csstools/postcss-plugins/tree/main/packages/css-calc/CHANGELOG.md#112) (patch) + +### 2.1.1 + +_April 10, 2023_ + +- Updated `@csstools/css-tokenizer` to `2.1.1` (patch) +- Updated `@csstools/css-parser-algorithms` to `2.1.1` (patch) +- Updated `@csstools/css-calc` to `1.1.1` (patch) + +### 2.1.0 + +_March 21, 2023_ + +- Added: `@csstools/css-calc` +- Added: unit conversions (`sin(30deg + (.125turn / 3))`) + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.0.2 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 1.0.1 + +_May 31, 2022_ + +- Ensure that the plugin works in node 14 + +### 1.0.0 + +_May 20, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-trigonometric-functions/LICENSE.md b/node_modules/@csstools/postcss-trigonometric-functions/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-trigonometric-functions/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-trigonometric-functions/README.md b/node_modules/@csstools/postcss-trigonometric-functions/README.md new file mode 100644 index 00000000..2c1f3cc7 --- /dev/null +++ b/node_modules/@csstools/postcss-trigonometric-functions/README.md @@ -0,0 +1,162 @@ +# PostCSS Trigonometric Functions [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +```bash +npm install @csstools/postcss-trigonometric-functions --save-dev +``` + +[PostCSS Trigonometric Functions] lets you use `sin`, `cos`, `tan`, `asin`, `acos`, `atan` and `atan2` to be able to compute trigonometric relationships following the [CSS Values 4] specification. + +```pcss +.trigonometry { + line-height: sin(pi / 4); + line-height: cos(.125turn); + line-height: tan(50grad); + transform: rotate(asin(-1)); + transform: rotate(asin(sin(30deg + 1.0471967rad))); + transform: rotate(acos(-1)); + transform: rotate(acos(cos(0 / 2 + 1 - 1))); + transform: rotate(atan(infinity)); + transform: rotate(atan(e - 2.7182818284590452354)); + transform: rotate(atan2(-infinity,-infinity)); + transform: rotate(atan2(-infinity,infinity)); + transform: rotate(atan2(-infinity,infinity)); + transform: rotate(atan2(90, 15)); +} + +/* becomes */ + +.trigonometry { + line-height: 0.70711; + line-height: 0.70711; + line-height: 1; + transform: rotate(-90deg); + transform: rotate(89.99995deg); + transform: rotate(180deg); + transform: rotate(0deg); + transform: rotate(90deg); + transform: rotate(0deg); + transform: rotate(-135deg); + transform: rotate(-45deg); + transform: rotate(-45deg); + transform: rotate(80.53768deg); +} +``` + +## Usage + +Add [PostCSS Trigonometric Functions] to your project: + +```bash +npm install postcss @csstools/postcss-trigonometric-functions --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssTrigonometricFunctions = require('@csstools/postcss-trigonometric-functions'); + +postcss([ + postcssTrigonometricFunctions(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Trigonometric Functions] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## ⚠️ About custom properties + +Given the dynamic nature of custom properties it's impossible to know what the variable value is, which means the plugin can't compute a final value for the stylesheet. + +Because of that, any usage that contains a `var` is skipped. + +## Units + +[PostCSS Trigonometric Functions] lets you use different special units that are within the spec and computed at run time to be able to calculate the result of the trigonometric function. + +The following units are supported: + +* `pi`: Computes to `Math.PI` which is `3.141592653589793` +* `e`: Computes to `Math.E` which is `2.718281828459045` +* `infinity`, `-infinity`: Compute to `Infinity` and `-Infinity` respectively. Note that the usage is case insensitive so `InFiNiTy` is a valid value. + +Some calculations (such as `sin(-infinity)`) might return `NaN` as per the spec. Given that `NaN` can't be replaced with a value that's useful to CSS it is left as is, as the result will be effectively ignored by the browser. + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is not preserved. + +```js +postcssTrigonometricFunctions({ preserve: true }) +``` + +```pcss +.trigonometry { + line-height: sin(pi / 4); + line-height: cos(.125turn); + line-height: tan(50grad); + transform: rotate(asin(-1)); + transform: rotate(asin(sin(30deg + 1.0471967rad))); + transform: rotate(acos(-1)); + transform: rotate(acos(cos(0 / 2 + 1 - 1))); + transform: rotate(atan(infinity)); + transform: rotate(atan(e - 2.7182818284590452354)); + transform: rotate(atan2(-infinity,-infinity)); + transform: rotate(atan2(-infinity,infinity)); + transform: rotate(atan2(-infinity,infinity)); + transform: rotate(atan2(90, 15)); +} + +/* becomes */ + +.trigonometry { + line-height: 0.70711; + line-height: sin(pi / 4); + line-height: 0.70711; + line-height: cos(.125turn); + line-height: 1; + line-height: tan(50grad); + transform: rotate(-90deg); + transform: rotate(asin(-1)); + transform: rotate(89.99995deg); + transform: rotate(asin(sin(30deg + 1.0471967rad))); + transform: rotate(180deg); + transform: rotate(acos(-1)); + transform: rotate(0deg); + transform: rotate(acos(cos(0 / 2 + 1 - 1))); + transform: rotate(90deg); + transform: rotate(atan(infinity)); + transform: rotate(0deg); + transform: rotate(atan(e - 2.7182818284590452354)); + transform: rotate(-135deg); + transform: rotate(atan2(-infinity,-infinity)); + transform: rotate(-45deg); + transform: rotate(atan2(-infinity,infinity)); + transform: rotate(-45deg); + transform: rotate(atan2(-infinity,infinity)); + transform: rotate(80.53768deg); + transform: rotate(atan2(90, 15)); +} +``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#trigonometric-functions +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-trigonometric-functions + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Trigonometric Functions]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-trigonometric-functions +[CSS Values 4]: https://www.w3.org/TR/css-values-4/#trig-funcs diff --git a/node_modules/@csstools/postcss-trigonometric-functions/dist/calc.d.ts b/node_modules/@csstools/postcss-trigonometric-functions/dist/calc.d.ts new file mode 100644 index 00000000..5a1ee11e --- /dev/null +++ b/node_modules/@csstools/postcss-trigonometric-functions/dist/calc.d.ts @@ -0,0 +1 @@ +export declare function calc(css: string): string; diff --git a/node_modules/@csstools/postcss-trigonometric-functions/dist/checks.d.ts b/node_modules/@csstools/postcss-trigonometric-functions/dist/checks.d.ts new file mode 100644 index 00000000..6623beb7 --- /dev/null +++ b/node_modules/@csstools/postcss-trigonometric-functions/dist/checks.d.ts @@ -0,0 +1,2 @@ +export declare const FUNCTION_NAME_REGEXP: RegExp; +export declare const FUNCTION_CALL_REGEXP: RegExp; diff --git a/node_modules/@csstools/postcss-trigonometric-functions/dist/index.cjs b/node_modules/@csstools/postcss-trigonometric-functions/dist/index.cjs new file mode 100644 index 00000000..6fe36838 --- /dev/null +++ b/node_modules/@csstools/postcss-trigonometric-functions/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var s=require("@csstools/css-calc"),e=require("@csstools/css-parser-algorithms"),o=require("@csstools/css-tokenizer");const t=["asin","acos","atan","atan2","sin","cos","tan"],n=new RegExp(`^(${t.join("|")})$`,"i"),c=new RegExp(`(${t.join("|")})\\(`,"i");function calc(t){const c=o.tokenize({css:t});return c.some((s=>s[0]===o.TokenType.Function&&n.test(s[4].value)))?e.stringify(s.calcFromComponentValues(e.parseCommaSeparatedListOfComponentValues(c),{precision:5,toCanonicalUnits:!0})):t}const creator=s=>{const e=Object.assign({preserve:!1},s);return{postcssPlugin:"postcss-trigonometric-functions",Declaration(s){if(!c.test(s.value))return;const o=calc(s.value);o!==s.value&&(s.cloneBefore({value:o}),e.preserve||s.remove())}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-trigonometric-functions/dist/index.d.ts b/node_modules/@csstools/postcss-trigonometric-functions/dist/index.d.ts new file mode 100644 index 00000000..40ac49ea --- /dev/null +++ b/node_modules/@csstools/postcss-trigonometric-functions/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-trigonometric-functions plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-trigonometric-functions/dist/index.mjs b/node_modules/@csstools/postcss-trigonometric-functions/dist/index.mjs new file mode 100644 index 00000000..8fed33de --- /dev/null +++ b/node_modules/@csstools/postcss-trigonometric-functions/dist/index.mjs @@ -0,0 +1 @@ +import{calcFromComponentValues as s}from"@csstools/css-calc";import{stringify as o,parseCommaSeparatedListOfComponentValues as t}from"@csstools/css-parser-algorithms";import{tokenize as e,TokenType as n}from"@csstools/css-tokenizer";const c=["asin","acos","atan","atan2","sin","cos","tan"],r=new RegExp(`^(${c.join("|")})$`,"i"),a=new RegExp(`(${c.join("|")})\\(`,"i");function calc(c){const a=e({css:c});return a.some((s=>s[0]===n.Function&&r.test(s[4].value)))?o(s(t(a),{precision:5,toCanonicalUnits:!0})):c}const creator=s=>{const o=Object.assign({preserve:!1},s);return{postcssPlugin:"postcss-trigonometric-functions",Declaration(s){if(!a.test(s.value))return;const t=calc(s.value);t!==s.value&&(s.cloneBefore({value:t}),o.preserve||s.remove())}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-trigonometric-functions/package.json b/node_modules/@csstools/postcss-trigonometric-functions/package.json new file mode 100644 index 00000000..95a0b08f --- /dev/null +++ b/node_modules/@csstools/postcss-trigonometric-functions/package.json @@ -0,0 +1,94 @@ +{ + "name": "@csstools/postcss-trigonometric-functions", + "description": "Use sin(), cos(), tan(), acos(), atan(), and atan2() to compute trigonometric relationships", + "version": "3.0.2", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-trigonometric-functions#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-trigonometric-functions" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "acos", + "acos2", + "asin", + "atan", + "cos", + "css", + "postcss-plugin", + "sin", + "tan", + "trigonometric" + ], + "csstools": { + "cssdbId": "trigonometric-functions", + "exportName": "postcssTrigonometricFunctions", + "humanReadableName": "PostCSS Trigonometric Functions", + "specUrl": "https://www.w3.org/TR/css-values-4/#trig-funcs" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/postcss-unset-value/CHANGELOG.md b/node_modules/@csstools/postcss-unset-value/CHANGELOG.md new file mode 100644 index 00000000..438f5c2d --- /dev/null +++ b/node_modules/@csstools/postcss-unset-value/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changes to PostCSS Unset Value + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 2.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 1.0.2 + +_July 8, 2022_ + +- Fixed: Case insensitive property and keyword matching. + +### 1.0.1 + +_May 11, 2022_ + +- No longer converts `all: unset;` to `all: initial;`. `all: unset` is now ignored. + +### 1.0.0 + +_February 21, 2022_ + +- Initial version diff --git a/node_modules/@csstools/postcss-unset-value/LICENSE.md b/node_modules/@csstools/postcss-unset-value/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/postcss-unset-value/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/postcss-unset-value/README.md b/node_modules/@csstools/postcss-unset-value/README.md new file mode 100644 index 00000000..915c8144 --- /dev/null +++ b/node_modules/@csstools/postcss-unset-value/README.md @@ -0,0 +1,118 @@ +# PostCSS Unset Value [PostCSS Logo][postcss] + + +[npm version][npm-url] +[CSS Standard Status][css-url] +[Build Status][cli-url] +[Discord][discord] + +[PostCSS Unset Value] lets you use the unset keyword, following the [CSS Cascading and Inheritance] specification. + +```pcss +.color { + color: unset; +} + +.border-color { + border-color: unset; +} + +.margin { + margin: unset; +} + + +/* becomes */ +.color { + color: inherit; +} + +.border-color { + border-color: initial; +} + +.margin { + margin: initial; +} +``` + +## Usage + +Add [PostCSS Unset Value] to your project: + +```bash +npm install postcss @csstools/postcss-unset-value --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssUnsetValue = require('@csstools/postcss-unset-value'); + +postcss([ + postcssUnsetValue(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Unset Value] runs in all Node environments, with special +instructions for: + +| [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | +| --- | --- | --- | --- | --- | + +## Options + +### preserve + +The `preserve` option determines whether the original source +is preserved. By default, it is not preserved. + +```js +postcssUnsetValue({ preserve: true }) +``` + +```pcss +.color { + color: unset; +} + +.border-color { + border-color: unset; +} + +.margin { + margin: unset; +} + +/* becomes */ + +.color { + color: inherit; + color: unset; +} + +.border-color { + border-color: initial; + border-color: unset; +} + +.margin { + margin: initial; + margin: unset; +} +``` + +[postcss]: https://github.com/postcss/postcss + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#unset-value +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/postcss-unset-value + +[Gulp PostCSS]: https://github.com/postcss/gulp-postcss +[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Loader]: https://github.com/postcss/postcss-loader +[CSS Cascading and Inheritance]: https://www.w3.org/TR/css-cascade-4/#inherit-initial +[PostCSS Unset Value]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-unset-value diff --git a/node_modules/@csstools/postcss-unset-value/dist/index.cjs b/node_modules/@csstools/postcss-unset-value/dist/index.cjs new file mode 100644 index 00000000..8464cec8 --- /dev/null +++ b/node_modules/@csstools/postcss-unset-value/dist/index.cjs @@ -0,0 +1 @@ +"use strict";const e=new Set(["block-ellipsis","border-boundary","border-collapse","border-spacing","box-snap","caption-side","caret","caret-shape","clip-rule","color","color-interpolation","color-interpolation-filters","cursor","direction","dominant-baseline","empty-cells","fill","fill-color","fill-image","fill-opacity","fill-position","fill-repeat","fill-rule","fill-size","font","font-family","font-feature-settings","font-kerning","font-language-override","font-palette","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-emoji","font-variant-ligatures","font-weight","forced-color-adjust","hyphenate-character","hyphenate-limit-chars","hyphenate-limit-last","hyphenate-limit-lines","hyphenate-limit-zone","hyphens","image-orientation","image-rendering","image-resolution","initial-letter-wrap","letter-spacing","line-break","line-height","line-padding","line-snap","list-style","list-style-image","list-style-position","list-style-type","marker","marker-end","marker-mid","marker-side","marker-start","orphans","overflow-wrap","paint-order","pointer-events","print-color-adjust","quotes","ruby-merge","ruby-overhang","ruby-position","shape-rendering","speak","speak-as","stroke","stroke-align","stroke-alignment","stroke-color","stroke-dash-corner","stroke-dash-justify","stroke-dashadjust","stroke-dasharray","stroke-dashcorner","stroke-dashoffset","stroke-image","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-position","stroke-repeat","stroke-size","stroke-width","tab-size","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration-skip","text-decoration-skip-box","text-decoration-skip-inset","text-decoration-skip-self","text-decoration-skip-spaces","text-edge","text-emphasis-color","text-emphasis-position","text-emphasis-skip","text-emphasis-style","text-indent","text-justify","text-orientation","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-spacing","text-transform","text-underline-position","text-wrap","visibility","voice-balance","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","word-boundary-detection","word-boundary-expansion","word-break","word-spacing","word-wrap","writing-mode"]),t=new Set(["align-content","align-items","align-self","alignment-baseline","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timeline","animation-timing-function","appearance","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-block","background-position-inline","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","baseline-source","block-step","block-step-align","block-step-insert","block-step-round","block-step-size","bookmark-label","bookmark-level","bookmark-state","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-clip","border-clip-bottom","border-clip-left","border-clip-right","border-clip-top","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-limit","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","clear","clip","clip-path","color-adjust","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-width","container","container-name","container-type","content","continue","copy-into","corner-shape","corners","counter-increment","counter-reset","cue","cue-after","cue-before","cx","cy","d","display","fill-break","fill-origin","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-defer","float-offset","float-reference","flood-color","flood-opacity","flow-from","flow-into","footnote-display","footnote-policy","gap","glyph-orientation-vertical","grid-auto-columns","grid-auto-rows","grid-column-gap","grid-gap","grid-row-gap","grid-template-columns","grid-template-rows","height","initial-letter","inline-sizing","input-security","isolation","justify-content","justify-items","justify-self","leading-trim","left","lighting-color","line-clamp","line-grid","margin","margin-bottom","margin-break","margin-left","margin-right","margin-top","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-image","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-height","max-lines","max-width","min-height","min-intrinsic-sizing","min-width","mix-blend-mode","nav-down","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","place-content","position","r","region-fragment","resize","rest","rest-after","rest-before","right","row-gap","rx","ry","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","shape-padding","shape-subtract","spatial-navigation-action","spatial-navigation-contain","spatial-navigation-function","stop-color","stop-opacity","string-set","stroke-break","stroke-origin","table-layout","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-group-align","text-overflow","text-space-trim","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vector-effect","vertical-align","voice-duration","width","will-change","wrap-after","wrap-before","wrap-flow","wrap-inside","wrap-through","x","y","z-index"]),creator=o=>{const i=Object.assign({preserve:!1},o);return{postcssPlugin:"postcss-unset-value",Declaration(o){if("unset"!==o.value.toLowerCase())return;let r=!1;e.has(o.prop.toLowerCase())?r="inherit":t.has(o.prop.toLowerCase())&&(r="initial"),r&&(o.cloneBefore({prop:o.prop,value:r}),i.preserve||o.remove())}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/@csstools/postcss-unset-value/dist/index.d.ts b/node_modules/@csstools/postcss-unset-value/dist/index.d.ts new file mode 100644 index 00000000..9bf13c0d --- /dev/null +++ b/node_modules/@csstools/postcss-unset-value/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-unset-value plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: false */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/@csstools/postcss-unset-value/dist/index.mjs b/node_modules/@csstools/postcss-unset-value/dist/index.mjs new file mode 100644 index 00000000..96b55390 --- /dev/null +++ b/node_modules/@csstools/postcss-unset-value/dist/index.mjs @@ -0,0 +1 @@ +const e=new Set(["block-ellipsis","border-boundary","border-collapse","border-spacing","box-snap","caption-side","caret","caret-shape","clip-rule","color","color-interpolation","color-interpolation-filters","cursor","direction","dominant-baseline","empty-cells","fill","fill-color","fill-image","fill-opacity","fill-position","fill-repeat","fill-rule","fill-size","font","font-family","font-feature-settings","font-kerning","font-language-override","font-palette","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-emoji","font-variant-ligatures","font-weight","forced-color-adjust","hyphenate-character","hyphenate-limit-chars","hyphenate-limit-last","hyphenate-limit-lines","hyphenate-limit-zone","hyphens","image-orientation","image-rendering","image-resolution","initial-letter-wrap","letter-spacing","line-break","line-height","line-padding","line-snap","list-style","list-style-image","list-style-position","list-style-type","marker","marker-end","marker-mid","marker-side","marker-start","orphans","overflow-wrap","paint-order","pointer-events","print-color-adjust","quotes","ruby-merge","ruby-overhang","ruby-position","shape-rendering","speak","speak-as","stroke","stroke-align","stroke-alignment","stroke-color","stroke-dash-corner","stroke-dash-justify","stroke-dashadjust","stroke-dasharray","stroke-dashcorner","stroke-dashoffset","stroke-image","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-position","stroke-repeat","stroke-size","stroke-width","tab-size","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration-skip","text-decoration-skip-box","text-decoration-skip-inset","text-decoration-skip-self","text-decoration-skip-spaces","text-edge","text-emphasis-color","text-emphasis-position","text-emphasis-skip","text-emphasis-style","text-indent","text-justify","text-orientation","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-spacing","text-transform","text-underline-position","text-wrap","visibility","voice-balance","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","word-boundary-detection","word-boundary-expansion","word-break","word-spacing","word-wrap","writing-mode"]),t=new Set(["align-content","align-items","align-self","alignment-baseline","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timeline","animation-timing-function","appearance","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-block","background-position-inline","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","baseline-source","block-step","block-step-align","block-step-insert","block-step-round","block-step-size","bookmark-label","bookmark-level","bookmark-state","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-clip","border-clip-bottom","border-clip-left","border-clip-right","border-clip-top","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-limit","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","clear","clip","clip-path","color-adjust","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-width","container","container-name","container-type","content","continue","copy-into","corner-shape","corners","counter-increment","counter-reset","cue","cue-after","cue-before","cx","cy","d","display","fill-break","fill-origin","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-defer","float-offset","float-reference","flood-color","flood-opacity","flow-from","flow-into","footnote-display","footnote-policy","gap","glyph-orientation-vertical","grid-auto-columns","grid-auto-rows","grid-column-gap","grid-gap","grid-row-gap","grid-template-columns","grid-template-rows","height","initial-letter","inline-sizing","input-security","isolation","justify-content","justify-items","justify-self","leading-trim","left","lighting-color","line-clamp","line-grid","margin","margin-bottom","margin-break","margin-left","margin-right","margin-top","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-image","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-height","max-lines","max-width","min-height","min-intrinsic-sizing","min-width","mix-blend-mode","nav-down","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","place-content","position","r","region-fragment","resize","rest","rest-after","rest-before","right","row-gap","rx","ry","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","shape-padding","shape-subtract","spatial-navigation-action","spatial-navigation-contain","spatial-navigation-function","stop-color","stop-opacity","string-set","stroke-break","stroke-origin","table-layout","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-group-align","text-overflow","text-space-trim","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vector-effect","vertical-align","voice-duration","width","will-change","wrap-after","wrap-before","wrap-flow","wrap-inside","wrap-through","x","y","z-index"]),creator=o=>{const i=Object.assign({preserve:!1},o);return{postcssPlugin:"postcss-unset-value",Declaration(o){if("unset"!==o.value.toLowerCase())return;let r=!1;e.has(o.prop.toLowerCase())?r="inherit":t.has(o.prop.toLowerCase())&&(r="initial"),r&&(o.cloneBefore({prop:o.prop,value:r}),i.preserve||o.remove())}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/@csstools/postcss-unset-value/dist/property-def.d.ts b/node_modules/@csstools/postcss-unset-value/dist/property-def.d.ts new file mode 100644 index 00000000..46c84073 --- /dev/null +++ b/node_modules/@csstools/postcss-unset-value/dist/property-def.d.ts @@ -0,0 +1,2 @@ +export declare const inherited: Set; +export declare const nonInherited: Set; diff --git a/node_modules/@csstools/postcss-unset-value/package.json b/node_modules/@csstools/postcss-unset-value/package.json new file mode 100644 index 00000000..6ecdd94e --- /dev/null +++ b/node_modules/@csstools/postcss-unset-value/package.json @@ -0,0 +1,81 @@ +{ + "name": "@csstools/postcss-unset-value", + "description": "Use the unset keyword in CSS.", + "version": "3.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-unset-value#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/postcss-unset-value" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "inherit", + "initial", + "postcss-plugin", + "unset" + ], + "csstools": { + "exportName": "postcssUnsetValue", + "humanReadableName": "PostCSS Unset Value" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@csstools/selector-specificity/CHANGELOG.md b/node_modules/@csstools/selector-specificity/CHANGELOG.md new file mode 100644 index 00000000..770a6b9f --- /dev/null +++ b/node_modules/@csstools/selector-specificity/CHANGELOG.md @@ -0,0 +1,63 @@ +# Changes to Selector Specificity + +### 3.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 2.2.0 + +_March 21, 2023_ + +- Improve case insensitive string matching. +- Add support for: + - `::view-transition` + - `::view-transition-group(*)` and `::view-transition-group(name)` + - `::view-transition-image-par(*)` and `::view-transition-image-par(name)` + - `::view-transition-old(*)` and `::view-transition-old(name)` + - `::view-transition-new(*)` and `::view-transition-new(name)` + +### 2.1.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 2.1.0 + +_January 19, 2023_ + +- Add support for `::slotted` +- Add support for `:host` +- Add support for `:host-context` + +### 2.0.2 + +_July 8, 2022_ + +- Fix case insensitive matching. + +### 2.0.1 + +_June 10, 2022_ + +- Fixed: Exception on `:nth-child` without arguments. [#439](https://github.com/csstools/postcss-plugins/issues/439) + +### 2.0.0 + +_June 4, 2022_ + +- Breaking: use only named exports instead of `default` +- Added: `compare(a, b)` function to compare selectors by specificity + +```diff +- `import selectorSpecificity from '@csstools/selector-specificity';` ++ `import { selectorSpecificity } from '@csstools/selector-specificity';` +``` + +### 1.0.0 + +_April 26, 2022_ + +- Initial version diff --git a/node_modules/@csstools/selector-specificity/LICENSE.md b/node_modules/@csstools/selector-specificity/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/@csstools/selector-specificity/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@csstools/selector-specificity/README.md b/node_modules/@csstools/selector-specificity/README.md new file mode 100644 index 00000000..3868d7d0 --- /dev/null +++ b/node_modules/@csstools/selector-specificity/README.md @@ -0,0 +1,57 @@ +# Selector Specificity + +[npm version][npm-url] +[Build Status][cli-url] +[Discord][discord] + +## Usage + +Add [Selector Specificity] to your project: + +```bash +npm install @csstools/selector-specificity --save-dev +``` + +```js +import parser from 'postcss-selector-parser'; +import { selectorSpecificity } from '@csstools/selector-specificity'; + +const selectorAST = parser().astSync('#foo:has(> .foo)'); +const specificity = selectorSpecificity(selectorAST); + +console.log(specificity.a); // 1 +console.log(specificity.b); // 1 +console.log(specificity.c); // 0 +``` + +_`selectorSpecificity` takes a single selector, not a list of selectors (not : `a, b, c`). +To compare or otherwise manipulate lists of selectors you need to call `selectorSpecificity` on each part._ + +### Comparing + +The package exports a utility function to compare two specificities. + +```js +import { selectorSpecificity, compare } from '@csstools/selector-specificity'; + +const s1 = selectorSpecificity(ast1); +const s2 = selectorSpecificity(ast2); +compare(s1, s2); // -1 | 0 | 1 +``` + +- if `s1 < s2` then `compare(s1, s2)` returns a negative number (`< 0`) +- if `s1 > s2` then `compare(s1, s2)` returns a positive number (`> 0`) +- if `s1 === s2` then `compare(s1, s2)` returns zero (`=== 0`) + +## Prior Art + +- [keeganstreet/specificity](https://github.com/keeganstreet/specificity) +- [bramus/specificity](https://github.com/bramus/specificity) + +For CSSTools we always use `postcss-selector-parser` and want to calculate specificity from this AST. + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/@csstools/selector-specificity + +[Selector Specificity]: https://github.com/csstools/postcss-plugins/tree/main/packages/selector-specificity diff --git a/node_modules/@csstools/selector-specificity/dist/index.cjs b/node_modules/@csstools/selector-specificity/dist/index.cjs new file mode 100644 index 00000000..4633d0fc --- /dev/null +++ b/node_modules/@csstools/selector-specificity/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-selector-parser");const s=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(s,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}function selectorSpecificity(s){if(!s)return{a:0,b:0,c:0};let t=0,c=0,i=0;if("universal"==s.type)return{a:0,b:0,c:0};if("id"===s.type)t+=1;else if("tag"===s.type)i+=1;else if("class"===s.type)c+=1;else if("attribute"===s.type)c+=1;else if(isPseudoElement(s))switch(toLowerCaseAZ(s.value)){case"::slotted":if(i+=1,s.nodes&&s.nodes.length>0){const e=specificityOfMostSpecificListItem(s.nodes);t+=e.a,c+=e.b,i+=e.c}break;case"::view-transition-group":case"::view-transition-image-pair":case"::view-transition-old":case"::view-transition-new":if(s.nodes&&1===s.nodes.length&&"selector"===s.nodes[0].type&&selectorNodeContainsOnlyUniversal(s.nodes[0]))return{a:0,b:0,c:0};i+=1;break;default:i+=1}else if(e.isPseudoClass(s))switch(toLowerCaseAZ(s.value)){case":-moz-any":case":-webkit-any":case":any":case":has":case":is":case":matches":case":not":if(s.nodes&&s.nodes.length>0){const e=specificityOfMostSpecificListItem(s.nodes);t+=e.a,c+=e.b,i+=e.c}break;case":where":break;case":nth-child":case":nth-last-child":if(c+=1,s.nodes&&s.nodes.length>0){const n=s.nodes[0].nodes.findIndex((e=>"tag"===e.type&&"of"===toLowerCaseAZ(e.value)));if(n>-1){const o=[e.selector({nodes:s.nodes[0].nodes.slice(n+1),value:""})];s.nodes.length>1&&o.push(...s.nodes.slice(1));const a=specificityOfMostSpecificListItem(o);t+=a.a,c+=a.b,i+=a.c}}break;case":local":case":global":s.nodes&&s.nodes.length>0&&s.nodes.forEach((e=>{const s=selectorSpecificity(e);t+=s.a,c+=s.b,i+=s.c}));break;case":host":case":host-context":if(c+=1,s.nodes&&s.nodes.length>0){const e=specificityOfMostSpecificListItem(s.nodes);t+=e.a,c+=e.b,i+=e.c}break;default:c+=1}else e.isContainer(s)&&s.nodes.length>0&&s.nodes.forEach((e=>{const s=selectorSpecificity(e);t+=s.a,c+=s.b,i+=s.c}));return{a:t,b:c,c:i}}function specificityOfMostSpecificListItem(e){let s={a:0,b:0,c:0};return e.forEach((e=>{const t=selectorSpecificity(e);t.a>s.a?s=t:t.as.b?s=t:t.bs.c&&(s=t))})),s}function isPseudoElement(s){return e.isPseudoElement(s)}function selectorNodeContainsOnlyUniversal(e){if(!e)return!1;if(!e.nodes)return!1;const s=e.nodes.filter((e=>"comment"!==e.type));return 1===s.length&&"universal"===s[0].type}exports.compare=function compare(e,s){return e.a===s.a?e.b===s.b?e.c-s.c:e.b-s.b:e.a-s.a},exports.selectorSpecificity=selectorSpecificity; diff --git a/node_modules/@csstools/selector-specificity/dist/index.d.ts b/node_modules/@csstools/selector-specificity/dist/index.d.ts new file mode 100644 index 00000000..f92ce6d8 --- /dev/null +++ b/node_modules/@csstools/selector-specificity/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { Node } from 'postcss-selector-parser'; +export type Specificity = { + a: number; + b: number; + c: number; +}; +export declare function compare(s1: Specificity, s2: Specificity): number; +export declare function selectorSpecificity(node: Node): Specificity; diff --git a/node_modules/@csstools/selector-specificity/dist/index.mjs b/node_modules/@csstools/selector-specificity/dist/index.mjs new file mode 100644 index 00000000..8ac79c74 --- /dev/null +++ b/node_modules/@csstools/selector-specificity/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-selector-parser";const s=/[A-Z]/g;function toLowerCaseAZ(e){return e.replace(s,(e=>String.fromCharCode(e.charCodeAt(0)+32)))}function compare(e,s){return e.a===s.a?e.b===s.b?e.c-s.c:e.b-s.b:e.a-s.a}function selectorSpecificity(s){if(!s)return{a:0,b:0,c:0};let t=0,c=0,i=0;if("universal"==s.type)return{a:0,b:0,c:0};if("id"===s.type)t+=1;else if("tag"===s.type)i+=1;else if("class"===s.type)c+=1;else if("attribute"===s.type)c+=1;else if(isPseudoElement(s))switch(toLowerCaseAZ(s.value)){case"::slotted":if(i+=1,s.nodes&&s.nodes.length>0){const e=specificityOfMostSpecificListItem(s.nodes);t+=e.a,c+=e.b,i+=e.c}break;case"::view-transition-group":case"::view-transition-image-pair":case"::view-transition-old":case"::view-transition-new":if(s.nodes&&1===s.nodes.length&&"selector"===s.nodes[0].type&&selectorNodeContainsOnlyUniversal(s.nodes[0]))return{a:0,b:0,c:0};i+=1;break;default:i+=1}else if(e.isPseudoClass(s))switch(toLowerCaseAZ(s.value)){case":-moz-any":case":-webkit-any":case":any":case":has":case":is":case":matches":case":not":if(s.nodes&&s.nodes.length>0){const e=specificityOfMostSpecificListItem(s.nodes);t+=e.a,c+=e.b,i+=e.c}break;case":where":break;case":nth-child":case":nth-last-child":if(c+=1,s.nodes&&s.nodes.length>0){const n=s.nodes[0].nodes.findIndex((e=>"tag"===e.type&&"of"===toLowerCaseAZ(e.value)));if(n>-1){const o=[e.selector({nodes:s.nodes[0].nodes.slice(n+1),value:""})];s.nodes.length>1&&o.push(...s.nodes.slice(1));const a=specificityOfMostSpecificListItem(o);t+=a.a,c+=a.b,i+=a.c}}break;case":local":case":global":s.nodes&&s.nodes.length>0&&s.nodes.forEach((e=>{const s=selectorSpecificity(e);t+=s.a,c+=s.b,i+=s.c}));break;case":host":case":host-context":if(c+=1,s.nodes&&s.nodes.length>0){const e=specificityOfMostSpecificListItem(s.nodes);t+=e.a,c+=e.b,i+=e.c}break;default:c+=1}else e.isContainer(s)&&s.nodes.length>0&&s.nodes.forEach((e=>{const s=selectorSpecificity(e);t+=s.a,c+=s.b,i+=s.c}));return{a:t,b:c,c:i}}function specificityOfMostSpecificListItem(e){let s={a:0,b:0,c:0};return e.forEach((e=>{const t=selectorSpecificity(e);t.a>s.a?s=t:t.as.b?s=t:t.bs.c&&(s=t))})),s}function isPseudoElement(s){return e.isPseudoElement(s)}function selectorNodeContainsOnlyUniversal(e){if(!e)return!1;if(!e.nodes)return!1;const s=e.nodes.filter((e=>"comment"!==e.type));return 1===s.length&&"universal"===s[0].type}export{compare,selectorSpecificity}; diff --git a/node_modules/@csstools/selector-specificity/dist/to-lower-case-a-z.d.ts b/node_modules/@csstools/selector-specificity/dist/to-lower-case-a-z.d.ts new file mode 100644 index 00000000..396b252e --- /dev/null +++ b/node_modules/@csstools/selector-specificity/dist/to-lower-case-a-z.d.ts @@ -0,0 +1 @@ +export declare function toLowerCaseAZ(x: string): string; diff --git a/node_modules/@csstools/selector-specificity/package.json b/node_modules/@csstools/selector-specificity/package.json new file mode 100644 index 00000000..36e08389 --- /dev/null +++ b/node_modules/@csstools/selector-specificity/package.json @@ -0,0 +1,75 @@ +{ + "name": "@csstools/selector-specificity", + "description": "Determine selector specificity with postcss-selector-parser", + "version": "3.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "devDependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "stryker": "stryker run --logLevel error", + "test": "node ./test/index.mjs && node ./test/_import.mjs && node ./test/_require.cjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/packages/selector-specificity#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "packages/selector-specificity" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "css", + "postcss-selector-parser", + "specificity" + ], + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/@nodelib/fs.scandir/LICENSE b/node_modules/@nodelib/fs.scandir/LICENSE new file mode 100644 index 00000000..65a99946 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.scandir/README.md b/node_modules/@nodelib/fs.scandir/README.md new file mode 100644 index 00000000..e0b218b9 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/README.md @@ -0,0 +1,171 @@ +# @nodelib/fs.scandir + +> List files and directories inside the specified directory. + +## :bulb: Highlights + +The package is aimed at obtaining information about entries in the directory. + +* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional). +* :gear: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type. See [`old` and `modern` mode](#old-and-modern-mode). +* :link: Can safely work with broken symbolic links. + +## Install + +```console +npm install @nodelib/fs.scandir +``` + +## Usage + +```ts +import * as fsScandir from '@nodelib/fs.scandir'; + +fsScandir.scandir('path', (error, stats) => { /* … */ }); +``` + +## API + +### .scandir(path, [optionsOrSettings], callback) + +Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path with standard callback-style. + +```ts +fsScandir.scandir('path', (error, entries) => { /* … */ }); +fsScandir.scandir('path', {}, (error, entries) => { /* … */ }); +fsScandir.scandir('path', new fsScandir.Settings(), (error, entries) => { /* … */ }); +``` + +### .scandirSync(path, [optionsOrSettings]) + +Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path. + +```ts +const entries = fsScandir.scandirSync('path'); +const entries = fsScandir.scandirSync('path', {}); +const entries = fsScandir.scandirSync(('path', new fsScandir.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settingsoptions) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsScandir.Settings({ followSymbolicLinks: false }); + +const entries = fsScandir.scandirSync('path', settings); +``` + +## Entry + +* `name` — The name of the entry (`unknown.txt`). +* `path` — The path of the entry relative to call directory (`root/unknown.txt`). +* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. On Node.js below 10.10 will be emulated by [`DirentFromStats`](./src/utils/fs.ts) class. +* `stats` (optional) — An instance of `fs.Stats` class. + +For example, the `scandir` call for `tools` directory with one directory inside: + +```ts +{ + dirent: Dirent { name: 'typedoc', /* … */ }, + name: 'typedoc', + path: 'tools/typedoc' +} +``` + +## Options + +### stats + +* Type: `boolean` +* Default: `false` + +Adds an instance of `fs.Stats` class to the [`Entry`](#entry). + +> :book: Always use `fs.readdir` without the `withFileTypes` option. ??TODO?? + +### followSymbolicLinks + +* Type: `boolean` +* Default: `false` + +Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely use `lstat` call if `false`. + +### `pathSegmentSeparator` + +* Type: `string` +* Default: `path.sep` + +By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead. + +### `fs` + +* Type: [`FileSystemAdapter`](./src/adapters/fs.ts) +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; + readdir?: typeof fs.readdir; + readdirSync?: typeof fs.readdirSync; +} + +const settings = new fsScandir.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## `old` and `modern` mode + +This package has two modes that are used depending on the environment and parameters of use. + +### old + +* Node.js below `10.10` or when the `stats` option is enabled + +When working in the old mode, the directory is read first (`fs.readdir`), then the type of entries is determined (`fs.lstat` and/or `fs.stat` for symbolic links). + +### modern + +* Node.js 10.10+ and the `stats` option is disabled + +In the modern mode, reading the directory (`fs.readdir` with the `withFileTypes` option) is combined with obtaining information about its entries. An additional call for symbolic links (`fs.stat`) is still present. + +This mode makes fewer calls to the file system. It's faster. + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts b/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts new file mode 100644 index 00000000..827f1db0 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts @@ -0,0 +1,20 @@ +import type * as fsStat from '@nodelib/fs.stat'; +import type { Dirent, ErrnoException } from '../types'; +export interface ReaddirAsynchronousMethod { + (filepath: string, options: { + withFileTypes: true; + }, callback: (error: ErrnoException | null, files: Dirent[]) => void): void; + (filepath: string, callback: (error: ErrnoException | null, files: string[]) => void): void; +} +export interface ReaddirSynchronousMethod { + (filepath: string, options: { + withFileTypes: true; + }): Dirent[]; + (filepath: string): string[]; +} +export declare type FileSystemAdapter = fsStat.FileSystemAdapter & { + readdir: ReaddirAsynchronousMethod; + readdirSync: ReaddirSynchronousMethod; +}; +export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter; diff --git a/node_modules/@nodelib/fs.scandir/out/adapters/fs.js b/node_modules/@nodelib/fs.scandir/out/adapters/fs.js new file mode 100644 index 00000000..f0fe0220 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/adapters/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +exports.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync +}; +function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); +} +exports.createFileSystemAdapter = createFileSystemAdapter; diff --git a/node_modules/@nodelib/fs.scandir/out/constants.d.ts b/node_modules/@nodelib/fs.scandir/out/constants.d.ts new file mode 100644 index 00000000..33f17497 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/constants.d.ts @@ -0,0 +1,4 @@ +/** + * IS `true` for Node.js 10.10 and greater. + */ +export declare const IS_SUPPORT_READDIR_WITH_FILE_TYPES: boolean; diff --git a/node_modules/@nodelib/fs.scandir/out/constants.js b/node_modules/@nodelib/fs.scandir/out/constants.js new file mode 100644 index 00000000..7e3d4411 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/constants.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0; +const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.'); +if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) { + throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`); +} +const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); +const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); +const SUPPORTED_MAJOR_VERSION = 10; +const SUPPORTED_MINOR_VERSION = 10; +const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; +const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; +/** + * IS `true` for Node.js 10.10 and greater. + */ +exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; diff --git a/node_modules/@nodelib/fs.scandir/out/index.d.ts b/node_modules/@nodelib/fs.scandir/out/index.d.ts new file mode 100644 index 00000000..b9da83ed --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/index.d.ts @@ -0,0 +1,12 @@ +import type { FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod } from './adapters/fs'; +import * as async from './providers/async'; +import Settings, { Options } from './settings'; +import type { Dirent, Entry } from './types'; +declare type AsyncCallback = async.AsyncCallback; +declare function scandir(path: string, callback: AsyncCallback): void; +declare function scandir(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace scandir { + function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function scandirSync(path: string, optionsOrSettings?: Options | Settings): Entry[]; +export { scandir, scandirSync, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod, Options }; diff --git a/node_modules/@nodelib/fs.scandir/out/index.js b/node_modules/@nodelib/fs.scandir/out/index.js new file mode 100644 index 00000000..99c70d3d --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Settings = exports.scandirSync = exports.scandir = void 0; +const async = require("./providers/async"); +const sync = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function scandir(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); +} +exports.scandir = scandir; +function scandirSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); +} +exports.scandirSync = scandirSync; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts new file mode 100644 index 00000000..5829676d --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts @@ -0,0 +1,7 @@ +/// +import type Settings from '../settings'; +import type { Entry } from '../types'; +export declare type AsyncCallback = (error: NodeJS.ErrnoException, entries: Entry[]) => void; +export declare function read(directory: string, settings: Settings, callback: AsyncCallback): void; +export declare function readdirWithFileTypes(directory: string, settings: Settings, callback: AsyncCallback): void; +export declare function readdir(directory: string, settings: Settings, callback: AsyncCallback): void; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/async.js b/node_modules/@nodelib/fs.scandir/out/providers/async.js new file mode 100644 index 00000000..e8e2f0a9 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/async.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; +const fsStat = require("@nodelib/fs.stat"); +const rpl = require("run-parallel"); +const constants_1 = require("../constants"); +const utils = require("../utils"); +const common = require("./common"); +function read(directory, settings, callback) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + readdirWithFileTypes(directory, settings, callback); + return; + } + readdir(directory, settings, callback); +} +exports.read = read; +function readdirWithFileTypes(directory, settings, callback) { + settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const entries = dirents.map((dirent) => ({ + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + })); + if (!settings.followSymbolicLinks) { + callSuccessCallback(callback, entries); + return; + } + const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings)); + rpl(tasks, (rplError, rplEntries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, rplEntries); + }); + }); +} +exports.readdirWithFileTypes = readdirWithFileTypes; +function makeRplTaskEntry(entry, settings) { + return (done) => { + if (!entry.dirent.isSymbolicLink()) { + done(null, entry); + return; + } + settings.fs.stat(entry.path, (statError, stats) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + done(statError); + return; + } + done(null, entry); + return; + } + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + done(null, entry); + }); + }; +} +function readdir(directory, settings, callback) { + settings.fs.readdir(directory, (readdirError, names) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const tasks = names.map((name) => { + const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + return (done) => { + fsStat.stat(path, settings.fsStatSettings, (error, stats) => { + if (error !== null) { + done(error); + return; + } + const entry = { + name, + path, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + done(null, entry); + }); + }; + }); + rpl(tasks, (rplError, entries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, entries); + }); + }); +} +exports.readdir = readdir; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, result) { + callback(null, result); +} diff --git a/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts new file mode 100644 index 00000000..2b4d08b5 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts @@ -0,0 +1 @@ +export declare function joinPathSegments(a: string, b: string, separator: string): string; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/common.js b/node_modules/@nodelib/fs.scandir/out/providers/common.js new file mode 100644 index 00000000..8724cb59 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/common.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.joinPathSegments = void 0; +function joinPathSegments(a, b, separator) { + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; +} +exports.joinPathSegments = joinPathSegments; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts new file mode 100644 index 00000000..e05c8f07 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts @@ -0,0 +1,5 @@ +import type Settings from '../settings'; +import type { Entry } from '../types'; +export declare function read(directory: string, settings: Settings): Entry[]; +export declare function readdirWithFileTypes(directory: string, settings: Settings): Entry[]; +export declare function readdir(directory: string, settings: Settings): Entry[]; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/sync.js b/node_modules/@nodelib/fs.scandir/out/providers/sync.js new file mode 100644 index 00000000..146db343 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/sync.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; +const fsStat = require("@nodelib/fs.stat"); +const constants_1 = require("../constants"); +const utils = require("../utils"); +const common = require("./common"); +function read(directory, settings) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + return readdirWithFileTypes(directory, settings); + } + return readdir(directory, settings); +} +exports.read = read; +function readdirWithFileTypes(directory, settings) { + const dirents = settings.fs.readdirSync(directory, { withFileTypes: true }); + return dirents.map((dirent) => { + const entry = { + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + }; + if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { + try { + const stats = settings.fs.statSync(entry.path); + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + } + catch (error) { + if (settings.throwErrorOnBrokenSymbolicLink) { + throw error; + } + } + } + return entry; + }); +} +exports.readdirWithFileTypes = readdirWithFileTypes; +function readdir(directory, settings) { + const names = settings.fs.readdirSync(directory); + return names.map((name) => { + const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + const stats = fsStat.statSync(entryPath, settings.fsStatSettings); + const entry = { + name, + path: entryPath, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + return entry; + }); +} +exports.readdir = readdir; diff --git a/node_modules/@nodelib/fs.scandir/out/settings.d.ts b/node_modules/@nodelib/fs.scandir/out/settings.d.ts new file mode 100644 index 00000000..a0db1155 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/settings.d.ts @@ -0,0 +1,20 @@ +import * as fsStat from '@nodelib/fs.stat'; +import * as fs from './adapters/fs'; +export interface Options { + followSymbolicLinks?: boolean; + fs?: Partial; + pathSegmentSeparator?: string; + stats?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly followSymbolicLinks: boolean; + readonly fs: fs.FileSystemAdapter; + readonly pathSegmentSeparator: string; + readonly stats: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + readonly fsStatSettings: fsStat.Settings; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.scandir/out/settings.js b/node_modules/@nodelib/fs.scandir/out/settings.js new file mode 100644 index 00000000..15a3e8cd --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/settings.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsStat = require("@nodelib/fs.stat"); +const fs = require("./adapters/fs"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.stats = this._getValue(this._options.stats, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + this.fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this.followSymbolicLinks, + fs: this.fs, + throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.scandir/out/types/index.d.ts b/node_modules/@nodelib/fs.scandir/out/types/index.d.ts new file mode 100644 index 00000000..f326c5e5 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/types/index.d.ts @@ -0,0 +1,20 @@ +/// +import type * as fs from 'fs'; +export interface Entry { + dirent: Dirent; + name: string; + path: string; + stats?: Stats; +} +export declare type Stats = fs.Stats; +export declare type ErrnoException = NodeJS.ErrnoException; +export interface Dirent { + isBlockDevice: () => boolean; + isCharacterDevice: () => boolean; + isDirectory: () => boolean; + isFIFO: () => boolean; + isFile: () => boolean; + isSocket: () => boolean; + isSymbolicLink: () => boolean; + name: string; +} diff --git a/node_modules/@nodelib/fs.scandir/out/types/index.js b/node_modules/@nodelib/fs.scandir/out/types/index.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts b/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts new file mode 100644 index 00000000..bb863f15 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts @@ -0,0 +1,2 @@ +import type { Dirent, Stats } from '../types'; +export declare function createDirentFromStats(name: string, stats: Stats): Dirent; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/fs.js b/node_modules/@nodelib/fs.scandir/out/utils/fs.js new file mode 100644 index 00000000..ace7c74d --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createDirentFromStats = void 0; +class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } +} +function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); +} +exports.createDirentFromStats = createDirentFromStats; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts b/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts new file mode 100644 index 00000000..1b41954e --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts @@ -0,0 +1,2 @@ +import * as fs from './fs'; +export { fs }; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/index.js b/node_modules/@nodelib/fs.scandir/out/utils/index.js new file mode 100644 index 00000000..f5de129f --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const fs = require("./fs"); +exports.fs = fs; diff --git a/node_modules/@nodelib/fs.scandir/package.json b/node_modules/@nodelib/fs.scandir/package.json new file mode 100644 index 00000000..d3a89241 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/package.json @@ -0,0 +1,44 @@ +{ + "name": "@nodelib/fs.scandir", + "version": "2.1.5", + "description": "List files and directories inside the specified directory", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "scandir", + "readdir", + "dirent" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4", + "@types/run-parallel": "^1.1.0" + }, + "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562" +} diff --git a/node_modules/@nodelib/fs.stat/LICENSE b/node_modules/@nodelib/fs.stat/LICENSE new file mode 100644 index 00000000..65a99946 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.stat/README.md b/node_modules/@nodelib/fs.stat/README.md new file mode 100644 index 00000000..686f0471 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/README.md @@ -0,0 +1,126 @@ +# @nodelib/fs.stat + +> Get the status of a file with some features. + +## :bulb: Highlights + +Wrapper around standard method `fs.lstat` and `fs.stat` with some features. + +* :beginner: Normally follows symbolic link. +* :gear: Can safely work with broken symbolic link. + +## Install + +```console +npm install @nodelib/fs.stat +``` + +## Usage + +```ts +import * as fsStat from '@nodelib/fs.stat'; + +fsStat.stat('path', (error, stats) => { /* … */ }); +``` + +## API + +### .stat(path, [optionsOrSettings], callback) + +Returns an instance of `fs.Stats` class for provided path with standard callback-style. + +```ts +fsStat.stat('path', (error, stats) => { /* … */ }); +fsStat.stat('path', {}, (error, stats) => { /* … */ }); +fsStat.stat('path', new fsStat.Settings(), (error, stats) => { /* … */ }); +``` + +### .statSync(path, [optionsOrSettings]) + +Returns an instance of `fs.Stats` class for provided path. + +```ts +const stats = fsStat.stat('path'); +const stats = fsStat.stat('path', {}); +const stats = fsStat.stat('path', new fsStat.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settings) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsStat.Settings({ followSymbolicLink: false }); + +const stats = fsStat.stat('path', settings); +``` + +## Options + +### `followSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Follow symbolic link or not. Call `fs.stat` on symbolic link if `true`. + +### `markSymbolicLink` + +* Type: `boolean` +* Default: `false` + +Mark symbolic link by setting the return value of `isSymbolicLink` function to always `true` (even after `fs.stat`). + +> :book: Can be used if you want to know what is hidden behind a symbolic link, but still continue to know that it is a symbolic link. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +### `fs` + +* Type: [`FileSystemAdapter`](./src/adapters/fs.ts) +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; +} + +const settings = new fsStat.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts new file mode 100644 index 00000000..3af759c9 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts @@ -0,0 +1,13 @@ +/// +import * as fs from 'fs'; +import type { ErrnoException } from '../types'; +export declare type StatAsynchronousMethod = (path: string, callback: (error: ErrnoException | null, stats: fs.Stats) => void) => void; +export declare type StatSynchronousMethod = (path: string) => fs.Stats; +export interface FileSystemAdapter { + lstat: StatAsynchronousMethod; + stat: StatAsynchronousMethod; + lstatSync: StatSynchronousMethod; + statSync: StatSynchronousMethod; +} +export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter; diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.js b/node_modules/@nodelib/fs.stat/out/adapters/fs.js new file mode 100644 index 00000000..8dc08c8c --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +exports.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync +}; +function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); +} +exports.createFileSystemAdapter = createFileSystemAdapter; diff --git a/node_modules/@nodelib/fs.stat/out/index.d.ts b/node_modules/@nodelib/fs.stat/out/index.d.ts new file mode 100644 index 00000000..f95db995 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/index.d.ts @@ -0,0 +1,12 @@ +import type { FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod } from './adapters/fs'; +import * as async from './providers/async'; +import Settings, { Options } from './settings'; +import type { Stats } from './types'; +declare type AsyncCallback = async.AsyncCallback; +declare function stat(path: string, callback: AsyncCallback): void; +declare function stat(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace stat { + function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function statSync(path: string, optionsOrSettings?: Options | Settings): Stats; +export { Settings, stat, statSync, AsyncCallback, FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod, Options, Stats }; diff --git a/node_modules/@nodelib/fs.stat/out/index.js b/node_modules/@nodelib/fs.stat/out/index.js new file mode 100644 index 00000000..b23f7510 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.statSync = exports.stat = exports.Settings = void 0; +const async = require("./providers/async"); +const sync = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function stat(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); +} +exports.stat = stat; +function statSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); +} +exports.statSync = statSync; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.d.ts b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts new file mode 100644 index 00000000..85423ce1 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts @@ -0,0 +1,4 @@ +import type Settings from '../settings'; +import type { ErrnoException, Stats } from '../types'; +export declare type AsyncCallback = (error: ErrnoException, stats: Stats) => void; +export declare function read(path: string, settings: Settings, callback: AsyncCallback): void; diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.js b/node_modules/@nodelib/fs.stat/out/providers/async.js new file mode 100644 index 00000000..983ff0e6 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/async.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.read = void 0; +function read(path, settings, callback) { + settings.fs.lstat(path, (lstatError, lstat) => { + if (lstatError !== null) { + callFailureCallback(callback, lstatError); + return; + } + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + callSuccessCallback(callback, lstat); + return; + } + settings.fs.stat(path, (statError, stat) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + callFailureCallback(callback, statError); + return; + } + callSuccessCallback(callback, lstat); + return; + } + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + callSuccessCallback(callback, stat); + }); + }); +} +exports.read = read; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, result) { + callback(null, result); +} diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts new file mode 100644 index 00000000..428c3d79 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts @@ -0,0 +1,3 @@ +import type Settings from '../settings'; +import type { Stats } from '../types'; +export declare function read(path: string, settings: Settings): Stats; diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.js b/node_modules/@nodelib/fs.stat/out/providers/sync.js new file mode 100644 index 00000000..1521c361 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/sync.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.read = void 0; +function read(path, settings) { + const lstat = settings.fs.lstatSync(path); + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + return lstat; + } + try { + const stat = settings.fs.statSync(path); + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + return stat; + } + catch (error) { + if (!settings.throwErrorOnBrokenSymbolicLink) { + return lstat; + } + throw error; + } +} +exports.read = read; diff --git a/node_modules/@nodelib/fs.stat/out/settings.d.ts b/node_modules/@nodelib/fs.stat/out/settings.d.ts new file mode 100644 index 00000000..f4b3d444 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/settings.d.ts @@ -0,0 +1,16 @@ +import * as fs from './adapters/fs'; +export interface Options { + followSymbolicLink?: boolean; + fs?: Partial; + markSymbolicLink?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly followSymbolicLink: boolean; + readonly fs: fs.FileSystemAdapter; + readonly markSymbolicLink: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.stat/out/settings.js b/node_modules/@nodelib/fs.stat/out/settings.js new file mode 100644 index 00000000..111ec09c --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/settings.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs = require("./adapters/fs"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.stat/out/types/index.d.ts b/node_modules/@nodelib/fs.stat/out/types/index.d.ts new file mode 100644 index 00000000..74c08ed2 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/types/index.d.ts @@ -0,0 +1,4 @@ +/// +import type * as fs from 'fs'; +export declare type Stats = fs.Stats; +export declare type ErrnoException = NodeJS.ErrnoException; diff --git a/node_modules/@nodelib/fs.stat/out/types/index.js b/node_modules/@nodelib/fs.stat/out/types/index.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.stat/package.json b/node_modules/@nodelib/fs.stat/package.json new file mode 100644 index 00000000..f2540c28 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/package.json @@ -0,0 +1,37 @@ +{ + "name": "@nodelib/fs.stat", + "version": "2.0.5", + "description": "Get the status of a file with some features", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "stat" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4" + }, + "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562" +} diff --git a/node_modules/@nodelib/fs.walk/LICENSE b/node_modules/@nodelib/fs.walk/LICENSE new file mode 100644 index 00000000..65a99946 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.walk/README.md b/node_modules/@nodelib/fs.walk/README.md new file mode 100644 index 00000000..6ccc08db --- /dev/null +++ b/node_modules/@nodelib/fs.walk/README.md @@ -0,0 +1,215 @@ +# @nodelib/fs.walk + +> A library for efficiently walking a directory recursively. + +## :bulb: Highlights + +* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional). +* :rocket: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type for performance reasons. See [`old` and `modern` mode](https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode). +* :gear: Built-in directories/files and error filtering system. +* :link: Can safely work with broken symbolic links. + +## Install + +```console +npm install @nodelib/fs.walk +``` + +## Usage + +```ts +import * as fsWalk from '@nodelib/fs.walk'; + +fsWalk.walk('path', (error, entries) => { /* … */ }); +``` + +## API + +### .walk(path, [optionsOrSettings], callback) + +Reads the directory recursively and asynchronously. Requires a callback function. + +> :book: If you want to use the Promise API, use `util.promisify`. + +```ts +fsWalk.walk('path', (error, entries) => { /* … */ }); +fsWalk.walk('path', {}, (error, entries) => { /* … */ }); +fsWalk.walk('path', new fsWalk.Settings(), (error, entries) => { /* … */ }); +``` + +### .walkStream(path, [optionsOrSettings]) + +Reads the directory recursively and asynchronously. [Readable Stream](https://nodejs.org/dist/latest-v12.x/docs/api/stream.html#stream_readable_streams) is used as a provider. + +```ts +const stream = fsWalk.walkStream('path'); +const stream = fsWalk.walkStream('path', {}); +const stream = fsWalk.walkStream('path', new fsWalk.Settings()); +``` + +### .walkSync(path, [optionsOrSettings]) + +Reads the directory recursively and synchronously. Returns an array of entries. + +```ts +const entries = fsWalk.walkSync('path'); +const entries = fsWalk.walkSync('path', {}); +const entries = fsWalk.walkSync('path', new fsWalk.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settings) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsWalk.Settings({ followSymbolicLinks: true }); + +const entries = fsWalk.walkSync('path', settings); +``` + +## Entry + +* `name` — The name of the entry (`unknown.txt`). +* `path` — The path of the entry relative to call directory (`root/unknown.txt`). +* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. +* [`stats`] — An instance of `fs.Stats` class. + +## Options + +### basePath + +* Type: `string` +* Default: `undefined` + +By default, all paths are built relative to the root path. You can use this option to set custom root path. + +In the example below we read the files from the `root` directory, but in the results the root path will be `custom`. + +```ts +fsWalk.walkSync('root'); // → ['root/file.txt'] +fsWalk.walkSync('root', { basePath: 'custom' }); // → ['custom/file.txt'] +``` + +### concurrency + +* Type: `number` +* Default: `Infinity` + +The maximum number of concurrent calls to `fs.readdir`. + +> :book: The higher the number, the higher performance and the load on the File System. If you want to read in quiet mode, set the value to `4 * os.cpus().length` (4 is default size of [thread pool work scheduling](http://docs.libuv.org/en/v1.x/threadpool.html#thread-pool-work-scheduling)). + +### deepFilter + +* Type: [`DeepFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that indicates whether the directory will be read deep or not. + +```ts +// Skip all directories that starts with `node_modules` +const filter: DeepFilterFunction = (entry) => !entry.path.startsWith('node_modules'); +``` + +### entryFilter + +* Type: [`EntryFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that indicates whether the entry will be included to results or not. + +```ts +// Exclude all `.js` files from results +const filter: EntryFilterFunction = (entry) => !entry.name.endsWith('.js'); +``` + +### errorFilter + +* Type: [`ErrorFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that allows you to skip errors that occur when reading directories. + +For example, you can skip `ENOENT` errors if required: + +```ts +// Skip all ENOENT errors +const filter: ErrorFilterFunction = (error) => error.code == 'ENOENT'; +``` + +### stats + +* Type: `boolean` +* Default: `false` + +Adds an instance of `fs.Stats` class to the [`Entry`](#entry). + +> :book: Always use `fs.readdir` with additional `fs.lstat/fs.stat` calls to determine the entry type. + +### followSymbolicLinks + +* Type: `boolean` +* Default: `false` + +Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +### `pathSegmentSeparator` + +* Type: `string` +* Default: `path.sep` + +By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead. + +### `fs` + +* Type: `FileSystemAdapter` +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat: typeof fs.lstat; + stat: typeof fs.stat; + lstatSync: typeof fs.lstatSync; + statSync: typeof fs.statSync; + readdir: typeof fs.readdir; + readdirSync: typeof fs.readdirSync; +} + +const settings = new fsWalk.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.walk/out/index.d.ts b/node_modules/@nodelib/fs.walk/out/index.d.ts new file mode 100644 index 00000000..8864c7bf --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/index.d.ts @@ -0,0 +1,14 @@ +/// +import type { Readable } from 'stream'; +import type { Dirent, FileSystemAdapter } from '@nodelib/fs.scandir'; +import { AsyncCallback } from './providers/async'; +import Settings, { DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction, Options } from './settings'; +import type { Entry } from './types'; +declare function walk(directory: string, callback: AsyncCallback): void; +declare function walk(directory: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace walk { + function __promisify__(directory: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function walkSync(directory: string, optionsOrSettings?: Options | Settings): Entry[]; +declare function walkStream(directory: string, optionsOrSettings?: Options | Settings): Readable; +export { walk, walkSync, walkStream, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, Options, DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction }; diff --git a/node_modules/@nodelib/fs.walk/out/index.js b/node_modules/@nodelib/fs.walk/out/index.js new file mode 100644 index 00000000..15207874 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/index.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0; +const async_1 = require("./providers/async"); +const stream_1 = require("./providers/stream"); +const sync_1 = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function walk(directory, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); + return; + } + new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); +} +exports.walk = walk; +function walkSync(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new sync_1.default(directory, settings); + return provider.read(); +} +exports.walkSync = walkSync; +function walkStream(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new stream_1.default(directory, settings); + return provider.read(); +} +exports.walkStream = walkStream; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/async.d.ts b/node_modules/@nodelib/fs.walk/out/providers/async.d.ts new file mode 100644 index 00000000..0f6717d7 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/async.d.ts @@ -0,0 +1,12 @@ +import AsyncReader from '../readers/async'; +import type Settings from '../settings'; +import type { Entry, Errno } from '../types'; +export declare type AsyncCallback = (error: Errno, entries: Entry[]) => void; +export default class AsyncProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: AsyncReader; + private readonly _storage; + constructor(_root: string, _settings: Settings); + read(callback: AsyncCallback): void; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/async.js b/node_modules/@nodelib/fs.walk/out/providers/async.js new file mode 100644 index 00000000..51d3be51 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/async.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const async_1 = require("../readers/async"); +class AsyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._storage = []; + } + read(callback) { + this._reader.onError((error) => { + callFailureCallback(callback, error); + }); + this._reader.onEntry((entry) => { + this._storage.push(entry); + }); + this._reader.onEnd(() => { + callSuccessCallback(callback, this._storage); + }); + this._reader.read(); + } +} +exports.default = AsyncProvider; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, entries) { + callback(null, entries); +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/index.d.ts b/node_modules/@nodelib/fs.walk/out/providers/index.d.ts new file mode 100644 index 00000000..874f60c5 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/index.d.ts @@ -0,0 +1,4 @@ +import AsyncProvider from './async'; +import StreamProvider from './stream'; +import SyncProvider from './sync'; +export { AsyncProvider, StreamProvider, SyncProvider }; diff --git a/node_modules/@nodelib/fs.walk/out/providers/index.js b/node_modules/@nodelib/fs.walk/out/providers/index.js new file mode 100644 index 00000000..4c2529ce --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/index.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SyncProvider = exports.StreamProvider = exports.AsyncProvider = void 0; +const async_1 = require("./async"); +exports.AsyncProvider = async_1.default; +const stream_1 = require("./stream"); +exports.StreamProvider = stream_1.default; +const sync_1 = require("./sync"); +exports.SyncProvider = sync_1.default; diff --git a/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts b/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts new file mode 100644 index 00000000..294185f8 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts @@ -0,0 +1,12 @@ +/// +import { Readable } from 'stream'; +import AsyncReader from '../readers/async'; +import type Settings from '../settings'; +export default class StreamProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: AsyncReader; + protected readonly _stream: Readable; + constructor(_root: string, _settings: Settings); + read(): Readable; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/stream.js b/node_modules/@nodelib/fs.walk/out/providers/stream.js new file mode 100644 index 00000000..51298b0f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/stream.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const async_1 = require("../readers/async"); +class StreamProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._stream = new stream_1.Readable({ + objectMode: true, + read: () => { }, + destroy: () => { + if (!this._reader.isDestroyed) { + this._reader.destroy(); + } + } + }); + } + read() { + this._reader.onError((error) => { + this._stream.emit('error', error); + }); + this._reader.onEntry((entry) => { + this._stream.push(entry); + }); + this._reader.onEnd(() => { + this._stream.push(null); + }); + this._reader.read(); + return this._stream; + } +} +exports.default = StreamProvider; diff --git a/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts b/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts new file mode 100644 index 00000000..551c42e4 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts @@ -0,0 +1,10 @@ +import SyncReader from '../readers/sync'; +import type Settings from '../settings'; +import type { Entry } from '../types'; +export default class SyncProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: SyncReader; + constructor(_root: string, _settings: Settings); + read(): Entry[]; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/sync.js b/node_modules/@nodelib/fs.walk/out/providers/sync.js new file mode 100644 index 00000000..faab6ca2 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/sync.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const sync_1 = require("../readers/sync"); +class SyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new sync_1.default(this._root, this._settings); + } + read() { + return this._reader.read(); + } +} +exports.default = SyncProvider; diff --git a/node_modules/@nodelib/fs.walk/out/readers/async.d.ts b/node_modules/@nodelib/fs.walk/out/readers/async.d.ts new file mode 100644 index 00000000..9acf4e6c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/async.d.ts @@ -0,0 +1,30 @@ +/// +import { EventEmitter } from 'events'; +import * as fsScandir from '@nodelib/fs.scandir'; +import type Settings from '../settings'; +import type { Entry, Errno } from '../types'; +import Reader from './reader'; +declare type EntryEventCallback = (entry: Entry) => void; +declare type ErrorEventCallback = (error: Errno) => void; +declare type EndEventCallback = () => void; +export default class AsyncReader extends Reader { + protected readonly _settings: Settings; + protected readonly _scandir: typeof fsScandir.scandir; + protected readonly _emitter: EventEmitter; + private readonly _queue; + private _isFatalError; + private _isDestroyed; + constructor(_root: string, _settings: Settings); + read(): EventEmitter; + get isDestroyed(): boolean; + destroy(): void; + onEntry(callback: EntryEventCallback): void; + onError(callback: ErrorEventCallback): void; + onEnd(callback: EndEventCallback): void; + private _pushToQueue; + private _worker; + private _handleError; + private _handleEntry; + private _emitEntry; +} +export {}; diff --git a/node_modules/@nodelib/fs.walk/out/readers/async.js b/node_modules/@nodelib/fs.walk/out/readers/async.js new file mode 100644 index 00000000..ebe8dd57 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/async.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const events_1 = require("events"); +const fsScandir = require("@nodelib/fs.scandir"); +const fastq = require("fastq"); +const common = require("./common"); +const reader_1 = require("./reader"); +class AsyncReader extends reader_1.default { + constructor(_root, _settings) { + super(_root, _settings); + this._settings = _settings; + this._scandir = fsScandir.scandir; + this._emitter = new events_1.EventEmitter(); + this._queue = fastq(this._worker.bind(this), this._settings.concurrency); + this._isFatalError = false; + this._isDestroyed = false; + this._queue.drain = () => { + if (!this._isFatalError) { + this._emitter.emit('end'); + } + }; + } + read() { + this._isFatalError = false; + this._isDestroyed = false; + setImmediate(() => { + this._pushToQueue(this._root, this._settings.basePath); + }); + return this._emitter; + } + get isDestroyed() { + return this._isDestroyed; + } + destroy() { + if (this._isDestroyed) { + throw new Error('The reader is already destroyed'); + } + this._isDestroyed = true; + this._queue.killAndDrain(); + } + onEntry(callback) { + this._emitter.on('entry', callback); + } + onError(callback) { + this._emitter.once('error', callback); + } + onEnd(callback) { + this._emitter.once('end', callback); + } + _pushToQueue(directory, base) { + const queueItem = { directory, base }; + this._queue.push(queueItem, (error) => { + if (error !== null) { + this._handleError(error); + } + }); + } + _worker(item, done) { + this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { + if (error !== null) { + done(error, undefined); + return; + } + for (const entry of entries) { + this._handleEntry(entry, item.base); + } + done(null, undefined); + }); + } + _handleError(error) { + if (this._isDestroyed || !common.isFatalError(this._settings, error)) { + return; + } + this._isFatalError = true; + this._isDestroyed = true; + this._emitter.emit('error', error); + } + _handleEntry(entry, base) { + if (this._isDestroyed || this._isFatalError) { + return; + } + const fullpath = entry.path; + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._emitEntry(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === undefined ? undefined : entry.path); + } + } + _emitEntry(entry) { + this._emitter.emit('entry', entry); + } +} +exports.default = AsyncReader; diff --git a/node_modules/@nodelib/fs.walk/out/readers/common.d.ts b/node_modules/@nodelib/fs.walk/out/readers/common.d.ts new file mode 100644 index 00000000..5985f97c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/common.d.ts @@ -0,0 +1,7 @@ +import type { FilterFunction } from '../settings'; +import type Settings from '../settings'; +import type { Errno } from '../types'; +export declare function isFatalError(settings: Settings, error: Errno): boolean; +export declare function isAppliedFilter(filter: FilterFunction | null, value: T): boolean; +export declare function replacePathSegmentSeparator(filepath: string, separator: string): string; +export declare function joinPathSegments(a: string, b: string, separator: string): string; diff --git a/node_modules/@nodelib/fs.walk/out/readers/common.js b/node_modules/@nodelib/fs.walk/out/readers/common.js new file mode 100644 index 00000000..a93572f4 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/common.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0; +function isFatalError(settings, error) { + if (settings.errorFilter === null) { + return true; + } + return !settings.errorFilter(error); +} +exports.isFatalError = isFatalError; +function isAppliedFilter(filter, value) { + return filter === null || filter(value); +} +exports.isAppliedFilter = isAppliedFilter; +function replacePathSegmentSeparator(filepath, separator) { + return filepath.split(/[/\\]/).join(separator); +} +exports.replacePathSegmentSeparator = replacePathSegmentSeparator; +function joinPathSegments(a, b, separator) { + if (a === '') { + return b; + } + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; +} +exports.joinPathSegments = joinPathSegments; diff --git a/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts b/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts new file mode 100644 index 00000000..e1f383b2 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts @@ -0,0 +1,6 @@ +import type Settings from '../settings'; +export default class Reader { + protected readonly _root: string; + protected readonly _settings: Settings; + constructor(_root: string, _settings: Settings); +} diff --git a/node_modules/@nodelib/fs.walk/out/readers/reader.js b/node_modules/@nodelib/fs.walk/out/readers/reader.js new file mode 100644 index 00000000..782f07cb --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/reader.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const common = require("./common"); +class Reader { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); + } +} +exports.default = Reader; diff --git a/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts b/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts new file mode 100644 index 00000000..af410335 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts @@ -0,0 +1,15 @@ +import * as fsScandir from '@nodelib/fs.scandir'; +import type { Entry } from '../types'; +import Reader from './reader'; +export default class SyncReader extends Reader { + protected readonly _scandir: typeof fsScandir.scandirSync; + private readonly _storage; + private readonly _queue; + read(): Entry[]; + private _pushToQueue; + private _handleQueue; + private _handleDirectory; + private _handleError; + private _handleEntry; + private _pushToStorage; +} diff --git a/node_modules/@nodelib/fs.walk/out/readers/sync.js b/node_modules/@nodelib/fs.walk/out/readers/sync.js new file mode 100644 index 00000000..9a8d5a6f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/sync.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fsScandir = require("@nodelib/fs.scandir"); +const common = require("./common"); +const reader_1 = require("./reader"); +class SyncReader extends reader_1.default { + constructor() { + super(...arguments); + this._scandir = fsScandir.scandirSync; + this._storage = []; + this._queue = new Set(); + } + read() { + this._pushToQueue(this._root, this._settings.basePath); + this._handleQueue(); + return this._storage; + } + _pushToQueue(directory, base) { + this._queue.add({ directory, base }); + } + _handleQueue() { + for (const item of this._queue.values()) { + this._handleDirectory(item.directory, item.base); + } + } + _handleDirectory(directory, base) { + try { + const entries = this._scandir(directory, this._settings.fsScandirSettings); + for (const entry of entries) { + this._handleEntry(entry, base); + } + } + catch (error) { + this._handleError(error); + } + } + _handleError(error) { + if (!common.isFatalError(this._settings, error)) { + return; + } + throw error; + } + _handleEntry(entry, base) { + const fullpath = entry.path; + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._pushToStorage(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === undefined ? undefined : entry.path); + } + } + _pushToStorage(entry) { + this._storage.push(entry); + } +} +exports.default = SyncReader; diff --git a/node_modules/@nodelib/fs.walk/out/settings.d.ts b/node_modules/@nodelib/fs.walk/out/settings.d.ts new file mode 100644 index 00000000..d1c4b45f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/settings.d.ts @@ -0,0 +1,30 @@ +import * as fsScandir from '@nodelib/fs.scandir'; +import type { Entry, Errno } from './types'; +export declare type FilterFunction = (value: T) => boolean; +export declare type DeepFilterFunction = FilterFunction; +export declare type EntryFilterFunction = FilterFunction; +export declare type ErrorFilterFunction = FilterFunction; +export interface Options { + basePath?: string; + concurrency?: number; + deepFilter?: DeepFilterFunction; + entryFilter?: EntryFilterFunction; + errorFilter?: ErrorFilterFunction; + followSymbolicLinks?: boolean; + fs?: Partial; + pathSegmentSeparator?: string; + stats?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly basePath?: string; + readonly concurrency: number; + readonly deepFilter: DeepFilterFunction | null; + readonly entryFilter: EntryFilterFunction | null; + readonly errorFilter: ErrorFilterFunction | null; + readonly pathSegmentSeparator: string; + readonly fsScandirSettings: fsScandir.Settings; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.walk/out/settings.js b/node_modules/@nodelib/fs.walk/out/settings.js new file mode 100644 index 00000000..d7a85c81 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/settings.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsScandir = require("@nodelib/fs.scandir"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.basePath = this._getValue(this._options.basePath, undefined); + this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY); + this.deepFilter = this._getValue(this._options.deepFilter, null); + this.entryFilter = this._getValue(this._options.entryFilter, null); + this.errorFilter = this._getValue(this._options.errorFilter, null); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.fsScandirSettings = new fsScandir.Settings({ + followSymbolicLinks: this._options.followSymbolicLinks, + fs: this._options.fs, + pathSegmentSeparator: this._options.pathSegmentSeparator, + stats: this._options.stats, + throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.walk/out/types/index.d.ts b/node_modules/@nodelib/fs.walk/out/types/index.d.ts new file mode 100644 index 00000000..6ee9bd3f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/types/index.d.ts @@ -0,0 +1,8 @@ +/// +import type * as scandir from '@nodelib/fs.scandir'; +export declare type Entry = scandir.Entry; +export declare type Errno = NodeJS.ErrnoException; +export interface QueueItem { + directory: string; + base?: string; +} diff --git a/node_modules/@nodelib/fs.walk/out/types/index.js b/node_modules/@nodelib/fs.walk/out/types/index.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.walk/package.json b/node_modules/@nodelib/fs.walk/package.json new file mode 100644 index 00000000..86bfce48 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/package.json @@ -0,0 +1,44 @@ +{ + "name": "@nodelib/fs.walk", + "version": "1.2.8", + "description": "A library for efficiently walking a directory recursively", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "walk", + "scanner", + "crawler" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*", + "!out/**/tests/**" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4" + }, + "gitHead": "1e5bad48565da2b06b8600e744324ea240bf49d8" +} diff --git a/node_modules/@trysound/sax/LICENSE b/node_modules/@trysound/sax/LICENSE new file mode 100644 index 00000000..19129e31 --- /dev/null +++ b/node_modules/@trysound/sax/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/@trysound/sax/README.md b/node_modules/@trysound/sax/README.md new file mode 100644 index 00000000..c43d2ac2 --- /dev/null +++ b/node_modules/@trysound/sax/README.md @@ -0,0 +1,202 @@ +# svg/sax + +A maintained fork of [sax-js](https://github.com/isaacs/sax-js) sax-style parser for XML and HTML. + +Designed with [node](http://nodejs.org/) in mind, but should work fine in +the browser or other CommonJS implementations. + +## What This Is + +* A very simple tool to parse through an XML string. +* A stepping stone to a streaming HTML parser. +* A handy way to deal with RSS and other mostly-ok-but-kinda-broken XML + docs. + +## What This Is (probably) Not + +* An HTML Parser - That's a fine goal, but this isn't it. It's just + XML. +* A DOM Builder - You can use it to build an object model out of XML, + but it doesn't do that out of the box. +* XSLT - No DOM = no querying. +* 100% Compliant with (some other SAX implementation) - Most SAX + implementations are in Java and do a lot more than this does. +* An XML Validator - It does a little validation when in strict mode, but + not much. +* A Schema-Aware XSD Thing - Schemas are an exercise in fetishistic + masochism. +* A DTD-aware Thing - Fetching DTDs is a much bigger job. + +## Regarding `Hello, world!').close(); +``` + + +## Arguments + +Pass the following arguments to the parser function. All are optional. + +`strict` - Boolean. Whether or not to be a jerk. Default: `false`. + +`opt` - Object bag of settings regarding string formatting. All default to `false`. + +Settings supported: + +* `trim` - Boolean. Whether or not to trim text and comment nodes. +* `normalize` - Boolean. If true, then turn any whitespace into a single + space. +* `lowercase` - Boolean. If true, then lowercase tag names and attribute names + in loose mode, rather than uppercasing them. +* `xmlns` - Boolean. If true, then namespaces are supported. +* `position` - Boolean. If false, then don't track line/col/position. +* `strictEntities` - Boolean. If true, only parse [predefined XML + entities](http://www.w3.org/TR/REC-xml/#sec-predefined-ent) + (`&`, `'`, `>`, `<`, and `"`) + +## Methods + +`write` - Write bytes onto the stream. You don't have to do this all at +once. You can keep writing as much as you want. + +`close` - Close the stream. Once closed, no more data may be written until +it is done processing the buffer, which is signaled by the `end` event. + +`resume` - To gracefully handle errors, assign a listener to the `error` +event. Then, when the error is taken care of, you can call `resume` to +continue parsing. Otherwise, the parser will not continue while in an error +state. + +## Members + +At all times, the parser object will have the following members: + +`line`, `column`, `position` - Indications of the position in the XML +document where the parser currently is looking. + +`startTagPosition` - Indicates the position where the current tag starts. + +`closed` - Boolean indicating whether or not the parser can be written to. +If it's `true`, then wait for the `ready` event to write again. + +`strict` - Boolean indicating whether or not the parser is a jerk. + +`opt` - Any options passed into the constructor. + +`tag` - The current tag being dealt with. + +And a bunch of other stuff that you probably shouldn't touch. + +## Events + +All events emit with a single argument. To listen to an event, assign a +function to `on`. Functions get executed in the this-context of +the parser object. The list of supported events are also in the exported +`EVENTS` array. + +`error` - Indication that something bad happened. The error will be hanging +out on `parser.error`, and must be deleted before parsing can continue. By +listening to this event, you can keep an eye on that kind of stuff. Note: +this happens *much* more in strict mode. Argument: instance of `Error`. + +`text` - Text node. Argument: string of text. + +`doctype` - The ``. Argument: +object with `name` and `body` members. Attributes are not parsed, as +processing instructions have implementation dependent semantics. + +`sgmldeclaration` - Random SGML declarations. Stuff like `` +would trigger this kind of event. This is a weird thing to support, so it +might go away at some point. SAX isn't intended to be used to parse SGML, +after all. + +`opentagstart` - Emitted immediately when the tag name is available, +but before any attributes are encountered. Argument: object with a +`name` field and an empty `attributes` set. Note that this is the +same object that will later be emitted in the `opentag` event. + +`opentag` - An opening tag. Argument: object with `name` and `attributes`. +In non-strict mode, tag names are uppercased, unless the `lowercase` +option is set. If the `xmlns` option is set, then it will contain +namespace binding information on the `ns` member, and will have a +`local`, `prefix`, and `uri` member. + +`closetag` - A closing tag. In loose mode, tags are auto-closed if their +parent closes. In strict mode, well-formedness is enforced. Note that +self-closing tags will have `closeTag` emitted immediately after `openTag`. +Argument: tag name. + +`attribute` - An attribute node. Argument: object with `name` and `value`. +In non-strict mode, attribute names are uppercased, unless the `lowercase` +option is set. If the `xmlns` option is set, it will also contains namespace +information. + +`comment` - A comment node. Argument: the string of the comment. + +`opencdata` - The opening tag of a ``) of a `` tags trigger a `"script"` +event, and their contents are not checked for special xml characters. +If you pass `noscript: true`, then this behavior is suppressed. + +## Reporting Problems + +It's best to write a failing test if you find an issue. I will always +accept pull requests with failing tests if they demonstrate intended +behavior, but it is very hard to figure out what issue you're describing +without a test. Writing a test is also the best way for you yourself +to figure out if you really understand the issue you think you have with +sax-js. diff --git a/node_modules/@trysound/sax/lib/sax.js b/node_modules/@trysound/sax/lib/sax.js new file mode 100644 index 00000000..5416e88a --- /dev/null +++ b/node_modules/@trysound/sax/lib/sax.js @@ -0,0 +1,1413 @@ +;(function (sax) { // wrapper for non-node envs + sax.parser = function (strict, opt) { return new SAXParser(strict, opt) } + sax.SAXParser = SAXParser + + // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns. + // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)), + // since that's the earliest that a buffer overrun could occur. This way, checks are + // as rare as required, but as often as necessary to ensure never crossing this bound. + // Furthermore, buffers are only tested at most once per write(), so passing a very + // large string into write() might have undesirable effects, but this is manageable by + // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme + // edge case, result in creating at most one complete copy of the string passed in. + // Set to Infinity to have unlimited buffers. + sax.MAX_BUFFER_LENGTH = 64 * 1024 + + var buffers = [ + 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype', + 'procInstName', 'procInstBody', 'entity', 'attribName', + 'attribValue', 'cdata', 'script' + ] + + sax.EVENTS = [ + 'text', + 'processinginstruction', + 'sgmldeclaration', + 'doctype', + 'comment', + 'opentagstart', + 'attribute', + 'opentag', + 'closetag', + 'opencdata', + 'cdata', + 'closecdata', + 'error', + 'end', + 'ready', + 'script', + 'opennamespace', + 'closenamespace' + ] + + function SAXParser (strict, opt) { + if (!(this instanceof SAXParser)) { + return new SAXParser(strict, opt) + } + + var parser = this + clearBuffers(parser) + parser.q = parser.c = '' + parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH + parser.opt = opt || {} + parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags + parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase' + parser.tags = [] + parser.closed = parser.closedRoot = parser.sawRoot = false + parser.tag = parser.error = null + parser.strict = !!strict + parser.noscript = !!(strict || parser.opt.noscript) + parser.state = S.BEGIN + parser.strictEntities = parser.opt.strictEntities + parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES) + parser.attribList = [] + + // namespaces form a prototype chain. + // it always points at the current tag, + // which protos to its parent tag. + if (parser.opt.xmlns) { + parser.ns = Object.create(rootNS) + } + + // mostly just for error reporting + parser.trackPosition = parser.opt.position !== false + if (parser.trackPosition) { + parser.position = parser.line = parser.column = 0 + } + emit(parser, 'onready') + } + + if (!Object.create) { + Object.create = function (o) { + function F () {} + F.prototype = o + var newf = new F() + return newf + } + } + + if (!Object.keys) { + Object.keys = function (o) { + var a = [] + for (var i in o) if (o.hasOwnProperty(i)) a.push(i) + return a + } + } + + function checkBufferLength (parser) { + var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10) + var maxActual = 0 + for (var i = 0, l = buffers.length; i < l; i++) { + var len = parser[buffers[i]].length + if (len > maxAllowed) { + // Text/cdata nodes can get big, and since they're buffered, + // we can get here under normal conditions. + // Avoid issues by emitting the text node now, + // so at least it won't get any bigger. + switch (buffers[i]) { + case 'textNode': + closeText(parser) + break + + case 'cdata': + emitNode(parser, 'oncdata', parser.cdata) + parser.cdata = '' + break + + case 'script': + emitNode(parser, 'onscript', parser.script) + parser.script = '' + break + + default: + error(parser, 'Max buffer length exceeded: ' + buffers[i]) + } + } + maxActual = Math.max(maxActual, len) + } + // schedule the next check for the earliest possible buffer overrun. + var m = sax.MAX_BUFFER_LENGTH - maxActual + parser.bufferCheckPosition = m + parser.position + } + + function clearBuffers (parser) { + for (var i = 0, l = buffers.length; i < l; i++) { + parser[buffers[i]] = '' + } + } + + function flushBuffers (parser) { + closeText(parser) + if (parser.cdata !== '') { + emitNode(parser, 'oncdata', parser.cdata) + parser.cdata = '' + } + if (parser.script !== '') { + emitNode(parser, 'onscript', parser.script) + parser.script = '' + } + } + + SAXParser.prototype = { + end: function () { end(this) }, + write: write, + resume: function () { this.error = null; return this }, + close: function () { return this.write(null) }, + flush: function () { flushBuffers(this) } + } + + // this really needs to be replaced with character classes. + // XML allows all manner of ridiculous numbers and digits. + var CDATA = '[CDATA[' + var DOCTYPE = 'DOCTYPE' + var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace' + var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/' + var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE } + + // http://www.w3.org/TR/REC-xml/#NT-NameStartChar + // This implementation works on strings, a single character at a time + // as such, it cannot ever support astral-plane characters (10000-EFFFF) + // without a significant breaking change to either this parser, or the + // JavaScript language. Implementation of an emoji-capable xml parser + // is left as an exercise for the reader. + var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/ + + var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/ + + var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/ + var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/ + + function isWhitespace (c) { + return c === ' ' || c === '\n' || c === '\r' || c === '\t' + } + + function isQuote (c) { + return c === '"' || c === '\'' + } + + function isAttribEnd (c) { + return c === '>' || isWhitespace(c) + } + + function isMatch (regex, c) { + return regex.test(c) + } + + function notMatch (regex, c) { + return !isMatch(regex, c) + } + + var S = 0 + sax.STATE = { + BEGIN: S++, // leading byte order mark or whitespace + BEGIN_WHITESPACE: S++, // leading whitespace + TEXT: S++, // general stuff + TEXT_ENTITY: S++, // & and such. + OPEN_WAKA: S++, // < + SGML_DECL: S++, // + SCRIPT: S++, // +- ++ +``` + +```diff +- cssBlankPseudo(document) ++ cssBlankPseudoInit() +``` + +```diff +- cssBlankPseudo({ +- attr: false, +- className: 'blank' +- }) ++ cssBlankPseudoInit({ ++ replaceWith: '.blank' ++ }) +``` + +### 3.0.3 + +_February 5, 2022_ + +- Rebuild of browser polyfills + +### 3.0.2 + +_January 2, 2022_ + +- Removed Sourcemaps from package tarball. +- Moved CLI to CLI Package. See [announcement](https://github.com/csstools/postcss-plugins/discussions/121). + +### 3.0.1 + +_December 27, 2021_ + +- Fixed: require/import paths for browser script + +### 3.0.0 + +_December 13, 2021_ + +- Breaking: require/import paths have changed +- Changed: new polyfill CDN urls. +- Changed: Supports Node 12+ (major). +- Updated: documentation + +**Migrating to 3.0.0** + +PostCSS plugin : + +```diff +- const postcssBlankPseudo = require('css-blank-pseudo/postcss'); ++ const postcssBlankPseudo = require('css-blank-pseudo'); +``` + +Browser Polyfill : + +```diff +- const cssBlankPseudo = require('css-blank-pseudo'); ++ const cssBlankPseudo = require('css-blank-pseudo/browser'); +``` + +_The old CND url is now deprecated and will be removed in a next major release._ +_It will continue to work for now._ + +```diff +- ++ +``` + +Browser Polyfill IE : + +_The polyfill for IE is now the same as the general polyfill_ + +```diff +- const cssBlankPseudo = require('css-blank-pseudo'); ++ const cssBlankPseudo = require('css-blank-pseudo/browser'); +``` + +_The old CND url is now deprecated and will be removed in a next major release._ +_It will continue to work for now._ + +```diff +- ++ +``` + +### 2.0.0 + +_September 16, 2021_ + +- Changed: Supports PostCSS 8.3+ (major). +- Changed: Supports Node 10+ (major). + +### 1.0.0 + +_June 10, 2019_ + +- Updated: `postcss` to 7.0.16 (patch) +- Updated: Node 8+ compatibility (major) + +### 0.1.4 + +_November 17, 2018_ + +- Update documentation + +### 0.1.3 + +_November 17, 2018_ + +- Improve CLI usage + +### 0.1.2 + +_November 17, 2018_ + +- Provide a version specifically for Internet Explorer 11 + +### 0.1.1 + +_November 17, 2018_ + +- Update documentation + +### 0.1.0 + +_November 17, 2018_ + +- Initial version diff --git a/node_modules/css-blank-pseudo/LICENSE.md b/node_modules/css-blank-pseudo/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/css-blank-pseudo/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/css-blank-pseudo/README.md b/node_modules/css-blank-pseudo/README.md new file mode 100644 index 00000000..b123e575 --- /dev/null +++ b/node_modules/css-blank-pseudo/README.md @@ -0,0 +1,214 @@ +# PostCSS Blank Pseudo [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +[PostCSS Blank Pseudo] lets you style form elements when they are empty, following +the [Selectors Level 4] specification. + +To use this feature you need to do two things : +- add the [PostCSS plugin](#usage) that transforms the selector into a class or attribute +- add the [browser polyfill](#browser) that sets the attribute or class on elements in a browser + +```pcss +input:blank { + background-color: yellow; +} + +/* becomes */ + +input[blank].js-blank-pseudo, .js-blank-pseudo input[blank] { + background-color: yellow; +} +input:blank { + background-color: yellow; +} +``` + +## Usage + +Add [PostCSS Blank Pseudo] to your project: + +```bash +npm install postcss css-blank-pseudo --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssBlankPseudo = require('css-blank-pseudo'); + +postcss([ + postcssBlankPseudo(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Blank Pseudo] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is preserved. + +```js +postcssBlankPseudo({ preserve: false }) +``` + +```pcss +input:blank { + background-color: yellow; +} + +/* becomes */ + +input[blank].js-blank-pseudo, .js-blank-pseudo input[blank] { + background-color: yellow; +} +``` + +### replaceWith + +The `replaceWith` option determines the selector to use when replacing +the `:blank` pseudo. By default is `[blank]` + +```js +postcssBlankPseudo({ replaceWith: '.css-blank' }) +``` + +```pcss +input:blank { + background-color: yellow; +} + +/* becomes */ + +.foo { + color: blue; + color: red; +} + +.baz { + color: green; +} +``` + +Note that changing this option implies that it needs to be passed to the +browser polyfill as well. + +### disablePolyfillReadyClass + +The `disablePolyfillReadyClass` option determines if selectors are prefixed with an indicator class. +This class is only set on your document if the polyfill loads and is needed. + +By default this option is `false`. +Set this to `true` to prevent the class from being added. + +```js +postcssBlankPseudo({ disablePolyfillReadyClass: true }) +``` + +```pcss +input:blank { + background-color: yellow; +} + +/* becomes */ + +input[blank] { + background-color: yellow; +} +input:blank { + background-color: yellow; +} +``` + +## Browser + +```js +import cssBlankPseudoInit from 'css-blank-pseudo/browser'; + +cssBlankPseudoInit(); +``` + +or + +```html + + + +``` + +[PostCSS Blank Pseudo] works in all major browsers, including Safari 6+ and +Internet Explorer 9+ without any additional polyfills. + +This plugin conditionally uses `MutationObserver` to ensure recently inserted +inputs get correct styling upon insertion. If you intend to rely on that +behaviour for browsers that do not support `MutationObserver`, you have two +options: + +1. Polyfill `MutationObserver`. As long as it runs before `cssBlankPseudoInit`, +the polyfill will work. +2. If you don't want to polyfill `MutationObserver` you can also manually fire +a `change` event upon insertion so they're automatically inspected by the +polyfill. + +### Browser Usage + +#### force + +The `force` option determines whether the library runs even if the browser +supports the selector or not. By default, it won't run if the browser does +support the selector. + +```js +cssBlankPseudoInit({ force: true }); +``` + +#### replaceWith + +Similar to the option for the PostCSS Plugin, `replaceWith` determines the +attribute or class to apply to an element when it's considered to be `:blank`. + +```js +cssBlankPseudoInit({ replaceWith: '.css-blank' }); +``` + +This option should be used if it was changed at PostCSS configuration level. +Please note that using a class, leverages `classList` under the hood which +might not be supported on some old browsers such as IE9, so you may need +to polyfill `classList` in those cases. + +### Using with Next.js + +Given that Next.js imports packages both on the browser and on the server, you need to make sure that the package is only imported on the browser. + +As outlined in the [Next.js documentation](https://nextjs.org/docs/advanced-features/dynamic-import#with-external-libraries), you need to load the package with a dynamic import: + +```jsx +useEffect(async () => { + const cssBlankPseudoInit = (await import('css-blank-pseudo/browser')).default; + cssBlankPseudoInit(); +}, []); +``` + +We recommend you load the polyfill as high up on your Next application as possible, such as your `pages/_app.ts` file. + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#blank-pseudo-class +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/css-blank-pseudo + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Blank Pseudo]: https://github.com/csstools/postcss-plugins/tree/main/plugins/css-blank-pseudo +[Selectors Level 4]: https://www.w3.org/TR/selectors-4/#blank diff --git a/node_modules/css-blank-pseudo/dist/browser-global.js b/node_modules/css-blank-pseudo/dist/browser-global.js new file mode 100644 index 00000000..d694e0f8 --- /dev/null +++ b/node_modules/css-blank-pseudo/dist/browser-global.js @@ -0,0 +1,2 @@ +!function(){var e=[" ",">","~",":","+","@","#","(",")"];function isValidReplacement(t){for(var n=!0,o=0,r=e.length;o-1&&(n=!1);return n}var t="js-blank-pseudo";function isFormControlElement(e){return"INPUT"===e.nodeName||"SELECT"===e.nodeName||"TEXTAREA"===e.nodeName}function createNewEvent(e){var t;return"function"==typeof Event?t=new Event(e,{bubbles:!0}):(t=document.createEvent("Event")).initEvent(e,!0,!1),t}function observeValueOfHTMLElement(e,t){var n=Object.getOwnPropertyDescriptor(e.prototype,"value"),o=n.set;n.set=function set(){o.apply(this,arguments),t({target:this})},Object.defineProperty(e.prototype,"value",n)}function cssBlankPseudoInit(e){var n={force:!1,replaceWith:"[blank]"};if(void 0!==e&&"force"in e&&(n.force=e.force),void 0!==e&&"replaceWith"in e&&(n.replaceWith=e.replaceWith),!isValidReplacement(n.replaceWith))throw new Error(n.replaceWith+" is not a valid replacement since it can't be applied to single elements.");try{if(document.querySelector(":blank"),!n.force)return}catch(m){}var o,r,a,i,c,l,d,s=("."===(o=n.replaceWith)[0]?(r=o.slice(1),a=function remove(e){return e.classList.remove(r)},i=function add(e){return e.classList.add(r)}):(r=o.slice(1,-1),a=function remove(e){return e.removeAttribute(r,"")},i=function add(e){return e.setAttribute(r,"")}),function handleInputOrChangeEvent(e){var t=e.target;isFormControlElement(t)&&(("SELECT"===t.nodeName?t.options[t.selectedIndex].value:t.value)?a(t):i(t))}),u=function bindEvents(){document.body&&(document.body.addEventListener("change",s),document.body.addEventListener("input",s))},f=function updateAllCandidates(){Array.prototype.forEach.call(document.querySelectorAll("input, select, textarea"),(function(e){s({target:e})}))};if(document.body?u():window.addEventListener("load",u),-1===document.documentElement.className.indexOf(t)&&(document.documentElement.className+=" "+t),observeValueOfHTMLElement(self.HTMLInputElement,s),observeValueOfHTMLElement(self.HTMLSelectElement,s),observeValueOfHTMLElement(self.HTMLTextAreaElement,s),c=self.HTMLOptionElement,l=Object.getOwnPropertyDescriptor(c.prototype,"selected"),d=l.set,l.set=function set(e){d.apply(this,arguments);var t=createNewEvent("change");this.parentElement.dispatchEvent(t)},Object.defineProperty(c.prototype,"selected",l),f(),"undefined"!=typeof self.MutationObserver)new MutationObserver((function(e){e.forEach((function(e){Array.prototype.forEach.call(e.addedNodes||[],(function(e){1===e.nodeType&&isFormControlElement(e)&&s({target:e})}))}))})).observe(document,{childList:!0,subtree:!0});else{var p=function handleOnLoad(){return f()};window.addEventListener("load",p),window.addEventListener("DOMContentLoaded",p)}}("object"==typeof window&&window||"object"==typeof self&&self||{}).cssBlankPseudoInit=cssBlankPseudoInit}(); +//# sourceMappingURL=browser-global.js.map diff --git a/node_modules/css-blank-pseudo/dist/browser-global.js.map b/node_modules/css-blank-pseudo/dist/browser-global.js.map new file mode 100644 index 00000000..9d9fdb72 --- /dev/null +++ b/node_modules/css-blank-pseudo/dist/browser-global.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser-global.js","sources":["../src/is-valid-replacement.mjs","../src/browser.js","../src/browser-global.js"],"sourcesContent":["const INVALID_SELECTOR_CHAR = [\n\t' ', // Can't use child selector\n\t'>', // Can't use direct child selector\n\t'~', // Can't use sibling selector\n\t':', // Can't use pseudo selector\n\t'+', // Can't use adjacent selector\n\t'@', // Can't use at\n\t'#', // Can't use id selector\n\t'(', // Can't use parenthesis\n\t')', // Can't use parenthesis\n];\n\nexport default function isValidReplacement(selector) {\n\tlet isValid = true;\n\n\t// Purposely archaic so it's interoperable in old browsers\n\tfor (let i = 0, length = INVALID_SELECTOR_CHAR.length; i < length && isValid; i++) {\n\t\tif (selector.indexOf(INVALID_SELECTOR_CHAR[i]) > -1) {\n\t\t\tisValid = false;\n\t\t}\n\t}\n\n\treturn isValid;\n}\n","/* global document,window,self,MutationObserver */\nimport isValidReplacement from './is-valid-replacement.mjs';\n\nconst CSS_CLASS_LOADED = 'js-blank-pseudo';\n\n// form control elements selector\nfunction isFormControlElement(element) {\n\tif (element.nodeName === 'INPUT' || element.nodeName === 'SELECT' || element.nodeName === 'TEXTAREA') {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction createNewEvent(eventName) {\n\tlet event;\n\n\tif (typeof(Event) === 'function') {\n\t\tevent = new Event(eventName, { bubbles: true });\n\t} else {\n\t\tevent = document.createEvent('Event');\n\t\tevent.initEvent(eventName, true, false);\n\t}\n\n\treturn event;\n}\n\nfunction generateHandler(replaceWith) {\n\tlet selector;\n\tlet remove;\n\tlet add;\n\n\tif (replaceWith[0] === '.') {\n\t\tselector = replaceWith.slice(1);\n\t\tremove = (el) => el.classList.remove(selector);\n\t\tadd = (el) => el.classList.add(selector);\n\t} else {\n\t\t// A bit naive\n\t\tselector = replaceWith.slice(1, -1);\n\t\tremove = (el) => el.removeAttribute(selector, '');\n\t\tadd = (el) => el.setAttribute(selector, '');\n\t}\n\n\treturn function handleInputOrChangeEvent(event) {\n\t\tconst element = event.target;\n\t\tif (!isFormControlElement(element)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isSelect = element.nodeName === 'SELECT';\n\t\tconst hasValue = isSelect\n\t\t\t? !!element.options[element.selectedIndex].value\n\t\t\t: !!element.value;\n\n\t\tif (hasValue) {\n\t\t\tremove(element);\n\t\t} else {\n\t\t\tadd(element);\n\t\t}\n\t};\n}\n\n// observe changes to the \"selected\" property on an HTML Element\nfunction observeSelectedOfHTMLElement(HTMLElement) {\n\tconst descriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'selected');\n\tconst nativeSet = descriptor.set;\n\n\tdescriptor.set = function set(value) { // eslint-disable-line no-unused-vars\n\t\tnativeSet.apply(this, arguments);\n\n\t\tconst event = createNewEvent('change');\n\t\tthis.parentElement.dispatchEvent(event);\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'selected', descriptor);\n}\n\n// observe changes to the \"value\" property on an HTML Element\nfunction observeValueOfHTMLElement(HTMLElement, handler) {\n\tconst descriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'value');\n\tconst nativeSet = descriptor.set;\n\n\tdescriptor.set = function set() {\n\t\tnativeSet.apply(this, arguments);\n\t\thandler({ target: this });\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'value', descriptor);\n}\n\nexport default function cssBlankPseudoInit(opts) {\n\t// configuration\n\tconst options = {\n\t\tforce: false,\n\t\treplaceWith: '[blank]',\n\t};\n\n\tif (typeof opts !== 'undefined' && 'force' in opts) {\n\t\toptions.force = opts.force;\n\t}\n\n\tif (typeof opts !== 'undefined' && 'replaceWith' in opts) {\n\t\toptions.replaceWith = opts.replaceWith;\n\t}\n\n\tif (!isValidReplacement(options.replaceWith)) {\n\t\tthrow new Error(`${options.replaceWith} is not a valid replacement since it can't be applied to single elements.`);\n\t}\n\n\ttry {\n\t\tdocument.querySelector(':blank');\n\n\t\tif (!options.force) {\n\t\t\treturn;\n\t\t}\n\t} catch (ignoredError) { /* do nothing and continue */ }\n\n\tconst handler = generateHandler(options.replaceWith);\n\tconst bindEvents = () => {\n\t\tif (document.body) {\n\t\t\tdocument.body.addEventListener('change', handler);\n\t\t\tdocument.body.addEventListener('input', handler);\n\t\t}\n\t};\n\tconst updateAllCandidates = () => {\n\t\tArray.prototype.forEach.call(\n\t\t\tdocument.querySelectorAll('input, select, textarea'),\n\t\t\tnode => {\n\t\t\t\thandler({ target: node });\n\t\t\t},\n\t\t);\n\t};\n\n\tif (document.body) {\n\t\tbindEvents();\n\t} else {\n\t\twindow.addEventListener('load', bindEvents);\n\t}\n\n\tif (document.documentElement.className.indexOf(CSS_CLASS_LOADED) === -1) {\n\t\tdocument.documentElement.className += ` ${CSS_CLASS_LOADED}`;\n\t}\n\n\tobserveValueOfHTMLElement(self.HTMLInputElement, handler);\n\tobserveValueOfHTMLElement(self.HTMLSelectElement, handler);\n\tobserveValueOfHTMLElement(self.HTMLTextAreaElement, handler);\n\tobserveSelectedOfHTMLElement(self.HTMLOptionElement);\n\n\t// conditionally update all form control elements\n\tupdateAllCandidates();\n\n\tif (typeof self.MutationObserver !== 'undefined') {\n\t\t// conditionally observe added or unobserve removed form control elements\n\t\tnew MutationObserver(mutationsList => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\tArray.prototype.forEach.call(\n\t\t\t\t\tmutation.addedNodes || [],\n\t\t\t\t\tnode => {\n\t\t\t\t\t\tif (node.nodeType === 1 && isFormControlElement(node)) {\n\t\t\t\t\t\t\thandler({ target: node });\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t});\n\t\t}).observe(document, { childList: true, subtree: true });\n\t} else {\n\t\tconst handleOnLoad = () => updateAllCandidates();\n\n\t\twindow.addEventListener('load', handleOnLoad);\n\t\twindow.addEventListener('DOMContentLoaded', handleOnLoad);\n\t}\n}\n","/* global self,window */\nimport { default as cssBlankPseudoInit } from './browser';\n\n(function (global) {\n\tglobal.cssBlankPseudoInit = cssBlankPseudoInit;\n}('object' === typeof window && window || 'object' === typeof self && self || {}));\n"],"names":["INVALID_SELECTOR_CHAR","isValidReplacement","selector","isValid","i","length","indexOf","CSS_CLASS_LOADED","isFormControlElement","element","nodeName","createNewEvent","eventName","event","Event","bubbles","document","createEvent","initEvent","observeValueOfHTMLElement","HTMLElement","handler","descriptor","Object","getOwnPropertyDescriptor","prototype","nativeSet","set","apply","this","arguments","target","defineProperty","cssBlankPseudoInit","opts","options","force","replaceWith","Error","querySelector","ignoredError","remove","add","slice","el","classList","removeAttribute","setAttribute","handleInputOrChangeEvent","selectedIndex","value","bindEvents","body","addEventListener","updateAllCandidates","Array","forEach","call","querySelectorAll","node","window","documentElement","className","self","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","parentElement","dispatchEvent","MutationObserver","mutationsList","mutation","addedNodes","nodeType","observe","childList","subtree","handleOnLoad"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-blank-pseudo/dist/browser.cjs b/node_modules/css-blank-pseudo/dist/browser.cjs new file mode 100644 index 00000000..b464e627 --- /dev/null +++ b/node_modules/css-blank-pseudo/dist/browser.cjs @@ -0,0 +1,2 @@ +var e=[" ",">","~",":","+","@","#","(",")"];function isValidReplacement(t){for(var n=!0,r=0,o=e.length;r-1&&(n=!1);return n}var t="js-blank-pseudo";function isFormControlElement(e){return"INPUT"===e.nodeName||"SELECT"===e.nodeName||"TEXTAREA"===e.nodeName}function createNewEvent(e){var t;return"function"==typeof Event?t=new Event(e,{bubbles:!0}):(t=document.createEvent("Event")).initEvent(e,!0,!1),t}function observeValueOfHTMLElement(e,t){var n=Object.getOwnPropertyDescriptor(e.prototype,"value"),r=n.set;n.set=function set(){r.apply(this,arguments),t({target:this})},Object.defineProperty(e.prototype,"value",n)}module.exports=function cssBlankPseudoInit(e){var n={force:!1,replaceWith:"[blank]"};if(void 0!==e&&"force"in e&&(n.force=e.force),void 0!==e&&"replaceWith"in e&&(n.replaceWith=e.replaceWith),!isValidReplacement(n.replaceWith))throw new Error(n.replaceWith+" is not a valid replacement since it can't be applied to single elements.");try{if(document.querySelector(":blank"),!n.force)return}catch(m){}var r,o,a,i,c,l,d,s=("."===(r=n.replaceWith)[0]?(o=r.slice(1),a=function remove(e){return e.classList.remove(o)},i=function add(e){return e.classList.add(o)}):(o=r.slice(1,-1),a=function remove(e){return e.removeAttribute(o,"")},i=function add(e){return e.setAttribute(o,"")}),function handleInputOrChangeEvent(e){var t=e.target;isFormControlElement(t)&&(("SELECT"===t.nodeName?t.options[t.selectedIndex].value:t.value)?a(t):i(t))}),u=function bindEvents(){document.body&&(document.body.addEventListener("change",s),document.body.addEventListener("input",s))},f=function updateAllCandidates(){Array.prototype.forEach.call(document.querySelectorAll("input, select, textarea"),(function(e){s({target:e})}))};if(document.body?u():window.addEventListener("load",u),-1===document.documentElement.className.indexOf(t)&&(document.documentElement.className+=" "+t),observeValueOfHTMLElement(self.HTMLInputElement,s),observeValueOfHTMLElement(self.HTMLSelectElement,s),observeValueOfHTMLElement(self.HTMLTextAreaElement,s),c=self.HTMLOptionElement,l=Object.getOwnPropertyDescriptor(c.prototype,"selected"),d=l.set,l.set=function set(e){d.apply(this,arguments);var t=createNewEvent("change");this.parentElement.dispatchEvent(t)},Object.defineProperty(c.prototype,"selected",l),f(),"undefined"!=typeof self.MutationObserver)new MutationObserver((function(e){e.forEach((function(e){Array.prototype.forEach.call(e.addedNodes||[],(function(e){1===e.nodeType&&isFormControlElement(e)&&s({target:e})}))}))})).observe(document,{childList:!0,subtree:!0});else{var p=function handleOnLoad(){return f()};window.addEventListener("load",p),window.addEventListener("DOMContentLoaded",p)}}; +//# sourceMappingURL=browser.cjs.map diff --git a/node_modules/css-blank-pseudo/dist/browser.cjs.map b/node_modules/css-blank-pseudo/dist/browser.cjs.map new file mode 100644 index 00000000..9717498c --- /dev/null +++ b/node_modules/css-blank-pseudo/dist/browser.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.cjs","sources":["../src/is-valid-replacement.mjs","../src/browser.js"],"sourcesContent":["const INVALID_SELECTOR_CHAR = [\n\t' ', // Can't use child selector\n\t'>', // Can't use direct child selector\n\t'~', // Can't use sibling selector\n\t':', // Can't use pseudo selector\n\t'+', // Can't use adjacent selector\n\t'@', // Can't use at\n\t'#', // Can't use id selector\n\t'(', // Can't use parenthesis\n\t')', // Can't use parenthesis\n];\n\nexport default function isValidReplacement(selector) {\n\tlet isValid = true;\n\n\t// Purposely archaic so it's interoperable in old browsers\n\tfor (let i = 0, length = INVALID_SELECTOR_CHAR.length; i < length && isValid; i++) {\n\t\tif (selector.indexOf(INVALID_SELECTOR_CHAR[i]) > -1) {\n\t\t\tisValid = false;\n\t\t}\n\t}\n\n\treturn isValid;\n}\n","/* global document,window,self,MutationObserver */\nimport isValidReplacement from './is-valid-replacement.mjs';\n\nconst CSS_CLASS_LOADED = 'js-blank-pseudo';\n\n// form control elements selector\nfunction isFormControlElement(element) {\n\tif (element.nodeName === 'INPUT' || element.nodeName === 'SELECT' || element.nodeName === 'TEXTAREA') {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction createNewEvent(eventName) {\n\tlet event;\n\n\tif (typeof(Event) === 'function') {\n\t\tevent = new Event(eventName, { bubbles: true });\n\t} else {\n\t\tevent = document.createEvent('Event');\n\t\tevent.initEvent(eventName, true, false);\n\t}\n\n\treturn event;\n}\n\nfunction generateHandler(replaceWith) {\n\tlet selector;\n\tlet remove;\n\tlet add;\n\n\tif (replaceWith[0] === '.') {\n\t\tselector = replaceWith.slice(1);\n\t\tremove = (el) => el.classList.remove(selector);\n\t\tadd = (el) => el.classList.add(selector);\n\t} else {\n\t\t// A bit naive\n\t\tselector = replaceWith.slice(1, -1);\n\t\tremove = (el) => el.removeAttribute(selector, '');\n\t\tadd = (el) => el.setAttribute(selector, '');\n\t}\n\n\treturn function handleInputOrChangeEvent(event) {\n\t\tconst element = event.target;\n\t\tif (!isFormControlElement(element)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isSelect = element.nodeName === 'SELECT';\n\t\tconst hasValue = isSelect\n\t\t\t? !!element.options[element.selectedIndex].value\n\t\t\t: !!element.value;\n\n\t\tif (hasValue) {\n\t\t\tremove(element);\n\t\t} else {\n\t\t\tadd(element);\n\t\t}\n\t};\n}\n\n// observe changes to the \"selected\" property on an HTML Element\nfunction observeSelectedOfHTMLElement(HTMLElement) {\n\tconst descriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'selected');\n\tconst nativeSet = descriptor.set;\n\n\tdescriptor.set = function set(value) { // eslint-disable-line no-unused-vars\n\t\tnativeSet.apply(this, arguments);\n\n\t\tconst event = createNewEvent('change');\n\t\tthis.parentElement.dispatchEvent(event);\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'selected', descriptor);\n}\n\n// observe changes to the \"value\" property on an HTML Element\nfunction observeValueOfHTMLElement(HTMLElement, handler) {\n\tconst descriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'value');\n\tconst nativeSet = descriptor.set;\n\n\tdescriptor.set = function set() {\n\t\tnativeSet.apply(this, arguments);\n\t\thandler({ target: this });\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'value', descriptor);\n}\n\nexport default function cssBlankPseudoInit(opts) {\n\t// configuration\n\tconst options = {\n\t\tforce: false,\n\t\treplaceWith: '[blank]',\n\t};\n\n\tif (typeof opts !== 'undefined' && 'force' in opts) {\n\t\toptions.force = opts.force;\n\t}\n\n\tif (typeof opts !== 'undefined' && 'replaceWith' in opts) {\n\t\toptions.replaceWith = opts.replaceWith;\n\t}\n\n\tif (!isValidReplacement(options.replaceWith)) {\n\t\tthrow new Error(`${options.replaceWith} is not a valid replacement since it can't be applied to single elements.`);\n\t}\n\n\ttry {\n\t\tdocument.querySelector(':blank');\n\n\t\tif (!options.force) {\n\t\t\treturn;\n\t\t}\n\t} catch (ignoredError) { /* do nothing and continue */ }\n\n\tconst handler = generateHandler(options.replaceWith);\n\tconst bindEvents = () => {\n\t\tif (document.body) {\n\t\t\tdocument.body.addEventListener('change', handler);\n\t\t\tdocument.body.addEventListener('input', handler);\n\t\t}\n\t};\n\tconst updateAllCandidates = () => {\n\t\tArray.prototype.forEach.call(\n\t\t\tdocument.querySelectorAll('input, select, textarea'),\n\t\t\tnode => {\n\t\t\t\thandler({ target: node });\n\t\t\t},\n\t\t);\n\t};\n\n\tif (document.body) {\n\t\tbindEvents();\n\t} else {\n\t\twindow.addEventListener('load', bindEvents);\n\t}\n\n\tif (document.documentElement.className.indexOf(CSS_CLASS_LOADED) === -1) {\n\t\tdocument.documentElement.className += ` ${CSS_CLASS_LOADED}`;\n\t}\n\n\tobserveValueOfHTMLElement(self.HTMLInputElement, handler);\n\tobserveValueOfHTMLElement(self.HTMLSelectElement, handler);\n\tobserveValueOfHTMLElement(self.HTMLTextAreaElement, handler);\n\tobserveSelectedOfHTMLElement(self.HTMLOptionElement);\n\n\t// conditionally update all form control elements\n\tupdateAllCandidates();\n\n\tif (typeof self.MutationObserver !== 'undefined') {\n\t\t// conditionally observe added or unobserve removed form control elements\n\t\tnew MutationObserver(mutationsList => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\tArray.prototype.forEach.call(\n\t\t\t\t\tmutation.addedNodes || [],\n\t\t\t\t\tnode => {\n\t\t\t\t\t\tif (node.nodeType === 1 && isFormControlElement(node)) {\n\t\t\t\t\t\t\thandler({ target: node });\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t});\n\t\t}).observe(document, { childList: true, subtree: true });\n\t} else {\n\t\tconst handleOnLoad = () => updateAllCandidates();\n\n\t\twindow.addEventListener('load', handleOnLoad);\n\t\twindow.addEventListener('DOMContentLoaded', handleOnLoad);\n\t}\n}\n"],"names":["INVALID_SELECTOR_CHAR","isValidReplacement","selector","isValid","i","length","indexOf","CSS_CLASS_LOADED","isFormControlElement","element","nodeName","createNewEvent","eventName","event","Event","bubbles","document","createEvent","initEvent","observeValueOfHTMLElement","HTMLElement","handler","descriptor","Object","getOwnPropertyDescriptor","prototype","nativeSet","set","apply","this","arguments","target","defineProperty","cssBlankPseudoInit","opts","options","force","replaceWith","Error","querySelector","ignoredError","remove","add","slice","el","classList","removeAttribute","setAttribute","handleInputOrChangeEvent","selectedIndex","value","bindEvents","body","addEventListener","updateAllCandidates","Array","forEach","call","querySelectorAll","node","window","documentElement","className","self","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","parentElement","dispatchEvent","MutationObserver","mutationsList","mutation","addedNodes","nodeType","observe","childList","subtree","handleOnLoad"],"mappings":"AAAA,IAAMA,EAAwB,CAC7B,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGc,SAASC,mBAAmBC,GAI1C,IAHA,IAAIC,GAAU,EAGLC,EAAI,EAAGC,EAASL,EAAsBK,OAAQD,EAAIC,GAAUF,EAASC,IACzEF,EAASI,QAAQN,EAAsBI,KAAO,IACjDD,GAAU,GAIZ,OAAOA,CACR,CCpBA,IAAMI,EAAmB,kBAGzB,SAASC,qBAAqBC,GAC7B,MAAyB,UAArBA,EAAQC,UAA6C,WAArBD,EAAQC,UAA8C,aAArBD,EAAQC,QAK9E,CAEA,SAASC,eAAeC,GACvB,IAAIC,EASJ,MAPsB,mBAAXC,MACVD,EAAQ,IAAIC,MAAMF,EAAW,CAAEG,SAAS,KAExCF,EAAQG,SAASC,YAAY,UACvBC,UAAUN,GAAW,GAAM,GAG3BC,CACR,CAqDA,SAASM,0BAA0BC,EAAaC,GAC/C,IAAMC,EAAaC,OAAOC,yBAAyBJ,EAAYK,UAAW,SACpEC,EAAYJ,EAAWK,IAE7BL,EAAWK,IAAM,SAASA,MACzBD,EAAUE,MAAMC,KAAMC,WACtBT,EAAQ,CAAEU,OAAQF,QAGnBN,OAAOS,eAAeZ,EAAYK,UAAW,QAASH,EACvD,gBAEe,SAASW,mBAAmBC,GAE1C,IAAMC,EAAU,CACfC,OAAO,EACPC,YAAa,WAWd,QARoB,IAATH,GAAwB,UAAWA,IAC7CC,EAAQC,MAAQF,EAAKE,YAGF,IAATF,GAAwB,gBAAiBA,IACnDC,EAAQE,YAAcH,EAAKG,cAGvBpC,mBAAmBkC,EAAQE,aAC/B,MAAM,IAAIC,MAASH,EAAQE,yFAG5B,IAGC,GAFArB,SAASuB,cAAc,WAElBJ,EAAQC,MACZ,MAEF,CAAE,MAAOI,GAAgB,CAEzB,IA1FwBH,EACpBnC,EACAuC,EACAC,EAiCiCtB,EAC/BE,EACAI,EAoDAL,GArFiB,OALCgB,EA0FQF,EAAQE,aArFxB,IACfnC,EAAWmC,EAAYM,MAAM,GAC7BF,EAAS,SAAAA,OAACG,GAAE,OAAKA,EAAGC,UAAUJ,OAAOvC,EAAS,EAC9CwC,EAAM,SAAAA,IAACE,GAAE,OAAKA,EAAGC,UAAUH,IAAIxC,EAAS,IAGxCA,EAAWmC,EAAYM,MAAM,GAAI,GACjCF,EAAS,SAAAA,OAACG,GAAE,OAAKA,EAAGE,gBAAgB5C,EAAU,GAAG,EACjDwC,EAAM,SAAAA,IAACE,GAAE,OAAKA,EAAGG,aAAa7C,EAAU,GAAG,GAGrC,SAAS8C,yBAAyBnC,GACxC,IAAMJ,EAAUI,EAAMkB,OACjBvB,qBAAqBC,MAIY,WAArBA,EAAQC,SAEpBD,EAAQ0B,QAAQ1B,EAAQwC,eAAeC,MACvCzC,EAAQyC,OAGZT,EAAOhC,GAEPiC,EAAIjC,MA6DA0C,EAAa,SAAbA,aACDnC,SAASoC,OACZpC,SAASoC,KAAKC,iBAAiB,SAAUhC,GACzCL,SAASoC,KAAKC,iBAAiB,QAAShC,KAGpCiC,EAAsB,SAAtBA,sBACLC,MAAM9B,UAAU+B,QAAQC,KACvBzC,SAAS0C,iBAAiB,4BAC1B,SAAAC,GACCtC,EAAQ,CAAEU,OAAQ4B,GACnB,KAsBF,GAlBI3C,SAASoC,KACZD,IAEAS,OAAOP,iBAAiB,OAAQF,IAGqC,IAAlEnC,SAAS6C,gBAAgBC,UAAUxD,QAAQC,KAC9CS,SAAS6C,gBAAgBC,eAAiBvD,GAG3CY,0BAA0B4C,KAAKC,iBAAkB3C,GACjDF,0BAA0B4C,KAAKE,kBAAmB5C,GAClDF,0BAA0B4C,KAAKG,oBAAqB7C,GAlFfD,EAmFR2C,KAAKI,kBAlF5B7C,EAAaC,OAAOC,yBAAyBJ,EAAYK,UAAW,YACpEC,EAAYJ,EAAWK,IAE7BL,EAAWK,IAAM,SAASA,IAAIuB,GAC7BxB,EAAUE,MAAMC,KAAMC,WAEtB,IAAMjB,EAAQF,eAAe,UAC7BkB,KAAKuC,cAAcC,cAAcxD,IAGlCU,OAAOS,eAAeZ,EAAYK,UAAW,WAAYH,GA2EzDgC,IAEqC,oBAA1BS,KAAKO,iBAEf,IAAIA,kBAAiB,SAAAC,GACpBA,EAAcf,SAAQ,SAAAgB,GACrBjB,MAAM9B,UAAU+B,QAAQC,KACvBe,EAASC,YAAc,IACvB,SAAAd,GACuB,IAAlBA,EAAKe,UAAkBlE,qBAAqBmD,IAC/CtC,EAAQ,CAAEU,OAAQ4B,GAEpB,GAEF,GACD,IAAGgB,QAAQ3D,SAAU,CAAE4D,WAAW,EAAMC,SAAS,QAC3C,CACN,IAAMC,EAAe,SAAfA,eAAY,OAASxB,GAAqB,EAEhDM,OAAOP,iBAAiB,OAAQyB,GAChClB,OAAOP,iBAAiB,mBAAoByB,EAC7C,CACD"} \ No newline at end of file diff --git a/node_modules/css-blank-pseudo/dist/browser.mjs b/node_modules/css-blank-pseudo/dist/browser.mjs new file mode 100644 index 00000000..f3f1ac53 --- /dev/null +++ b/node_modules/css-blank-pseudo/dist/browser.mjs @@ -0,0 +1,2 @@ +var e=[" ",">","~",":","+","@","#","(",")"];function isValidReplacement(t){for(var n=!0,r=0,o=e.length;r-1&&(n=!1);return n}var t="js-blank-pseudo";function isFormControlElement(e){return"INPUT"===e.nodeName||"SELECT"===e.nodeName||"TEXTAREA"===e.nodeName}function createNewEvent(e){var t;return"function"==typeof Event?t=new Event(e,{bubbles:!0}):(t=document.createEvent("Event")).initEvent(e,!0,!1),t}function observeValueOfHTMLElement(e,t){var n=Object.getOwnPropertyDescriptor(e.prototype,"value"),r=n.set;n.set=function set(){r.apply(this,arguments),t({target:this})},Object.defineProperty(e.prototype,"value",n)}function cssBlankPseudoInit(e){var n={force:!1,replaceWith:"[blank]"};if(void 0!==e&&"force"in e&&(n.force=e.force),void 0!==e&&"replaceWith"in e&&(n.replaceWith=e.replaceWith),!isValidReplacement(n.replaceWith))throw new Error(n.replaceWith+" is not a valid replacement since it can't be applied to single elements.");try{if(document.querySelector(":blank"),!n.force)return}catch(m){}var r,o,a,i,c,l,d,s=("."===(r=n.replaceWith)[0]?(o=r.slice(1),a=function remove(e){return e.classList.remove(o)},i=function add(e){return e.classList.add(o)}):(o=r.slice(1,-1),a=function remove(e){return e.removeAttribute(o,"")},i=function add(e){return e.setAttribute(o,"")}),function handleInputOrChangeEvent(e){var t=e.target;isFormControlElement(t)&&(("SELECT"===t.nodeName?t.options[t.selectedIndex].value:t.value)?a(t):i(t))}),u=function bindEvents(){document.body&&(document.body.addEventListener("change",s),document.body.addEventListener("input",s))},f=function updateAllCandidates(){Array.prototype.forEach.call(document.querySelectorAll("input, select, textarea"),(function(e){s({target:e})}))};if(document.body?u():window.addEventListener("load",u),-1===document.documentElement.className.indexOf(t)&&(document.documentElement.className+=" "+t),observeValueOfHTMLElement(self.HTMLInputElement,s),observeValueOfHTMLElement(self.HTMLSelectElement,s),observeValueOfHTMLElement(self.HTMLTextAreaElement,s),c=self.HTMLOptionElement,l=Object.getOwnPropertyDescriptor(c.prototype,"selected"),d=l.set,l.set=function set(e){d.apply(this,arguments);var t=createNewEvent("change");this.parentElement.dispatchEvent(t)},Object.defineProperty(c.prototype,"selected",l),f(),"undefined"!=typeof self.MutationObserver)new MutationObserver((function(e){e.forEach((function(e){Array.prototype.forEach.call(e.addedNodes||[],(function(e){1===e.nodeType&&isFormControlElement(e)&&s({target:e})}))}))})).observe(document,{childList:!0,subtree:!0});else{var p=function handleOnLoad(){return f()};window.addEventListener("load",p),window.addEventListener("DOMContentLoaded",p)}}export{cssBlankPseudoInit as default}; +//# sourceMappingURL=browser.mjs.map diff --git a/node_modules/css-blank-pseudo/dist/browser.mjs.map b/node_modules/css-blank-pseudo/dist/browser.mjs.map new file mode 100644 index 00000000..d8cf9664 --- /dev/null +++ b/node_modules/css-blank-pseudo/dist/browser.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.mjs","sources":["../src/is-valid-replacement.mjs","../src/browser.js"],"sourcesContent":["const INVALID_SELECTOR_CHAR = [\n\t' ', // Can't use child selector\n\t'>', // Can't use direct child selector\n\t'~', // Can't use sibling selector\n\t':', // Can't use pseudo selector\n\t'+', // Can't use adjacent selector\n\t'@', // Can't use at\n\t'#', // Can't use id selector\n\t'(', // Can't use parenthesis\n\t')', // Can't use parenthesis\n];\n\nexport default function isValidReplacement(selector) {\n\tlet isValid = true;\n\n\t// Purposely archaic so it's interoperable in old browsers\n\tfor (let i = 0, length = INVALID_SELECTOR_CHAR.length; i < length && isValid; i++) {\n\t\tif (selector.indexOf(INVALID_SELECTOR_CHAR[i]) > -1) {\n\t\t\tisValid = false;\n\t\t}\n\t}\n\n\treturn isValid;\n}\n","/* global document,window,self,MutationObserver */\nimport isValidReplacement from './is-valid-replacement.mjs';\n\nconst CSS_CLASS_LOADED = 'js-blank-pseudo';\n\n// form control elements selector\nfunction isFormControlElement(element) {\n\tif (element.nodeName === 'INPUT' || element.nodeName === 'SELECT' || element.nodeName === 'TEXTAREA') {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nfunction createNewEvent(eventName) {\n\tlet event;\n\n\tif (typeof(Event) === 'function') {\n\t\tevent = new Event(eventName, { bubbles: true });\n\t} else {\n\t\tevent = document.createEvent('Event');\n\t\tevent.initEvent(eventName, true, false);\n\t}\n\n\treturn event;\n}\n\nfunction generateHandler(replaceWith) {\n\tlet selector;\n\tlet remove;\n\tlet add;\n\n\tif (replaceWith[0] === '.') {\n\t\tselector = replaceWith.slice(1);\n\t\tremove = (el) => el.classList.remove(selector);\n\t\tadd = (el) => el.classList.add(selector);\n\t} else {\n\t\t// A bit naive\n\t\tselector = replaceWith.slice(1, -1);\n\t\tremove = (el) => el.removeAttribute(selector, '');\n\t\tadd = (el) => el.setAttribute(selector, '');\n\t}\n\n\treturn function handleInputOrChangeEvent(event) {\n\t\tconst element = event.target;\n\t\tif (!isFormControlElement(element)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isSelect = element.nodeName === 'SELECT';\n\t\tconst hasValue = isSelect\n\t\t\t? !!element.options[element.selectedIndex].value\n\t\t\t: !!element.value;\n\n\t\tif (hasValue) {\n\t\t\tremove(element);\n\t\t} else {\n\t\t\tadd(element);\n\t\t}\n\t};\n}\n\n// observe changes to the \"selected\" property on an HTML Element\nfunction observeSelectedOfHTMLElement(HTMLElement) {\n\tconst descriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'selected');\n\tconst nativeSet = descriptor.set;\n\n\tdescriptor.set = function set(value) { // eslint-disable-line no-unused-vars\n\t\tnativeSet.apply(this, arguments);\n\n\t\tconst event = createNewEvent('change');\n\t\tthis.parentElement.dispatchEvent(event);\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'selected', descriptor);\n}\n\n// observe changes to the \"value\" property on an HTML Element\nfunction observeValueOfHTMLElement(HTMLElement, handler) {\n\tconst descriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'value');\n\tconst nativeSet = descriptor.set;\n\n\tdescriptor.set = function set() {\n\t\tnativeSet.apply(this, arguments);\n\t\thandler({ target: this });\n\t};\n\n\tObject.defineProperty(HTMLElement.prototype, 'value', descriptor);\n}\n\nexport default function cssBlankPseudoInit(opts) {\n\t// configuration\n\tconst options = {\n\t\tforce: false,\n\t\treplaceWith: '[blank]',\n\t};\n\n\tif (typeof opts !== 'undefined' && 'force' in opts) {\n\t\toptions.force = opts.force;\n\t}\n\n\tif (typeof opts !== 'undefined' && 'replaceWith' in opts) {\n\t\toptions.replaceWith = opts.replaceWith;\n\t}\n\n\tif (!isValidReplacement(options.replaceWith)) {\n\t\tthrow new Error(`${options.replaceWith} is not a valid replacement since it can't be applied to single elements.`);\n\t}\n\n\ttry {\n\t\tdocument.querySelector(':blank');\n\n\t\tif (!options.force) {\n\t\t\treturn;\n\t\t}\n\t} catch (ignoredError) { /* do nothing and continue */ }\n\n\tconst handler = generateHandler(options.replaceWith);\n\tconst bindEvents = () => {\n\t\tif (document.body) {\n\t\t\tdocument.body.addEventListener('change', handler);\n\t\t\tdocument.body.addEventListener('input', handler);\n\t\t}\n\t};\n\tconst updateAllCandidates = () => {\n\t\tArray.prototype.forEach.call(\n\t\t\tdocument.querySelectorAll('input, select, textarea'),\n\t\t\tnode => {\n\t\t\t\thandler({ target: node });\n\t\t\t},\n\t\t);\n\t};\n\n\tif (document.body) {\n\t\tbindEvents();\n\t} else {\n\t\twindow.addEventListener('load', bindEvents);\n\t}\n\n\tif (document.documentElement.className.indexOf(CSS_CLASS_LOADED) === -1) {\n\t\tdocument.documentElement.className += ` ${CSS_CLASS_LOADED}`;\n\t}\n\n\tobserveValueOfHTMLElement(self.HTMLInputElement, handler);\n\tobserveValueOfHTMLElement(self.HTMLSelectElement, handler);\n\tobserveValueOfHTMLElement(self.HTMLTextAreaElement, handler);\n\tobserveSelectedOfHTMLElement(self.HTMLOptionElement);\n\n\t// conditionally update all form control elements\n\tupdateAllCandidates();\n\n\tif (typeof self.MutationObserver !== 'undefined') {\n\t\t// conditionally observe added or unobserve removed form control elements\n\t\tnew MutationObserver(mutationsList => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\tArray.prototype.forEach.call(\n\t\t\t\t\tmutation.addedNodes || [],\n\t\t\t\t\tnode => {\n\t\t\t\t\t\tif (node.nodeType === 1 && isFormControlElement(node)) {\n\t\t\t\t\t\t\thandler({ target: node });\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t});\n\t\t}).observe(document, { childList: true, subtree: true });\n\t} else {\n\t\tconst handleOnLoad = () => updateAllCandidates();\n\n\t\twindow.addEventListener('load', handleOnLoad);\n\t\twindow.addEventListener('DOMContentLoaded', handleOnLoad);\n\t}\n}\n"],"names":["INVALID_SELECTOR_CHAR","isValidReplacement","selector","isValid","i","length","indexOf","CSS_CLASS_LOADED","isFormControlElement","element","nodeName","createNewEvent","eventName","event","Event","bubbles","document","createEvent","initEvent","observeValueOfHTMLElement","HTMLElement","handler","descriptor","Object","getOwnPropertyDescriptor","prototype","nativeSet","set","apply","this","arguments","target","defineProperty","cssBlankPseudoInit","opts","options","force","replaceWith","Error","querySelector","ignoredError","remove","add","slice","el","classList","removeAttribute","setAttribute","handleInputOrChangeEvent","selectedIndex","value","bindEvents","body","addEventListener","updateAllCandidates","Array","forEach","call","querySelectorAll","node","window","documentElement","className","self","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","parentElement","dispatchEvent","MutationObserver","mutationsList","mutation","addedNodes","nodeType","observe","childList","subtree","handleOnLoad"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-blank-pseudo/dist/index.cjs b/node_modules/css-blank-pseudo/dist/index.cjs new file mode 100644 index 00000000..59e1898a --- /dev/null +++ b/node_modules/css-blank-pseudo/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-selector-parser");const s=[" ",">","~",":","+","@","#","(",")"];function isValidReplacement(e){let n=!0;for(let t=0,l=s.length;t-1&&(n=!1);return n}const n="js-blank-pseudo",t=":blank",creator=s=>{const l=Object.assign({preserve:!0,replaceWith:"[blank]",disablePolyfillReadyClass:!1},s),r=e().astSync(l.replaceWith);return isValidReplacement(l.replaceWith)?{postcssPlugin:"css-blank-pseudo",prepare(){const s=new WeakSet;return{Rule(o,{result:a}){if(s.has(o))return;if(!o.selector.toLowerCase().includes(t))return;const i=o.selectors.flatMap((s=>{if(!s.toLowerCase().includes(t))return[s];let i;try{i=e().astSync(s)}catch(e){return o.warn(a,`Failed to parse selector : "${s}" with message: "${e.message}"`),[s]}if(void 0===i)return[s];let c=!1;if(i.walkPseudos((e=>{e.value.toLowerCase()===t&&(e.nodes&&e.nodes.length||(c=!0,e.replaceWith(r.clone({}))))})),!c)return[s];const d=i.clone();if(!l.disablePolyfillReadyClass){var u,p,f,g,m;if(null!=(u=i.nodes)&&null!=(p=u[0])&&null!=(f=p.nodes)&&f.length)for(let s=0;s{e.warn(s,`${l.replaceWith} is not a valid replacement since it can't be applied to single elements.`)}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/css-blank-pseudo/dist/index.d.ts b/node_modules/css-blank-pseudo/dist/index.d.ts new file mode 100644 index 00000000..488c813e --- /dev/null +++ b/node_modules/css-blank-pseudo/dist/index.d.ts @@ -0,0 +1,12 @@ +import type { PluginCreator } from 'postcss'; +/** css-blank-pseudo plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: true */ + preserve?: boolean; + /** Replacement for ":blank". default: "[blank]" */ + replaceWith?: string; + /** Do not inject "js-blank-pseudo" before each selector with "[blank]". default: false */ + disablePolyfillReadyClass?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/css-blank-pseudo/dist/index.mjs b/node_modules/css-blank-pseudo/dist/index.mjs new file mode 100644 index 00000000..abf8967d --- /dev/null +++ b/node_modules/css-blank-pseudo/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-selector-parser";const s=[" ",">","~",":","+","@","#","(",")"];function isValidReplacement(e){let n=!0;for(let t=0,l=s.length;t-1&&(n=!1);return n}const n="js-blank-pseudo",t=":blank",creator=s=>{const l=Object.assign({preserve:!0,replaceWith:"[blank]",disablePolyfillReadyClass:!1},s),o=e().astSync(l.replaceWith);return isValidReplacement(l.replaceWith)?{postcssPlugin:"css-blank-pseudo",prepare(){const s=new WeakSet;return{Rule(r,{result:a}){if(s.has(r))return;if(!r.selector.toLowerCase().includes(t))return;const i=r.selectors.flatMap((s=>{if(!s.toLowerCase().includes(t))return[s];let i;try{i=e().astSync(s)}catch(e){return r.warn(a,`Failed to parse selector : "${s}" with message: "${e.message}"`),[s]}if(void 0===i)return[s];let c=!1;if(i.walkPseudos((e=>{e.value.toLowerCase()===t&&(e.nodes&&e.nodes.length||(c=!0,e.replaceWith(o.clone({}))))})),!c)return[s];const d=i.clone();if(!l.disablePolyfillReadyClass){var u,p,f,m,g;if(null!=(u=i.nodes)&&null!=(p=u[0])&&null!=(f=p.nodes)&&f.length)for(let s=0;s{e.warn(s,`${l.replaceWith} is not a valid replacement since it can't be applied to single elements.`)}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/css-blank-pseudo/package.json b/node_modules/css-blank-pseudo/package.json new file mode 100644 index 00000000..d3eba43f --- /dev/null +++ b/node_modules/css-blank-pseudo/package.json @@ -0,0 +1,111 @@ +{ + "name": "css-blank-pseudo", + "description": "Style form elements when they are empty", + "version": "6.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + }, + { + "name": "Jonathan Neal", + "email": "jonathantneal@hotmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + }, + "./browser": { + "import": "./dist/browser.mjs", + "require": "./dist/browser.cjs", + "default": "./dist/browser.mjs" + }, + "./browser-global": { + "default": "./dist/browser-global.js" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "postcss-selector-parser": "^6.0.13" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*", + "puppeteer": "^20.7.4" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs && node ./test/_valid-replacements.mjs", + "test:browser": "node ./test/_browser.mjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/css-blank-pseudo#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/css-blank-pseudo" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "a11y", + "accessibility", + "blank", + "css", + "empty", + "input", + "javascript", + "js", + "polyfill", + "postcss", + "postcss-plugin", + "pseudo", + "select", + "selectors", + "textarea" + ], + "csstools": { + "cssdbId": "blank-pseudo-class", + "exportName": "postcssBlankPseudo", + "humanReadableName": "PostCSS Blank Pseudo", + "specUrl": "https://www.w3.org/TR/selectors-4/#blank" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/css-declaration-sorter/dist/main.cjs b/node_modules/css-declaration-sorter/dist/main.cjs new file mode 100644 index 00000000..cef56d78 --- /dev/null +++ b/node_modules/css-declaration-sorter/dist/main.cjs @@ -0,0 +1,1824 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +const shorthandData = { + 'animation': [ + 'animation-name', + 'animation-duration', + 'animation-timing-function', + 'animation-delay', + 'animation-iteration-count', + 'animation-direction', + 'animation-fill-mode', + 'animation-play-state', + ], + 'background': [ + 'background-image', + 'background-size', + 'background-position', + 'background-repeat', + 'background-origin', + 'background-clip', + 'background-attachment', + 'background-color', + ], + 'columns': [ + 'column-width', + 'column-count', + ], + 'column-rule': [ + 'column-rule-width', + 'column-rule-style', + 'column-rule-color', + ], + 'flex': [ + 'flex-grow', + 'flex-shrink', + 'flex-basis', + ], + 'flex-flow': [ + 'flex-direction', + 'flex-wrap', + ], + 'font': [ + 'font-style', + 'font-variant', + 'font-weight', + 'font-stretch', + 'font-size', + 'font-family', + 'line-height', + ], + 'grid': [ + 'grid-template-rows', + 'grid-template-columns', + 'grid-template-areas', + 'grid-auto-rows', + 'grid-auto-columns', + 'grid-auto-flow', + 'column-gap', + 'row-gap', + ], + 'grid-area': [ + 'grid-row-start', + 'grid-column-start', + 'grid-row-end', + 'grid-column-end', + ], + 'grid-column': [ + 'grid-column-start', + 'grid-column-end', + ], + 'grid-row': [ + 'grid-row-start', + 'grid-row-end', + ], + 'grid-template': [ + 'grid-template-columns', + 'grid-template-rows', + 'grid-template-areas', + ], + 'list-style': [ + 'list-style-type', + 'list-style-position', + 'list-style-image', + ], + 'padding': [ + 'padding-block', + 'padding-block-start', + 'padding-block-end', + 'padding-inline', + 'padding-inline-start', + 'padding-inline-end', + 'padding-top', + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'padding-block': [ + 'padding-block-start', + 'padding-block-end', + 'padding-top', + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'padding-block-start': [ + 'padding-top', + 'padding-right', + 'padding-left', + ], + 'padding-block-end': [ + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'padding-inline': [ + 'padding-inline-start', + 'padding-inline-end', + 'padding-top', + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'padding-inline-start': [ + 'padding-top', + 'padding-right', + 'padding-left', + ], + 'padding-inline-end': [ + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'margin': [ + 'margin-block', + 'margin-block-start', + 'margin-block-end', + 'margin-inline', + 'margin-inline-start', + 'margin-inline-end', + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'margin-block': [ + 'margin-block-start', + 'margin-block-end', + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'margin-inline': [ + 'margin-inline-start', + 'margin-inline-end', + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'margin-inline-start': [ + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'margin-inline-end': [ + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'border': [ + 'border-top', + 'border-right', + 'border-bottom', + 'border-left', + 'border-width', + 'border-style', + 'border-color', + 'border-top-width', + 'border-right-width', + 'border-bottom-width', + 'border-left-width', + 'border-inline-start-width', + 'border-inline-end-width', + 'border-block-start-width', + 'border-block-end-width', + 'border-top-style', + 'border-right-style', + 'border-bottom-style', + 'border-left-style', + 'border-inline-start-style', + 'border-inline-end-style', + 'border-block-start-style', + 'border-block-end-style', + 'border-top-color', + 'border-right-color', + 'border-bottom-color', + 'border-left-color', + 'border-inline-start-color', + 'border-inline-end-color', + 'border-block-start-color', + 'border-block-end-color', + 'border-block', + 'border-block-start', + 'border-block-end', + 'border-block-width', + 'border-block-style', + 'border-block-color', + 'border-inline', + 'border-inline-start', + 'border-inline-end', + 'border-inline-width', + 'border-inline-style', + 'border-inline-color', + ], + 'border-top': [ + 'border-width', + 'border-style', + 'border-color', + 'border-top-width', + 'border-top-style', + 'border-top-color', + ], + 'border-right': [ + 'border-width', + 'border-style', + 'border-color', + 'border-right-width', + 'border-right-style', + 'border-right-color', + ], + 'border-bottom': [ + 'border-width', + 'border-style', + 'border-color', + 'border-bottom-width', + 'border-bottom-style', + 'border-bottom-color', + ], + 'border-left': [ + 'border-width', + 'border-style', + 'border-color', + 'border-left-width', + 'border-left-style', + 'border-left-color', + ], + 'border-color': [ + 'border-top-color', + 'border-bottom-color', + 'border-left-color', + 'border-right-color', + 'border-inline-start-color', + 'border-inline-end-color', + 'border-block-start-color', + 'border-block-end-color', + ], + 'border-width': [ + 'border-top-width', + 'border-bottom-width', + 'border-left-width', + 'border-right-width', + 'border-inline-start-width', + 'border-inline-end-width', + 'border-block-start-width', + 'border-block-end-width', + ], + 'border-style': [ + 'border-top-style', + 'border-bottom-style', + 'border-left-style', + 'border-right-style', + 'border-inline-start-style', + 'border-inline-end-style', + 'border-block-start-style', + 'border-block-end-style', + ], + 'border-radius': [ + 'border-top-right-radius', + 'border-top-left-radius', + 'border-bottom-right-radius', + 'border-bottom-left-radius', + ], + 'border-block': [ + 'border-block-start', + 'border-block-end', + 'border-block-width', + 'border-width', + 'border-block-style', + 'border-style', + 'border-block-color', + 'border-color', + ], + 'border-block-start': [ + 'border-block-start-width', + 'border-width', + 'border-block-start-style', + 'border-style', + 'border-block-start-color', + 'border-color', + ], + 'border-block-end': [ + 'border-block-end-width', + 'border-width', + 'border-block-end-style', + 'border-style', + 'border-block-end-color', + 'border-color', + ], + 'border-inline': [ + 'border-inline-start', + 'border-inline-end', + 'border-inline-width', + 'border-width', + 'border-inline-style', + 'border-style', + 'border-inline-color', + 'border-color', + ], + 'border-inline-start': [ + 'border-inline-start-width', + 'border-width', + 'border-inline-start-style', + 'border-style', + 'border-inline-start-color', + 'border-color', + ], + 'border-inline-end': [ + 'border-inline-end-width', + 'border-width', + 'border-inline-end-style', + 'border-style', + 'border-inline-end-color', + 'border-color', + ], + 'border-image': [ + 'border-image-source', + 'border-image-slice', + 'border-image-width', + 'border-image-outset', + 'border-image-repeat', + ], + 'mask': [ + 'mask-image', + 'mask-mode', + 'mask-position', + 'mask-size', + 'mask-repeat', + 'mask-origin', + 'mask-clip', + 'mask-composite', + ], + 'inline-size': [ + 'width', + 'height', + ], + 'block-size': [ + 'width', + 'height', + ], + 'max-inline-size': [ + 'max-width', + 'max-height', + ], + 'max-block-size': [ + 'max-width', + 'max-height', + ], + 'inset': [ + 'inset-block', + 'inset-block-start', + 'inset-block-end', + 'inset-inline', + 'inset-inline-start', + 'inset-inline-end', + 'top', + 'right', + 'bottom', + 'left', + ], + 'inset-block': [ + 'inset-block-start', + 'inset-block-end', + 'top', + 'right', + 'bottom', + 'left', + ], + 'inset-inline': [ + 'inset-inline-start', + 'inset-inline-end', + 'top', + 'right', + 'bottom', + 'left', + ], + 'outline': [ + 'outline-color', + 'outline-style', + 'outline-width', + ], + 'overflow': [ + 'overflow-x', + 'overflow-y', + ], + 'place-content': [ + 'align-content', + 'justify-content', + ], + 'place-items': [ + 'align-items', + 'justify-items', + ], + 'place-self': [ + 'align-self', + 'justify-self', + ], + 'text-decoration': [ + 'text-decoration-color', + 'text-decoration-style', + 'text-decoration-line', + ], + 'transition': [ + 'transition-delay', + 'transition-duration', + 'transition-property', + 'transition-timing-function', + ], + 'text-emphasis': [ + 'text-emphasis-style', + 'text-emphasis-color', + ], +}; + +function bubbleSort (list, comparator) { + let upperIndex = list.length - 1; + + while (upperIndex > 0) { + let swapIndex = 0; + + for (let i = 0; i < upperIndex; i += 1) { + if (comparator(list[i], list[i + 1]) > 0) { + const temp = list[i + 1]; + list[i + 1] = list[i]; + list[i] = temp; + swapIndex = i; + } + } + + upperIndex = swapIndex; + } + + return list; +} + +function __variableDynamicImportRuntime0__(path) { + switch (path) { + case '../orders/alphabetical.mjs': return Promise.resolve().then(function () { return alphabetical; }); + case '../orders/concentric-css.mjs': return Promise.resolve().then(function () { return concentricCss; }); + case '../orders/smacss.mjs': return Promise.resolve().then(function () { return smacss; }); + default: return new Promise(function(resolve, reject) { + (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)( + reject.bind(null, new Error("Unknown variable dynamic import: " + path)) + ); + }) + } + } + +const builtInOrders = [ + 'alphabetical', + 'concentric-css', + 'smacss', +]; + +const cssDeclarationSorter = ({ order = 'alphabetical', keepOverrides = false } = {}) => ({ + postcssPlugin: 'css-declaration-sorter', + OnceExit (css) { + let withKeepOverrides = comparator => comparator; + if (keepOverrides) { + withKeepOverrides = withOverridesComparator(shorthandData); + } + + if (typeof order === 'function') { + return processCss({ css, comparator: withKeepOverrides(order) }); + } + + if (!builtInOrders.includes(order)) + return Promise.reject( + Error([ + `Invalid built-in order '${order}' provided.`, + `Available built-in orders are: ${builtInOrders}`, + ].join('\n')) + ); + + return __variableDynamicImportRuntime0__(`../orders/${order}.mjs`) + .then(({ properties }) => processCss({ + css, + comparator: withKeepOverrides(orderComparator(properties)), + })); + }, +}); + +cssDeclarationSorter.postcss = true; + +function processCss ({ css, comparator }) { + const comments = []; + const rulesCache = []; + + css.walk(node => { + const nodes = node.nodes; + const type = node.type; + + if (type === 'comment') { + // Don't do anything to root comments or the last newline comment + const isNewlineNode = node.raws.before && node.raws.before.includes('\n'); + const lastNewlineNode = isNewlineNode && !node.next(); + const onlyNode = !node.prev() && !node.next() || !node.parent; + + if (lastNewlineNode || onlyNode || node.parent.type === 'root') { + return; + } + + if (isNewlineNode) { + const pairedNode = node.next() || node.prev(); + if (pairedNode) { + comments.unshift({ + 'comment': node, + 'pairedNode': pairedNode, + 'insertPosition': node.next() ? 'Before' : 'After', + }); + node.remove(); + } + } else { + const pairedNode = node.prev() || node.next(); + if (pairedNode) { + comments.push({ + 'comment': node, + 'pairedNode': pairedNode, + 'insertPosition': 'After', + }); + node.remove(); + } + } + return; + } + + // Add rule-like nodes to a cache so that we can remove all + // comment nodes before we start sorting. + const isRule = type === 'rule' || type === 'atrule'; + if (isRule && nodes && nodes.length > 1) { + rulesCache.push(nodes); + } + }); + + // Perform a sort once all comment nodes are removed + rulesCache.forEach(nodes => { + sortCssDeclarations({ nodes, comparator }); + }); + + // Add comments back to the nodes they are paired with + comments.forEach(node => { + const pairedNode = node.pairedNode; + node.comment.remove(); + pairedNode.parent && pairedNode.parent['insert' + node.insertPosition](pairedNode, node.comment); + }); +} + +function sortCssDeclarations ({ nodes, comparator }) { + bubbleSort(nodes, (a, b) => { + if (a.type === 'decl' && b.type === 'decl') { + return comparator(a.prop, b.prop); + } else { + return compareDifferentType(a, b); + } + }); +} + +function withOverridesComparator (shorthandData) { + return function (comparator) { + return function (a, b) { + a = removeVendorPrefix(a); + b = removeVendorPrefix(b); + + if (shorthandData[a] && shorthandData[a].includes(b)) return 0; + if (shorthandData[b] && shorthandData[b].includes(a)) return 0; + + return comparator(a, b); + }; + }; +} + +function orderComparator (order) { + return function (a, b) { + return order.indexOf(a) - order.indexOf(b); + }; +} + +function compareDifferentType (a, b) { + if (b.type === 'atrule' || a.type === 'atrule') { + return 0; + } + + return a.type === 'decl' ? -1 : b.type === 'decl' ? 1 : 0; +} + +function removeVendorPrefix (property) { + return property.replace(/^-\w+-/, ''); +} + +const properties$2 = [ + "all", + "-webkit-line-clamp", + "-webkit-text-fill-color", + "-webkit-text-stroke", + "-webkit-text-stroke-color", + "-webkit-text-stroke-width", + "accent-color", + "align-content", + "align-items", + "align-self", + "animation", + "animation-delay", + "animation-direction", + "animation-duration", + "animation-fill-mode", + "animation-iteration-count", + "animation-name", + "animation-play-state", + "animation-timing-function", + "appearance", + "ascent-override", + "aspect-ratio", + "backdrop-filter", + "backface-visibility", + "background", + "background-attachment", + "background-blend-mode", + "background-clip", + "background-color", + "background-image", + "background-origin", + "background-position", + "background-position-x", + "background-position-y", + "background-repeat", + "background-size", + "block-size", + "border", + "border-block", + "border-block-color", + "border-block-end", + "border-block-end-color", + "border-block-end-style", + "border-block-end-width", + "border-block-start", + "border-block-start-color", + "border-block-start-style", + "border-block-start-width", + "border-block-style", + "border-block-width", + "border-bottom", + "border-bottom-color", + "border-bottom-left-radius", + "border-bottom-right-radius", + "border-bottom-style", + "border-bottom-width", + "border-collapse", + "border-color", + "border-end-end-radius", + "border-end-start-radius", + "border-image", + "border-image-outset", + "border-image-repeat", + "border-image-slice", + "border-image-source", + "border-image-width", + "border-inline", + "border-inline-color", + "border-inline-end", + "border-inline-end-color", + "border-inline-end-style", + "border-inline-end-width", + "border-inline-start", + "border-inline-start-color", + "border-inline-start-style", + "border-inline-start-width", + "border-inline-style", + "border-inline-width", + "border-left", + "border-left-color", + "border-left-style", + "border-left-width", + "border-radius", + "border-right", + "border-right-color", + "border-right-style", + "border-right-width", + "border-spacing", + "border-start-end-radius", + "border-start-start-radius", + "border-style", + "border-top", + "border-top-color", + "border-top-left-radius", + "border-top-right-radius", + "border-top-style", + "border-top-width", + "border-width", + "bottom", + "box-decoration-break", + "box-shadow", + "box-sizing", + "break-after", + "break-before", + "break-inside", + "caption-side", + "caret-color", + "clear", + "clip-path", + "color", + "color-scheme", + "column-count", + "column-fill", + "column-gap", + "column-rule", + "column-rule-color", + "column-rule-style", + "column-rule-width", + "column-span", + "column-width", + "columns", + "contain", + "contain-intrinsic-height", + "contain-intrinsic-size", + "contain-intrinsic-width", + "container", + "container-name", + "container-type", + "content", + "content-visibility", + "counter-increment", + "counter-reset", + "counter-set", + "cursor", + "descent-override", + "direction", + "display", + "empty-cells", + "filter", + "flex", + "flex-basis", + "flex-direction", + "flex-flow", + "flex-grow", + "flex-shrink", + "flex-wrap", + "float", + "font", + "font-display", + "font-family", + "font-kerning", + "font-language-override", + "font-optical-sizing", + "font-palette", + "font-size", + "font-size-adjust", + "font-stretch", + "font-style", + "font-synthesis", + "font-variant", + "font-variant-alternates", + "font-variant-caps", + "font-variant-east-asian", + "font-variant-emoji", + "font-variant-ligatures", + "font-variant-numeric", + "font-variant-position", + "font-variation-settings", + "font-weight", + "forced-color-adjust", + "gap", + "grid", + "grid-area", + "grid-auto-columns", + "grid-auto-flow", + "grid-auto-rows", + "grid-column", + "grid-column-end", + "grid-column-start", + "grid-row", + "grid-row-end", + "grid-row-start", + "grid-template", + "grid-template-areas", + "grid-template-columns", + "grid-template-rows", + "hanging-punctuation", + "height", + "hyphenate-character", + "hyphens", + "image-orientation", + "image-rendering", + "inline-size", + "inset", + "inset-block", + "inset-block-end", + "inset-block-start", + "inset-inline", + "inset-inline-end", + "inset-inline-start", + "isolation", + "justify-content", + "justify-items", + "justify-self", + "left", + "letter-spacing", + "line-break", + "line-gap-override", + "line-height", + "list-style", + "list-style-image", + "list-style-position", + "list-style-type", + "margin", + "margin-block", + "margin-block-end", + "margin-block-start", + "margin-bottom", + "margin-inline", + "margin-inline-end", + "margin-inline-start", + "margin-left", + "margin-right", + "margin-top", + "mask", + "mask-border", + "mask-border-outset", + "mask-border-repeat", + "mask-border-slice", + "mask-border-source", + "mask-border-width", + "mask-clip", + "mask-composite", + "mask-image", + "mask-mode", + "mask-origin", + "mask-position", + "mask-repeat", + "mask-size", + "mask-type", + "max-block-size", + "max-height", + "max-inline-size", + "max-width", + "min-block-size", + "min-height", + "min-inline-size", + "min-width", + "mix-blend-mode", + "object-fit", + "object-position", + "offset", + "offset-anchor", + "offset-distance", + "offset-path", + "offset-rotate", + "opacity", + "order", + "orphans", + "outline", + "outline-color", + "outline-offset", + "outline-style", + "outline-width", + "overflow", + "overflow-anchor", + "overflow-block", + "overflow-clip-margin", + "overflow-inline", + "overflow-wrap", + "overflow-x", + "overflow-y", + "overscroll-behavior", + "overscroll-behavior-block", + "overscroll-behavior-inline", + "overscroll-behavior-x", + "overscroll-behavior-y", + "padding", + "padding-block", + "padding-block-end", + "padding-block-start", + "padding-bottom", + "padding-inline", + "padding-inline-end", + "padding-inline-start", + "padding-left", + "padding-right", + "padding-top", + "page", + "page-break-after", + "page-break-before", + "page-break-inside", + "paint-order", + "perspective", + "perspective-origin", + "place-content", + "place-items", + "place-self", + "pointer-events", + "position", + "print-color-adjust", + "quotes", + "resize", + "right", + "rotate", + "row-gap", + "ruby-position", + "scale", + "scroll-behavior", + "scroll-margin", + "scroll-margin-block", + "scroll-margin-block-end", + "scroll-margin-block-start", + "scroll-margin-bottom", + "scroll-margin-inline", + "scroll-margin-inline-end", + "scroll-margin-inline-start", + "scroll-margin-left", + "scroll-margin-right", + "scroll-margin-top", + "scroll-padding", + "scroll-padding-block", + "scroll-padding-block-end", + "scroll-padding-block-start", + "scroll-padding-bottom", + "scroll-padding-inline", + "scroll-padding-inline-end", + "scroll-padding-inline-start", + "scroll-padding-left", + "scroll-padding-right", + "scroll-padding-top", + "scroll-snap-align", + "scroll-snap-stop", + "scroll-snap-type", + "scrollbar-color", + "scrollbar-gutter", + "scrollbar-width", + "shape-image-threshold", + "shape-margin", + "shape-outside", + "size-adjust", + "src", + "tab-size", + "table-layout", + "text-align", + "text-align-last", + "text-combine-upright", + "text-decoration", + "text-decoration-color", + "text-decoration-line", + "text-decoration-skip-ink", + "text-decoration-style", + "text-decoration-thickness", + "text-emphasis", + "text-emphasis-color", + "text-emphasis-position", + "text-emphasis-style", + "text-indent", + "text-justify", + "text-orientation", + "text-overflow", + "text-rendering", + "text-shadow", + "text-transform", + "text-underline-offset", + "text-underline-position", + "top", + "touch-action", + "transform", + "transform-box", + "transform-origin", + "transform-style", + "transition", + "transition-delay", + "transition-duration", + "transition-property", + "transition-timing-function", + "translate", + "unicode-bidi", + "unicode-range", + "user-select", + "vertical-align", + "visibility", + "white-space", + "widows", + "width", + "will-change", + "word-break", + "word-spacing", + "writing-mode", + "z-index" +]; + +var alphabetical = /*#__PURE__*/Object.freeze({ + __proto__: null, + properties: properties$2 +}); + +const properties$1 = [ + "all", + "display", + "position", + "top", + "right", + "bottom", + "left", + "offset", + "offset-anchor", + "offset-distance", + "offset-path", + "offset-rotate", + "grid", + "grid-template-rows", + "grid-template-columns", + "grid-template-areas", + "grid-auto-rows", + "grid-auto-columns", + "grid-auto-flow", + "column-gap", + "row-gap", + "grid-area", + "grid-row", + "grid-row-start", + "grid-row-end", + "grid-column", + "grid-column-start", + "grid-column-end", + "grid-template", + "flex", + "flex-grow", + "flex-shrink", + "flex-basis", + "flex-direction", + "flex-flow", + "flex-wrap", + "box-decoration-break", + "place-content", + "align-content", + "justify-content", + "place-items", + "align-items", + "justify-items", + "place-self", + "align-self", + "justify-self", + "vertical-align", + "order", + "float", + "clear", + "shape-margin", + "shape-outside", + "shape-image-threshold", + "orphans", + "gap", + "columns", + "column-fill", + "column-rule", + "column-rule-width", + "column-rule-style", + "column-rule-color", + "column-width", + "column-span", + "column-count", + "break-before", + "break-after", + "break-inside", + "page", + "page-break-before", + "page-break-after", + "page-break-inside", + "transform", + "transform-box", + "transform-origin", + "transform-style", + "translate", + "rotate", + "scale", + + "perspective", + "perspective-origin", + "appearance", + "visibility", + "content-visibility", + "opacity", + "z-index", + "paint-order", + "mix-blend-mode", + "backface-visibility", + "backdrop-filter", + "clip-path", + "mask", + "mask-border", + "mask-border-outset", + "mask-border-repeat", + "mask-border-slice", + "mask-border-source", + "mask-border-width", + "mask-image", + "mask-mode", + "mask-position", + "mask-size", + "mask-repeat", + "mask-origin", + "mask-clip", + "mask-composite", + "mask-type", + "filter", + "animation", + "animation-duration", + "animation-timing-function", + "animation-delay", + "animation-iteration-count", + "animation-direction", + "animation-fill-mode", + "animation-play-state", + "animation-name", + "transition", + "transition-delay", + "transition-duration", + "transition-property", + "transition-timing-function", + "will-change", + "counter-increment", + "counter-reset", + "counter-set", + "cursor", + + "box-sizing", + "contain", + "contain-intrinsic-height", + "contain-intrinsic-size", + "contain-intrinsic-width", + "container", + "container-name", + "container-type", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "margin-inline", + "margin-inline-start", + "margin-inline-end", + "margin-block", + "margin-block-start", + "margin-block-end", + "inset", + "inset-block", + "inset-block-end", + "inset-block-start", + "inset-inline", + "inset-inline-end", + "inset-inline-start", + "outline", + "outline-color", + "outline-style", + "outline-width", + "outline-offset", + "box-shadow", + "border", + "border-top", + "border-right", + "border-bottom", + "border-left", + "border-width", + "border-top-width", + "border-right-width", + "border-bottom-width", + "border-left-width", + "border-style", + "border-top-style", + "border-right-style", + "border-bottom-style", + "border-left-style", + "border-color", + "border-top-color", + "border-right-color", + "border-bottom-color", + "border-left-color", + "border-radius", + "border-top-right-radius", + "border-top-left-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "border-inline", + "border-inline-width", + "border-inline-style", + "border-inline-color", + "border-inline-start", + "border-inline-start-width", + "border-inline-start-style", + "border-inline-start-color", + "border-inline-end", + "border-inline-end-width", + "border-inline-end-style", + "border-inline-end-color", + "border-block", + "border-block-width", + "border-block-style", + "border-block-color", + "border-block-start", + "border-block-start-width", + "border-block-start-style", + "border-block-start-color", + "border-block-end", + "border-block-end-width", + "border-block-end-style", + "border-block-end-color", + "border-image", + "border-image-source", + "border-image-slice", + "border-image-width", + "border-image-outset", + "border-image-repeat", + "border-collapse", + "border-spacing", + "border-start-start-radius", + "border-start-end-radius", + "border-end-start-radius", + "border-end-end-radius", + "background", + "background-image", + "background-position", + "background-size", + "background-repeat", + "background-origin", + "background-clip", + "background-attachment", + "background-color", + "background-blend-mode", + "background-position-x", + "background-position-y", + "isolation", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "padding-inline", + "padding-inline-start", + "padding-inline-end", + "padding-block", + "padding-block-start", + "padding-block-end", + "image-orientation", + "image-rendering", + + "aspect-ratio", + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "-webkit-line-clamp", + "-webkit-text-fill-color", + "-webkit-text-stroke", + "-webkit-text-stroke-color", + "-webkit-text-stroke-width", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "table-layout", + "caption-side", + "empty-cells", + "overflow", + "overflow-anchor", + "overflow-block", + "overflow-clip-margin", + "overflow-inline", + "overflow-x", + "overflow-y", + "overscroll-behavior", + "overscroll-behavior-block", + "overscroll-behavior-inline", + "overscroll-behavior-x", + "overscroll-behavior-y", + "resize", + "object-fit", + "object-position", + "scroll-behavior", + "scroll-margin", + "scroll-margin-block", + "scroll-margin-block-end", + "scroll-margin-block-start", + "scroll-margin-bottom", + "scroll-margin-inline", + "scroll-margin-inline-end", + "scroll-margin-inline-start", + "scroll-margin-left", + "scroll-margin-right", + "scroll-margin-top", + "scroll-padding", + "scroll-padding-block", + "scroll-padding-block-end", + "scroll-padding-block-start", + "scroll-padding-bottom", + "scroll-padding-inline", + "scroll-padding-inline-end", + "scroll-padding-inline-start", + "scroll-padding-left", + "scroll-padding-right", + "scroll-padding-top", + "scroll-snap-align", + "scroll-snap-stop", + "scroll-snap-type", + "scrollbar-color", + "scrollbar-gutter", + "scrollbar-width", + "touch-action", + "pointer-events", + + "content", + "quotes", + "hanging-punctuation", + "color", + "accent-color", + "print-color-adjust", + "forced-color-adjust", + "color-scheme", + "caret-color", + "font", + "font-style", + "font-variant", + "font-weight", + "font-stretch", + "font-size", + "size-adjust", + "line-height", + "src", + "font-family", + "font-display", + "font-kerning", + "font-language-override", + "font-optical-sizing", + "font-palette", + "font-size-adjust", + "font-synthesis", + "font-variant-alternates", + "font-variant-caps", + "font-variant-east-asian", + "font-variant-emoji", + "font-variant-ligatures", + "font-variant-numeric", + "font-variant-position", + "font-variation-settings", + "ascent-override", + "descent-override", + "line-gap-override", + "hyphens", + "hyphenate-character", + "letter-spacing", + "line-break", + "list-style", + "list-style-type", + "list-style-image", + "list-style-position", + "writing-mode", + "direction", + "unicode-bidi", + "unicode-range", + "user-select", + "ruby-position", + "text-combine-upright", + "text-align", + "text-align-last", + "text-decoration", + "text-decoration-line", + "text-decoration-style", + "text-decoration-color", + "text-decoration-thickness", + "text-decoration-skip-ink", + "text-emphasis", + "text-emphasis-style", + "text-emphasis-color", + "text-emphasis-position", + "text-indent", + "text-justify", + "text-underline-position", + "text-underline-offset", + "text-orientation", + "text-overflow", + "text-rendering", + "text-shadow", + "text-transform", + "white-space", + "word-break", + "word-spacing", + "overflow-wrap", + "tab-size", + "widows" +]; + +var concentricCss = /*#__PURE__*/Object.freeze({ + __proto__: null, + properties: properties$1 +}); + +const properties = [ + "all", + "box-sizing", + "contain", + "contain-intrinsic-height", + "contain-intrinsic-size", + "contain-intrinsic-width", + "container", + "container-name", + "container-type", + "display", + "appearance", + "visibility", + "content-visibility", + "z-index", + "paint-order", + "position", + "top", + "right", + "bottom", + "left", + "offset", + "offset-anchor", + "offset-distance", + "offset-path", + "offset-rotate", + + + "grid", + "grid-template-rows", + "grid-template-columns", + "grid-template-areas", + "grid-auto-rows", + "grid-auto-columns", + "grid-auto-flow", + "column-gap", + "row-gap", + "grid-area", + "grid-row", + "grid-row-start", + "grid-row-end", + "grid-column", + "grid-column-start", + "grid-column-end", + "grid-template", + "flex", + "flex-grow", + "flex-shrink", + "flex-basis", + "flex-direction", + "flex-flow", + "flex-wrap", + "box-decoration-break", + "place-content", + "place-items", + "place-self", + "align-content", + "align-items", + "align-self", + "justify-content", + "justify-items", + "justify-self", + "order", + "aspect-ratio", + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "-webkit-line-clamp", + "-webkit-text-fill-color", + "-webkit-text-stroke", + "-webkit-text-stroke-color", + "-webkit-text-stroke-width", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "margin-inline", + "margin-inline-start", + "margin-inline-end", + "margin-block", + "margin-block-start", + "margin-block-end", + "inset", + "inset-block", + "inset-block-end", + "inset-block-start", + "inset-inline", + "inset-inline-end", + "inset-inline-start", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "padding-inline", + "padding-inline-start", + "padding-inline-end", + "padding-block", + "padding-block-start", + "padding-block-end", + "float", + "clear", + "overflow", + "overflow-anchor", + "overflow-block", + "overflow-clip-margin", + "overflow-inline", + "overflow-x", + "overflow-y", + "overscroll-behavior", + "overscroll-behavior-block", + "overscroll-behavior-inline", + "overscroll-behavior-x", + "overscroll-behavior-y", + "orphans", + "gap", + "columns", + "column-fill", + "column-rule", + "column-rule-color", + "column-rule-style", + "column-rule-width", + "column-span", + "column-count", + "column-width", + "object-fit", + "object-position", + "transform", + "transform-box", + "transform-origin", + "transform-style", + "translate", + "rotate", + "scale", + + "border", + "border-top", + "border-right", + "border-bottom", + "border-left", + "border-width", + "border-top-width", + "border-right-width", + "border-bottom-width", + "border-left-width", + "border-style", + "border-top-style", + "border-right-style", + "border-bottom-style", + "border-left-style", + "border-radius", + "border-top-right-radius", + "border-top-left-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "border-inline", + "border-inline-color", + "border-inline-style", + "border-inline-width", + "border-inline-start", + "border-inline-start-color", + "border-inline-start-style", + "border-inline-start-width", + "border-inline-end", + "border-inline-end-color", + "border-inline-end-style", + "border-inline-end-width", + "border-block", + "border-block-color", + "border-block-style", + "border-block-width", + "border-block-start", + "border-block-start-color", + "border-block-start-style", + "border-block-start-width", + "border-block-end", + "border-block-end-color", + "border-block-end-style", + "border-block-end-width", + "border-color", + "border-image", + "border-image-outset", + "border-image-repeat", + "border-image-slice", + "border-image-source", + "border-image-width", + "border-top-color", + "border-right-color", + "border-bottom-color", + "border-left-color", + "border-collapse", + "border-spacing", + "border-start-start-radius", + "border-start-end-radius", + "border-end-start-radius", + "border-end-end-radius", + "outline", + "outline-color", + "outline-style", + "outline-width", + "outline-offset", + + "backdrop-filter", + "backface-visibility", + "background", + "background-image", + "background-position", + "background-size", + "background-repeat", + "background-origin", + "background-clip", + "background-attachment", + "background-color", + "background-blend-mode", + "background-position-x", + "background-position-y", + "box-shadow", + "isolation", + + "content", + "quotes", + "hanging-punctuation", + "color", + "accent-color", + "print-color-adjust", + "forced-color-adjust", + "color-scheme", + "caret-color", + "font", + "font-style", + "font-variant", + "font-weight", + "src", + "font-stretch", + "font-size", + "size-adjust", + "line-height", + "font-family", + "font-display", + "font-kerning", + "font-language-override", + "font-optical-sizing", + "font-palette", + "font-size-adjust", + "font-synthesis", + "font-variant-alternates", + "font-variant-caps", + "font-variant-east-asian", + "font-variant-emoji", + "font-variant-ligatures", + "font-variant-numeric", + "font-variant-position", + "font-variation-settings", + "ascent-override", + "descent-override", + "line-gap-override", + "hyphens", + "hyphenate-character", + "letter-spacing", + "line-break", + "list-style", + "list-style-image", + "list-style-position", + "list-style-type", + "direction", + "text-align", + "text-align-last", + "text-decoration", + "text-decoration-line", + "text-decoration-style", + "text-decoration-color", + "text-decoration-thickness", + "text-decoration-skip-ink", + "text-emphasis", + "text-emphasis-style", + "text-emphasis-color", + "text-emphasis-position", + "text-indent", + "text-justify", + "text-underline-position", + "text-underline-offset", + "text-orientation", + "text-overflow", + "text-rendering", + "text-shadow", + "text-transform", + "vertical-align", + "white-space", + "word-break", + "word-spacing", + "overflow-wrap", + + "animation", + "animation-duration", + "animation-timing-function", + "animation-delay", + "animation-iteration-count", + "animation-direction", + "animation-fill-mode", + "animation-play-state", + "animation-name", + "mix-blend-mode", + "break-before", + "break-after", + "break-inside", + "page", + "page-break-before", + "page-break-after", + "page-break-inside", + "caption-side", + "clip-path", + "counter-increment", + "counter-reset", + "counter-set", + "cursor", + "empty-cells", + "filter", + "image-orientation", + "image-rendering", + "mask", + "mask-border", + "mask-border-outset", + "mask-border-repeat", + "mask-border-slice", + "mask-border-source", + "mask-border-width", + "mask-clip", + "mask-composite", + "mask-image", + "mask-mode", + "mask-origin", + "mask-position", + "mask-repeat", + "mask-size", + "mask-type", + "opacity", + "perspective", + "perspective-origin", + "pointer-events", + "resize", + "scroll-behavior", + "scroll-margin", + "scroll-margin-block", + "scroll-margin-block-end", + "scroll-margin-block-start", + "scroll-margin-bottom", + "scroll-margin-inline", + "scroll-margin-inline-end", + "scroll-margin-inline-start", + "scroll-margin-left", + "scroll-margin-right", + "scroll-margin-top", + "scroll-padding", + "scroll-padding-block", + "scroll-padding-block-end", + "scroll-padding-block-start", + "scroll-padding-bottom", + "scroll-padding-inline", + "scroll-padding-inline-end", + "scroll-padding-inline-start", + "scroll-padding-left", + "scroll-padding-right", + "scroll-padding-top", + "scroll-snap-align", + "scroll-snap-stop", + "scroll-snap-type", + "scrollbar-color", + "scrollbar-gutter", + "scrollbar-width", + "shape-image-threshold", + "shape-margin", + "shape-outside", + "tab-size", + "table-layout", + "ruby-position", + "text-combine-upright", + "touch-action", + "transition", + "transition-delay", + "transition-duration", + "transition-property", + "transition-timing-function", + "will-change", + "unicode-bidi", + "unicode-range", + "user-select", + "widows", + "writing-mode" +]; + +var smacss = /*#__PURE__*/Object.freeze({ + __proto__: null, + properties: properties +}); + +exports.cssDeclarationSorter = cssDeclarationSorter; +exports.default = cssDeclarationSorter; + +module.exports = cssDeclarationSorter; diff --git a/node_modules/css-declaration-sorter/license.md b/node_modules/css-declaration-sorter/license.md new file mode 100644 index 00000000..295f63f1 --- /dev/null +++ b/node_modules/css-declaration-sorter/license.md @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/css-declaration-sorter/orders/alphabetical.mjs b/node_modules/css-declaration-sorter/orders/alphabetical.mjs new file mode 100644 index 00000000..723cd2b0 --- /dev/null +++ b/node_modules/css-declaration-sorter/orders/alphabetical.mjs @@ -0,0 +1,393 @@ +export const properties = [ + "all", + "-webkit-line-clamp", + "-webkit-text-fill-color", + "-webkit-text-stroke", + "-webkit-text-stroke-color", + "-webkit-text-stroke-width", + "accent-color", + "align-content", + "align-items", + "align-self", + "animation", + "animation-delay", + "animation-direction", + "animation-duration", + "animation-fill-mode", + "animation-iteration-count", + "animation-name", + "animation-play-state", + "animation-timing-function", + "appearance", + "ascent-override", + "aspect-ratio", + "backdrop-filter", + "backface-visibility", + "background", + "background-attachment", + "background-blend-mode", + "background-clip", + "background-color", + "background-image", + "background-origin", + "background-position", + "background-position-x", + "background-position-y", + "background-repeat", + "background-size", + "block-size", + "border", + "border-block", + "border-block-color", + "border-block-end", + "border-block-end-color", + "border-block-end-style", + "border-block-end-width", + "border-block-start", + "border-block-start-color", + "border-block-start-style", + "border-block-start-width", + "border-block-style", + "border-block-width", + "border-bottom", + "border-bottom-color", + "border-bottom-left-radius", + "border-bottom-right-radius", + "border-bottom-style", + "border-bottom-width", + "border-collapse", + "border-color", + "border-end-end-radius", + "border-end-start-radius", + "border-image", + "border-image-outset", + "border-image-repeat", + "border-image-slice", + "border-image-source", + "border-image-width", + "border-inline", + "border-inline-color", + "border-inline-end", + "border-inline-end-color", + "border-inline-end-style", + "border-inline-end-width", + "border-inline-start", + "border-inline-start-color", + "border-inline-start-style", + "border-inline-start-width", + "border-inline-style", + "border-inline-width", + "border-left", + "border-left-color", + "border-left-style", + "border-left-width", + "border-radius", + "border-right", + "border-right-color", + "border-right-style", + "border-right-width", + "border-spacing", + "border-start-end-radius", + "border-start-start-radius", + "border-style", + "border-top", + "border-top-color", + "border-top-left-radius", + "border-top-right-radius", + "border-top-style", + "border-top-width", + "border-width", + "bottom", + "box-decoration-break", + "box-shadow", + "box-sizing", + "break-after", + "break-before", + "break-inside", + "caption-side", + "caret-color", + "clear", + "clip-path", + "color", + "color-scheme", + "column-count", + "column-fill", + "column-gap", + "column-rule", + "column-rule-color", + "column-rule-style", + "column-rule-width", + "column-span", + "column-width", + "columns", + "contain", + "contain-intrinsic-height", + "contain-intrinsic-size", + "contain-intrinsic-width", + "container", + "container-name", + "container-type", + "content", + "content-visibility", + "counter-increment", + "counter-reset", + "counter-set", + "cursor", + "descent-override", + "direction", + "display", + "empty-cells", + "filter", + "flex", + "flex-basis", + "flex-direction", + "flex-flow", + "flex-grow", + "flex-shrink", + "flex-wrap", + "float", + "font", + "font-display", + "font-family", + "font-kerning", + "font-language-override", + "font-optical-sizing", + "font-palette", + "font-size", + "font-size-adjust", + "font-stretch", + "font-style", + "font-synthesis", + "font-variant", + "font-variant-alternates", + "font-variant-caps", + "font-variant-east-asian", + "font-variant-emoji", + "font-variant-ligatures", + "font-variant-numeric", + "font-variant-position", + "font-variation-settings", + "font-weight", + "forced-color-adjust", + "gap", + "grid", + "grid-area", + "grid-auto-columns", + "grid-auto-flow", + "grid-auto-rows", + "grid-column", + "grid-column-end", + "grid-column-start", + "grid-row", + "grid-row-end", + "grid-row-start", + "grid-template", + "grid-template-areas", + "grid-template-columns", + "grid-template-rows", + "hanging-punctuation", + "height", + "hyphenate-character", + "hyphens", + "image-orientation", + "image-rendering", + "inline-size", + "inset", + "inset-block", + "inset-block-end", + "inset-block-start", + "inset-inline", + "inset-inline-end", + "inset-inline-start", + "isolation", + "justify-content", + "justify-items", + "justify-self", + "left", + "letter-spacing", + "line-break", + "line-gap-override", + "line-height", + "list-style", + "list-style-image", + "list-style-position", + "list-style-type", + "margin", + "margin-block", + "margin-block-end", + "margin-block-start", + "margin-bottom", + "margin-inline", + "margin-inline-end", + "margin-inline-start", + "margin-left", + "margin-right", + "margin-top", + "mask", + "mask-border", + "mask-border-outset", + "mask-border-repeat", + "mask-border-slice", + "mask-border-source", + "mask-border-width", + "mask-clip", + "mask-composite", + "mask-image", + "mask-mode", + "mask-origin", + "mask-position", + "mask-repeat", + "mask-size", + "mask-type", + "max-block-size", + "max-height", + "max-inline-size", + "max-width", + "min-block-size", + "min-height", + "min-inline-size", + "min-width", + "mix-blend-mode", + "object-fit", + "object-position", + "offset", + "offset-anchor", + "offset-distance", + "offset-path", + "offset-rotate", + "opacity", + "order", + "orphans", + "outline", + "outline-color", + "outline-offset", + "outline-style", + "outline-width", + "overflow", + "overflow-anchor", + "overflow-block", + "overflow-clip-margin", + "overflow-inline", + "overflow-wrap", + "overflow-x", + "overflow-y", + "overscroll-behavior", + "overscroll-behavior-block", + "overscroll-behavior-inline", + "overscroll-behavior-x", + "overscroll-behavior-y", + "padding", + "padding-block", + "padding-block-end", + "padding-block-start", + "padding-bottom", + "padding-inline", + "padding-inline-end", + "padding-inline-start", + "padding-left", + "padding-right", + "padding-top", + "page", + "page-break-after", + "page-break-before", + "page-break-inside", + "paint-order", + "perspective", + "perspective-origin", + "place-content", + "place-items", + "place-self", + "pointer-events", + "position", + "print-color-adjust", + "quotes", + "resize", + "right", + "rotate", + "row-gap", + "ruby-position", + "scale", + "scroll-behavior", + "scroll-margin", + "scroll-margin-block", + "scroll-margin-block-end", + "scroll-margin-block-start", + "scroll-margin-bottom", + "scroll-margin-inline", + "scroll-margin-inline-end", + "scroll-margin-inline-start", + "scroll-margin-left", + "scroll-margin-right", + "scroll-margin-top", + "scroll-padding", + "scroll-padding-block", + "scroll-padding-block-end", + "scroll-padding-block-start", + "scroll-padding-bottom", + "scroll-padding-inline", + "scroll-padding-inline-end", + "scroll-padding-inline-start", + "scroll-padding-left", + "scroll-padding-right", + "scroll-padding-top", + "scroll-snap-align", + "scroll-snap-stop", + "scroll-snap-type", + "scrollbar-color", + "scrollbar-gutter", + "scrollbar-width", + "shape-image-threshold", + "shape-margin", + "shape-outside", + "size-adjust", + "src", + "tab-size", + "table-layout", + "text-align", + "text-align-last", + "text-combine-upright", + "text-decoration", + "text-decoration-color", + "text-decoration-line", + "text-decoration-skip-ink", + "text-decoration-style", + "text-decoration-thickness", + "text-emphasis", + "text-emphasis-color", + "text-emphasis-position", + "text-emphasis-style", + "text-indent", + "text-justify", + "text-orientation", + "text-overflow", + "text-rendering", + "text-shadow", + "text-transform", + "text-underline-offset", + "text-underline-position", + "top", + "touch-action", + "transform", + "transform-box", + "transform-origin", + "transform-style", + "transition", + "transition-delay", + "transition-duration", + "transition-property", + "transition-timing-function", + "translate", + "unicode-bidi", + "unicode-range", + "user-select", + "vertical-align", + "visibility", + "white-space", + "widows", + "width", + "will-change", + "word-break", + "word-spacing", + "writing-mode", + "z-index" +] diff --git a/node_modules/css-declaration-sorter/orders/concentric-css.mjs b/node_modules/css-declaration-sorter/orders/concentric-css.mjs new file mode 100644 index 00000000..a002b753 --- /dev/null +++ b/node_modules/css-declaration-sorter/orders/concentric-css.mjs @@ -0,0 +1,397 @@ +export const properties = [ + "all", + "display", + "position", + "top", + "right", + "bottom", + "left", + "offset", + "offset-anchor", + "offset-distance", + "offset-path", + "offset-rotate", + "grid", + "grid-template-rows", + "grid-template-columns", + "grid-template-areas", + "grid-auto-rows", + "grid-auto-columns", + "grid-auto-flow", + "column-gap", + "row-gap", + "grid-area", + "grid-row", + "grid-row-start", + "grid-row-end", + "grid-column", + "grid-column-start", + "grid-column-end", + "grid-template", + "flex", + "flex-grow", + "flex-shrink", + "flex-basis", + "flex-direction", + "flex-flow", + "flex-wrap", + "box-decoration-break", + "place-content", + "align-content", + "justify-content", + "place-items", + "align-items", + "justify-items", + "place-self", + "align-self", + "justify-self", + "vertical-align", + "order", + "float", + "clear", + "shape-margin", + "shape-outside", + "shape-image-threshold", + "orphans", + "gap", + "columns", + "column-fill", + "column-rule", + "column-rule-width", + "column-rule-style", + "column-rule-color", + "column-width", + "column-span", + "column-count", + "break-before", + "break-after", + "break-inside", + "page", + "page-break-before", + "page-break-after", + "page-break-inside", + "transform", + "transform-box", + "transform-origin", + "transform-style", + "translate", + "rotate", + "scale", + + "perspective", + "perspective-origin", + "appearance", + "visibility", + "content-visibility", + "opacity", + "z-index", + "paint-order", + "mix-blend-mode", + "backface-visibility", + "backdrop-filter", + "clip-path", + "mask", + "mask-border", + "mask-border-outset", + "mask-border-repeat", + "mask-border-slice", + "mask-border-source", + "mask-border-width", + "mask-image", + "mask-mode", + "mask-position", + "mask-size", + "mask-repeat", + "mask-origin", + "mask-clip", + "mask-composite", + "mask-type", + "filter", + "animation", + "animation-duration", + "animation-timing-function", + "animation-delay", + "animation-iteration-count", + "animation-direction", + "animation-fill-mode", + "animation-play-state", + "animation-name", + "transition", + "transition-delay", + "transition-duration", + "transition-property", + "transition-timing-function", + "will-change", + "counter-increment", + "counter-reset", + "counter-set", + "cursor", + + "box-sizing", + "contain", + "contain-intrinsic-height", + "contain-intrinsic-size", + "contain-intrinsic-width", + "container", + "container-name", + "container-type", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "margin-inline", + "margin-inline-start", + "margin-inline-end", + "margin-block", + "margin-block-start", + "margin-block-end", + "inset", + "inset-block", + "inset-block-end", + "inset-block-start", + "inset-inline", + "inset-inline-end", + "inset-inline-start", + "outline", + "outline-color", + "outline-style", + "outline-width", + "outline-offset", + "box-shadow", + "border", + "border-top", + "border-right", + "border-bottom", + "border-left", + "border-width", + "border-top-width", + "border-right-width", + "border-bottom-width", + "border-left-width", + "border-style", + "border-top-style", + "border-right-style", + "border-bottom-style", + "border-left-style", + "border-color", + "border-top-color", + "border-right-color", + "border-bottom-color", + "border-left-color", + "border-radius", + "border-top-right-radius", + "border-top-left-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "border-inline", + "border-inline-width", + "border-inline-style", + "border-inline-color", + "border-inline-start", + "border-inline-start-width", + "border-inline-start-style", + "border-inline-start-color", + "border-inline-end", + "border-inline-end-width", + "border-inline-end-style", + "border-inline-end-color", + "border-block", + "border-block-width", + "border-block-style", + "border-block-color", + "border-block-start", + "border-block-start-width", + "border-block-start-style", + "border-block-start-color", + "border-block-end", + "border-block-end-width", + "border-block-end-style", + "border-block-end-color", + "border-image", + "border-image-source", + "border-image-slice", + "border-image-width", + "border-image-outset", + "border-image-repeat", + "border-collapse", + "border-spacing", + "border-start-start-radius", + "border-start-end-radius", + "border-end-start-radius", + "border-end-end-radius", + "background", + "background-image", + "background-position", + "background-size", + "background-repeat", + "background-origin", + "background-clip", + "background-attachment", + "background-color", + "background-blend-mode", + "background-position-x", + "background-position-y", + "isolation", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "padding-inline", + "padding-inline-start", + "padding-inline-end", + "padding-block", + "padding-block-start", + "padding-block-end", + "image-orientation", + "image-rendering", + + "aspect-ratio", + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "-webkit-line-clamp", + "-webkit-text-fill-color", + "-webkit-text-stroke", + "-webkit-text-stroke-color", + "-webkit-text-stroke-width", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "table-layout", + "caption-side", + "empty-cells", + "overflow", + "overflow-anchor", + "overflow-block", + "overflow-clip-margin", + "overflow-inline", + "overflow-x", + "overflow-y", + "overscroll-behavior", + "overscroll-behavior-block", + "overscroll-behavior-inline", + "overscroll-behavior-x", + "overscroll-behavior-y", + "resize", + "object-fit", + "object-position", + "scroll-behavior", + "scroll-margin", + "scroll-margin-block", + "scroll-margin-block-end", + "scroll-margin-block-start", + "scroll-margin-bottom", + "scroll-margin-inline", + "scroll-margin-inline-end", + "scroll-margin-inline-start", + "scroll-margin-left", + "scroll-margin-right", + "scroll-margin-top", + "scroll-padding", + "scroll-padding-block", + "scroll-padding-block-end", + "scroll-padding-block-start", + "scroll-padding-bottom", + "scroll-padding-inline", + "scroll-padding-inline-end", + "scroll-padding-inline-start", + "scroll-padding-left", + "scroll-padding-right", + "scroll-padding-top", + "scroll-snap-align", + "scroll-snap-stop", + "scroll-snap-type", + "scrollbar-color", + "scrollbar-gutter", + "scrollbar-width", + "touch-action", + "pointer-events", + + "content", + "quotes", + "hanging-punctuation", + "color", + "accent-color", + "print-color-adjust", + "forced-color-adjust", + "color-scheme", + "caret-color", + "font", + "font-style", + "font-variant", + "font-weight", + "font-stretch", + "font-size", + "size-adjust", + "line-height", + "src", + "font-family", + "font-display", + "font-kerning", + "font-language-override", + "font-optical-sizing", + "font-palette", + "font-size-adjust", + "font-synthesis", + "font-variant-alternates", + "font-variant-caps", + "font-variant-east-asian", + "font-variant-emoji", + "font-variant-ligatures", + "font-variant-numeric", + "font-variant-position", + "font-variation-settings", + "ascent-override", + "descent-override", + "line-gap-override", + "hyphens", + "hyphenate-character", + "letter-spacing", + "line-break", + "list-style", + "list-style-type", + "list-style-image", + "list-style-position", + "writing-mode", + "direction", + "unicode-bidi", + "unicode-range", + "user-select", + "ruby-position", + "text-combine-upright", + "text-align", + "text-align-last", + "text-decoration", + "text-decoration-line", + "text-decoration-style", + "text-decoration-color", + "text-decoration-thickness", + "text-decoration-skip-ink", + "text-emphasis", + "text-emphasis-style", + "text-emphasis-color", + "text-emphasis-position", + "text-indent", + "text-justify", + "text-underline-position", + "text-underline-offset", + "text-orientation", + "text-overflow", + "text-rendering", + "text-shadow", + "text-transform", + "white-space", + "word-break", + "word-spacing", + "overflow-wrap", + "tab-size", + "widows" +] diff --git a/node_modules/css-declaration-sorter/orders/smacss.mjs b/node_modules/css-declaration-sorter/orders/smacss.mjs new file mode 100644 index 00000000..919db4ed --- /dev/null +++ b/node_modules/css-declaration-sorter/orders/smacss.mjs @@ -0,0 +1,399 @@ +export const properties = [ + "all", + "box-sizing", + "contain", + "contain-intrinsic-height", + "contain-intrinsic-size", + "contain-intrinsic-width", + "container", + "container-name", + "container-type", + "display", + "appearance", + "visibility", + "content-visibility", + "z-index", + "paint-order", + "position", + "top", + "right", + "bottom", + "left", + "offset", + "offset-anchor", + "offset-distance", + "offset-path", + "offset-rotate", + + + "grid", + "grid-template-rows", + "grid-template-columns", + "grid-template-areas", + "grid-auto-rows", + "grid-auto-columns", + "grid-auto-flow", + "column-gap", + "row-gap", + "grid-area", + "grid-row", + "grid-row-start", + "grid-row-end", + "grid-column", + "grid-column-start", + "grid-column-end", + "grid-template", + "flex", + "flex-grow", + "flex-shrink", + "flex-basis", + "flex-direction", + "flex-flow", + "flex-wrap", + "box-decoration-break", + "place-content", + "place-items", + "place-self", + "align-content", + "align-items", + "align-self", + "justify-content", + "justify-items", + "justify-self", + "order", + "aspect-ratio", + "width", + "min-width", + "max-width", + "height", + "min-height", + "max-height", + "-webkit-line-clamp", + "-webkit-text-fill-color", + "-webkit-text-stroke", + "-webkit-text-stroke-color", + "-webkit-text-stroke-width", + "inline-size", + "min-inline-size", + "max-inline-size", + "block-size", + "min-block-size", + "max-block-size", + "margin", + "margin-top", + "margin-right", + "margin-bottom", + "margin-left", + "margin-inline", + "margin-inline-start", + "margin-inline-end", + "margin-block", + "margin-block-start", + "margin-block-end", + "inset", + "inset-block", + "inset-block-end", + "inset-block-start", + "inset-inline", + "inset-inline-end", + "inset-inline-start", + "padding", + "padding-top", + "padding-right", + "padding-bottom", + "padding-left", + "padding-inline", + "padding-inline-start", + "padding-inline-end", + "padding-block", + "padding-block-start", + "padding-block-end", + "float", + "clear", + "overflow", + "overflow-anchor", + "overflow-block", + "overflow-clip-margin", + "overflow-inline", + "overflow-x", + "overflow-y", + "overscroll-behavior", + "overscroll-behavior-block", + "overscroll-behavior-inline", + "overscroll-behavior-x", + "overscroll-behavior-y", + "orphans", + "gap", + "columns", + "column-fill", + "column-rule", + "column-rule-color", + "column-rule-style", + "column-rule-width", + "column-span", + "column-count", + "column-width", + "object-fit", + "object-position", + "transform", + "transform-box", + "transform-origin", + "transform-style", + "translate", + "rotate", + "scale", + + "border", + "border-top", + "border-right", + "border-bottom", + "border-left", + "border-width", + "border-top-width", + "border-right-width", + "border-bottom-width", + "border-left-width", + "border-style", + "border-top-style", + "border-right-style", + "border-bottom-style", + "border-left-style", + "border-radius", + "border-top-right-radius", + "border-top-left-radius", + "border-bottom-right-radius", + "border-bottom-left-radius", + "border-inline", + "border-inline-color", + "border-inline-style", + "border-inline-width", + "border-inline-start", + "border-inline-start-color", + "border-inline-start-style", + "border-inline-start-width", + "border-inline-end", + "border-inline-end-color", + "border-inline-end-style", + "border-inline-end-width", + "border-block", + "border-block-color", + "border-block-style", + "border-block-width", + "border-block-start", + "border-block-start-color", + "border-block-start-style", + "border-block-start-width", + "border-block-end", + "border-block-end-color", + "border-block-end-style", + "border-block-end-width", + "border-color", + "border-image", + "border-image-outset", + "border-image-repeat", + "border-image-slice", + "border-image-source", + "border-image-width", + "border-top-color", + "border-right-color", + "border-bottom-color", + "border-left-color", + "border-collapse", + "border-spacing", + "border-start-start-radius", + "border-start-end-radius", + "border-end-start-radius", + "border-end-end-radius", + "outline", + "outline-color", + "outline-style", + "outline-width", + "outline-offset", + + "backdrop-filter", + "backface-visibility", + "background", + "background-image", + "background-position", + "background-size", + "background-repeat", + "background-origin", + "background-clip", + "background-attachment", + "background-color", + "background-blend-mode", + "background-position-x", + "background-position-y", + "box-shadow", + "isolation", + + "content", + "quotes", + "hanging-punctuation", + "color", + "accent-color", + "print-color-adjust", + "forced-color-adjust", + "color-scheme", + "caret-color", + "font", + "font-style", + "font-variant", + "font-weight", + "src", + "font-stretch", + "font-size", + "size-adjust", + "line-height", + "font-family", + "font-display", + "font-kerning", + "font-language-override", + "font-optical-sizing", + "font-palette", + "font-size-adjust", + "font-synthesis", + "font-variant-alternates", + "font-variant-caps", + "font-variant-east-asian", + "font-variant-emoji", + "font-variant-ligatures", + "font-variant-numeric", + "font-variant-position", + "font-variation-settings", + "ascent-override", + "descent-override", + "line-gap-override", + "hyphens", + "hyphenate-character", + "letter-spacing", + "line-break", + "list-style", + "list-style-image", + "list-style-position", + "list-style-type", + "direction", + "text-align", + "text-align-last", + "text-decoration", + "text-decoration-line", + "text-decoration-style", + "text-decoration-color", + "text-decoration-thickness", + "text-decoration-skip-ink", + "text-emphasis", + "text-emphasis-style", + "text-emphasis-color", + "text-emphasis-position", + "text-indent", + "text-justify", + "text-underline-position", + "text-underline-offset", + "text-orientation", + "text-overflow", + "text-rendering", + "text-shadow", + "text-transform", + "vertical-align", + "white-space", + "word-break", + "word-spacing", + "overflow-wrap", + + "animation", + "animation-duration", + "animation-timing-function", + "animation-delay", + "animation-iteration-count", + "animation-direction", + "animation-fill-mode", + "animation-play-state", + "animation-name", + "mix-blend-mode", + "break-before", + "break-after", + "break-inside", + "page", + "page-break-before", + "page-break-after", + "page-break-inside", + "caption-side", + "clip-path", + "counter-increment", + "counter-reset", + "counter-set", + "cursor", + "empty-cells", + "filter", + "image-orientation", + "image-rendering", + "mask", + "mask-border", + "mask-border-outset", + "mask-border-repeat", + "mask-border-slice", + "mask-border-source", + "mask-border-width", + "mask-clip", + "mask-composite", + "mask-image", + "mask-mode", + "mask-origin", + "mask-position", + "mask-repeat", + "mask-size", + "mask-type", + "opacity", + "perspective", + "perspective-origin", + "pointer-events", + "resize", + "scroll-behavior", + "scroll-margin", + "scroll-margin-block", + "scroll-margin-block-end", + "scroll-margin-block-start", + "scroll-margin-bottom", + "scroll-margin-inline", + "scroll-margin-inline-end", + "scroll-margin-inline-start", + "scroll-margin-left", + "scroll-margin-right", + "scroll-margin-top", + "scroll-padding", + "scroll-padding-block", + "scroll-padding-block-end", + "scroll-padding-block-start", + "scroll-padding-bottom", + "scroll-padding-inline", + "scroll-padding-inline-end", + "scroll-padding-inline-start", + "scroll-padding-left", + "scroll-padding-right", + "scroll-padding-top", + "scroll-snap-align", + "scroll-snap-stop", + "scroll-snap-type", + "scrollbar-color", + "scrollbar-gutter", + "scrollbar-width", + "shape-image-threshold", + "shape-margin", + "shape-outside", + "tab-size", + "table-layout", + "ruby-position", + "text-combine-upright", + "touch-action", + "transition", + "transition-delay", + "transition-duration", + "transition-property", + "transition-timing-function", + "will-change", + "unicode-bidi", + "unicode-range", + "user-select", + "widows", + "writing-mode" +] diff --git a/node_modules/css-declaration-sorter/package.json b/node_modules/css-declaration-sorter/package.json new file mode 100644 index 00000000..bc952bb5 --- /dev/null +++ b/node_modules/css-declaration-sorter/package.json @@ -0,0 +1,59 @@ +{ + "name": "css-declaration-sorter", + "version": "6.4.1", + "description": "Sorts CSS declarations fast and automatically in a certain order.", + "type": "module", + "main": "./dist/main.cjs", + "exports": { + "import": "./src/main.mjs", + "require": "./dist/main.cjs" + }, + "types": "./src/main.d.ts", + "files": [ + "src/main.mjs", + "src/main.d.ts", + "src/shorthand-data.mjs", + "src/bubble-sort.mjs", + "orders", + "dist" + ], + "scripts": { + "build": "rollup -c", + "preversion": "npm test", + "test": "uvu src .+\\.test\\.mjs", + "test:ci": "npm test && npm run lint -- --max-warnings 0", + "lint": "eslint src/*.mjs", + "scrape": "node --experimental-import-meta-resolve src/property-scraper.mjs", + "prepack": "npm run build" + }, + "devDependencies": { + "@mdn/browser-compat-data": "^5.2.23", + "@rollup/plugin-dynamic-import-vars": "^2.0.2", + "@rollup/plugin-replace": "^5.0.2", + "eslint": "^8.35.0", + "postcss": "^8.4.18", + "rollup": "^3.15.0", + "uvu": "^0.5.6" + }, + "peerDependencies": { + "postcss": "^8.0.9" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "repository": { + "type": "git", + "url": "https://github.com/Siilwyn/css-declaration-sorter.git" + }, + "author": "Selwyn (https://selwyn.cc/)", + "license": "ISC", + "keywords": [ + "postcss", + "postcss-plugin", + "css", + "declaration", + "sorter", + "property", + "order" + ] +} diff --git a/node_modules/css-declaration-sorter/readme.md b/node_modules/css-declaration-sorter/readme.md new file mode 100644 index 00000000..686fd4a4 --- /dev/null +++ b/node_modules/css-declaration-sorter/readme.md @@ -0,0 +1,126 @@ +CSS declaration sorter logo + +# CSS Declaration Sorter +[![npm][npm-badge]][npm] + +A Node.js module and [PostCSS] plugin to sort CSS, SCSS or Less declarations based on their property names. Ensuring styling is organized, more consistent and in order... The goal of this package is to sort the source code of a project in the build process or to decrease the distributed CSS gzipped size. + +Check out [the Prettier plugin](https://github.com/Siilwyn/prettier-plugin-css-order) for usage with a variety of file formats. + +## Niceness +- Up-to-date CSS properties fetched from the [MDN Compatibility Data](https://github.com/mdn/browser-compat-data/) project. +- Choose your wanted order or provide your own. +- Nested rules sorting support. +- SCSS and Less support when combined with either [postcss-scss](https://github.com/postcss/postcss-scss) or [postcss-less](https://github.com/webschik/postcss-less). +- Thought-out sorting orders out of the box, **approved by their authors**. + +## Alphabetical example +Input: +```css +body { + display: block; + animation: none; + color: #C55; + border: 0; +} +``` + +Output: +```css +body { + animation: none; + border: 0; + color: #C55; + display: block; +} +``` + +## Built-in sorting orders +- Alphabetical +`alphabetical` +*Default, order in a simple alphabetical manner from a - z.* + +- [SMACSS](http://smacss.com/book/formatting#grouping) +`smacss` +*Order from most important, flow affecting properties, to least important properties.* + 1. Box + 2. Border + 3. Background + 4. Text + 5. Other + +- [Concentric CSS](https://github.com/brandon-rhodes/Concentric-CSS) +`concentric-css` +*Order properties applying outside the box model, moving inward to intrinsic changes.* + 1. Positioning + 2. Visibility + 3. Box model + 4. Dimensions + 5. Text + +## Usage +Following the PostCSS plugin guidelines, this package depends on PostCSS as a peer dependency: +`npm install postcss css-declaration-sorter --save-dev` + +### CLI +This module does not include its own CLI but works with the official [PostCSS CLI](https://github.com/postcss/postcss-cli). To use the examples below, the `postcss-cli` package is a required dependency. + +Piping out result from file: +`postcss input.css --use css-declaration-sorter | cat` + +Sorting multiple files by overwriting: +`postcss *.css --use css-declaration-sorter --replace --no-map` + +Sorting all files in a directory with SCSS syntax using [postcss-scss](https://github.com/postcss/postcss-scss) by overwriting: +`postcss ./src/**/*.scss --syntax postcss-scss --use css-declaration-sorter --replace --no-map` + +Sorting all files in the directory with SCSS syntax and SMACSS order by overwriting, using `package.json` configuration: +```json +"postcss": { + "syntax": "postcss-scss", + "map": false, + "plugins": { + "css-declaration-sorter": { "order": "smacss" } + } +} +``` + +`postcss ./src/**/*.scss --replace --config package.json` + +### Vanilla JS +```js +import postcss from 'postcss'; +import { cssDeclarationSorter } from 'css-declaration-sorter'; + +postcss([cssDeclarationSorter({ order: 'smacss' })]) + .process('a { color: hyperblue; display: block; }', { from: undefined }) + .then(result => console.log( + result.css === 'a { display: block; color: hyperblue; }' + )); +``` +___ + +**[View more usage examples](/examples) in combination with other tools.** + +___ + +## API +### cssDeclarationSorter({ order, keepOverrides }) + +#### order +Type: `string` or `function` +Default: `alphabetical` +Options: `alphabetical`, `smacss`, `concentric-css` + +Provide the name of one of the built-in sort orders or a comparison function that is passed to ([`Array.sort`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)). This function receives two declaration names and is expected to return `-1`, `0` or `1` depending on the wanted order. + +#### keepOverrides +Type: `Boolean` +Default: `false` + +To prevent breaking legacy CSS where shorthand declarations override longhand declarations (also taking into account vendor prefixes) this option can enabled. For example `animation-name: some; animation: greeting;` will be kept in this order when `keepOverrides` is `true`. + +[PostCSS]: https://github.com/postcss/postcss + +[npm]: https://www.npmjs.com/package/css-declaration-sorter +[npm-badge]: https://tinyshields.dev/npm/css-declaration-sorter.svg diff --git a/node_modules/css-declaration-sorter/src/bubble-sort.mjs b/node_modules/css-declaration-sorter/src/bubble-sort.mjs new file mode 100644 index 00000000..87803b46 --- /dev/null +++ b/node_modules/css-declaration-sorter/src/bubble-sort.mjs @@ -0,0 +1,20 @@ +export function bubbleSort (list, comparator) { + let upperIndex = list.length - 1; + + while (upperIndex > 0) { + let swapIndex = 0; + + for (let i = 0; i < upperIndex; i += 1) { + if (comparator(list[i], list[i + 1]) > 0) { + const temp = list[i + 1]; + list[i + 1] = list[i]; + list[i] = temp; + swapIndex = i; + } + } + + upperIndex = swapIndex; + } + + return list; +} diff --git a/node_modules/css-declaration-sorter/src/main.d.ts b/node_modules/css-declaration-sorter/src/main.d.ts new file mode 100644 index 00000000..257704b6 --- /dev/null +++ b/node_modules/css-declaration-sorter/src/main.d.ts @@ -0,0 +1,27 @@ +import type { PluginCreator } from 'postcss'; + +declare const cssDeclarationSorter: PluginCreator<{ + /** + Provide the name of one of the built-in sort orders or a comparison function that is passed to `Array.sort`. + + @default 'alphabetical' + */ + order?: SortOrder | SortFunction | undefined; + + /** + To prevent breaking legacy CSS where shorthand declarations override longhand declarations. For example `animation-name: some; animation: greeting;` will be kept in this order. + + @default false + */ + keepOverrides?: boolean; +}>; + +export = cssDeclarationSorter; + +type SortOrder = 'alphabetical' | 'concentric-css' | 'smacss'; + +/** + * This function receives two declaration property names and is expected + * to return -1, 0 or 1 depending on the wanted order. + */ +type SortFunction = (propertyNameA: string, propertyNameB: string) => -1 | 0 | 1; diff --git a/node_modules/css-declaration-sorter/src/main.mjs b/node_modules/css-declaration-sorter/src/main.mjs new file mode 100644 index 00000000..b17cde16 --- /dev/null +++ b/node_modules/css-declaration-sorter/src/main.mjs @@ -0,0 +1,146 @@ +import { shorthandData } from './shorthand-data.mjs'; +import { bubbleSort } from './bubble-sort.mjs'; + +const builtInOrders = [ + 'alphabetical', + 'concentric-css', + 'smacss', +]; + +export const cssDeclarationSorter = ({ order = 'alphabetical', keepOverrides = false } = {}) => ({ + postcssPlugin: 'css-declaration-sorter', + OnceExit (css) { + let withKeepOverrides = comparator => comparator; + if (keepOverrides) { + withKeepOverrides = withOverridesComparator(shorthandData); + } + + if (typeof order === 'function') { + return processCss({ css, comparator: withKeepOverrides(order) }); + } + + if (!builtInOrders.includes(order)) + return Promise.reject( + Error([ + `Invalid built-in order '${order}' provided.`, + `Available built-in orders are: ${builtInOrders}`, + ].join('\n')) + ); + + return import(`../orders/${order}.mjs`) + .then(({ properties }) => processCss({ + css, + comparator: withKeepOverrides(orderComparator(properties)), + })); + }, +}); + +cssDeclarationSorter.postcss = true; + +// Kept for backward compatibility +export default cssDeclarationSorter; + +function processCss ({ css, comparator }) { + const comments = []; + const rulesCache = []; + + css.walk(node => { + const nodes = node.nodes; + const type = node.type; + + if (type === 'comment') { + // Don't do anything to root comments or the last newline comment + const isNewlineNode = node.raws.before && node.raws.before.includes('\n'); + const lastNewlineNode = isNewlineNode && !node.next(); + const onlyNode = !node.prev() && !node.next() || !node.parent; + + if (lastNewlineNode || onlyNode || node.parent.type === 'root') { + return; + } + + if (isNewlineNode) { + const pairedNode = node.next() || node.prev(); + if (pairedNode) { + comments.unshift({ + 'comment': node, + 'pairedNode': pairedNode, + 'insertPosition': node.next() ? 'Before' : 'After', + }); + node.remove(); + } + } else { + const pairedNode = node.prev() || node.next(); + if (pairedNode) { + comments.push({ + 'comment': node, + 'pairedNode': pairedNode, + 'insertPosition': 'After', + }); + node.remove(); + } + } + return; + } + + // Add rule-like nodes to a cache so that we can remove all + // comment nodes before we start sorting. + const isRule = type === 'rule' || type === 'atrule'; + if (isRule && nodes && nodes.length > 1) { + rulesCache.push(nodes); + } + }); + + // Perform a sort once all comment nodes are removed + rulesCache.forEach(nodes => { + sortCssDeclarations({ nodes, comparator }); + }); + + // Add comments back to the nodes they are paired with + comments.forEach(node => { + const pairedNode = node.pairedNode; + node.comment.remove(); + pairedNode.parent && pairedNode.parent['insert' + node.insertPosition](pairedNode, node.comment); + }); +} + +function sortCssDeclarations ({ nodes, comparator }) { + bubbleSort(nodes, (a, b) => { + if (a.type === 'decl' && b.type === 'decl') { + return comparator(a.prop, b.prop); + } else { + return compareDifferentType(a, b); + } + }); +} + +function withOverridesComparator (shorthandData) { + return function (comparator) { + return function (a, b) { + a = removeVendorPrefix(a); + b = removeVendorPrefix(b); + + if (shorthandData[a] && shorthandData[a].includes(b)) return 0; + if (shorthandData[b] && shorthandData[b].includes(a)) return 0; + + return comparator(a, b); + }; + }; +} + +function orderComparator (order) { + return function (a, b) { + return order.indexOf(a) - order.indexOf(b); + }; +} + +function compareDifferentType (a, b) { + if (b.type === 'atrule' || a.type === 'atrule') { + return 0; + } + + return a.type === 'decl' ? -1 : b.type === 'decl' ? 1 : 0; +} + +function removeVendorPrefix (property) { + return property.replace(/^-\w+-/, ''); +} diff --git a/node_modules/css-declaration-sorter/src/shorthand-data.mjs b/node_modules/css-declaration-sorter/src/shorthand-data.mjs new file mode 100644 index 00000000..d79b7376 --- /dev/null +++ b/node_modules/css-declaration-sorter/src/shorthand-data.mjs @@ -0,0 +1,433 @@ +export const shorthandData = { + 'animation': [ + 'animation-name', + 'animation-duration', + 'animation-timing-function', + 'animation-delay', + 'animation-iteration-count', + 'animation-direction', + 'animation-fill-mode', + 'animation-play-state', + ], + 'background': [ + 'background-image', + 'background-size', + 'background-position', + 'background-repeat', + 'background-origin', + 'background-clip', + 'background-attachment', + 'background-color', + ], + 'columns': [ + 'column-width', + 'column-count', + ], + 'column-rule': [ + 'column-rule-width', + 'column-rule-style', + 'column-rule-color', + ], + 'flex': [ + 'flex-grow', + 'flex-shrink', + 'flex-basis', + ], + 'flex-flow': [ + 'flex-direction', + 'flex-wrap', + ], + 'font': [ + 'font-style', + 'font-variant', + 'font-weight', + 'font-stretch', + 'font-size', + 'font-family', + 'line-height', + ], + 'grid': [ + 'grid-template-rows', + 'grid-template-columns', + 'grid-template-areas', + 'grid-auto-rows', + 'grid-auto-columns', + 'grid-auto-flow', + 'column-gap', + 'row-gap', + ], + 'grid-area': [ + 'grid-row-start', + 'grid-column-start', + 'grid-row-end', + 'grid-column-end', + ], + 'grid-column': [ + 'grid-column-start', + 'grid-column-end', + ], + 'grid-row': [ + 'grid-row-start', + 'grid-row-end', + ], + 'grid-template': [ + 'grid-template-columns', + 'grid-template-rows', + 'grid-template-areas', + ], + 'list-style': [ + 'list-style-type', + 'list-style-position', + 'list-style-image', + ], + 'padding': [ + 'padding-block', + 'padding-block-start', + 'padding-block-end', + 'padding-inline', + 'padding-inline-start', + 'padding-inline-end', + 'padding-top', + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'padding-block': [ + 'padding-block-start', + 'padding-block-end', + 'padding-top', + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'padding-block-start': [ + 'padding-top', + 'padding-right', + 'padding-left', + ], + 'padding-block-end': [ + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'padding-inline': [ + 'padding-inline-start', + 'padding-inline-end', + 'padding-top', + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'padding-inline-start': [ + 'padding-top', + 'padding-right', + 'padding-left', + ], + 'padding-inline-end': [ + 'padding-right', + 'padding-bottom', + 'padding-left', + ], + 'margin': [ + 'margin-block', + 'margin-block-start', + 'margin-block-end', + 'margin-inline', + 'margin-inline-start', + 'margin-inline-end', + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'margin-block': [ + 'margin-block-start', + 'margin-block-end', + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'margin-inline': [ + 'margin-inline-start', + 'margin-inline-end', + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'margin-inline-start': [ + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'margin-inline-end': [ + 'margin-top', + 'margin-right', + 'margin-bottom', + 'margin-left', + ], + 'border': [ + 'border-top', + 'border-right', + 'border-bottom', + 'border-left', + 'border-width', + 'border-style', + 'border-color', + 'border-top-width', + 'border-right-width', + 'border-bottom-width', + 'border-left-width', + 'border-inline-start-width', + 'border-inline-end-width', + 'border-block-start-width', + 'border-block-end-width', + 'border-top-style', + 'border-right-style', + 'border-bottom-style', + 'border-left-style', + 'border-inline-start-style', + 'border-inline-end-style', + 'border-block-start-style', + 'border-block-end-style', + 'border-top-color', + 'border-right-color', + 'border-bottom-color', + 'border-left-color', + 'border-inline-start-color', + 'border-inline-end-color', + 'border-block-start-color', + 'border-block-end-color', + 'border-block', + 'border-block-start', + 'border-block-end', + 'border-block-width', + 'border-block-style', + 'border-block-color', + 'border-inline', + 'border-inline-start', + 'border-inline-end', + 'border-inline-width', + 'border-inline-style', + 'border-inline-color', + ], + 'border-top': [ + 'border-width', + 'border-style', + 'border-color', + 'border-top-width', + 'border-top-style', + 'border-top-color', + ], + 'border-right': [ + 'border-width', + 'border-style', + 'border-color', + 'border-right-width', + 'border-right-style', + 'border-right-color', + ], + 'border-bottom': [ + 'border-width', + 'border-style', + 'border-color', + 'border-bottom-width', + 'border-bottom-style', + 'border-bottom-color', + ], + 'border-left': [ + 'border-width', + 'border-style', + 'border-color', + 'border-left-width', + 'border-left-style', + 'border-left-color', + ], + 'border-color': [ + 'border-top-color', + 'border-bottom-color', + 'border-left-color', + 'border-right-color', + 'border-inline-start-color', + 'border-inline-end-color', + 'border-block-start-color', + 'border-block-end-color', + ], + 'border-width': [ + 'border-top-width', + 'border-bottom-width', + 'border-left-width', + 'border-right-width', + 'border-inline-start-width', + 'border-inline-end-width', + 'border-block-start-width', + 'border-block-end-width', + ], + 'border-style': [ + 'border-top-style', + 'border-bottom-style', + 'border-left-style', + 'border-right-style', + 'border-inline-start-style', + 'border-inline-end-style', + 'border-block-start-style', + 'border-block-end-style', + ], + 'border-radius': [ + 'border-top-right-radius', + 'border-top-left-radius', + 'border-bottom-right-radius', + 'border-bottom-left-radius', + ], + 'border-block': [ + 'border-block-start', + 'border-block-end', + 'border-block-width', + 'border-width', + 'border-block-style', + 'border-style', + 'border-block-color', + 'border-color', + ], + 'border-block-start': [ + 'border-block-start-width', + 'border-width', + 'border-block-start-style', + 'border-style', + 'border-block-start-color', + 'border-color', + ], + 'border-block-end': [ + 'border-block-end-width', + 'border-width', + 'border-block-end-style', + 'border-style', + 'border-block-end-color', + 'border-color', + ], + 'border-inline': [ + 'border-inline-start', + 'border-inline-end', + 'border-inline-width', + 'border-width', + 'border-inline-style', + 'border-style', + 'border-inline-color', + 'border-color', + ], + 'border-inline-start': [ + 'border-inline-start-width', + 'border-width', + 'border-inline-start-style', + 'border-style', + 'border-inline-start-color', + 'border-color', + ], + 'border-inline-end': [ + 'border-inline-end-width', + 'border-width', + 'border-inline-end-style', + 'border-style', + 'border-inline-end-color', + 'border-color', + ], + 'border-image': [ + 'border-image-source', + 'border-image-slice', + 'border-image-width', + 'border-image-outset', + 'border-image-repeat', + ], + 'mask': [ + 'mask-image', + 'mask-mode', + 'mask-position', + 'mask-size', + 'mask-repeat', + 'mask-origin', + 'mask-clip', + 'mask-composite', + ], + 'inline-size': [ + 'width', + 'height', + ], + 'block-size': [ + 'width', + 'height', + ], + 'max-inline-size': [ + 'max-width', + 'max-height', + ], + 'max-block-size': [ + 'max-width', + 'max-height', + ], + 'inset': [ + 'inset-block', + 'inset-block-start', + 'inset-block-end', + 'inset-inline', + 'inset-inline-start', + 'inset-inline-end', + 'top', + 'right', + 'bottom', + 'left', + ], + 'inset-block': [ + 'inset-block-start', + 'inset-block-end', + 'top', + 'right', + 'bottom', + 'left', + ], + 'inset-inline': [ + 'inset-inline-start', + 'inset-inline-end', + 'top', + 'right', + 'bottom', + 'left', + ], + 'outline': [ + 'outline-color', + 'outline-style', + 'outline-width', + ], + 'overflow': [ + 'overflow-x', + 'overflow-y', + ], + 'place-content': [ + 'align-content', + 'justify-content', + ], + 'place-items': [ + 'align-items', + 'justify-items', + ], + 'place-self': [ + 'align-self', + 'justify-self', + ], + 'text-decoration': [ + 'text-decoration-color', + 'text-decoration-style', + 'text-decoration-line', + ], + 'transition': [ + 'transition-delay', + 'transition-duration', + 'transition-property', + 'transition-timing-function', + ], + 'text-emphasis': [ + 'text-emphasis-style', + 'text-emphasis-color', + ], +}; diff --git a/node_modules/css-has-pseudo/CHANGELOG.md b/node_modules/css-has-pseudo/CHANGELOG.md new file mode 100644 index 00000000..d53900c2 --- /dev/null +++ b/node_modules/css-has-pseudo/CHANGELOG.md @@ -0,0 +1,207 @@ +# Changes to CSS Has Pseudo + +### 6.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) +- Updated [`@csstools/selector-specificity`](/packages/selector-specificity) to [`3.0.0`](/packages/selector-specificity/CHANGELOG.md#300) (major) + +### 5.0.2 + +_February 6, 2023_ + +- Reduce the amount of duplicate fallback CSS. + +### 5.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 5.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). +- Fix: Do not throw when a selector is invalid, show a warning instead. +- Fix: make `:has()` unforgiving. `:has(.foo, :some-invalid-selector)` will no longer match elements that have children with `.foo`. + +### 4.0.2 + +_December 12, 2022_ + + - Fix: correctly cleanup style rules when a browser has native support. [backported](https://github.com/csstools/postcss-plugins/pull/752) + +### 4.0.1 + +_August 23, 2022_ + +- Fix: assign global browser polyfill to `window`, `self` or a blank object. + +### 4.0.0 + +_July 8, 2022_ + +[Read the full changelog](https://github.com/csstools/postcss-plugins/wiki/PostCSS-Preset-Env-8) + +- Breaking: removed old CDN urls +- Added: 'hover' options for browser polyfill +- Added: 'observedAttributes' options for browser polyfill +- Added: 'forcePolyfill' options for browser polyfill +- Added: Rules within `@supports selector(:has(something))` won't be transformed. +- Fix: Use base36 encoding to support all possible selectors. +- Fix: case insensitive matching. + +#### How to migrate : + +##### Re-build your CSS with the new version of the library. + +##### If you use a CDN url, please update it. + +```diff +- ++ +``` + +```diff +- ++ +``` + +### 3.0.4 + +_February 5, 2022_ + +- Rebuild of browser polyfills + +### 3.0.3 + +_January 12, 2022_ + +- Fix compatibility with PostCSS `v8.2.x` [#147](https://github.com/csstools/postcss-plugins/issues/147) + +This version is not officially supported but some tool providers pinned PostCSS to `v8.2.x`, +making it impossible for end users to have a working setup. + +### 3.0.2 + +_January 2, 2022_ + +- Removed Sourcemaps from package tarball. +- Moved CLI to CLI Package. See [announcement](https://github.com/csstools/postcss-plugins/discussions/121). + +### 3.0.1 + +_December 27, 2021_ + +- Fixed: require/import paths for browser script + +### 3.0.0 + +_December 13, 2021_ + +- Breaking: require/import paths have changed +- Changed: new polyfill CDN urls. +- Updated: documentation + +**Migrating to 3.0.0** + +PostCSS plugin : + +```diff +- const postcssHasPseudo = require('css-has-pseudo/postcss'); ++ const postcssHasPseudo = require('css-has-pseudo'); +``` + +Browser Polyfill : + +```diff +- const cssHasPseudo = require('css-has-pseudo'); ++ const cssHasPseudo = require('css-has-pseudo/browser'); +``` + +_The old CND url is now deprecated and will be removed in a next major release._ +_It will continue to work for now._ + +```diff +- ++ +``` + +### 2.0.0 + +_September 16, 2021_ + +- Updated: Support for PostCS 8+ (major). +- Updated: Support for Node 12+ (major). + +### 1.0.0 + +_June 10, 2019_ + +- Updated: `postcss-selector-parser` to 6.0.2 (major) +- Updated: `postcss` to 7.0.16 (patch) +- Updated: Node 8+ compatibility (major) + +### 0.10.0 + +_December 11, 2018_ + +- Fixed an issue where inaccessible rules would crash the library + +### 0.9.0 + +_November 26, 2018_ + +- Improved CLI usage + +### 0.8.0 + +_November 26, 2018_ + +- Fixed an issue where attribute names were not being properly encoded + +### 0.7.0 + +_November 25, 2018_ + +- Replaced `setImmediate` with `requestAnimationFrame` for future compatibility + +### 0.6.0 + +_November 25, 2018_ + +- Fixed an issue where nested rules were not supported + +### 0.5.0 + +_November 21, 2018_ + +- Further optimize script; from 775 bytes to 757 bytes + +### 0.4.0 + +_November 21, 2018_ + +- Fixed an issue with the browser script not picking up added nodes + +### 0.3.0 + +_November 21, 2018_ + +- Fixed the misnamed function name for the browser-ready script + +### 0.2.0 + +_November 21, 2018_ + +- Improved browser compatibility with updated parsers, encoders, and decoders +- Improved performance by walking the DOM less +- Reduced script size by 9%; from 855 bytes to 775 bytes + +### 0.1.0 + +_November 20, 2018_ + +- Initial version diff --git a/node_modules/css-has-pseudo/LICENSE.md b/node_modules/css-has-pseudo/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/css-has-pseudo/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/css-has-pseudo/README.md b/node_modules/css-has-pseudo/README.md new file mode 100644 index 00000000..be57a5a8 --- /dev/null +++ b/node_modules/css-has-pseudo/README.md @@ -0,0 +1,338 @@ +# PostCSS Has Pseudo [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +[PostCSS Has Pseudo] lets you style elements relative to other elements in CSS, following the [Selectors Level 4] specification. + +To use this feature you need to do two things : +- add the [PostCSS plugin](#usage) that transforms the selector into a class or attribute +- add the [browser polyfill](#browser) that sets the attribute or class on elements in a browser + +```pcss +.title:has(+ p) { + margin-bottom: 1.5rem; +} + +/* becomes */ + +.js-has-pseudo [csstools-has-1a-38-2x-38-30-2t-1m-2w-2p-37-14-17-w-34-15]:not(does-not-exist) { + margin-bottom: 1.5rem; +} +.title:has(+ p) { + margin-bottom: 1.5rem; +} +``` + +## Usage + +Add [PostCSS Has Pseudo] to your project: + +```bash +npm install postcss css-has-pseudo --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const postcssHasPseudo = require('css-has-pseudo'); + +postcss([ + postcssHasPseudo(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[PostCSS Has Pseudo] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default the original rules are preserved. + +```js +postcssHasPseudo({ preserve: false }) +``` + +```pcss +.title:has(+ p) { + margin-bottom: 1.5rem; +} + +/* becomes */ + +.js-has-pseudo [csstools-has-1a-38-2x-38-30-2t-1m-2w-2p-37-14-17-w-34-15]:not(does-not-exist) { + margin-bottom: 1.5rem; +} +``` + +### specificityMatchingName + +The `specificityMatchingName` option allows you to change the selector that is used to adjust specificity. +The default value is `does-not-exist`. +If this is an actual class, id or tag name in your code, you will need to set a different option here. + +See how `:not` is used to modify [specificity](#specificity). + +```js +postcssHasPseudo({ specificityMatchingName: 'something-random' }) +``` + +[specificity 1, 2, 0](https://polypane.app/css-specificity-calculator/#selector=.x%3Ahas(%3E%20%23a%3Ahover)) + +Before : + +```css +.x:has(> #a:hover) { + order: 11; +} +``` + +After : + +[specificity 1, 2, 0](https://polypane.app/css-specificity-calculator/#selector=%5Bcsstools-has-1a-3c-1m-2w-2p-37-14-1q-w-z-2p-1m-2w-33-3a-2t-36-15%5D%3Anot(%23does-not-exist)%3Anot(.does-not-exist)) + +```css +[csstools-has-1a-3c-1m-2w-2p-37-14-1q-w-z-2p-1m-2w-33-3a-2t-36-15]:not(#does-not-exist):not(.does-not-exist) { + order: 11; +} +``` + +## ⚠️ Known shortcomings + +### Performance + +Determining which elements match a `:has` selector is relatively slow through a polyfill compared to the native feature. + +A very large DOM or many and complex `:has` selectors can cause performance issues. +JavaScript frameworks that rewrite the DOM will be particularly affected by this. + +_Any contributions to speedup matching are welcome. +Please open an issue to discuss proposed changes if you are interested in contributing._ + +### Specificity + +`:has` transforms will result in at least one attribute selector with specificity `0, 1, 0`.
+If your selector only has tags we won't be able to match the original specificity. + +Before : + +[specificity 0, 0, 2](https://polypane.app/css-specificity-calculator/#selector=figure%3Ahas(%3E%20img)) + +```css +figure:has(> img) +``` + +After : + +[specificity 0, 1, 2](https://polypane.app/css-specificity-calculator/#selector=%5Bcsstools-has-2u-2x-2v-39-36-2t-1m-2w-2p-37-14-1q-w-2x-31-2v-15%5D%3Anot(does-not-exist)%3Anot(does-not-exist)) + +```css +[csstools-has-2u-2x-2v-39-36-2t-1m-2w-2p-37-14-1q-w-2x-31-2v-15]:not(does-not-exist):not(does-not-exist) +``` + +### Plugin order + +As selectors are encoded, this plugin (or `postcss-preset-env`) must be run after any other plugin that transforms selectors. + +If other plugins are used, you need to place these in your config before `postcss-preset-env` or `css-has-pseudo`. + +Please let us know if you have issues with plugins that transform selectors. +Then we can investigate and maybe fix these. + +## Browser + +```js +// initialize cssHasPseudo +import cssHasPseudo from 'css-has-pseudo/browser'; +cssHasPseudo(document); +``` + +or + +```html + + + +``` + +⚠️ Please use a versioned url, like this : `https://unpkg.com/css-has-pseudo@6.0.0/dist/browser-global.js` +Without the version, you might unexpectedly get a new major version of the library with breaking changes. + +[PostCSS Has Pseudo] works in all major browsers, including +Internet Explorer 11. With a [Mutation Observer polyfill](https://github.com/webmodules/mutation-observer), the script will work +down to Internet Explorer 9. + +### Browser Usage + +#### hover + +The `hover` option determines if `:hover` pseudo-class should be tracked. +This is disabled by default because it is an expensive operation. + +```js +cssHasPseudo(document, { hover: true }); +``` + +#### observedAttributes + +The `observedAttributes` option determines which html attributes are observed. +If you do any client side modification of non-standard attributes and use these in combination with `:has()` you should add these here. + +```js +cssHasPseudo(document, { observedAttributes: ['something-not-standard'] }); +``` + +#### forcePolyfill + +The `forcePolyfill` option determines if the polyfill is used even when the browser has native support. +This is needed when you set `preserve: false` in the PostCSS plugin config. + +```js +cssHasPseudo(document, { forcePolyfill: true }); +``` + +#### debug + +The `debug` option determines if errors are emitted to the console in browser. +By default the polyfill will not emit errors or warnings. + +```js +cssHasPseudo(document, { debug: true }); +``` + +### Browser Dependencies + +Web API's: + +- [MutationObserver](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) +- [requestAnimationFrame](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) +- [querySelectorAll](https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll) with support for post CSS 2.1 selectors and `:scope` selectors. + +ECMA Script: + +- `Array.prototype.filter` +- `Array.prototype.forEach` +- `Array.prototype.indexOf` +- `Array.prototype.join` +- `Array.prototype.map` +- `Array.prototype.splice` +- `RegExp.prototype.exec` +- `String.prototype.match` +- `String.prototype.replace` +- `String.prototype.split` + +## CORS + +⚠️ Applies to you if you load CSS from a different domain than the page. + +In this case the CSS is treated as untrusted and will not be made available to the JavaScript polyfill. +The polyfill will not work without applying the correct configuration for CORS. + +Example : + +| page | css | CORS applies | +| --- | --- | --- | +| https://example.com/ | https://example.com/style.css | no | +| https://example.com/ | https://other.com/style.css | yes | + + +**You might see one of these error messages :** + +Chrome : + +> DOMException: Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules + +Safari : + +> SecurityError: Not allowed to access cross-origin stylesheet + +Firefox : + +> DOMException: CSSStyleSheet.cssRules getter: Not allowed to access cross-origin stylesheet + +To resolve CORS errors you need to take two steps : + +- add an HTTP header `Access-Control-Allow-Origin: ` when serving your CSS file. +- add `crossorigin="anonymous"` to the `` tag for your CSS file. + +In a node server setting the HTTP header might look like this : + +```js +// http://localhost:8080 is the domain of your page! +res.setHeader('Access-Control-Allow-Origin', 'https://example.com'); +``` + +You can also configure a wildcard but please be aware that this might be a security risk. +It is better to only set the header for the domain you want to allow and only on the responses you want to allow. + +HTML might look like this : + +```html + +``` + + +### Using with Next.js + +Given that Next.js imports packages both on the browser and on the server, you need to make sure that the package is only imported on the browser. + +As outlined in the [Next.js documentation](https://nextjs.org/docs/advanced-features/dynamic-import#with-external-libraries), you need to load the package with a dynamic import: + +```jsx +useEffect(async () => { + const cssHasPseudo = (await import('css-has-pseudo/browser')).default; + cssHasPseudo(document); +}, []); +``` + +We recommend you load the polyfill as high up on your Next application as possible, such as your `pages/_app.ts` file. + +## How it works + +The [PostCSS Has Pseudo] clones rules containing `:has()`, +replacing them with an alternative `[csstools-has-]` selector. + +```pcss +.title:has(+ p) { + margin-bottom: 1.5rem; +} + +/* becomes */ + +.js-has-pseudo [csstools-has-1a-38-2x-38-30-2t-1m-2w-2p-37-14-17-w-34-15]:not(does-not-exist) { + margin-bottom: 1.5rem; +} +.title:has(+ p) { + margin-bottom: 1.5rem; +} +``` + +Next, the [browser script](#browser) adds a `[:has]` attribute to +elements otherwise matching `:has` natively. + +```html +
+

A title block

+

With an extra paragraph

+
+``` + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#has-pseudo-class +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/css-has-pseudo + +[PostCSS]: https://github.com/postcss/postcss +[PostCSS Has Pseudo]: https://github.com/csstools/postcss-plugins/tree/main/plugins/css-has-pseudo +[Selectors Level 4]: https://www.w3.org/TR/selectors-4/#has-pseudo diff --git a/node_modules/css-has-pseudo/dist/browser-global.js b/node_modules/css-has-pseudo/dist/browser-global.js new file mode 100644 index 00000000..a724c85d --- /dev/null +++ b/node_modules/css-has-pseudo/dist/browser-global.js @@ -0,0 +1,2 @@ +!function(){function decodeCSS(e){if("csstools-has-"!==e.slice(0,13))return"";for(var t=(e=e.slice(13)).split("-"),r="",o=0;o",t.setAttributeNode(o.children[0].attributes[0].cloneNode()),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null})),r.nodes.forEach((function(t){-1===n.indexOf(t)&&(t.removeAttribute(r.attributeName),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null)})),r.nodes=n}))}))}function walkStyleSheet(e){try{[].forEach.call(e.cssRules||[],(function(o,n){if(o.selectorText){o.selectorText=o.selectorText.replace(/\.js-has-pseudo\s/g,"");try{var s=extractEncodedSelectors(o.selectorText.toString());if(0===s.length)return;if(!t.mustPolyfill)return void e.deleteRule(n);for(var i=0;i *)"),!e.document.querySelector(":has(:scope *)")&&CSS.supports("selector(:has(div))"))return}catch(a){}var t=polyfill(e.Element.prototype.querySelector);e.Element.prototype.querySelector=function querySelector(e){return t.apply(this,arguments)};var r=polyfill(e.Element.prototype.querySelectorAll);if(e.Element.prototype.querySelectorAll=function querySelectorAll(e){return r.apply(this,arguments)},e.Element.prototype.matches){var o=polyfill(e.Element.prototype.matches);e.Element.prototype.matches=function matches(e){return o.apply(this,arguments)}}if(e.Element.prototype.closest){var n=polyfill(e.Element.prototype.closest);e.Element.prototype.closest=function closest(e){return n.apply(this,arguments)}}if("Document"in e&&"prototype"in e.Document){var s=polyfill(e.Document.prototype.querySelector);e.Document.prototype.querySelector=function querySelector(e){return s.apply(this,arguments)};var l=polyfill(e.Document.prototype.querySelectorAll);if(e.Document.prototype.querySelectorAll=function querySelectorAll(e){return l.apply(this,arguments)},e.Document.prototype.matches){var i=polyfill(e.Document.prototype.matches);e.Document.prototype.matches=function matches(e){return i.apply(this,arguments)}}if(e.Document.prototype.closest){var c=polyfill(e.Document.prototype.closest);e.Document.prototype.closest=function closest(e){return c.apply(this,arguments)}}}function pseudoClassHasInnerQuery(e){for(var t="",r=0,o=0,n=!1,s=!1,l=!1,i=!1,c=0;c~#&,)]/.test(a||"")&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),a){case":":r.push(o),o="",o+=a;continue;case"\\":o+=a,n=!0;continue;case'"':case"'":o+=a,s=!0,l=a;continue;case"[":o+=a,i++;continue;case"]":o+=a,i>0&&i--;continue;default:o+=a;continue}}return":scope"===o.toLowerCase()&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),0===r.length?e:r.join("")+o}function splitSelector(e){for(var t,r,o=[],n="",s=!1,l=!1,i=!1,c=!1,a=0,u=0;u0){n+=p;continue}o.push(n),n="";continue;case"\\":n+=p,s=!0;continue;case'"':case"'":if(l&&p===i){n+=p,l=!1;continue}n+=p,l=!0,i=p;continue;case"(":case")":case"[":case"]":if(l){n+=p;continue}if(t=p,"("===(r=c)&&")"===t||"["===r&&"]"===t){n+=p,0===--a&&(c=!1);continue}if(p===c){n+=p,a++;continue}n+=p,a++,c=p;continue;default:n+=p;continue}}return o.push(n),o}function replaceAllWithTempAttr(e,t,r){var o=pseudoClassHasInnerQuery(e);if(!o)return e;if(t)return!1;var n=o.innerQuery,s="q-has"+(Math.floor(9e6*Math.random())+1e6),l="["+s+"]",i=e;if(o.innerQuery.toLowerCase().indexOf(":has(")>-1){for(var c=splitSelector(o.innerQuery),a=[],u=0;u-1){var h=replaceAllWithTempAttr(i,!1,r);if(h)return h}return i}function walkNode(e,t){if("setAttribute"in e&&"querySelector"in e&&t(e),e.hasChildNodes())for(var r=e.childNodes,o=0;o"===s[0]||"+"===s[0]||"~"===s[0]?s.slice(1).trim():":scope "+s,walkNode(o,(function(e){if(e.querySelector(l))switch(s[0]){case"~":case"+":for(var r=e.childNodes,o=0;o":i="q-has-id"+(Math.floor(9e6*Math.random())+1e6);e.setAttribute(i,""),e.querySelector(":scope["+i+"] "+s)&&e.setAttribute(t,""),e.removeAttribute(i);break;default:e.setAttribute(t,"")}}))}}));arguments[0]=u;var p=t.apply(this,arguments);if(l.removeAttribute(i),c.length>0){for(var f=[],d=0;d0){for(f=[],d=0;d {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n","/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\n\t\tif (\n\t\t\t!global.document.querySelector(':has(:scope *)') &&\n\t\t\tCSS.supports('selector(:has(div))')\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we throw\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tthrow new Error(\"Nested :has() is not supported\")\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif (!selectors) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar selectorsString = String(selectors);\n\t\t\tif (!selectorsString || (selectorsString.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectorsString)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectorsString = replaceScopeWithAttr(selectorsString, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectorsString, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar errorMessage = '';\n\t\t\t\ttry {\n\t\t\t\t\tqsa.apply(this, [':core-web-does-not-exist']);\n\t\t\t\t} catch (dummyError) {\n\t\t\t\t\terrorMessage = dummyError.message;\n\t\t\t\t\tif (errorMessage) {\n\t\t\t\t\t\terrorMessage = errorMessage.replace(':core-web-does-not-exist', selectorsString);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!errorMessage) {\n\t\t\t\t\terrorMessage = \"Failed to execute 'querySelector' on 'Document': '\" + selectorsString + \"' is not a valid selector.\";\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new DOMException(errorMessage);\n\t\t\t\t} catch (_) {\n\t\t\t\t\tthrow new Error(errorMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n})(self);\n","/* global self,window */\nimport { default as cssHasPseudo } from './browser';\n\n(function (global) {\n\tglobal.cssHasPseudo = cssHasPseudo;\n}('object' === typeof window && window || 'object' === typeof self && self || {}));\n"],"names":["decodeCSS","value","slice","values","split","result","i","length","String","fromCharCode","parseInt","extractEncodedSelectors","candidate","quotedMark","out","depth","quoted","containsUnescapedUnquotedHasAtDepth1","char","decoded","push","unique","indexOf","encodeCSS","hex","charCodeAt","toString","hasNativeSupport","self","CSS","supports","_","cssHasPseudo","document","options","hover","debug","observedAttributes","forcePolyfill","mustPolyfill","Array","isArray","filter","x","concat","observedItems","attributeElement","createElement","forEach","call","styleSheets","walkStyleSheet","transformObservedItemsThrottled","MutationObserver","mutationsList","mutation","addedNodes","node","nodeType","sheet","apply","splice","item","rule","parentStyleSheet","ownerNode","documentElement","contains","observe","childList","subtree","attributes","attributeFilter","addEventListener","Object","observeProperty","proto","property","hasOwnProperty","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","enumerable","get","this","arguments","set","HTMLElement","prototype","elementName","e","console","error","transformObservedItemsThrottledBusy","cancelAnimationFrame","requestAnimationFrame","nodes","matches","querySelectorAll","selector","element","innerHTML","attributeName","setAttributeNode","children","cloneNode","style","zoom","removeAttribute","styleSheet","cssRules","index","selectorText","replace","hasSelectors","deleteRule","hasSelector","global","querySelector","querySelectorWithHasElement","polyfill","Element","selectors","querySelectorAllWithHasElement","matchesWithHasElement","closest","closestWithHasElement","Document","querySelectorWithHasDocument","querySelectorAllWithHasDocument","matchesWithHasDocument","closestWithHasDocument","pseudoClassHasInnerQuery","query","current","start","escaped","inHas","toLowerCase","innerQuery","end","replaceScopeWithAttr","attr","parts","bracketed","test","join","splitSelector","mark","nestedMark","nestedDepth","replaceAllWithTempAttr","nested","callback","inner","Math","floor","random","innerReplacement","innerParts","newInnerParts","innerPart","Error","_prefix","substring","_suffix","y","walkNode","rootNode","hasChildNodes","childNodes","qsa","selectorsString","getRootNode","r","parentNode","_focus","scopeAttr","setAttribute","attrs","newQuery","selectorParts","selectorPart","trim","absoluteSelectorPart","siblings","sibling","idAttr","elementOrNodeList","attrsForQuery","j","elements","k","l","err","errorMessage","dummyError","message","DOMException","window"],"mappings":"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","x_google_ignoreList":[4]} \ No newline at end of file diff --git a/node_modules/css-has-pseudo/dist/browser.cjs b/node_modules/css-has-pseudo/dist/browser.cjs new file mode 100644 index 00000000..55212892 --- /dev/null +++ b/node_modules/css-has-pseudo/dist/browser.cjs @@ -0,0 +1,2 @@ +function decodeCSS(e){if("csstools-has-"!==e.slice(0,13))return"";for(var t=(e=e.slice(13)).split("-"),r="",o=0;o *)"),!e.document.querySelector(":has(:scope *)")&&CSS.supports("selector(:has(div))"))return}catch(a){}var t=polyfill(e.Element.prototype.querySelector);e.Element.prototype.querySelector=function querySelector(e){return t.apply(this,arguments)};var r=polyfill(e.Element.prototype.querySelectorAll);if(e.Element.prototype.querySelectorAll=function querySelectorAll(e){return r.apply(this,arguments)},e.Element.prototype.matches){var o=polyfill(e.Element.prototype.matches);e.Element.prototype.matches=function matches(e){return o.apply(this,arguments)}}if(e.Element.prototype.closest){var n=polyfill(e.Element.prototype.closest);e.Element.prototype.closest=function closest(e){return n.apply(this,arguments)}}if("Document"in e&&"prototype"in e.Document){var s=polyfill(e.Document.prototype.querySelector);e.Document.prototype.querySelector=function querySelector(e){return s.apply(this,arguments)};var l=polyfill(e.Document.prototype.querySelectorAll);if(e.Document.prototype.querySelectorAll=function querySelectorAll(e){return l.apply(this,arguments)},e.Document.prototype.matches){var i=polyfill(e.Document.prototype.matches);e.Document.prototype.matches=function matches(e){return i.apply(this,arguments)}}if(e.Document.prototype.closest){var c=polyfill(e.Document.prototype.closest);e.Document.prototype.closest=function closest(e){return c.apply(this,arguments)}}}function pseudoClassHasInnerQuery(e){for(var t="",r=0,o=0,n=!1,s=!1,l=!1,i=!1,c=0;c~#&,)]/.test(a||"")&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),a){case":":r.push(o),o="",o+=a;continue;case"\\":o+=a,n=!0;continue;case'"':case"'":o+=a,s=!0,l=a;continue;case"[":o+=a,i++;continue;case"]":o+=a,i>0&&i--;continue;default:o+=a;continue}}return":scope"===o.toLowerCase()&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),0===r.length?e:r.join("")+o}function splitSelector(e){for(var t,r,o=[],n="",s=!1,l=!1,i=!1,c=!1,a=0,u=0;u0){n+=p;continue}o.push(n),n="";continue;case"\\":n+=p,s=!0;continue;case'"':case"'":if(l&&p===i){n+=p,l=!1;continue}n+=p,l=!0,i=p;continue;case"(":case")":case"[":case"]":if(l){n+=p;continue}if(t=p,"("===(r=c)&&")"===t||"["===r&&"]"===t){n+=p,0===--a&&(c=!1);continue}if(p===c){n+=p,a++;continue}n+=p,a++,c=p;continue;default:n+=p;continue}}return o.push(n),o}function replaceAllWithTempAttr(e,t,r){var o=pseudoClassHasInnerQuery(e);if(!o)return e;if(t)return!1;var n=o.innerQuery,s="q-has"+(Math.floor(9e6*Math.random())+1e6),l="["+s+"]",i=e;if(o.innerQuery.toLowerCase().indexOf(":has(")>-1){for(var c=splitSelector(o.innerQuery),a=[],u=0;u-1){var h=replaceAllWithTempAttr(i,!1,r);if(h)return h}return i}function walkNode(e,t){if("setAttribute"in e&&"querySelector"in e&&t(e),e.hasChildNodes())for(var r=e.childNodes,o=0;o"===s[0]||"+"===s[0]||"~"===s[0]?s.slice(1).trim():":scope "+s,walkNode(o,(function(e){if(e.querySelector(l))switch(s[0]){case"~":case"+":for(var r=e.childNodes,o=0;o":i="q-has-id"+(Math.floor(9e6*Math.random())+1e6);e.setAttribute(i,""),e.querySelector(":scope["+i+"] "+s)&&e.setAttribute(t,""),e.removeAttribute(i);break;default:e.setAttribute(t,"")}}))}}));arguments[0]=u;var p=t.apply(this,arguments);if(l.removeAttribute(i),c.length>0){for(var f=[],d=0;d0){for(f=[],d=0;d",t.setAttributeNode(o.children[0].attributes[0].cloneNode()),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null})),r.nodes.forEach((function(t){-1===n.indexOf(t)&&(t.removeAttribute(r.attributeName),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null)})),r.nodes=n}))}))}function walkStyleSheet(e){try{[].forEach.call(e.cssRules||[],(function(o,n){if(o.selectorText){o.selectorText=o.selectorText.replace(/\.js-has-pseudo\s/g,"");try{var s=extractEncodedSelectors(o.selectorText.toString());if(0===s.length)return;if(!t.mustPolyfill)return void e.deleteRule(n);for(var i=0;i {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n","/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\n\t\tif (\n\t\t\t!global.document.querySelector(':has(:scope *)') &&\n\t\t\tCSS.supports('selector(:has(div))')\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we throw\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tthrow new Error(\"Nested :has() is not supported\")\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif (!selectors) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar selectorsString = String(selectors);\n\t\t\tif (!selectorsString || (selectorsString.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectorsString)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectorsString = replaceScopeWithAttr(selectorsString, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectorsString, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar errorMessage = '';\n\t\t\t\ttry {\n\t\t\t\t\tqsa.apply(this, [':core-web-does-not-exist']);\n\t\t\t\t} catch (dummyError) {\n\t\t\t\t\terrorMessage = dummyError.message;\n\t\t\t\t\tif (errorMessage) {\n\t\t\t\t\t\terrorMessage = errorMessage.replace(':core-web-does-not-exist', selectorsString);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!errorMessage) {\n\t\t\t\t\terrorMessage = \"Failed to execute 'querySelector' on 'Document': '\" + selectorsString + \"' is not a valid selector.\";\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new DOMException(errorMessage);\n\t\t\t\t} catch (_) {\n\t\t\t\t\tthrow new Error(errorMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n})(self);\n"],"names":["decodeCSS","value","slice","values","split","result","i","length","String","fromCharCode","parseInt","extractEncodedSelectors","candidate","quotedMark","out","depth","quoted","containsUnescapedUnquotedHasAtDepth1","char","decoded","push","unique","indexOf","encodeCSS","hex","charCodeAt","toString","hasNativeSupport","self","CSS","supports","_","global","document","querySelector","querySelectorWithHasElement","polyfill","Element","prototype","selectors","apply","this","arguments","querySelectorAllWithHasElement","querySelectorAll","matches","matchesWithHasElement","closest","closestWithHasElement","Document","querySelectorWithHasDocument","querySelectorAllWithHasDocument","matchesWithHasDocument","closestWithHasDocument","pseudoClassHasInnerQuery","query","current","start","escaped","inHas","toLowerCase","innerQuery","end","replaceScopeWithAttr","attr","parts","bracketed","test","join","splitSelector","mark","nestedMark","nestedDepth","replaceAllWithTempAttr","nested","callback","inner","Math","floor","random","innerReplacement","x","innerParts","newInnerParts","innerPart","Error","_prefix","substring","_suffix","y","walkNode","rootNode","hasChildNodes","nodes","childNodes","qsa","selectorsString","getRootNode","r","parentNode","_focus","documentElement","scopeAttr","setAttribute","attrs","newQuery","selectorParts","selectorPart","trim","absoluteSelectorPart","node","siblings","sibling","idAttr","removeAttribute","elementOrNodeList","attrsForQuery","j","elements","k","element","l","err","errorMessage","dummyError","message","replace","DOMException","cssHasPseudo","options","hover","debug","observedAttributes","forcePolyfill","mustPolyfill","Array","isArray","filter","concat","observedItems","attributeElement","createElement","forEach","call","styleSheets","walkStyleSheet","transformObservedItemsThrottled","MutationObserver","mutationsList","mutation","addedNodes","nodeType","sheet","splice","item","rule","parentStyleSheet","ownerNode","contains","observe","childList","subtree","attributes","attributeFilter","addEventListener","Object","observeProperty","proto","property","hasOwnProperty","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","enumerable","get","set","HTMLElement","elementName","e","console","error","transformObservedItemsThrottledBusy","cancelAnimationFrame","requestAnimationFrame","selector","innerHTML","attributeName","setAttributeNode","children","cloneNode","style","zoom","styleSheet","cssRules","index","selectorText","hasSelectors","deleteRule","hasSelector"],"mappings":"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","x_google_ignoreList":[4]} \ No newline at end of file diff --git a/node_modules/css-has-pseudo/dist/browser.mjs b/node_modules/css-has-pseudo/dist/browser.mjs new file mode 100644 index 00000000..3020543e --- /dev/null +++ b/node_modules/css-has-pseudo/dist/browser.mjs @@ -0,0 +1,2 @@ +function decodeCSS(e){if("csstools-has-"!==e.slice(0,13))return"";for(var t=(e=e.slice(13)).split("-"),r="",o=0;o",t.setAttributeNode(o.children[0].attributes[0].cloneNode()),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null})),r.nodes.forEach((function(t){-1===n.indexOf(t)&&(t.removeAttribute(r.attributeName),e.documentElement.style.zoom=1,e.documentElement.style.zoom=null)})),r.nodes=n}))}))}function walkStyleSheet(e){try{[].forEach.call(e.cssRules||[],(function(o,n){if(o.selectorText){o.selectorText=o.selectorText.replace(/\.js-has-pseudo\s/g,"");try{var s=extractEncodedSelectors(o.selectorText.toString());if(0===s.length)return;if(!t.mustPolyfill)return void e.deleteRule(n);for(var i=0;i *)"),!e.document.querySelector(":has(:scope *)")&&CSS.supports("selector(:has(div))"))return}catch(a){}var t=polyfill(e.Element.prototype.querySelector);e.Element.prototype.querySelector=function querySelector(e){return t.apply(this,arguments)};var r=polyfill(e.Element.prototype.querySelectorAll);if(e.Element.prototype.querySelectorAll=function querySelectorAll(e){return r.apply(this,arguments)},e.Element.prototype.matches){var o=polyfill(e.Element.prototype.matches);e.Element.prototype.matches=function matches(e){return o.apply(this,arguments)}}if(e.Element.prototype.closest){var n=polyfill(e.Element.prototype.closest);e.Element.prototype.closest=function closest(e){return n.apply(this,arguments)}}if("Document"in e&&"prototype"in e.Document){var s=polyfill(e.Document.prototype.querySelector);e.Document.prototype.querySelector=function querySelector(e){return s.apply(this,arguments)};var l=polyfill(e.Document.prototype.querySelectorAll);if(e.Document.prototype.querySelectorAll=function querySelectorAll(e){return l.apply(this,arguments)},e.Document.prototype.matches){var i=polyfill(e.Document.prototype.matches);e.Document.prototype.matches=function matches(e){return i.apply(this,arguments)}}if(e.Document.prototype.closest){var c=polyfill(e.Document.prototype.closest);e.Document.prototype.closest=function closest(e){return c.apply(this,arguments)}}}function pseudoClassHasInnerQuery(e){for(var t="",r=0,o=0,n=!1,s=!1,l=!1,i=!1,c=0;c~#&,)]/.test(a||"")&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),a){case":":r.push(o),o="",o+=a;continue;case"\\":o+=a,n=!0;continue;case'"':case"'":o+=a,s=!0,l=a;continue;case"[":o+=a,i++;continue;case"]":o+=a,i>0&&i--;continue;default:o+=a;continue}}return":scope"===o.toLowerCase()&&(r.push(o.slice(0,o.length-6)),r.push("["+t+"]"),o=""),0===r.length?e:r.join("")+o}function splitSelector(e){for(var t,r,o=[],n="",s=!1,l=!1,i=!1,c=!1,a=0,u=0;u0){n+=p;continue}o.push(n),n="";continue;case"\\":n+=p,s=!0;continue;case'"':case"'":if(l&&p===i){n+=p,l=!1;continue}n+=p,l=!0,i=p;continue;case"(":case")":case"[":case"]":if(l){n+=p;continue}if(t=p,"("===(r=c)&&")"===t||"["===r&&"]"===t){n+=p,0===--a&&(c=!1);continue}if(p===c){n+=p,a++;continue}n+=p,a++,c=p;continue;default:n+=p;continue}}return o.push(n),o}function replaceAllWithTempAttr(e,t,r){var o=pseudoClassHasInnerQuery(e);if(!o)return e;if(t)return!1;var n=o.innerQuery,s="q-has"+(Math.floor(9e6*Math.random())+1e6),l="["+s+"]",i=e;if(o.innerQuery.toLowerCase().indexOf(":has(")>-1){for(var c=splitSelector(o.innerQuery),a=[],u=0;u-1){var h=replaceAllWithTempAttr(i,!1,r);if(h)return h}return i}function walkNode(e,t){if("setAttribute"in e&&"querySelector"in e&&t(e),e.hasChildNodes())for(var r=e.childNodes,o=0;o"===s[0]||"+"===s[0]||"~"===s[0]?s.slice(1).trim():":scope "+s,walkNode(o,(function(e){if(e.querySelector(l))switch(s[0]){case"~":case"+":for(var r=e.childNodes,o=0;o":i="q-has-id"+(Math.floor(9e6*Math.random())+1e6);e.setAttribute(i,""),e.querySelector(":scope["+i+"] "+s)&&e.setAttribute(t,""),e.removeAttribute(i);break;default:e.setAttribute(t,"")}}))}}));arguments[0]=u;var p=t.apply(this,arguments);if(l.removeAttribute(i),c.length>0){for(var f=[],d=0;d0){for(f=[],d=0;d {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n","/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\n\t\tif (\n\t\t\t!global.document.querySelector(':has(:scope *)') &&\n\t\t\tCSS.supports('selector(:has(div))')\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we throw\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tthrow new Error(\"Nested :has() is not supported\")\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif (!selectors) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar selectorsString = String(selectors);\n\t\t\tif (!selectorsString || (selectorsString.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectorsString)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectorsString = replaceScopeWithAttr(selectorsString, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectorsString, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar errorMessage = '';\n\t\t\t\ttry {\n\t\t\t\t\tqsa.apply(this, [':core-web-does-not-exist']);\n\t\t\t\t} catch (dummyError) {\n\t\t\t\t\terrorMessage = dummyError.message;\n\t\t\t\t\tif (errorMessage) {\n\t\t\t\t\t\terrorMessage = errorMessage.replace(':core-web-does-not-exist', selectorsString);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!errorMessage) {\n\t\t\t\t\terrorMessage = \"Failed to execute 'querySelector' on 'Document': '\" + selectorsString + \"' is not a valid selector.\";\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new DOMException(errorMessage);\n\t\t\t\t} catch (_) {\n\t\t\t\t\tthrow new Error(errorMessage);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n})(self);\n"],"names":["decodeCSS","value","slice","values","split","result","i","length","String","fromCharCode","parseInt","extractEncodedSelectors","candidate","quotedMark","out","depth","quoted","containsUnescapedUnquotedHasAtDepth1","char","decoded","push","unique","indexOf","encodeCSS","hex","charCodeAt","toString","hasNativeSupport","self","CSS","supports","_","cssHasPseudo","document","options","hover","debug","observedAttributes","forcePolyfill","mustPolyfill","Array","isArray","filter","x","concat","observedItems","attributeElement","createElement","forEach","call","styleSheets","walkStyleSheet","transformObservedItemsThrottled","MutationObserver","mutationsList","mutation","addedNodes","node","nodeType","sheet","apply","splice","item","rule","parentStyleSheet","ownerNode","documentElement","contains","observe","childList","subtree","attributes","attributeFilter","addEventListener","Object","observeProperty","proto","property","hasOwnProperty","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","enumerable","get","this","arguments","set","HTMLElement","prototype","elementName","e","console","error","transformObservedItemsThrottledBusy","cancelAnimationFrame","requestAnimationFrame","nodes","matches","querySelectorAll","selector","element","innerHTML","attributeName","setAttributeNode","children","cloneNode","style","zoom","removeAttribute","styleSheet","cssRules","index","selectorText","replace","hasSelectors","deleteRule","hasSelector","global","querySelector","querySelectorWithHasElement","polyfill","Element","selectors","querySelectorAllWithHasElement","matchesWithHasElement","closest","closestWithHasElement","Document","querySelectorWithHasDocument","querySelectorAllWithHasDocument","matchesWithHasDocument","closestWithHasDocument","pseudoClassHasInnerQuery","query","current","start","escaped","inHas","toLowerCase","innerQuery","end","replaceScopeWithAttr","attr","parts","bracketed","test","join","splitSelector","mark","nestedMark","nestedDepth","replaceAllWithTempAttr","nested","callback","inner","Math","floor","random","innerReplacement","innerParts","newInnerParts","innerPart","Error","_prefix","substring","_suffix","y","walkNode","rootNode","hasChildNodes","childNodes","qsa","selectorsString","getRootNode","r","parentNode","_focus","scopeAttr","setAttribute","attrs","newQuery","selectorParts","selectorPart","trim","absoluteSelectorPart","siblings","sibling","idAttr","elementOrNodeList","attrsForQuery","j","elements","k","l","err","errorMessage","dummyError","message","DOMException"],"mappings":"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","x_google_ignoreList":[4]} \ No newline at end of file diff --git a/node_modules/css-has-pseudo/dist/index.cjs b/node_modules/css-has-pseudo/dist/index.cjs new file mode 100644 index 00000000..2746cb0c --- /dev/null +++ b/node_modules/css-has-pseudo/dist/index.cjs @@ -0,0 +1 @@ +"use strict";var e=require("postcss-selector-parser"),t=require("postcss-value-parser"),s=require("@csstools/selector-specificity");function encodeCSS(e){if(""===e)return"";let t,s="";for(let r=0;r{if("function"===e.type&&"selector"===e.value.toLowerCase())return r.add(t.stringify(e.nodes)),!1})),r.forEach((e=>{selectorContainsHasPseudo(e)&&(s=!0)}))}catch(e){}return s}function selectorContainsHasPseudo(t){if(!t.toLowerCase().includes(":has("))return!1;let s=!1;try{e().astSync(t).walk((e=>{if("pseudo"===e.type&&":has"===e.value.toLowerCase()&&e.nodes&&e.nodes.length>0)return s=!0,!1}))}catch(e){}return s}const creator=t=>{const r={preserve:!0,specificityMatchingName:"does-not-exist",...t||{}},o=":not(#"+r.specificityMatchingName+")",n=":not(."+r.specificityMatchingName+")",a=":not("+r.specificityMatchingName+")";return{postcssPlugin:"css-has-pseudo",prepare(){const t=new WeakSet;return{RuleExit:(c,{result:i})=>{if(t.has(c))return;if(!c.selector.toLowerCase().includes(":has(")||isWithinSupportCheck(c))return;const l=c.selectors.map((t=>{if(!t.toLowerCase().includes(":has("))return t;let l;try{l=e().astSync(t)}catch(e){return c.warn(i,`Failed to parse selector : "${t}" with message: "${e.message}"`),t}if(void 0===l)return t;l.walkPseudos((t=>{let s=t.parent,o=!1;for(;s;)e.isPseudoClass(s)&&":has"===s.value.toLowerCase()&&(o=!0),s=s.parent;o&&(":visited"===t.value.toLowerCase()&&t.replaceWith(e.className({value:r.specificityMatchingName})),":any-link"===t.value.toLowerCase()&&(t.value=":link"))})),l.walkPseudos((t=>{if(":has"!==t.value.toLowerCase()||!t.nodes)return;let r=t.parent??t;if(r!==t){let t=r.nodes.length;e:for(let s=0;s=0;e--)if("combinator"!==r.nodes[s].type&&"comment"!==r.nodes[s].type){t=e+1;break e}}if(t{delete e.parent,s.append(e)}));const o=e.selector({value:"",nodes:[]});r.nodes.slice(t).forEach((e=>{delete e.parent,o.append(e)}));const n=e.selector({value:"",nodes:[]});n.append(s),n.append(o),r.replaceWith(n),r=s}}const c="["+encodeCSS(r.toString())+"]",i=s.selectorSpecificity(r);let l=c;for(let e=0;e; +export default creator; diff --git a/node_modules/css-has-pseudo/dist/index.mjs b/node_modules/css-has-pseudo/dist/index.mjs new file mode 100644 index 00000000..497b8fc1 --- /dev/null +++ b/node_modules/css-has-pseudo/dist/index.mjs @@ -0,0 +1 @@ +import e from"postcss-selector-parser";import t from"postcss-value-parser";import{selectorSpecificity as s}from"@csstools/selector-specificity";function encodeCSS(e){if(""===e)return"";let t,s="";for(let o=0;o{if("function"===e.type&&"selector"===e.value.toLowerCase())return o.add(t.stringify(e.nodes)),!1})),o.forEach((e=>{selectorContainsHasPseudo(e)&&(s=!0)}))}catch(e){}return s}function selectorContainsHasPseudo(t){if(!t.toLowerCase().includes(":has("))return!1;let s=!1;try{e().astSync(t).walk((e=>{if("pseudo"===e.type&&":has"===e.value.toLowerCase()&&e.nodes&&e.nodes.length>0)return s=!0,!1}))}catch(e){}return s}const creator=t=>{const o={preserve:!0,specificityMatchingName:"does-not-exist",...t||{}},r=":not(#"+o.specificityMatchingName+")",n=":not(."+o.specificityMatchingName+")",a=":not("+o.specificityMatchingName+")";return{postcssPlugin:"css-has-pseudo",prepare(){const t=new WeakSet;return{RuleExit:(c,{result:i})=>{if(t.has(c))return;if(!c.selector.toLowerCase().includes(":has(")||isWithinSupportCheck(c))return;const l=c.selectors.map((t=>{if(!t.toLowerCase().includes(":has("))return t;let l;try{l=e().astSync(t)}catch(e){return c.warn(i,`Failed to parse selector : "${t}" with message: "${e.message}"`),t}if(void 0===l)return t;l.walkPseudos((t=>{let s=t.parent,r=!1;for(;s;)e.isPseudoClass(s)&&":has"===s.value.toLowerCase()&&(r=!0),s=s.parent;r&&(":visited"===t.value.toLowerCase()&&t.replaceWith(e.className({value:o.specificityMatchingName})),":any-link"===t.value.toLowerCase()&&(t.value=":link"))})),l.walkPseudos((t=>{if(":has"!==t.value.toLowerCase()||!t.nodes)return;let o=t.parent??t;if(o!==t){let t=o.nodes.length;e:for(let s=0;s=0;e--)if("combinator"!==o.nodes[s].type&&"comment"!==o.nodes[s].type){t=e+1;break e}}if(t{delete e.parent,s.append(e)}));const r=e.selector({value:"",nodes:[]});o.nodes.slice(t).forEach((e=>{delete e.parent,r.append(e)}));const n=e.selector({value:"",nodes:[]});n.append(s),n.append(r),o.replaceWith(n),o=s}}const c="["+encodeCSS(o.toString())+"]",i=s(o);let l=c;for(let e=0;e=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + }, + "./browser": { + "import": "./dist/browser.mjs", + "require": "./dist/browser.cjs", + "default": "./dist/browser.mjs" + }, + "./browser-global": { + "default": "./dist/browser-global.js" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "dependencies": { + "@csstools/selector-specificity": "^3.0.0", + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*", + "@mrhenry/core-web": "^1.1.1", + "puppeteer": "^20.7.4" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./src/encode/test.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:browser": "node ./test/_browser.mjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/css-has-pseudo#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/css-has-pseudo" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "contains", + "css", + "descendant", + "has", + "javascript", + "js", + "polyfill", + "postcss", + "postcss-plugin", + "pseudo", + "selector" + ], + "csstools": { + "cssdbId": "has-pseudo-class", + "exportName": "postcssHasPseudo", + "humanReadableName": "PostCSS Has Pseudo", + "specUrl": "https://www.w3.org/TR/selectors-4/#has-pseudo" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/css-prefers-color-scheme/CHANGELOG.md b/node_modules/css-prefers-color-scheme/CHANGELOG.md new file mode 100644 index 00000000..d27db488 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/CHANGELOG.md @@ -0,0 +1,184 @@ +# Changes to Prefers Color Scheme + +### 9.0.0 + +_July 3, 2023_ + +- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/)) + +### 8.0.2 + +_February 6, 2023_ + +- Reduce the amount of duplicate fallback CSS. + +### 8.0.1 + +_January 28, 2023_ + +- Improve `types` declaration in `package.json` + +### 8.0.0 + +_January 24, 2023_ + +- Updated: Support for Node v14+ (major). + +### 7.0.1 + +_August 23, 2022_ + +- Fix: assign global browser polyfill to `window`, `self` or a blank object. + +### 7.0.0 + +_July 8, 2022_ + +[Read the full changelog](https://github.com/csstools/postcss-plugins/wiki/PostCSS-Preset-Env-8) + +- Breaking: removed old CDN urls +- Breaking: remove `color-depth` queries fallback +- Breaking: remove 'no-preference' support as this was dropped from the spec +- Breaking: remove old global object +- Fix: case insensitive matching. + +#### How to migrate : + +##### Re-build your CSS with the new version of the library. + +##### If you use a CDN url, please update it. + +```diff +- ++ +``` + +```diff +- ++ +``` + +##### Use `prefersColorSchemeInit` to initialize the polyfill in the browser. + +```diff +- initPrefersColorScheme() ++ prefersColorSchemeInit() +``` + +##### Remove `@media (prefer-color-scheme: no-preference)` from your CSS. + +`@media (prefers-color-scheme: no-preference)` was removed from the specification and should be equivalent to not having any media query. + +```diff +- @media (prefers-color-scheme: no-preference) { +- .some-selector { +- /* your styles ... */ +- } +- } ++ .some-selector { ++ /* your styles ... */ ++ } +``` + +### 6.0.3 + +_January 31, 2022_ + +- Fix `preserve: false` option. + +### 6.0.2 + +_January 2, 2022_ + +- Removed Sourcemaps from package tarball. +- Moved CLI to CLI Package. See [announcement](https://github.com/csstools/postcss-plugins/discussions/121). + +### 6.0.1 + +_December 27, 2021_ + +- Fixed: require/import paths for browser script + +### 6.0.0 + +_December 13, 2021_ + +- Breaking: require/import paths have changed +- Changed: new polyfill CDN urls. +- Updated: documentation +- Fixed: `CSSRuleList` edits skipping rules as this is a live list. +- Fixed: complex `@media` queries not working. + +**Migrating to 6.0.0** + +PostCSS plugin : + +```diff +- const postcssPrefersColorScheme = require('css-prefers-color-scheme/postcss'); ++ const postcssPrefersColorScheme = require('css-prefers-color-scheme'); +``` + +Browser Polyfill : + +```diff +- const prefersColorScheme = require('css-prefers-color-scheme')(); ++ const prefersColorScheme = require('css-prefers-color-scheme/browser')(); +``` + +_The old CND url is now deprecated and will be removed in a next major release._ +_It will continue to work for now._ + +```diff +- ++ +``` + +### 5.0.0 + +_September 17, 2021_ + +- Updated: Support for PostCS 8+ (major). +- Updated: Support for Node 12+ (major). + +### 4.0.0 + +_May 24, 2019_ + +- Updated: `postcss` to 7.0.16 (patch) +- Updated: Node 8+ compatibility (major) + +### 3.1.1 + +_November 10, 2018_ + +- Updated: Project organization. No functional changes. + +### 3.1.0 + +_November 10, 2018_ + +- Include CLI tool for transforming CSS without any installation +- Update documentation + +### 3.0.0 + +_November 4, 2018_ + +- Preserve `prefers-color-scheme` queries by default for non-JS environments +- Remove `prefers-color-scheme` queries on the frontend for JS environments + +### 2.0.0 + +_November 3, 2018_ + +- The client library now returns an object with various features, including: + - `scheme` to get or set the preferred color scheme + - `hasNativeSupport` to report whether `prefers-color-scheme` is supported + - `onChange` to listen for when the preferred color scheme changes + - `removeListener` to destroy the native `prefers-color-scheme` listener + +### 1.0.0 + +_September 24, 2018_ + +- Initial version diff --git a/node_modules/css-prefers-color-scheme/LICENSE.md b/node_modules/css-prefers-color-scheme/LICENSE.md new file mode 100644 index 00000000..e8ae93b9 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/LICENSE.md @@ -0,0 +1,18 @@ +MIT No Attribution (MIT-0) + +Copyright © CSSTools Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/css-prefers-color-scheme/README.md b/node_modules/css-prefers-color-scheme/README.md new file mode 100644 index 00000000..84a58e63 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/README.md @@ -0,0 +1,348 @@ +# Prefers Color Scheme [PostCSS Logo][PostCSS] + +[npm version][npm-url] [CSS Standard Status][css-url] [Build Status][cli-url] [Discord][discord] + +[Prefers Color Scheme] lets you use light and dark color schemes in all browsers, following the [Media Queries] specification. + +To use this feature you need to do two things : +- add the [PostCSS plugin](#usage) that transforms the media queries +- add the [browser polyfill](#browser) that triggers specific queries in a browser + +```pcss +@media (prefers-color-scheme: dark) { + :root { + --site-bgcolor: #1b1b1b; + --site-color: #fff; + } +} + +@media (prefers-color-scheme: light) { + :root { + --site-bgcolor: #fff; + --site-color: #222; + } +} + +/* becomes */ + +@media (color: 48842621) { + :root { + --site-bgcolor: #1b1b1b; + --site-color: #fff; + } +} + +@media (prefers-color-scheme: dark) { + :root { + --site-bgcolor: #1b1b1b; + --site-color: #fff; + } +} + +@media (color: 70318723) { + :root { + --site-bgcolor: #fff; + --site-color: #222; + } +} + +@media (prefers-color-scheme: light) { + :root { + --site-bgcolor: #fff; + --site-color: #222; + } +} +``` + +## Usage + +Add [Prefers Color Scheme] to your project: + +```bash +npm install postcss css-prefers-color-scheme --save-dev +``` + +Use it as a [PostCSS] plugin: + +```js +const postcss = require('postcss'); +const prefersColorScheme = require('css-prefers-color-scheme'); + +postcss([ + prefersColorScheme(/* pluginOptions */) +]).process(YOUR_CSS /*, processOptions */); +``` + +[Prefers Color Scheme] runs in all Node environments, with special +instructions for: + +- [Node](INSTALL.md#node) +- [PostCSS CLI](INSTALL.md#postcss-cli) +- [PostCSS Load Config](INSTALL.md#postcss-load-config) +- [Webpack](INSTALL.md#webpack) +- [Next.js](INSTALL.md#nextjs) +- [Gulp](INSTALL.md#gulp) +- [Grunt](INSTALL.md#grunt) + +## Options + +### preserve + +The `preserve` option determines whether the original notation +is preserved. By default, it is preserved. + +```js +prefersColorScheme({ preserve: false }) +``` + +```pcss +@media (prefers-color-scheme: dark) { + :root { + --site-bgcolor: #1b1b1b; + --site-color: #fff; + } +} + +@media (prefers-color-scheme: light) { + :root { + --site-bgcolor: #fff; + --site-color: #222; + } +} + +/* becomes */ + +@media (color: 48842621) { + :root { + --site-bgcolor: #1b1b1b; + --site-color: #fff; + } +} + +@media (color: 70318723) { + :root { + --site-bgcolor: #fff; + --site-color: #222; + } +} +``` + +## Browser + +```js +// initialize prefersColorScheme (applies the current OS color scheme, if available) +import prefersColorSchemeInit from 'css-prefers-color-scheme/browser'; +const prefersColorScheme = prefersColorSchemeInit(); + +// apply "dark" queries (you can also apply "light") +prefersColorScheme.scheme = 'dark'; +``` + +or + +```html + + + +``` + +⚠️ Please use a versioned url, like this : `https://unpkg.com/css-prefers-color-scheme@9.0.0/dist/browser-global.js` +Without the version, you might unexpectedly get a new major version of the library with breaking changes. + +[Prefers Color Scheme] works in all major browsers, including Safari 6+ and +Internet Explorer 9+ without any additional polyfills. + +To maintain compatibility with browsers supporting `prefers-color-scheme`, the +library will remove `prefers-color-scheme` media queries in favor of +cross-browser compatible `color` media queries. This ensures a seamless +experience, even when JavaScript is unable to run. + +### Browser Usage + +Use [Prefers Color Scheme] to activate your `prefers-color-scheme` queries: + +```js +import prefersColorSchemeInit from 'css-prefers-color-scheme/browser'; +const prefersColorScheme = prefersColorSchemeInit(); +``` + +By default, the current OS color scheme is applied if your browser supports it. +Otherwise, the light color scheme is applied. You may override this by passing +in a color scheme. + +```js +import prefersColorSchemeInit from 'css-prefers-color-scheme/browser'; +const prefersColorScheme = prefersColorSchemeInit('dark'); +``` + +The `prefersColorScheme` object returns the following properties — `scheme`, +`hasNativeSupport`, `onChange`, and `removeListener`. + +#### scheme + +The `scheme` property returns the currently preferred color scheme, and it can +be changed. + +```js +import prefersColorSchemeInit from 'css-prefers-color-scheme/browser'; +const prefersColorScheme = prefersColorSchemeInit(); + +// log the preferred color scheme +console.log(prefersColorScheme.scheme); + +// apply "dark" queries +prefersColorScheme.scheme = 'dark'; +``` + +#### hasNativeSupport + +The `hasNativeSupport` boolean represents whether `prefers-color-scheme` is +supported by the browser. + +#### onChange + +The optional `onChange` function is run when the preferred color scheme is +changed, either from the OS or manually. + +#### removeListener + +The `removeListener` function removes the native `prefers-color-scheme` +listener, which may or may not be applied, depending on your browser support. +This is provided to give you complete control over plugin cleanup. + +#### debug + +If styles are not applied you can enable debug mode to log exceptions. + +```js +import prefersColorSchemeInit from 'css-prefers-color-scheme/browser'; +const prefersColorScheme = prefersColorSchemeInit('light', { debug: true }); +``` + +```html + + +``` + + +### Browser Dependencies + +Web API's: + +- [Window.matchMedia](https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia) + +ECMA Script: + +- `Object.defineProperty` +- `Array.prototype.forEach` +- `Array.prototype.indexOf` +- `RegExp.prototype.exec` +- `String.prototype.match` +- `String.prototype.replace` + +## CORS + +⚠️ Applies to you if you load CSS from a different domain than the page. + +In this case the CSS is treated as untrusted and will not be made available to the JavaScript polyfill. +The polyfill will not work without applying the correct configuration for CORS. + +Example : + +| page | css | CORS applies | +| --- | --- | --- | +| https://example.com/ | https://example.com/style.css | no | +| https://example.com/ | https://other.com/style.css | yes | + + +**You might see one of these error messages :** + +Chrome : + +> DOMException: Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules + +Safari : + +> SecurityError: Not allowed to access cross-origin stylesheet + +Firefox : + +> DOMException: CSSStyleSheet.cssRules getter: Not allowed to access cross-origin stylesheet + +To resolve CORS errors you need to take two steps : + +- add an HTTP header `Access-Control-Allow-Origin: ` when serving your CSS file. +- add `crossorigin="anonymous"` to the `` tag for your CSS file. + +In a node server setting the HTTP header might look like this : + +```js +// http://localhost:8080 is the domain of your page! +res.setHeader('Access-Control-Allow-Origin', 'https://example.com'); +``` + +You can also configure a wildcard but please be aware that this might be a security risk. +It is better to only set the header for the domain you want to allow and only on the responses you want to allow. + +HTML might look like this : + +```html + +``` + + +### Using with Next.js + +Given that Next.js imports packages both on the browser and on the server, you need to make sure that the package is only imported on the browser. + +As outlined in the [Next.js documentation](https://nextjs.org/docs/advanced-features/dynamic-import#with-external-libraries), you need to load the package with a dynamic import: + +```jsx +useEffect(async () => { + const prefersColorSchemeInit = (await import('css-prefers-color-scheme/browser')).default; + const prefersColorScheme = prefersColorSchemeInit(); +}, []); +``` + +## How does it work? + +[Prefers Color Scheme] is a [PostCSS] plugin that transforms `prefers-color-scheme` queries into `color` queries. +This changes `prefers-color-scheme: dark` into `(color: 48842621)` and `prefers-color-scheme: light` into `(color: 70318723)`. + +The frontend receives these `color` queries, which are understood in all +major browsers going back to Internet Explorer 9. +However, since browsers can only have a reasonably small number of bits per color, +our color scheme values are ignored. + +[Prefers Color Scheme] uses a [browser script](#browser) to change +`(color: 48842621)` queries into `(max-color: 48842621)` in order to +activate “dark mode” specific CSS, and it changes `(color: 70318723)` queries +into `(max-color: 48842621)` to activate “light mode” specific CSS. + +```css +@media (color: 70318723) { /* prefers-color-scheme: light */ + body { + background-color: white; + color: black; + } +} +``` + +Since these media queries are accessible to `document.styleSheet`, no CSS +parsing is required. + +### Why does the fallback work this way? + +The value of `48` is chosen for dark mode because it is the keycode for `0`, +the hexidecimal value of black. Likewise, `70` is chosen for light mode because +it is the keycode for `f`, the hexidecimal value of white. +These are suffixed with a random large number. + +[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test +[css-url]: https://cssdb.org/#prefers-color-scheme-query +[discord]: https://discord.gg/bUadyRwkJS +[npm-url]: https://www.npmjs.com/package/css-prefers-color-scheme + +[PostCSS]: https://github.com/postcss/postcss +[Prefers Color Scheme]: https://github.com/csstools/postcss-plugins/tree/main/plugins/css-prefers-color-scheme +[Media Queries]: https://www.w3.org/TR/mediaqueries-5/#prefers-color-scheme diff --git a/node_modules/css-prefers-color-scheme/dist/browser-global.js b/node_modules/css-prefers-color-scheme/dist/browser-global.js new file mode 100644 index 00000000..066b0aa3 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/dist/browser-global.js @@ -0,0 +1,2 @@ +!function(){var e=/prefers-color-scheme:/i,t=function prefersColorSchemeInit(t,a){a||(a={}),a={debug:!!a.debug||!1};var r="(prefers-color-scheme: dark)",i="matchMedia"in window&&window.matchMedia(r),o=i&&i.media===r,c=function mediaQueryListener(){n(i&&i.matches?"dark":"light")},n=function set(t){"dark"!==t&&"light"!==t&&(t=o&&i.matches?"dark":"light"),t!==l&&(l=t,"function"==typeof d.onChange&&d.onChange()),[].forEach.call(document.styleSheets||[],(function(r){try{var i=[];[].forEach.call(r.cssRules||[],(function(e){i.push(e)})),i.forEach((function(a){if(e.test(Object(a.media).mediaText)){var r=[].indexOf.call(a.parentStyleSheet.cssRules,a);a.parentStyleSheet.deleteRule(r)}else{var i=(Object(a.media).mediaText||"").match(/\( *(?:color|max-color): *(48842621|70318723) *\)/i);i&&i.length>1&&("dark"===t&&"48842621"===i[1]?a.media.mediaText=a.media.mediaText.replace(/\( *color: *(?:48842621) *\)/i,"(max-color: "+i[1]+")"):"light"===t&&"70318723"===i[1]?a.media.mediaText=a.media.mediaText.replace(/\( *color: *(?:70318723) *\)/i,"(max-color: "+i[1]+")"):a.media.mediaText=a.media.mediaText.replace(/\( *max-color: *(?:48842621|70318723) *\)/i,"(color: "+i[1]+")"))}}))}catch(o){a.debug&&console.error(o)}}))},d=Object.defineProperty({hasNativeSupport:o,removeListener:function removeListener(){i&&i.removeListener(c)}},"scheme",{get:function get(){return l},set:n}),l=t||(i&&i.matches?"dark":"light");return n(l),i&&("addEventListener"in i?i.addEventListener("change",c):i.addListener(c)),d};("object"==typeof window&&window||"object"==typeof self&&self||{}).prefersColorSchemeInit=t}(); +//# sourceMappingURL=browser-global.js.map diff --git a/node_modules/css-prefers-color-scheme/dist/browser-global.js.map b/node_modules/css-prefers-color-scheme/dist/browser-global.js.map new file mode 100644 index 00000000..a721c268 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/dist/browser-global.js.map @@ -0,0 +1 @@ +{"version":3,"file":"browser-global.js","sources":["../src/browser.js","../src/browser-global.js"],"sourcesContent":["/* global document,window */\nconst prefersColorSchemeRegExp = /prefers-color-scheme:/i;\n\nconst prefersColorSchemeInit = (initialColorScheme, options) => {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\tdebug: (!!options.debug) || false,\n\t\t};\n\t}\n\n\tconst mediaQueryString = '(prefers-color-scheme: dark)';\n\tconst mediaQueryList = ('matchMedia' in window) && window.matchMedia(mediaQueryString);\n\tconst hasNativeSupport = mediaQueryList && mediaQueryList.media === mediaQueryString;\n\tconst mediaQueryListener = () => {\n\t\tset((mediaQueryList && mediaQueryList.matches) ? 'dark' : 'light');\n\t};\n\tconst removeListener = () => {\n\t\tif (mediaQueryList) {\n\t\t\tmediaQueryList.removeListener(mediaQueryListener);\n\t\t}\n\t};\n\tconst set = (colorScheme) => {\n\t\tif (colorScheme !== 'dark' && colorScheme !== 'light') {\n\t\t\tif (hasNativeSupport) {\n\t\t\t\tcolorScheme = mediaQueryList.matches ? 'dark' : 'light';\n\t\t\t} else {\n\t\t\t\tcolorScheme = 'light';\n\t\t\t}\n\t\t}\n\n\t\tif (colorScheme !== currentColorScheme) {\n\t\t\tcurrentColorScheme = colorScheme;\n\n\t\t\tif (typeof result.onChange === 'function') {\n\t\t\t\tresult.onChange();\n\t\t\t}\n\t\t}\n\n\t\t[].forEach.call(document.styleSheets || [], styleSheet => {\n\t\t\ttry {\n\t\t\t\t// cssRules is a live list. Converting to an Array first.\n\t\t\t\tconst rules = [];\n\t\t\t\t[].forEach.call(styleSheet.cssRules || [], cssRule => {\n\t\t\t\t\trules.push(cssRule);\n\t\t\t\t});\n\n\t\t\t\trules.forEach(cssRule => {\n\t\t\t\t\tconst colorSchemeMatch = prefersColorSchemeRegExp.test(Object(cssRule.media).mediaText);\n\n\t\t\t\t\tif (colorSchemeMatch) {\n\t\t\t\t\t\tconst index = [].indexOf.call(cssRule.parentStyleSheet.cssRules, cssRule);\n\t\t\t\t\t\tcssRule.parentStyleSheet.deleteRule(index);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// New style which supports complex media queries.\n\t\t\t\t\t\tconst colorDepthMatch = (Object(cssRule.media).mediaText || '').match(/\\( *(?:color|max-color): *(48842621|70318723) *\\)/i);\n\t\t\t\t\t\tif (colorDepthMatch && colorDepthMatch.length > 1) {\n\t\t\t\t\t\t\tif (colorScheme === 'dark' && (colorDepthMatch[1] === '48842621')) {\n\t\t\t\t\t\t\t\t// preferred is dark and rule is dark.\n\t\t\t\t\t\t\t\tcssRule.media.mediaText = cssRule.media.mediaText.replace(/\\( *color: *(?:48842621) *\\)/i, `(max-color: ${colorDepthMatch[1]})`);\n\t\t\t\t\t\t\t} else if (colorScheme === 'light' && (colorDepthMatch[1] === '70318723')) {\n\t\t\t\t\t\t\t\t// preferred is light and rule is light.\n\t\t\t\t\t\t\t\tcssRule.media.mediaText = cssRule.media.mediaText.replace(/\\( *color: *(?:70318723) *\\)/i, `(max-color: ${colorDepthMatch[1]})`);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcssRule.media.mediaText = cssRule.media.mediaText.replace(/\\( *max-color: *(?:48842621|70318723) *\\)/i, `(color: ${colorDepthMatch[1]})`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\tconst result = Object.defineProperty(\n\t\t{ hasNativeSupport, removeListener },\n\t\t'scheme',\n\t\t{ get: () => currentColorScheme, set },\n\t);\n\n\t// initialize the color scheme using the provided value, the system value, or light\n\tlet currentColorScheme = initialColorScheme || (mediaQueryList && mediaQueryList.matches ? 'dark' : 'light');\n\n\tset(currentColorScheme);\n\n\t// listen for system changes\n\tif (mediaQueryList) {\n\t\tif ('addEventListener' in mediaQueryList) {\n\t\t\tmediaQueryList.addEventListener('change', mediaQueryListener);\n\t\t} else {\n\t\t\tmediaQueryList.addListener(mediaQueryListener);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nexport default prefersColorSchemeInit;\n","/* global self,window */\nimport { default as prefersColorSchemeInit } from './browser';\n\n(function (global) {\n\tglobal.prefersColorSchemeInit = prefersColorSchemeInit;\n}('object' === typeof window && window || 'object' === typeof self && self || {}));\n"],"names":["prefersColorSchemeRegExp","prefersColorSchemeInit","initialColorScheme","options","debug","mediaQueryString","mediaQueryList","window","matchMedia","hasNativeSupport","media","mediaQueryListener","set","matches","colorScheme","currentColorScheme","result","onChange","forEach","call","document","styleSheets","styleSheet","rules","cssRules","cssRule","push","test","Object","mediaText","index","indexOf","parentStyleSheet","deleteRule","colorDepthMatch","match","length","replace","e","console","error","defineProperty","removeListener","get","addEventListener","addListener","self"],"mappings":"YACA,IAAMA,EAA2B,yBAE3BC,EAAyB,SAAzBA,uBAA0BC,EAAoBC,GAG7CA,IACJA,EAAU,CAAA,GAGXA,EAAU,CACTC,QAAUD,EAAQC,QAAU,GAI9B,IAAMC,EAAmB,+BACnBC,EAAkB,eAAgBC,QAAWA,OAAOC,WAAWH,GAC/DI,EAAmBH,GAAkBA,EAAeI,QAAUL,EAC9DM,EAAqB,SAArBA,qBACLC,EAAKN,GAAkBA,EAAeO,QAAW,OAAS,UAOrDD,EAAM,SAANA,IAAOE,GACQ,SAAhBA,GAA0C,UAAhBA,IAE5BA,EADGL,GACWH,EAAeO,QAAU,OAEzB,SAIZC,IAAgBC,IACnBA,EAAqBD,EAEU,mBAApBE,EAAOC,UACjBD,EAAOC,YAIT,GAAGC,QAAQC,KAAKC,SAASC,aAAe,IAAI,SAAAC,GAC3C,IAEC,IAAMC,EAAQ,GACd,GAAGL,QAAQC,KAAKG,EAAWE,UAAY,IAAI,SAAAC,GAC1CF,EAAMG,KAAKD,EACZ,IAEAF,EAAML,SAAQ,SAAAO,GAGb,GAFyBzB,EAAyB2B,KAAKC,OAAOH,EAAQf,OAAOmB,WAEvD,CACrB,IAAMC,EAAQ,GAAGC,QAAQZ,KAAKM,EAAQO,iBAAiBR,SAAUC,GACjEA,EAAQO,iBAAiBC,WAAWH,EACrC,KAAO,CAEN,IAAMI,GAAmBN,OAAOH,EAAQf,OAAOmB,WAAa,IAAIM,MAAM,sDAClED,GAAmBA,EAAgBE,OAAS,IAC3B,SAAhBtB,GAAkD,aAAvBoB,EAAgB,GAE9CT,EAAQf,MAAMmB,UAAYJ,EAAQf,MAAMmB,UAAUQ,QAAQ,gCAAgDH,eAAAA,EAAgB,QAChG,UAAhBpB,GAAmD,aAAvBoB,EAAgB,GAEtDT,EAAQf,MAAMmB,UAAYJ,EAAQf,MAAMmB,UAAUQ,QAAQ,gCAAgDH,eAAAA,EAAgB,QAE1HT,EAAQf,MAAMmB,UAAYJ,EAAQf,MAAMmB,UAAUQ,QAAQ,6CAAyDH,WAAAA,EAAgB,QAGtI,CACD,GACA,CAAC,MAAOI,GACJnC,EAAQC,OACXmC,QAAQC,MAAMF,EAEhB,CACD,KAEKtB,EAASY,OAAOa,eACrB,CAAEhC,iBAAAA,EAAkBiC,eA5DE,SAAjBA,iBACDpC,GACHA,EAAeoC,eAAe/B,KA2D/B,SACA,CAAEgC,IAAK,SAAAA,MAAA,OAAM5B,CAAkB,EAAEH,IAAAA,IAI9BG,EAAqBb,IAAuBI,GAAkBA,EAAeO,QAAU,OAAS,SAapG,OAXAD,EAAIG,GAGAT,IACC,qBAAsBA,EACzBA,EAAesC,iBAAiB,SAAUjC,GAE1CL,EAAeuC,YAAYlC,IAItBK,CACR,GChGE,iBAAoBT,QAAUA,QAAU,iBAAoBuC,MAAQA,MAAQ,IADtE7C,uBAAyBA"} \ No newline at end of file diff --git a/node_modules/css-prefers-color-scheme/dist/browser.cjs b/node_modules/css-prefers-color-scheme/dist/browser.cjs new file mode 100644 index 00000000..66576356 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/dist/browser.cjs @@ -0,0 +1,2 @@ +var e=/prefers-color-scheme:/i;module.exports=function prefersColorSchemeInit(t,a){a||(a={}),a={debug:!!a.debug||!1};var r="(prefers-color-scheme: dark)",i="matchMedia"in window&&window.matchMedia(r),o=i&&i.media===r,c=function mediaQueryListener(){n(i&&i.matches?"dark":"light")},n=function set(t){"dark"!==t&&"light"!==t&&(t=o&&i.matches?"dark":"light"),t!==m&&(m=t,"function"==typeof d.onChange&&d.onChange()),[].forEach.call(document.styleSheets||[],(function(r){try{var i=[];[].forEach.call(r.cssRules||[],(function(e){i.push(e)})),i.forEach((function(a){if(e.test(Object(a.media).mediaText)){var r=[].indexOf.call(a.parentStyleSheet.cssRules,a);a.parentStyleSheet.deleteRule(r)}else{var i=(Object(a.media).mediaText||"").match(/\( *(?:color|max-color): *(48842621|70318723) *\)/i);i&&i.length>1&&("dark"===t&&"48842621"===i[1]?a.media.mediaText=a.media.mediaText.replace(/\( *color: *(?:48842621) *\)/i,"(max-color: "+i[1]+")"):"light"===t&&"70318723"===i[1]?a.media.mediaText=a.media.mediaText.replace(/\( *color: *(?:70318723) *\)/i,"(max-color: "+i[1]+")"):a.media.mediaText=a.media.mediaText.replace(/\( *max-color: *(?:48842621|70318723) *\)/i,"(color: "+i[1]+")"))}}))}catch(o){a.debug&&console.error(o)}}))},d=Object.defineProperty({hasNativeSupport:o,removeListener:function removeListener(){i&&i.removeListener(c)}},"scheme",{get:function get(){return m},set:n}),m=t||(i&&i.matches?"dark":"light");return n(m),i&&("addEventListener"in i?i.addEventListener("change",c):i.addListener(c)),d}; +//# sourceMappingURL=browser.cjs.map diff --git a/node_modules/css-prefers-color-scheme/dist/browser.cjs.map b/node_modules/css-prefers-color-scheme/dist/browser.cjs.map new file mode 100644 index 00000000..1ae1f745 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/dist/browser.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.cjs","sources":["../src/browser.js"],"sourcesContent":["/* global document,window */\nconst prefersColorSchemeRegExp = /prefers-color-scheme:/i;\n\nconst prefersColorSchemeInit = (initialColorScheme, options) => {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\tdebug: (!!options.debug) || false,\n\t\t};\n\t}\n\n\tconst mediaQueryString = '(prefers-color-scheme: dark)';\n\tconst mediaQueryList = ('matchMedia' in window) && window.matchMedia(mediaQueryString);\n\tconst hasNativeSupport = mediaQueryList && mediaQueryList.media === mediaQueryString;\n\tconst mediaQueryListener = () => {\n\t\tset((mediaQueryList && mediaQueryList.matches) ? 'dark' : 'light');\n\t};\n\tconst removeListener = () => {\n\t\tif (mediaQueryList) {\n\t\t\tmediaQueryList.removeListener(mediaQueryListener);\n\t\t}\n\t};\n\tconst set = (colorScheme) => {\n\t\tif (colorScheme !== 'dark' && colorScheme !== 'light') {\n\t\t\tif (hasNativeSupport) {\n\t\t\t\tcolorScheme = mediaQueryList.matches ? 'dark' : 'light';\n\t\t\t} else {\n\t\t\t\tcolorScheme = 'light';\n\t\t\t}\n\t\t}\n\n\t\tif (colorScheme !== currentColorScheme) {\n\t\t\tcurrentColorScheme = colorScheme;\n\n\t\t\tif (typeof result.onChange === 'function') {\n\t\t\t\tresult.onChange();\n\t\t\t}\n\t\t}\n\n\t\t[].forEach.call(document.styleSheets || [], styleSheet => {\n\t\t\ttry {\n\t\t\t\t// cssRules is a live list. Converting to an Array first.\n\t\t\t\tconst rules = [];\n\t\t\t\t[].forEach.call(styleSheet.cssRules || [], cssRule => {\n\t\t\t\t\trules.push(cssRule);\n\t\t\t\t});\n\n\t\t\t\trules.forEach(cssRule => {\n\t\t\t\t\tconst colorSchemeMatch = prefersColorSchemeRegExp.test(Object(cssRule.media).mediaText);\n\n\t\t\t\t\tif (colorSchemeMatch) {\n\t\t\t\t\t\tconst index = [].indexOf.call(cssRule.parentStyleSheet.cssRules, cssRule);\n\t\t\t\t\t\tcssRule.parentStyleSheet.deleteRule(index);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// New style which supports complex media queries.\n\t\t\t\t\t\tconst colorDepthMatch = (Object(cssRule.media).mediaText || '').match(/\\( *(?:color|max-color): *(48842621|70318723) *\\)/i);\n\t\t\t\t\t\tif (colorDepthMatch && colorDepthMatch.length > 1) {\n\t\t\t\t\t\t\tif (colorScheme === 'dark' && (colorDepthMatch[1] === '48842621')) {\n\t\t\t\t\t\t\t\t// preferred is dark and rule is dark.\n\t\t\t\t\t\t\t\tcssRule.media.mediaText = cssRule.media.mediaText.replace(/\\( *color: *(?:48842621) *\\)/i, `(max-color: ${colorDepthMatch[1]})`);\n\t\t\t\t\t\t\t} else if (colorScheme === 'light' && (colorDepthMatch[1] === '70318723')) {\n\t\t\t\t\t\t\t\t// preferred is light and rule is light.\n\t\t\t\t\t\t\t\tcssRule.media.mediaText = cssRule.media.mediaText.replace(/\\( *color: *(?:70318723) *\\)/i, `(max-color: ${colorDepthMatch[1]})`);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcssRule.media.mediaText = cssRule.media.mediaText.replace(/\\( *max-color: *(?:48842621|70318723) *\\)/i, `(color: ${colorDepthMatch[1]})`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\tconst result = Object.defineProperty(\n\t\t{ hasNativeSupport, removeListener },\n\t\t'scheme',\n\t\t{ get: () => currentColorScheme, set },\n\t);\n\n\t// initialize the color scheme using the provided value, the system value, or light\n\tlet currentColorScheme = initialColorScheme || (mediaQueryList && mediaQueryList.matches ? 'dark' : 'light');\n\n\tset(currentColorScheme);\n\n\t// listen for system changes\n\tif (mediaQueryList) {\n\t\tif ('addEventListener' in mediaQueryList) {\n\t\t\tmediaQueryList.addEventListener('change', mediaQueryListener);\n\t\t} else {\n\t\t\tmediaQueryList.addListener(mediaQueryListener);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nexport default prefersColorSchemeInit;\n"],"names":["prefersColorSchemeRegExp","prefersColorSchemeInit","initialColorScheme","options","debug","mediaQueryString","mediaQueryList","window","matchMedia","hasNativeSupport","media","mediaQueryListener","set","matches","colorScheme","currentColorScheme","result","onChange","forEach","call","document","styleSheets","styleSheet","rules","cssRules","cssRule","push","test","Object","mediaText","index","indexOf","parentStyleSheet","deleteRule","colorDepthMatch","match","length","replace","e","console","error","defineProperty","removeListener","get","addEventListener","addListener"],"mappings":"AACA,IAAMA,EAA2B,wCAEF,SAAzBC,uBAA0BC,EAAoBC,GAG7CA,IACJA,EAAU,CAAA,GAGXA,EAAU,CACTC,QAAUD,EAAQC,QAAU,GAI9B,IAAMC,EAAmB,+BACnBC,EAAkB,eAAgBC,QAAWA,OAAOC,WAAWH,GAC/DI,EAAmBH,GAAkBA,EAAeI,QAAUL,EAC9DM,EAAqB,SAArBA,qBACLC,EAAKN,GAAkBA,EAAeO,QAAW,OAAS,UAOrDD,EAAM,SAANA,IAAOE,GACQ,SAAhBA,GAA0C,UAAhBA,IAE5BA,EADGL,GACWH,EAAeO,QAAU,OAEzB,SAIZC,IAAgBC,IACnBA,EAAqBD,EAEU,mBAApBE,EAAOC,UACjBD,EAAOC,YAIT,GAAGC,QAAQC,KAAKC,SAASC,aAAe,IAAI,SAAAC,GAC3C,IAEC,IAAMC,EAAQ,GACd,GAAGL,QAAQC,KAAKG,EAAWE,UAAY,IAAI,SAAAC,GAC1CF,EAAMG,KAAKD,EACZ,IAEAF,EAAML,SAAQ,SAAAO,GAGb,GAFyBzB,EAAyB2B,KAAKC,OAAOH,EAAQf,OAAOmB,WAEvD,CACrB,IAAMC,EAAQ,GAAGC,QAAQZ,KAAKM,EAAQO,iBAAiBR,SAAUC,GACjEA,EAAQO,iBAAiBC,WAAWH,EACrC,KAAO,CAEN,IAAMI,GAAmBN,OAAOH,EAAQf,OAAOmB,WAAa,IAAIM,MAAM,sDAClED,GAAmBA,EAAgBE,OAAS,IAC3B,SAAhBtB,GAAkD,aAAvBoB,EAAgB,GAE9CT,EAAQf,MAAMmB,UAAYJ,EAAQf,MAAMmB,UAAUQ,QAAQ,gCAAgDH,eAAAA,EAAgB,QAChG,UAAhBpB,GAAmD,aAAvBoB,EAAgB,GAEtDT,EAAQf,MAAMmB,UAAYJ,EAAQf,MAAMmB,UAAUQ,QAAQ,gCAAgDH,eAAAA,EAAgB,QAE1HT,EAAQf,MAAMmB,UAAYJ,EAAQf,MAAMmB,UAAUQ,QAAQ,6CAAyDH,WAAAA,EAAgB,QAGtI,CACD,GACA,CAAC,MAAOI,GACJnC,EAAQC,OACXmC,QAAQC,MAAMF,EAEhB,CACD,KAEKtB,EAASY,OAAOa,eACrB,CAAEhC,iBAAAA,EAAkBiC,eA5DE,SAAjBA,iBACDpC,GACHA,EAAeoC,eAAe/B,KA2D/B,SACA,CAAEgC,IAAK,SAAAA,MAAA,OAAM5B,CAAkB,EAAEH,IAAAA,IAI9BG,EAAqBb,IAAuBI,GAAkBA,EAAeO,QAAU,OAAS,SAapG,OAXAD,EAAIG,GAGAT,IACC,qBAAsBA,EACzBA,EAAesC,iBAAiB,SAAUjC,GAE1CL,EAAeuC,YAAYlC,IAItBK,CACR"} \ No newline at end of file diff --git a/node_modules/css-prefers-color-scheme/dist/browser.mjs b/node_modules/css-prefers-color-scheme/dist/browser.mjs new file mode 100644 index 00000000..ba92faf5 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/dist/browser.mjs @@ -0,0 +1,2 @@ +var e=/prefers-color-scheme:/i,t=function prefersColorSchemeInit(t,a){a||(a={}),a={debug:!!a.debug||!1};var r="(prefers-color-scheme: dark)",i="matchMedia"in window&&window.matchMedia(r),o=i&&i.media===r,c=function mediaQueryListener(){n(i&&i.matches?"dark":"light")},n=function set(t){"dark"!==t&&"light"!==t&&(t=o&&i.matches?"dark":"light"),t!==l&&(l=t,"function"==typeof d.onChange&&d.onChange()),[].forEach.call(document.styleSheets||[],(function(r){try{var i=[];[].forEach.call(r.cssRules||[],(function(e){i.push(e)})),i.forEach((function(a){if(e.test(Object(a.media).mediaText)){var r=[].indexOf.call(a.parentStyleSheet.cssRules,a);a.parentStyleSheet.deleteRule(r)}else{var i=(Object(a.media).mediaText||"").match(/\( *(?:color|max-color): *(48842621|70318723) *\)/i);i&&i.length>1&&("dark"===t&&"48842621"===i[1]?a.media.mediaText=a.media.mediaText.replace(/\( *color: *(?:48842621) *\)/i,"(max-color: "+i[1]+")"):"light"===t&&"70318723"===i[1]?a.media.mediaText=a.media.mediaText.replace(/\( *color: *(?:70318723) *\)/i,"(max-color: "+i[1]+")"):a.media.mediaText=a.media.mediaText.replace(/\( *max-color: *(?:48842621|70318723) *\)/i,"(color: "+i[1]+")"))}}))}catch(o){a.debug&&console.error(o)}}))},d=Object.defineProperty({hasNativeSupport:o,removeListener:function removeListener(){i&&i.removeListener(c)}},"scheme",{get:function get(){return l},set:n}),l=t||(i&&i.matches?"dark":"light");return n(l),i&&("addEventListener"in i?i.addEventListener("change",c):i.addListener(c)),d};export{t as default}; +//# sourceMappingURL=browser.mjs.map diff --git a/node_modules/css-prefers-color-scheme/dist/browser.mjs.map b/node_modules/css-prefers-color-scheme/dist/browser.mjs.map new file mode 100644 index 00000000..46aef252 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/dist/browser.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"browser.mjs","sources":["../src/browser.js"],"sourcesContent":["/* global document,window */\nconst prefersColorSchemeRegExp = /prefers-color-scheme:/i;\n\nconst prefersColorSchemeInit = (initialColorScheme, options) => {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\tdebug: (!!options.debug) || false,\n\t\t};\n\t}\n\n\tconst mediaQueryString = '(prefers-color-scheme: dark)';\n\tconst mediaQueryList = ('matchMedia' in window) && window.matchMedia(mediaQueryString);\n\tconst hasNativeSupport = mediaQueryList && mediaQueryList.media === mediaQueryString;\n\tconst mediaQueryListener = () => {\n\t\tset((mediaQueryList && mediaQueryList.matches) ? 'dark' : 'light');\n\t};\n\tconst removeListener = () => {\n\t\tif (mediaQueryList) {\n\t\t\tmediaQueryList.removeListener(mediaQueryListener);\n\t\t}\n\t};\n\tconst set = (colorScheme) => {\n\t\tif (colorScheme !== 'dark' && colorScheme !== 'light') {\n\t\t\tif (hasNativeSupport) {\n\t\t\t\tcolorScheme = mediaQueryList.matches ? 'dark' : 'light';\n\t\t\t} else {\n\t\t\t\tcolorScheme = 'light';\n\t\t\t}\n\t\t}\n\n\t\tif (colorScheme !== currentColorScheme) {\n\t\t\tcurrentColorScheme = colorScheme;\n\n\t\t\tif (typeof result.onChange === 'function') {\n\t\t\t\tresult.onChange();\n\t\t\t}\n\t\t}\n\n\t\t[].forEach.call(document.styleSheets || [], styleSheet => {\n\t\t\ttry {\n\t\t\t\t// cssRules is a live list. Converting to an Array first.\n\t\t\t\tconst rules = [];\n\t\t\t\t[].forEach.call(styleSheet.cssRules || [], cssRule => {\n\t\t\t\t\trules.push(cssRule);\n\t\t\t\t});\n\n\t\t\t\trules.forEach(cssRule => {\n\t\t\t\t\tconst colorSchemeMatch = prefersColorSchemeRegExp.test(Object(cssRule.media).mediaText);\n\n\t\t\t\t\tif (colorSchemeMatch) {\n\t\t\t\t\t\tconst index = [].indexOf.call(cssRule.parentStyleSheet.cssRules, cssRule);\n\t\t\t\t\t\tcssRule.parentStyleSheet.deleteRule(index);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// New style which supports complex media queries.\n\t\t\t\t\t\tconst colorDepthMatch = (Object(cssRule.media).mediaText || '').match(/\\( *(?:color|max-color): *(48842621|70318723) *\\)/i);\n\t\t\t\t\t\tif (colorDepthMatch && colorDepthMatch.length > 1) {\n\t\t\t\t\t\t\tif (colorScheme === 'dark' && (colorDepthMatch[1] === '48842621')) {\n\t\t\t\t\t\t\t\t// preferred is dark and rule is dark.\n\t\t\t\t\t\t\t\tcssRule.media.mediaText = cssRule.media.mediaText.replace(/\\( *color: *(?:48842621) *\\)/i, `(max-color: ${colorDepthMatch[1]})`);\n\t\t\t\t\t\t\t} else if (colorScheme === 'light' && (colorDepthMatch[1] === '70318723')) {\n\t\t\t\t\t\t\t\t// preferred is light and rule is light.\n\t\t\t\t\t\t\t\tcssRule.media.mediaText = cssRule.media.mediaText.replace(/\\( *color: *(?:70318723) *\\)/i, `(max-color: ${colorDepthMatch[1]})`);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcssRule.media.mediaText = cssRule.media.mediaText.replace(/\\( *max-color: *(?:48842621|70318723) *\\)/i, `(color: ${colorDepthMatch[1]})`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\tconst result = Object.defineProperty(\n\t\t{ hasNativeSupport, removeListener },\n\t\t'scheme',\n\t\t{ get: () => currentColorScheme, set },\n\t);\n\n\t// initialize the color scheme using the provided value, the system value, or light\n\tlet currentColorScheme = initialColorScheme || (mediaQueryList && mediaQueryList.matches ? 'dark' : 'light');\n\n\tset(currentColorScheme);\n\n\t// listen for system changes\n\tif (mediaQueryList) {\n\t\tif ('addEventListener' in mediaQueryList) {\n\t\t\tmediaQueryList.addEventListener('change', mediaQueryListener);\n\t\t} else {\n\t\t\tmediaQueryList.addListener(mediaQueryListener);\n\t\t}\n\t}\n\n\treturn result;\n};\n\nexport default prefersColorSchemeInit;\n"],"names":["prefersColorSchemeRegExp","prefersColorSchemeInit","initialColorScheme","options","debug","mediaQueryString","mediaQueryList","window","matchMedia","hasNativeSupport","media","mediaQueryListener","set","matches","colorScheme","currentColorScheme","result","onChange","forEach","call","document","styleSheets","styleSheet","rules","cssRules","cssRule","push","test","Object","mediaText","index","indexOf","parentStyleSheet","deleteRule","colorDepthMatch","match","length","replace","e","console","error","defineProperty","removeListener","get","addEventListener","addListener"],"mappings":"AACA,IAAMA,EAA2B,yBAE3BC,EAAyB,SAAzBA,uBAA0BC,EAAoBC,GAG7CA,IACJA,EAAU,CAAA,GAGXA,EAAU,CACTC,QAAUD,EAAQC,QAAU,GAI9B,IAAMC,EAAmB,+BACnBC,EAAkB,eAAgBC,QAAWA,OAAOC,WAAWH,GAC/DI,EAAmBH,GAAkBA,EAAeI,QAAUL,EAC9DM,EAAqB,SAArBA,qBACLC,EAAKN,GAAkBA,EAAeO,QAAW,OAAS,UAOrDD,EAAM,SAANA,IAAOE,GACQ,SAAhBA,GAA0C,UAAhBA,IAE5BA,EADGL,GACWH,EAAeO,QAAU,OAEzB,SAIZC,IAAgBC,IACnBA,EAAqBD,EAEU,mBAApBE,EAAOC,UACjBD,EAAOC,YAIT,GAAGC,QAAQC,KAAKC,SAASC,aAAe,IAAI,SAAAC,GAC3C,IAEC,IAAMC,EAAQ,GACd,GAAGL,QAAQC,KAAKG,EAAWE,UAAY,IAAI,SAAAC,GAC1CF,EAAMG,KAAKD,EACZ,IAEAF,EAAML,SAAQ,SAAAO,GAGb,GAFyBzB,EAAyB2B,KAAKC,OAAOH,EAAQf,OAAOmB,WAEvD,CACrB,IAAMC,EAAQ,GAAGC,QAAQZ,KAAKM,EAAQO,iBAAiBR,SAAUC,GACjEA,EAAQO,iBAAiBC,WAAWH,EACrC,KAAO,CAEN,IAAMI,GAAmBN,OAAOH,EAAQf,OAAOmB,WAAa,IAAIM,MAAM,sDAClED,GAAmBA,EAAgBE,OAAS,IAC3B,SAAhBtB,GAAkD,aAAvBoB,EAAgB,GAE9CT,EAAQf,MAAMmB,UAAYJ,EAAQf,MAAMmB,UAAUQ,QAAQ,gCAAgDH,eAAAA,EAAgB,QAChG,UAAhBpB,GAAmD,aAAvBoB,EAAgB,GAEtDT,EAAQf,MAAMmB,UAAYJ,EAAQf,MAAMmB,UAAUQ,QAAQ,gCAAgDH,eAAAA,EAAgB,QAE1HT,EAAQf,MAAMmB,UAAYJ,EAAQf,MAAMmB,UAAUQ,QAAQ,6CAAyDH,WAAAA,EAAgB,QAGtI,CACD,GACA,CAAC,MAAOI,GACJnC,EAAQC,OACXmC,QAAQC,MAAMF,EAEhB,CACD,KAEKtB,EAASY,OAAOa,eACrB,CAAEhC,iBAAAA,EAAkBiC,eA5DE,SAAjBA,iBACDpC,GACHA,EAAeoC,eAAe/B,KA2D/B,SACA,CAAEgC,IAAK,SAAAA,MAAA,OAAM5B,CAAkB,EAAEH,IAAAA,IAI9BG,EAAqBb,IAAuBI,GAAkBA,EAAeO,QAAU,OAAS,SAapG,OAXAD,EAAIG,GAGAT,IACC,qBAAsBA,EACzBA,EAAesC,iBAAiB,SAAUjC,GAE1CL,EAAeuC,YAAYlC,IAItBK,CACR"} \ No newline at end of file diff --git a/node_modules/css-prefers-color-scheme/dist/index.cjs b/node_modules/css-prefers-color-scheme/dist/index.cjs new file mode 100644 index 00000000..ac52d7d9 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/dist/index.cjs @@ -0,0 +1 @@ +"use strict";const e=/\(\s*prefers-color-scheme\s*:\s*(dark|light)\s*\)/gi,r="(color: 48842621)",s="(color: 70318723)",creator=o=>{const t=Object.assign({preserve:!0},o);return{postcssPlugin:"postcss-prefers-color-scheme",prepare(){const o=new WeakSet;return{AtRule:a=>{if(o.has(a))return;if("media"!==a.name.toLowerCase())return;const{params:c}=a,n=c.replace(e,((e,o)=>"dark"===o.toLowerCase()?r:"light"===o.toLowerCase()?s:e));c!==n&&(o.add(a),a.cloneBefore({params:n}),t.preserve||a.remove())}}}}};creator.postcss=!0,module.exports=creator; diff --git a/node_modules/css-prefers-color-scheme/dist/index.d.ts b/node_modules/css-prefers-color-scheme/dist/index.d.ts new file mode 100644 index 00000000..e7060b75 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/dist/index.d.ts @@ -0,0 +1,8 @@ +import type { PluginCreator } from 'postcss'; +/** postcss-prefers-color-scheme plugin options */ +export type pluginOptions = { + /** Preserve the original notation. default: true */ + preserve?: boolean; +}; +declare const creator: PluginCreator; +export default creator; diff --git a/node_modules/css-prefers-color-scheme/dist/index.mjs b/node_modules/css-prefers-color-scheme/dist/index.mjs new file mode 100644 index 00000000..520672ee --- /dev/null +++ b/node_modules/css-prefers-color-scheme/dist/index.mjs @@ -0,0 +1 @@ +const e=/\(\s*prefers-color-scheme\s*:\s*(dark|light)\s*\)/gi,r="(color: 48842621)",s="(color: 70318723)",creator=o=>{const t=Object.assign({preserve:!0},o);return{postcssPlugin:"postcss-prefers-color-scheme",prepare(){const o=new WeakSet;return{AtRule:a=>{if(o.has(a))return;if("media"!==a.name.toLowerCase())return;const{params:c}=a,n=c.replace(e,((e,o)=>"dark"===o.toLowerCase()?r:"light"===o.toLowerCase()?s:e));c!==n&&(o.add(a),a.cloneBefore({params:n}),t.preserve||a.remove())}}}}};creator.postcss=!0;export{creator as default}; diff --git a/node_modules/css-prefers-color-scheme/package.json b/node_modules/css-prefers-color-scheme/package.json new file mode 100644 index 00000000..34a73ea3 --- /dev/null +++ b/node_modules/css-prefers-color-scheme/package.json @@ -0,0 +1,107 @@ +{ + "name": "css-prefers-color-scheme", + "description": "Use light and dark color schemes in all browsers", + "version": "9.0.0", + "contributors": [ + { + "name": "Antonio Laguna", + "email": "antonio@laguna.es", + "url": "https://antonio.laguna.es" + }, + { + "name": "Romain Menke", + "email": "romainmenke@gmail.com" + }, + { + "name": "Jonathan Neal", + "email": "jonathantneal@hotmail.com" + } + ], + "license": "MIT-0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": "^14 || ^16 || >=18" + }, + "main": "dist/index.cjs", + "module": "dist/index.mjs", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.cjs", + "default": "./dist/index.mjs" + }, + "./browser": { + "import": "./dist/browser.mjs", + "require": "./dist/browser.cjs", + "default": "./dist/browser.mjs" + }, + "./browser-global": { + "default": "./dist/browser-global.js" + } + }, + "files": [ + "CHANGELOG.md", + "LICENSE.md", + "README.md", + "dist" + ], + "peerDependencies": { + "postcss": "^8.4" + }, + "devDependencies": { + "@csstools/postcss-tape": "*", + "puppeteer": "^20.7.4" + }, + "scripts": { + "build": "rollup -c ../../rollup/default.mjs", + "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs", + "lint": "node ../../.github/bin/format-package-json.mjs", + "prepublishOnly": "npm run build && npm run test", + "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs", + "test:browser": "node ./test/_browser.mjs", + "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs" + }, + "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/css-prefers-color-scheme#readme", + "repository": { + "type": "git", + "url": "https://github.com/csstools/postcss-plugins.git", + "directory": "plugins/css-prefers-color-scheme" + }, + "bugs": "https://github.com/csstools/postcss-plugins/issues", + "keywords": [ + "color", + "css", + "dark", + "interface", + "light", + "media", + "mode", + "no-preference", + "postcss", + "postcss-plugin", + "prefers", + "queries", + "query", + "scheme" + ], + "csstools": { + "cssdbId": "prefers-color-scheme-query", + "exportName": "prefersColorScheme", + "humanReadableName": "Prefers Color Scheme", + "specUrl": "https://www.w3.org/TR/mediaqueries-5/#prefers-color-scheme" + }, + "volta": { + "extends": "../../package.json" + } +} diff --git a/node_modules/css-select/LICENSE b/node_modules/css-select/LICENSE new file mode 100644 index 00000000..c464f863 --- /dev/null +++ b/node_modules/css-select/LICENSE @@ -0,0 +1,11 @@ +Copyright (c) Felix Böhm +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/css-select/README.md b/node_modules/css-select/README.md new file mode 100644 index 00000000..2cde38c8 --- /dev/null +++ b/node_modules/css-select/README.md @@ -0,0 +1,264 @@ +# css-select [![NPM version](http://img.shields.io/npm/v/css-select.svg)](https://npmjs.org/package/css-select) [![Build Status](https://travis-ci.com/fb55/css-select.svg?branch=master)](http://travis-ci.com/fb55/css-select) [![Downloads](https://img.shields.io/npm/dm/css-select.svg)](https://npmjs.org/package/css-select) [![Coverage](https://coveralls.io/repos/fb55/css-select/badge.svg?branch=master)](https://coveralls.io/r/fb55/css-select) + +A CSS selector compiler and engine + +## What? + +As a **compiler**, css-select turns CSS selectors into functions that tests if +elements match them. + +As an **engine**, css-select looks through a DOM tree, searching for elements. +Elements are tested "from the top", similar to how browsers execute CSS +selectors. + +In its default configuration, css-select queries the DOM structure of the +[`domhandler`](https://github.com/fb55/domhandler) module (also known as +htmlparser2 DOM). To query alternative DOM structures, see [`Options`](#options) +below. + +**Features:** + +- 🔬 Full implementation of CSS3 selectors, as well as most CSS4 selectors +- 🧪 Partial implementation of jQuery/Sizzle extensions (see + [cheerio-select](https://github.com/cheeriojs/cheerio-select) for the + remaining selectors) +- 🧑‍🔬 High test coverage, including the full test suites from + [`Sizzle`](https://github.com/jquery/sizzle), + [`Qwery`](https://github.com/ded/qwery) and + [`NWMatcher`](https://github.com/dperini/nwmatcher/) and . +- 🥼 Reliably great performance + +## Why? + +Most CSS engines written in JavaScript execute selectors left-to-right. That +means thet execute every component of the selector in order, from left to right. +As an example: For the selector `a b`, these engines will first query for `a` +elements, then search these for `b` elements. (That's the approach of eg. +[`Sizzle`](https://github.com/jquery/sizzle), +[`Qwery`](https://github.com/ded/qwery) and +[`NWMatcher`](https://github.com/dperini/nwmatcher/).) + +While this works, it has some downsides: Children of `a`s will be checked +multiple times; first, to check if they are also `a`s, then, for every superior +`a` once, if they are `b`s. Using +[Big O notation](http://en.wikipedia.org/wiki/Big_O_notation), that would be +`O(n^(k+1))`, where `k` is the number of descendant selectors (that's the space +in the example above). + +The far more efficient approach is to first look for `b` elements, then check if +they have superior `a` elements: Using big O notation again, that would be +`O(n)`. That's called right-to-left execution. + +And that's what css-select does – and why it's quite performant. + +## How does it work? + +By building a stack of functions. + +_Wait, what?_ + +Okay, so let's suppose we want to compile the selector `a b`, for right-to-left +execution. We start by _parsing_ the selector. This turns the selector into an +array of the building blocks. That's what the +[`css-what`](https://github.com/fb55/css-what) module is for, if you want to +have a look. + +Anyway, after parsing, we end up with an array like this one: + +```js +[ + { type: "tag", name: "a" }, + { type: "descendant" }, + { type: "tag", name: "b" }, +]; +``` + +(Actually, this array is wrapped in another array, but that's another story, +involving commas in selectors.) + +Now that we know the meaning of every part of the selector, we can compile it. +That is where things become interesting. + +The basic idea is to turn every part of the selector into a function, which +takes an element as its only argument. The function checks whether a passed +element matches its part of the selector: If it does, the element is passed to +the next function representing the next part of the selector. That function does +the same. If an element is accepted by all parts of the selector, it _matches_ +the selector and double rainbow ALL THE WAY. + +As said before, we want to do right-to-left execution with all the big O +improvements. That means elements are passed from the rightmost part of the +selector (`b` in our example) to the leftmost (~~which would be `c`~~ of course +`a`). + +For traversals, such as the _descendant_ operating the space between `a` and +`b`, we walk up the DOM tree, starting from the element passed as argument. + +_//TODO: More in-depth description. Implementation details. Build a spaceship._ + +## API + +```js +const CSSselect = require("css-select"); +``` + +**Note:** css-select throws errors when invalid selectors are passed to it. This +is done to aid with writing css selectors, but can be unexpected when processing +arbitrary strings. + +#### `CSSselect.selectAll(query, elems, options)` + +Queries `elems`, returns an array containing all matches. + +- `query` can be either a CSS selector or a function. +- `elems` can be either an array of elements, or a single element. If it is an + element, its children will be queried. +- `options` is described below. + +Aliases: `default` export, `CSSselect.iterate(query, elems)`. + +#### `CSSselect.compile(query, options)` + +Compiles the query, returns a function. + +#### `CSSselect.is(elem, query, options)` + +Tests whether or not an element is matched by `query`. `query` can be either a +CSS selector or a function. + +#### `CSSselect.selectOne(query, elems, options)` + +Arguments are the same as for `CSSselect.selectAll(query, elems)`. Only returns +the first match, or `null` if there was no match. + +### Options + +All options are optional. + +- `xmlMode`: When enabled, tag names will be case-sensitive. Default: `false`. +- `rootFunc`: The last function in the stack, will be called with the last + element that's looked at. +- `adapter`: The adapter to use when interacting with the backing DOM + structure. By default it uses the `domutils` module. +- `context`: The context of the current query. Used to limit the scope of + searches. Can be matched directly using the `:scope` pseudo-class. +- `relativeSelector`: By default, selectors are relative to the `context`, + which means that no parent elements of the context will be matched. (Eg. + `a b c` with context `b` will never give any results.) If `relativeSelector` + is set to `false`, selectors won't be + [absolutized](http://www.w3.org/TR/selectors4/#absolutizing) and selectors + can test for parent elements outside of the `context`. +- `cacheResults`: Allow css-select to cache results for some selectors, + sometimes greatly improving querying performance. Disable this if your + document can change in between queries with the same compiled selector. + Default: `true`. +- `pseudos`: A map of pseudo-class names to functions or strings. + +#### Custom Adapters + +A custom adapter must match the interface described +[here](https://github.com/fb55/css-select/blob/1aa44bdd64aaf2ebdfd7f338e2e76bed36521957/src/types.ts#L6-L96). + +You may want to have a look at [`domutils`](https://github.com/fb55/domutils) to +see the default implementation, or at +[`css-select-browser-adapter`](https://github.com/nrkn/css-select-browser-adapter/blob/master/index.js) +for an implementation backed by the DOM. + +## Supported selectors + +_As defined by CSS 4 and / or jQuery._ + +- [Selector lists](https://developer.mozilla.org/en-US/docs/Web/CSS/Selector_list) + (`,`) +- [Universal](https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors) + (`*`) +- [Type](https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors) + (``) +- [Descendant](https://developer.mozilla.org/en-US/docs/Web/CSS/Descendant_combinator) + (` `) +- [Child](https://developer.mozilla.org/en-US/docs/Web/CSS/Child_combinator) + (`>`) +- Parent (`<`) +- [Adjacent sibling](https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_combinator) + (`+`) +- [General sibling](https://developer.mozilla.org/en-US/docs/Web/CSS/General_sibling_combinator) + (`~`) +- [Attribute](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors) + (`[attr=foo]`), with supported comparisons: + - `[attr]` (existential) + - `=` + - `~=` + - `|=` + - `*=` + - `^=` + - `$=` + - `!=` + - `i` and `s` can be added after the comparison to make the comparison + case-insensitive or case-sensitive (eg. `[attr=foo i]`). If neither is + supplied, css-select will follow the HTML spec's + [case-sensitivity rules](https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors). +- Pseudos: + - [`:not`](https://developer.mozilla.org/en-US/docs/Web/CSS/:not) + - [`:contains`](https://api.jquery.com/contains-selector) + - `:icontains` (case-insensitive version of `:contains`) + - [`:has`](https://developer.mozilla.org/en-US/docs/Web/CSS/:has) + - [`:root`](https://developer.mozilla.org/en-US/docs/Web/CSS/:root) + - [`:empty`](https://developer.mozilla.org/en-US/docs/Web/CSS/:empty) + - [`:parent`](https://api.jquery.com/parent-selector) + - [`:first-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:first-child), + [`:last-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:last-child), + [`:first-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:first-of-type), + [`:last-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:last-of-type) + - [`:only-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:only-of-type), + [`:only-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:only-child) + - [`:nth-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child), + [`:nth-last-child`](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-child), + [`:nth-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-of-type), + [`:nth-last-of-type`](https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-last-of-type), + - [`:link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:link), + [`:any-link`](https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link) + - [`:visited`](https://developer.mozilla.org/en-US/docs/Web/CSS/:visited), + [`:hover`](https://developer.mozilla.org/en-US/docs/Web/CSS/:hover), + [`:active`](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) + (these depend on optional `Adapter` methods, so these will only match + elements if implemented in `Adapter`) + - [`:selected`](https://api.jquery.com/selected-selector), + [`:checked`](https://developer.mozilla.org/en-US/docs/Web/CSS/:checked) + - [`:enabled`](https://developer.mozilla.org/en-US/docs/Web/CSS/:enabled), + [`:disabled`](https://developer.mozilla.org/en-US/docs/Web/CSS/:disabled) + - [`:required`](https://developer.mozilla.org/en-US/docs/Web/CSS/:required), + [`:optional`](https://developer.mozilla.org/en-US/docs/Web/CSS/:optional) + - [`:header`](https://api.jquery.com/header-selector), + [`:button`](https://api.jquery.com/button-selector), + [`:input`](https://api.jquery.com/input-selector), + [`:text`](https://api.jquery.com/text-selector), + [`:checkbox`](https://api.jquery.com/checkbox-selector), + [`:file`](https://api.jquery.com/file-selector), + [`:password`](https://api.jquery.com/password-selector), + [`:reset`](https://api.jquery.com/reset-selector), + [`:radio`](https://api.jquery.com/radio-selector) etc. + - [`:is`](https://developer.mozilla.org/en-US/docs/Web/CSS/:is), plus its + legacy alias `:matches` + - [`:scope`](https://developer.mozilla.org/en-US/docs/Web/CSS/:scope) + (uses the context from the passed options) + +--- + +License: BSD-2-Clause + +## Security contact information + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). Tidelift will +coordinate the fix and disclosure. + +## `css-select` for enterprise + +Available as part of the Tidelift Subscription + +The maintainers of `css-select` and thousands of other packages are working with +Tidelift to deliver commercial support and maintenance for the open source +dependencies you use to build your applications. Save time, reduce risk, and +improve code health, while paying the maintainers of the exact dependencies you +use. +[Learn more.](https://tidelift.com/subscription/pkg/npm-css-select?utm_source=npm-css-select&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/node_modules/css-select/lib/attributes.d.ts b/node_modules/css-select/lib/attributes.d.ts new file mode 100644 index 00000000..27b60a58 --- /dev/null +++ b/node_modules/css-select/lib/attributes.d.ts @@ -0,0 +1,7 @@ +import type { CompiledQuery, InternalOptions } from "./types.js"; +import type { AttributeSelector, AttributeAction } from "css-what"; +/** + * Attribute selectors + */ +export declare const attributeRules: Record(next: CompiledQuery, data: AttributeSelector, options: InternalOptions) => CompiledQuery>; +//# sourceMappingURL=attributes.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/attributes.d.ts.map b/node_modules/css-select/lib/attributes.d.ts.map new file mode 100644 index 00000000..aafba154 --- /dev/null +++ b/node_modules/css-select/lib/attributes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"attributes.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["attributes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA+EnE;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAC/B,eAAe,EACf,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAC3B,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,KAC1C,aAAa,CAAC,WAAW,CAAC,CAsLlC,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/attributes.js b/node_modules/css-select/lib/attributes.js new file mode 100644 index 00000000..3c6867f6 --- /dev/null +++ b/node_modules/css-select/lib/attributes.js @@ -0,0 +1,236 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.attributeRules = void 0; +var boolbase_1 = __importDefault(require("boolbase")); +/** + * All reserved characters in a regex, used for escaping. + * + * Taken from XRegExp, (c) 2007-2020 Steven Levithan under the MIT license + * https://github.com/slevithan/xregexp/blob/95eeebeb8fac8754d54eafe2b4743661ac1cf028/src/xregexp.js#L794 + */ +var reChars = /[-[\]{}()*+?.,\\^$|#\s]/g; +function escapeRegex(value) { + return value.replace(reChars, "\\$&"); +} +/** + * Attributes that are case-insensitive in HTML. + * + * @private + * @see https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors + */ +var caseInsensitiveAttributes = new Set([ + "accept", + "accept-charset", + "align", + "alink", + "axis", + "bgcolor", + "charset", + "checked", + "clear", + "codetype", + "color", + "compact", + "declare", + "defer", + "dir", + "direction", + "disabled", + "enctype", + "face", + "frame", + "hreflang", + "http-equiv", + "lang", + "language", + "link", + "media", + "method", + "multiple", + "nohref", + "noresize", + "noshade", + "nowrap", + "readonly", + "rel", + "rev", + "rules", + "scope", + "scrolling", + "selected", + "shape", + "target", + "text", + "type", + "valign", + "valuetype", + "vlink", +]); +function shouldIgnoreCase(selector, options) { + return typeof selector.ignoreCase === "boolean" + ? selector.ignoreCase + : selector.ignoreCase === "quirks" + ? !!options.quirksMode + : !options.xmlMode && caseInsensitiveAttributes.has(selector.name); +} +/** + * Attribute selectors + */ +exports.attributeRules = { + equals: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function (elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length === value.length && + attr.toLowerCase() === value && + next(elem)); + }; + } + return function (elem) { + return adapter.getAttributeValue(elem, name) === value && next(elem); + }; + }, + hyphen: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + var len = value.length; + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function hyphenIC(elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + (attr.length === len || attr.charAt(len) === "-") && + attr.substr(0, len).toLowerCase() === value && + next(elem)); + }; + } + return function hyphen(elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + (attr.length === len || attr.charAt(len) === "-") && + attr.substr(0, len) === value && + next(elem)); + }; + }, + element: function (next, data, options) { + var adapter = options.adapter; + var name = data.name, value = data.value; + if (/\s/.test(value)) { + return boolbase_1.default.falseFunc; + } + var regex = new RegExp("(?:^|\\s)".concat(escapeRegex(value), "(?:$|\\s)"), shouldIgnoreCase(data, options) ? "i" : ""); + return function element(elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length >= value.length && + regex.test(attr) && + next(elem)); + }; + }, + exists: function (next, _a, _b) { + var name = _a.name; + var adapter = _b.adapter; + return function (elem) { return adapter.hasAttrib(elem, name) && next(elem); }; + }, + start: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + var len = value.length; + if (len === 0) { + return boolbase_1.default.falseFunc; + } + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function (elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length >= len && + attr.substr(0, len).toLowerCase() === value && + next(elem)); + }; + } + return function (elem) { + var _a; + return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) && + next(elem); + }; + }, + end: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + var len = -value.length; + if (len === 0) { + return boolbase_1.default.falseFunc; + } + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function (elem) { + var _a; + return ((_a = adapter + .getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem); + }; + } + return function (elem) { + var _a; + return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) && + next(elem); + }; + }, + any: function (next, data, options) { + var adapter = options.adapter; + var name = data.name, value = data.value; + if (value === "") { + return boolbase_1.default.falseFunc; + } + if (shouldIgnoreCase(data, options)) { + var regex_1 = new RegExp(escapeRegex(value), "i"); + return function anyIC(elem) { + var attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length >= value.length && + regex_1.test(attr) && + next(elem)); + }; + } + return function (elem) { + var _a; + return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) && + next(elem); + }; + }, + not: function (next, data, options) { + var adapter = options.adapter; + var name = data.name; + var value = data.value; + if (value === "") { + return function (elem) { + return !!adapter.getAttributeValue(elem, name) && next(elem); + }; + } + else if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function (elem) { + var attr = adapter.getAttributeValue(elem, name); + return ((attr == null || + attr.length !== value.length || + attr.toLowerCase() !== value) && + next(elem)); + }; + } + return function (elem) { + return adapter.getAttributeValue(elem, name) !== value && next(elem); + }; + }, +}; +//# sourceMappingURL=attributes.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/attributes.js.map b/node_modules/css-select/lib/attributes.js.map new file mode 100644 index 00000000..e542c973 --- /dev/null +++ b/node_modules/css-select/lib/attributes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"attributes.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["attributes.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/compile.d.ts b/node_modules/css-select/lib/compile.d.ts new file mode 100644 index 00000000..f67b508a --- /dev/null +++ b/node_modules/css-select/lib/compile.d.ts @@ -0,0 +1,13 @@ +import { Selector } from "css-what"; +import type { CompiledQuery, InternalOptions, InternalSelector } from "./types.js"; +/** + * Compiles a selector to an executable function. + * + * @param selector Selector to compile. + * @param options Compilation options. + * @param context Optional context for the selector. + */ +export declare function compile(selector: string | Selector[][], options: InternalOptions, context?: Node[] | Node): CompiledQuery; +export declare function compileUnsafe(selector: string | Selector[][], options: InternalOptions, context?: Node[] | Node): CompiledQuery; +export declare function compileToken(token: InternalSelector[][], options: InternalOptions, context?: Node[] | Node): CompiledQuery; +//# sourceMappingURL=compile.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/compile.d.ts.map b/node_modules/css-select/lib/compile.d.ts.map new file mode 100644 index 00000000..59231bc9 --- /dev/null +++ b/node_modules/css-select/lib/compile.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"compile.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAgB,MAAM,UAAU,CAAC;AAQzD,OAAO,KAAK,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAClD,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,EAAE,EAC/B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,GACxB,aAAa,CAAC,IAAI,CAAC,CAGrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACxD,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,EAAE,EAC/B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,GACxB,aAAa,CAAC,WAAW,CAAC,CAG5B;AAqDD,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACvD,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAC3B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,GACxB,aAAa,CAAC,WAAW,CAAC,CAsD5B"} \ No newline at end of file diff --git a/node_modules/css-select/lib/compile.js b/node_modules/css-select/lib/compile.js new file mode 100644 index 00000000..cf0507c1 --- /dev/null +++ b/node_modules/css-select/lib/compile.js @@ -0,0 +1,151 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.compileToken = exports.compileUnsafe = exports.compile = void 0; +var css_what_1 = require("css-what"); +var boolbase_1 = __importDefault(require("boolbase")); +var sort_js_1 = __importStar(require("./sort.js")); +var general_js_1 = require("./general.js"); +var subselects_js_1 = require("./pseudo-selectors/subselects.js"); +/** + * Compiles a selector to an executable function. + * + * @param selector Selector to compile. + * @param options Compilation options. + * @param context Optional context for the selector. + */ +function compile(selector, options, context) { + var next = compileUnsafe(selector, options, context); + return (0, subselects_js_1.ensureIsTag)(next, options.adapter); +} +exports.compile = compile; +function compileUnsafe(selector, options, context) { + var token = typeof selector === "string" ? (0, css_what_1.parse)(selector) : selector; + return compileToken(token, options, context); +} +exports.compileUnsafe = compileUnsafe; +function includesScopePseudo(t) { + return (t.type === css_what_1.SelectorType.Pseudo && + (t.name === "scope" || + (Array.isArray(t.data) && + t.data.some(function (data) { return data.some(includesScopePseudo); })))); +} +var DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant }; +var FLEXIBLE_DESCENDANT_TOKEN = { + type: "_flexibleDescendant", +}; +var SCOPE_TOKEN = { + type: css_what_1.SelectorType.Pseudo, + name: "scope", + data: null, +}; +/* + * CSS 4 Spec (Draft): 3.4.1. Absolutizing a Relative Selector + * http://www.w3.org/TR/selectors4/#absolutizing + */ +function absolutize(token, _a, context) { + var adapter = _a.adapter; + // TODO Use better check if the context is a document + var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function (e) { + var parent = adapter.isTag(e) && adapter.getParent(e); + return e === subselects_js_1.PLACEHOLDER_ELEMENT || (parent && adapter.isTag(parent)); + })); + for (var _i = 0, token_1 = token; _i < token_1.length; _i++) { + var t = token_1[_i]; + if (t.length > 0 && + (0, sort_js_1.isTraversal)(t[0]) && + t[0].type !== css_what_1.SelectorType.Descendant) { + // Don't continue in else branch + } + else if (hasContext && !t.some(includesScopePseudo)) { + t.unshift(DESCENDANT_TOKEN); + } + else { + continue; + } + t.unshift(SCOPE_TOKEN); + } +} +function compileToken(token, options, context) { + var _a; + token.forEach(sort_js_1.default); + context = (_a = options.context) !== null && _a !== void 0 ? _a : context; + var isArrayContext = Array.isArray(context); + var finalContext = context && (Array.isArray(context) ? context : [context]); + // Check if the selector is relative + if (options.relativeSelector !== false) { + absolutize(token, options, finalContext); + } + else if (token.some(function (t) { return t.length > 0 && (0, sort_js_1.isTraversal)(t[0]); })) { + throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled"); + } + var shouldTestNextSiblings = false; + var query = token + .map(function (rules) { + if (rules.length >= 2) { + var first = rules[0], second = rules[1]; + if (first.type !== css_what_1.SelectorType.Pseudo || + first.name !== "scope") { + // Ignore + } + else if (isArrayContext && + second.type === css_what_1.SelectorType.Descendant) { + rules[1] = FLEXIBLE_DESCENDANT_TOKEN; + } + else if (second.type === css_what_1.SelectorType.Adjacent || + second.type === css_what_1.SelectorType.Sibling) { + shouldTestNextSiblings = true; + } + } + return compileRules(rules, options, finalContext); + }) + .reduce(reduceRules, boolbase_1.default.falseFunc); + query.shouldTestNextSiblings = shouldTestNextSiblings; + return query; +} +exports.compileToken = compileToken; +function compileRules(rules, options, context) { + var _a; + return rules.reduce(function (previous, rule) { + return previous === boolbase_1.default.falseFunc + ? boolbase_1.default.falseFunc + : (0, general_js_1.compileGeneralSelector)(previous, rule, options, context, compileToken); + }, (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase_1.default.trueFunc); +} +function reduceRules(a, b) { + if (b === boolbase_1.default.falseFunc || a === boolbase_1.default.trueFunc) { + return a; + } + if (a === boolbase_1.default.falseFunc || b === boolbase_1.default.trueFunc) { + return b; + } + return function combine(elem) { + return a(elem) || b(elem); + }; +} +//# sourceMappingURL=compile.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/compile.js.map b/node_modules/css-select/lib/compile.js.map new file mode 100644 index 00000000..06342499 --- /dev/null +++ b/node_modules/css-select/lib/compile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"compile.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["compile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyD;AACzD,sDAAgC;AAChC,mDAAmD;AACnD,2CAAsD;AACtD,kEAG0C;AAO1C;;;;;;GAMG;AACH,SAAgB,OAAO,CACnB,QAA+B,EAC/B,OAA2C,EAC3C,OAAuB;IAEvB,IAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,IAAA,2BAAW,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAPD,0BAOC;AAED,SAAgB,aAAa,CACzB,QAA+B,EAC/B,OAA2C,EAC3C,OAAuB;IAEvB,IAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,OAAO,YAAY,CAAoB,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAPD,sCAOC;AAED,SAAS,mBAAmB,CAAC,CAAmB;IAC5C,OAAO,CACH,CAAC,CAAC,IAAI,KAAK,uBAAY,CAAC,MAAM;QAC9B,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO;YACf,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAA9B,CAA8B,CAAC,CAAC,CAAC,CAClE,CAAC;AACN,CAAC;AAED,IAAM,gBAAgB,GAAa,EAAE,IAAI,EAAE,uBAAY,CAAC,UAAU,EAAE,CAAC;AACrE,IAAM,yBAAyB,GAAqB;IAChD,IAAI,EAAE,qBAAqB;CAC9B,CAAC;AACF,IAAM,WAAW,GAAa;IAC1B,IAAI,EAAE,uBAAY,CAAC,MAAM;IACzB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,IAAI;CACb,CAAC;AAEF;;;GAGG;AACH,SAAS,UAAU,CACf,KAA2B,EAC3B,EAA+C,EAC/C,OAAgB;QADd,OAAO,aAAA;IAGT,qDAAqD;IACrD,IAAM,UAAU,GAAG,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,UAAC,CAAC;QAClC,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,mCAAmB,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAA,CAAC;IAEH,KAAgB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;QAAlB,IAAM,CAAC,cAAA;QACR,IACI,CAAC,CAAC,MAAM,GAAG,CAAC;YACZ,IAAA,qBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,uBAAY,CAAC,UAAU,EACvC;YACE,gCAAgC;SACnC;aAAM,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE;YACnD,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;SAC/B;aAAM;YACH,SAAS;SACZ;QAED,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KAC1B;AACL,CAAC;AAED,SAAgB,YAAY,CACxB,KAA2B,EAC3B,OAA2C,EAC3C,OAAuB;;IAEvB,KAAK,CAAC,OAAO,CAAC,iBAAS,CAAC,CAAC;IAEzB,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,OAAO,CAAC;IACrC,IAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,IAAM,YAAY,GACd,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9D,oCAAoC;IACpC,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,EAAE;QACpC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;KAC5C;SAAM,IAAI,KAAK,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,qBAAW,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAjC,CAAiC,CAAC,EAAE;QAC7D,MAAM,IAAI,KAAK,CACX,mFAAmF,CACtF,CAAC;KACL;IAED,IAAI,sBAAsB,GAAG,KAAK,CAAC;IAEnC,IAAM,KAAK,GAAG,KAAK;SACd,GAAG,CAAC,UAAC,KAAK;QACP,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YACZ,IAAA,KAAK,GAAY,KAAK,GAAjB,EAAE,MAAM,GAAI,KAAK,GAAT,CAAU;YAE9B,IACI,KAAK,CAAC,IAAI,KAAK,uBAAY,CAAC,MAAM;gBAClC,KAAK,CAAC,IAAI,KAAK,OAAO,EACxB;gBACE,SAAS;aACZ;iBAAM,IACH,cAAc;gBACd,MAAM,CAAC,IAAI,KAAK,uBAAY,CAAC,UAAU,EACzC;gBACE,KAAK,CAAC,CAAC,CAAC,GAAG,yBAAyB,CAAC;aACxC;iBAAM,IACH,MAAM,CAAC,IAAI,KAAK,uBAAY,CAAC,QAAQ;gBACrC,MAAM,CAAC,IAAI,KAAK,uBAAY,CAAC,OAAO,EACtC;gBACE,sBAAsB,GAAG,IAAI,CAAC;aACjC;SACJ;QAED,OAAO,YAAY,CACf,KAAK,EACL,OAAO,EACP,YAAY,CACf,CAAC;IACN,CAAC,CAAC;SACD,MAAM,CAAC,WAAW,EAAE,kBAAQ,CAAC,SAAS,CAAC,CAAC;IAE7C,KAAK,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IAEtD,OAAO,KAAK,CAAC;AACjB,CAAC;AA1DD,oCA0DC;AAED,SAAS,YAAY,CACjB,KAAyB,EACzB,OAA2C,EAC3C,OAAgB;;IAEhB,OAAO,KAAK,CAAC,MAAM,CACf,UAAC,QAAQ,EAAE,IAAI;QACX,OAAA,QAAQ,KAAK,kBAAQ,CAAC,SAAS;YAC3B,CAAC,CAAC,kBAAQ,CAAC,SAAS;YACpB,CAAC,CAAC,IAAA,mCAAsB,EAClB,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,OAAO,EACP,YAAY,CACf;IARP,CAQO,EACX,MAAA,OAAO,CAAC,QAAQ,mCAAI,kBAAQ,CAAC,QAAQ,CACxC,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAChB,CAA6B,EAC7B,CAA6B;IAE7B,IAAI,CAAC,KAAK,kBAAQ,CAAC,SAAS,IAAI,CAAC,KAAK,kBAAQ,CAAC,QAAQ,EAAE;QACrD,OAAO,CAAC,CAAC;KACZ;IACD,IAAI,CAAC,KAAK,kBAAQ,CAAC,SAAS,IAAI,CAAC,KAAK,kBAAQ,CAAC,QAAQ,EAAE;QACrD,OAAO,CAAC,CAAC;KACZ;IAED,OAAO,SAAS,OAAO,CAAC,IAAI;QACxB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;AACN,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/attributes.d.ts b/node_modules/css-select/lib/esm/attributes.d.ts new file mode 100644 index 00000000..27b60a58 --- /dev/null +++ b/node_modules/css-select/lib/esm/attributes.d.ts @@ -0,0 +1,7 @@ +import type { CompiledQuery, InternalOptions } from "./types.js"; +import type { AttributeSelector, AttributeAction } from "css-what"; +/** + * Attribute selectors + */ +export declare const attributeRules: Record(next: CompiledQuery, data: AttributeSelector, options: InternalOptions) => CompiledQuery>; +//# sourceMappingURL=attributes.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/attributes.d.ts.map b/node_modules/css-select/lib/esm/attributes.d.ts.map new file mode 100644 index 00000000..aafba154 --- /dev/null +++ b/node_modules/css-select/lib/esm/attributes.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"attributes.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["attributes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA+EnE;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAC/B,eAAe,EACf,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAC3B,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,KAC1C,aAAa,CAAC,WAAW,CAAC,CAsLlC,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/attributes.js b/node_modules/css-select/lib/esm/attributes.js new file mode 100644 index 00000000..199467ea --- /dev/null +++ b/node_modules/css-select/lib/esm/attributes.js @@ -0,0 +1,222 @@ +import boolbase from "boolbase"; +/** + * All reserved characters in a regex, used for escaping. + * + * Taken from XRegExp, (c) 2007-2020 Steven Levithan under the MIT license + * https://github.com/slevithan/xregexp/blob/95eeebeb8fac8754d54eafe2b4743661ac1cf028/src/xregexp.js#L794 + */ +const reChars = /[-[\]{}()*+?.,\\^$|#\s]/g; +function escapeRegex(value) { + return value.replace(reChars, "\\$&"); +} +/** + * Attributes that are case-insensitive in HTML. + * + * @private + * @see https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors + */ +const caseInsensitiveAttributes = new Set([ + "accept", + "accept-charset", + "align", + "alink", + "axis", + "bgcolor", + "charset", + "checked", + "clear", + "codetype", + "color", + "compact", + "declare", + "defer", + "dir", + "direction", + "disabled", + "enctype", + "face", + "frame", + "hreflang", + "http-equiv", + "lang", + "language", + "link", + "media", + "method", + "multiple", + "nohref", + "noresize", + "noshade", + "nowrap", + "readonly", + "rel", + "rev", + "rules", + "scope", + "scrolling", + "selected", + "shape", + "target", + "text", + "type", + "valign", + "valuetype", + "vlink", +]); +function shouldIgnoreCase(selector, options) { + return typeof selector.ignoreCase === "boolean" + ? selector.ignoreCase + : selector.ignoreCase === "quirks" + ? !!options.quirksMode + : !options.xmlMode && caseInsensitiveAttributes.has(selector.name); +} +/** + * Attribute selectors + */ +export const attributeRules = { + equals(next, data, options) { + const { adapter } = options; + const { name } = data; + let { value } = data; + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return (elem) => { + const attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length === value.length && + attr.toLowerCase() === value && + next(elem)); + }; + } + return (elem) => adapter.getAttributeValue(elem, name) === value && next(elem); + }, + hyphen(next, data, options) { + const { adapter } = options; + const { name } = data; + let { value } = data; + const len = value.length; + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return function hyphenIC(elem) { + const attr = adapter.getAttributeValue(elem, name); + return (attr != null && + (attr.length === len || attr.charAt(len) === "-") && + attr.substr(0, len).toLowerCase() === value && + next(elem)); + }; + } + return function hyphen(elem) { + const attr = adapter.getAttributeValue(elem, name); + return (attr != null && + (attr.length === len || attr.charAt(len) === "-") && + attr.substr(0, len) === value && + next(elem)); + }; + }, + element(next, data, options) { + const { adapter } = options; + const { name, value } = data; + if (/\s/.test(value)) { + return boolbase.falseFunc; + } + const regex = new RegExp(`(?:^|\\s)${escapeRegex(value)}(?:$|\\s)`, shouldIgnoreCase(data, options) ? "i" : ""); + return function element(elem) { + const attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length >= value.length && + regex.test(attr) && + next(elem)); + }; + }, + exists(next, { name }, { adapter }) { + return (elem) => adapter.hasAttrib(elem, name) && next(elem); + }, + start(next, data, options) { + const { adapter } = options; + const { name } = data; + let { value } = data; + const len = value.length; + if (len === 0) { + return boolbase.falseFunc; + } + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return (elem) => { + const attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length >= len && + attr.substr(0, len).toLowerCase() === value && + next(elem)); + }; + } + return (elem) => { + var _a; + return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) && + next(elem); + }; + }, + end(next, data, options) { + const { adapter } = options; + const { name } = data; + let { value } = data; + const len = -value.length; + if (len === 0) { + return boolbase.falseFunc; + } + if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return (elem) => { + var _a; + return ((_a = adapter + .getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem); + }; + } + return (elem) => { + var _a; + return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) && + next(elem); + }; + }, + any(next, data, options) { + const { adapter } = options; + const { name, value } = data; + if (value === "") { + return boolbase.falseFunc; + } + if (shouldIgnoreCase(data, options)) { + const regex = new RegExp(escapeRegex(value), "i"); + return function anyIC(elem) { + const attr = adapter.getAttributeValue(elem, name); + return (attr != null && + attr.length >= value.length && + regex.test(attr) && + next(elem)); + }; + } + return (elem) => { + var _a; + return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) && + next(elem); + }; + }, + not(next, data, options) { + const { adapter } = options; + const { name } = data; + let { value } = data; + if (value === "") { + return (elem) => !!adapter.getAttributeValue(elem, name) && next(elem); + } + else if (shouldIgnoreCase(data, options)) { + value = value.toLowerCase(); + return (elem) => { + const attr = adapter.getAttributeValue(elem, name); + return ((attr == null || + attr.length !== value.length || + attr.toLowerCase() !== value) && + next(elem)); + }; + } + return (elem) => adapter.getAttributeValue(elem, name) !== value && next(elem); + }, +}; +//# sourceMappingURL=attributes.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/attributes.js.map b/node_modules/css-select/lib/esm/attributes.js.map new file mode 100644 index 00000000..09d1da69 --- /dev/null +++ b/node_modules/css-select/lib/esm/attributes.js.map @@ -0,0 +1 @@ +{"version":3,"file":"attributes.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["attributes.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/compile.d.ts b/node_modules/css-select/lib/esm/compile.d.ts new file mode 100644 index 00000000..f67b508a --- /dev/null +++ b/node_modules/css-select/lib/esm/compile.d.ts @@ -0,0 +1,13 @@ +import { Selector } from "css-what"; +import type { CompiledQuery, InternalOptions, InternalSelector } from "./types.js"; +/** + * Compiles a selector to an executable function. + * + * @param selector Selector to compile. + * @param options Compilation options. + * @param context Optional context for the selector. + */ +export declare function compile(selector: string | Selector[][], options: InternalOptions, context?: Node[] | Node): CompiledQuery; +export declare function compileUnsafe(selector: string | Selector[][], options: InternalOptions, context?: Node[] | Node): CompiledQuery; +export declare function compileToken(token: InternalSelector[][], options: InternalOptions, context?: Node[] | Node): CompiledQuery; +//# sourceMappingURL=compile.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/compile.d.ts.map b/node_modules/css-select/lib/esm/compile.d.ts.map new file mode 100644 index 00000000..59231bc9 --- /dev/null +++ b/node_modules/css-select/lib/esm/compile.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"compile.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAgB,MAAM,UAAU,CAAC;AAQzD,OAAO,KAAK,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAClD,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,EAAE,EAC/B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,GACxB,aAAa,CAAC,IAAI,CAAC,CAGrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACxD,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE,EAAE,EAC/B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,GACxB,aAAa,CAAC,WAAW,CAAC,CAG5B;AAqDD,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACvD,KAAK,EAAE,gBAAgB,EAAE,EAAE,EAC3B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,GACxB,aAAa,CAAC,WAAW,CAAC,CAsD5B"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/compile.js b/node_modules/css-select/lib/esm/compile.js new file mode 100644 index 00000000..1f5ee573 --- /dev/null +++ b/node_modules/css-select/lib/esm/compile.js @@ -0,0 +1,115 @@ +import { parse, SelectorType } from "css-what"; +import boolbase from "boolbase"; +import sortRules, { isTraversal } from "./sort.js"; +import { compileGeneralSelector } from "./general.js"; +import { ensureIsTag, PLACEHOLDER_ELEMENT, } from "./pseudo-selectors/subselects.js"; +/** + * Compiles a selector to an executable function. + * + * @param selector Selector to compile. + * @param options Compilation options. + * @param context Optional context for the selector. + */ +export function compile(selector, options, context) { + const next = compileUnsafe(selector, options, context); + return ensureIsTag(next, options.adapter); +} +export function compileUnsafe(selector, options, context) { + const token = typeof selector === "string" ? parse(selector) : selector; + return compileToken(token, options, context); +} +function includesScopePseudo(t) { + return (t.type === SelectorType.Pseudo && + (t.name === "scope" || + (Array.isArray(t.data) && + t.data.some((data) => data.some(includesScopePseudo))))); +} +const DESCENDANT_TOKEN = { type: SelectorType.Descendant }; +const FLEXIBLE_DESCENDANT_TOKEN = { + type: "_flexibleDescendant", +}; +const SCOPE_TOKEN = { + type: SelectorType.Pseudo, + name: "scope", + data: null, +}; +/* + * CSS 4 Spec (Draft): 3.4.1. Absolutizing a Relative Selector + * http://www.w3.org/TR/selectors4/#absolutizing + */ +function absolutize(token, { adapter }, context) { + // TODO Use better check if the context is a document + const hasContext = !!(context === null || context === void 0 ? void 0 : context.every((e) => { + const parent = adapter.isTag(e) && adapter.getParent(e); + return e === PLACEHOLDER_ELEMENT || (parent && adapter.isTag(parent)); + })); + for (const t of token) { + if (t.length > 0 && + isTraversal(t[0]) && + t[0].type !== SelectorType.Descendant) { + // Don't continue in else branch + } + else if (hasContext && !t.some(includesScopePseudo)) { + t.unshift(DESCENDANT_TOKEN); + } + else { + continue; + } + t.unshift(SCOPE_TOKEN); + } +} +export function compileToken(token, options, context) { + var _a; + token.forEach(sortRules); + context = (_a = options.context) !== null && _a !== void 0 ? _a : context; + const isArrayContext = Array.isArray(context); + const finalContext = context && (Array.isArray(context) ? context : [context]); + // Check if the selector is relative + if (options.relativeSelector !== false) { + absolutize(token, options, finalContext); + } + else if (token.some((t) => t.length > 0 && isTraversal(t[0]))) { + throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled"); + } + let shouldTestNextSiblings = false; + const query = token + .map((rules) => { + if (rules.length >= 2) { + const [first, second] = rules; + if (first.type !== SelectorType.Pseudo || + first.name !== "scope") { + // Ignore + } + else if (isArrayContext && + second.type === SelectorType.Descendant) { + rules[1] = FLEXIBLE_DESCENDANT_TOKEN; + } + else if (second.type === SelectorType.Adjacent || + second.type === SelectorType.Sibling) { + shouldTestNextSiblings = true; + } + } + return compileRules(rules, options, finalContext); + }) + .reduce(reduceRules, boolbase.falseFunc); + query.shouldTestNextSiblings = shouldTestNextSiblings; + return query; +} +function compileRules(rules, options, context) { + var _a; + return rules.reduce((previous, rule) => previous === boolbase.falseFunc + ? boolbase.falseFunc + : compileGeneralSelector(previous, rule, options, context, compileToken), (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase.trueFunc); +} +function reduceRules(a, b) { + if (b === boolbase.falseFunc || a === boolbase.trueFunc) { + return a; + } + if (a === boolbase.falseFunc || b === boolbase.trueFunc) { + return b; + } + return function combine(elem) { + return a(elem) || b(elem); + }; +} +//# sourceMappingURL=compile.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/compile.js.map b/node_modules/css-select/lib/esm/compile.js.map new file mode 100644 index 00000000..8e837030 --- /dev/null +++ b/node_modules/css-select/lib/esm/compile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"compile.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["compile.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/general.d.ts b/node_modules/css-select/lib/esm/general.d.ts new file mode 100644 index 00000000..2baa1f31 --- /dev/null +++ b/node_modules/css-select/lib/esm/general.d.ts @@ -0,0 +1,3 @@ +import type { CompiledQuery, InternalOptions, InternalSelector, CompileToken } from "./types.js"; +export declare function compileGeneralSelector(next: CompiledQuery, selector: InternalSelector, options: InternalOptions, context: Node[] | undefined, compileToken: CompileToken): CompiledQuery; +//# sourceMappingURL=general.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/general.d.ts.map b/node_modules/css-select/lib/esm/general.d.ts.map new file mode 100644 index 00000000..82c8d6d4 --- /dev/null +++ b/node_modules/css-select/lib/esm/general.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"general.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["general.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAER,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACf,MAAM,YAAY,CAAC;AAkBpB,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACjE,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,EAC3B,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,GAC9C,aAAa,CAAC,WAAW,CAAC,CAiK5B"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/general.js b/node_modules/css-select/lib/esm/general.js new file mode 100644 index 00000000..743ef7be --- /dev/null +++ b/node_modules/css-select/lib/esm/general.js @@ -0,0 +1,144 @@ +import { attributeRules } from "./attributes.js"; +import { compilePseudoSelector } from "./pseudo-selectors/index.js"; +import { SelectorType } from "css-what"; +function getElementParent(node, adapter) { + const parent = adapter.getParent(node); + if (parent && adapter.isTag(parent)) { + return parent; + } + return null; +} +/* + * All available rules + */ +export function compileGeneralSelector(next, selector, options, context, compileToken) { + const { adapter, equals } = options; + switch (selector.type) { + case SelectorType.PseudoElement: { + throw new Error("Pseudo-elements are not supported by css-select"); + } + case SelectorType.ColumnCombinator: { + throw new Error("Column combinators are not yet supported by css-select"); + } + case SelectorType.Attribute: { + if (selector.namespace != null) { + throw new Error("Namespaced attributes are not yet supported by css-select"); + } + if (!options.xmlMode || options.lowerCaseAttributeNames) { + selector.name = selector.name.toLowerCase(); + } + return attributeRules[selector.action](next, selector, options); + } + case SelectorType.Pseudo: { + return compilePseudoSelector(next, selector, options, context, compileToken); + } + // Tags + case SelectorType.Tag: { + if (selector.namespace != null) { + throw new Error("Namespaced tag names are not yet supported by css-select"); + } + let { name } = selector; + if (!options.xmlMode || options.lowerCaseTags) { + name = name.toLowerCase(); + } + return function tag(elem) { + return adapter.getName(elem) === name && next(elem); + }; + } + // Traversal + case SelectorType.Descendant: { + if (options.cacheResults === false || + typeof WeakSet === "undefined") { + return function descendant(elem) { + let current = elem; + while ((current = getElementParent(current, adapter))) { + if (next(current)) { + return true; + } + } + return false; + }; + } + // @ts-expect-error `ElementNode` is not extending object + const isFalseCache = new WeakSet(); + return function cachedDescendant(elem) { + let current = elem; + while ((current = getElementParent(current, adapter))) { + if (!isFalseCache.has(current)) { + if (adapter.isTag(current) && next(current)) { + return true; + } + isFalseCache.add(current); + } + } + return false; + }; + } + case "_flexibleDescendant": { + // Include element itself, only used while querying an array + return function flexibleDescendant(elem) { + let current = elem; + do { + if (next(current)) + return true; + } while ((current = getElementParent(current, adapter))); + return false; + }; + } + case SelectorType.Parent: { + return function parent(elem) { + return adapter + .getChildren(elem) + .some((elem) => adapter.isTag(elem) && next(elem)); + }; + } + case SelectorType.Child: { + return function child(elem) { + const parent = adapter.getParent(elem); + return parent != null && adapter.isTag(parent) && next(parent); + }; + } + case SelectorType.Sibling: { + return function sibling(elem) { + const siblings = adapter.getSiblings(elem); + for (let i = 0; i < siblings.length; i++) { + const currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling) && next(currentSibling)) { + return true; + } + } + return false; + }; + } + case SelectorType.Adjacent: { + if (adapter.prevElementSibling) { + return function adjacent(elem) { + const previous = adapter.prevElementSibling(elem); + return previous != null && next(previous); + }; + } + return function adjacent(elem) { + const siblings = adapter.getSiblings(elem); + let lastElement; + for (let i = 0; i < siblings.length; i++) { + const currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling)) { + lastElement = currentSibling; + } + } + return !!lastElement && next(lastElement); + }; + } + case SelectorType.Universal: { + if (selector.namespace != null && selector.namespace !== "*") { + throw new Error("Namespaced universal selectors are not yet supported by css-select"); + } + return next; + } + } +} +//# sourceMappingURL=general.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/general.js.map b/node_modules/css-select/lib/esm/general.js.map new file mode 100644 index 00000000..68380681 --- /dev/null +++ b/node_modules/css-select/lib/esm/general.js.map @@ -0,0 +1 @@ +{"version":3,"file":"general.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["general.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/index.d.ts b/node_modules/css-select/lib/esm/index.d.ts new file mode 100644 index 00000000..09113723 --- /dev/null +++ b/node_modules/css-select/lib/esm/index.d.ts @@ -0,0 +1,50 @@ +import type { CompiledQuery, Options, Query, Adapter } from "./types.js"; +export type { Options }; +/** + * Compiles the query, returns a function. + */ +export declare const compile: (selector: string | import("css-what").Selector[][], options?: Options | undefined, context?: Node | Node[] | undefined) => CompiledQuery; +export declare const _compileUnsafe: (selector: string | import("css-what").Selector[][], options?: Options | undefined, context?: Node | Node[] | undefined) => CompiledQuery; +export declare const _compileToken: (selector: import("./types.js").InternalSelector[][], options?: Options | undefined, context?: Node | Node[] | undefined) => CompiledQuery; +export declare function prepareContext(elems: Node | Node[], adapter: Adapter, shouldTestNextSiblings?: boolean): Node[]; +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns All matching elements. + * + */ +export declare const selectAll: (query: Query, elements: Node | Node[], options?: Options | undefined) => ElementNode[]; +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns the first match, or null if there was no match. + */ +export declare const selectOne: (query: Query, elements: Node | Node[], options?: Options | undefined) => ElementNode | null; +/** + * Tests whether or not an element is matched by query. + * + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elem The element to test if it matches the query. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns + */ +export declare function is(elem: ElementNode, query: Query, options?: Options): boolean; +/** + * Alias for selectAll(query, elems, options). + * @see [compile] for supported selector queries. + */ +export default selectAll; +/** @deprecated Use the `pseudos` option instead. */ +export { filters, pseudos, aliases } from "./pseudo-selectors/index.js"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/index.d.ts.map b/node_modules/css-select/lib/esm/index.d.ts.map new file mode 100644 index 00000000..120c4fec --- /dev/null +++ b/node_modules/css-select/lib/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACR,aAAa,EACb,OAAO,EAEP,KAAK,EACL,OAAO,EAEV,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,OAAO,EAAE,CAAC;AA0CxB;;GAEG;AACH,eAAO,MAAM,OAAO,oMAA0B,CAAC;AAC/C,eAAO,MAAM,cAAc,2MAA6B,CAAC;AACzD,eAAO,MAAM,aAAa,4MAA4B,CAAC;AA6BvD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACzD,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,EACpB,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EACnC,sBAAsB,UAAQ,GAC/B,IAAI,EAAE,CAYR;AAiBD;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,yJASrB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,8JASrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,EAAE,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAC7C,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GACrC,OAAO,CAKT;AAED;;;GAGG;AACH,eAAe,SAAS,CAAC;AAGzB,oDAAoD;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/index.js b/node_modules/css-select/lib/esm/index.js new file mode 100644 index 00000000..7d827a27 --- /dev/null +++ b/node_modules/css-select/lib/esm/index.js @@ -0,0 +1,115 @@ +import * as DomUtils from "domutils"; +import boolbase from "boolbase"; +import { compile as compileRaw, compileUnsafe, compileToken, } from "./compile.js"; +import { getNextSiblings } from "./pseudo-selectors/subselects.js"; +const defaultEquals = (a, b) => a === b; +const defaultOptions = { + adapter: DomUtils, + equals: defaultEquals, +}; +function convertOptionFormats(options) { + var _a, _b, _c, _d; + /* + * We force one format of options to the other one. + */ + // @ts-expect-error Default options may have incompatible `Node` / `ElementNode`. + const opts = options !== null && options !== void 0 ? options : defaultOptions; + // @ts-expect-error Same as above. + (_a = opts.adapter) !== null && _a !== void 0 ? _a : (opts.adapter = DomUtils); + // @ts-expect-error `equals` does not exist on `Options` + (_b = opts.equals) !== null && _b !== void 0 ? _b : (opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals); + return opts; +} +function wrapCompile(func) { + return function addAdapter(selector, options, context) { + const opts = convertOptionFormats(options); + return func(selector, opts, context); + }; +} +/** + * Compiles the query, returns a function. + */ +export const compile = wrapCompile(compileRaw); +export const _compileUnsafe = wrapCompile(compileUnsafe); +export const _compileToken = wrapCompile(compileToken); +function getSelectorFunc(searchFunc) { + return function select(query, elements, options) { + const opts = convertOptionFormats(options); + if (typeof query !== "function") { + query = compileUnsafe(query, opts, elements); + } + const filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings); + return searchFunc(query, filteredElements, opts); + }; +} +export function prepareContext(elems, adapter, shouldTestNextSiblings = false) { + /* + * Add siblings if the query requires them. + * See https://github.com/fb55/css-select/pull/43#issuecomment-225414692 + */ + if (shouldTestNextSiblings) { + elems = appendNextSiblings(elems, adapter); + } + return Array.isArray(elems) + ? adapter.removeSubsets(elems) + : adapter.getChildren(elems); +} +function appendNextSiblings(elem, adapter) { + // Order matters because jQuery seems to check the children before the siblings + const elems = Array.isArray(elem) ? elem.slice(0) : [elem]; + const elemsLength = elems.length; + for (let i = 0; i < elemsLength; i++) { + const nextSiblings = getNextSiblings(elems[i], adapter); + elems.push(...nextSiblings); + } + return elems; +} +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns All matching elements. + * + */ +export const selectAll = getSelectorFunc((query, elems, options) => query === boolbase.falseFunc || !elems || elems.length === 0 + ? [] + : options.adapter.findAll(query, elems)); +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns the first match, or null if there was no match. + */ +export const selectOne = getSelectorFunc((query, elems, options) => query === boolbase.falseFunc || !elems || elems.length === 0 + ? null + : options.adapter.findOne(query, elems)); +/** + * Tests whether or not an element is matched by query. + * + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elem The element to test if it matches the query. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns + */ +export function is(elem, query, options) { + const opts = convertOptionFormats(options); + return (typeof query === "function" ? query : compileRaw(query, opts))(elem); +} +/** + * Alias for selectAll(query, elems, options). + * @see [compile] for supported selector queries. + */ +export default selectAll; +// Export filters, pseudos and aliases to allow users to supply their own. +/** @deprecated Use the `pseudos` option instead. */ +export { filters, pseudos, aliases } from "./pseudo-selectors/index.js"; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/index.js.map b/node_modules/css-select/lib/esm/index.js.map new file mode 100644 index 00000000..b9e98bf8 --- /dev/null +++ b/node_modules/css-select/lib/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/package.json b/node_modules/css-select/lib/esm/package.json new file mode 100644 index 00000000..089153bc --- /dev/null +++ b/node_modules/css-select/lib/esm/package.json @@ -0,0 +1 @@ +{"type":"module"} diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts b/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts new file mode 100644 index 00000000..1bcb31a4 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts @@ -0,0 +1,5 @@ +/** + * Aliases are pseudos that are expressed as selectors. + */ +export declare const aliases: Record; +//# sourceMappingURL=aliases.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts.map b/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts.map new file mode 100644 index 00000000..37c9e8ce --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/aliases.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"aliases.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/aliases.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwC1C,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js b/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js new file mode 100644 index 00000000..49cd6f04 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js @@ -0,0 +1,35 @@ +/** + * Aliases are pseudos that are expressed as selectors. + */ +export const aliases = { + // Links + "any-link": ":is(a, area, link)[href]", + link: ":any-link:not(:visited)", + // Forms + // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements + disabled: `:is( + :is(button, input, select, textarea, optgroup, option)[disabled], + optgroup[disabled] > option, + fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *) + )`, + enabled: ":not(:disabled)", + checked: ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)", + required: ":is(input, select, textarea)[required]", + optional: ":is(input, select, textarea):not([required])", + // JQuery extensions + // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness + selected: "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)", + checkbox: "[type=checkbox]", + file: "[type=file]", + password: "[type=password]", + radio: "[type=radio]", + reset: "[type=reset]", + image: "[type=image]", + submit: "[type=submit]", + parent: ":not(:empty)", + header: ":is(h1, h2, h3, h4, h5, h6)", + button: ":is(button, input[type=button])", + input: ":is(input, textarea, select, button)", + text: "input:is(:not([type!='']), [type=text])", +}; +//# sourceMappingURL=aliases.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js.map b/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js.map new file mode 100644 index 00000000..6ef57c9d --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/aliases.js.map @@ -0,0 +1 @@ +{"version":3,"file":"aliases.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/aliases.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAA2B;IAC3C,QAAQ;IAER,UAAU,EAAE,0BAA0B;IACtC,IAAI,EAAE,yBAAyB;IAE/B,QAAQ;IAER,0EAA0E;IAC1E,QAAQ,EAAE;;;;MAIR;IACF,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EACH,6EAA6E;IACjF,QAAQ,EAAE,wCAAwC;IAClD,QAAQ,EAAE,8CAA8C;IAExD,oBAAoB;IAEpB,wFAAwF;IACxF,QAAQ,EACJ,8FAA8F;IAElG,QAAQ,EAAE,iBAAiB;IAC3B,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,iBAAiB;IAC3B,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,eAAe;IAEvB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,6BAA6B;IAErC,MAAM,EAAE,iCAAiC;IACzC,KAAK,EAAE,sCAAsC;IAC7C,IAAI,EAAE,yCAAyC;CAClD,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts b/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts new file mode 100644 index 00000000..a75d0631 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts @@ -0,0 +1,4 @@ +import type { CompiledQuery, InternalOptions } from "../types.js"; +export declare type Filter = (next: CompiledQuery, text: string, options: InternalOptions, context?: Node[]) => CompiledQuery; +export declare const filters: Record; +//# sourceMappingURL=filters.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts.map b/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts.map new file mode 100644 index 00000000..86f1cef3 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/filters.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filters.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/filters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAW,MAAM,aAAa,CAAC;AAE3E,oBAAY,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAChD,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,KACf,aAAa,CAAC,WAAW,CAAC,CAAC;AAYhC,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2I1C,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/filters.js b/node_modules/css-select/lib/esm/pseudo-selectors/filters.js new file mode 100644 index 00000000..2f939ed2 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/filters.js @@ -0,0 +1,143 @@ +import getNCheck from "nth-check"; +import boolbase from "boolbase"; +function getChildFunc(next, adapter) { + return (elem) => { + const parent = adapter.getParent(elem); + return parent != null && adapter.isTag(parent) && next(elem); + }; +} +export const filters = { + contains(next, text, { adapter }) { + return function contains(elem) { + return next(elem) && adapter.getText(elem).includes(text); + }; + }, + icontains(next, text, { adapter }) { + const itext = text.toLowerCase(); + return function icontains(elem) { + return (next(elem) && + adapter.getText(elem).toLowerCase().includes(itext)); + }; + }, + // Location specific methods + "nth-child"(next, rule, { adapter, equals }) { + const func = getNCheck(rule); + if (func === boolbase.falseFunc) + return boolbase.falseFunc; + if (func === boolbase.trueFunc) + return getChildFunc(next, adapter); + return function nthChild(elem) { + const siblings = adapter.getSiblings(elem); + let pos = 0; + for (let i = 0; i < siblings.length; i++) { + if (equals(elem, siblings[i])) + break; + if (adapter.isTag(siblings[i])) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + "nth-last-child"(next, rule, { adapter, equals }) { + const func = getNCheck(rule); + if (func === boolbase.falseFunc) + return boolbase.falseFunc; + if (func === boolbase.trueFunc) + return getChildFunc(next, adapter); + return function nthLastChild(elem) { + const siblings = adapter.getSiblings(elem); + let pos = 0; + for (let i = siblings.length - 1; i >= 0; i--) { + if (equals(elem, siblings[i])) + break; + if (adapter.isTag(siblings[i])) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + "nth-of-type"(next, rule, { adapter, equals }) { + const func = getNCheck(rule); + if (func === boolbase.falseFunc) + return boolbase.falseFunc; + if (func === boolbase.trueFunc) + return getChildFunc(next, adapter); + return function nthOfType(elem) { + const siblings = adapter.getSiblings(elem); + let pos = 0; + for (let i = 0; i < siblings.length; i++) { + const currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === adapter.getName(elem)) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + "nth-last-of-type"(next, rule, { adapter, equals }) { + const func = getNCheck(rule); + if (func === boolbase.falseFunc) + return boolbase.falseFunc; + if (func === boolbase.trueFunc) + return getChildFunc(next, adapter); + return function nthLastOfType(elem) { + const siblings = adapter.getSiblings(elem); + let pos = 0; + for (let i = siblings.length - 1; i >= 0; i--) { + const currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === adapter.getName(elem)) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + // TODO determine the actual root element + root(next, _rule, { adapter }) { + return (elem) => { + const parent = adapter.getParent(elem); + return (parent == null || !adapter.isTag(parent)) && next(elem); + }; + }, + scope(next, rule, options, context) { + const { equals } = options; + if (!context || context.length === 0) { + // Equivalent to :root + return filters["root"](next, rule, options); + } + if (context.length === 1) { + // NOTE: can't be unpacked, as :has uses this for side-effects + return (elem) => equals(context[0], elem) && next(elem); + } + return (elem) => context.includes(elem) && next(elem); + }, + hover: dynamicStatePseudo("isHovered"), + visited: dynamicStatePseudo("isVisited"), + active: dynamicStatePseudo("isActive"), +}; +/** + * Dynamic state pseudos. These depend on optional Adapter methods. + * + * @param name The name of the adapter method to call. + * @returns Pseudo for the `filters` object. + */ +function dynamicStatePseudo(name) { + return function dynamicPseudo(next, _rule, { adapter }) { + const func = adapter[name]; + if (typeof func !== "function") { + return boolbase.falseFunc; + } + return function active(elem) { + return func(elem) && next(elem); + }; + }; +} +//# sourceMappingURL=filters.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/filters.js.map b/node_modules/css-select/lib/esm/pseudo-selectors/filters.js.map new file mode 100644 index 00000000..605d0cb9 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/filters.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filters.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/filters.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts b/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts new file mode 100644 index 00000000..2c41913c --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts @@ -0,0 +1,8 @@ +import type { CompiledQuery, InternalOptions, CompileToken } from "../types.js"; +import { PseudoSelector } from "css-what"; +import { filters } from "./filters.js"; +import { pseudos } from "./pseudos.js"; +import { aliases } from "./aliases.js"; +export { filters, pseudos, aliases }; +export declare function compilePseudoSelector(next: CompiledQuery, selector: PseudoSelector, options: InternalOptions, context: Node[] | undefined, compileToken: CompileToken): CompiledQuery; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts.map b/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts.map new file mode 100644 index 00000000..ba140978 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAS,cAAc,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAErC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAChE,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,EAC3B,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,GAC9C,aAAa,CAAC,WAAW,CAAC,CA4C5B"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/index.js b/node_modules/css-select/lib/esm/pseudo-selectors/index.js new file mode 100644 index 00000000..ab43243b --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/index.js @@ -0,0 +1,40 @@ +import { parse } from "css-what"; +import { filters } from "./filters.js"; +import { pseudos, verifyPseudoArgs } from "./pseudos.js"; +import { aliases } from "./aliases.js"; +import { subselects } from "./subselects.js"; +export { filters, pseudos, aliases }; +export function compilePseudoSelector(next, selector, options, context, compileToken) { + var _a; + const { name, data } = selector; + if (Array.isArray(data)) { + if (!(name in subselects)) { + throw new Error(`Unknown pseudo-class :${name}(${data})`); + } + return subselects[name](next, data, options, context, compileToken); + } + const userPseudo = (_a = options.pseudos) === null || _a === void 0 ? void 0 : _a[name]; + const stringPseudo = typeof userPseudo === "string" ? userPseudo : aliases[name]; + if (typeof stringPseudo === "string") { + if (data != null) { + throw new Error(`Pseudo ${name} doesn't have any arguments`); + } + // The alias has to be parsed here, to make sure options are respected. + const alias = parse(stringPseudo); + return subselects["is"](next, alias, options, context, compileToken); + } + if (typeof userPseudo === "function") { + verifyPseudoArgs(userPseudo, name, data, 1); + return (elem) => userPseudo(elem, data) && next(elem); + } + if (name in filters) { + return filters[name](next, data, options, context); + } + if (name in pseudos) { + const pseudo = pseudos[name]; + verifyPseudoArgs(pseudo, name, data, 2); + return (elem) => pseudo(elem, options, data) && next(elem); + } + throw new Error(`Unknown pseudo-class :${name}`); +} +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/index.js.map b/node_modules/css-select/lib/esm/pseudo-selectors/index.js.map new file mode 100644 index 00000000..f8fe1e74 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAkB,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAErC,MAAM,UAAU,qBAAqB,CACjC,IAAgC,EAChC,QAAwB,EACxB,OAA2C,EAC3C,OAA2B,EAC3B,YAA6C;;IAE7C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrB,IAAI,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;SAC7D;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;KACvE;IAED,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IAE3C,MAAM,YAAY,GACd,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;QAClC,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,6BAA6B,CAAC,CAAC;SAChE;QAED,uEAAuE;QACvE,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;KACxE;IAED,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;QAClC,gBAAgB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE5C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;KACzD;IAED,IAAI,IAAI,IAAI,OAAO,EAAE;QACjB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;KAChE;IAED,IAAI,IAAI,IAAI,OAAO,EAAE;QACjB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAExC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9D;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;AACrD,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts b/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts new file mode 100644 index 00000000..cfcf8d6c --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts @@ -0,0 +1,6 @@ +import type { PseudoSelector } from "css-what"; +import type { InternalOptions } from "../types.js"; +export declare type Pseudo = (elem: ElementNode, options: InternalOptions, subselect?: string | null) => boolean; +export declare const pseudos: Record; +export declare function verifyPseudoArgs>(func: (...args: T) => boolean, name: string, subselect: PseudoSelector["data"], argIndex: number): void; +//# sourceMappingURL=pseudos.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts.map b/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts.map new file mode 100644 index 00000000..b2d11373 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pseudos.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/pseudos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,oBAAY,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAChD,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,KACxB,OAAO,CAAC;AAGb,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkF1C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,EACrD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,EAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,EACjC,QAAQ,EAAE,MAAM,GACjB,IAAI,CAQN"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js b/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js new file mode 100644 index 00000000..fe2ebefc --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js @@ -0,0 +1,79 @@ +// While filters are precompiled, pseudos get called when they are needed +export const pseudos = { + empty(elem, { adapter }) { + return !adapter.getChildren(elem).some((elem) => + // FIXME: `getText` call is potentially expensive. + adapter.isTag(elem) || adapter.getText(elem) !== ""); + }, + "first-child"(elem, { adapter, equals }) { + if (adapter.prevElementSibling) { + return adapter.prevElementSibling(elem) == null; + } + const firstChild = adapter + .getSiblings(elem) + .find((elem) => adapter.isTag(elem)); + return firstChild != null && equals(elem, firstChild); + }, + "last-child"(elem, { adapter, equals }) { + const siblings = adapter.getSiblings(elem); + for (let i = siblings.length - 1; i >= 0; i--) { + if (equals(elem, siblings[i])) + return true; + if (adapter.isTag(siblings[i])) + break; + } + return false; + }, + "first-of-type"(elem, { adapter, equals }) { + const siblings = adapter.getSiblings(elem); + const elemName = adapter.getName(elem); + for (let i = 0; i < siblings.length; i++) { + const currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + return true; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === elemName) { + break; + } + } + return false; + }, + "last-of-type"(elem, { adapter, equals }) { + const siblings = adapter.getSiblings(elem); + const elemName = adapter.getName(elem); + for (let i = siblings.length - 1; i >= 0; i--) { + const currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + return true; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === elemName) { + break; + } + } + return false; + }, + "only-of-type"(elem, { adapter, equals }) { + const elemName = adapter.getName(elem); + return adapter + .getSiblings(elem) + .every((sibling) => equals(elem, sibling) || + !adapter.isTag(sibling) || + adapter.getName(sibling) !== elemName); + }, + "only-child"(elem, { adapter, equals }) { + return adapter + .getSiblings(elem) + .every((sibling) => equals(elem, sibling) || !adapter.isTag(sibling)); + }, +}; +export function verifyPseudoArgs(func, name, subselect, argIndex) { + if (subselect === null) { + if (func.length > argIndex) { + throw new Error(`Pseudo-class :${name} requires an argument`); + } + } + else if (func.length === argIndex) { + throw new Error(`Pseudo-class :${name} doesn't have any arguments`); + } +} +//# sourceMappingURL=pseudos.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js.map b/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js.map new file mode 100644 index 00000000..62f4ec3f --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/pseudos.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pseudos.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/pseudos.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts b/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts new file mode 100644 index 00000000..6555ef2d --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts @@ -0,0 +1,9 @@ +import type { Selector } from "css-what"; +import type { CompiledQuery, InternalOptions, CompileToken, Adapter } from "../types.js"; +/** Used as a placeholder for :has. Will be replaced with the actual element. */ +export declare const PLACEHOLDER_ELEMENT: {}; +export declare function ensureIsTag(next: CompiledQuery, adapter: Adapter): CompiledQuery; +export declare type Subselect = (next: CompiledQuery, subselect: Selector[][], options: InternalOptions, context: Node[] | undefined, compileToken: CompileToken) => CompiledQuery; +export declare function getNextSiblings(elem: Node, adapter: Adapter): ElementNode[]; +export declare const subselects: Record; +//# sourceMappingURL=subselects.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts.map b/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts.map new file mode 100644 index 00000000..9950c0cc --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/subselects.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"subselects.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/subselects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EACR,aAAa,EACb,eAAe,EACf,YAAY,EACZ,OAAO,EACV,MAAM,aAAa,CAAC;AAGrB,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,IAAK,CAAC;AAEtC,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACtD,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GACpC,aAAa,CAAC,IAAI,CAAC,CAGrB;AAED,oBAAY,SAAS,GAAG,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACnD,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,SAAS,EAAE,QAAQ,EAAE,EAAE,EACvB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,EAC3B,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,KAC5C,aAAa,CAAC,WAAW,CAAC,CAAC;AAEhC,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAC1D,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GACpC,WAAW,EAAE,CAMf;AAiCD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAgEhD,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js b/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js new file mode 100644 index 00000000..25d7e8e4 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js @@ -0,0 +1,94 @@ +import boolbase from "boolbase"; +import { isTraversal } from "../sort.js"; +/** Used as a placeholder for :has. Will be replaced with the actual element. */ +export const PLACEHOLDER_ELEMENT = {}; +export function ensureIsTag(next, adapter) { + if (next === boolbase.falseFunc) + return boolbase.falseFunc; + return (elem) => adapter.isTag(elem) && next(elem); +} +export function getNextSiblings(elem, adapter) { + const siblings = adapter.getSiblings(elem); + if (siblings.length <= 1) + return []; + const elemIndex = siblings.indexOf(elem); + if (elemIndex < 0 || elemIndex === siblings.length - 1) + return []; + return siblings.slice(elemIndex + 1).filter(adapter.isTag); +} +function copyOptions(options) { + // Not copied: context, rootFunc + return { + xmlMode: !!options.xmlMode, + lowerCaseAttributeNames: !!options.lowerCaseAttributeNames, + lowerCaseTags: !!options.lowerCaseTags, + quirksMode: !!options.quirksMode, + cacheResults: !!options.cacheResults, + pseudos: options.pseudos, + adapter: options.adapter, + equals: options.equals, + }; +} +const is = (next, token, options, context, compileToken) => { + const func = compileToken(token, copyOptions(options), context); + return func === boolbase.trueFunc + ? next + : func === boolbase.falseFunc + ? boolbase.falseFunc + : (elem) => func(elem) && next(elem); +}; +/* + * :not, :has, :is, :matches and :where have to compile selectors + * doing this in src/pseudos.ts would lead to circular dependencies, + * so we add them here + */ +export const subselects = { + is, + /** + * `:matches` and `:where` are aliases for `:is`. + */ + matches: is, + where: is, + not(next, token, options, context, compileToken) { + const func = compileToken(token, copyOptions(options), context); + return func === boolbase.falseFunc + ? next + : func === boolbase.trueFunc + ? boolbase.falseFunc + : (elem) => !func(elem) && next(elem); + }, + has(next, subselect, options, _context, compileToken) { + const { adapter } = options; + const opts = copyOptions(options); + opts.relativeSelector = true; + const context = subselect.some((s) => s.some(isTraversal)) + ? // Used as a placeholder. Will be replaced with the actual element. + [PLACEHOLDER_ELEMENT] + : undefined; + const compiled = compileToken(subselect, opts, context); + if (compiled === boolbase.falseFunc) + return boolbase.falseFunc; + const hasElement = ensureIsTag(compiled, adapter); + // If `compiled` is `trueFunc`, we can skip this. + if (context && compiled !== boolbase.trueFunc) { + /* + * `shouldTestNextSiblings` will only be true if the query starts with + * a traversal (sibling or adjacent). That means we will always have a context. + */ + const { shouldTestNextSiblings = false } = compiled; + return (elem) => { + if (!next(elem)) + return false; + context[0] = elem; + const childs = adapter.getChildren(elem); + const nextElements = shouldTestNextSiblings + ? [...childs, ...getNextSiblings(elem, adapter)] + : childs; + return adapter.existsOne(hasElement, nextElements); + }; + } + return (elem) => next(elem) && + adapter.existsOne(hasElement, adapter.getChildren(elem)); + }, +}; +//# sourceMappingURL=subselects.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js.map b/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js.map new file mode 100644 index 00000000..39cdd6e1 --- /dev/null +++ b/node_modules/css-select/lib/esm/pseudo-selectors/subselects.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subselects.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/subselects.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/sort.d.ts b/node_modules/css-select/lib/esm/sort.d.ts new file mode 100644 index 00000000..93c996c1 --- /dev/null +++ b/node_modules/css-select/lib/esm/sort.d.ts @@ -0,0 +1,12 @@ +import type { InternalSelector } from "./types.js"; +import { type Traversal } from "css-what"; +export declare function isTraversal(token: InternalSelector): token is Traversal; +/** + * Sort the parts of the passed selector, + * as there is potential for optimization + * (some types of selectors are faster than others) + * + * @param arr Selector to sort + */ +export default function sortByProcedure(arr: InternalSelector[]): void; +//# sourceMappingURL=sort.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/sort.d.ts.map b/node_modules/css-select/lib/esm/sort.d.ts.map new file mode 100644 index 00000000..8e996f4a --- /dev/null +++ b/node_modules/css-select/lib/esm/sort.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"sort.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AASzE,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,KAAK,IAAI,SAAS,CAEvE;AAWD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAerE"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/sort.js b/node_modules/css-select/lib/esm/sort.js new file mode 100644 index 00000000..b3b3239a --- /dev/null +++ b/node_modules/css-select/lib/esm/sort.js @@ -0,0 +1,79 @@ +import { AttributeAction, SelectorType } from "css-what"; +const procedure = new Map([ + [SelectorType.Universal, 50], + [SelectorType.Tag, 30], + [SelectorType.Attribute, 1], + [SelectorType.Pseudo, 0], +]); +export function isTraversal(token) { + return !procedure.has(token.type); +} +const attributes = new Map([ + [AttributeAction.Exists, 10], + [AttributeAction.Equals, 8], + [AttributeAction.Not, 7], + [AttributeAction.Start, 6], + [AttributeAction.End, 6], + [AttributeAction.Any, 5], +]); +/** + * Sort the parts of the passed selector, + * as there is potential for optimization + * (some types of selectors are faster than others) + * + * @param arr Selector to sort + */ +export default function sortByProcedure(arr) { + const procs = arr.map(getProcedure); + for (let i = 1; i < arr.length; i++) { + const procNew = procs[i]; + if (procNew < 0) + continue; + for (let j = i - 1; j >= 0 && procNew < procs[j]; j--) { + const token = arr[j + 1]; + arr[j + 1] = arr[j]; + arr[j] = token; + procs[j + 1] = procs[j]; + procs[j] = procNew; + } + } +} +function getProcedure(token) { + var _a, _b; + let proc = (_a = procedure.get(token.type)) !== null && _a !== void 0 ? _a : -1; + if (token.type === SelectorType.Attribute) { + proc = (_b = attributes.get(token.action)) !== null && _b !== void 0 ? _b : 4; + if (token.action === AttributeAction.Equals && token.name === "id") { + // Prefer ID selectors (eg. #ID) + proc = 9; + } + if (token.ignoreCase) { + /* + * IgnoreCase adds some overhead, prefer "normal" token + * this is a binary operation, to ensure it's still an int + */ + proc >>= 1; + } + } + else if (token.type === SelectorType.Pseudo) { + if (!token.data) { + proc = 3; + } + else if (token.name === "has" || token.name === "contains") { + proc = 0; // Expensive in any case + } + else if (Array.isArray(token.data)) { + // Eg. :matches, :not + proc = Math.min(...token.data.map((d) => Math.min(...d.map(getProcedure)))); + // If we have traversals, try to avoid executing this selector + if (proc < 0) { + proc = 0; + } + } + else { + proc = 2; + } + } + return proc; +} +//# sourceMappingURL=sort.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/sort.js.map b/node_modules/css-select/lib/esm/sort.js.map new file mode 100644 index 00000000..537c45c4 --- /dev/null +++ b/node_modules/css-select/lib/esm/sort.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sort.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["sort.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/types.d.ts b/node_modules/css-select/lib/esm/types.d.ts new file mode 100644 index 00000000..7a0cd8a5 --- /dev/null +++ b/node_modules/css-select/lib/esm/types.d.ts @@ -0,0 +1,167 @@ +import type { Selector } from "css-what"; +export declare type InternalSelector = Selector | { + type: "_flexibleDescendant"; +}; +export declare type Predicate = (v: Value) => boolean; +export interface Adapter { + /** + * Is the node a tag? + */ + isTag: (node: Node) => node is ElementNode; + /** + * Does at least one of passed element nodes pass the test predicate? + */ + existsOne: (test: Predicate, elems: Node[]) => boolean; + /** + * Get the attribute value. + */ + getAttributeValue: (elem: ElementNode, name: string) => string | undefined; + /** + * Get the node's children + */ + getChildren: (node: Node) => Node[]; + /** + * Get the name of the tag + */ + getName: (elem: ElementNode) => string; + /** + * Get the parent of the node + */ + getParent: (node: ElementNode) => Node | null; + /** + * Get the siblings of the node. Note that unlike jQuery's `siblings` method, + * this is expected to include the current node as well + */ + getSiblings: (node: Node) => Node[]; + /** + * Returns the previous element sibling of a node. + */ + prevElementSibling?: (node: Node) => ElementNode | null; + /** + * Get the text content of the node, and its children if it has any. + */ + getText: (node: Node) => string; + /** + * Does the element have the named attribute? + */ + hasAttrib: (elem: ElementNode, name: string) => boolean; + /** + * Takes an array of nodes, and removes any duplicates, as well as any + * nodes whose ancestors are also in the array. + */ + removeSubsets: (nodes: Node[]) => Node[]; + /** + * Finds all of the element nodes in the array that match the test predicate, + * as well as any of their children that match it. + */ + findAll: (test: Predicate, nodes: Node[]) => ElementNode[]; + /** + * Finds the first node in the array that matches the test predicate, or one + * of its children. + */ + findOne: (test: Predicate, elems: Node[]) => ElementNode | null; + /** + * The adapter can also optionally include an equals method, if your DOM + * structure needs a custom equality test to compare two objects which refer + * to the same underlying node. If not provided, `css-select` will fall back to + * `a === b`. + */ + equals?: (a: Node, b: Node) => boolean; + /** + * Is the element in hovered state? + */ + isHovered?: (elem: ElementNode) => boolean; + /** + * Is the element in visited state? + */ + isVisited?: (elem: ElementNode) => boolean; + /** + * Is the element in active state? + */ + isActive?: (elem: ElementNode) => boolean; +} +export interface Options { + /** + * When enabled, tag names will be case-sensitive. + * + * @default false + */ + xmlMode?: boolean; + /** + * Lower-case attribute names. + * + * @default !xmlMode + */ + lowerCaseAttributeNames?: boolean; + /** + * Lower-case tag names. + * + * @default !xmlMode + */ + lowerCaseTags?: boolean; + /** + * Is the document in quirks mode? + * + * This will lead to .className and #id being case-insensitive. + * + * @default false + */ + quirksMode?: boolean; + /** + * Pseudo-classes that override the default ones. + * + * Maps from names to either strings of functions. + * - A string value is a selector that the element must match to be selected. + * - A function is called with the element as its first argument, and optional + * parameters second. If it returns true, the element is selected. + */ + pseudos?: Record boolean)> | undefined; + /** + * The last function in the stack, will be called with the last element + * that's looked at. + */ + rootFunc?: (element: ElementNode) => boolean; + /** + * The adapter to use when interacting with the backing DOM structure. By + * default it uses the `domutils` module. + */ + adapter?: Adapter; + /** + * The context of the current query. Used to limit the scope of searches. + * Can be matched directly using the `:scope` pseudo-class. + */ + context?: Node | Node[]; + /** + * Indicates whether to consider the selector as a relative selector. + * + * Relative selectors that don't include a `:scope` pseudo-class behave + * as if they have a `:scope ` prefix (a `:scope` pseudo-class, followed by + * a descendant selector). + * + * If relative selectors are disabled, selectors starting with a traversal + * will lead to an error. + * + * @default true + * @see {@link https://www.w3.org/TR/selectors-4/#relative} + */ + relativeSelector?: boolean; + /** + * Allow css-select to cache results for some selectors, sometimes greatly + * improving querying performance. Disable this if your document can + * change in between queries with the same compiled selector. + * + * @default true + */ + cacheResults?: boolean; +} +export interface InternalOptions extends Options { + adapter: Adapter; + equals: (a: Node, b: Node) => boolean; +} +export interface CompiledQuery { + (node: ElementNode): boolean; + shouldTestNextSiblings?: boolean; +} +export declare type Query = string | CompiledQuery | Selector[][]; +export declare type CompileToken = (token: InternalSelector[][], options: InternalOptions, context?: Node[] | Node) => CompiledQuery; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/types.d.ts.map b/node_modules/css-select/lib/esm/types.d.ts.map new file mode 100644 index 00000000..d14b18f0 --- /dev/null +++ b/node_modules/css-select/lib/esm/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/types.js b/node_modules/css-select/lib/esm/types.js new file mode 100644 index 00000000..718fd38a --- /dev/null +++ b/node_modules/css-select/lib/esm/types.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/esm/types.js.map b/node_modules/css-select/lib/esm/types.js.map new file mode 100644 index 00000000..d1bde2f8 --- /dev/null +++ b/node_modules/css-select/lib/esm/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/css-select/lib/general.d.ts b/node_modules/css-select/lib/general.d.ts new file mode 100644 index 00000000..2baa1f31 --- /dev/null +++ b/node_modules/css-select/lib/general.d.ts @@ -0,0 +1,3 @@ +import type { CompiledQuery, InternalOptions, InternalSelector, CompileToken } from "./types.js"; +export declare function compileGeneralSelector(next: CompiledQuery, selector: InternalSelector, options: InternalOptions, context: Node[] | undefined, compileToken: CompileToken): CompiledQuery; +//# sourceMappingURL=general.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/general.d.ts.map b/node_modules/css-select/lib/general.d.ts.map new file mode 100644 index 00000000..82c8d6d4 --- /dev/null +++ b/node_modules/css-select/lib/general.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"general.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["general.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAER,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACf,MAAM,YAAY,CAAC;AAkBpB,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACjE,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,EAC3B,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,GAC9C,aAAa,CAAC,WAAW,CAAC,CAiK5B"} \ No newline at end of file diff --git a/node_modules/css-select/lib/general.js b/node_modules/css-select/lib/general.js new file mode 100644 index 00000000..5c068004 --- /dev/null +++ b/node_modules/css-select/lib/general.js @@ -0,0 +1,148 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.compileGeneralSelector = void 0; +var attributes_js_1 = require("./attributes.js"); +var index_js_1 = require("./pseudo-selectors/index.js"); +var css_what_1 = require("css-what"); +function getElementParent(node, adapter) { + var parent = adapter.getParent(node); + if (parent && adapter.isTag(parent)) { + return parent; + } + return null; +} +/* + * All available rules + */ +function compileGeneralSelector(next, selector, options, context, compileToken) { + var adapter = options.adapter, equals = options.equals; + switch (selector.type) { + case css_what_1.SelectorType.PseudoElement: { + throw new Error("Pseudo-elements are not supported by css-select"); + } + case css_what_1.SelectorType.ColumnCombinator: { + throw new Error("Column combinators are not yet supported by css-select"); + } + case css_what_1.SelectorType.Attribute: { + if (selector.namespace != null) { + throw new Error("Namespaced attributes are not yet supported by css-select"); + } + if (!options.xmlMode || options.lowerCaseAttributeNames) { + selector.name = selector.name.toLowerCase(); + } + return attributes_js_1.attributeRules[selector.action](next, selector, options); + } + case css_what_1.SelectorType.Pseudo: { + return (0, index_js_1.compilePseudoSelector)(next, selector, options, context, compileToken); + } + // Tags + case css_what_1.SelectorType.Tag: { + if (selector.namespace != null) { + throw new Error("Namespaced tag names are not yet supported by css-select"); + } + var name_1 = selector.name; + if (!options.xmlMode || options.lowerCaseTags) { + name_1 = name_1.toLowerCase(); + } + return function tag(elem) { + return adapter.getName(elem) === name_1 && next(elem); + }; + } + // Traversal + case css_what_1.SelectorType.Descendant: { + if (options.cacheResults === false || + typeof WeakSet === "undefined") { + return function descendant(elem) { + var current = elem; + while ((current = getElementParent(current, adapter))) { + if (next(current)) { + return true; + } + } + return false; + }; + } + // @ts-expect-error `ElementNode` is not extending object + var isFalseCache_1 = new WeakSet(); + return function cachedDescendant(elem) { + var current = elem; + while ((current = getElementParent(current, adapter))) { + if (!isFalseCache_1.has(current)) { + if (adapter.isTag(current) && next(current)) { + return true; + } + isFalseCache_1.add(current); + } + } + return false; + }; + } + case "_flexibleDescendant": { + // Include element itself, only used while querying an array + return function flexibleDescendant(elem) { + var current = elem; + do { + if (next(current)) + return true; + } while ((current = getElementParent(current, adapter))); + return false; + }; + } + case css_what_1.SelectorType.Parent: { + return function parent(elem) { + return adapter + .getChildren(elem) + .some(function (elem) { return adapter.isTag(elem) && next(elem); }); + }; + } + case css_what_1.SelectorType.Child: { + return function child(elem) { + var parent = adapter.getParent(elem); + return parent != null && adapter.isTag(parent) && next(parent); + }; + } + case css_what_1.SelectorType.Sibling: { + return function sibling(elem) { + var siblings = adapter.getSiblings(elem); + for (var i = 0; i < siblings.length; i++) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling) && next(currentSibling)) { + return true; + } + } + return false; + }; + } + case css_what_1.SelectorType.Adjacent: { + if (adapter.prevElementSibling) { + return function adjacent(elem) { + var previous = adapter.prevElementSibling(elem); + return previous != null && next(previous); + }; + } + return function adjacent(elem) { + var siblings = adapter.getSiblings(elem); + var lastElement; + for (var i = 0; i < siblings.length; i++) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling)) { + lastElement = currentSibling; + } + } + return !!lastElement && next(lastElement); + }; + } + case css_what_1.SelectorType.Universal: { + if (selector.namespace != null && selector.namespace !== "*") { + throw new Error("Namespaced universal selectors are not yet supported by css-select"); + } + return next; + } + } +} +exports.compileGeneralSelector = compileGeneralSelector; +//# sourceMappingURL=general.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/general.js.map b/node_modules/css-select/lib/general.js.map new file mode 100644 index 00000000..0832b74e --- /dev/null +++ b/node_modules/css-select/lib/general.js.map @@ -0,0 +1 @@ +{"version":3,"file":"general.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["general.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/index.d.ts b/node_modules/css-select/lib/index.d.ts new file mode 100644 index 00000000..09113723 --- /dev/null +++ b/node_modules/css-select/lib/index.d.ts @@ -0,0 +1,50 @@ +import type { CompiledQuery, Options, Query, Adapter } from "./types.js"; +export type { Options }; +/** + * Compiles the query, returns a function. + */ +export declare const compile: (selector: string | import("css-what").Selector[][], options?: Options | undefined, context?: Node | Node[] | undefined) => CompiledQuery; +export declare const _compileUnsafe: (selector: string | import("css-what").Selector[][], options?: Options | undefined, context?: Node | Node[] | undefined) => CompiledQuery; +export declare const _compileToken: (selector: import("./types.js").InternalSelector[][], options?: Options | undefined, context?: Node | Node[] | undefined) => CompiledQuery; +export declare function prepareContext(elems: Node | Node[], adapter: Adapter, shouldTestNextSiblings?: boolean): Node[]; +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns All matching elements. + * + */ +export declare const selectAll: (query: Query, elements: Node | Node[], options?: Options | undefined) => ElementNode[]; +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns the first match, or null if there was no match. + */ +export declare const selectOne: (query: Query, elements: Node | Node[], options?: Options | undefined) => ElementNode | null; +/** + * Tests whether or not an element is matched by query. + * + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elem The element to test if it matches the query. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns + */ +export declare function is(elem: ElementNode, query: Query, options?: Options): boolean; +/** + * Alias for selectAll(query, elems, options). + * @see [compile] for supported selector queries. + */ +export default selectAll; +/** @deprecated Use the `pseudos` option instead. */ +export { filters, pseudos, aliases } from "./pseudo-selectors/index.js"; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/index.d.ts.map b/node_modules/css-select/lib/index.d.ts.map new file mode 100644 index 00000000..120c4fec --- /dev/null +++ b/node_modules/css-select/lib/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACR,aAAa,EACb,OAAO,EAEP,KAAK,EACL,OAAO,EAEV,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,OAAO,EAAE,CAAC;AA0CxB;;GAEG;AACH,eAAO,MAAM,OAAO,oMAA0B,CAAC;AAC/C,eAAO,MAAM,cAAc,2MAA6B,CAAC;AACzD,eAAO,MAAM,aAAa,4MAA4B,CAAC;AA6BvD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACzD,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,EACpB,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EACnC,sBAAsB,UAAQ,GAC/B,IAAI,EAAE,CAYR;AAiBD;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,yJASrB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,8JASrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,EAAE,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAC7C,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,EACzB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GACrC,OAAO,CAKT;AAED;;;GAGG;AACH,eAAe,SAAS,CAAC;AAGzB,oDAAoD;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/index.js b/node_modules/css-select/lib/index.js new file mode 100644 index 00000000..0dc6da01 --- /dev/null +++ b/node_modules/css-select/lib/index.js @@ -0,0 +1,154 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0; +var DomUtils = __importStar(require("domutils")); +var boolbase_1 = __importDefault(require("boolbase")); +var compile_js_1 = require("./compile.js"); +var subselects_js_1 = require("./pseudo-selectors/subselects.js"); +var defaultEquals = function (a, b) { return a === b; }; +var defaultOptions = { + adapter: DomUtils, + equals: defaultEquals, +}; +function convertOptionFormats(options) { + var _a, _b, _c, _d; + /* + * We force one format of options to the other one. + */ + // @ts-expect-error Default options may have incompatible `Node` / `ElementNode`. + var opts = options !== null && options !== void 0 ? options : defaultOptions; + // @ts-expect-error Same as above. + (_a = opts.adapter) !== null && _a !== void 0 ? _a : (opts.adapter = DomUtils); + // @ts-expect-error `equals` does not exist on `Options` + (_b = opts.equals) !== null && _b !== void 0 ? _b : (opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals); + return opts; +} +function wrapCompile(func) { + return function addAdapter(selector, options, context) { + var opts = convertOptionFormats(options); + return func(selector, opts, context); + }; +} +/** + * Compiles the query, returns a function. + */ +exports.compile = wrapCompile(compile_js_1.compile); +exports._compileUnsafe = wrapCompile(compile_js_1.compileUnsafe); +exports._compileToken = wrapCompile(compile_js_1.compileToken); +function getSelectorFunc(searchFunc) { + return function select(query, elements, options) { + var opts = convertOptionFormats(options); + if (typeof query !== "function") { + query = (0, compile_js_1.compileUnsafe)(query, opts, elements); + } + var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings); + return searchFunc(query, filteredElements, opts); + }; +} +function prepareContext(elems, adapter, shouldTestNextSiblings) { + if (shouldTestNextSiblings === void 0) { shouldTestNextSiblings = false; } + /* + * Add siblings if the query requires them. + * See https://github.com/fb55/css-select/pull/43#issuecomment-225414692 + */ + if (shouldTestNextSiblings) { + elems = appendNextSiblings(elems, adapter); + } + return Array.isArray(elems) + ? adapter.removeSubsets(elems) + : adapter.getChildren(elems); +} +exports.prepareContext = prepareContext; +function appendNextSiblings(elem, adapter) { + // Order matters because jQuery seems to check the children before the siblings + var elems = Array.isArray(elem) ? elem.slice(0) : [elem]; + var elemsLength = elems.length; + for (var i = 0; i < elemsLength; i++) { + var nextSiblings = (0, subselects_js_1.getNextSiblings)(elems[i], adapter); + elems.push.apply(elems, nextSiblings); + } + return elems; +} +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns All matching elements. + * + */ +exports.selectAll = getSelectorFunc(function (query, elems, options) { + return query === boolbase_1.default.falseFunc || !elems || elems.length === 0 + ? [] + : options.adapter.findAll(query, elems); +}); +/** + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elems Elements to query. If it is an element, its children will be queried.. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns the first match, or null if there was no match. + */ +exports.selectOne = getSelectorFunc(function (query, elems, options) { + return query === boolbase_1.default.falseFunc || !elems || elems.length === 0 + ? null + : options.adapter.findOne(query, elems); +}); +/** + * Tests whether or not an element is matched by query. + * + * @template Node The generic Node type for the DOM adapter being used. + * @template ElementNode The Node type for elements for the DOM adapter being used. + * @param elem The element to test if it matches the query. + * @param query can be either a CSS selector string or a compiled query function. + * @param [options] options for querying the document. + * @see compile for supported selector queries. + * @returns + */ +function is(elem, query, options) { + var opts = convertOptionFormats(options); + return (typeof query === "function" ? query : (0, compile_js_1.compile)(query, opts))(elem); +} +exports.is = is; +/** + * Alias for selectAll(query, elems, options). + * @see [compile] for supported selector queries. + */ +exports.default = exports.selectAll; +// Export filters, pseudos and aliases to allow users to supply their own. +/** @deprecated Use the `pseudos` option instead. */ +var index_js_1 = require("./pseudo-selectors/index.js"); +Object.defineProperty(exports, "filters", { enumerable: true, get: function () { return index_js_1.filters; } }); +Object.defineProperty(exports, "pseudos", { enumerable: true, get: function () { return index_js_1.pseudos; } }); +Object.defineProperty(exports, "aliases", { enumerable: true, get: function () { return index_js_1.aliases; } }); +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/index.js.map b/node_modules/css-select/lib/index.js.map new file mode 100644 index 00000000..c44e8567 --- /dev/null +++ b/node_modules/css-select/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts b/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts new file mode 100644 index 00000000..1bcb31a4 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts @@ -0,0 +1,5 @@ +/** + * Aliases are pseudos that are expressed as selectors. + */ +export declare const aliases: Record; +//# sourceMappingURL=aliases.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts.map b/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts.map new file mode 100644 index 00000000..37c9e8ce --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/aliases.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"aliases.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/aliases.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwC1C,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/aliases.js b/node_modules/css-select/lib/pseudo-selectors/aliases.js new file mode 100644 index 00000000..c2598895 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/aliases.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.aliases = void 0; +/** + * Aliases are pseudos that are expressed as selectors. + */ +exports.aliases = { + // Links + "any-link": ":is(a, area, link)[href]", + link: ":any-link:not(:visited)", + // Forms + // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements + disabled: ":is(\n :is(button, input, select, textarea, optgroup, option)[disabled],\n optgroup[disabled] > option,\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\n )", + enabled: ":not(:disabled)", + checked: ":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)", + required: ":is(input, select, textarea)[required]", + optional: ":is(input, select, textarea):not([required])", + // JQuery extensions + // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness + selected: "option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)", + checkbox: "[type=checkbox]", + file: "[type=file]", + password: "[type=password]", + radio: "[type=radio]", + reset: "[type=reset]", + image: "[type=image]", + submit: "[type=submit]", + parent: ":not(:empty)", + header: ":is(h1, h2, h3, h4, h5, h6)", + button: ":is(button, input[type=button])", + input: ":is(input, textarea, select, button)", + text: "input:is(:not([type!='']), [type=text])", +}; +//# sourceMappingURL=aliases.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/aliases.js.map b/node_modules/css-select/lib/pseudo-selectors/aliases.js.map new file mode 100644 index 00000000..6a82f970 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/aliases.js.map @@ -0,0 +1 @@ +{"version":3,"file":"aliases.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/aliases.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,OAAO,GAA2B;IAC3C,QAAQ;IAER,UAAU,EAAE,0BAA0B;IACtC,IAAI,EAAE,yBAAyB;IAE/B,QAAQ;IAER,0EAA0E;IAC1E,QAAQ,EAAE,yMAIR;IACF,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EACH,6EAA6E;IACjF,QAAQ,EAAE,wCAAwC;IAClD,QAAQ,EAAE,8CAA8C;IAExD,oBAAoB;IAEpB,wFAAwF;IACxF,QAAQ,EACJ,8FAA8F;IAElG,QAAQ,EAAE,iBAAiB;IAC3B,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,iBAAiB;IAC3B,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,eAAe;IAEvB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,6BAA6B;IAErC,MAAM,EAAE,iCAAiC;IACzC,KAAK,EAAE,sCAAsC;IAC7C,IAAI,EAAE,yCAAyC;CAClD,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/filters.d.ts b/node_modules/css-select/lib/pseudo-selectors/filters.d.ts new file mode 100644 index 00000000..a75d0631 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/filters.d.ts @@ -0,0 +1,4 @@ +import type { CompiledQuery, InternalOptions } from "../types.js"; +export declare type Filter = (next: CompiledQuery, text: string, options: InternalOptions, context?: Node[]) => CompiledQuery; +export declare const filters: Record; +//# sourceMappingURL=filters.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/filters.d.ts.map b/node_modules/css-select/lib/pseudo-selectors/filters.d.ts.map new file mode 100644 index 00000000..86f1cef3 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/filters.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"filters.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/filters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAW,MAAM,aAAa,CAAC;AAE3E,oBAAY,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAChD,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,CAAC,EAAE,IAAI,EAAE,KACf,aAAa,CAAC,WAAW,CAAC,CAAC;AAYhC,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2I1C,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/filters.js b/node_modules/css-select/lib/pseudo-selectors/filters.js new file mode 100644 index 00000000..981ec2f7 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/filters.js @@ -0,0 +1,157 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.filters = void 0; +var nth_check_1 = __importDefault(require("nth-check")); +var boolbase_1 = __importDefault(require("boolbase")); +function getChildFunc(next, adapter) { + return function (elem) { + var parent = adapter.getParent(elem); + return parent != null && adapter.isTag(parent) && next(elem); + }; +} +exports.filters = { + contains: function (next, text, _a) { + var adapter = _a.adapter; + return function contains(elem) { + return next(elem) && adapter.getText(elem).includes(text); + }; + }, + icontains: function (next, text, _a) { + var adapter = _a.adapter; + var itext = text.toLowerCase(); + return function icontains(elem) { + return (next(elem) && + adapter.getText(elem).toLowerCase().includes(itext)); + }; + }, + // Location specific methods + "nth-child": function (next, rule, _a) { + var adapter = _a.adapter, equals = _a.equals; + var func = (0, nth_check_1.default)(rule); + if (func === boolbase_1.default.falseFunc) + return boolbase_1.default.falseFunc; + if (func === boolbase_1.default.trueFunc) + return getChildFunc(next, adapter); + return function nthChild(elem) { + var siblings = adapter.getSiblings(elem); + var pos = 0; + for (var i = 0; i < siblings.length; i++) { + if (equals(elem, siblings[i])) + break; + if (adapter.isTag(siblings[i])) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + "nth-last-child": function (next, rule, _a) { + var adapter = _a.adapter, equals = _a.equals; + var func = (0, nth_check_1.default)(rule); + if (func === boolbase_1.default.falseFunc) + return boolbase_1.default.falseFunc; + if (func === boolbase_1.default.trueFunc) + return getChildFunc(next, adapter); + return function nthLastChild(elem) { + var siblings = adapter.getSiblings(elem); + var pos = 0; + for (var i = siblings.length - 1; i >= 0; i--) { + if (equals(elem, siblings[i])) + break; + if (adapter.isTag(siblings[i])) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + "nth-of-type": function (next, rule, _a) { + var adapter = _a.adapter, equals = _a.equals; + var func = (0, nth_check_1.default)(rule); + if (func === boolbase_1.default.falseFunc) + return boolbase_1.default.falseFunc; + if (func === boolbase_1.default.trueFunc) + return getChildFunc(next, adapter); + return function nthOfType(elem) { + var siblings = adapter.getSiblings(elem); + var pos = 0; + for (var i = 0; i < siblings.length; i++) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === adapter.getName(elem)) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + "nth-last-of-type": function (next, rule, _a) { + var adapter = _a.adapter, equals = _a.equals; + var func = (0, nth_check_1.default)(rule); + if (func === boolbase_1.default.falseFunc) + return boolbase_1.default.falseFunc; + if (func === boolbase_1.default.trueFunc) + return getChildFunc(next, adapter); + return function nthLastOfType(elem) { + var siblings = adapter.getSiblings(elem); + var pos = 0; + for (var i = siblings.length - 1; i >= 0; i--) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + break; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === adapter.getName(elem)) { + pos++; + } + } + return func(pos) && next(elem); + }; + }, + // TODO determine the actual root element + root: function (next, _rule, _a) { + var adapter = _a.adapter; + return function (elem) { + var parent = adapter.getParent(elem); + return (parent == null || !adapter.isTag(parent)) && next(elem); + }; + }, + scope: function (next, rule, options, context) { + var equals = options.equals; + if (!context || context.length === 0) { + // Equivalent to :root + return exports.filters["root"](next, rule, options); + } + if (context.length === 1) { + // NOTE: can't be unpacked, as :has uses this for side-effects + return function (elem) { return equals(context[0], elem) && next(elem); }; + } + return function (elem) { return context.includes(elem) && next(elem); }; + }, + hover: dynamicStatePseudo("isHovered"), + visited: dynamicStatePseudo("isVisited"), + active: dynamicStatePseudo("isActive"), +}; +/** + * Dynamic state pseudos. These depend on optional Adapter methods. + * + * @param name The name of the adapter method to call. + * @returns Pseudo for the `filters` object. + */ +function dynamicStatePseudo(name) { + return function dynamicPseudo(next, _rule, _a) { + var adapter = _a.adapter; + var func = adapter[name]; + if (typeof func !== "function") { + return boolbase_1.default.falseFunc; + } + return function active(elem) { + return func(elem) && next(elem); + }; + }; +} +//# sourceMappingURL=filters.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/filters.js.map b/node_modules/css-select/lib/pseudo-selectors/filters.js.map new file mode 100644 index 00000000..5ce5696f --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/filters.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filters.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/filters.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/index.d.ts b/node_modules/css-select/lib/pseudo-selectors/index.d.ts new file mode 100644 index 00000000..2c41913c --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/index.d.ts @@ -0,0 +1,8 @@ +import type { CompiledQuery, InternalOptions, CompileToken } from "../types.js"; +import { PseudoSelector } from "css-what"; +import { filters } from "./filters.js"; +import { pseudos } from "./pseudos.js"; +import { aliases } from "./aliases.js"; +export { filters, pseudos, aliases }; +export declare function compilePseudoSelector(next: CompiledQuery, selector: PseudoSelector, options: InternalOptions, context: Node[] | undefined, compileToken: CompileToken): CompiledQuery; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/index.d.ts.map b/node_modules/css-select/lib/pseudo-selectors/index.d.ts.map new file mode 100644 index 00000000..ba140978 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAS,cAAc,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAErC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAChE,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,EAC3B,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,GAC9C,aAAa,CAAC,WAAW,CAAC,CA4C5B"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/index.js b/node_modules/css-select/lib/pseudo-selectors/index.js new file mode 100644 index 00000000..25367865 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/index.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filters = void 0; +var css_what_1 = require("css-what"); +var filters_js_1 = require("./filters.js"); +Object.defineProperty(exports, "filters", { enumerable: true, get: function () { return filters_js_1.filters; } }); +var pseudos_js_1 = require("./pseudos.js"); +Object.defineProperty(exports, "pseudos", { enumerable: true, get: function () { return pseudos_js_1.pseudos; } }); +var aliases_js_1 = require("./aliases.js"); +Object.defineProperty(exports, "aliases", { enumerable: true, get: function () { return aliases_js_1.aliases; } }); +var subselects_js_1 = require("./subselects.js"); +function compilePseudoSelector(next, selector, options, context, compileToken) { + var _a; + var name = selector.name, data = selector.data; + if (Array.isArray(data)) { + if (!(name in subselects_js_1.subselects)) { + throw new Error("Unknown pseudo-class :".concat(name, "(").concat(data, ")")); + } + return subselects_js_1.subselects[name](next, data, options, context, compileToken); + } + var userPseudo = (_a = options.pseudos) === null || _a === void 0 ? void 0 : _a[name]; + var stringPseudo = typeof userPseudo === "string" ? userPseudo : aliases_js_1.aliases[name]; + if (typeof stringPseudo === "string") { + if (data != null) { + throw new Error("Pseudo ".concat(name, " doesn't have any arguments")); + } + // The alias has to be parsed here, to make sure options are respected. + var alias = (0, css_what_1.parse)(stringPseudo); + return subselects_js_1.subselects["is"](next, alias, options, context, compileToken); + } + if (typeof userPseudo === "function") { + (0, pseudos_js_1.verifyPseudoArgs)(userPseudo, name, data, 1); + return function (elem) { return userPseudo(elem, data) && next(elem); }; + } + if (name in filters_js_1.filters) { + return filters_js_1.filters[name](next, data, options, context); + } + if (name in pseudos_js_1.pseudos) { + var pseudo_1 = pseudos_js_1.pseudos[name]; + (0, pseudos_js_1.verifyPseudoArgs)(pseudo_1, name, data, 2); + return function (elem) { return pseudo_1(elem, options, data) && next(elem); }; + } + throw new Error("Unknown pseudo-class :".concat(name)); +} +exports.compilePseudoSelector = compilePseudoSelector; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/index.js.map b/node_modules/css-select/lib/pseudo-selectors/index.js.map new file mode 100644 index 00000000..93f6fc88 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/index.ts"],"names":[],"mappings":";;;AAeA,qCAAiD;AACjD,2CAAuC;AAK9B,wFALA,oBAAO,OAKA;AAJhB,2CAAyD;AAIvC,wFAJT,oBAAO,OAIS;AAHzB,2CAAuC;AAGZ,wFAHlB,oBAAO,OAGkB;AAFlC,iDAA6C;AAI7C,SAAgB,qBAAqB,CACjC,IAAgC,EAChC,QAAwB,EACxB,OAA2C,EAC3C,OAA2B,EAC3B,YAA6C;;IAErC,IAAA,IAAI,GAAW,QAAQ,KAAnB,EAAE,IAAI,GAAK,QAAQ,KAAb,CAAc;IAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACrB,IAAI,CAAC,CAAC,IAAI,IAAI,0BAAU,CAAC,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,gCAAyB,IAAI,cAAI,IAAI,MAAG,CAAC,CAAC;SAC7D;QAED,OAAO,0BAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;KACvE;IAED,IAAM,UAAU,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAG,IAAI,CAAC,CAAC;IAE3C,IAAM,YAAY,GACd,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAO,CAAC,IAAI,CAAC,CAAC;IAEhE,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;QAClC,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,iBAAU,IAAI,gCAA6B,CAAC,CAAC;SAChE;QAED,uEAAuE;QACvE,IAAM,KAAK,GAAG,IAAA,gBAAK,EAAC,YAAY,CAAC,CAAC;QAClC,OAAO,0BAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;KACxE;IAED,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;QAClC,IAAA,6BAAgB,EAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE5C,OAAO,UAAC,IAAI,IAAK,OAAA,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAApC,CAAoC,CAAC;KACzD;IAED,IAAI,IAAI,IAAI,oBAAO,EAAE;QACjB,OAAO,oBAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;KAChE;IAED,IAAI,IAAI,IAAI,oBAAO,EAAE;QACjB,IAAM,QAAM,GAAG,oBAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAA,6BAAgB,EAAC,QAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAExC,OAAO,UAAC,IAAI,IAAK,OAAA,QAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC;KAC9D;IAED,MAAM,IAAI,KAAK,CAAC,gCAAyB,IAAI,CAAE,CAAC,CAAC;AACrD,CAAC;AAlDD,sDAkDC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts b/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts new file mode 100644 index 00000000..cfcf8d6c --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts @@ -0,0 +1,6 @@ +import type { PseudoSelector } from "css-what"; +import type { InternalOptions } from "../types.js"; +export declare type Pseudo = (elem: ElementNode, options: InternalOptions, subselect?: string | null) => boolean; +export declare const pseudos: Record; +export declare function verifyPseudoArgs>(func: (...args: T) => boolean, name: string, subselect: PseudoSelector["data"], argIndex: number): void; +//# sourceMappingURL=pseudos.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts.map b/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts.map new file mode 100644 index 00000000..b2d11373 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/pseudos.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pseudos.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/pseudos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,oBAAY,MAAM,GAAG,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAChD,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,KACxB,OAAO,CAAC;AAGb,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAkF1C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,EACrD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,EAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,EACjC,QAAQ,EAAE,MAAM,GACjB,IAAI,CAQN"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/pseudos.js b/node_modules/css-select/lib/pseudo-selectors/pseudos.js new file mode 100644 index 00000000..050ac7f7 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/pseudos.js @@ -0,0 +1,93 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.verifyPseudoArgs = exports.pseudos = void 0; +// While filters are precompiled, pseudos get called when they are needed +exports.pseudos = { + empty: function (elem, _a) { + var adapter = _a.adapter; + return !adapter.getChildren(elem).some(function (elem) { + // FIXME: `getText` call is potentially expensive. + return adapter.isTag(elem) || adapter.getText(elem) !== ""; + }); + }, + "first-child": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + if (adapter.prevElementSibling) { + return adapter.prevElementSibling(elem) == null; + } + var firstChild = adapter + .getSiblings(elem) + .find(function (elem) { return adapter.isTag(elem); }); + return firstChild != null && equals(elem, firstChild); + }, + "last-child": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + var siblings = adapter.getSiblings(elem); + for (var i = siblings.length - 1; i >= 0; i--) { + if (equals(elem, siblings[i])) + return true; + if (adapter.isTag(siblings[i])) + break; + } + return false; + }, + "first-of-type": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + var siblings = adapter.getSiblings(elem); + var elemName = adapter.getName(elem); + for (var i = 0; i < siblings.length; i++) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + return true; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === elemName) { + break; + } + } + return false; + }, + "last-of-type": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + var siblings = adapter.getSiblings(elem); + var elemName = adapter.getName(elem); + for (var i = siblings.length - 1; i >= 0; i--) { + var currentSibling = siblings[i]; + if (equals(elem, currentSibling)) + return true; + if (adapter.isTag(currentSibling) && + adapter.getName(currentSibling) === elemName) { + break; + } + } + return false; + }, + "only-of-type": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + var elemName = adapter.getName(elem); + return adapter + .getSiblings(elem) + .every(function (sibling) { + return equals(elem, sibling) || + !adapter.isTag(sibling) || + adapter.getName(sibling) !== elemName; + }); + }, + "only-child": function (elem, _a) { + var adapter = _a.adapter, equals = _a.equals; + return adapter + .getSiblings(elem) + .every(function (sibling) { return equals(elem, sibling) || !adapter.isTag(sibling); }); + }, +}; +function verifyPseudoArgs(func, name, subselect, argIndex) { + if (subselect === null) { + if (func.length > argIndex) { + throw new Error("Pseudo-class :".concat(name, " requires an argument")); + } + } + else if (func.length === argIndex) { + throw new Error("Pseudo-class :".concat(name, " doesn't have any arguments")); + } +} +exports.verifyPseudoArgs = verifyPseudoArgs; +//# sourceMappingURL=pseudos.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/pseudos.js.map b/node_modules/css-select/lib/pseudo-selectors/pseudos.js.map new file mode 100644 index 00000000..089cc51c --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/pseudos.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pseudos.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/pseudos.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts b/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts new file mode 100644 index 00000000..6555ef2d --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts @@ -0,0 +1,9 @@ +import type { Selector } from "css-what"; +import type { CompiledQuery, InternalOptions, CompileToken, Adapter } from "../types.js"; +/** Used as a placeholder for :has. Will be replaced with the actual element. */ +export declare const PLACEHOLDER_ELEMENT: {}; +export declare function ensureIsTag(next: CompiledQuery, adapter: Adapter): CompiledQuery; +export declare type Subselect = (next: CompiledQuery, subselect: Selector[][], options: InternalOptions, context: Node[] | undefined, compileToken: CompileToken) => CompiledQuery; +export declare function getNextSiblings(elem: Node, adapter: Adapter): ElementNode[]; +export declare const subselects: Record; +//# sourceMappingURL=subselects.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts.map b/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts.map new file mode 100644 index 00000000..9950c0cc --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/subselects.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"subselects.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/subselects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EACR,aAAa,EACb,eAAe,EACf,YAAY,EACZ,OAAO,EACV,MAAM,aAAa,CAAC;AAGrB,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,IAAK,CAAC;AAEtC,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACtD,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GACpC,aAAa,CAAC,IAAI,CAAC,CAGrB;AAED,oBAAY,SAAS,GAAG,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EACnD,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,EAChC,SAAS,EAAE,QAAQ,EAAE,EAAE,EACvB,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,EAC3C,OAAO,EAAE,IAAI,EAAE,GAAG,SAAS,EAC3B,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,KAC5C,aAAa,CAAC,WAAW,CAAC,CAAC;AAEhC,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,SAAS,IAAI,EAC1D,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,GACpC,WAAW,EAAE,CAMf;AAiCD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAgEhD,CAAC"} \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/subselects.js b/node_modules/css-select/lib/pseudo-selectors/subselects.js new file mode 100644 index 00000000..d2f3b1c6 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/subselects.js @@ -0,0 +1,112 @@ +"use strict"; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0; +var boolbase_1 = __importDefault(require("boolbase")); +var sort_js_1 = require("../sort.js"); +/** Used as a placeholder for :has. Will be replaced with the actual element. */ +exports.PLACEHOLDER_ELEMENT = {}; +function ensureIsTag(next, adapter) { + if (next === boolbase_1.default.falseFunc) + return boolbase_1.default.falseFunc; + return function (elem) { return adapter.isTag(elem) && next(elem); }; +} +exports.ensureIsTag = ensureIsTag; +function getNextSiblings(elem, adapter) { + var siblings = adapter.getSiblings(elem); + if (siblings.length <= 1) + return []; + var elemIndex = siblings.indexOf(elem); + if (elemIndex < 0 || elemIndex === siblings.length - 1) + return []; + return siblings.slice(elemIndex + 1).filter(adapter.isTag); +} +exports.getNextSiblings = getNextSiblings; +function copyOptions(options) { + // Not copied: context, rootFunc + return { + xmlMode: !!options.xmlMode, + lowerCaseAttributeNames: !!options.lowerCaseAttributeNames, + lowerCaseTags: !!options.lowerCaseTags, + quirksMode: !!options.quirksMode, + cacheResults: !!options.cacheResults, + pseudos: options.pseudos, + adapter: options.adapter, + equals: options.equals, + }; +} +var is = function (next, token, options, context, compileToken) { + var func = compileToken(token, copyOptions(options), context); + return func === boolbase_1.default.trueFunc + ? next + : func === boolbase_1.default.falseFunc + ? boolbase_1.default.falseFunc + : function (elem) { return func(elem) && next(elem); }; +}; +/* + * :not, :has, :is, :matches and :where have to compile selectors + * doing this in src/pseudos.ts would lead to circular dependencies, + * so we add them here + */ +exports.subselects = { + is: is, + /** + * `:matches` and `:where` are aliases for `:is`. + */ + matches: is, + where: is, + not: function (next, token, options, context, compileToken) { + var func = compileToken(token, copyOptions(options), context); + return func === boolbase_1.default.falseFunc + ? next + : func === boolbase_1.default.trueFunc + ? boolbase_1.default.falseFunc + : function (elem) { return !func(elem) && next(elem); }; + }, + has: function (next, subselect, options, _context, compileToken) { + var adapter = options.adapter; + var opts = copyOptions(options); + opts.relativeSelector = true; + var context = subselect.some(function (s) { return s.some(sort_js_1.isTraversal); }) + ? // Used as a placeholder. Will be replaced with the actual element. + [exports.PLACEHOLDER_ELEMENT] + : undefined; + var compiled = compileToken(subselect, opts, context); + if (compiled === boolbase_1.default.falseFunc) + return boolbase_1.default.falseFunc; + var hasElement = ensureIsTag(compiled, adapter); + // If `compiled` is `trueFunc`, we can skip this. + if (context && compiled !== boolbase_1.default.trueFunc) { + /* + * `shouldTestNextSiblings` will only be true if the query starts with + * a traversal (sibling or adjacent). That means we will always have a context. + */ + var _a = compiled.shouldTestNextSiblings, shouldTestNextSiblings_1 = _a === void 0 ? false : _a; + return function (elem) { + if (!next(elem)) + return false; + context[0] = elem; + var childs = adapter.getChildren(elem); + var nextElements = shouldTestNextSiblings_1 + ? __spreadArray(__spreadArray([], childs, true), getNextSiblings(elem, adapter), true) : childs; + return adapter.existsOne(hasElement, nextElements); + }; + } + return function (elem) { + return next(elem) && + adapter.existsOne(hasElement, adapter.getChildren(elem)); + }; + }, +}; +//# sourceMappingURL=subselects.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/pseudo-selectors/subselects.js.map b/node_modules/css-select/lib/pseudo-selectors/subselects.js.map new file mode 100644 index 00000000..40e0c258 --- /dev/null +++ b/node_modules/css-select/lib/pseudo-selectors/subselects.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subselects.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["pseudo-selectors/subselects.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/sort.d.ts b/node_modules/css-select/lib/sort.d.ts new file mode 100644 index 00000000..93c996c1 --- /dev/null +++ b/node_modules/css-select/lib/sort.d.ts @@ -0,0 +1,12 @@ +import type { InternalSelector } from "./types.js"; +import { type Traversal } from "css-what"; +export declare function isTraversal(token: InternalSelector): token is Traversal; +/** + * Sort the parts of the passed selector, + * as there is potential for optimization + * (some types of selectors are faster than others) + * + * @param arr Selector to sort + */ +export default function sortByProcedure(arr: InternalSelector[]): void; +//# sourceMappingURL=sort.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/sort.d.ts.map b/node_modules/css-select/lib/sort.d.ts.map new file mode 100644 index 00000000..8e996f4a --- /dev/null +++ b/node_modules/css-select/lib/sort.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"sort.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AASzE,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,KAAK,IAAI,SAAS,CAEvE;AAWD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAerE"} \ No newline at end of file diff --git a/node_modules/css-select/lib/sort.js b/node_modules/css-select/lib/sort.js new file mode 100644 index 00000000..d597e825 --- /dev/null +++ b/node_modules/css-select/lib/sort.js @@ -0,0 +1,84 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isTraversal = void 0; +var css_what_1 = require("css-what"); +var procedure = new Map([ + [css_what_1.SelectorType.Universal, 50], + [css_what_1.SelectorType.Tag, 30], + [css_what_1.SelectorType.Attribute, 1], + [css_what_1.SelectorType.Pseudo, 0], +]); +function isTraversal(token) { + return !procedure.has(token.type); +} +exports.isTraversal = isTraversal; +var attributes = new Map([ + [css_what_1.AttributeAction.Exists, 10], + [css_what_1.AttributeAction.Equals, 8], + [css_what_1.AttributeAction.Not, 7], + [css_what_1.AttributeAction.Start, 6], + [css_what_1.AttributeAction.End, 6], + [css_what_1.AttributeAction.Any, 5], +]); +/** + * Sort the parts of the passed selector, + * as there is potential for optimization + * (some types of selectors are faster than others) + * + * @param arr Selector to sort + */ +function sortByProcedure(arr) { + var procs = arr.map(getProcedure); + for (var i = 1; i < arr.length; i++) { + var procNew = procs[i]; + if (procNew < 0) + continue; + for (var j = i - 1; j >= 0 && procNew < procs[j]; j--) { + var token = arr[j + 1]; + arr[j + 1] = arr[j]; + arr[j] = token; + procs[j + 1] = procs[j]; + procs[j] = procNew; + } + } +} +exports.default = sortByProcedure; +function getProcedure(token) { + var _a, _b; + var proc = (_a = procedure.get(token.type)) !== null && _a !== void 0 ? _a : -1; + if (token.type === css_what_1.SelectorType.Attribute) { + proc = (_b = attributes.get(token.action)) !== null && _b !== void 0 ? _b : 4; + if (token.action === css_what_1.AttributeAction.Equals && token.name === "id") { + // Prefer ID selectors (eg. #ID) + proc = 9; + } + if (token.ignoreCase) { + /* + * IgnoreCase adds some overhead, prefer "normal" token + * this is a binary operation, to ensure it's still an int + */ + proc >>= 1; + } + } + else if (token.type === css_what_1.SelectorType.Pseudo) { + if (!token.data) { + proc = 3; + } + else if (token.name === "has" || token.name === "contains") { + proc = 0; // Expensive in any case + } + else if (Array.isArray(token.data)) { + // Eg. :matches, :not + proc = Math.min.apply(Math, token.data.map(function (d) { return Math.min.apply(Math, d.map(getProcedure)); })); + // If we have traversals, try to avoid executing this selector + if (proc < 0) { + proc = 0; + } + } + else { + proc = 2; + } + } + return proc; +} +//# sourceMappingURL=sort.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/sort.js.map b/node_modules/css-select/lib/sort.js.map new file mode 100644 index 00000000..5b4862b7 --- /dev/null +++ b/node_modules/css-select/lib/sort.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sort.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["sort.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/types.d.ts b/node_modules/css-select/lib/types.d.ts new file mode 100644 index 00000000..7a0cd8a5 --- /dev/null +++ b/node_modules/css-select/lib/types.d.ts @@ -0,0 +1,167 @@ +import type { Selector } from "css-what"; +export declare type InternalSelector = Selector | { + type: "_flexibleDescendant"; +}; +export declare type Predicate = (v: Value) => boolean; +export interface Adapter { + /** + * Is the node a tag? + */ + isTag: (node: Node) => node is ElementNode; + /** + * Does at least one of passed element nodes pass the test predicate? + */ + existsOne: (test: Predicate, elems: Node[]) => boolean; + /** + * Get the attribute value. + */ + getAttributeValue: (elem: ElementNode, name: string) => string | undefined; + /** + * Get the node's children + */ + getChildren: (node: Node) => Node[]; + /** + * Get the name of the tag + */ + getName: (elem: ElementNode) => string; + /** + * Get the parent of the node + */ + getParent: (node: ElementNode) => Node | null; + /** + * Get the siblings of the node. Note that unlike jQuery's `siblings` method, + * this is expected to include the current node as well + */ + getSiblings: (node: Node) => Node[]; + /** + * Returns the previous element sibling of a node. + */ + prevElementSibling?: (node: Node) => ElementNode | null; + /** + * Get the text content of the node, and its children if it has any. + */ + getText: (node: Node) => string; + /** + * Does the element have the named attribute? + */ + hasAttrib: (elem: ElementNode, name: string) => boolean; + /** + * Takes an array of nodes, and removes any duplicates, as well as any + * nodes whose ancestors are also in the array. + */ + removeSubsets: (nodes: Node[]) => Node[]; + /** + * Finds all of the element nodes in the array that match the test predicate, + * as well as any of their children that match it. + */ + findAll: (test: Predicate, nodes: Node[]) => ElementNode[]; + /** + * Finds the first node in the array that matches the test predicate, or one + * of its children. + */ + findOne: (test: Predicate, elems: Node[]) => ElementNode | null; + /** + * The adapter can also optionally include an equals method, if your DOM + * structure needs a custom equality test to compare two objects which refer + * to the same underlying node. If not provided, `css-select` will fall back to + * `a === b`. + */ + equals?: (a: Node, b: Node) => boolean; + /** + * Is the element in hovered state? + */ + isHovered?: (elem: ElementNode) => boolean; + /** + * Is the element in visited state? + */ + isVisited?: (elem: ElementNode) => boolean; + /** + * Is the element in active state? + */ + isActive?: (elem: ElementNode) => boolean; +} +export interface Options { + /** + * When enabled, tag names will be case-sensitive. + * + * @default false + */ + xmlMode?: boolean; + /** + * Lower-case attribute names. + * + * @default !xmlMode + */ + lowerCaseAttributeNames?: boolean; + /** + * Lower-case tag names. + * + * @default !xmlMode + */ + lowerCaseTags?: boolean; + /** + * Is the document in quirks mode? + * + * This will lead to .className and #id being case-insensitive. + * + * @default false + */ + quirksMode?: boolean; + /** + * Pseudo-classes that override the default ones. + * + * Maps from names to either strings of functions. + * - A string value is a selector that the element must match to be selected. + * - A function is called with the element as its first argument, and optional + * parameters second. If it returns true, the element is selected. + */ + pseudos?: Record boolean)> | undefined; + /** + * The last function in the stack, will be called with the last element + * that's looked at. + */ + rootFunc?: (element: ElementNode) => boolean; + /** + * The adapter to use when interacting with the backing DOM structure. By + * default it uses the `domutils` module. + */ + adapter?: Adapter; + /** + * The context of the current query. Used to limit the scope of searches. + * Can be matched directly using the `:scope` pseudo-class. + */ + context?: Node | Node[]; + /** + * Indicates whether to consider the selector as a relative selector. + * + * Relative selectors that don't include a `:scope` pseudo-class behave + * as if they have a `:scope ` prefix (a `:scope` pseudo-class, followed by + * a descendant selector). + * + * If relative selectors are disabled, selectors starting with a traversal + * will lead to an error. + * + * @default true + * @see {@link https://www.w3.org/TR/selectors-4/#relative} + */ + relativeSelector?: boolean; + /** + * Allow css-select to cache results for some selectors, sometimes greatly + * improving querying performance. Disable this if your document can + * change in between queries with the same compiled selector. + * + * @default true + */ + cacheResults?: boolean; +} +export interface InternalOptions extends Options { + adapter: Adapter; + equals: (a: Node, b: Node) => boolean; +} +export interface CompiledQuery { + (node: ElementNode): boolean; + shouldTestNextSiblings?: boolean; +} +export declare type Query = string | CompiledQuery | Selector[][]; +export declare type CompileToken = (token: InternalSelector[][], options: InternalOptions, context?: Node[] | Node) => CompiledQuery; +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/node_modules/css-select/lib/types.d.ts.map b/node_modules/css-select/lib/types.d.ts.map new file mode 100644 index 00000000..d14b18f0 --- /dev/null +++ b/node_modules/css-select/lib/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/css-select/lib/types.js b/node_modules/css-select/lib/types.js new file mode 100644 index 00000000..11e638d1 --- /dev/null +++ b/node_modules/css-select/lib/types.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/node_modules/css-select/lib/types.js.map b/node_modules/css-select/lib/types.js.map new file mode 100644 index 00000000..d1bde2f8 --- /dev/null +++ b/node_modules/css-select/lib/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"https://raw.githubusercontent.com/fb55/css-select/0f0725a9dfeddd2fdb54eda9656cdbab5bbf6be6/src/","sources":["types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/node_modules/css-select/package.json b/node_modules/css-select/package.json new file mode 100644 index 00000000..6289eee7 --- /dev/null +++ b/node_modules/css-select/package.json @@ -0,0 +1,81 @@ +{ + "name": "css-select", + "version": "5.1.0", + "description": "a CSS selector compiler/engine", + "author": "Felix Boehm ", + "funding": { + "url": "https://github.com/sponsors/fb55" + }, + "keywords": [ + "css", + "selector", + "sizzle" + ], + "repository": { + "type": "git", + "url": "git://github.com/fb55/css-select.git" + }, + "main": "lib/index.js", + "types": "lib/index.d.ts", + "module": "lib/esm/index.js", + "exports": { + "require": "./lib/index.js", + "import": "./lib/esm/index.js" + }, + "files": [ + "lib" + ], + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "devDependencies": { + "@types/boolbase": "^1.0.1", + "@types/jest": "^27.4.1", + "@types/node": "^17.0.29", + "@typescript-eslint/eslint-plugin": "^5.21.0", + "@typescript-eslint/parser": "^5.21.0", + "cheerio-soupselect": "^0.1.1", + "eslint": "^8.14.0", + "eslint-config-prettier": "^8.5.0", + "htmlparser2": "^8.0.0", + "jest": "^27.5.1", + "prettier": "^2.6.2", + "ts-jest": "^27.1.4", + "typescript": "^4.6.3" + }, + "scripts": { + "test": "npm run test:jest && npm run lint", + "test:jest": "jest", + "lint": "npm run lint:es && npm run lint:prettier", + "lint:es": "eslint src", + "lint:prettier": "npm run prettier -- --check", + "format": "npm run format:es && npm run format:prettier", + "format:es": "npm run lint:es -- --fix", + "format:prettier": "npm run prettier -- --write", + "prettier": "prettier '**/*.{ts,md,json,yml}'", + "build": "npm run build:cjs && npm run build:esm", + "build:cjs": "tsc --sourceRoot https://raw.githubusercontent.com/fb55/css-select/$(git rev-parse HEAD)/src/", + "build:esm": "npm run build:cjs -- --module esnext --target es2019 --outDir lib/esm && echo '{\"type\":\"module\"}' > lib/esm/package.json", + "prepare": "npm run build" + }, + "license": "BSD-2-Clause", + "prettier": { + "tabWidth": 4, + "proseWrap": "always" + }, + "jest": { + "preset": "ts-jest", + "testEnvironment": "node", + "coverageProvider": "v8", + "moduleNameMapper": { + "^(.*)\\.js$": "$1" + }, + "testMatch": [ + "/test/*.ts" + ] + } +} diff --git a/node_modules/css-tree/LICENSE b/node_modules/css-tree/LICENSE new file mode 100644 index 00000000..b46f3c4a --- /dev/null +++ b/node_modules/css-tree/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2016-2022 by Roman Dvornov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/css-tree/README.md b/node_modules/css-tree/README.md new file mode 100644 index 00000000..df8f2cea --- /dev/null +++ b/node_modules/css-tree/README.md @@ -0,0 +1,193 @@ +CSSTree logo + +# CSSTree + +[![NPM version](https://img.shields.io/npm/v/css-tree.svg)](https://www.npmjs.com/package/css-tree) +[![Build Status](https://github.com/csstree/csstree/actions/workflows/build.yml/badge.svg)](https://github.com/csstree/csstree/actions/workflows/build.yml) +[![Coverage Status](https://coveralls.io/repos/github/csstree/csstree/badge.svg?branch=master)](https://coveralls.io/github/csstree/csstree?branch=master) +[![NPM Downloads](https://img.shields.io/npm/dm/css-tree.svg)](https://www.npmjs.com/package/css-tree) +[![Twitter](https://img.shields.io/badge/Twitter-@csstree-blue.svg)](https://twitter.com/csstree) + +CSSTree is a tool set for CSS: [fast](https://github.com/postcss/benchmark) detailed parser (CSS → AST), walker (AST traversal), generator (AST → CSS) and lexer (validation and matching) based on specs and browser implementations. The main goal is to be efficient and W3C spec compliant, with focus on CSS analyzing and source-to-source transforming tasks. + +## Features + +- **Detailed parsing with an adjustable level of detail** + + By default CSSTree parses CSS as detailed as possible, i.e. each single logical part is representing with its own AST node (see [AST format](docs/ast.md) for all possible node types). The parsing detail level can be changed through [parser options](docs/parsing.md#parsesource-options), for example, you can disable parsing of selectors or declaration values for component parts. + +- **Tolerant to errors by design** + + Parser behaves as [spec says](https://www.w3.org/TR/css-syntax-3/#error-handling): "When errors occur in CSS, the parser attempts to recover gracefully, throwing away only the minimum amount of content before returning to parsing as normal". The only thing the parser departs from the specification is that it doesn't throw away bad content, but wraps it in a special node type (`Raw`) that allows processing it later. + +- **Fast and efficient** + + CSSTree is created with focus on performance and effective memory consumption. Therefore it's [one of the fastest CSS parsers](https://github.com/postcss/benchmark) at the moment. + +- **Syntax validation** + + The build-in lexer can test CSS against syntaxes defined by W3C. CSSTree uses [mdn/data](https://github.com/mdn/data/) as a basis for lexer's dictionaries and extends it with vendor specific and legacy syntaxes. Lexer can only check the declaration values currently, but this feature will be extended to other parts of the CSS in the future. + +## Projects using CSSTree + +- [Svelte](https://github.com/sveltejs/svelte) – Cybernetically enhanced web apps +- [SVGO](https://github.com/svg/svgo) – Node.js tool for optimizing SVG files +- [CSSO](https://github.com/css/csso) – CSS minifier with structural optimizations +- [NativeScript](https://github.com/NativeScript/NativeScript) – NativeScript empowers you to access native APIs from JavaScript directly +- [react-native-svg](https://github.com/react-native-svg/react-native-svg) – SVG library for React Native, React Native Web, and plain React web projects +- [penthouse](https://github.com/pocketjoso/penthouse) – Critical Path CSS Generator +- [Bit](https://github.com/teambit/bit) – Bit is the platform for collaborating on components +- and more... + +## Documentation + +- [AST format](docs/ast.md) +- [Parsing CSS → AST](docs/parsing.md) + - [parse(source[, options])](docs/parsing.md#parsesource-options) +- [Serialization AST → CSS](docs/generate.md) + - [generate(ast[, options])](docs/generate.md#generateast-options) +- [AST traversal](docs/traversal.md) + - [walk(ast, options)](docs/traversal.md#walkast-options) + - [find(ast, fn)](docs/traversal.md#findast-fn) + - [findLast(ast, fn)](docs/traversal.md#findlastast-fn) + - [findAll(ast, fn)](docs/traversal.md#findallast-fn) +- [Util functions](docs/utils.md) + - Value encoding & decoding + - [property(name)](docs/utils.md#propertyname) + - [keyword(name)](docs/utils.md#keywordname) + - [ident](docs/utils.md#ident) + - [string](docs/utils.md#string) + - [url](docs/utils.md#url) + - AST transforming + - [clone(ast)](docs/utils.md#cloneast) + - [fromPlainObject(object)](docs/utils.md#fromplainobjectobject) + - [toPlainObject(ast)](docs/utils.md#toplainobjectast) +- [Value Definition Syntax](docs/definition-syntax.md) + - [parse(source)](docs/definition-syntax.md#parsesource) + - [walk(node, options, context)](docs/definition-syntax.md#walknode-options-context) + - [generate(node, options)](docs/definition-syntax.md#generatenode-options) + - [AST format](docs/definition-syntax.md#ast-format) + +## Tools + +* [AST Explorer](https://astexplorer.net/#/gist/244e2fb4da940df52bf0f4b94277db44/e79aff44611020b22cfd9708f3a99ce09b7d67a8) – explore CSSTree AST format with zero setup +* [CSS syntax reference](https://csstree.github.io/docs/syntax.html) +* [CSS syntax validator](https://csstree.github.io/docs/validator.html) + +## Related projects + +* [csstree-validator](https://github.com/csstree/validator) – NPM package to validate CSS +* [stylelint-csstree-validator](https://github.com/csstree/stylelint-validator) – plugin for stylelint to validate CSS +* [Grunt plugin](https://github.com/sergejmueller/grunt-csstree-validator) +* [Gulp plugin](https://github.com/csstree/gulp-csstree) +* [Sublime plugin](https://github.com/csstree/SublimeLinter-contrib-csstree) +* [VS Code plugin](https://github.com/csstree/vscode-plugin) +* [Atom plugin](https://github.com/csstree/atom-plugin) + +## Usage + +Install with npm: + +``` +npm install css-tree +``` + +Basic usage: + +```js +import * as csstree from 'css-tree'; + +// parse CSS to AST +const ast = csstree.parse('.example { world: "!" }'); + +// traverse AST and modify it +csstree.walk(ast, (node) => { + if (node.type === 'ClassSelector' && node.name === 'example') { + node.name = 'hello'; + } +}); + +// generate CSS from AST +console.log(csstree.generate(ast)); +// .hello{world:"!"} +``` + +Syntax matching: + +```js +// parse CSS to AST as a declaration value +const ast = csstree.parse('red 1px solid', { context: 'value' }); + +// match to syntax of `border` property +const matchResult = csstree.lexer.matchProperty('border', ast); + +// check first value node is a +console.log(matchResult.isType(ast.children.first, 'color')); +// true + +// get a type list matched to a node +console.log(matchResult.getTrace(ast.children.first)); +// [ { type: 'Property', name: 'border' }, +// { type: 'Type', name: 'color' }, +// { type: 'Type', name: 'named-color' }, +// { type: 'Keyword', name: 'red' } ] +``` + +### Exports + +Is it possible to import just a needed part of library like a parser or a walker. That's might useful for loading time or bundle size optimisations. + +```js +import * as tokenizer from 'css-tree/tokenizer'; +import * as parser from 'css-tree/parser'; +import * as walker from 'css-tree/walker'; +import * as lexer from 'css-tree/lexer'; +import * as definitionSyntax from 'css-tree/definition-syntax'; +import * as data from 'css-tree/definition-syntax-data'; +import * as dataPatch from 'css-tree/definition-syntax-data-patch'; +import * as utils from 'css-tree/utils'; +``` + +### Using in a browser + +Bundles are available for use in a browser: + +- `dist/csstree.js` – minified IIFE with `csstree` as global +```html + + +``` + +- `dist/csstree.esm.js` – minified ES module +```html + +``` + +One of CDN services like `unpkg` or `jsDelivr` can be used. By default (for short path) a ESM version is exposing. For IIFE version a full path to a bundle should be specified: + +```html + + + + + + +``` + +## Top level API + +![API map](https://cdn.rawgit.com/csstree/csstree/aaf327e/docs/api-map.svg) + +## License + +MIT diff --git a/node_modules/css-tree/cjs/convertor/create.cjs b/node_modules/css-tree/cjs/convertor/create.cjs new file mode 100644 index 00000000..55c655b2 --- /dev/null +++ b/node_modules/css-tree/cjs/convertor/create.cjs @@ -0,0 +1,32 @@ +'use strict'; + +const List = require('../utils/List.cjs'); + +function createConvertor(walk) { + return { + fromPlainObject(ast) { + walk(ast, { + enter(node) { + if (node.children && node.children instanceof List.List === false) { + node.children = new List.List().fromArray(node.children); + } + } + }); + + return ast; + }, + toPlainObject(ast) { + walk(ast, { + leave(node) { + if (node.children && node.children instanceof List.List) { + node.children = node.children.toArray(); + } + } + }); + + return ast; + } + }; +} + +exports.createConvertor = createConvertor; diff --git a/node_modules/css-tree/cjs/convertor/index.cjs b/node_modules/css-tree/cjs/convertor/index.cjs new file mode 100644 index 00000000..66542785 --- /dev/null +++ b/node_modules/css-tree/cjs/convertor/index.cjs @@ -0,0 +1,8 @@ +'use strict'; + +const create = require('./create.cjs'); +const index$1 = require('../walker/index.cjs'); + +const index = create.createConvertor(index$1); + +module.exports = index; diff --git a/node_modules/css-tree/cjs/data-patch.cjs b/node_modules/css-tree/cjs/data-patch.cjs new file mode 100644 index 00000000..9103ea4c --- /dev/null +++ b/node_modules/css-tree/cjs/data-patch.cjs @@ -0,0 +1,7 @@ +'use strict'; + +const patch = require('../data/patch.json'); + +const patch$1 = patch; + +module.exports = patch$1; diff --git a/node_modules/css-tree/cjs/data.cjs b/node_modules/css-tree/cjs/data.cjs new file mode 100644 index 00000000..3ef8afdb --- /dev/null +++ b/node_modules/css-tree/cjs/data.cjs @@ -0,0 +1,99 @@ +'use strict'; + +const dataPatch = require('./data-patch.cjs'); + +const mdnAtrules = require('mdn-data/css/at-rules.json'); +const mdnProperties = require('mdn-data/css/properties.json'); +const mdnSyntaxes = require('mdn-data/css/syntaxes.json'); + +const extendSyntax = /^\s*\|\s*/; + +function preprocessAtrules(dict) { + const result = Object.create(null); + + for (const atruleName in dict) { + const atrule = dict[atruleName]; + let descriptors = null; + + if (atrule.descriptors) { + descriptors = Object.create(null); + + for (const descriptor in atrule.descriptors) { + descriptors[descriptor] = atrule.descriptors[descriptor].syntax; + } + } + + result[atruleName.substr(1)] = { + prelude: atrule.syntax.trim().replace(/\{(.|\s)+\}/, '').match(/^@\S+\s+([^;\{]*)/)[1].trim() || null, + descriptors + }; + } + + return result; +} + +function patchDictionary(dict, patchDict) { + const result = {}; + + // copy all syntaxes for an original dict + for (const key in dict) { + result[key] = dict[key].syntax || dict[key]; + } + + // apply a patch + for (const key in patchDict) { + if (key in dict) { + if (patchDict[key].syntax) { + result[key] = extendSyntax.test(patchDict[key].syntax) + ? result[key] + ' ' + patchDict[key].syntax.trim() + : patchDict[key].syntax; + } else { + delete result[key]; + } + } else { + if (patchDict[key].syntax) { + result[key] = patchDict[key].syntax.replace(extendSyntax, ''); + } + } + } + + return result; +} + +function patchAtrules(dict, patchDict) { + const result = {}; + + // copy all syntaxes for an original dict + for (const key in dict) { + const atrulePatch = patchDict[key] || {}; + + result[key] = { + prelude: key in patchDict && 'prelude' in atrulePatch + ? atrulePatch.prelude + : dict[key].prelude || null, + descriptors: patchDictionary(dict[key].descriptors || {}, atrulePatch.descriptors || {}) + }; + } + + // apply a patch + for (const key in patchDict) { + if (!hasOwnProperty.call(dict, key)) { + const atrulePatch = patchDict[key] || {}; + + result[key] = { + prelude: atrulePatch.prelude || null, + descriptors: atrulePatch.descriptors && patchDictionary({}, atrulePatch.descriptors) + }; + } + } + + return result; +} + +const definitions = { + types: patchDictionary(mdnSyntaxes, dataPatch.types), + atrules: patchAtrules(preprocessAtrules(mdnAtrules), dataPatch.atrules), + properties: patchDictionary(mdnProperties, dataPatch.properties) +}; + +module.exports = definitions; diff --git a/node_modules/css-tree/cjs/definition-syntax/SyntaxError.cjs b/node_modules/css-tree/cjs/definition-syntax/SyntaxError.cjs new file mode 100644 index 00000000..d24e7ced --- /dev/null +++ b/node_modules/css-tree/cjs/definition-syntax/SyntaxError.cjs @@ -0,0 +1,16 @@ +'use strict'; + +const createCustomError = require('../utils/create-custom-error.cjs'); + +function SyntaxError(message, input, offset) { + return Object.assign(createCustomError.createCustomError('SyntaxError', message), { + input, + offset, + rawMessage: message, + message: message + '\n' + + ' ' + input + '\n' + + '--' + new Array((offset || input.length) + 1).join('-') + '^' + }); +} + +exports.SyntaxError = SyntaxError; diff --git a/node_modules/css-tree/cjs/definition-syntax/generate.cjs b/node_modules/css-tree/cjs/definition-syntax/generate.cjs new file mode 100644 index 00000000..785af062 --- /dev/null +++ b/node_modules/css-tree/cjs/definition-syntax/generate.cjs @@ -0,0 +1,135 @@ +'use strict'; + +function noop(value) { + return value; +} + +function generateMultiplier(multiplier) { + const { min, max, comma } = multiplier; + + if (min === 0 && max === 0) { + return comma ? '#?' : '*'; + } + + if (min === 0 && max === 1) { + return '?'; + } + + if (min === 1 && max === 0) { + return comma ? '#' : '+'; + } + + if (min === 1 && max === 1) { + return ''; + } + + return ( + (comma ? '#' : '') + + (min === max + ? '{' + min + '}' + : '{' + min + ',' + (max !== 0 ? max : '') + '}' + ) + ); +} + +function generateTypeOpts(node) { + switch (node.type) { + case 'Range': + return ( + ' [' + + (node.min === null ? '-∞' : node.min) + + ',' + + (node.max === null ? '∞' : node.max) + + ']' + ); + + default: + throw new Error('Unknown node type `' + node.type + '`'); + } +} + +function generateSequence(node, decorate, forceBraces, compact) { + const combinator = node.combinator === ' ' || compact ? node.combinator : ' ' + node.combinator + ' '; + const result = node.terms + .map(term => internalGenerate(term, decorate, forceBraces, compact)) + .join(combinator); + + if (node.explicit || forceBraces) { + return (compact || result[0] === ',' ? '[' : '[ ') + result + (compact ? ']' : ' ]'); + } + + return result; +} + +function internalGenerate(node, decorate, forceBraces, compact) { + let result; + + switch (node.type) { + case 'Group': + result = + generateSequence(node, decorate, forceBraces, compact) + + (node.disallowEmpty ? '!' : ''); + break; + + case 'Multiplier': + // return since node is a composition + return ( + internalGenerate(node.term, decorate, forceBraces, compact) + + decorate(generateMultiplier(node), node) + ); + + case 'Type': + result = '<' + node.name + (node.opts ? decorate(generateTypeOpts(node.opts), node.opts) : '') + '>'; + break; + + case 'Property': + result = '<\'' + node.name + '\'>'; + break; + + case 'Keyword': + result = node.name; + break; + + case 'AtKeyword': + result = '@' + node.name; + break; + + case 'Function': + result = node.name + '('; + break; + + case 'String': + case 'Token': + result = node.value; + break; + + case 'Comma': + result = ','; + break; + + default: + throw new Error('Unknown node type `' + node.type + '`'); + } + + return decorate(result, node); +} + +function generate(node, options) { + let decorate = noop; + let forceBraces = false; + let compact = false; + + if (typeof options === 'function') { + decorate = options; + } else if (options) { + forceBraces = Boolean(options.forceBraces); + compact = Boolean(options.compact); + if (typeof options.decorate === 'function') { + decorate = options.decorate; + } + } + + return internalGenerate(node, decorate, forceBraces, compact); +} + +exports.generate = generate; diff --git a/node_modules/css-tree/cjs/definition-syntax/index.cjs b/node_modules/css-tree/cjs/definition-syntax/index.cjs new file mode 100644 index 00000000..0afb505c --- /dev/null +++ b/node_modules/css-tree/cjs/definition-syntax/index.cjs @@ -0,0 +1,13 @@ +'use strict'; + +const SyntaxError = require('./SyntaxError.cjs'); +const generate = require('./generate.cjs'); +const parse = require('./parse.cjs'); +const walk = require('./walk.cjs'); + + + +exports.SyntaxError = SyntaxError.SyntaxError; +exports.generate = generate.generate; +exports.parse = parse.parse; +exports.walk = walk.walk; diff --git a/node_modules/css-tree/cjs/definition-syntax/parse.cjs b/node_modules/css-tree/cjs/definition-syntax/parse.cjs new file mode 100644 index 00000000..53eee015 --- /dev/null +++ b/node_modules/css-tree/cjs/definition-syntax/parse.cjs @@ -0,0 +1,588 @@ +'use strict'; + +const tokenizer = require('./tokenizer.cjs'); + +const TAB = 9; +const N = 10; +const F = 12; +const R = 13; +const SPACE = 32; +const EXCLAMATIONMARK = 33; // ! +const NUMBERSIGN = 35; // # +const AMPERSAND = 38; // & +const APOSTROPHE = 39; // ' +const LEFTPARENTHESIS = 40; // ( +const RIGHTPARENTHESIS = 41; // ) +const ASTERISK = 42; // * +const PLUSSIGN = 43; // + +const COMMA = 44; // , +const HYPERMINUS = 45; // - +const LESSTHANSIGN = 60; // < +const GREATERTHANSIGN = 62; // > +const QUESTIONMARK = 63; // ? +const COMMERCIALAT = 64; // @ +const LEFTSQUAREBRACKET = 91; // [ +const RIGHTSQUAREBRACKET = 93; // ] +const LEFTCURLYBRACKET = 123; // { +const VERTICALLINE = 124; // | +const RIGHTCURLYBRACKET = 125; // } +const INFINITY = 8734; // ∞ +const NAME_CHAR = new Uint8Array(128).map((_, idx) => + /[a-zA-Z0-9\-]/.test(String.fromCharCode(idx)) ? 1 : 0 +); +const COMBINATOR_PRECEDENCE = { + ' ': 1, + '&&': 2, + '||': 3, + '|': 4 +}; + +function scanSpaces(tokenizer) { + return tokenizer.substringToPos( + tokenizer.findWsEnd(tokenizer.pos) + ); +} + +function scanWord(tokenizer) { + let end = tokenizer.pos; + + for (; end < tokenizer.str.length; end++) { + const code = tokenizer.str.charCodeAt(end); + if (code >= 128 || NAME_CHAR[code] === 0) { + break; + } + } + + if (tokenizer.pos === end) { + tokenizer.error('Expect a keyword'); + } + + return tokenizer.substringToPos(end); +} + +function scanNumber(tokenizer) { + let end = tokenizer.pos; + + for (; end < tokenizer.str.length; end++) { + const code = tokenizer.str.charCodeAt(end); + if (code < 48 || code > 57) { + break; + } + } + + if (tokenizer.pos === end) { + tokenizer.error('Expect a number'); + } + + return tokenizer.substringToPos(end); +} + +function scanString(tokenizer) { + const end = tokenizer.str.indexOf('\'', tokenizer.pos + 1); + + if (end === -1) { + tokenizer.pos = tokenizer.str.length; + tokenizer.error('Expect an apostrophe'); + } + + return tokenizer.substringToPos(end + 1); +} + +function readMultiplierRange(tokenizer) { + let min = null; + let max = null; + + tokenizer.eat(LEFTCURLYBRACKET); + + min = scanNumber(tokenizer); + + if (tokenizer.charCode() === COMMA) { + tokenizer.pos++; + if (tokenizer.charCode() !== RIGHTCURLYBRACKET) { + max = scanNumber(tokenizer); + } + } else { + max = min; + } + + tokenizer.eat(RIGHTCURLYBRACKET); + + return { + min: Number(min), + max: max ? Number(max) : 0 + }; +} + +function readMultiplier(tokenizer) { + let range = null; + let comma = false; + + switch (tokenizer.charCode()) { + case ASTERISK: + tokenizer.pos++; + + range = { + min: 0, + max: 0 + }; + + break; + + case PLUSSIGN: + tokenizer.pos++; + + range = { + min: 1, + max: 0 + }; + + break; + + case QUESTIONMARK: + tokenizer.pos++; + + range = { + min: 0, + max: 1 + }; + + break; + + case NUMBERSIGN: + tokenizer.pos++; + + comma = true; + + if (tokenizer.charCode() === LEFTCURLYBRACKET) { + range = readMultiplierRange(tokenizer); + } else if (tokenizer.charCode() === QUESTIONMARK) { + // https://www.w3.org/TR/css-values-4/#component-multipliers + // > the # and ? multipliers may be stacked as #? + // In this case just treat "#?" as a single multiplier + // { min: 0, max: 0, comma: true } + tokenizer.pos++; + range = { + min: 0, + max: 0 + }; + } else { + range = { + min: 1, + max: 0 + }; + } + + break; + + case LEFTCURLYBRACKET: + range = readMultiplierRange(tokenizer); + break; + + default: + return null; + } + + return { + type: 'Multiplier', + comma, + min: range.min, + max: range.max, + term: null + }; +} + +function maybeMultiplied(tokenizer, node) { + const multiplier = readMultiplier(tokenizer); + + if (multiplier !== null) { + multiplier.term = node; + + // https://www.w3.org/TR/css-values-4/#component-multipliers + // > The + and # multipliers may be stacked as +#; + // Represent "+#" as nested multipliers: + // { ..., + // term: { + // ..., + // term: node + // } + // } + if (tokenizer.charCode() === NUMBERSIGN && + tokenizer.charCodeAt(tokenizer.pos - 1) === PLUSSIGN) { + return maybeMultiplied(tokenizer, multiplier); + } + + return multiplier; + } + + return node; +} + +function maybeToken(tokenizer) { + const ch = tokenizer.peek(); + + if (ch === '') { + return null; + } + + return { + type: 'Token', + value: ch + }; +} + +function readProperty(tokenizer) { + let name; + + tokenizer.eat(LESSTHANSIGN); + tokenizer.eat(APOSTROPHE); + + name = scanWord(tokenizer); + + tokenizer.eat(APOSTROPHE); + tokenizer.eat(GREATERTHANSIGN); + + return maybeMultiplied(tokenizer, { + type: 'Property', + name + }); +} + +// https://drafts.csswg.org/css-values-3/#numeric-ranges +// 4.1. Range Restrictions and Range Definition Notation +// +// Range restrictions can be annotated in the numeric type notation using CSS bracketed +// range notation—[min,max]—within the angle brackets, after the identifying keyword, +// indicating a closed range between (and including) min and max. +// For example, indicates an integer between 0 and 10, inclusive. +function readTypeRange(tokenizer) { + // use null for Infinity to make AST format JSON serializable/deserializable + let min = null; // -Infinity + let max = null; // Infinity + let sign = 1; + + tokenizer.eat(LEFTSQUAREBRACKET); + + if (tokenizer.charCode() === HYPERMINUS) { + tokenizer.peek(); + sign = -1; + } + + if (sign == -1 && tokenizer.charCode() === INFINITY) { + tokenizer.peek(); + } else { + min = sign * Number(scanNumber(tokenizer)); + + if (NAME_CHAR[tokenizer.charCode()] !== 0) { + min += scanWord(tokenizer); + } + } + + scanSpaces(tokenizer); + tokenizer.eat(COMMA); + scanSpaces(tokenizer); + + if (tokenizer.charCode() === INFINITY) { + tokenizer.peek(); + } else { + sign = 1; + + if (tokenizer.charCode() === HYPERMINUS) { + tokenizer.peek(); + sign = -1; + } + + max = sign * Number(scanNumber(tokenizer)); + + if (NAME_CHAR[tokenizer.charCode()] !== 0) { + max += scanWord(tokenizer); + } + } + + tokenizer.eat(RIGHTSQUAREBRACKET); + + return { + type: 'Range', + min, + max + }; +} + +function readType(tokenizer) { + let name; + let opts = null; + + tokenizer.eat(LESSTHANSIGN); + name = scanWord(tokenizer); + + if (tokenizer.charCode() === LEFTPARENTHESIS && + tokenizer.nextCharCode() === RIGHTPARENTHESIS) { + tokenizer.pos += 2; + name += '()'; + } + + if (tokenizer.charCodeAt(tokenizer.findWsEnd(tokenizer.pos)) === LEFTSQUAREBRACKET) { + scanSpaces(tokenizer); + opts = readTypeRange(tokenizer); + } + + tokenizer.eat(GREATERTHANSIGN); + + return maybeMultiplied(tokenizer, { + type: 'Type', + name, + opts + }); +} + +function readKeywordOrFunction(tokenizer) { + const name = scanWord(tokenizer); + + if (tokenizer.charCode() === LEFTPARENTHESIS) { + tokenizer.pos++; + + return { + type: 'Function', + name + }; + } + + return maybeMultiplied(tokenizer, { + type: 'Keyword', + name + }); +} + +function regroupTerms(terms, combinators) { + function createGroup(terms, combinator) { + return { + type: 'Group', + terms, + combinator, + disallowEmpty: false, + explicit: false + }; + } + + let combinator; + + combinators = Object.keys(combinators) + .sort((a, b) => COMBINATOR_PRECEDENCE[a] - COMBINATOR_PRECEDENCE[b]); + + while (combinators.length > 0) { + combinator = combinators.shift(); + + let i = 0; + let subgroupStart = 0; + + for (; i < terms.length; i++) { + const term = terms[i]; + + if (term.type === 'Combinator') { + if (term.value === combinator) { + if (subgroupStart === -1) { + subgroupStart = i - 1; + } + terms.splice(i, 1); + i--; + } else { + if (subgroupStart !== -1 && i - subgroupStart > 1) { + terms.splice( + subgroupStart, + i - subgroupStart, + createGroup(terms.slice(subgroupStart, i), combinator) + ); + i = subgroupStart + 1; + } + subgroupStart = -1; + } + } + } + + if (subgroupStart !== -1 && combinators.length) { + terms.splice( + subgroupStart, + i - subgroupStart, + createGroup(terms.slice(subgroupStart, i), combinator) + ); + } + } + + return combinator; +} + +function readImplicitGroup(tokenizer) { + const terms = []; + const combinators = {}; + let token; + let prevToken = null; + let prevTokenPos = tokenizer.pos; + + while (token = peek(tokenizer)) { + if (token.type !== 'Spaces') { + if (token.type === 'Combinator') { + // check for combinator in group beginning and double combinator sequence + if (prevToken === null || prevToken.type === 'Combinator') { + tokenizer.pos = prevTokenPos; + tokenizer.error('Unexpected combinator'); + } + + combinators[token.value] = true; + } else if (prevToken !== null && prevToken.type !== 'Combinator') { + combinators[' '] = true; // a b + terms.push({ + type: 'Combinator', + value: ' ' + }); + } + + terms.push(token); + prevToken = token; + prevTokenPos = tokenizer.pos; + } + } + + // check for combinator in group ending + if (prevToken !== null && prevToken.type === 'Combinator') { + tokenizer.pos -= prevTokenPos; + tokenizer.error('Unexpected combinator'); + } + + return { + type: 'Group', + terms, + combinator: regroupTerms(terms, combinators) || ' ', + disallowEmpty: false, + explicit: false + }; +} + +function readGroup(tokenizer) { + let result; + + tokenizer.eat(LEFTSQUAREBRACKET); + result = readImplicitGroup(tokenizer); + tokenizer.eat(RIGHTSQUAREBRACKET); + + result.explicit = true; + + if (tokenizer.charCode() === EXCLAMATIONMARK) { + tokenizer.pos++; + result.disallowEmpty = true; + } + + return result; +} + +function peek(tokenizer) { + let code = tokenizer.charCode(); + + if (code < 128 && NAME_CHAR[code] === 1) { + return readKeywordOrFunction(tokenizer); + } + + switch (code) { + case RIGHTSQUAREBRACKET: + // don't eat, stop scan a group + break; + + case LEFTSQUAREBRACKET: + return maybeMultiplied(tokenizer, readGroup(tokenizer)); + + case LESSTHANSIGN: + return tokenizer.nextCharCode() === APOSTROPHE + ? readProperty(tokenizer) + : readType(tokenizer); + + case VERTICALLINE: + return { + type: 'Combinator', + value: tokenizer.substringToPos( + tokenizer.pos + (tokenizer.nextCharCode() === VERTICALLINE ? 2 : 1) + ) + }; + + case AMPERSAND: + tokenizer.pos++; + tokenizer.eat(AMPERSAND); + + return { + type: 'Combinator', + value: '&&' + }; + + case COMMA: + tokenizer.pos++; + return { + type: 'Comma' + }; + + case APOSTROPHE: + return maybeMultiplied(tokenizer, { + type: 'String', + value: scanString(tokenizer) + }); + + case SPACE: + case TAB: + case N: + case R: + case F: + return { + type: 'Spaces', + value: scanSpaces(tokenizer) + }; + + case COMMERCIALAT: + code = tokenizer.nextCharCode(); + + if (code < 128 && NAME_CHAR[code] === 1) { + tokenizer.pos++; + return { + type: 'AtKeyword', + name: scanWord(tokenizer) + }; + } + + return maybeToken(tokenizer); + + case ASTERISK: + case PLUSSIGN: + case QUESTIONMARK: + case NUMBERSIGN: + case EXCLAMATIONMARK: + // prohibited tokens (used as a multiplier start) + break; + + case LEFTCURLYBRACKET: + // LEFTCURLYBRACKET is allowed since mdn/data uses it w/o quoting + // check next char isn't a number, because it's likely a disjoined multiplier + code = tokenizer.nextCharCode(); + + if (code < 48 || code > 57) { + return maybeToken(tokenizer); + } + + break; + + default: + return maybeToken(tokenizer); + } +} + +function parse(source) { + const tokenizer$1 = new tokenizer.Tokenizer(source); + const result = readImplicitGroup(tokenizer$1); + + if (tokenizer$1.pos !== source.length) { + tokenizer$1.error('Unexpected input'); + } + + // reduce redundant groups with single group term + if (result.terms.length === 1 && result.terms[0].type === 'Group') { + return result.terms[0]; + } + + return result; +} + +exports.parse = parse; diff --git a/node_modules/css-tree/cjs/definition-syntax/tokenizer.cjs b/node_modules/css-tree/cjs/definition-syntax/tokenizer.cjs new file mode 100644 index 00000000..6ab5ece2 --- /dev/null +++ b/node_modules/css-tree/cjs/definition-syntax/tokenizer.cjs @@ -0,0 +1,56 @@ +'use strict'; + +const SyntaxError = require('./SyntaxError.cjs'); + +const TAB = 9; +const N = 10; +const F = 12; +const R = 13; +const SPACE = 32; + +class Tokenizer { + constructor(str) { + this.str = str; + this.pos = 0; + } + charCodeAt(pos) { + return pos < this.str.length ? this.str.charCodeAt(pos) : 0; + } + charCode() { + return this.charCodeAt(this.pos); + } + nextCharCode() { + return this.charCodeAt(this.pos + 1); + } + nextNonWsCode(pos) { + return this.charCodeAt(this.findWsEnd(pos)); + } + findWsEnd(pos) { + for (; pos < this.str.length; pos++) { + const code = this.str.charCodeAt(pos); + if (code !== R && code !== N && code !== F && code !== SPACE && code !== TAB) { + break; + } + } + + return pos; + } + substringToPos(end) { + return this.str.substring(this.pos, this.pos = end); + } + eat(code) { + if (this.charCode() !== code) { + this.error('Expect `' + String.fromCharCode(code) + '`'); + } + + this.pos++; + } + peek() { + return this.pos < this.str.length ? this.str.charAt(this.pos++) : ''; + } + error(message) { + throw new SyntaxError.SyntaxError(message, this.str, this.pos); + } +} + +exports.Tokenizer = Tokenizer; diff --git a/node_modules/css-tree/cjs/definition-syntax/walk.cjs b/node_modules/css-tree/cjs/definition-syntax/walk.cjs new file mode 100644 index 00000000..728a446d --- /dev/null +++ b/node_modules/css-tree/cjs/definition-syntax/walk.cjs @@ -0,0 +1,56 @@ +'use strict'; + +const noop = function() {}; + +function ensureFunction(value) { + return typeof value === 'function' ? value : noop; +} + +function walk(node, options, context) { + function walk(node) { + enter.call(context, node); + + switch (node.type) { + case 'Group': + node.terms.forEach(walk); + break; + + case 'Multiplier': + walk(node.term); + break; + + case 'Type': + case 'Property': + case 'Keyword': + case 'AtKeyword': + case 'Function': + case 'String': + case 'Token': + case 'Comma': + break; + + default: + throw new Error('Unknown type: ' + node.type); + } + + leave.call(context, node); + } + + let enter = noop; + let leave = noop; + + if (typeof options === 'function') { + enter = options; + } else if (options) { + enter = ensureFunction(options.enter); + leave = ensureFunction(options.leave); + } + + if (enter === noop && leave === noop) { + throw new Error('Neither `enter` nor `leave` walker handler is set or both aren\'t a function'); + } + + walk(node); +} + +exports.walk = walk; diff --git a/node_modules/css-tree/cjs/generator/create.cjs b/node_modules/css-tree/cjs/generator/create.cjs new file mode 100644 index 00000000..ab80f3ac --- /dev/null +++ b/node_modules/css-tree/cjs/generator/create.cjs @@ -0,0 +1,103 @@ +'use strict'; + +const index = require('../tokenizer/index.cjs'); +const sourceMap = require('./sourceMap.cjs'); +const tokenBefore = require('./token-before.cjs'); +const types = require('../tokenizer/types.cjs'); + +const REVERSESOLIDUS = 0x005c; // U+005C REVERSE SOLIDUS (\) + +function processChildren(node, delimeter) { + if (typeof delimeter === 'function') { + let prev = null; + + node.children.forEach(node => { + if (prev !== null) { + delimeter.call(this, prev); + } + + this.node(node); + prev = node; + }); + + return; + } + + node.children.forEach(this.node, this); +} + +function processChunk(chunk) { + index.tokenize(chunk, (type, start, end) => { + this.token(type, chunk.slice(start, end)); + }); +} + +function createGenerator(config) { + const types$1 = new Map(); + + for (let name in config.node) { + const item = config.node[name]; + const fn = item.generate || item; + + if (typeof fn === 'function') { + types$1.set(name, item.generate || item); + } + } + + return function(node, options) { + let buffer = ''; + let prevCode = 0; + let handlers = { + node(node) { + if (types$1.has(node.type)) { + types$1.get(node.type).call(publicApi, node); + } else { + throw new Error('Unknown node type: ' + node.type); + } + }, + tokenBefore: tokenBefore.safe, + token(type, value) { + prevCode = this.tokenBefore(prevCode, type, value); + + this.emit(value, type, false); + + if (type === types.Delim && value.charCodeAt(0) === REVERSESOLIDUS) { + this.emit('\n', types.WhiteSpace, true); + } + }, + emit(value) { + buffer += value; + }, + result() { + return buffer; + } + }; + + if (options) { + if (typeof options.decorator === 'function') { + handlers = options.decorator(handlers); + } + + if (options.sourceMap) { + handlers = sourceMap.generateSourceMap(handlers); + } + + if (options.mode in tokenBefore) { + handlers.tokenBefore = tokenBefore[options.mode]; + } + } + + const publicApi = { + node: (node) => handlers.node(node), + children: processChildren, + token: (type, value) => handlers.token(type, value), + tokenize: processChunk + }; + + handlers.node(node); + + return handlers.result(); + }; +} + +exports.createGenerator = createGenerator; diff --git a/node_modules/css-tree/cjs/generator/index.cjs b/node_modules/css-tree/cjs/generator/index.cjs new file mode 100644 index 00000000..5c87cd34 --- /dev/null +++ b/node_modules/css-tree/cjs/generator/index.cjs @@ -0,0 +1,8 @@ +'use strict'; + +const create = require('./create.cjs'); +const generator = require('../syntax/config/generator.cjs'); + +const index = create.createGenerator(generator); + +module.exports = index; diff --git a/node_modules/css-tree/cjs/generator/sourceMap.cjs b/node_modules/css-tree/cjs/generator/sourceMap.cjs new file mode 100644 index 00000000..efbc5b9e --- /dev/null +++ b/node_modules/css-tree/cjs/generator/sourceMap.cjs @@ -0,0 +1,96 @@ +'use strict'; + +const sourceMapGenerator_js = require('source-map-js/lib/source-map-generator.js'); + +const trackNodes = new Set(['Atrule', 'Selector', 'Declaration']); + +function generateSourceMap(handlers) { + const map = new sourceMapGenerator_js.SourceMapGenerator(); + const generated = { + line: 1, + column: 0 + }; + const original = { + line: 0, // should be zero to add first mapping + column: 0 + }; + const activatedGenerated = { + line: 1, + column: 0 + }; + const activatedMapping = { + generated: activatedGenerated + }; + let line = 1; + let column = 0; + let sourceMappingActive = false; + + const origHandlersNode = handlers.node; + handlers.node = function(node) { + if (node.loc && node.loc.start && trackNodes.has(node.type)) { + const nodeLine = node.loc.start.line; + const nodeColumn = node.loc.start.column - 1; + + if (original.line !== nodeLine || + original.column !== nodeColumn) { + original.line = nodeLine; + original.column = nodeColumn; + + generated.line = line; + generated.column = column; + + if (sourceMappingActive) { + sourceMappingActive = false; + if (generated.line !== activatedGenerated.line || + generated.column !== activatedGenerated.column) { + map.addMapping(activatedMapping); + } + } + + sourceMappingActive = true; + map.addMapping({ + source: node.loc.source, + original, + generated + }); + } + } + + origHandlersNode.call(this, node); + + if (sourceMappingActive && trackNodes.has(node.type)) { + activatedGenerated.line = line; + activatedGenerated.column = column; + } + }; + + const origHandlersEmit = handlers.emit; + handlers.emit = function(value, type, auto) { + for (let i = 0; i < value.length; i++) { + if (value.charCodeAt(i) === 10) { // \n + line++; + column = 0; + } else { + column++; + } + } + + origHandlersEmit(value, type, auto); + }; + + const origHandlersResult = handlers.result; + handlers.result = function() { + if (sourceMappingActive) { + map.addMapping(activatedMapping); + } + + return { + css: origHandlersResult(), + map + }; + }; + + return handlers; +} + +exports.generateSourceMap = generateSourceMap; diff --git a/node_modules/css-tree/cjs/generator/token-before.cjs b/node_modules/css-tree/cjs/generator/token-before.cjs new file mode 100644 index 00000000..87bf4a3e --- /dev/null +++ b/node_modules/css-tree/cjs/generator/token-before.cjs @@ -0,0 +1,170 @@ +'use strict'; + +const types = require('../tokenizer/types.cjs'); + +const PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+) +const HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-) + +const code = (type, value) => { + if (type === types.Delim) { + type = value; + } + + if (typeof type === 'string') { + const charCode = type.charCodeAt(0); + return charCode > 0x7F ? 0x8000 : charCode << 8; + } + + return type; +}; + +// https://www.w3.org/TR/css-syntax-3/#serialization +// The only requirement for serialization is that it must "round-trip" with parsing, +// that is, parsing the stylesheet must produce the same data structures as parsing, +// serializing, and parsing again, except for consecutive s, +// which may be collapsed into a single token. + +const specPairs = [ + [types.Ident, types.Ident], + [types.Ident, types.Function], + [types.Ident, types.Url], + [types.Ident, types.BadUrl], + [types.Ident, '-'], + [types.Ident, types.Number], + [types.Ident, types.Percentage], + [types.Ident, types.Dimension], + [types.Ident, types.CDC], + [types.Ident, types.LeftParenthesis], + + [types.AtKeyword, types.Ident], + [types.AtKeyword, types.Function], + [types.AtKeyword, types.Url], + [types.AtKeyword, types.BadUrl], + [types.AtKeyword, '-'], + [types.AtKeyword, types.Number], + [types.AtKeyword, types.Percentage], + [types.AtKeyword, types.Dimension], + [types.AtKeyword, types.CDC], + + [types.Hash, types.Ident], + [types.Hash, types.Function], + [types.Hash, types.Url], + [types.Hash, types.BadUrl], + [types.Hash, '-'], + [types.Hash, types.Number], + [types.Hash, types.Percentage], + [types.Hash, types.Dimension], + [types.Hash, types.CDC], + + [types.Dimension, types.Ident], + [types.Dimension, types.Function], + [types.Dimension, types.Url], + [types.Dimension, types.BadUrl], + [types.Dimension, '-'], + [types.Dimension, types.Number], + [types.Dimension, types.Percentage], + [types.Dimension, types.Dimension], + [types.Dimension, types.CDC], + + ['#', types.Ident], + ['#', types.Function], + ['#', types.Url], + ['#', types.BadUrl], + ['#', '-'], + ['#', types.Number], + ['#', types.Percentage], + ['#', types.Dimension], + ['#', types.CDC], // https://github.com/w3c/csswg-drafts/pull/6874 + + ['-', types.Ident], + ['-', types.Function], + ['-', types.Url], + ['-', types.BadUrl], + ['-', '-'], + ['-', types.Number], + ['-', types.Percentage], + ['-', types.Dimension], + ['-', types.CDC], // https://github.com/w3c/csswg-drafts/pull/6874 + + [types.Number, types.Ident], + [types.Number, types.Function], + [types.Number, types.Url], + [types.Number, types.BadUrl], + [types.Number, types.Number], + [types.Number, types.Percentage], + [types.Number, types.Dimension], + [types.Number, '%'], + [types.Number, types.CDC], // https://github.com/w3c/csswg-drafts/pull/6874 + + ['@', types.Ident], + ['@', types.Function], + ['@', types.Url], + ['@', types.BadUrl], + ['@', '-'], + ['@', types.CDC], // https://github.com/w3c/csswg-drafts/pull/6874 + + ['.', types.Number], + ['.', types.Percentage], + ['.', types.Dimension], + + ['+', types.Number], + ['+', types.Percentage], + ['+', types.Dimension], + + ['/', '*'] +]; +// validate with scripts/generate-safe +const safePairs = specPairs.concat([ + [types.Ident, types.Hash], + + [types.Dimension, types.Hash], + + [types.Hash, types.Hash], + + [types.AtKeyword, types.LeftParenthesis], + [types.AtKeyword, types.String], + [types.AtKeyword, types.Colon], + + [types.Percentage, types.Percentage], + [types.Percentage, types.Dimension], + [types.Percentage, types.Function], + [types.Percentage, '-'], + + [types.RightParenthesis, types.Ident], + [types.RightParenthesis, types.Function], + [types.RightParenthesis, types.Percentage], + [types.RightParenthesis, types.Dimension], + [types.RightParenthesis, types.Hash], + [types.RightParenthesis, '-'] +]); + +function createMap(pairs) { + const isWhiteSpaceRequired = new Set( + pairs.map(([prev, next]) => (code(prev) << 16 | code(next))) + ); + + return function(prevCode, type, value) { + const nextCode = code(type, value); + const nextCharCode = value.charCodeAt(0); + const emitWs = + (nextCharCode === HYPHENMINUS && + type !== types.Ident && + type !== types.Function && + type !== types.CDC) || + (nextCharCode === PLUSSIGN) + ? isWhiteSpaceRequired.has(prevCode << 16 | nextCharCode << 8) + : isWhiteSpaceRequired.has(prevCode << 16 | nextCode); + + if (emitWs) { + this.emit(' ', types.WhiteSpace, true); + } + + return nextCode; + }; +} + +const spec = createMap(specPairs); +const safe = createMap(safePairs); + +exports.safe = safe; +exports.spec = spec; diff --git a/node_modules/css-tree/cjs/index.cjs b/node_modules/css-tree/cjs/index.cjs new file mode 100644 index 00000000..b781d15b --- /dev/null +++ b/node_modules/css-tree/cjs/index.cjs @@ -0,0 +1,63 @@ +'use strict'; + +const index$1 = require('./syntax/index.cjs'); +const version = require('./version.cjs'); +const create = require('./syntax/create.cjs'); +const List = require('./utils/List.cjs'); +const Lexer = require('./lexer/Lexer.cjs'); +const index = require('./definition-syntax/index.cjs'); +const clone = require('./utils/clone.cjs'); +const names$1 = require('./utils/names.cjs'); +const ident = require('./utils/ident.cjs'); +const string = require('./utils/string.cjs'); +const url = require('./utils/url.cjs'); +const types = require('./tokenizer/types.cjs'); +const names = require('./tokenizer/names.cjs'); +const TokenStream = require('./tokenizer/TokenStream.cjs'); + +const { + tokenize, + parse, + generate, + lexer, + createLexer, + + walk, + find, + findLast, + findAll, + + toPlainObject, + fromPlainObject, + + fork +} = index$1; + +exports.version = version.version; +exports.createSyntax = create; +exports.List = List.List; +exports.Lexer = Lexer.Lexer; +exports.definitionSyntax = index; +exports.clone = clone.clone; +exports.isCustomProperty = names$1.isCustomProperty; +exports.keyword = names$1.keyword; +exports.property = names$1.property; +exports.vendorPrefix = names$1.vendorPrefix; +exports.ident = ident; +exports.string = string; +exports.url = url; +exports.tokenTypes = types; +exports.tokenNames = names; +exports.TokenStream = TokenStream.TokenStream; +exports.createLexer = createLexer; +exports.find = find; +exports.findAll = findAll; +exports.findLast = findLast; +exports.fork = fork; +exports.fromPlainObject = fromPlainObject; +exports.generate = generate; +exports.lexer = lexer; +exports.parse = parse; +exports.toPlainObject = toPlainObject; +exports.tokenize = tokenize; +exports.walk = walk; diff --git a/node_modules/css-tree/cjs/lexer/Lexer.cjs b/node_modules/css-tree/cjs/lexer/Lexer.cjs new file mode 100644 index 00000000..46380fae --- /dev/null +++ b/node_modules/css-tree/cjs/lexer/Lexer.cjs @@ -0,0 +1,470 @@ +'use strict'; + +const error = require('./error.cjs'); +const names = require('../utils/names.cjs'); +const genericConst = require('./generic-const.cjs'); +const generic = require('./generic.cjs'); +const units = require('./units.cjs'); +const prepareTokens = require('./prepare-tokens.cjs'); +const matchGraph = require('./match-graph.cjs'); +const match = require('./match.cjs'); +const trace = require('./trace.cjs'); +const search = require('./search.cjs'); +const structure = require('./structure.cjs'); +const parse = require('../definition-syntax/parse.cjs'); +const generate = require('../definition-syntax/generate.cjs'); +const walk = require('../definition-syntax/walk.cjs'); + +const cssWideKeywordsSyntax = matchGraph.buildMatchGraph(genericConst.cssWideKeywords.join(' | ')); + +function dumpMapSyntax(map, compact, syntaxAsAst) { + const result = {}; + + for (const name in map) { + if (map[name].syntax) { + result[name] = syntaxAsAst + ? map[name].syntax + : generate.generate(map[name].syntax, { compact }); + } + } + + return result; +} + +function dumpAtruleMapSyntax(map, compact, syntaxAsAst) { + const result = {}; + + for (const [name, atrule] of Object.entries(map)) { + result[name] = { + prelude: atrule.prelude && ( + syntaxAsAst + ? atrule.prelude.syntax + : generate.generate(atrule.prelude.syntax, { compact }) + ), + descriptors: atrule.descriptors && dumpMapSyntax(atrule.descriptors, compact, syntaxAsAst) + }; + } + + return result; +} + +function valueHasVar(tokens) { + for (let i = 0; i < tokens.length; i++) { + if (tokens[i].value.toLowerCase() === 'var(') { + return true; + } + } + + return false; +} + +function buildMatchResult(matched, error, iterations) { + return { + matched, + iterations, + error, + ...trace + }; +} + +function matchSyntax(lexer, syntax, value, useCssWideKeywords) { + const tokens = prepareTokens(value, lexer.syntax); + let result; + + if (valueHasVar(tokens)) { + return buildMatchResult(null, new Error('Matching for a tree with var() is not supported')); + } + + if (useCssWideKeywords) { + result = match.matchAsTree(tokens, lexer.cssWideKeywordsSyntax, lexer); + } + + if (!useCssWideKeywords || !result.match) { + result = match.matchAsTree(tokens, syntax.match, lexer); + if (!result.match) { + return buildMatchResult( + null, + new error.SyntaxMatchError(result.reason, syntax.syntax, value, result), + result.iterations + ); + } + } + + return buildMatchResult(result.match, null, result.iterations); +} + +class Lexer { + constructor(config, syntax, structure$1) { + this.cssWideKeywordsSyntax = cssWideKeywordsSyntax; + this.syntax = syntax; + this.generic = false; + this.units = { ...units }; + this.atrules = Object.create(null); + this.properties = Object.create(null); + this.types = Object.create(null); + this.structure = structure$1 || structure.getStructureFromConfig(config); + + if (config) { + if (config.units) { + for (const group of Object.keys(units)) { + if (Array.isArray(config.units[group])) { + this.units[group] = config.units[group]; + } + } + } + + if (config.types) { + for (const name in config.types) { + this.addType_(name, config.types[name]); + } + } + + if (config.generic) { + this.generic = true; + for (const [name, value] of Object.entries(generic.createGenericTypes(this.units))) { + this.addType_(name, value); + } + } + + if (config.atrules) { + for (const name in config.atrules) { + this.addAtrule_(name, config.atrules[name]); + } + } + + if (config.properties) { + for (const name in config.properties) { + this.addProperty_(name, config.properties[name]); + } + } + } + } + + checkStructure(ast) { + function collectWarning(node, message) { + warns.push({ node, message }); + } + + const structure = this.structure; + const warns = []; + + this.syntax.walk(ast, function(node) { + if (structure.hasOwnProperty(node.type)) { + structure[node.type].check(node, collectWarning); + } else { + collectWarning(node, 'Unknown node type `' + node.type + '`'); + } + }); + + return warns.length ? warns : false; + } + + createDescriptor(syntax, type, name, parent = null) { + const ref = { + type, + name + }; + const descriptor = { + type, + name, + parent, + serializable: typeof syntax === 'string' || (syntax && typeof syntax.type === 'string'), + syntax: null, + match: null + }; + + if (typeof syntax === 'function') { + descriptor.match = matchGraph.buildMatchGraph(syntax, ref); + } else { + if (typeof syntax === 'string') { + // lazy parsing on first access + Object.defineProperty(descriptor, 'syntax', { + get() { + Object.defineProperty(descriptor, 'syntax', { + value: parse.parse(syntax) + }); + + return descriptor.syntax; + } + }); + } else { + descriptor.syntax = syntax; + } + + // lazy graph build on first access + Object.defineProperty(descriptor, 'match', { + get() { + Object.defineProperty(descriptor, 'match', { + value: matchGraph.buildMatchGraph(descriptor.syntax, ref) + }); + + return descriptor.match; + } + }); + } + + return descriptor; + } + addAtrule_(name, syntax) { + if (!syntax) { + return; + } + + this.atrules[name] = { + type: 'Atrule', + name: name, + prelude: syntax.prelude ? this.createDescriptor(syntax.prelude, 'AtrulePrelude', name) : null, + descriptors: syntax.descriptors + ? Object.keys(syntax.descriptors).reduce( + (map, descName) => { + map[descName] = this.createDescriptor(syntax.descriptors[descName], 'AtruleDescriptor', descName, name); + return map; + }, + Object.create(null) + ) + : null + }; + } + addProperty_(name, syntax) { + if (!syntax) { + return; + } + + this.properties[name] = this.createDescriptor(syntax, 'Property', name); + } + addType_(name, syntax) { + if (!syntax) { + return; + } + + this.types[name] = this.createDescriptor(syntax, 'Type', name); + } + + checkAtruleName(atruleName) { + if (!this.getAtrule(atruleName)) { + return new error.SyntaxReferenceError('Unknown at-rule', '@' + atruleName); + } + } + checkAtrulePrelude(atruleName, prelude) { + const error = this.checkAtruleName(atruleName); + + if (error) { + return error; + } + + const atrule = this.getAtrule(atruleName); + + if (!atrule.prelude && prelude) { + return new SyntaxError('At-rule `@' + atruleName + '` should not contain a prelude'); + } + + if (atrule.prelude && !prelude) { + if (!matchSyntax(this, atrule.prelude, '', false).matched) { + return new SyntaxError('At-rule `@' + atruleName + '` should contain a prelude'); + } + } + } + checkAtruleDescriptorName(atruleName, descriptorName) { + const error$1 = this.checkAtruleName(atruleName); + + if (error$1) { + return error$1; + } + + const atrule = this.getAtrule(atruleName); + const descriptor = names.keyword(descriptorName); + + if (!atrule.descriptors) { + return new SyntaxError('At-rule `@' + atruleName + '` has no known descriptors'); + } + + if (!atrule.descriptors[descriptor.name] && + !atrule.descriptors[descriptor.basename]) { + return new error.SyntaxReferenceError('Unknown at-rule descriptor', descriptorName); + } + } + checkPropertyName(propertyName) { + if (!this.getProperty(propertyName)) { + return new error.SyntaxReferenceError('Unknown property', propertyName); + } + } + + matchAtrulePrelude(atruleName, prelude) { + const error = this.checkAtrulePrelude(atruleName, prelude); + + if (error) { + return buildMatchResult(null, error); + } + + const atrule = this.getAtrule(atruleName); + + if (!atrule.prelude) { + return buildMatchResult(null, null); + } + + return matchSyntax(this, atrule.prelude, prelude || '', false); + } + matchAtruleDescriptor(atruleName, descriptorName, value) { + const error = this.checkAtruleDescriptorName(atruleName, descriptorName); + + if (error) { + return buildMatchResult(null, error); + } + + const atrule = this.getAtrule(atruleName); + const descriptor = names.keyword(descriptorName); + + return matchSyntax(this, atrule.descriptors[descriptor.name] || atrule.descriptors[descriptor.basename], value, false); + } + matchDeclaration(node) { + if (node.type !== 'Declaration') { + return buildMatchResult(null, new Error('Not a Declaration node')); + } + + return this.matchProperty(node.property, node.value); + } + matchProperty(propertyName, value) { + // don't match syntax for a custom property at the moment + if (names.property(propertyName).custom) { + return buildMatchResult(null, new Error('Lexer matching doesn\'t applicable for custom properties')); + } + + const error = this.checkPropertyName(propertyName); + + if (error) { + return buildMatchResult(null, error); + } + + return matchSyntax(this, this.getProperty(propertyName), value, true); + } + matchType(typeName, value) { + const typeSyntax = this.getType(typeName); + + if (!typeSyntax) { + return buildMatchResult(null, new error.SyntaxReferenceError('Unknown type', typeName)); + } + + return matchSyntax(this, typeSyntax, value, false); + } + match(syntax, value) { + if (typeof syntax !== 'string' && (!syntax || !syntax.type)) { + return buildMatchResult(null, new error.SyntaxReferenceError('Bad syntax')); + } + + if (typeof syntax === 'string' || !syntax.match) { + syntax = this.createDescriptor(syntax, 'Type', 'anonymous'); + } + + return matchSyntax(this, syntax, value, false); + } + + findValueFragments(propertyName, value, type, name) { + return search.matchFragments(this, value, this.matchProperty(propertyName, value), type, name); + } + findDeclarationValueFragments(declaration, type, name) { + return search.matchFragments(this, declaration.value, this.matchDeclaration(declaration), type, name); + } + findAllFragments(ast, type, name) { + const result = []; + + this.syntax.walk(ast, { + visit: 'Declaration', + enter: (declaration) => { + result.push.apply(result, this.findDeclarationValueFragments(declaration, type, name)); + } + }); + + return result; + } + + getAtrule(atruleName, fallbackBasename = true) { + const atrule = names.keyword(atruleName); + const atruleEntry = atrule.vendor && fallbackBasename + ? this.atrules[atrule.name] || this.atrules[atrule.basename] + : this.atrules[atrule.name]; + + return atruleEntry || null; + } + getAtrulePrelude(atruleName, fallbackBasename = true) { + const atrule = this.getAtrule(atruleName, fallbackBasename); + + return atrule && atrule.prelude || null; + } + getAtruleDescriptor(atruleName, name) { + return this.atrules.hasOwnProperty(atruleName) && this.atrules.declarators + ? this.atrules[atruleName].declarators[name] || null + : null; + } + getProperty(propertyName, fallbackBasename = true) { + const property = names.property(propertyName); + const propertyEntry = property.vendor && fallbackBasename + ? this.properties[property.name] || this.properties[property.basename] + : this.properties[property.name]; + + return propertyEntry || null; + } + getType(name) { + return hasOwnProperty.call(this.types, name) ? this.types[name] : null; + } + + validate() { + function validate(syntax, name, broken, descriptor) { + if (broken.has(name)) { + return broken.get(name); + } + + broken.set(name, false); + if (descriptor.syntax !== null) { + walk.walk(descriptor.syntax, function(node) { + if (node.type !== 'Type' && node.type !== 'Property') { + return; + } + + const map = node.type === 'Type' ? syntax.types : syntax.properties; + const brokenMap = node.type === 'Type' ? brokenTypes : brokenProperties; + + if (!hasOwnProperty.call(map, node.name) || validate(syntax, node.name, brokenMap, map[node.name])) { + broken.set(name, true); + } + }, this); + } + } + + let brokenTypes = new Map(); + let brokenProperties = new Map(); + + for (const key in this.types) { + validate(this, key, brokenTypes, this.types[key]); + } + + for (const key in this.properties) { + validate(this, key, brokenProperties, this.properties[key]); + } + + brokenTypes = [...brokenTypes.keys()].filter(name => brokenTypes.get(name)); + brokenProperties = [...brokenProperties.keys()].filter(name => brokenProperties.get(name)); + + if (brokenTypes.length || brokenProperties.length) { + return { + types: brokenTypes, + properties: brokenProperties + }; + } + + return null; + } + dump(syntaxAsAst, pretty) { + return { + generic: this.generic, + units: this.units, + types: dumpMapSyntax(this.types, !pretty, syntaxAsAst), + properties: dumpMapSyntax(this.properties, !pretty, syntaxAsAst), + atrules: dumpAtruleMapSyntax(this.atrules, !pretty, syntaxAsAst) + }; + } + toString() { + return JSON.stringify(this.dump()); + } +} + +exports.Lexer = Lexer; diff --git a/node_modules/css-tree/cjs/lexer/error.cjs b/node_modules/css-tree/cjs/lexer/error.cjs new file mode 100644 index 00000000..8d252eeb --- /dev/null +++ b/node_modules/css-tree/cjs/lexer/error.cjs @@ -0,0 +1,128 @@ +'use strict'; + +const createCustomError = require('../utils/create-custom-error.cjs'); +const generate = require('../definition-syntax/generate.cjs'); + +const defaultLoc = { offset: 0, line: 1, column: 1 }; + +function locateMismatch(matchResult, node) { + const tokens = matchResult.tokens; + const longestMatch = matchResult.longestMatch; + const mismatchNode = longestMatch < tokens.length ? tokens[longestMatch].node || null : null; + const badNode = mismatchNode !== node ? mismatchNode : null; + let mismatchOffset = 0; + let mismatchLength = 0; + let entries = 0; + let css = ''; + let start; + let end; + + for (let i = 0; i < tokens.length; i++) { + const token = tokens[i].value; + + if (i === longestMatch) { + mismatchLength = token.length; + mismatchOffset = css.length; + } + + if (badNode !== null && tokens[i].node === badNode) { + if (i <= longestMatch) { + entries++; + } else { + entries = 0; + } + } + + css += token; + } + + if (longestMatch === tokens.length || entries > 1) { // last + start = fromLoc(badNode || node, 'end') || buildLoc(defaultLoc, css); + end = buildLoc(start); + } else { + start = fromLoc(badNode, 'start') || + buildLoc(fromLoc(node, 'start') || defaultLoc, css.slice(0, mismatchOffset)); + end = fromLoc(badNode, 'end') || + buildLoc(start, css.substr(mismatchOffset, mismatchLength)); + } + + return { + css, + mismatchOffset, + mismatchLength, + start, + end + }; +} + +function fromLoc(node, point) { + const value = node && node.loc && node.loc[point]; + + if (value) { + return 'line' in value ? buildLoc(value) : value; + } + + return null; +} + +function buildLoc({ offset, line, column }, extra) { + const loc = { + offset, + line, + column + }; + + if (extra) { + const lines = extra.split(/\n|\r\n?|\f/); + + loc.offset += extra.length; + loc.line += lines.length - 1; + loc.column = lines.length === 1 ? loc.column + extra.length : lines.pop().length + 1; + } + + return loc; +} + +const SyntaxReferenceError = function(type, referenceName) { + const error = createCustomError.createCustomError( + 'SyntaxReferenceError', + type + (referenceName ? ' `' + referenceName + '`' : '') + ); + + error.reference = referenceName; + + return error; +}; + +const SyntaxMatchError = function(message, syntax, node, matchResult) { + const error = createCustomError.createCustomError('SyntaxMatchError', message); + const { + css, + mismatchOffset, + mismatchLength, + start, + end + } = locateMismatch(matchResult, node); + + error.rawMessage = message; + error.syntax = syntax ? generate.generate(syntax) : ''; + error.css = css; + error.mismatchOffset = mismatchOffset; + error.mismatchLength = mismatchLength; + error.message = message + '\n' + + ' syntax: ' + error.syntax + '\n' + + ' value: ' + (css || '') + '\n' + + ' --------' + new Array(error.mismatchOffset + 1).join('-') + '^'; + + Object.assign(error, start); + error.loc = { + source: (node && node.loc && node.loc.source) || '', + start, + end + }; + + return error; +}; + +exports.SyntaxMatchError = SyntaxMatchError; +exports.SyntaxReferenceError = SyntaxReferenceError; diff --git a/node_modules/css-tree/cjs/lexer/generic-an-plus-b.cjs b/node_modules/css-tree/cjs/lexer/generic-an-plus-b.cjs new file mode 100644 index 00000000..a5dfba3e --- /dev/null +++ b/node_modules/css-tree/cjs/lexer/generic-an-plus-b.cjs @@ -0,0 +1,235 @@ +'use strict'; + +const charCodeDefinitions = require('../tokenizer/char-code-definitions.cjs'); +const types = require('../tokenizer/types.cjs'); +const utils = require('../tokenizer/utils.cjs'); + +const PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+) +const HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-) +const N = 0x006E; // U+006E LATIN SMALL LETTER N (n) +const DISALLOW_SIGN = true; +const ALLOW_SIGN = false; + +function isDelim(token, code) { + return token !== null && token.type === types.Delim && token.value.charCodeAt(0) === code; +} + +function skipSC(token, offset, getNextToken) { + while (token !== null && (token.type === types.WhiteSpace || token.type === types.Comment)) { + token = getNextToken(++offset); + } + + return offset; +} + +function checkInteger(token, valueOffset, disallowSign, offset) { + if (!token) { + return 0; + } + + const code = token.value.charCodeAt(valueOffset); + + if (code === PLUSSIGN || code === HYPHENMINUS) { + if (disallowSign) { + // Number sign is not allowed + return 0; + } + valueOffset++; + } + + for (; valueOffset < token.value.length; valueOffset++) { + if (!charCodeDefinitions.isDigit(token.value.charCodeAt(valueOffset))) { + // Integer is expected + return 0; + } + } + + return offset + 1; +} + +// ... +// ... ['+' | '-'] +function consumeB(token, offset_, getNextToken) { + let sign = false; + let offset = skipSC(token, offset_, getNextToken); + + token = getNextToken(offset); + + if (token === null) { + return offset_; + } + + if (token.type !== types.Number) { + if (isDelim(token, PLUSSIGN) || isDelim(token, HYPHENMINUS)) { + sign = true; + offset = skipSC(getNextToken(++offset), offset, getNextToken); + token = getNextToken(offset); + + if (token === null || token.type !== types.Number) { + return 0; + } + } else { + return offset_; + } + } + + if (!sign) { + const code = token.value.charCodeAt(0); + if (code !== PLUSSIGN && code !== HYPHENMINUS) { + // Number sign is expected + return 0; + } + } + + return checkInteger(token, sign ? 0 : 1, sign, offset); +} + +// An+B microsyntax https://www.w3.org/TR/css-syntax-3/#anb +function anPlusB(token, getNextToken) { + /* eslint-disable brace-style*/ + let offset = 0; + + if (!token) { + return 0; + } + + // + if (token.type === types.Number) { + return checkInteger(token, 0, ALLOW_SIGN, offset); // b + } + + // -n + // -n + // -n ['+' | '-'] + // -n- + // + else if (token.type === types.Ident && token.value.charCodeAt(0) === HYPHENMINUS) { + // expect 1st char is N + if (!utils.cmpChar(token.value, 1, N)) { + return 0; + } + + switch (token.value.length) { + // -n + // -n + // -n ['+' | '-'] + case 2: + return consumeB(getNextToken(++offset), offset, getNextToken); + + // -n- + case 3: + if (token.value.charCodeAt(2) !== HYPHENMINUS) { + return 0; + } + + offset = skipSC(getNextToken(++offset), offset, getNextToken); + token = getNextToken(offset); + + return checkInteger(token, 0, DISALLOW_SIGN, offset); + + // + default: + if (token.value.charCodeAt(2) !== HYPHENMINUS) { + return 0; + } + + return checkInteger(token, 3, DISALLOW_SIGN, offset); + } + } + + // '+'? n + // '+'? n + // '+'? n ['+' | '-'] + // '+'? n- + // '+'? + else if (token.type === types.Ident || (isDelim(token, PLUSSIGN) && getNextToken(offset + 1).type === types.Ident)) { + // just ignore a plus + if (token.type !== types.Ident) { + token = getNextToken(++offset); + } + + if (token === null || !utils.cmpChar(token.value, 0, N)) { + return 0; + } + + switch (token.value.length) { + // '+'? n + // '+'? n + // '+'? n ['+' | '-'] + case 1: + return consumeB(getNextToken(++offset), offset, getNextToken); + + // '+'? n- + case 2: + if (token.value.charCodeAt(1) !== HYPHENMINUS) { + return 0; + } + + offset = skipSC(getNextToken(++offset), offset, getNextToken); + token = getNextToken(offset); + + return checkInteger(token, 0, DISALLOW_SIGN, offset); + + // '+'? + default: + if (token.value.charCodeAt(1) !== HYPHENMINUS) { + return 0; + } + + return checkInteger(token, 2, DISALLOW_SIGN, offset); + } + } + + // + // + // + // + // ['+' | '-'] + else if (token.type === types.Dimension) { + let code = token.value.charCodeAt(0); + let sign = code === PLUSSIGN || code === HYPHENMINUS ? 1 : 0; + let i = sign; + + for (; i < token.value.length; i++) { + if (!charCodeDefinitions.isDigit(token.value.charCodeAt(i))) { + break; + } + } + + if (i === sign) { + // Integer is expected + return 0; + } + + if (!utils.cmpChar(token.value, i, N)) { + return 0; + } + + // + // + // ['+' | '-'] + if (i + 1 === token.value.length) { + return consumeB(getNextToken(++offset), offset, getNextToken); + } else { + if (token.value.charCodeAt(i + 1) !== HYPHENMINUS) { + return 0; + } + + // + if (i + 2 === token.value.length) { + offset = skipSC(getNextToken(++offset), offset, getNextToken); + token = getNextToken(offset); + + return checkInteger(token, 0, DISALLOW_SIGN, offset); + } + // + else { + return checkInteger(token, i + 2, DISALLOW_SIGN, offset); + } + } + } + + return 0; +} + +module.exports = anPlusB; diff --git a/node_modules/css-tree/cjs/lexer/generic-const.cjs b/node_modules/css-tree/cjs/lexer/generic-const.cjs new file mode 100644 index 00000000..9b9f6157 --- /dev/null +++ b/node_modules/css-tree/cjs/lexer/generic-const.cjs @@ -0,0 +1,12 @@ +'use strict'; + +// https://drafts.csswg.org/css-cascade-5/ +const cssWideKeywords = [ + 'initial', + 'inherit', + 'unset', + 'revert', + 'revert-layer' +]; + +exports.cssWideKeywords = cssWideKeywords; diff --git a/node_modules/css-tree/cjs/lexer/generic-urange.cjs b/node_modules/css-tree/cjs/lexer/generic-urange.cjs new file mode 100644 index 00000000..ce167bb1 --- /dev/null +++ b/node_modules/css-tree/cjs/lexer/generic-urange.cjs @@ -0,0 +1,149 @@ +'use strict'; + +const charCodeDefinitions = require('../tokenizer/char-code-definitions.cjs'); +const types = require('../tokenizer/types.cjs'); +const utils = require('../tokenizer/utils.cjs'); + +const PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+) +const HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-) +const QUESTIONMARK = 0x003F; // U+003F QUESTION MARK (?) +const U = 0x0075; // U+0075 LATIN SMALL LETTER U (u) + +function isDelim(token, code) { + return token !== null && token.type === types.Delim && token.value.charCodeAt(0) === code; +} + +function startsWith(token, code) { + return token.value.charCodeAt(0) === code; +} + +function hexSequence(token, offset, allowDash) { + let hexlen = 0; + + for (let pos = offset; pos < token.value.length; pos++) { + const code = token.value.charCodeAt(pos); + + if (code === HYPHENMINUS && allowDash && hexlen !== 0) { + hexSequence(token, offset + hexlen + 1, false); + return 6; // dissallow following question marks + } + + if (!charCodeDefinitions.isHexDigit(code)) { + return 0; // not a hex digit + } + + if (++hexlen > 6) { + return 0; // too many hex digits + } } + + return hexlen; +} + +function withQuestionMarkSequence(consumed, length, getNextToken) { + if (!consumed) { + return 0; // nothing consumed + } + + while (isDelim(getNextToken(length), QUESTIONMARK)) { + if (++consumed > 6) { + return 0; // too many question marks + } + + length++; + } + + return length; +} + +// https://drafts.csswg.org/css-syntax/#urange +// Informally, the production has three forms: +// U+0001 +// Defines a range consisting of a single code point, in this case the code point "1". +// U+0001-00ff +// Defines a range of codepoints between the first and the second value, in this case +// the range between "1" and "ff" (255 in decimal) inclusive. +// U+00?? +// Defines a range of codepoints where the "?" characters range over all hex digits, +// in this case defining the same as the value U+0000-00ff. +// In each form, a maximum of 6 digits is allowed for each hexadecimal number (if you treat "?" as a hexadecimal digit). +// +// = +// u '+' '?'* | +// u '?'* | +// u '?'* | +// u | +// u | +// u '+' '?'+ +function urange(token, getNextToken) { + let length = 0; + + // should start with `u` or `U` + if (token === null || token.type !== types.Ident || !utils.cmpChar(token.value, 0, U)) { + return 0; + } + + token = getNextToken(++length); + if (token === null) { + return 0; + } + + // u '+' '?'* + // u '+' '?'+ + if (isDelim(token, PLUSSIGN)) { + token = getNextToken(++length); + if (token === null) { + return 0; + } + + if (token.type === types.Ident) { + // u '+' '?'* + return withQuestionMarkSequence(hexSequence(token, 0, true), ++length, getNextToken); + } + + if (isDelim(token, QUESTIONMARK)) { + // u '+' '?'+ + return withQuestionMarkSequence(1, ++length, getNextToken); + } + + // Hex digit or question mark is expected + return 0; + } + + // u '?'* + // u + // u + if (token.type === types.Number) { + const consumedHexLength = hexSequence(token, 1, true); + if (consumedHexLength === 0) { + return 0; + } + + token = getNextToken(++length); + if (token === null) { + // u + return length; + } + + if (token.type === types.Dimension || token.type === types.Number) { + // u + // u + if (!startsWith(token, HYPHENMINUS) || !hexSequence(token, 1, false)) { + return 0; + } + + return length + 1; + } + + // u '?'* + return withQuestionMarkSequence(consumedHexLength, length, getNextToken); + } + + // u '?'* + if (token.type === types.Dimension) { + return withQuestionMarkSequence(hexSequence(token, 1, true), ++length, getNextToken); + } + + return 0; +} + +module.exports = urange; diff --git a/node_modules/css-tree/cjs/lexer/generic.cjs b/node_modules/css-tree/cjs/lexer/generic.cjs new file mode 100644 index 00000000..6b9e5ced --- /dev/null +++ b/node_modules/css-tree/cjs/lexer/generic.cjs @@ -0,0 +1,573 @@ +'use strict'; + +const genericConst = require('./generic-const.cjs'); +const genericAnPlusB = require('./generic-an-plus-b.cjs'); +const genericUrange = require('./generic-urange.cjs'); +const types = require('../tokenizer/types.cjs'); +const charCodeDefinitions = require('../tokenizer/char-code-definitions.cjs'); +const utils = require('../tokenizer/utils.cjs'); + +const calcFunctionNames = ['calc(', '-moz-calc(', '-webkit-calc(']; +const balancePair = new Map([ + [types.Function, types.RightParenthesis], + [types.LeftParenthesis, types.RightParenthesis], + [types.LeftSquareBracket, types.RightSquareBracket], + [types.LeftCurlyBracket, types.RightCurlyBracket] +]); + +// safe char code getter +function charCodeAt(str, index) { + return index < str.length ? str.charCodeAt(index) : 0; +} + +function eqStr(actual, expected) { + return utils.cmpStr(actual, 0, actual.length, expected); +} + +function eqStrAny(actual, expected) { + for (let i = 0; i < expected.length; i++) { + if (eqStr(actual, expected[i])) { + return true; + } + } + + return false; +} + +// IE postfix hack, i.e. 123\0 or 123px\9 +function isPostfixIeHack(str, offset) { + if (offset !== str.length - 2) { + return false; + } + + return ( + charCodeAt(str, offset) === 0x005C && // U+005C REVERSE SOLIDUS (\) + charCodeDefinitions.isDigit(charCodeAt(str, offset + 1)) + ); +} + +function outOfRange(opts, value, numEnd) { + if (opts && opts.type === 'Range') { + const num = Number( + numEnd !== undefined && numEnd !== value.length + ? value.substr(0, numEnd) + : value + ); + + if (isNaN(num)) { + return true; + } + + // FIXME: when opts.min is a string it's a dimension, skip a range validation + // for now since it requires a type covertation which is not implmented yet + if (opts.min !== null && num < opts.min && typeof opts.min !== 'string') { + return true; + } + + // FIXME: when opts.max is a string it's a dimension, skip a range validation + // for now since it requires a type covertation which is not implmented yet + if (opts.max !== null && num > opts.max && typeof opts.max !== 'string') { + return true; + } + } + + return false; +} + +function consumeFunction(token, getNextToken) { + let balanceCloseType = 0; + let balanceStash = []; + let length = 0; + + // balanced token consuming + scan: + do { + switch (token.type) { + case types.RightCurlyBracket: + case types.RightParenthesis: + case types.RightSquareBracket: + if (token.type !== balanceCloseType) { + break scan; + } + + balanceCloseType = balanceStash.pop(); + + if (balanceStash.length === 0) { + length++; + break scan; + } + + break; + + case types.Function: + case types.LeftParenthesis: + case types.LeftSquareBracket: + case types.LeftCurlyBracket: + balanceStash.push(balanceCloseType); + balanceCloseType = balancePair.get(token.type); + break; + } + + length++; + } while (token = getNextToken(length)); + + return length; +} + +// TODO: implement +// can be used wherever , , ,