summaryrefslogtreecommitdiff
path: root/node_modules/doiuse
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:10:59 +0800
committerlittleblack111 <littleblack11111@gmail.com>2026-05-18 23:41:44 +0800
commitfc87c009806dcc98867f6b58efe29b042aa01dee (patch)
tree8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/doiuse
parent3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff)
node: updatemain
Diffstat (limited to 'node_modules/doiuse')
-rw-r--r--node_modules/doiuse/LICENSE22
-rw-r--r--node_modules/doiuse/README.md172
-rwxr-xr-xnode_modules/doiuse/bin/cli.js161
-rw-r--r--node_modules/doiuse/data/.eslintrc.json18
-rw-r--r--node_modules/doiuse/data/features.js425
-rw-r--r--node_modules/doiuse/data/features/alternate-stylesheet.js12
-rw-r--r--node_modules/doiuse/data/features/background-attachment.js15
-rw-r--r--node_modules/doiuse/data/features/background-clip-text.js13
-rw-r--r--node_modules/doiuse/data/features/background-img-opts.js5
-rw-r--r--node_modules/doiuse/data/features/background-position-x-y.js4
-rw-r--r--node_modules/doiuse/data/features/background-repeat-round-space.js12
-rw-r--r--node_modules/doiuse/data/features/border-image.js9
-rw-r--r--node_modules/doiuse/data/features/border-radius.js7
-rw-r--r--node_modules/doiuse/data/features/calc.js3
-rw-r--r--node_modules/doiuse/data/features/ch-unit.js8
-rw-r--r--node_modules/doiuse/data/features/css-all.js3
-rw-r--r--node_modules/doiuse/data/features/css-animation.js14
-rw-r--r--node_modules/doiuse/data/features/css-any-link.js3
-rw-r--r--node_modules/doiuse/data/features/css-appearance.js5
-rw-r--r--node_modules/doiuse/data/features/css-at-counter-style.js3
-rw-r--r--node_modules/doiuse/data/features/css-autofill.js3
-rw-r--r--node_modules/doiuse/data/features/css-backdrop-filter.js3
-rw-r--r--node_modules/doiuse/data/features/css-background-offsets.js11
-rw-r--r--node_modules/doiuse/data/features/css-backgroundblendmode.js3
-rw-r--r--node_modules/doiuse/data/features/css-boxdecorationbreak.js13
-rw-r--r--node_modules/doiuse/data/features/css-boxshadow.js3
-rw-r--r--node_modules/doiuse/data/features/css-canvas.js9
-rw-r--r--node_modules/doiuse/data/features/css-caret-color.js12
-rw-r--r--node_modules/doiuse/data/features/css-cascade-layers.js12
-rw-r--r--node_modules/doiuse/data/features/css-case-insensitive.js14
-rw-r--r--node_modules/doiuse/data/features/css-clip-path.js3
-rw-r--r--node_modules/doiuse/data/features/css-color-adjust.js13
-rw-r--r--node_modules/doiuse/data/features/css-color-function.js12
-rw-r--r--node_modules/doiuse/data/features/css-conic-gradients.js12
-rw-r--r--node_modules/doiuse/data/features/css-container-queries-style.js3
-rw-r--r--node_modules/doiuse/data/features/css-container-queries.js12
-rw-r--r--node_modules/doiuse/data/features/css-container-query-units.js10
-rw-r--r--node_modules/doiuse/data/features/css-containment.js12
-rw-r--r--node_modules/doiuse/data/features/css-content-visibility.js12
-rw-r--r--node_modules/doiuse/data/features/css-counters.js5
-rw-r--r--node_modules/doiuse/data/features/css-crisp-edges.js12
-rw-r--r--node_modules/doiuse/data/features/css-cross-fade.js15
-rw-r--r--node_modules/doiuse/data/features/css-default-pseudo.js12
-rw-r--r--node_modules/doiuse/data/features/css-descendant-gtgt.js12
-rw-r--r--node_modules/doiuse/data/features/css-deviceadaptation.js12
-rw-r--r--node_modules/doiuse/data/features/css-dir-pseudo.js12
-rw-r--r--node_modules/doiuse/data/features/css-display-contents.js12
-rw-r--r--node_modules/doiuse/data/features/css-element-function.js12
-rw-r--r--node_modules/doiuse/data/features/css-env-function.js3
-rw-r--r--node_modules/doiuse/data/features/css-exclusions.js13
-rw-r--r--node_modules/doiuse/data/features/css-featurequeries.js3
-rw-r--r--node_modules/doiuse/data/features/css-file-selector-button.js12
-rw-r--r--node_modules/doiuse/data/features/css-filter-function.js12
-rw-r--r--node_modules/doiuse/data/features/css-filters.js3
-rw-r--r--node_modules/doiuse/data/features/css-first-letter.js12
-rw-r--r--node_modules/doiuse/data/features/css-first-line.js12
-rw-r--r--node_modules/doiuse/data/features/css-fixed.js3
-rw-r--r--node_modules/doiuse/data/features/css-focus-visible.js12
-rw-r--r--node_modules/doiuse/data/features/css-focus-within.js12
-rw-r--r--node_modules/doiuse/data/features/css-font-palette.js6
-rw-r--r--node_modules/doiuse/data/features/css-font-rendering-controls.js12
-rw-r--r--node_modules/doiuse/data/features/css-font-stretch.js3
-rw-r--r--node_modules/doiuse/data/features/css-gencontent.js3
-rw-r--r--node_modules/doiuse/data/features/css-gradients.js12
-rw-r--r--node_modules/doiuse/data/features/css-grid-animation.js6
-rw-r--r--node_modules/doiuse/data/features/css-grid.js23
-rw-r--r--node_modules/doiuse/data/features/css-hanging-punctuation.js11
-rw-r--r--node_modules/doiuse/data/features/css-has.js11
-rw-r--r--node_modules/doiuse/data/features/css-hyphens.js3
-rw-r--r--node_modules/doiuse/data/features/css-image-orientation.js3
-rw-r--r--node_modules/doiuse/data/features/css-image-set.js11
-rw-r--r--node_modules/doiuse/data/features/css-in-out-of-range.js14
-rw-r--r--node_modules/doiuse/data/features/css-indeterminate-pseudo.js11
-rw-r--r--node_modules/doiuse/data/features/css-initial-letter.js11
-rw-r--r--node_modules/doiuse/data/features/css-initial-value.js3
-rw-r--r--node_modules/doiuse/data/features/css-lch-lab.js14
-rw-r--r--node_modules/doiuse/data/features/css-letter-spacing.js11
-rw-r--r--node_modules/doiuse/data/features/css-line-clamp.js12
-rw-r--r--node_modules/doiuse/data/features/css-logical-props.js60
-rw-r--r--node_modules/doiuse/data/features/css-marker-pseudo.js11
-rw-r--r--node_modules/doiuse/data/features/css-masks.js39
-rw-r--r--node_modules/doiuse/data/features/css-matches-pseudo.js12
-rw-r--r--node_modules/doiuse/data/features/css-math-functions.js3
-rw-r--r--node_modules/doiuse/data/features/css-media-interaction.js16
-rw-r--r--node_modules/doiuse/data/features/css-media-range-syntax.js3
-rw-r--r--node_modules/doiuse/data/features/css-media-resolution.js3
-rw-r--r--node_modules/doiuse/data/features/css-media-scripting.js11
-rw-r--r--node_modules/doiuse/data/features/css-mediaqueries.js3
-rw-r--r--node_modules/doiuse/data/features/css-mixblendmode.js3
-rw-r--r--node_modules/doiuse/data/features/css-motion-paths.js3
-rw-r--r--node_modules/doiuse/data/features/css-namespaces.js11
-rw-r--r--node_modules/doiuse/data/features/css-nesting.js19
-rw-r--r--node_modules/doiuse/data/features/css-not-sel-list.js13
-rw-r--r--node_modules/doiuse/data/features/css-nth-child-of.js13
-rw-r--r--node_modules/doiuse/data/features/css-opacity.js3
-rw-r--r--node_modules/doiuse/data/features/css-optional-pseudo.js11
-rw-r--r--node_modules/doiuse/data/features/css-overflow-anchor.js11
-rw-r--r--node_modules/doiuse/data/features/css-overflow-overlay.js3
-rw-r--r--node_modules/doiuse/data/features/css-overflow.js13
-rw-r--r--node_modules/doiuse/data/features/css-overscroll-behavior.js5
-rw-r--r--node_modules/doiuse/data/features/css-page-break.js13
-rw-r--r--node_modules/doiuse/data/features/css-paged-media.js11
-rw-r--r--node_modules/doiuse/data/features/css-paint-api.js9
-rw-r--r--node_modules/doiuse/data/features/css-placeholder-shown.js12
-rw-r--r--node_modules/doiuse/data/features/css-placeholder.js5
-rw-r--r--node_modules/doiuse/data/features/css-print-color-adjust.js3
-rw-r--r--node_modules/doiuse/data/features/css-read-only-write.js12
-rw-r--r--node_modules/doiuse/data/features/css-rebeccapurple.js12
-rw-r--r--node_modules/doiuse/data/features/css-reflections.js4
-rw-r--r--node_modules/doiuse/data/features/css-regions.js15
-rw-r--r--node_modules/doiuse/data/features/css-relative-colors.js12
-rw-r--r--node_modules/doiuse/data/features/css-repeating-gradients.js6
-rw-r--r--node_modules/doiuse/data/features/css-resize.js3
-rw-r--r--node_modules/doiuse/data/features/css-revert-value.js4
-rw-r--r--node_modules/doiuse/data/features/css-rrggbbaa.js15
-rw-r--r--node_modules/doiuse/data/features/css-scroll-behavior.js12
-rw-r--r--node_modules/doiuse/data/features/css-scroll-timeline.js27
-rw-r--r--node_modules/doiuse/data/features/css-scrollbar.js4
-rw-r--r--node_modules/doiuse/data/features/css-sel2.js42
-rw-r--r--node_modules/doiuse/data/features/css-sel3.js34
-rw-r--r--node_modules/doiuse/data/features/css-selection.js3
-rw-r--r--node_modules/doiuse/data/features/css-shapes.js5
-rw-r--r--node_modules/doiuse/data/features/css-snappoints.js36
-rw-r--r--node_modules/doiuse/data/features/css-sticky.js3
-rw-r--r--node_modules/doiuse/data/features/css-subgrid.js12
-rw-r--r--node_modules/doiuse/data/features/css-supports-api.js12
-rw-r--r--node_modules/doiuse/data/features/css-table.js7
-rw-r--r--node_modules/doiuse/data/features/css-text-align-last.js12
-rw-r--r--node_modules/doiuse/data/features/css-text-box-trim.js13
-rw-r--r--node_modules/doiuse/data/features/css-text-indent.js12
-rw-r--r--node_modules/doiuse/data/features/css-text-justify.js12
-rw-r--r--node_modules/doiuse/data/features/css-text-orientation.js12
-rw-r--r--node_modules/doiuse/data/features/css-text-spacing.js12
-rw-r--r--node_modules/doiuse/data/features/css-textshadow.js3
-rw-r--r--node_modules/doiuse/data/features/css-touch-action.js3
-rw-r--r--node_modules/doiuse/data/features/css-transitions.js7
-rw-r--r--node_modules/doiuse/data/features/css-unicode-bidi.js12
-rw-r--r--node_modules/doiuse/data/features/css-unset-value.js3
-rw-r--r--node_modules/doiuse/data/features/css-variables.js8
-rw-r--r--node_modules/doiuse/data/features/css-when-else.js12
-rw-r--r--node_modules/doiuse/data/features/css-widows-orphans.js13
-rw-r--r--node_modules/doiuse/data/features/css-width-stretch.js12
-rw-r--r--node_modules/doiuse/data/features/css-writing-mode.js12
-rw-r--r--node_modules/doiuse/data/features/css-zoom.js12
-rw-r--r--node_modules/doiuse/data/features/css3-attr.js17
-rw-r--r--node_modules/doiuse/data/features/css3-boxsizing.js3
-rw-r--r--node_modules/doiuse/data/features/css3-colors.js7
-rw-r--r--node_modules/doiuse/data/features/css3-cursors-grab.js3
-rw-r--r--node_modules/doiuse/data/features/css3-cursors-newer.js3
-rw-r--r--node_modules/doiuse/data/features/css3-cursors.js17
-rw-r--r--node_modules/doiuse/data/features/css3-tabsize.js3
-rw-r--r--node_modules/doiuse/data/features/currentcolor.js12
-rw-r--r--node_modules/doiuse/data/features/devicepixelratio.js12
-rw-r--r--node_modules/doiuse/data/features/extended-system-fonts.js12
-rw-r--r--node_modules/doiuse/data/features/flexbox-gap.js18
-rw-r--r--node_modules/doiuse/data/features/flexbox.js13
-rw-r--r--node_modules/doiuse/data/features/flow-root.js12
-rw-r--r--node_modules/doiuse/data/features/font-family-system-ui.js12
-rw-r--r--node_modules/doiuse/data/features/font-feature.js6
-rw-r--r--node_modules/doiuse/data/features/font-kerning.js12
-rw-r--r--node_modules/doiuse/data/features/font-loading.js12
-rw-r--r--node_modules/doiuse/data/features/font-size-adjust.js3
-rw-r--r--node_modules/doiuse/data/features/font-smooth.js12
-rw-r--r--node_modules/doiuse/data/features/font-unicode-range.js3
-rw-r--r--node_modules/doiuse/data/features/font-variant-alternates.js12
-rw-r--r--node_modules/doiuse/data/features/font-variant-numeric.js12
-rw-r--r--node_modules/doiuse/data/features/fontface.js5
-rw-r--r--node_modules/doiuse/data/features/fullscreen.js3
-rw-r--r--node_modules/doiuse/data/features/getcomputedstyle.js12
-rw-r--r--node_modules/doiuse/data/features/inline-block.js3
-rw-r--r--node_modules/doiuse/data/features/intrinsic-width.js10
-rw-r--r--node_modules/doiuse/data/features/justify-content-space-evenly.js12
-rw-r--r--node_modules/doiuse/data/features/kerning-pairs-ligatures.js3
-rw-r--r--node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate-override.js3
-rw-r--r--node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate.js3
-rw-r--r--node_modules/doiuse/data/features/mdn-css-unicode-bidi-plaintext.js3
-rw-r--r--node_modules/doiuse/data/features/mdn-text-decoration-color.js3
-rw-r--r--node_modules/doiuse/data/features/mdn-text-decoration-line.js3
-rw-r--r--node_modules/doiuse/data/features/mdn-text-decoration-shorthand.js3
-rw-r--r--node_modules/doiuse/data/features/mdn-text-decoration-style.js3
-rw-r--r--node_modules/doiuse/data/features/minmaxwh.js6
-rw-r--r--node_modules/doiuse/data/features/multibackgrounds.js11
-rw-r--r--node_modules/doiuse/data/features/multicolumn.js15
-rw-r--r--node_modules/doiuse/data/features/object-fit.js4
-rw-r--r--node_modules/doiuse/data/features/outline.js6
-rw-r--r--node_modules/doiuse/data/features/pointer-events.js3
-rw-r--r--node_modules/doiuse/data/features/pointer.js3
-rw-r--r--node_modules/doiuse/data/features/prefers-color-scheme.js12
-rw-r--r--node_modules/doiuse/data/features/prefers-reduced-motion.js13
-rw-r--r--node_modules/doiuse/data/features/rem.js3
-rw-r--r--node_modules/doiuse/data/features/run-in.js12
-rw-r--r--node_modules/doiuse/data/features/style-scoped.js12
-rw-r--r--node_modules/doiuse/data/features/svg-css.js19
-rw-r--r--node_modules/doiuse/data/features/text-decoration.js9
-rw-r--r--node_modules/doiuse/data/features/text-emphasis.js15
-rw-r--r--node_modules/doiuse/data/features/text-overflow.js3
-rw-r--r--node_modules/doiuse/data/features/text-size-adjust.js3
-rw-r--r--node_modules/doiuse/data/features/text-stroke.js15
-rw-r--r--node_modules/doiuse/data/features/transforms2d.js4
-rw-r--r--node_modules/doiuse/data/features/transforms3d.js7
-rw-r--r--node_modules/doiuse/data/features/ttf.js20
-rw-r--r--node_modules/doiuse/data/features/user-select-none.js3
-rw-r--r--node_modules/doiuse/data/features/variable-fonts.js12
-rw-r--r--node_modules/doiuse/data/features/viewport-unit-variants.js43
-rw-r--r--node_modules/doiuse/data/features/viewport-units.js8
-rw-r--r--node_modules/doiuse/data/features/webkit-user-drag.js12
-rw-r--r--node_modules/doiuse/data/features/will-change.js3
-rw-r--r--node_modules/doiuse/data/features/word-break.js3
-rw-r--r--node_modules/doiuse/data/features/wordwrap.js4
-rw-r--r--node_modules/doiuse/exports/index.cjs2901
-rw-r--r--node_modules/doiuse/exports/index.js9
-rw-r--r--node_modules/doiuse/exports/stream.cjs3087
-rw-r--r--node_modules/doiuse/exports/stream.js9
-rw-r--r--node_modules/doiuse/lib/BrowserSelection.js181
-rw-r--r--node_modules/doiuse/lib/Detector.js157
-rw-r--r--node_modules/doiuse/lib/DoIUse.js130
-rw-r--r--node_modules/doiuse/lib/stream/CssUsageDuplex.js36
-rw-r--r--node_modules/doiuse/lib/stream/RuleUsageTransform.js80
-rw-r--r--node_modules/doiuse/lib/stream/SourceMapTransform.js74
-rw-r--r--node_modules/doiuse/package.json96
-rw-r--r--node_modules/doiuse/types/bin/cli.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features.d.ts786
-rw-r--r--node_modules/doiuse/types/data/features/alternate-stylesheet.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/background-attachment.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/background-clip-text.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/background-img-opts.d.ts6
-rw-r--r--node_modules/doiuse/types/data/features/background-position-x-y.d.ts5
-rw-r--r--node_modules/doiuse/types/data/features/background-repeat-round-space.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/border-image.d.ts9
-rw-r--r--node_modules/doiuse/types/data/features/border-radius.d.ts8
-rw-r--r--node_modules/doiuse/types/data/features/calc.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/ch-unit.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-all.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-animation.d.ts12
-rw-r--r--node_modules/doiuse/types/data/features/css-any-link.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-appearance.d.ts6
-rw-r--r--node_modules/doiuse/types/data/features/css-at-counter-style.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-autofill.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-backdrop-filter.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-background-offsets.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-backgroundblendmode.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-boxdecorationbreak.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-boxshadow.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-canvas.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-caret-color.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-cascade-layers.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-case-insensitive.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-clip-path.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-color-adjust.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-color-function.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-conic-gradients.d.ts11
-rw-r--r--node_modules/doiuse/types/data/features/css-container-queries-style.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-container-queries.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-container-query-units.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-containment.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-content-visibility.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-counters.d.ts6
-rw-r--r--node_modules/doiuse/types/data/features/css-crisp-edges.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-cross-fade.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-default-pseudo.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-descendant-gtgt.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-deviceadaptation.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-dir-pseudo.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-display-contents.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-element-function.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-env-function.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-exclusions.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-featurequeries.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-file-selector-button.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-filter-function.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-filters.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-first-letter.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-first-line.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-fixed.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-focus-visible.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-focus-within.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-font-palette.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-font-rendering-controls.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-font-stretch.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-gencontent.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-gradients.d.ts11
-rw-r--r--node_modules/doiuse/types/data/features/css-grid-animation.d.ts5
-rw-r--r--node_modules/doiuse/types/data/features/css-grid.d.ts19
-rw-r--r--node_modules/doiuse/types/data/features/css-hanging-punctuation.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-has.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-hyphens.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-image-orientation.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-image-set.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-in-out-of-range.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-indeterminate-pseudo.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-initial-letter.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-initial-value.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-lch-lab.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-letter-spacing.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-line-clamp.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-logical-props.d.ts61
-rw-r--r--node_modules/doiuse/types/data/features/css-marker-pseudo.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-masks.d.ts39
-rw-r--r--node_modules/doiuse/types/data/features/css-matches-pseudo.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-math-functions.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-media-interaction.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-media-range-syntax.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-media-resolution.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-media-scripting.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-mediaqueries.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-mixblendmode.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-motion-paths.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-namespaces.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-nesting.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-not-sel-list.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-nth-child-of.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-opacity.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-optional-pseudo.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-overflow-anchor.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-overflow-overlay.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-overflow.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-overscroll-behavior.d.ts6
-rw-r--r--node_modules/doiuse/types/data/features/css-page-break.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-paged-media.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-paint-api.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-placeholder-shown.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-placeholder.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-print-color-adjust.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-read-only-write.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-rebeccapurple.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-reflections.d.ts5
-rw-r--r--node_modules/doiuse/types/data/features/css-regions.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-relative-colors.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-repeating-gradients.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-resize.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-revert-value.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-rrggbbaa.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-scroll-behavior.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-scroll-timeline.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-scrollbar.d.ts5
-rw-r--r--node_modules/doiuse/types/data/features/css-sel2.d.ts9
-rw-r--r--node_modules/doiuse/types/data/features/css-sel3.d.ts8
-rw-r--r--node_modules/doiuse/types/data/features/css-selection.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-shapes.d.ts6
-rw-r--r--node_modules/doiuse/types/data/features/css-snappoints.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-sticky.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-subgrid.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-supports-api.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-table.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-text-align-last.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-text-box-trim.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-text-indent.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-text-justify.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-text-orientation.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-text-spacing.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-textshadow.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-touch-action.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-transitions.d.ts8
-rw-r--r--node_modules/doiuse/types/data/features/css-unicode-bidi.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-unset-value.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css-variables.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-when-else.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-widows-orphans.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-width-stretch.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-writing-mode.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css-zoom.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css3-attr.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/css3-boxsizing.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css3-colors.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css3-cursors-grab.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css3-cursors-newer.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css3-cursors.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/css3-tabsize.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/currentcolor.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/devicepixelratio.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/extended-system-fonts.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/flexbox-gap.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/flexbox.d.ts11
-rw-r--r--node_modules/doiuse/types/data/features/flow-root.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/font-family-system-ui.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/font-feature.d.ts7
-rw-r--r--node_modules/doiuse/types/data/features/font-kerning.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/font-loading.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/font-size-adjust.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/font-smooth.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/font-unicode-range.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/font-variant-alternates.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/font-variant-numeric.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/fontface.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/fullscreen.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/getcomputedstyle.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/inline-block.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/intrinsic-width.d.ts9
-rw-r--r--node_modules/doiuse/types/data/features/justify-content-space-evenly.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/kerning-pairs-ligatures.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-isolate-override.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-isolate.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-plaintext.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/mdn-text-decoration-color.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/mdn-text-decoration-line.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/mdn-text-decoration-shorthand.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/mdn-text-decoration-style.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/minmaxwh.d.ts7
-rw-r--r--node_modules/doiuse/types/data/features/multibackgrounds.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/multicolumn.d.ts16
-rw-r--r--node_modules/doiuse/types/data/features/object-fit.d.ts5
-rw-r--r--node_modules/doiuse/types/data/features/outline.d.ts7
-rw-r--r--node_modules/doiuse/types/data/features/pointer-events.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/pointer.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/prefers-color-scheme.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/prefers-reduced-motion.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/rem.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/run-in.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/style-scoped.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/svg-css.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/text-decoration.d.ts10
-rw-r--r--node_modules/doiuse/types/data/features/text-emphasis.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/text-overflow.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/text-size-adjust.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/text-stroke.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/transforms2d.d.ts5
-rw-r--r--node_modules/doiuse/types/data/features/transforms3d.d.ts8
-rw-r--r--node_modules/doiuse/types/data/features/ttf.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/user-select-none.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/variable-fonts.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/viewport-unit-variants.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/viewport-units.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/webkit-user-drag.d.ts2
-rw-r--r--node_modules/doiuse/types/data/features/will-change.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/word-break.d.ts4
-rw-r--r--node_modules/doiuse/types/data/features/wordwrap.d.ts5
-rw-r--r--node_modules/doiuse/types/exports/index.d.ts6
-rw-r--r--node_modules/doiuse/types/exports/stream.d.ts10
-rw-r--r--node_modules/doiuse/types/lib/BrowserSelection.d.ts511
-rw-r--r--node_modules/doiuse/types/lib/Detector.d.ts1076
-rw-r--r--node_modules/doiuse/types/lib/DoIUse.d.ts56
-rw-r--r--node_modules/doiuse/types/lib/stream/CssUsageDuplex.d.ts17
-rw-r--r--node_modules/doiuse/types/lib/stream/RuleUsageTransform.d.ts26
-rw-r--r--node_modules/doiuse/types/lib/stream/SourceMapTransform.d.ts22
-rw-r--r--node_modules/doiuse/types/scripts/update-features.d.ts7
-rw-r--r--node_modules/doiuse/types/test/caniuse-lite.d.ts1
-rw-r--r--node_modules/doiuse/types/test/cli.d.ts1
-rw-r--r--node_modules/doiuse/types/test/css-rule-stream.d.ts1
-rw-r--r--node_modules/doiuse/types/test/detect-feature-use.d.ts1
-rw-r--r--node_modules/doiuse/types/test/missing-support.d.ts1
-rw-r--r--node_modules/doiuse/types/test/postcss-plugin.d.ts1
-rw-r--r--node_modules/doiuse/types/test/regex.d.ts1
-rw-r--r--node_modules/doiuse/types/test/stream.d.ts1
-rw-r--r--node_modules/doiuse/types/test/utils.d.ts7
-rw-r--r--node_modules/doiuse/types/utils/getFiles.d.ts7
-rw-r--r--node_modules/doiuse/types/utils/kebabToCamel.d.ts6
-rw-r--r--node_modules/doiuse/types/utils/util.d.ts32
-rw-r--r--node_modules/doiuse/utils/getFiles.js19
-rw-r--r--node_modules/doiuse/utils/kebabToCamel.js8
-rw-r--r--node_modules/doiuse/utils/util.js79
450 files changed, 0 insertions, 13037 deletions
diff --git a/node_modules/doiuse/LICENSE b/node_modules/doiuse/LICENSE
deleted file mode 100644
index 18ed0820..00000000
--- a/node_modules/doiuse/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Anand Thakker
-
-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/doiuse/README.md b/node_modules/doiuse/README.md
deleted file mode 100644
index 0964c18c..00000000
--- a/node_modules/doiuse/README.md
+++ /dev/null
@@ -1,172 +0,0 @@
-[![Build Status](https://travis-ci.org/anandthakker/doiuse.svg?branch=master)](https://travis-ci.org/anandthakker/doiuse)
-[![Release Notes](https://release-notes.com/badges/v2.svg)](https://release-notes.com/@open-source-community/anandthakker-doiuse)
-
-# doiuse
-
-Lint CSS for browser support against [Can I use](http://caniuse.com) database.
-
-## Install
-
-```sh
-npm install -g doiuse
-```
-
-## Usage Examples
-
-### Command Line
-
-```bash
-doiuse --browsers "ie >= 9, > 1%, last 2 versions" main.css
-# or
-cat main.css | doiuse --browsers "ie >= 9, > 1%, last 2 versions"
-```
-
-**Sample output:**
-```
-/projects/website/main.css:5:3: CSS3 Box-sizing not supported by: IE (8,9,10,11), Chrome (36,37,38), Safari (8,7.1), Opera (24,25), iOS Safari (8,7.1,8.1), Android Browser (4.1,4.4,4.4.4), IE Mobile (10,11)
-/projects/website/main.css:6:3: CSS3 Box-sizing not supported by: IE (8,9,10,11), Chrome (36,37,38), Safari (8,7.1), Opera (24,25), iOS Safari (8,7.1,8.1), Android Browser (4.1,4.4,4.4.4), IE Mobile (10,11)
-/projects/website/main.css:8:3: CSS user-select: none not supported by: IE (8,9)
-/projects/website/main.css:9:3: CSS user-select: none not supported by: IE (8,9)
-/projects/website/main.css:10:3: CSS user-select: none not supported by: IE (8,9)
-/projects/website/main.css:11:3: CSS user-select: none not supported by: IE (8,9)
-/projects/website/main.css:12:3: CSS user-select: none not supported by: IE (8,9)
-/projects/website/main.css:13:3: Pointer events not supported by: IE (8,9,10), Firefox (32,33), Chrome (36,37,38), Safari (8,7.1), Opera (24,25), iOS Safari (8,7.1,8.1), Android Browser (4.1,4.4,4.4.4), IE Mobile (10)
-/projects/website/main.css:14:3: Pointer events not supported by: IE (8,9,10), Firefox (32,33), Chrome (36,37,38), Safari (8,7.1), Opera (24,25), iOS Safari (8,7.1,8.1), Android Browser (4.1,4.4,4.4.4), IE Mobile (10)
-/projects/website/main.css:32:3: CSS3 Transforms not supported by: IE (8)
-```
-
-Use `--json` to get output as (newline-delimited) JSON objects.
-
-### JS
-
-```javascript
-import postcss from 'postcss';
-import DoIUse from 'doiuse/lib/DoIUse.js';
-
-postcss(new DoIUse({
- browsers:['ie >= 6', '> 1%'],
- ignore: ['rem'], // an optional array of features to ignore
- ignoreFiles: ['**/normalize.css'], // an optional array of file globs to match against original source file path, to ignore
- onFeatureUsage: (usageInfo) => {
- console.log(usageInfo.message);
- }
-})).process("a { background-size: cover; }")
-```
-
-CommonJS syntax is still supported if using `var doiuse = require('doiuse')`.
-
-### Gulp (CommonJS)
-
-```javascript
-var gulp = require('gulp')
-var postcss = require('postcss')
-var doiuse = require('doiuse')
-
-gulp.src(src, { cwd: process.cwd() })
-.pipe(gulp.postcss([
- doiuse({
- browsers: [
- 'ie >= 8',
- '> 1%'
- ],
- ignore: ['rem'], // an optional array of features to ignore
- ignoreFiles: ['**/normalize.css'], // an optional array of file globs to match against original source file path, to ignore
- onFeatureUsage: function (usageInfo) {
- console.log(usageInfo.message)
- }
- })
-]))
-```
-
-## How it works
-
-In particular, the approach to detecting features usage is currently quite naive.
-
-<a name="features-list"></a>Refer to the data in [/data/features.js](data/features.js).
-
-- If a feature in that dataset only specifies `properties`, we just use those
- properties for regex/substring matches against the properties used in the input CSS.
-- If a feature also specifies `values`, then we also require that the associated
- value matches one of those values.
-
-## API Details
-
-### As a transform stream
-
-```javascript
-var doiuse = require('doiuse/stream');
-
-process.stdin
- .pipe(doiuse({ browsers: ['ie >= 8', '> 1%'], ignore: ['rem'] }))
- .on('data', function (usageInfo) {
- console.log(JSON.stringify(usageInfo))
- })
-```
-
-Yields `UsageInfo` objects as described below.
-
-### As a postcss plugin
-
-`postcss(new DoIUse(opts)).process(css)`, where `opts` is:
-```javascript
-{
- browsers: ['ie >= 8', '> 1%'], // an autoprefixer-like array of browsers.
- ignore: ['rem'], // an optional array of features to ignore
- ignoreFiles: ['**/normalize.css'], // an optional array of file globs to match against original source file path, to ignore
- onFeatureUsage: function(usageInfo) { } // a callback for usages of features not supported by the selected browsers
-}
-```
-
-And `usageInfo` looks like this:
-
-```javascript
-{
- message: '<input source>: line <l>, col <c> - CSS3 Gradients not supported by: IE (8)',
- feature: 'css-gradients', // slug identifying a caniuse-db feature
- featureData: {
- title: 'CSS Gradients',
- missing: "IE (8)", // string of browsers missing support for this feature.
- missingData: {
- // map of browser -> version -> (lack of)support code
- ie: { '8': 'n' }
- },
- caniuseData: { // data from caniuse-db/features-json/[feature].json }
- },
- usage: {} //the postcss node where that feature is being used.
-}
-```
-
-Called once for each usage of each css feature not supported by the selected browsers.
-
-### Ignoring file-specific rules
-
-For disabling some checks you can use just-in-place comments
-
-##### `/* doiuse-disable */`
-
-Disables checks of _all [features](#features-list)_
-
-##### `/* doiuse-disable feature */`
-
-Disables checks of _specified [feature(s)](#features-list)_ (can be comma separated list)
-
-##### `/* doiuse-enable */`
-
-Re-enables checks of _all [features](#features-list)_
-
-##### `/* doiuse-enable feature */`
-
-Enables checks of _specified [feature(s)](#features-list)_ (can be comma separated list)
- - for following lines in file
-
-## [Contributing](CONTRIBUTING.md)
-
-doiuse is an [OPEN Open Source](http://openopensource.org/) Project.
-
-This means that individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.
-
-## License
-
-MIT
-
-**NOTE:** Many of the files in test/cases are from autoprefixer-core, Copyright 2013 Andrey Sitnik <andrey@sitnik.ru>. Please see https://github.com/postcss/autoprefixer-core.
diff --git a/node_modules/doiuse/bin/cli.js b/node_modules/doiuse/bin/cli.js
deleted file mode 100755
index d07d159b..00000000
--- a/node_modules/doiuse/bin/cli.js
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/usr/bin/env node
-
-import fs from 'node:fs';
-import path from 'node:path';
-import { PassThrough } from 'node:stream';
-
-import browserslist from 'browserslist';
-import ldjson from 'ldjson-stream';
-import yargs from 'yargs';
-
-import DoIUse from '../lib/DoIUse.js';
-import CssUsageDuplex from '../lib/stream/CssUsageDuplex.js';
-import { formatBrowserName } from '../utils/util.js';
-
-const FILE_NOT_FOUND = 'ENOENT';
-const argv = await yargs(process.argv.slice(2))
- .usage('Lint your CSS for browser support.')
- .example('cat FILE | $0 -b "ios >= 6"', '')
- .example('$0 --browsers "ie >= 9, > 1%, last 3 versions" [FILE] [FILE] ...', '')
- .example('$0 -b "ie >= 8" -b "> 1%" -b "last 3 versions" [FILE] [FILE] ...', '')
- .options({
- browsers: {
- type: 'string',
- alias: 'b',
- description: 'Autoprefixer-like browser criteria.',
- default: /** @type {string} */ (null),
- string: true,
- },
- ignore: {
- type: 'string',
- alias: 'i',
- description: 'List of features to ignore.',
- default: '',
- string: true,
- },
- l: {
- type: 'boolean',
- alias: 'list-only',
- description: 'Just show the browsers and features that would be tested by'
- + 'the specified browser criteria, without actually processing any CSS.',
- },
- config: {
- type: 'string',
- alias: 'c',
- description: 'Provide options through config file',
- },
- verbose: {
- type: 'number',
- alias: 'v',
- description: 'Verbose output. Multiple levels available.',
- },
- json: {
- type: 'boolean',
- alias: 'j',
- description: 'Output JSON instead of string linter-like messages.',
- },
- })
- .count('verbose')
- .help('h', 'Show help message.')
- .alias('h', 'help')
- .argv;
-
-// Config file reading
-if (argv.config) {
- try {
- const fileData = fs.readFileSync(path.resolve(argv.config));
- const config = JSON.parse(fileData.toString());
-
- for (const [key, value] of Object.entries(config)) {
- argv[key] = (key === 'browsers' && Array.isArray(value))
- ? value.join(',')
- : value;
- }
- } catch (error) {
- if (error && error.code === FILE_NOT_FOUND) {
- process.stderr.write('Config file not found\n');
- }
- throw error;
- }
-}
-
-const browsers = argv.browsers ? argv.browsers.split(',')
- .map((/** @type {string} */ s) => s.trim()) : null;
-
-const ignore = argv.ignore.split(',').map((s) => s.trim());
-
-// Informational output
-if (argv.l || argv.verbose >= 1) {
- const formattedBrowsers = browserslist(browsers)
- .map((b) => {
- const [name, version] = b.split(' ');
- /** @type {[string, number]} */
- const formatted = [formatBrowserName(name), Number.parseInt(version, 10)];
- return formatted;
- })
- .sort((a, b) => b[1] - a[1])
- .map((b) => b.join(' '))
- .join(', ');
- process.stdout.write(`[doiuse] Browsers: ${formattedBrowsers}\n`);
-}
-
-if (argv.verbose >= 2) {
- const { features } = new DoIUse({ browsers }).info();
- process.stdout.write('[doiuse] Unsupported features:\n');
- for (const feature of Object.values(features)) {
- process.stdout.write(`${feature.caniuseData.title}\n`);
- if (argv.verbose >= 3) {
- process.stdout.write(`\n${feature.missing}\n`);
- }
- }
-}
-
-if (argv.l) {
- // eslint-disable-next-line n/no-process-exit
- process.exit(0);
-}
-
-// Process the CSS
-if (argv.help || (argv._.length === 0 && process.stdin.isTTY)) {
- yargs.showHelp();
- // eslint-disable-next-line n/no-process-exit
- process.exit(0);
-}
-
-/** @type {import("stream").Writable} */
-let outStream;
-if (argv.json) {
- outStream = ldjson.serialize();
-} else {
- outStream = new PassThrough({
- objectMode: true,
- transform(usage, enc, next) {
- next(null, `${usage.message}\n`);
- },
- });
-}
-outStream.pipe(process.stdout);
-
-/**
- * @param {import('stream').Stream} stream
- * @param {string} [file]
- */
-function processStream(stream, file) {
- stream.pipe(new CssUsageDuplex({
- browsers: argv.browsers,
- // @ts-expect-error Skip cast
- ignore,
- }, file))
- .on('error', (error) => {
- process.stderr.write('Error parsing file\n');
- throw error;
- })
- .pipe(outStream);
-}
-if (argv._.length > 0) {
- for (const file of argv._) {
- processStream(fs.createReadStream(file.toString()), file.toString());
- }
-} else {
- processStream(process.stdin);
-}
diff --git a/node_modules/doiuse/data/.eslintrc.json b/node_modules/doiuse/data/.eslintrc.json
deleted file mode 100644
index 5d42aab7..00000000
--- a/node_modules/doiuse/data/.eslintrc.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "rules": {
- "canonical/filename-match-exported": "off",
- "canonical/filename-match-regex": "off",
- "import/order": "off",
- "max-len": "off",
- "object-shorthand": [
- "error",
- "consistent"
- ],
- "quote-props": [
- "error",
- "always"
- ],
- "unicorn/no-empty-file": "off",
- "unicorn/prevent-abbreviations": "off"
- }
-} \ No newline at end of file
diff --git a/node_modules/doiuse/data/features.js b/node_modules/doiuse/data/features.js
deleted file mode 100644
index 52bdc6c8..00000000
--- a/node_modules/doiuse/data/features.js
+++ /dev/null
@@ -1,425 +0,0 @@
-/* THIS FILE IS AUTOGENERATED */
-/* eslint-disable import/order, canonical/filename-match-exported */
-
-import alternateStylesheet from './features/alternate-stylesheet.js';
-import backgroundAttachment from './features/background-attachment.js';
-import backgroundClipText from './features/background-clip-text.js';
-import backgroundImgOpts from './features/background-img-opts.js';
-import backgroundPositionXY from './features/background-position-x-y.js';
-import backgroundRepeatRoundSpace from './features/background-repeat-round-space.js';
-import borderImage from './features/border-image.js';
-import borderRadius from './features/border-radius.js';
-import calc from './features/calc.js';
-import chUnit from './features/ch-unit.js';
-import cssAll from './features/css-all.js';
-import cssAnimation from './features/css-animation.js';
-import cssAnyLink from './features/css-any-link.js';
-import cssAppearance from './features/css-appearance.js';
-import cssAtCounterStyle from './features/css-at-counter-style.js';
-import cssAutofill from './features/css-autofill.js';
-import cssBackdropFilter from './features/css-backdrop-filter.js';
-import cssBackgroundOffsets from './features/css-background-offsets.js';
-import cssBackgroundblendmode from './features/css-backgroundblendmode.js';
-import cssBoxdecorationbreak from './features/css-boxdecorationbreak.js';
-import cssBoxshadow from './features/css-boxshadow.js';
-import cssCanvas from './features/css-canvas.js';
-import cssCaretColor from './features/css-caret-color.js';
-import cssCascadeLayers from './features/css-cascade-layers.js';
-import cssCaseInsensitive from './features/css-case-insensitive.js';
-import cssClipPath from './features/css-clip-path.js';
-import cssColorAdjust from './features/css-color-adjust.js';
-import cssColorFunction from './features/css-color-function.js';
-import cssConicGradients from './features/css-conic-gradients.js';
-import cssContainerQueries from './features/css-container-queries.js';
-import cssContainerQueriesStyle from './features/css-container-queries-style.js';
-import cssContainerQueryUnits from './features/css-container-query-units.js';
-import cssContainment from './features/css-containment.js';
-import cssContentVisibility from './features/css-content-visibility.js';
-import cssCounters from './features/css-counters.js';
-import cssCrispEdges from './features/css-crisp-edges.js';
-import cssCrossFade from './features/css-cross-fade.js';
-import cssDefaultPseudo from './features/css-default-pseudo.js';
-import cssDescendantGtgt from './features/css-descendant-gtgt.js';
-import cssDeviceadaptation from './features/css-deviceadaptation.js';
-import cssDirPseudo from './features/css-dir-pseudo.js';
-import cssDisplayContents from './features/css-display-contents.js';
-import cssElementFunction from './features/css-element-function.js';
-import cssEnvFunction from './features/css-env-function.js';
-import cssExclusions from './features/css-exclusions.js';
-import cssFeaturequeries from './features/css-featurequeries.js';
-import cssFileSelectorButton from './features/css-file-selector-button.js';
-import cssFilterFunction from './features/css-filter-function.js';
-import cssFilters from './features/css-filters.js';
-import cssFirstLetter from './features/css-first-letter.js';
-import cssFirstLine from './features/css-first-line.js';
-import cssFixed from './features/css-fixed.js';
-import cssFocusVisible from './features/css-focus-visible.js';
-import cssFocusWithin from './features/css-focus-within.js';
-import cssFontPalette from './features/css-font-palette.js';
-import cssFontRenderingControls from './features/css-font-rendering-controls.js';
-import cssFontStretch from './features/css-font-stretch.js';
-import cssGencontent from './features/css-gencontent.js';
-import cssGradients from './features/css-gradients.js';
-import cssGrid from './features/css-grid.js';
-import cssGridAnimation from './features/css-grid-animation.js';
-import cssHangingPunctuation from './features/css-hanging-punctuation.js';
-import cssHas from './features/css-has.js';
-import cssHyphens from './features/css-hyphens.js';
-import cssImageOrientation from './features/css-image-orientation.js';
-import cssImageSet from './features/css-image-set.js';
-import cssInOutOfRange from './features/css-in-out-of-range.js';
-import cssIndeterminatePseudo from './features/css-indeterminate-pseudo.js';
-import cssInitialLetter from './features/css-initial-letter.js';
-import cssInitialValue from './features/css-initial-value.js';
-import cssLchLab from './features/css-lch-lab.js';
-import cssLetterSpacing from './features/css-letter-spacing.js';
-import cssLineClamp from './features/css-line-clamp.js';
-import cssLogicalProps from './features/css-logical-props.js';
-import cssMarkerPseudo from './features/css-marker-pseudo.js';
-import cssMasks from './features/css-masks.js';
-import cssMatchesPseudo from './features/css-matches-pseudo.js';
-import cssMathFunctions from './features/css-math-functions.js';
-import cssMediaInteraction from './features/css-media-interaction.js';
-import cssMediaRangeSyntax from './features/css-media-range-syntax.js';
-import cssMediaResolution from './features/css-media-resolution.js';
-import cssMediaScripting from './features/css-media-scripting.js';
-import cssMediaqueries from './features/css-mediaqueries.js';
-import cssMixblendmode from './features/css-mixblendmode.js';
-import cssMotionPaths from './features/css-motion-paths.js';
-import cssNamespaces from './features/css-namespaces.js';
-import cssNesting from './features/css-nesting.js';
-import cssNotSelList from './features/css-not-sel-list.js';
-import cssNthChildOf from './features/css-nth-child-of.js';
-import cssOpacity from './features/css-opacity.js';
-import cssOptionalPseudo from './features/css-optional-pseudo.js';
-import cssOverflow from './features/css-overflow.js';
-import cssOverflowAnchor from './features/css-overflow-anchor.js';
-import cssOverflowOverlay from './features/css-overflow-overlay.js';
-import cssOverscrollBehavior from './features/css-overscroll-behavior.js';
-import cssPageBreak from './features/css-page-break.js';
-import cssPagedMedia from './features/css-paged-media.js';
-import cssPaintApi from './features/css-paint-api.js';
-import cssPlaceholder from './features/css-placeholder.js';
-import cssPlaceholderShown from './features/css-placeholder-shown.js';
-import cssPrintColorAdjust from './features/css-print-color-adjust.js';
-import cssReadOnlyWrite from './features/css-read-only-write.js';
-import cssRebeccapurple from './features/css-rebeccapurple.js';
-import cssReflections from './features/css-reflections.js';
-import cssRegions from './features/css-regions.js';
-import cssRelativeColors from './features/css-relative-colors.js';
-import cssRepeatingGradients from './features/css-repeating-gradients.js';
-import cssResize from './features/css-resize.js';
-import cssRevertValue from './features/css-revert-value.js';
-import cssRrggbbaa from './features/css-rrggbbaa.js';
-import cssScrollBehavior from './features/css-scroll-behavior.js';
-import cssScrollTimeline from './features/css-scroll-timeline.js';
-import cssScrollbar from './features/css-scrollbar.js';
-import cssSel2 from './features/css-sel2.js';
-import cssSel3 from './features/css-sel3.js';
-import cssSelection from './features/css-selection.js';
-import cssShapes from './features/css-shapes.js';
-import cssSnappoints from './features/css-snappoints.js';
-import cssSticky from './features/css-sticky.js';
-import cssSubgrid from './features/css-subgrid.js';
-import cssSupportsApi from './features/css-supports-api.js';
-import cssTable from './features/css-table.js';
-import cssTextAlignLast from './features/css-text-align-last.js';
-import cssTextBoxTrim from './features/css-text-box-trim.js';
-import cssTextIndent from './features/css-text-indent.js';
-import cssTextJustify from './features/css-text-justify.js';
-import cssTextOrientation from './features/css-text-orientation.js';
-import cssTextSpacing from './features/css-text-spacing.js';
-import cssTextshadow from './features/css-textshadow.js';
-import cssTouchAction from './features/css-touch-action.js';
-import cssTransitions from './features/css-transitions.js';
-import cssUnicodeBidi from './features/css-unicode-bidi.js';
-import cssUnsetValue from './features/css-unset-value.js';
-import cssVariables from './features/css-variables.js';
-import cssWhenElse from './features/css-when-else.js';
-import cssWidowsOrphans from './features/css-widows-orphans.js';
-import cssWidthStretch from './features/css-width-stretch.js';
-import cssWritingMode from './features/css-writing-mode.js';
-import cssZoom from './features/css-zoom.js';
-import css3Attr from './features/css3-attr.js';
-import css3Boxsizing from './features/css3-boxsizing.js';
-import css3Colors from './features/css3-colors.js';
-import css3Cursors from './features/css3-cursors.js';
-import css3CursorsGrab from './features/css3-cursors-grab.js';
-import css3CursorsNewer from './features/css3-cursors-newer.js';
-import css3Tabsize from './features/css3-tabsize.js';
-import currentcolor from './features/currentcolor.js';
-import devicepixelratio from './features/devicepixelratio.js';
-import extendedSystemFonts from './features/extended-system-fonts.js';
-import flexbox from './features/flexbox.js';
-import flexboxGap from './features/flexbox-gap.js';
-import flowRoot from './features/flow-root.js';
-import fontFamilySystemUi from './features/font-family-system-ui.js';
-import fontFeature from './features/font-feature.js';
-import fontKerning from './features/font-kerning.js';
-import fontLoading from './features/font-loading.js';
-import fontSizeAdjust from './features/font-size-adjust.js';
-import fontSmooth from './features/font-smooth.js';
-import fontUnicodeRange from './features/font-unicode-range.js';
-import fontVariantAlternates from './features/font-variant-alternates.js';
-import fontVariantNumeric from './features/font-variant-numeric.js';
-import fontface from './features/fontface.js';
-import fullscreen from './features/fullscreen.js';
-import getcomputedstyle from './features/getcomputedstyle.js';
-import inlineBlock from './features/inline-block.js';
-import intrinsicWidth from './features/intrinsic-width.js';
-import justifyContentSpaceEvenly from './features/justify-content-space-evenly.js';
-import kerningPairsLigatures from './features/kerning-pairs-ligatures.js';
-import mdnCssUnicodeBidiIsolate from './features/mdn-css-unicode-bidi-isolate.js';
-import mdnCssUnicodeBidiIsolateOverride from './features/mdn-css-unicode-bidi-isolate-override.js';
-import mdnCssUnicodeBidiPlaintext from './features/mdn-css-unicode-bidi-plaintext.js';
-import mdnTextDecorationColor from './features/mdn-text-decoration-color.js';
-import mdnTextDecorationLine from './features/mdn-text-decoration-line.js';
-import mdnTextDecorationShorthand from './features/mdn-text-decoration-shorthand.js';
-import mdnTextDecorationStyle from './features/mdn-text-decoration-style.js';
-import minmaxwh from './features/minmaxwh.js';
-import multibackgrounds from './features/multibackgrounds.js';
-import multicolumn from './features/multicolumn.js';
-import objectFit from './features/object-fit.js';
-import outline from './features/outline.js';
-import pointer from './features/pointer.js';
-import pointerEvents from './features/pointer-events.js';
-import prefersColorScheme from './features/prefers-color-scheme.js';
-import prefersReducedMotion from './features/prefers-reduced-motion.js';
-import rem from './features/rem.js';
-import runIn from './features/run-in.js';
-import styleScoped from './features/style-scoped.js';
-import svgCss from './features/svg-css.js';
-import textDecoration from './features/text-decoration.js';
-import textEmphasis from './features/text-emphasis.js';
-import textOverflow from './features/text-overflow.js';
-import textSizeAdjust from './features/text-size-adjust.js';
-import textStroke from './features/text-stroke.js';
-import transforms2d from './features/transforms2d.js';
-import transforms3d from './features/transforms3d.js';
-import ttf from './features/ttf.js';
-import userSelectNone from './features/user-select-none.js';
-import variableFonts from './features/variable-fonts.js';
-import viewportUnitVariants from './features/viewport-unit-variants.js';
-import viewportUnits from './features/viewport-units.js';
-import webkitUserDrag from './features/webkit-user-drag.js';
-import willChange from './features/will-change.js';
-import wordBreak from './features/word-break.js';
-import wordwrap from './features/wordwrap.js';
-
-/** @typedef {RegExp|string|((value:string) => boolean)} FeatureCheck */
-
-/** @typedef {((rule:import('postcss').ChildNode) => boolean)} RuleCheck */
-
-/** @typedef {Record<string, FeatureCheck|FeatureCheck[]|boolean> | RuleCheck | RuleCheck[]} Feature */
-
-/** @enum {Feature} */
-const FEATURES = {
- 'alternate-stylesheet': alternateStylesheet,
- 'background-attachment': backgroundAttachment,
- 'background-clip-text': backgroundClipText,
- 'background-img-opts': backgroundImgOpts,
- 'background-position-x-y': backgroundPositionXY,
- 'background-repeat-round-space': backgroundRepeatRoundSpace,
- 'border-image': borderImage,
- 'border-radius': borderRadius,
- 'calc': calc,
- 'ch-unit': chUnit,
- 'css-all': cssAll,
- 'css-animation': cssAnimation,
- 'css-any-link': cssAnyLink,
- 'css-appearance': cssAppearance,
- 'css-at-counter-style': cssAtCounterStyle,
- 'css-autofill': cssAutofill,
- 'css-backdrop-filter': cssBackdropFilter,
- 'css-background-offsets': cssBackgroundOffsets,
- 'css-backgroundblendmode': cssBackgroundblendmode,
- 'css-boxdecorationbreak': cssBoxdecorationbreak,
- 'css-boxshadow': cssBoxshadow,
- 'css-canvas': cssCanvas,
- 'css-caret-color': cssCaretColor,
- 'css-cascade-layers': cssCascadeLayers,
- 'css-case-insensitive': cssCaseInsensitive,
- 'css-clip-path': cssClipPath,
- 'css-color-adjust': cssColorAdjust,
- 'css-color-function': cssColorFunction,
- 'css-conic-gradients': cssConicGradients,
- 'css-container-queries': cssContainerQueries,
- 'css-container-queries-style': cssContainerQueriesStyle,
- 'css-container-query-units': cssContainerQueryUnits,
- 'css-containment': cssContainment,
- 'css-content-visibility': cssContentVisibility,
- 'css-counters': cssCounters,
- 'css-crisp-edges': cssCrispEdges,
- 'css-cross-fade': cssCrossFade,
- 'css-default-pseudo': cssDefaultPseudo,
- 'css-descendant-gtgt': cssDescendantGtgt,
- 'css-deviceadaptation': cssDeviceadaptation,
- 'css-dir-pseudo': cssDirPseudo,
- 'css-display-contents': cssDisplayContents,
- 'css-element-function': cssElementFunction,
- 'css-env-function': cssEnvFunction,
- 'css-exclusions': cssExclusions,
- 'css-featurequeries': cssFeaturequeries,
- 'css-file-selector-button': cssFileSelectorButton,
- 'css-filter-function': cssFilterFunction,
- 'css-filters': cssFilters,
- 'css-first-letter': cssFirstLetter,
- 'css-first-line': cssFirstLine,
- 'css-fixed': cssFixed,
- 'css-focus-visible': cssFocusVisible,
- 'css-focus-within': cssFocusWithin,
- 'css-font-palette': cssFontPalette,
- 'css-font-rendering-controls': cssFontRenderingControls,
- 'css-font-stretch': cssFontStretch,
- 'css-gencontent': cssGencontent,
- 'css-gradients': cssGradients,
- 'css-grid': cssGrid,
- 'css-grid-animation': cssGridAnimation,
- 'css-hanging-punctuation': cssHangingPunctuation,
- 'css-has': cssHas,
- 'css-hyphens': cssHyphens,
- 'css-image-orientation': cssImageOrientation,
- 'css-image-set': cssImageSet,
- 'css-in-out-of-range': cssInOutOfRange,
- 'css-indeterminate-pseudo': cssIndeterminatePseudo,
- 'css-initial-letter': cssInitialLetter,
- 'css-initial-value': cssInitialValue,
- 'css-lch-lab': cssLchLab,
- 'css-letter-spacing': cssLetterSpacing,
- 'css-line-clamp': cssLineClamp,
- 'css-logical-props': cssLogicalProps,
- 'css-marker-pseudo': cssMarkerPseudo,
- 'css-masks': cssMasks,
- 'css-matches-pseudo': cssMatchesPseudo,
- 'css-math-functions': cssMathFunctions,
- 'css-media-interaction': cssMediaInteraction,
- 'css-media-range-syntax': cssMediaRangeSyntax,
- 'css-media-resolution': cssMediaResolution,
- 'css-media-scripting': cssMediaScripting,
- 'css-mediaqueries': cssMediaqueries,
- 'css-mixblendmode': cssMixblendmode,
- 'css-motion-paths': cssMotionPaths,
- 'css-namespaces': cssNamespaces,
- 'css-nesting': cssNesting,
- 'css-not-sel-list': cssNotSelList,
- 'css-nth-child-of': cssNthChildOf,
- 'css-opacity': cssOpacity,
- 'css-optional-pseudo': cssOptionalPseudo,
- 'css-overflow': cssOverflow,
- 'css-overflow-anchor': cssOverflowAnchor,
- 'css-overflow-overlay': cssOverflowOverlay,
- 'css-overscroll-behavior': cssOverscrollBehavior,
- 'css-page-break': cssPageBreak,
- 'css-paged-media': cssPagedMedia,
- 'css-paint-api': cssPaintApi,
- 'css-placeholder': cssPlaceholder,
- 'css-placeholder-shown': cssPlaceholderShown,
- 'css-print-color-adjust': cssPrintColorAdjust,
- 'css-read-only-write': cssReadOnlyWrite,
- 'css-rebeccapurple': cssRebeccapurple,
- 'css-reflections': cssReflections,
- 'css-regions': cssRegions,
- 'css-relative-colors': cssRelativeColors,
- 'css-repeating-gradients': cssRepeatingGradients,
- 'css-resize': cssResize,
- 'css-revert-value': cssRevertValue,
- 'css-rrggbbaa': cssRrggbbaa,
- 'css-scroll-behavior': cssScrollBehavior,
- 'css-scroll-timeline': cssScrollTimeline,
- 'css-scrollbar': cssScrollbar,
- 'css-sel2': cssSel2,
- 'css-sel3': cssSel3,
- 'css-selection': cssSelection,
- 'css-shapes': cssShapes,
- 'css-snappoints': cssSnappoints,
- 'css-sticky': cssSticky,
- 'css-subgrid': cssSubgrid,
- 'css-supports-api': cssSupportsApi,
- 'css-table': cssTable,
- 'css-text-align-last': cssTextAlignLast,
- 'css-text-box-trim': cssTextBoxTrim,
- 'css-text-indent': cssTextIndent,
- 'css-text-justify': cssTextJustify,
- 'css-text-orientation': cssTextOrientation,
- 'css-text-spacing': cssTextSpacing,
- 'css-textshadow': cssTextshadow,
- 'css-touch-action': cssTouchAction,
- 'css-transitions': cssTransitions,
- 'css-unicode-bidi': cssUnicodeBidi,
- 'css-unset-value': cssUnsetValue,
- 'css-variables': cssVariables,
- 'css-when-else': cssWhenElse,
- 'css-widows-orphans': cssWidowsOrphans,
- 'css-width-stretch': cssWidthStretch,
- 'css-writing-mode': cssWritingMode,
- 'css-zoom': cssZoom,
- 'css3-attr': css3Attr,
- 'css3-boxsizing': css3Boxsizing,
- 'css3-colors': css3Colors,
- 'css3-cursors': css3Cursors,
- 'css3-cursors-grab': css3CursorsGrab,
- 'css3-cursors-newer': css3CursorsNewer,
- 'css3-tabsize': css3Tabsize,
- 'currentcolor': currentcolor,
- 'devicepixelratio': devicepixelratio,
- 'extended-system-fonts': extendedSystemFonts,
- 'flexbox': flexbox,
- 'flexbox-gap': flexboxGap,
- 'flow-root': flowRoot,
- 'font-family-system-ui': fontFamilySystemUi,
- 'font-feature': fontFeature,
- 'font-kerning': fontKerning,
- 'font-loading': fontLoading,
- 'font-size-adjust': fontSizeAdjust,
- 'font-smooth': fontSmooth,
- 'font-unicode-range': fontUnicodeRange,
- 'font-variant-alternates': fontVariantAlternates,
- 'font-variant-numeric': fontVariantNumeric,
- 'fontface': fontface,
- 'fullscreen': fullscreen,
- 'getcomputedstyle': getcomputedstyle,
- 'inline-block': inlineBlock,
- 'intrinsic-width': intrinsicWidth,
- 'justify-content-space-evenly': justifyContentSpaceEvenly,
- 'kerning-pairs-ligatures': kerningPairsLigatures,
- 'mdn-css-unicode-bidi-isolate': mdnCssUnicodeBidiIsolate,
- 'mdn-css-unicode-bidi-isolate-override': mdnCssUnicodeBidiIsolateOverride,
- 'mdn-css-unicode-bidi-plaintext': mdnCssUnicodeBidiPlaintext,
- 'mdn-text-decoration-color': mdnTextDecorationColor,
- 'mdn-text-decoration-line': mdnTextDecorationLine,
- 'mdn-text-decoration-shorthand': mdnTextDecorationShorthand,
- 'mdn-text-decoration-style': mdnTextDecorationStyle,
- 'minmaxwh': minmaxwh,
- 'multibackgrounds': multibackgrounds,
- 'multicolumn': multicolumn,
- 'object-fit': objectFit,
- 'outline': outline,
- 'pointer': pointer,
- 'pointer-events': pointerEvents,
- 'prefers-color-scheme': prefersColorScheme,
- 'prefers-reduced-motion': prefersReducedMotion,
- 'rem': rem,
- 'run-in': runIn,
- 'style-scoped': styleScoped,
- 'svg-css': svgCss,
- 'text-decoration': textDecoration,
- 'text-emphasis': textEmphasis,
- 'text-overflow': textOverflow,
- 'text-size-adjust': textSizeAdjust,
- 'text-stroke': textStroke,
- 'transforms2d': transforms2d,
- 'transforms3d': transforms3d,
- 'ttf': ttf,
- 'user-select-none': userSelectNone,
- 'variable-fonts': variableFonts,
- 'viewport-unit-variants': viewportUnitVariants,
- 'viewport-units': viewportUnits,
- 'webkit-user-drag': webkitUserDrag,
- 'will-change': willChange,
- 'word-break': wordBreak,
- 'wordwrap': wordwrap,
-};
-
-/** @typedef {keyof typeof FEATURES} FeatureKeys */
-
-export default /** @type {{[K in FeatureKeys]: Feature}} */ (FEATURES);
diff --git a/node_modules/doiuse/data/features/alternate-stylesheet.js b/node_modules/doiuse/data/features/alternate-stylesheet.js
deleted file mode 100644
index f127e84d..00000000
--- a/node_modules/doiuse/data/features/alternate-stylesheet.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * No description available.
- *
- * See: This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=Alternate+stylesheet
- */
-
-// This feature is only in HTML, so we don't lint it
-
-/**
- * @type {import('../features').Feature}
- */
-export default {};
diff --git a/node_modules/doiuse/data/features/background-attachment.js b/node_modules/doiuse/data/features/background-attachment.js
deleted file mode 100644
index cd493ddb..00000000
--- a/node_modules/doiuse/data/features/background-attachment.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Method of defining how a background image is attached to a scrollable element. Values include `scroll` (default), `fixed` and `local`.
- *
- * See: https://caniuse.com/background-attachment
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'background-attachment': [
- 'fixed',
- 'local',
- ],
-};
diff --git a/node_modules/doiuse/data/features/background-clip-text.js b/node_modules/doiuse/data/features/background-clip-text.js
deleted file mode 100644
index c02c5974..00000000
--- a/node_modules/doiuse/data/features/background-clip-text.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Non-standard method of clipping a background image to the foreground text.
- *
- * See: https://caniuse.com/background-clip-text
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'background-clip': 'text',
- '-webkit-background-clip': 'text',
-};
diff --git a/node_modules/doiuse/data/features/background-img-opts.js b/node_modules/doiuse/data/features/background-img-opts.js
deleted file mode 100644
index 32ba9590..00000000
--- a/node_modules/doiuse/data/features/background-img-opts.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- 'background-clip': true,
- 'background-origin': true,
- 'background-size': true,
-};
diff --git a/node_modules/doiuse/data/features/background-position-x-y.js b/node_modules/doiuse/data/features/background-position-x-y.js
deleted file mode 100644
index 9239d7d0..00000000
--- a/node_modules/doiuse/data/features/background-position-x-y.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- 'background-position-x': true,
- 'background-position-y': true,
-};
diff --git a/node_modules/doiuse/data/features/background-repeat-round-space.js b/node_modules/doiuse/data/features/background-repeat-round-space.js
deleted file mode 100644
index 0a8fb685..00000000
--- a/node_modules/doiuse/data/features/background-repeat-round-space.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Allows CSS background images to be repeated without clipping.
- *
- * See: https://caniuse.com/background-repeat-round-space
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'background-repeat': ['round', 'space'],
-};
diff --git a/node_modules/doiuse/data/features/border-image.js b/node_modules/doiuse/data/features/border-image.js
deleted file mode 100644
index 911a04ba..00000000
--- a/node_modules/doiuse/data/features/border-image.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default {
- 'border-image': true,
- 'border-image-outset': true,
- 'border-image-repeat': true,
- 'border-image-slice': true,
- 'border-image-source': true,
- 'border-image-width': true,
-
-};
diff --git a/node_modules/doiuse/data/features/border-radius.js b/node_modules/doiuse/data/features/border-radius.js
deleted file mode 100644
index ed207b05..00000000
--- a/node_modules/doiuse/data/features/border-radius.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default {
- 'border-radius': true,
- 'border-top-left-radius': true,
- 'border-top-right-radius': true,
- 'border-bottom-right-radius': true,
- 'border-bottom-left-radius': true,
-};
diff --git a/node_modules/doiuse/data/features/calc.js b/node_modules/doiuse/data/features/calc.js
deleted file mode 100644
index f20331d6..00000000
--- a/node_modules/doiuse/data/features/calc.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- '': 'calc(',
-};
diff --git a/node_modules/doiuse/data/features/ch-unit.js b/node_modules/doiuse/data/features/ch-unit.js
deleted file mode 100644
index 57da8096..00000000
--- a/node_modules/doiuse/data/features/ch-unit.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { checkCSSLengthUnits } from '../../utils/util.js';
-
-/**
- * Unit representing the width of the character "0" in the current font, of particular use in combination with monospace fonts.
- * @see https://caniuse.com/ch-unit
- * @type {import('../features').Feature}
- */
-export default checkCSSLengthUnits('ch');
diff --git a/node_modules/doiuse/data/features/css-all.js b/node_modules/doiuse/data/features/css-all.js
deleted file mode 100644
index 8112d162..00000000
--- a/node_modules/doiuse/data/features/css-all.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'all': true,
-};
diff --git a/node_modules/doiuse/data/features/css-animation.js b/node_modules/doiuse/data/features/css-animation.js
deleted file mode 100644
index 7c2fb88f..00000000
--- a/node_modules/doiuse/data/features/css-animation.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export default {
- 'animation': true,
- 'animation-name': true,
- 'animation-duration': true,
- 'animation-timing-function': true,
- 'animation-iteration-count': true,
- 'animation-direction': true,
- 'animation-play-state': true,
- 'animation-delay': true,
- 'animation-fill-mode': true,
-};
-
-// @keyframes isn't checked for, but if you try to use it,
-// you'll still get a warning anyway because of the 'animation' property
diff --git a/node_modules/doiuse/data/features/css-any-link.js b/node_modules/doiuse/data/features/css-any-link.js
deleted file mode 100644
index 990a591d..00000000
--- a/node_modules/doiuse/data/features/css-any-link.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkSelector } from '../../utils/util.js';
-
-export default checkSelector([':any-link', ':-webkit-any-link']);
diff --git a/node_modules/doiuse/data/features/css-appearance.js b/node_modules/doiuse/data/features/css-appearance.js
deleted file mode 100644
index f316c2d4..00000000
--- a/node_modules/doiuse/data/features/css-appearance.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- 'appearance': true,
- '-webkit-appearance': true,
- '-moz-appearance': true,
-};
diff --git a/node_modules/doiuse/data/features/css-at-counter-style.js b/node_modules/doiuse/data/features/css-at-counter-style.js
deleted file mode 100644
index d944cc62..00000000
--- a/node_modules/doiuse/data/features/css-at-counter-style.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkAtRule } from '../../utils/util.js';
-
-export default checkAtRule('counter-style');
diff --git a/node_modules/doiuse/data/features/css-autofill.js b/node_modules/doiuse/data/features/css-autofill.js
deleted file mode 100644
index 52850482..00000000
--- a/node_modules/doiuse/data/features/css-autofill.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkSelector } from '../../utils/util.js';
-
-export default checkSelector([':autofill', ':-webkit-autofill']);
diff --git a/node_modules/doiuse/data/features/css-backdrop-filter.js b/node_modules/doiuse/data/features/css-backdrop-filter.js
deleted file mode 100644
index ac92860c..00000000
--- a/node_modules/doiuse/data/features/css-backdrop-filter.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'backdrop-filter': true,
-};
diff --git a/node_modules/doiuse/data/features/css-background-offsets.js b/node_modules/doiuse/data/features/css-background-offsets.js
deleted file mode 100644
index 0fb021d4..00000000
--- a/node_modules/doiuse/data/features/css-background-offsets.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { list } from 'postcss';
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-export default (rule) => {
- if (rule.type !== 'decl') return false;
- if (rule.prop !== 'background-position') return false;
- return list.space(rule.value).length > 2;
-};
diff --git a/node_modules/doiuse/data/features/css-backgroundblendmode.js b/node_modules/doiuse/data/features/css-backgroundblendmode.js
deleted file mode 100644
index f2e5181e..00000000
--- a/node_modules/doiuse/data/features/css-backgroundblendmode.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'background-blend-mode': true,
-};
diff --git a/node_modules/doiuse/data/features/css-boxdecorationbreak.js b/node_modules/doiuse/data/features/css-boxdecorationbreak.js
deleted file mode 100644
index a68839a0..00000000
--- a/node_modules/doiuse/data/features/css-boxdecorationbreak.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Controls whether the box's margins, borders, padding, and other decorations wrap the broken edges of the box fragments (when the box is split by a break (page/column/region/line).
- *
- * See: https://caniuse.com/css-boxdecorationbreak
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'box-decoration-break': true,
- '-webkit-box-decoration-break': true,
-};
diff --git a/node_modules/doiuse/data/features/css-boxshadow.js b/node_modules/doiuse/data/features/css-boxshadow.js
deleted file mode 100644
index ac91aba2..00000000
--- a/node_modules/doiuse/data/features/css-boxshadow.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'box-shadow': true,
-};
diff --git a/node_modules/doiuse/data/features/css-canvas.js b/node_modules/doiuse/data/features/css-canvas.js
deleted file mode 100644
index 92b858b8..00000000
--- a/node_modules/doiuse/data/features/css-canvas.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-export default (rule) => {
- if (rule.type !== 'decl') return false;
- if (!rule.prop.startsWith('background')) return false;
- return rule.value.startsWith('-webkit-canvas');
-};
diff --git a/node_modules/doiuse/data/features/css-caret-color.js b/node_modules/doiuse/data/features/css-caret-color.js
deleted file mode 100644
index da95db5c..00000000
--- a/node_modules/doiuse/data/features/css-caret-color.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * The `caret-color` property allows the color to be set of the caret (blinking text insertion pointer) in an editable text area.
- *
- * See: https://caniuse.com/css-caret-color
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'caret-color': true,
-};
diff --git a/node_modules/doiuse/data/features/css-cascade-layers.js b/node_modules/doiuse/data/features/css-cascade-layers.js
deleted file mode 100644
index 6edd5dbb..00000000
--- a/node_modules/doiuse/data/features/css-cascade-layers.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * The `@layer` at-rule allows authors to explicitly layer their styles in the cascade, before specificity and order of appearance are considered.
- *
- * See: https://caniuse.com/css-cascade-layers
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule('layer');
diff --git a/node_modules/doiuse/data/features/css-case-insensitive.js b/node_modules/doiuse/data/features/css-case-insensitive.js
deleted file mode 100644
index 72c36107..00000000
--- a/node_modules/doiuse/data/features/css-case-insensitive.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Including an `i` before the `]` in a CSS attribute selector causes the attribute value to be matched in an ASCII-case-insensitive manner. For example, `[b="xyz" i]` would match both `<a b="xyz">` and `<a b="XYZ">`.
- *
- * See: https://caniuse.com/css-case-insensitive
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default (rule) => {
- if (rule.type !== 'rule') { return false; }
- if (/\[.*i]/.test(rule.selector)) { return true; }
- return false;
-};
diff --git a/node_modules/doiuse/data/features/css-clip-path.js b/node_modules/doiuse/data/features/css-clip-path.js
deleted file mode 100644
index d1322c5e..00000000
--- a/node_modules/doiuse/data/features/css-clip-path.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'clip-path': true,
-};
diff --git a/node_modules/doiuse/data/features/css-color-adjust.js b/node_modules/doiuse/data/features/css-color-adjust.js
deleted file mode 100644
index 1feb161f..00000000
--- a/node_modules/doiuse/data/features/css-color-adjust.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * The `print-color-adjust` (or `-webkit-print-color-adjust` as prefixed in WebKit/Blink browsers) property is a CSS extension that can be used to force printing of background colors and images.
- *
- * See: https://caniuse.com/css-color-adjust
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'print-color-adjust': true,
- '-webkit-print-color-adjust': true,
-};
diff --git a/node_modules/doiuse/data/features/css-color-function.js b/node_modules/doiuse/data/features/css-color-function.js
deleted file mode 100644
index 0cd1dc34..00000000
--- a/node_modules/doiuse/data/features/css-color-function.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * The CSS `color()` function allows the browser to display colors in any color space, such as the P3 color space which can display colors outside of the default sRGB color space.
- *
- * See: https://caniuse.com/css-color-function
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': 'color(',
-};
diff --git a/node_modules/doiuse/data/features/css-conic-gradients.js b/node_modules/doiuse/data/features/css-conic-gradients.js
deleted file mode 100644
index 60494e7b..00000000
--- a/node_modules/doiuse/data/features/css-conic-gradients.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const REGEX = /(^|[^-])(repeating-)?conic-gradient/;
-
-export default {
- 'background': REGEX,
- 'background-image': REGEX,
- 'border-image': REGEX,
- 'border-image-source': REGEX,
- 'content': REGEX,
- 'cursor': REGEX,
- 'list-style': REGEX,
- 'list-style-image': REGEX,
-};
diff --git a/node_modules/doiuse/data/features/css-container-queries-style.js b/node_modules/doiuse/data/features/css-container-queries-style.js
deleted file mode 100644
index d9886295..00000000
--- a/node_modules/doiuse/data/features/css-container-queries-style.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkAtRule } from '../../utils/util.js';
-
-export default checkAtRule('container', 'style(');
diff --git a/node_modules/doiuse/data/features/css-container-queries.js b/node_modules/doiuse/data/features/css-container-queries.js
deleted file mode 100644
index 1b013096..00000000
--- a/node_modules/doiuse/data/features/css-container-queries.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Size queries in Container Queries provide a way to query the size of a container, and conditionally apply CSS to the content of that container.
- *
- * See: https://caniuse.com/css-container-queries
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule('container');
diff --git a/node_modules/doiuse/data/features/css-container-query-units.js b/node_modules/doiuse/data/features/css-container-query-units.js
deleted file mode 100644
index c6212b4f..00000000
--- a/node_modules/doiuse/data/features/css-container-query-units.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { checkCSSLengthUnits } from '../../utils/util.js';
-
-export default checkCSSLengthUnits(
- 'cqw',
- 'cqh',
- 'cqi',
- 'cqb',
- 'cqmin',
- 'cqmax',
-);
diff --git a/node_modules/doiuse/data/features/css-containment.js b/node_modules/doiuse/data/features/css-containment.js
deleted file mode 100644
index c9492d32..00000000
--- a/node_modules/doiuse/data/features/css-containment.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * The CSS `contain` property lets developers limit the scope of the browser's styles, layout and paint work for faster and more efficient rendering.
- *
- * See: https://caniuse.com/css-containment
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'contain': true,
-};
diff --git a/node_modules/doiuse/data/features/css-content-visibility.js b/node_modules/doiuse/data/features/css-content-visibility.js
deleted file mode 100644
index 2adef2da..00000000
--- a/node_modules/doiuse/data/features/css-content-visibility.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Provides control over when elements are rendered, so rendering can be skipped for elements not yet in the user's viewport.
- *
- * See: https://caniuse.com/css-content-visibility
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'content-visibility': true,
-};
diff --git a/node_modules/doiuse/data/features/css-counters.js b/node_modules/doiuse/data/features/css-counters.js
deleted file mode 100644
index 56b824e2..00000000
--- a/node_modules/doiuse/data/features/css-counters.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- 'counter-reset': true,
- 'counter-increment': true,
- '': 'counter(',
-};
diff --git a/node_modules/doiuse/data/features/css-crisp-edges.js b/node_modules/doiuse/data/features/css-crisp-edges.js
deleted file mode 100644
index 31690145..00000000
--- a/node_modules/doiuse/data/features/css-crisp-edges.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Scales images with an algorithm that preserves edges and contrast, without smoothing colors or introducing blur. This is intended for images such as pixel art. Official values that accomplish this for the `image-rendering` property are `crisp-edges` and `pixelated`.
- *
- * See: https://caniuse.com/css-crisp-edges
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'image-rendering': ['crisp-edges', 'pixelated'],
-};
diff --git a/node_modules/doiuse/data/features/css-cross-fade.js b/node_modules/doiuse/data/features/css-cross-fade.js
deleted file mode 100644
index bf32aee7..00000000
--- a/node_modules/doiuse/data/features/css-cross-fade.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Image function to create a "crossfade" between images. This allows one image to transition (fade) into another based on a percentage value.
- *
- * See: https://caniuse.com/css-cross-fade
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': [
- 'cross-fade(',
- '-webkit-cross-fade(',
- ],
-};
diff --git a/node_modules/doiuse/data/features/css-default-pseudo.js b/node_modules/doiuse/data/features/css-default-pseudo.js
deleted file mode 100644
index e191fd88..00000000
--- a/node_modules/doiuse/data/features/css-default-pseudo.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * The `:default` pseudo-class matches checkboxes and radio buttons which are checked by default, `<option>`s with the `selected` attribute, and the default submit button (if any) of a form.
- *
- * See: https://caniuse.com/css-default-pseudo
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':default');
diff --git a/node_modules/doiuse/data/features/css-descendant-gtgt.js b/node_modules/doiuse/data/features/css-descendant-gtgt.js
deleted file mode 100644
index 48371d35..00000000
--- a/node_modules/doiuse/data/features/css-descendant-gtgt.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * An explicit, non-whitespace spelling of the descendant combinator. `A >> B` is equivalent to `A B`.
- *
- * See: https://caniuse.com/css-descendant-gtgt
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector('>>');
diff --git a/node_modules/doiuse/data/features/css-deviceadaptation.js b/node_modules/doiuse/data/features/css-deviceadaptation.js
deleted file mode 100644
index ac3481ac..00000000
--- a/node_modules/doiuse/data/features/css-deviceadaptation.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Method of overriding the size of viewport in web page using the `@viewport` rule, replacing Apple's own popular `<meta>` viewport implementation. Includes the `extend-to-zoom` width value.
- *
- * See: https://caniuse.com/css-deviceadaptation
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule('viewport');
diff --git a/node_modules/doiuse/data/features/css-dir-pseudo.js b/node_modules/doiuse/data/features/css-dir-pseudo.js
deleted file mode 100644
index 0b16e8f8..00000000
--- a/node_modules/doiuse/data/features/css-dir-pseudo.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Matches elements based on their directionality. `:dir(ltr)` matches elements which are Left-to-Right. `:dir(rtl)` matches elements which are Right-to-Left.
- *
- * See: https://caniuse.com/css-dir-pseudo
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':dir(');
diff --git a/node_modules/doiuse/data/features/css-display-contents.js b/node_modules/doiuse/data/features/css-display-contents.js
deleted file mode 100644
index d6b002fd..00000000
--- a/node_modules/doiuse/data/features/css-display-contents.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * `display: contents` causes an element's children to appear as if they were direct children of the element's parent, ignoring the element itself. This can be useful when a wrapper element should be ignored when using CSS grid or similar layout techniques.
- *
- * See: https://caniuse.com/css-display-contents
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'display': 'contents',
-};
diff --git a/node_modules/doiuse/data/features/css-element-function.js b/node_modules/doiuse/data/features/css-element-function.js
deleted file mode 100644
index 4d9171a0..00000000
--- a/node_modules/doiuse/data/features/css-element-function.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * This function renders a live image generated from an arbitrary HTML element
- *
- * See: https://caniuse.com/css-element-function
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': 'element(',
-};
diff --git a/node_modules/doiuse/data/features/css-env-function.js b/node_modules/doiuse/data/features/css-env-function.js
deleted file mode 100644
index 4b275b55..00000000
--- a/node_modules/doiuse/data/features/css-env-function.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- '': 'env(',
-};
diff --git a/node_modules/doiuse/data/features/css-exclusions.js b/node_modules/doiuse/data/features/css-exclusions.js
deleted file mode 100644
index 1e45ea6e..00000000
--- a/node_modules/doiuse/data/features/css-exclusions.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Exclusions defines how inline content flows around elements. It extends the content wrapping ability of floats to any block-level element.
- *
- * See: https://caniuse.com/css-exclusions
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'wrap-flow': true,
- '-ms-wrap-flow': true,
-};
diff --git a/node_modules/doiuse/data/features/css-featurequeries.js b/node_modules/doiuse/data/features/css-featurequeries.js
deleted file mode 100644
index ecd372f8..00000000
--- a/node_modules/doiuse/data/features/css-featurequeries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkAtRule } from '../../utils/util.js';
-
-export default checkAtRule(['supports']);
diff --git a/node_modules/doiuse/data/features/css-file-selector-button.js b/node_modules/doiuse/data/features/css-file-selector-button.js
deleted file mode 100644
index bc8d7682..00000000
--- a/node_modules/doiuse/data/features/css-file-selector-button.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * No description available.
- *
- * See: This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=::file-selector-button+CSS+pseudo-element
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':file-selector-button');
diff --git a/node_modules/doiuse/data/features/css-filter-function.js b/node_modules/doiuse/data/features/css-filter-function.js
deleted file mode 100644
index d83f30f6..00000000
--- a/node_modules/doiuse/data/features/css-filter-function.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * This function filters a CSS input image with a set of filter functions (like blur, grayscale or hue)
- *
- * See: https://caniuse.com/css-filter-function
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': 'filter(',
-};
diff --git a/node_modules/doiuse/data/features/css-filters.js b/node_modules/doiuse/data/features/css-filters.js
deleted file mode 100644
index f10dfe6c..00000000
--- a/node_modules/doiuse/data/features/css-filters.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'filter': true,
-};
diff --git a/node_modules/doiuse/data/features/css-first-letter.js b/node_modules/doiuse/data/features/css-first-letter.js
deleted file mode 100644
index efaf92f8..00000000
--- a/node_modules/doiuse/data/features/css-first-letter.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS pseudo-element that allows styling only the first "letter" of text within an element. Useful for implementing initial caps or drop caps styling.
- *
- * See: https://caniuse.com/css-first-letter
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':first-letter');
diff --git a/node_modules/doiuse/data/features/css-first-line.js b/node_modules/doiuse/data/features/css-first-line.js
deleted file mode 100644
index 4f6e5df7..00000000
--- a/node_modules/doiuse/data/features/css-first-line.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Allows styling specifically for the first line of text using the `::first-line` pseudo-element. Note that only a limited set of properties can be applied.
- *
- * See: https://caniuse.com/css-first-line
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':first-line');
diff --git a/node_modules/doiuse/data/features/css-fixed.js b/node_modules/doiuse/data/features/css-fixed.js
deleted file mode 100644
index 9075e504..00000000
--- a/node_modules/doiuse/data/features/css-fixed.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'position': 'fixed',
-};
diff --git a/node_modules/doiuse/data/features/css-focus-visible.js b/node_modules/doiuse/data/features/css-focus-visible.js
deleted file mode 100644
index 54d79eb6..00000000
--- a/node_modules/doiuse/data/features/css-focus-visible.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * The `:focus-visible` pseudo-class applies while an element matches the `:focus` pseudo-class, and the UA determines via heuristics that the focus should be specially indicated on the element (typically via a “focus ring”).
- *
- * See: https://caniuse.com/css-focus-visible
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':focus-visible');
diff --git a/node_modules/doiuse/data/features/css-focus-within.js b/node_modules/doiuse/data/features/css-focus-within.js
deleted file mode 100644
index f020462b..00000000
--- a/node_modules/doiuse/data/features/css-focus-within.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * The `:focus-within` pseudo-class matches elements that either themselves match `:focus` or that have descendants which match `:focus`.
- *
- * See: https://caniuse.com/css-focus-within
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':focus-within');
diff --git a/node_modules/doiuse/data/features/css-font-palette.js b/node_modules/doiuse/data/features/css-font-palette.js
deleted file mode 100644
index 8c8eff4e..00000000
--- a/node_modules/doiuse/data/features/css-font-palette.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { checkAtRule, performFeatureCheck } from '../../utils/util.js';
-
-export default [
- (rule) => performFeatureCheck('font-palette', rule.name),
- checkAtRule('font-palette-values'),
-];
diff --git a/node_modules/doiuse/data/features/css-font-rendering-controls.js b/node_modules/doiuse/data/features/css-font-rendering-controls.js
deleted file mode 100644
index ba99dfc8..00000000
--- a/node_modules/doiuse/data/features/css-font-rendering-controls.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * `@font-face` descriptor `font-display` that allows control over how a downloadable font renders before it is fully loaded.
- *
- * See: https://caniuse.com/css-font-rendering-controls
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'font-display': true,
-};
diff --git a/node_modules/doiuse/data/features/css-font-stretch.js b/node_modules/doiuse/data/features/css-font-stretch.js
deleted file mode 100644
index 239170d3..00000000
--- a/node_modules/doiuse/data/features/css-font-stretch.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'font-stretch': true,
-};
diff --git a/node_modules/doiuse/data/features/css-gencontent.js b/node_modules/doiuse/data/features/css-gencontent.js
deleted file mode 100644
index d420e074..00000000
--- a/node_modules/doiuse/data/features/css-gencontent.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkSelector } from '../../utils/util.js';
-
-export default checkSelector([':before', ':after']);
diff --git a/node_modules/doiuse/data/features/css-gradients.js b/node_modules/doiuse/data/features/css-gradients.js
deleted file mode 100644
index b889583e..00000000
--- a/node_modules/doiuse/data/features/css-gradients.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const REGEX = /(^|[^-])((linear)|(radial))-gradient/;
-
-export default {
- 'background': REGEX,
- 'background-image': REGEX,
- 'border-image': REGEX,
- 'border-image-source': REGEX,
- 'content': REGEX,
- 'cursor': REGEX,
- 'list-style': REGEX,
- 'list-style-image': REGEX,
-};
diff --git a/node_modules/doiuse/data/features/css-grid-animation.js b/node_modules/doiuse/data/features/css-grid-animation.js
deleted file mode 100644
index 50be7da2..00000000
--- a/node_modules/doiuse/data/features/css-grid-animation.js
+++ /dev/null
@@ -1,6 +0,0 @@
-const REGEX = /grid/;
-
-export default {
- 'transition': REGEX,
- 'transition-property': REGEX,
-};
diff --git a/node_modules/doiuse/data/features/css-grid.js b/node_modules/doiuse/data/features/css-grid.js
deleted file mode 100644
index 3387ed60..00000000
--- a/node_modules/doiuse/data/features/css-grid.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/** @see https://drafts.csswg.org/css-grid/ */
-
-export default {
- 'display': ['grid', 'inline-grid', '-ms-grid'],
- 'grid': true,
- 'grid-area': true,
- 'grid-auto-columns': true,
-
- 'grid-auto-flow': true,
- 'grid-auto-rows': true,
- 'grid-column': true,
- 'grid-column-end': true,
-
- 'grid-column-start': true,
- 'grid-row': true,
- 'grid-row-end': true,
- 'grid-row-start': true,
-
- 'grid-template': true,
- 'grid-template-areas': true,
- 'grid-template-columns': true,
- 'grid-template-rows': true,
-};
diff --git a/node_modules/doiuse/data/features/css-hanging-punctuation.js b/node_modules/doiuse/data/features/css-hanging-punctuation.js
deleted file mode 100644
index def2e2db..00000000
--- a/node_modules/doiuse/data/features/css-hanging-punctuation.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Allows some punctuation characters from start (or the end) of text elements to be placed "outside" of the box in order to preserve the reading flow.
- * @see https://caniuse.com/css-hanging-punctuation
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'hanging-punctuation': true,
-};
diff --git a/node_modules/doiuse/data/features/css-has.js b/node_modules/doiuse/data/features/css-has.js
deleted file mode 100644
index da108c07..00000000
--- a/node_modules/doiuse/data/features/css-has.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Select elements containing specific content. For example, `a:has(img)` selects all `<a>` elements that contain an `<img>` child.
- * @see https://caniuse.com/css-has
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':has');
diff --git a/node_modules/doiuse/data/features/css-hyphens.js b/node_modules/doiuse/data/features/css-hyphens.js
deleted file mode 100644
index fff20407..00000000
--- a/node_modules/doiuse/data/features/css-hyphens.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'hyphens': true,
-};
diff --git a/node_modules/doiuse/data/features/css-image-orientation.js b/node_modules/doiuse/data/features/css-image-orientation.js
deleted file mode 100644
index 6a715f39..00000000
--- a/node_modules/doiuse/data/features/css-image-orientation.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'image-orientation': true,
-};
diff --git a/node_modules/doiuse/data/features/css-image-set.js b/node_modules/doiuse/data/features/css-image-set.js
deleted file mode 100644
index 9134ce83..00000000
--- a/node_modules/doiuse/data/features/css-image-set.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Method of letting the browser pick the most appropriate CSS image from a given set.
- * @see https://caniuse.com/css-image-set
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': 'image-set(',
-};
diff --git a/node_modules/doiuse/data/features/css-in-out-of-range.js b/node_modules/doiuse/data/features/css-in-out-of-range.js
deleted file mode 100644
index dae751db..00000000
--- a/node_modules/doiuse/data/features/css-in-out-of-range.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * If a temporal or number `<input>` has `max` and/or `min` attributes, then `:in-range` matches when the value is within the specified range and `:out-of-range` matches when the value is outside the specified range. If there are no range constraints, then neither pseudo-class matches.
- * @see https://caniuse.com/css-in-out-of-range
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector([
- ':in-range',
- ':out-of-range',
-]);
diff --git a/node_modules/doiuse/data/features/css-indeterminate-pseudo.js b/node_modules/doiuse/data/features/css-indeterminate-pseudo.js
deleted file mode 100644
index 855f8b27..00000000
--- a/node_modules/doiuse/data/features/css-indeterminate-pseudo.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * The `:indeterminate` pseudo-class matches indeterminate checkboxes, indeterminate `<progress>` bars, and radio buttons with no checked button in their radio button group.
- * @see https://caniuse.com/css-indeterminate-pseudo
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':indeterminate');
diff --git a/node_modules/doiuse/data/features/css-initial-letter.js b/node_modules/doiuse/data/features/css-initial-letter.js
deleted file mode 100644
index 8376c7b8..00000000
--- a/node_modules/doiuse/data/features/css-initial-letter.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Method of creating an enlarged cap, including a drop or raised cap, in a robust way.
- * @see https://caniuse.com/css-initial-letter
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'initial-letter': true,
-};
diff --git a/node_modules/doiuse/data/features/css-initial-value.js b/node_modules/doiuse/data/features/css-initial-value.js
deleted file mode 100644
index 21eb98f5..00000000
--- a/node_modules/doiuse/data/features/css-initial-value.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- '': 'initial',
-};
diff --git a/node_modules/doiuse/data/features/css-lch-lab.js b/node_modules/doiuse/data/features/css-lch-lab.js
deleted file mode 100644
index 9d208641..00000000
--- a/node_modules/doiuse/data/features/css-lch-lab.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * The `lch()` and `lab()` color functions are based on the CIE LAB color space, representing colors in a way that closely matches human perception and provides access to a wider spectrum of colors than offered by the usual RGB color space.
- * @see https://caniuse.com/css-lch-lab
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': [
- 'lch(',
- 'lab(',
- ],
-};
diff --git a/node_modules/doiuse/data/features/css-letter-spacing.js b/node_modules/doiuse/data/features/css-letter-spacing.js
deleted file mode 100644
index 60f900ab..00000000
--- a/node_modules/doiuse/data/features/css-letter-spacing.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Controls spacing between characters of text (i.e. "tracking" in typographical terms). Not to be confused with kerning.
- * @see https://caniuse.com/css-letter-spacing
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'letter-spacing': true,
-};
diff --git a/node_modules/doiuse/data/features/css-line-clamp.js b/node_modules/doiuse/data/features/css-line-clamp.js
deleted file mode 100644
index bb704439..00000000
--- a/node_modules/doiuse/data/features/css-line-clamp.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS property that will contain text to a given amount of lines when used in combination with `display: -webkit-box`. It will end with ellipsis when `text-overflow: ellipsis` is included.
- * @see https://caniuse.com/css-line-clamp
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'line-clamp': true,
- '-webkit-line-clamp': true,
-};
diff --git a/node_modules/doiuse/data/features/css-logical-props.js b/node_modules/doiuse/data/features/css-logical-props.js
deleted file mode 100644
index 13c70831..00000000
--- a/node_modules/doiuse/data/features/css-logical-props.js
+++ /dev/null
@@ -1,60 +0,0 @@
-export default {
- 'block-size': true,
- 'inline-size': true,
- 'min-block-size': true,
- 'min-inline-size': true,
- 'max-block-size': true,
- 'max-inline-size': true,
- 'margin-block-start': true,
- 'margin-block-end': true,
- 'margin-inline-start': true,
- 'margin-inline-end': true,
- 'margin-block': true,
- 'margin-inline': true,
- 'inset-block-start': true,
- 'inset-block-end': true,
- 'inset-inline-start': true,
- 'inset-inline-end': true,
- 'inset-block': true,
- 'inset-inline': true,
- 'inset': true,
- 'padding-block-start': true,
- 'padding-block-end': true,
- 'padding-inline-start': true,
- 'padding-inline-end': true,
- 'padding-block': true,
- 'padding-inline': true,
- 'border-block-start-width': true,
- 'border-block-end-width': true,
- 'border-inline-start-width': true,
- 'border-inline-end-width': true,
- 'border-block-width': true,
- 'border-inline-width': true,
- 'border-block-start-style': true,
- 'border-block-end-style': true,
- 'border-inline-start-style': true,
- 'border-inline-end-style': true,
- 'border-block-style': true,
- 'border-inline-style': true,
- 'border-block-start-color': true,
- 'border-block-end-color': true,
- 'border-inline-start-color': true,
- 'border-inline-end-color': true,
- 'border-block-color': true,
- 'border-inline-color': true,
- 'border-block-start': true,
- 'border-block-end': true,
- 'border-inline-start': true,
- 'border-inline-end': true,
- 'border-block': true,
- 'border-inline': true,
- 'border-start-start-radius': true,
- 'border-start-end-radius': true,
- 'border-end-start-radius': true,
- 'border-end-end-radius': true,
- 'text-align': ['start', 'end'],
- 'float': ['inline-start', 'inline-end'],
- 'resize': ['block', 'inline'],
- 'overflow-block': true,
- 'overflow-inline': true,
-};
diff --git a/node_modules/doiuse/data/features/css-marker-pseudo.js b/node_modules/doiuse/data/features/css-marker-pseudo.js
deleted file mode 100644
index e8d51a39..00000000
--- a/node_modules/doiuse/data/features/css-marker-pseudo.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * The `::marker` pseudo-element allows list item markers to be styled or have their content value customized.
- * @see https://caniuse.com/css-marker-pseudo
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':marker');
diff --git a/node_modules/doiuse/data/features/css-masks.js b/node_modules/doiuse/data/features/css-masks.js
deleted file mode 100644
index fab5f338..00000000
--- a/node_modules/doiuse/data/features/css-masks.js
+++ /dev/null
@@ -1,39 +0,0 @@
-export default {
- 'clip-path': true,
- 'mask': true,
- 'mask-border': true,
- 'mask-border-mode': true,
- 'mask-border-outset': true,
- 'mask-border-repeat': true,
- 'mask-border-slice': true,
- 'mask-border-source': true,
- 'mask-border-width': true,
- 'mask-clip': true,
- 'mask-composite': true,
- 'mask-image': true,
- 'mask-mode': true,
- 'mask-origin': true,
- 'mask-position': true,
- 'mask-repeat': true,
- 'mask-size': true,
- 'mask-type': true,
- // and webkit versions
- '-webkit-clip-path': true,
- '-webkit-mask': true,
- '-webkit-mask-border': true,
- '-webkit-mask-border-mode': true,
- '-webkit-mask-border-outset': true,
- '-webkit-mask-border-repeat': true,
- '-webkit-mask-border-slice': true,
- '-webkit-mask-border-source': true,
- '-webkit-mask-border-width': true,
- '-webkit-mask-clip': true,
- '-webkit-mask-composite': true,
- '-webkit-mask-image': true,
- '-webkit-mask-mode': true,
- '-webkit-mask-origin': true,
- '-webkit-mask-position': true,
- '-webkit-mask-repeat': true,
- '-webkit-mask-size': true,
- '-webkit-mask-type': true,
-};
diff --git a/node_modules/doiuse/data/features/css-matches-pseudo.js b/node_modules/doiuse/data/features/css-matches-pseudo.js
deleted file mode 100644
index e1696a9a..00000000
--- a/node_modules/doiuse/data/features/css-matches-pseudo.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { checkSelector } from '../../utils/util.js';
-
-export default checkSelector([
- ':is',
- ':where',
- ':matches',
- ':any',
- ':-webkit-any',
- ':-webkit-is',
- ':-webkit-where',
- ':-webkit-matches',
-]);
diff --git a/node_modules/doiuse/data/features/css-math-functions.js b/node_modules/doiuse/data/features/css-math-functions.js
deleted file mode 100644
index 59bab0f4..00000000
--- a/node_modules/doiuse/data/features/css-math-functions.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- '': ['min(', 'max(', 'clamp('],
-};
diff --git a/node_modules/doiuse/data/features/css-media-interaction.js b/node_modules/doiuse/data/features/css-media-interaction.js
deleted file mode 100644
index 23e1a9c7..00000000
--- a/node_modules/doiuse/data/features/css-media-interaction.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * Allows a media query to be set based on the presence and accuracy of the user's pointing device, and whether they have the ability to hover over elements on the page. This includes the `pointer`, `any-pointer`, `hover`, and `any-hover` media features.
- * @see https://caniuse.com/css-media-interaction
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule('media', [
- 'pointer',
- 'any-pointer',
- 'hover',
- 'any-hover',
-]);
diff --git a/node_modules/doiuse/data/features/css-media-range-syntax.js b/node_modules/doiuse/data/features/css-media-range-syntax.js
deleted file mode 100644
index ff9de126..00000000
--- a/node_modules/doiuse/data/features/css-media-range-syntax.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkAtRule } from '../../utils/util.js';
-
-export default checkAtRule('media', [' > ', ' < ', ' <= ', ' >= ']);
diff --git a/node_modules/doiuse/data/features/css-media-resolution.js b/node_modules/doiuse/data/features/css-media-resolution.js
deleted file mode 100644
index a995449a..00000000
--- a/node_modules/doiuse/data/features/css-media-resolution.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkAtRule } from '../../utils/util.js';
-
-export default checkAtRule('media', ['min-resolution', 'max-resolution', 'resolution', 'device-pixel-ratio']);
diff --git a/node_modules/doiuse/data/features/css-media-scripting.js b/node_modules/doiuse/data/features/css-media-scripting.js
deleted file mode 100644
index cfac81d2..00000000
--- a/node_modules/doiuse/data/features/css-media-scripting.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=Media+Queries:+scripting+media+feature
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule('media', ['scripting']);
diff --git a/node_modules/doiuse/data/features/css-mediaqueries.js b/node_modules/doiuse/data/features/css-mediaqueries.js
deleted file mode 100644
index 0f251607..00000000
--- a/node_modules/doiuse/data/features/css-mediaqueries.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkAtRule } from '../../utils/util.js';
-
-export default checkAtRule(['media']);
diff --git a/node_modules/doiuse/data/features/css-mixblendmode.js b/node_modules/doiuse/data/features/css-mixblendmode.js
deleted file mode 100644
index 4197789b..00000000
--- a/node_modules/doiuse/data/features/css-mixblendmode.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'mix-blend-mode': true,
-};
diff --git a/node_modules/doiuse/data/features/css-motion-paths.js b/node_modules/doiuse/data/features/css-motion-paths.js
deleted file mode 100644
index c06f4cbf..00000000
--- a/node_modules/doiuse/data/features/css-motion-paths.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'offset-path': true,
-};
diff --git a/node_modules/doiuse/data/features/css-namespaces.js b/node_modules/doiuse/data/features/css-namespaces.js
deleted file mode 100644
index 0e9797db..00000000
--- a/node_modules/doiuse/data/features/css-namespaces.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Using the `@namespace` at-rule, elements of other namespaces (e.g. SVG) can be targeted using the pipe (`|`) selector.
- * @see https://caniuse.com/css-namespaces
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule('namespace');
diff --git a/node_modules/doiuse/data/features/css-nesting.js b/node_modules/doiuse/data/features/css-nesting.js
deleted file mode 100644
index 2415d08a..00000000
--- a/node_modules/doiuse/data/features/css-nesting.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * CSS nesting provides the ability to nest one style rule inside another, with the selector of the child rule relative to the selector of the parent rule. Similar behavior previously required a CSS pre-processor.
- * @see https://caniuse.com/css-nesting
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default (rule) => {
- if (rule.type === 'rule' && rule.parent.type === 'rule') {
- return true;
- }
-
- if (rule.type === 'atrule' && rule.parent.type === 'rule') {
- return true;
- }
-
- return false;
-};
diff --git a/node_modules/doiuse/data/features/css-not-sel-list.js b/node_modules/doiuse/data/features/css-not-sel-list.js
deleted file mode 100644
index ee745e7e..00000000
--- a/node_modules/doiuse/data/features/css-not-sel-list.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Selectors Level 3 only allowed `:not()` pseudo-class to accept a single simple selector, which the element must not match any of. Thus, `:not(a, .b, [c])` or `:not(a.b[c])` did not work. Selectors Level 4 allows `:not()` to accept a list of selectors. Thus, `:not(a):not(.b):not([c])` can instead be written as `:not(a, .b, [c])` and `:not(a.b[c])` works as intended.
- * @see https://caniuse.com/css-not-sel-list
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(
- (selector) => selector.includes(':not(') && !/:not\(.?#?-?[\w[\]-]+\)/.test(selector),
-);
diff --git a/node_modules/doiuse/data/features/css-nth-child-of.js b/node_modules/doiuse/data/features/css-nth-child-of.js
deleted file mode 100644
index b1249f6f..00000000
--- a/node_modules/doiuse/data/features/css-nth-child-of.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * The newest versions of `:nth-child()` and `:nth-last-child()` accept an optional `of S` clause which filters the children to only those which match the selector list `S`. For example, `:nth-child(1 of .foo)` selects the first child among the children that have the `foo` class (ignoring any non-`foo` children which precede that child). Similar to `:nth-of-type`, but for arbitrary selectors instead of only type selectors.
- * @see https://caniuse.com/css-nth-child-of
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(
- (selector) => /:nth-(child|last-child)\(\s*\d+\s*of/.test(selector),
-);
diff --git a/node_modules/doiuse/data/features/css-opacity.js b/node_modules/doiuse/data/features/css-opacity.js
deleted file mode 100644
index 50f65243..00000000
--- a/node_modules/doiuse/data/features/css-opacity.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'opacity': true,
-};
diff --git a/node_modules/doiuse/data/features/css-optional-pseudo.js b/node_modules/doiuse/data/features/css-optional-pseudo.js
deleted file mode 100644
index 8ecca39f..00000000
--- a/node_modules/doiuse/data/features/css-optional-pseudo.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * The `:optional` pseudo-class matches form inputs (`<input>`, `<textarea>`, `<select>`) which are not `:required`.
- * @see https://caniuse.com/css-optional-pseudo
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':optional');
diff --git a/node_modules/doiuse/data/features/css-overflow-anchor.js b/node_modules/doiuse/data/features/css-overflow-anchor.js
deleted file mode 100644
index 6424835a..00000000
--- a/node_modules/doiuse/data/features/css-overflow-anchor.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * Changes in DOM elements above the visible region of a scrolling box can result in the page moving while the user is in the middle of consuming the content. By default, the value of `overflow-anchor` is `auto`, it can mitigate this jarring user experience by keeping track of the position of an anchor node and adjusting the scroll offset accordingly
- * @see https://caniuse.com/css-overflow-anchor
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'overflow-anchor': true,
-};
diff --git a/node_modules/doiuse/data/features/css-overflow-overlay.js b/node_modules/doiuse/data/features/css-overflow-overlay.js
deleted file mode 100644
index bdbc6ba3..00000000
--- a/node_modules/doiuse/data/features/css-overflow-overlay.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'overflow': 'overlay',
-};
diff --git a/node_modules/doiuse/data/features/css-overflow.js b/node_modules/doiuse/data/features/css-overflow.js
deleted file mode 100644
index 324bbcda..00000000
--- a/node_modules/doiuse/data/features/css-overflow.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Originally a single property for controlling overflowing content in both horizontal & vertical directions, the `overflow` property is now a shorthand for `overflow-x` & `overflow-y`. The latest version of the specification also introduces the `clip` value that blocks programmatic scrolling.
- * @see https://caniuse.com/css-overflow
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'overflow': true,
- 'overflow-x': true,
- 'overflow-y': true,
-};
diff --git a/node_modules/doiuse/data/features/css-overscroll-behavior.js b/node_modules/doiuse/data/features/css-overscroll-behavior.js
deleted file mode 100644
index 3f951b6a..00000000
--- a/node_modules/doiuse/data/features/css-overscroll-behavior.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- 'overscroll-behavior': true,
- 'overscroll-behavior-x': true,
- 'overscroll-behavior-y': true,
-};
diff --git a/node_modules/doiuse/data/features/css-page-break.js b/node_modules/doiuse/data/features/css-page-break.js
deleted file mode 100644
index 93d95a04..00000000
--- a/node_modules/doiuse/data/features/css-page-break.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Properties to control the way elements are broken across (printed) pages.
- * @see https://caniuse.com/css-page-break
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'page-break-after': true,
- 'page-break-before': true,
- 'page-break-inside': true,
-};
diff --git a/node_modules/doiuse/data/features/css-paged-media.js b/node_modules/doiuse/data/features/css-paged-media.js
deleted file mode 100644
index b06d2042..00000000
--- a/node_modules/doiuse/data/features/css-paged-media.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/**
- * CSS at-rule (`@page`) to define page-specific rules when printing web pages, such as margin per page and page dimensions.
- * @see https://caniuse.com/css-paged-media
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule('page');
diff --git a/node_modules/doiuse/data/features/css-paint-api.js b/node_modules/doiuse/data/features/css-paint-api.js
deleted file mode 100644
index cf951ec5..00000000
--- a/node_modules/doiuse/data/features/css-paint-api.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Allows programmatic generation of images used by CSS
- * @see https://caniuse.com/css-paint-api
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default { '': 'paint(' };
diff --git a/node_modules/doiuse/data/features/css-placeholder-shown.js b/node_modules/doiuse/data/features/css-placeholder-shown.js
deleted file mode 100644
index 1a92d39e..00000000
--- a/node_modules/doiuse/data/features/css-placeholder-shown.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * :placeholder-shown CSS pseudo-class
- * Input elements can sometimes show placeholder text as a hint to the user on what to type in. See, for example, the placeholder attribute in HTML5. The :placeholder-shown pseudo-class matches an input element that is showing such placeholder text.
- * @see https://caniuse.com/css-placeholder-shown
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector(':placeholder-shown');
diff --git a/node_modules/doiuse/data/features/css-placeholder.js b/node_modules/doiuse/data/features/css-placeholder.js
deleted file mode 100644
index 52390e8c..00000000
--- a/node_modules/doiuse/data/features/css-placeholder.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { checkSelector } from '../../utils/util.js';
-
-export default [
- checkSelector(':placeholder'),
-];
diff --git a/node_modules/doiuse/data/features/css-print-color-adjust.js b/node_modules/doiuse/data/features/css-print-color-adjust.js
deleted file mode 100644
index ffa89e69..00000000
--- a/node_modules/doiuse/data/features/css-print-color-adjust.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'print-color-adjust': true,
-};
diff --git a/node_modules/doiuse/data/features/css-read-only-write.js b/node_modules/doiuse/data/features/css-read-only-write.js
deleted file mode 100644
index e9956292..00000000
--- a/node_modules/doiuse/data/features/css-read-only-write.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS :read-only and :read-write selectors
- * :read-only and :read-write pseudo-classes to match elements which are considered user-alterable
- * @see https://caniuse.com/css-read-only-write
- */
-
-import { checkSelector } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkSelector([':read-only', ':read-write']);
diff --git a/node_modules/doiuse/data/features/css-rebeccapurple.js b/node_modules/doiuse/data/features/css-rebeccapurple.js
deleted file mode 100644
index 3a813b5d..00000000
--- a/node_modules/doiuse/data/features/css-rebeccapurple.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Rebeccapurple color
- * The new color added in CSS Color Module Level 4
- * @see https://caniuse.com/css-rebeccapurple
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': 'rebeccapurple',
-};
diff --git a/node_modules/doiuse/data/features/css-reflections.js b/node_modules/doiuse/data/features/css-reflections.js
deleted file mode 100644
index de0a7671..00000000
--- a/node_modules/doiuse/data/features/css-reflections.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- 'box-reflect': true,
- '-webkit-box-reflect': true,
-};
diff --git a/node_modules/doiuse/data/features/css-regions.js b/node_modules/doiuse/data/features/css-regions.js
deleted file mode 100644
index 3aefaacf..00000000
--- a/node_modules/doiuse/data/features/css-regions.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * CSS Regions
- * Method of flowing content into multiple elements, allowing magazine-like layouts. While once supported in WebKit-based browsers and Internet Explorer, implementing the feature is no longer being pursued by any browser.
- * @see https://caniuse.com/css-regions
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'flow-into': true,
- 'flow-from': true,
- '-webkit-flow-into': true,
- '-webkit-flow-from': true,
-};
diff --git a/node_modules/doiuse/data/features/css-relative-colors.js b/node_modules/doiuse/data/features/css-relative-colors.js
deleted file mode 100644
index 48bcd665..00000000
--- a/node_modules/doiuse/data/features/css-relative-colors.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS Relative colors
- * The CSS Relative Color syntax allows a color to be defined relative to another color using the `from` keyword and optionally `calc()` for any of the color values.
- * @see https://caniuse.com/css-relative-colors
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': /((rgb)|(rgba)|(hsl)|(hsla)|(hwb))\(\s*from/,
-};
diff --git a/node_modules/doiuse/data/features/css-repeating-gradients.js b/node_modules/doiuse/data/features/css-repeating-gradients.js
deleted file mode 100644
index 5639bbe6..00000000
--- a/node_modules/doiuse/data/features/css-repeating-gradients.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- '': [
- 'repeating-linear-gradient',
- 'repeating-radial-gradient',
- ],
-};
diff --git a/node_modules/doiuse/data/features/css-resize.js b/node_modules/doiuse/data/features/css-resize.js
deleted file mode 100644
index 8b25994b..00000000
--- a/node_modules/doiuse/data/features/css-resize.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'resize': true,
-};
diff --git a/node_modules/doiuse/data/features/css-revert-value.js b/node_modules/doiuse/data/features/css-revert-value.js
deleted file mode 100644
index 03067c7b..00000000
--- a/node_modules/doiuse/data/features/css-revert-value.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- '': 'revert',
-
-};
diff --git a/node_modules/doiuse/data/features/css-rrggbbaa.js b/node_modules/doiuse/data/features/css-rrggbbaa.js
deleted file mode 100644
index 7d83f4e4..00000000
--- a/node_modules/doiuse/data/features/css-rrggbbaa.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * #rrggbbaa hex color notation
- * The CSS Color Module Level 4 defines new 4 & 8 character hex notation for color to include the opacity level.
- * @see https://caniuse.com/css-rrggbbaa
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': [
- /#[\da-f]{8}/i,
- /#[\da-f]{4}(\W|$)/i,
- ],
-};
diff --git a/node_modules/doiuse/data/features/css-scroll-behavior.js b/node_modules/doiuse/data/features/css-scroll-behavior.js
deleted file mode 100644
index fc83e96f..00000000
--- a/node_modules/doiuse/data/features/css-scroll-behavior.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS Scroll-behavior
- * Method of specifying the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.
- * @see https://caniuse.com/css-scroll-behavior
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'scroll-behavior': true,
-};
diff --git a/node_modules/doiuse/data/features/css-scroll-timeline.js b/node_modules/doiuse/data/features/css-scroll-timeline.js
deleted file mode 100644
index 48da61cd..00000000
--- a/node_modules/doiuse/data/features/css-scroll-timeline.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * CSS @scroll-timeline
- * CSS property that allows animations to be driven by a container's scroll position
- * @see https://caniuse.com/css-scroll-timeline
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-const checkAt = checkAtRule('scroll-timeline');
-
-/**
- * @type {import('../features').Feature}
- */
-export default (node) => {
- // check for @scroll-timeline
- if (checkAt(node)) {
- return true;
- }
-
- // check for animation-timeline
- if (node.type !== 'decl') return false;
- if (node.prop.startsWith('animation-timeline')) {
- return true;
- }
-
- return false;
-};
diff --git a/node_modules/doiuse/data/features/css-scrollbar.js b/node_modules/doiuse/data/features/css-scrollbar.js
deleted file mode 100644
index ed4edbf9..00000000
--- a/node_modules/doiuse/data/features/css-scrollbar.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- 'scrollbar-color': true,
- 'scrollbar-width': true,
-};
diff --git a/node_modules/doiuse/data/features/css-sel2.js b/node_modules/doiuse/data/features/css-sel2.js
deleted file mode 100644
index cdadf2ff..00000000
--- a/node_modules/doiuse/data/features/css-sel2.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import { checkSelector } from '../../utils/util.js';
-
-const ATTRIBUTE_IDENTIFIER = '[^\\~|^$*\\]]*';
-
-// Export for testing
-export const REGEXES = {
- 'HAS_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\]`),
- 'MATCH_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}=${ATTRIBUTE_IDENTIFIER}\\]`),
- 'WORD_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\~=${ATTRIBUTE_IDENTIFIER}\\]`),
- 'SUBCODE_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\|=${ATTRIBUTE_IDENTIFIER}\\]`),
- 'BRACKET_PARENS': /(\[[^=\]]*(=("[^"]*")|[^\]]+|)])|(\([^)]*\))/g,
-};
-
-/**
- * @param {RegExp} pattern
- * @return {(str:string) => boolean}
- */
-function matchOutsideOfBrackets(pattern) {
- if (!(pattern instanceof RegExp)) {
- throw new TypeError('matchOutsideOfBrackets expects a RegExp');
- }
- return (string) => pattern.test(string.replaceAll(REGEXES.BRACKET_PARENS, ''));
-}
-
-export default checkSelector([
- ':first-child',
- ':link',
- ':visited',
- ':active',
- ':hover',
- ':focus',
- ':lang',
- REGEXES.HAS_ATTRIBUTE,
- REGEXES.MATCH_ATTRIBUTE,
- REGEXES.WORD_ATTRIBUTE,
- REGEXES.SUBCODE_ATTRIBUTE,
- matchOutsideOfBrackets(/\*/),
- matchOutsideOfBrackets(/>/),
- matchOutsideOfBrackets(/\+/),
- matchOutsideOfBrackets(/\./),
- matchOutsideOfBrackets(/#/),
-]);
diff --git a/node_modules/doiuse/data/features/css-sel3.js b/node_modules/doiuse/data/features/css-sel3.js
deleted file mode 100644
index c82db473..00000000
--- a/node_modules/doiuse/data/features/css-sel3.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import { checkSelector } from '../../utils/util.js';
-
-const ATTRIBUTE_IDENTIFIER = '[^\\~|^$*\\]]*';
-
-// Export for testing
-export const REGEXES = {
- 'SIBLING_SELECTOR': /^[^[]*~/,
- 'STARTSWITH_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\^=${ATTRIBUTE_IDENTIFIER}\\]`),
- 'ENDSWITH_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\$=${ATTRIBUTE_IDENTIFIER}\\]`),
- 'INSENSITIVE_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\*=${ATTRIBUTE_IDENTIFIER}\\]`),
-};
-
-export default checkSelector([
- ':root',
- ':nth-child',
- ':nth-last-child',
- 'nth-of-type',
- 'nth-last-of-type',
- ':last-child',
- ':first-of-type',
- ':last-of-type',
- ':only-child',
- ':only-of-type',
- ':empty',
- ':target',
- ':enabled',
- ':disabled',
- ':checked',
- ':not',
- REGEXES.SIBLING_SELECTOR,
- REGEXES.STARTSWITH_ATTRIBUTE,
- REGEXES.ENDSWITH_ATTRIBUTE,
- REGEXES.INSENSITIVE_ATTRIBUTE,
-]);
diff --git a/node_modules/doiuse/data/features/css-selection.js b/node_modules/doiuse/data/features/css-selection.js
deleted file mode 100644
index 34c6fd4f..00000000
--- a/node_modules/doiuse/data/features/css-selection.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkSelector } from '../../utils/util.js';
-
-export default checkSelector(':selection');
diff --git a/node_modules/doiuse/data/features/css-shapes.js b/node_modules/doiuse/data/features/css-shapes.js
deleted file mode 100644
index 4eddbfa3..00000000
--- a/node_modules/doiuse/data/features/css-shapes.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- 'shape-outside': true,
- 'shape-image-threshold': true,
- 'shape-margin': true,
-};
diff --git a/node_modules/doiuse/data/features/css-snappoints.js b/node_modules/doiuse/data/features/css-snappoints.js
deleted file mode 100644
index 52b5649f..00000000
--- a/node_modules/doiuse/data/features/css-snappoints.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * CSS Scroll Snap
- * CSS technique that allows customizable scrolling experiences like pagination of carousels by setting defined snap positions.
- * @see https://caniuse.com/css-snappoints
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'scroll-snap-type': true,
- 'scroll-padding': true,
- 'scroll-padding-top': true,
- 'scroll-padding-right': true,
- 'scroll-padding-bottom': true,
- 'scroll-padding-left': true,
- 'scroll-padding-inline': true,
- 'scroll-padding-inline-start': true,
- 'scroll-padding-inline-end': true,
- 'scroll-padding-block': true,
- 'scroll-padding-block-start': true,
- 'scroll-padding-block-end': true,
- 'scroll-snap-align': true,
- 'scroll-margin': true,
- 'scroll-margin-top': true,
- 'scroll-margin-right': true,
- 'scroll-margin-bottom': true,
- 'scroll-margin-left': true,
- 'scroll-margin-inline': true,
- 'scroll-margin-inline-start': true,
- 'scroll-margin-inline-end': true,
- 'scroll-margin-block': true,
- 'scroll-margin-block-start': true,
- 'scroll-margin-block-end': true,
- 'scroll-snap-stop': true,
-};
diff --git a/node_modules/doiuse/data/features/css-sticky.js b/node_modules/doiuse/data/features/css-sticky.js
deleted file mode 100644
index b7336e62..00000000
--- a/node_modules/doiuse/data/features/css-sticky.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'position': 'sticky',
-};
diff --git a/node_modules/doiuse/data/features/css-subgrid.js b/node_modules/doiuse/data/features/css-subgrid.js
deleted file mode 100644
index 0b23eb99..00000000
--- a/node_modules/doiuse/data/features/css-subgrid.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS Subgrid
- * Feature of the CSS Grid Layout Module Level 2 that allows a grid-item with its own grid to align in one or both dimensions with its parent grid.
- * @see https://caniuse.com/css-subgrid
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': 'subgrid',
-};
diff --git a/node_modules/doiuse/data/features/css-supports-api.js b/node_modules/doiuse/data/features/css-supports-api.js
deleted file mode 100644
index cea5cab1..00000000
--- a/node_modules/doiuse/data/features/css-supports-api.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS.supports() API
- * The CSS.supports() static methods returns a Boolean value indicating if the browser supports a given CSS feature, or not.
- * @see https://caniuse.com/css-supports-api
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {};
-
-/* this feature appears in JS, so it's not linted by this tool */
diff --git a/node_modules/doiuse/data/features/css-table.js b/node_modules/doiuse/data/features/css-table.js
deleted file mode 100644
index d86c5c2a..00000000
--- a/node_modules/doiuse/data/features/css-table.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default {
- 'display': [
- 'table',
- 'table-',
- 'inline-table',
- ],
-};
diff --git a/node_modules/doiuse/data/features/css-text-align-last.js b/node_modules/doiuse/data/features/css-text-align-last.js
deleted file mode 100644
index 31883731..00000000
--- a/node_modules/doiuse/data/features/css-text-align-last.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS3 text-align-last
- * CSS property to describe how the last line of a block or a line right before a forced line break when `text-align` is `justify`.
- * @see https://caniuse.com/css-text-align-last
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'text-align-last': true,
-};
diff --git a/node_modules/doiuse/data/features/css-text-box-trim.js b/node_modules/doiuse/data/features/css-text-box-trim.js
deleted file mode 100644
index e91567f0..00000000
--- a/node_modules/doiuse/data/features/css-text-box-trim.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * CSS text-box-trim & text-box-edge
- * Provides the ability to remove the vertical space appearing above and below text glyphs, allowing more precise positioning and alignment. Previously specified as the `leading-trim` & `text-edge` properties.
- * @see https://caniuse.com/css-text-box-trim
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'text-box-trim': true,
- 'text-box-edge': true,
-};
diff --git a/node_modules/doiuse/data/features/css-text-indent.js b/node_modules/doiuse/data/features/css-text-indent.js
deleted file mode 100644
index 574fab41..00000000
--- a/node_modules/doiuse/data/features/css-text-indent.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS text-indent
- * The `text-indent` property applies indentation to lines of inline content in a block.
- * @see https://caniuse.com/css-text-indent
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'text-indent': true,
-};
diff --git a/node_modules/doiuse/data/features/css-text-justify.js b/node_modules/doiuse/data/features/css-text-justify.js
deleted file mode 100644
index 3b08cad8..00000000
--- a/node_modules/doiuse/data/features/css-text-justify.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS text-justify
- * CSS property to define how text should be justified when `text-align: justify` is set.
- * @see https://caniuse.com/css-text-justify
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'text-justify': true,
-};
diff --git a/node_modules/doiuse/data/features/css-text-orientation.js b/node_modules/doiuse/data/features/css-text-orientation.js
deleted file mode 100644
index 93c7ccd0..00000000
--- a/node_modules/doiuse/data/features/css-text-orientation.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS text-orientation
- * The CSS `text-orientation` property specifies the orientation of text within a line. Current values only have an effect in vertical typographic modes (defined with the `writing-mode` property)
- * @see https://caniuse.com/css-text-orientation
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'text-orientation': true,
-};
diff --git a/node_modules/doiuse/data/features/css-text-spacing.js b/node_modules/doiuse/data/features/css-text-spacing.js
deleted file mode 100644
index 08d3262b..00000000
--- a/node_modules/doiuse/data/features/css-text-spacing.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS Text 4 text-spacing
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=CSS+Text+4+text-spacing
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'text-spacing': true,
-};
diff --git a/node_modules/doiuse/data/features/css-textshadow.js b/node_modules/doiuse/data/features/css-textshadow.js
deleted file mode 100644
index 00ec173d..00000000
--- a/node_modules/doiuse/data/features/css-textshadow.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'text-shadow': true,
-};
diff --git a/node_modules/doiuse/data/features/css-touch-action.js b/node_modules/doiuse/data/features/css-touch-action.js
deleted file mode 100644
index fe8ccc57..00000000
--- a/node_modules/doiuse/data/features/css-touch-action.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'touch-action': true,
-};
diff --git a/node_modules/doiuse/data/features/css-transitions.js b/node_modules/doiuse/data/features/css-transitions.js
deleted file mode 100644
index c2f29934..00000000
--- a/node_modules/doiuse/data/features/css-transitions.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default {
- 'transition': true,
- 'transition-property': true,
- 'transition-duration': true,
- 'transition-delay': true,
- 'transition-timing-function': true,
-};
diff --git a/node_modules/doiuse/data/features/css-unicode-bidi.js b/node_modules/doiuse/data/features/css-unicode-bidi.js
deleted file mode 100644
index 7a16c868..00000000
--- a/node_modules/doiuse/data/features/css-unicode-bidi.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS unicode-bidi property
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=CSS+unicode-bidi+property
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'unicode-bidi': true,
-};
diff --git a/node_modules/doiuse/data/features/css-unset-value.js b/node_modules/doiuse/data/features/css-unset-value.js
deleted file mode 100644
index 28b86a14..00000000
--- a/node_modules/doiuse/data/features/css-unset-value.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- '': 'unset',
-};
diff --git a/node_modules/doiuse/data/features/css-variables.js b/node_modules/doiuse/data/features/css-variables.js
deleted file mode 100644
index fecc07b4..00000000
--- a/node_modules/doiuse/data/features/css-variables.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-export default (rule) => {
- if (rule.type !== 'decl') return false;
- return (rule.prop.startsWith('--') || rule.value.includes('var('));
-};
diff --git a/node_modules/doiuse/data/features/css-when-else.js b/node_modules/doiuse/data/features/css-when-else.js
deleted file mode 100644
index d449b9d3..00000000
--- a/node_modules/doiuse/data/features/css-when-else.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS @when / @else conditional rules
- * Syntax allowing CSS conditions (like media and support queries) to be written more simply, as well as making it possibly to write mutually exclusive rules using `@else` statements.
- * @see https://caniuse.com/css-when-else
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule(['when', 'else']);
diff --git a/node_modules/doiuse/data/features/css-widows-orphans.js b/node_modules/doiuse/data/features/css-widows-orphans.js
deleted file mode 100644
index 1604f84d..00000000
--- a/node_modules/doiuse/data/features/css-widows-orphans.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * CSS widows & orphans
- * CSS properties to control when lines break across pages or columns by defining the amount of lines that must be left before or after the break.
- * @see https://caniuse.com/css-widows-orphans
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'widows': true,
- 'orphans': true,
-};
diff --git a/node_modules/doiuse/data/features/css-width-stretch.js b/node_modules/doiuse/data/features/css-width-stretch.js
deleted file mode 100644
index f87b0b75..00000000
--- a/node_modules/doiuse/data/features/css-width-stretch.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * width: stretch property
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=width:+stretch+property
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'width': 'stretch',
-};
diff --git a/node_modules/doiuse/data/features/css-writing-mode.js b/node_modules/doiuse/data/features/css-writing-mode.js
deleted file mode 100644
index 0a43f59c..00000000
--- a/node_modules/doiuse/data/features/css-writing-mode.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS writing-mode property
- * Property to define whether lines of text are laid out horizontally or vertically and the direction in which blocks progress.
- * @see https://caniuse.com/css-writing-mode
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'writing-mode': true,
-};
diff --git a/node_modules/doiuse/data/features/css-zoom.js b/node_modules/doiuse/data/features/css-zoom.js
deleted file mode 100644
index 66f606b7..00000000
--- a/node_modules/doiuse/data/features/css-zoom.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS zoom
- * Non-standard method of scaling content.
- * @see https://caniuse.com/css-zoom
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'zoom': true,
-};
diff --git a/node_modules/doiuse/data/features/css3-attr.js b/node_modules/doiuse/data/features/css3-attr.js
deleted file mode 100644
index 0031aedf..00000000
--- a/node_modules/doiuse/data/features/css3-attr.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * CSS3 attr() function for all properties
- * While `attr()` is supported for effectively all browsers for the `content` property, CSS Values and Units Level 5 adds the ability to use `attr()` on **any** CSS property, and to use it for non-string values (e.g. numbers, colors).
- * @see https://caniuse.com/css3-attr
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default (rule) => {
- if (rule.type !== 'decl') return false;
- if (rule.prop === 'content') {
- return false;
- }
-
- return rule.toString().includes('attr(');
-};
diff --git a/node_modules/doiuse/data/features/css3-boxsizing.js b/node_modules/doiuse/data/features/css3-boxsizing.js
deleted file mode 100644
index 56f16d9f..00000000
--- a/node_modules/doiuse/data/features/css3-boxsizing.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'box-sizing': true,
-};
diff --git a/node_modules/doiuse/data/features/css3-colors.js b/node_modules/doiuse/data/features/css3-colors.js
deleted file mode 100644
index 97fa5620..00000000
--- a/node_modules/doiuse/data/features/css3-colors.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default {
- '': [
- 'rgba',
- 'hsl',
- 'hsla',
- ],
-};
diff --git a/node_modules/doiuse/data/features/css3-cursors-grab.js b/node_modules/doiuse/data/features/css3-cursors-grab.js
deleted file mode 100644
index 69f55e6e..00000000
--- a/node_modules/doiuse/data/features/css3-cursors-grab.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'cursor': ['grab', 'grabbing'],
-};
diff --git a/node_modules/doiuse/data/features/css3-cursors-newer.js b/node_modules/doiuse/data/features/css3-cursors-newer.js
deleted file mode 100644
index 8941c6f8..00000000
--- a/node_modules/doiuse/data/features/css3-cursors-newer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'cursor': ['zoom-in', 'zoom-out'],
-};
diff --git a/node_modules/doiuse/data/features/css3-cursors.js b/node_modules/doiuse/data/features/css3-cursors.js
deleted file mode 100644
index e6e96e18..00000000
--- a/node_modules/doiuse/data/features/css3-cursors.js
+++ /dev/null
@@ -1,17 +0,0 @@
-export default {
- 'cursor': [
- 'none',
- 'context-menu',
- 'cell',
- 'vertical-text',
- 'alias',
- 'copy',
- 'no-drop',
- 'not-allowed',
- 'nesw-resize',
- 'nwse-resize',
- 'col-resize',
- 'row-resize',
- 'all-scroll',
- ],
-};
diff --git a/node_modules/doiuse/data/features/css3-tabsize.js b/node_modules/doiuse/data/features/css3-tabsize.js
deleted file mode 100644
index 3176ab15..00000000
--- a/node_modules/doiuse/data/features/css3-tabsize.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'tab-size': true,
-};
diff --git a/node_modules/doiuse/data/features/currentcolor.js b/node_modules/doiuse/data/features/currentcolor.js
deleted file mode 100644
index a3a733a7..00000000
--- a/node_modules/doiuse/data/features/currentcolor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS currentColor value
- * A CSS value that will apply the existing `color` value to other properties like `background-color`, etc.
- * @see https://caniuse.com/currentcolor
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- '': 'currentColor',
-};
diff --git a/node_modules/doiuse/data/features/devicepixelratio.js b/node_modules/doiuse/data/features/devicepixelratio.js
deleted file mode 100644
index 13fdd938..00000000
--- a/node_modules/doiuse/data/features/devicepixelratio.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Window.devicePixelRatio
- * Read-only property that returns the ratio of the (vertical) size of one physical pixel on the current display device to the size of one CSS pixel.
- * @see https://caniuse.com/devicepixelratio
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {};
-
-/* this feature is found in JS and is not linted by this tool */
diff --git a/node_modules/doiuse/data/features/extended-system-fonts.js b/node_modules/doiuse/data/features/extended-system-fonts.js
deleted file mode 100644
index 5376d3f7..00000000
--- a/node_modules/doiuse/data/features/extended-system-fonts.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family
- * Allows more control when choosing system interface fonts
- * @see https://caniuse.com/extended-system-fonts
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'font-family': ['ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded'],
-};
diff --git a/node_modules/doiuse/data/features/flexbox-gap.js b/node_modules/doiuse/data/features/flexbox-gap.js
deleted file mode 100644
index c94eac38..00000000
--- a/node_modules/doiuse/data/features/flexbox-gap.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * gap property for Flexbox
- * `gap` for flexbox containers to create gaps/gutters between flex items
- * @see https://caniuse.com/flexbox-gap
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default (rule) => {
- if (/display:\s(inline-)?flex/.test(rule.toString())
- && rule.toString().includes('gap:')
- ) {
- return true;
- }
-
- return false;
-};
diff --git a/node_modules/doiuse/data/features/flexbox.js b/node_modules/doiuse/data/features/flexbox.js
deleted file mode 100644
index e494acb1..00000000
--- a/node_modules/doiuse/data/features/flexbox.js
+++ /dev/null
@@ -1,13 +0,0 @@
-export default {
- 'display': [
- 'flex',
- 'inline-flex',
- ],
- 'flex': true,
- 'flex-grow': true,
- 'flex-shrink': true,
- 'flex-basis': true,
- 'flex-direction': true,
- 'flex-wrap': true,
- 'flex-flow': true,
-};
diff --git a/node_modules/doiuse/data/features/flow-root.js b/node_modules/doiuse/data/features/flow-root.js
deleted file mode 100644
index 9b16aede..00000000
--- a/node_modules/doiuse/data/features/flow-root.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * display: flow-root
- * The element generates a block container box, and lays out its contents using flow layout. It always establishes a new block formatting context for its contents. It provides a better solution to the most use cases of the "clearfix" hack.
- * @see https://caniuse.com/flow-root
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'display': 'flow-root',
-};
diff --git a/node_modules/doiuse/data/features/font-family-system-ui.js b/node_modules/doiuse/data/features/font-family-system-ui.js
deleted file mode 100644
index b1b6e08f..00000000
--- a/node_modules/doiuse/data/features/font-family-system-ui.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * system-ui value for font-family
- * Value for `font-family` that represents the default user interface font.
- * @see https://caniuse.com/font-family-system-ui
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'font-family': 'system-ui',
-};
diff --git a/node_modules/doiuse/data/features/font-feature.js b/node_modules/doiuse/data/features/font-feature.js
deleted file mode 100644
index f0b8ebd2..00000000
--- a/node_modules/doiuse/data/features/font-feature.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- 'font-feature-settings': true,
- 'font-variant-ligatures': true,
- 'font-language-override': true,
- 'font-kerning': true,
-};
diff --git a/node_modules/doiuse/data/features/font-kerning.js b/node_modules/doiuse/data/features/font-kerning.js
deleted file mode 100644
index d239756e..00000000
--- a/node_modules/doiuse/data/features/font-kerning.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS3 font-kerning
- * Controls the usage of the kerning information (spacing between letters) stored in the font. Note that this only affects OpenType fonts with kerning information, it has no effect on other fonts.
- * @see https://caniuse.com/font-kerning
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'font-kerning': true,
-};
diff --git a/node_modules/doiuse/data/features/font-loading.js b/node_modules/doiuse/data/features/font-loading.js
deleted file mode 100644
index 1a0c1ca9..00000000
--- a/node_modules/doiuse/data/features/font-loading.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS Font Loading
- * This CSS module defines a scripting interface to font faces in CSS, allowing font faces to be easily created and loaded from script. It also provides methods to track the loading status of an individual font, or of all the fonts on an entire page.
- * @see https://caniuse.com/font-loading
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {};
-
-/* this feature appears in JS and as such is not linted */
diff --git a/node_modules/doiuse/data/features/font-size-adjust.js b/node_modules/doiuse/data/features/font-size-adjust.js
deleted file mode 100644
index 4604c92a..00000000
--- a/node_modules/doiuse/data/features/font-size-adjust.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'font-size-adjust': true,
-};
diff --git a/node_modules/doiuse/data/features/font-smooth.js b/node_modules/doiuse/data/features/font-smooth.js
deleted file mode 100644
index 8304c4ad..00000000
--- a/node_modules/doiuse/data/features/font-smooth.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS font-smooth
- * Controls the application of anti-aliasing when fonts are rendered.
- * @see https://caniuse.com/font-smooth
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'font-smooth': true,
-};
diff --git a/node_modules/doiuse/data/features/font-unicode-range.js b/node_modules/doiuse/data/features/font-unicode-range.js
deleted file mode 100644
index 945ebb6d..00000000
--- a/node_modules/doiuse/data/features/font-unicode-range.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'unicode-range': true,
-};
diff --git a/node_modules/doiuse/data/features/font-variant-alternates.js b/node_modules/doiuse/data/features/font-variant-alternates.js
deleted file mode 100644
index 169e5c37..00000000
--- a/node_modules/doiuse/data/features/font-variant-alternates.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS font-variant-alternates
- * Controls the usage of alternate glyphs associated to alternative names defined in @font-feature-values for certain types of OpenType fonts.
- * @see https://caniuse.com/font-variant-alternates
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'font-variant-alternates': true,
-};
diff --git a/node_modules/doiuse/data/features/font-variant-numeric.js b/node_modules/doiuse/data/features/font-variant-numeric.js
deleted file mode 100644
index 13b05164..00000000
--- a/node_modules/doiuse/data/features/font-variant-numeric.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS font-variant-numeric
- * CSS property that provides different ways of displaying numbers, fractions, and ordinal markers.
- * @see https://caniuse.com/font-variant-numeric
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'font-variant-numeric': true,
-};
diff --git a/node_modules/doiuse/data/features/fontface.js b/node_modules/doiuse/data/features/fontface.js
deleted file mode 100644
index 2350dae0..00000000
--- a/node_modules/doiuse/data/features/fontface.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import { checkAtRule } from '../../utils/util.js';
-
-export default [
- checkAtRule('font-face'),
-];
diff --git a/node_modules/doiuse/data/features/fullscreen.js b/node_modules/doiuse/data/features/fullscreen.js
deleted file mode 100644
index c5befe68..00000000
--- a/node_modules/doiuse/data/features/fullscreen.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkSelector } from '../../utils/util.js';
-
-export default checkSelector(':fullscreen');
diff --git a/node_modules/doiuse/data/features/getcomputedstyle.js b/node_modules/doiuse/data/features/getcomputedstyle.js
deleted file mode 100644
index ac64aab5..00000000
--- a/node_modules/doiuse/data/features/getcomputedstyle.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * getComputedStyle
- * API to get the current computed CSS styles applied to an element. This may be the current value applied by an animation or as set by a stylesheet.
- * @see https://caniuse.com/getcomputedstyle
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {};
-
-/* this is a js api, so we don't lint it */
diff --git a/node_modules/doiuse/data/features/inline-block.js b/node_modules/doiuse/data/features/inline-block.js
deleted file mode 100644
index 35b09093..00000000
--- a/node_modules/doiuse/data/features/inline-block.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'display': 'inline-block',
-};
diff --git a/node_modules/doiuse/data/features/intrinsic-width.js b/node_modules/doiuse/data/features/intrinsic-width.js
deleted file mode 100644
index a01a8f3f..00000000
--- a/node_modules/doiuse/data/features/intrinsic-width.js
+++ /dev/null
@@ -1,10 +0,0 @@
-const VALUES = ['max-content', 'min-content', 'fit-content', 'fill-available', 'stretch', 'fill'];
-
-export default {
- 'width': VALUES,
- 'min-width': VALUES,
- 'max-width': VALUES,
- 'height': VALUES,
- 'min-height': VALUES,
- 'max-height': VALUES,
-};
diff --git a/node_modules/doiuse/data/features/justify-content-space-evenly.js b/node_modules/doiuse/data/features/justify-content-space-evenly.js
deleted file mode 100644
index 0df7d327..00000000
--- a/node_modules/doiuse/data/features/justify-content-space-evenly.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS justify-content: space-evenly
- * The "space-evenly" value for the `justify-content` property distributes the space between items evenly. It is similar to space-around but provides equal instead of half-sized space on the edges. Can be used in both CSS flexbox & grid.
- * @see https://caniuse.com/justify-content-space-evenly
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'justify-content': 'space-evenly',
-};
diff --git a/node_modules/doiuse/data/features/kerning-pairs-ligatures.js b/node_modules/doiuse/data/features/kerning-pairs-ligatures.js
deleted file mode 100644
index 31fbcbbc..00000000
--- a/node_modules/doiuse/data/features/kerning-pairs-ligatures.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'text-rendering': 'optimizeLegibility',
-};
diff --git a/node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate-override.js b/node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate-override.js
deleted file mode 100644
index 72e64cf8..00000000
--- a/node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate-override.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'unicode-bidi': 'isolate-override',
-};
diff --git a/node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate.js b/node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate.js
deleted file mode 100644
index 84039895..00000000
--- a/node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'unicode-bidi': 'isolate',
-};
diff --git a/node_modules/doiuse/data/features/mdn-css-unicode-bidi-plaintext.js b/node_modules/doiuse/data/features/mdn-css-unicode-bidi-plaintext.js
deleted file mode 100644
index 7850a81d..00000000
--- a/node_modules/doiuse/data/features/mdn-css-unicode-bidi-plaintext.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'unicode-bidi': 'plaintext',
-};
diff --git a/node_modules/doiuse/data/features/mdn-text-decoration-color.js b/node_modules/doiuse/data/features/mdn-text-decoration-color.js
deleted file mode 100644
index cc6cf839..00000000
--- a/node_modules/doiuse/data/features/mdn-text-decoration-color.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'text-decoration-color': true,
-};
diff --git a/node_modules/doiuse/data/features/mdn-text-decoration-line.js b/node_modules/doiuse/data/features/mdn-text-decoration-line.js
deleted file mode 100644
index 45ad538d..00000000
--- a/node_modules/doiuse/data/features/mdn-text-decoration-line.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'text-decoration-line': true,
-};
diff --git a/node_modules/doiuse/data/features/mdn-text-decoration-shorthand.js b/node_modules/doiuse/data/features/mdn-text-decoration-shorthand.js
deleted file mode 100644
index 791f6067..00000000
--- a/node_modules/doiuse/data/features/mdn-text-decoration-shorthand.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'text-decoration': true,
-};
diff --git a/node_modules/doiuse/data/features/mdn-text-decoration-style.js b/node_modules/doiuse/data/features/mdn-text-decoration-style.js
deleted file mode 100644
index 5c1142c2..00000000
--- a/node_modules/doiuse/data/features/mdn-text-decoration-style.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'text-decoration-style': true,
-};
diff --git a/node_modules/doiuse/data/features/minmaxwh.js b/node_modules/doiuse/data/features/minmaxwh.js
deleted file mode 100644
index 4b6ab356..00000000
--- a/node_modules/doiuse/data/features/minmaxwh.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- 'min-width': true,
- 'max-width': true,
- 'min-height': true,
- 'max-height': true,
-};
diff --git a/node_modules/doiuse/data/features/multibackgrounds.js b/node_modules/doiuse/data/features/multibackgrounds.js
deleted file mode 100644
index 6ff70435..00000000
--- a/node_modules/doiuse/data/features/multibackgrounds.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { list } from 'postcss';
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-export default (rule) => {
- if (rule.type !== 'decl') return false;
- if (!/^background-?/.test(rule.prop)) return false;
- return list.comma(rule.value).length > 1;
-};
diff --git a/node_modules/doiuse/data/features/multicolumn.js b/node_modules/doiuse/data/features/multicolumn.js
deleted file mode 100644
index 3d2efc7c..00000000
--- a/node_modules/doiuse/data/features/multicolumn.js
+++ /dev/null
@@ -1,15 +0,0 @@
-export default {
- 'columns': true,
- 'column-width': true,
- 'column-gap': true,
- 'column-rule': true,
- 'column-rule-color': true,
- 'column-rule-width': true,
- 'column-count': true,
- 'column-rule-style': true,
- 'column-span': true,
- 'column-fill': true,
- 'break-before': true,
- 'break-after': true,
- 'break-inside': true,
-};
diff --git a/node_modules/doiuse/data/features/object-fit.js b/node_modules/doiuse/data/features/object-fit.js
deleted file mode 100644
index 44c59b2f..00000000
--- a/node_modules/doiuse/data/features/object-fit.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- 'object-fit': true,
- 'object-position': true,
-};
diff --git a/node_modules/doiuse/data/features/outline.js b/node_modules/doiuse/data/features/outline.js
deleted file mode 100644
index 17e62061..00000000
--- a/node_modules/doiuse/data/features/outline.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- 'outline': true,
- 'outline-style': true,
- 'outline-width': true,
- 'outline-color': true,
-};
diff --git a/node_modules/doiuse/data/features/pointer-events.js b/node_modules/doiuse/data/features/pointer-events.js
deleted file mode 100644
index 15492e04..00000000
--- a/node_modules/doiuse/data/features/pointer-events.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'pointer-events': true,
-};
diff --git a/node_modules/doiuse/data/features/pointer.js b/node_modules/doiuse/data/features/pointer.js
deleted file mode 100644
index fe8ccc57..00000000
--- a/node_modules/doiuse/data/features/pointer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'touch-action': true,
-};
diff --git a/node_modules/doiuse/data/features/prefers-color-scheme.js b/node_modules/doiuse/data/features/prefers-color-scheme.js
deleted file mode 100644
index 3886efa3..00000000
--- a/node_modules/doiuse/data/features/prefers-color-scheme.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * prefers-color-scheme media query
- * Media query to detect if the user has set their system to use a light or dark color theme.
- * @see https://caniuse.com/prefers-color-scheme
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule('media', 'prefers-color-scheme');
diff --git a/node_modules/doiuse/data/features/prefers-reduced-motion.js b/node_modules/doiuse/data/features/prefers-reduced-motion.js
deleted file mode 100644
index 80246beb..00000000
--- a/node_modules/doiuse/data/features/prefers-reduced-motion.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * TODO: initially implement feature
- * prefers-reduced-motion media query
- * CSS media query based on a user preference for preferring reduced motion (animation, etc).
- * @see https://caniuse.com/prefers-reduced-motion
- */
-
-import { checkAtRule } from '../../utils/util.js';
-
-/**
- * @type {import('../features').Feature}
- */
-export default checkAtRule('media', 'prefers-reduced-motion');
diff --git a/node_modules/doiuse/data/features/rem.js b/node_modules/doiuse/data/features/rem.js
deleted file mode 100644
index 4fd69c35..00000000
--- a/node_modules/doiuse/data/features/rem.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { checkCSSLengthUnits } from '../../utils/util.js';
-
-export default checkCSSLengthUnits('rem');
diff --git a/node_modules/doiuse/data/features/run-in.js b/node_modules/doiuse/data/features/run-in.js
deleted file mode 100644
index 188909b0..00000000
--- a/node_modules/doiuse/data/features/run-in.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * display: run-in
- * If the run-in box contains a block box, same as block. If a block box follows the run-in box, the run-in box becomes the first inline box of the block box. If an inline box follows, the run-in box becomes a block box.
- * @see https://caniuse.com/run-in
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'display': 'run-in',
-};
diff --git a/node_modules/doiuse/data/features/style-scoped.js b/node_modules/doiuse/data/features/style-scoped.js
deleted file mode 100644
index 667e7b52..00000000
--- a/node_modules/doiuse/data/features/style-scoped.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Scoped CSS
- * Allows CSS rules to be scoped to part of the document, based on the position of the style element. The attribute has been [removed from the current specification](https://github.com/whatwg/html/issues/552).
- * @see https://caniuse.com/style-scoped
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {};
-
-/* this feature appears in HTML, so we don't lint it */
diff --git a/node_modules/doiuse/data/features/svg-css.js b/node_modules/doiuse/data/features/svg-css.js
deleted file mode 100644
index 8b2039a6..00000000
--- a/node_modules/doiuse/data/features/svg-css.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * SVG in CSS backgrounds
- * Method of using SVG images as CSS backgrounds
- * @see https://caniuse.com/svg-css
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default (rule) => {
- if (rule.type !== 'decl') return false;
- if (/url\([\S\s]*svg/g.test(
- rule.toString(),
- )) {
- return true;
- }
-
- return false;
-};
diff --git a/node_modules/doiuse/data/features/text-decoration.js b/node_modules/doiuse/data/features/text-decoration.js
deleted file mode 100644
index 5b97b3a5..00000000
--- a/node_modules/doiuse/data/features/text-decoration.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export default {
- 'text-decoration-style': true,
- 'text-decoration-line': true,
- 'text-decoration-color': true,
- 'text-decoration': /\w \w/,
- 'text-decoration-thickness': true,
- 'text-decoration-skip': true,
- 'text-decoration-skip-ink': true,
-};
diff --git a/node_modules/doiuse/data/features/text-emphasis.js b/node_modules/doiuse/data/features/text-emphasis.js
deleted file mode 100644
index 8bd63742..00000000
--- a/node_modules/doiuse/data/features/text-emphasis.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * text-emphasis styling
- * Method of using small symbols next to each glyph to emphasize a run of text, commonly used in East Asian languages. The `text-emphasis` shorthand, and its `text-emphasis-style` and `text-emphasis-color` longhands, can be used to apply marks to the text. The `text-emphasis-position` property, which inherits separately, allows setting the emphasis marks' position with respect to the text.
- * @see https://caniuse.com/text-emphasis
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'text-emphasis': true,
- 'text-emphasis-style': true,
- 'text-emphasis-color': true,
- 'text-emphasis-position': true,
-};
diff --git a/node_modules/doiuse/data/features/text-overflow.js b/node_modules/doiuse/data/features/text-overflow.js
deleted file mode 100644
index faf236ea..00000000
--- a/node_modules/doiuse/data/features/text-overflow.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'text-overflow': true,
-};
diff --git a/node_modules/doiuse/data/features/text-size-adjust.js b/node_modules/doiuse/data/features/text-size-adjust.js
deleted file mode 100644
index 828e27fb..00000000
--- a/node_modules/doiuse/data/features/text-size-adjust.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'text-size-adjust': true,
-};
diff --git a/node_modules/doiuse/data/features/text-stroke.js b/node_modules/doiuse/data/features/text-stroke.js
deleted file mode 100644
index 82e489b1..00000000
--- a/node_modules/doiuse/data/features/text-stroke.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * CSS text-stroke and text-fill
- * Method of declaring the outline (stroke) width and color for text.
- * @see https://caniuse.com/text-stroke
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'text-stroke-color': true,
- 'text-stroke-width': true,
- 'text-stroke': true,
- 'text-fill-color': true,
-};
diff --git a/node_modules/doiuse/data/features/transforms2d.js b/node_modules/doiuse/data/features/transforms2d.js
deleted file mode 100644
index 32f0dc6c..00000000
--- a/node_modules/doiuse/data/features/transforms2d.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- 'transform': true,
- 'transform-origin': true,
-};
diff --git a/node_modules/doiuse/data/features/transforms3d.js b/node_modules/doiuse/data/features/transforms3d.js
deleted file mode 100644
index 8f90cf6b..00000000
--- a/node_modules/doiuse/data/features/transforms3d.js
+++ /dev/null
@@ -1,7 +0,0 @@
-export default {
- 'perspective': true,
- 'perspective-origin': true,
- 'transform-style': true,
- 'backface-visibility': true,
- 'transform': '3d',
-};
diff --git a/node_modules/doiuse/data/features/ttf.js b/node_modules/doiuse/data/features/ttf.js
deleted file mode 100644
index 19f7687e..00000000
--- a/node_modules/doiuse/data/features/ttf.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * TTF/OTF - TrueType and OpenType font support
- * Support for the TrueType (.ttf) and OpenType (.otf) outline font formats in @font-face.
- * @see https://caniuse.com/ttf
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default (rule) => {
- const ruleText = rule.toString();
-
- if (ruleText.includes('@font-face') && (
- (ruleText.includes('.ttf') || ruleText.includes('.otf'))
- )) {
- return true;
- }
-
- return false;
-};
diff --git a/node_modules/doiuse/data/features/user-select-none.js b/node_modules/doiuse/data/features/user-select-none.js
deleted file mode 100644
index 880da5df..00000000
--- a/node_modules/doiuse/data/features/user-select-none.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'user-select': true,
-};
diff --git a/node_modules/doiuse/data/features/variable-fonts.js b/node_modules/doiuse/data/features/variable-fonts.js
deleted file mode 100644
index 461bde8c..00000000
--- a/node_modules/doiuse/data/features/variable-fonts.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Variable fonts
- * OpenType font settings that allows a single font file to behave like multiple fonts: it can contain all the allowed variations in width, weight, slant, optical size, or any other exposed axes of variation as defined by the font designer. Variations can be applied via the `font-variation-settings` property.
- * @see https://caniuse.com/variable-fonts
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'font-variation-settings': true,
-};
diff --git a/node_modules/doiuse/data/features/viewport-unit-variants.js b/node_modules/doiuse/data/features/viewport-unit-variants.js
deleted file mode 100644
index 330df5df..00000000
--- a/node_modules/doiuse/data/features/viewport-unit-variants.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import { checkCSSLengthUnits } from '../../utils/util.js';
-
-/**
- * Small, Large, and Dynamic viewport units
- * Viewport units similar to `vw` and `vh` that are based on shown or hidden
- * browser UI states to address shortcomings of the original units. Currently
- * defined as the
- * `sv*` units (`svb`, `svh`, `svi`, `svmax`, `svmin`, `svw`),
- * `lv*` units (`lvb`, `lvh`, `lvi`, `lvmax`, `lvmin`, `lvw`),
- * `dv*` units (`dvb`, `dvh`, `dvi`, `dvmax`, `dvmin`, `dvw`)
- * and the logical `vi`/`vb` units.
- * @see https://caniuse.com/viewport-unit-variants
- * @type {import('../features').Feature}
- */
-export default checkCSSLengthUnits(
- /* sv* units */
- 'svb',
- 'svh',
- 'svi',
- 'svmax',
- 'svmin',
- 'svw',
-
- /* lv* units */
- 'lvb',
- 'lvh',
- 'lvi',
- 'lvmax',
- 'lvmin',
- 'lvw',
-
- /* dv* units */
- 'dvb',
- 'dvh',
- 'dvi',
- 'dvmax',
- 'dvmin',
- 'dvw',
-
- /* vi/vb units */
- 'vi',
- 'vb',
-);
diff --git a/node_modules/doiuse/data/features/viewport-units.js b/node_modules/doiuse/data/features/viewport-units.js
deleted file mode 100644
index fe8b79a8..00000000
--- a/node_modules/doiuse/data/features/viewport-units.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export default {
- '': [
- 'vw',
- 'vh',
- 'vmin',
- 'vmax',
- ],
-};
diff --git a/node_modules/doiuse/data/features/webkit-user-drag.js b/node_modules/doiuse/data/features/webkit-user-drag.js
deleted file mode 100644
index a695919a..00000000
--- a/node_modules/doiuse/data/features/webkit-user-drag.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * CSS -webkit-user-drag property
- * The non-standard `-webkit-user-drag` CSS property can be used to either make an element draggable or explicitly non-draggable (like links and images). See the standardized [draggable attribute/property](/mdn-api_htmlelement_draggable) for the recommended alternative method of accomplishing the same functionality.
- * @see https://caniuse.com/webkit-user-drag
- */
-
-/**
- * @type {import('../features').Feature}
- */
-export default {
- 'webkit-user-drag': true,
-};
diff --git a/node_modules/doiuse/data/features/will-change.js b/node_modules/doiuse/data/features/will-change.js
deleted file mode 100644
index 042ef87b..00000000
--- a/node_modules/doiuse/data/features/will-change.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'will-change': true,
-};
diff --git a/node_modules/doiuse/data/features/word-break.js b/node_modules/doiuse/data/features/word-break.js
deleted file mode 100644
index 731e6be0..00000000
--- a/node_modules/doiuse/data/features/word-break.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- 'word-break': true,
-};
diff --git a/node_modules/doiuse/data/features/wordwrap.js b/node_modules/doiuse/data/features/wordwrap.js
deleted file mode 100644
index b90e17f1..00000000
--- a/node_modules/doiuse/data/features/wordwrap.js
+++ /dev/null
@@ -1,4 +0,0 @@
-export default {
- 'overflow-wrap': true,
- 'word-wrap': true,
-};
diff --git a/node_modules/doiuse/exports/index.cjs b/node_modules/doiuse/exports/index.cjs
deleted file mode 100644
index 34cabe3a..00000000
--- a/node_modules/doiuse/exports/index.cjs
+++ /dev/null
@@ -1,2901 +0,0 @@
-'use strict';
-
-var multimatch = require('multimatch');
-var browserslist = require('browserslist');
-var caniuse = require('caniuse-lite');
-var postcss = require('postcss');
-
-function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
-
-function _interopNamespace(e) {
- if (e && e.__esModule) return e;
- var n = Object.create(null);
- if (e) {
- Object.keys(e).forEach(function (k) {
- if (k !== 'default') {
- var d = Object.getOwnPropertyDescriptor(e, k);
- Object.defineProperty(n, k, d.get ? d : {
- enumerable: true,
- get: function () { return e[k]; }
- });
- }
- });
- }
- n["default"] = e;
- return Object.freeze(n);
-}
-
-var multimatch__default = /*#__PURE__*/_interopDefaultLegacy(multimatch);
-var browserslist__default = /*#__PURE__*/_interopDefaultLegacy(browserslist);
-var caniuse__namespace = /*#__PURE__*/_interopNamespace(caniuse);
-
-/**
- * No description available.
- *
- * See: This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=Alternate+stylesheet
- */
-
-// This feature is only in HTML, so we don't lint it
-
-/**
- * @type {import('../features').Feature}
- */
-var alternateStylesheet = {};
-
-/**
- * Method of defining how a background image is attached to a scrollable element. Values include `scroll` (default), `fixed` and `local`.
- *
- * See: https://caniuse.com/background-attachment
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var backgroundAttachment = {
- 'background-attachment': [
- 'fixed',
- 'local',
- ],
-};
-
-/**
- * Non-standard method of clipping a background image to the foreground text.
- *
- * See: https://caniuse.com/background-clip-text
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var backgroundClipText = {
- 'background-clip': 'text',
- '-webkit-background-clip': 'text',
-};
-
-var backgroundImgOpts = {
- 'background-clip': true,
- 'background-origin': true,
- 'background-size': true,
-};
-
-var backgroundPositionXY = {
- 'background-position-x': true,
- 'background-position-y': true,
-};
-
-/**
- * Allows CSS background images to be repeated without clipping.
- *
- * See: https://caniuse.com/background-repeat-round-space
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var backgroundRepeatRoundSpace = {
- 'background-repeat': ['round', 'space'],
-};
-
-var borderImage = {
- 'border-image': true,
- 'border-image-outset': true,
- 'border-image-repeat': true,
- 'border-image-slice': true,
- 'border-image-source': true,
- 'border-image-width': true,
-
-};
-
-var borderRadius = {
- 'border-radius': true,
- 'border-top-left-radius': true,
- 'border-top-right-radius': true,
- 'border-bottom-right-radius': true,
- 'border-bottom-left-radius': true,
-};
-
-var calc = {
- '': 'calc(',
-};
-
-/** @typedef {RegExp|string|((value:string) => boolean)} FeatureCheck */
-
-/**
- * @param {string} browserKey
- * @param {string[]} [versions]
- * @return {string}
- */
-function formatBrowserName(browserKey, versions) {
- const entry = caniuse.agents[browserKey];
- const browserName = entry ? entry.browser : null;
- if (!versions) {
- return browserName || '';
- }
- return (`${browserName} (${versions.join(',')})`);
-}
-
-/**
- *
- * @param {FeatureCheck|FeatureCheck[]} check
- * @param {?string|undefined} candidate
- */
-function performFeatureCheck(check, candidate) {
- if (check == null || candidate == null) return false;
- if (check instanceof RegExp) {
- return check.test(candidate);
- }
- switch (typeof check) {
- case 'string':
- return candidate.includes(check);
- case 'function':
- return check(candidate);
- case 'boolean':
- return check;
- case 'object':
- if (Array.isArray(check)) {
- return check.some((c) => performFeatureCheck(c, candidate));
- }
- // Fallthrough
- default:
- console.error(check);
- throw new TypeError(`Unexpected feature check: ${check}`);
- }
-}
-
-/**
- * @param {FeatureCheck|FeatureCheck[]} selector
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-function checkSelector(selector) {
- return (rule) => rule.type === 'rule'
- && performFeatureCheck(selector, rule.selector);
-}
-
-/**
- * @param {FeatureCheck|FeatureCheck[]} [name]
- * @param {FeatureCheck|FeatureCheck[]} [parameters]
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-function checkAtRule(name, parameters) {
- return (rule) => rule.type === 'atrule'
- && performFeatureCheck(name, rule.name)
- && (!parameters || performFeatureCheck(parameters, rule.params));
-}
-
-/**
- * @see https://drafts.csswg.org/css-values/#lengths
- * @see https://drafts.csswg.org/css-values/#number-value
- * @param {string[]} units
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-function checkCSSLengthUnits(...units) {
- const regexp = new RegExp(`(\\+-)?[\\d.]*\\.?\\d+(e(\\+-)?\\d+)?(${units.join('|')})`, 'i');
- return (rule) => (
- (rule.type === 'decl') ? performFeatureCheck(regexp, rule.value)
- : ((rule.type === 'atrule') ? performFeatureCheck(regexp, rule.params)
- : false));
-}
-
-/**
- * Unit representing the width of the character "0" in the current font, of particular use in combination with monospace fonts.
- * @see https://caniuse.com/ch-unit
- * @type {import('../features').Feature}
- */
-var chUnit = checkCSSLengthUnits('ch');
-
-var cssAll = {
- 'all': true,
-};
-
-var cssAnimation = {
- 'animation': true,
- 'animation-name': true,
- 'animation-duration': true,
- 'animation-timing-function': true,
- 'animation-iteration-count': true,
- 'animation-direction': true,
- 'animation-play-state': true,
- 'animation-delay': true,
- 'animation-fill-mode': true,
-};
-
-// @keyframes isn't checked for, but if you try to use it,
-// you'll still get a warning anyway because of the 'animation' property
-
-var cssAnyLink = checkSelector([':any-link', ':-webkit-any-link']);
-
-var cssAppearance = {
- 'appearance': true,
- '-webkit-appearance': true,
- '-moz-appearance': true,
-};
-
-var cssAtCounterStyle = checkAtRule('counter-style');
-
-var cssAutofill = checkSelector([':autofill', ':-webkit-autofill']);
-
-var cssBackdropFilter = {
- 'backdrop-filter': true,
-};
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-var cssBackgroundOffsets = (rule) => {
- if (rule.type !== 'decl') return false;
- if (rule.prop !== 'background-position') return false;
- return postcss.list.space(rule.value).length > 2;
-};
-
-var cssBackgroundblendmode = {
- 'background-blend-mode': true,
-};
-
-/**
- * Controls whether the box's margins, borders, padding, and other decorations wrap the broken edges of the box fragments (when the box is split by a break (page/column/region/line).
- *
- * See: https://caniuse.com/css-boxdecorationbreak
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssBoxdecorationbreak = {
- 'box-decoration-break': true,
- '-webkit-box-decoration-break': true,
-};
-
-var cssBoxshadow = {
- 'box-shadow': true,
-};
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-var cssCanvas = (rule) => {
- if (rule.type !== 'decl') return false;
- if (!rule.prop.startsWith('background')) return false;
- return rule.value.startsWith('-webkit-canvas');
-};
-
-/**
- * The `caret-color` property allows the color to be set of the caret (blinking text insertion pointer) in an editable text area.
- *
- * See: https://caniuse.com/css-caret-color
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCaretColor = {
- 'caret-color': true,
-};
-
-/**
- * The `@layer` at-rule allows authors to explicitly layer their styles in the cascade, before specificity and order of appearance are considered.
- *
- * See: https://caniuse.com/css-cascade-layers
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCascadeLayers = checkAtRule('layer');
-
-/**
- * Including an `i` before the `]` in a CSS attribute selector causes the attribute value to be matched in an ASCII-case-insensitive manner. For example, `[b="xyz" i]` would match both `<a b="xyz">` and `<a b="XYZ">`.
- *
- * See: https://caniuse.com/css-case-insensitive
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCaseInsensitive = (rule) => {
- if (rule.type !== 'rule') { return false; }
- if (/\[.*i]/.test(rule.selector)) { return true; }
- return false;
-};
-
-var cssClipPath = {
- 'clip-path': true,
-};
-
-/**
- * The `print-color-adjust` (or `-webkit-print-color-adjust` as prefixed in WebKit/Blink browsers) property is a CSS extension that can be used to force printing of background colors and images.
- *
- * See: https://caniuse.com/css-color-adjust
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssColorAdjust = {
- 'print-color-adjust': true,
- '-webkit-print-color-adjust': true,
-};
-
-/**
- * The CSS `color()` function allows the browser to display colors in any color space, such as the P3 color space which can display colors outside of the default sRGB color space.
- *
- * See: https://caniuse.com/css-color-function
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssColorFunction = {
- '': 'color(',
-};
-
-const REGEX$2 = /(^|[^-])(repeating-)?conic-gradient/;
-
-var cssConicGradients = {
- 'background': REGEX$2,
- 'background-image': REGEX$2,
- 'border-image': REGEX$2,
- 'border-image-source': REGEX$2,
- 'content': REGEX$2,
- 'cursor': REGEX$2,
- 'list-style': REGEX$2,
- 'list-style-image': REGEX$2,
-};
-
-/**
- * Size queries in Container Queries provide a way to query the size of a container, and conditionally apply CSS to the content of that container.
- *
- * See: https://caniuse.com/css-container-queries
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssContainerQueries = checkAtRule('container');
-
-var cssContainerQueriesStyle = checkAtRule('container', 'style(');
-
-var cssContainerQueryUnits = checkCSSLengthUnits(
- 'cqw',
- 'cqh',
- 'cqi',
- 'cqb',
- 'cqmin',
- 'cqmax',
-);
-
-/**
- * The CSS `contain` property lets developers limit the scope of the browser's styles, layout and paint work for faster and more efficient rendering.
- *
- * See: https://caniuse.com/css-containment
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssContainment = {
- 'contain': true,
-};
-
-/**
- * Provides control over when elements are rendered, so rendering can be skipped for elements not yet in the user's viewport.
- *
- * See: https://caniuse.com/css-content-visibility
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssContentVisibility = {
- 'content-visibility': true,
-};
-
-var cssCounters = {
- 'counter-reset': true,
- 'counter-increment': true,
- '': 'counter(',
-};
-
-/**
- * Scales images with an algorithm that preserves edges and contrast, without smoothing colors or introducing blur. This is intended for images such as pixel art. Official values that accomplish this for the `image-rendering` property are `crisp-edges` and `pixelated`.
- *
- * See: https://caniuse.com/css-crisp-edges
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCrispEdges = {
- 'image-rendering': ['crisp-edges', 'pixelated'],
-};
-
-/**
- * Image function to create a "crossfade" between images. This allows one image to transition (fade) into another based on a percentage value.
- *
- * See: https://caniuse.com/css-cross-fade
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCrossFade = {
- '': [
- 'cross-fade(',
- '-webkit-cross-fade(',
- ],
-};
-
-/**
- * The `:default` pseudo-class matches checkboxes and radio buttons which are checked by default, `<option>`s with the `selected` attribute, and the default submit button (if any) of a form.
- *
- * See: https://caniuse.com/css-default-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDefaultPseudo = checkSelector(':default');
-
-/**
- * An explicit, non-whitespace spelling of the descendant combinator. `A >> B` is equivalent to `A B`.
- *
- * See: https://caniuse.com/css-descendant-gtgt
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDescendantGtgt = checkSelector('>>');
-
-/**
- * Method of overriding the size of viewport in web page using the `@viewport` rule, replacing Apple's own popular `<meta>` viewport implementation. Includes the `extend-to-zoom` width value.
- *
- * See: https://caniuse.com/css-deviceadaptation
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDeviceadaptation = checkAtRule('viewport');
-
-/**
- * Matches elements based on their directionality. `:dir(ltr)` matches elements which are Left-to-Right. `:dir(rtl)` matches elements which are Right-to-Left.
- *
- * See: https://caniuse.com/css-dir-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDirPseudo = checkSelector(':dir(');
-
-/**
- * `display: contents` causes an element's children to appear as if they were direct children of the element's parent, ignoring the element itself. This can be useful when a wrapper element should be ignored when using CSS grid or similar layout techniques.
- *
- * See: https://caniuse.com/css-display-contents
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDisplayContents = {
- 'display': 'contents',
-};
-
-/**
- * This function renders a live image generated from an arbitrary HTML element
- *
- * See: https://caniuse.com/css-element-function
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssElementFunction = {
- '': 'element(',
-};
-
-var cssEnvFunction = {
- '': 'env(',
-};
-
-/**
- * Exclusions defines how inline content flows around elements. It extends the content wrapping ability of floats to any block-level element.
- *
- * See: https://caniuse.com/css-exclusions
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssExclusions = {
- 'wrap-flow': true,
- '-ms-wrap-flow': true,
-};
-
-var cssFeaturequeries = checkAtRule(['supports']);
-
-/**
- * No description available.
- *
- * See: This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=::file-selector-button+CSS+pseudo-element
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFileSelectorButton = checkSelector(':file-selector-button');
-
-/**
- * This function filters a CSS input image with a set of filter functions (like blur, grayscale or hue)
- *
- * See: https://caniuse.com/css-filter-function
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFilterFunction = {
- '': 'filter(',
-};
-
-var cssFilters = {
- 'filter': true,
-};
-
-/**
- * CSS pseudo-element that allows styling only the first "letter" of text within an element. Useful for implementing initial caps or drop caps styling.
- *
- * See: https://caniuse.com/css-first-letter
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFirstLetter = checkSelector(':first-letter');
-
-/**
- * Allows styling specifically for the first line of text using the `::first-line` pseudo-element. Note that only a limited set of properties can be applied.
- *
- * See: https://caniuse.com/css-first-line
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFirstLine = checkSelector(':first-line');
-
-var cssFixed = {
- 'position': 'fixed',
-};
-
-/**
- * The `:focus-visible` pseudo-class applies while an element matches the `:focus` pseudo-class, and the UA determines via heuristics that the focus should be specially indicated on the element (typically via a “focus ring”).
- *
- * See: https://caniuse.com/css-focus-visible
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFocusVisible = checkSelector(':focus-visible');
-
-/**
- * The `:focus-within` pseudo-class matches elements that either themselves match `:focus` or that have descendants which match `:focus`.
- *
- * See: https://caniuse.com/css-focus-within
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFocusWithin = checkSelector(':focus-within');
-
-var cssFontPalette = [
- (rule) => performFeatureCheck('font-palette', rule.name),
- checkAtRule('font-palette-values'),
-];
-
-/**
- * `@font-face` descriptor `font-display` that allows control over how a downloadable font renders before it is fully loaded.
- *
- * See: https://caniuse.com/css-font-rendering-controls
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFontRenderingControls = {
- 'font-display': true,
-};
-
-var cssFontStretch = {
- 'font-stretch': true,
-};
-
-var cssGencontent = checkSelector([':before', ':after']);
-
-const REGEX$1 = /(^|[^-])((linear)|(radial))-gradient/;
-
-var cssGradients = {
- 'background': REGEX$1,
- 'background-image': REGEX$1,
- 'border-image': REGEX$1,
- 'border-image-source': REGEX$1,
- 'content': REGEX$1,
- 'cursor': REGEX$1,
- 'list-style': REGEX$1,
- 'list-style-image': REGEX$1,
-};
-
-/** @see https://drafts.csswg.org/css-grid/ */
-
-var cssGrid = {
- 'display': ['grid', 'inline-grid', '-ms-grid'],
- 'grid': true,
- 'grid-area': true,
- 'grid-auto-columns': true,
-
- 'grid-auto-flow': true,
- 'grid-auto-rows': true,
- 'grid-column': true,
- 'grid-column-end': true,
-
- 'grid-column-start': true,
- 'grid-row': true,
- 'grid-row-end': true,
- 'grid-row-start': true,
-
- 'grid-template': true,
- 'grid-template-areas': true,
- 'grid-template-columns': true,
- 'grid-template-rows': true,
-};
-
-const REGEX = /grid/;
-
-var cssGridAnimation = {
- 'transition': REGEX,
- 'transition-property': REGEX,
-};
-
-/**
- * Allows some punctuation characters from start (or the end) of text elements to be placed "outside" of the box in order to preserve the reading flow.
- * @see https://caniuse.com/css-hanging-punctuation
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssHangingPunctuation = {
- 'hanging-punctuation': true,
-};
-
-/**
- * Select elements containing specific content. For example, `a:has(img)` selects all `<a>` elements that contain an `<img>` child.
- * @see https://caniuse.com/css-has
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssHas = checkSelector(':has');
-
-var cssHyphens = {
- 'hyphens': true,
-};
-
-var cssImageOrientation = {
- 'image-orientation': true,
-};
-
-/**
- * Method of letting the browser pick the most appropriate CSS image from a given set.
- * @see https://caniuse.com/css-image-set
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssImageSet = {
- '': 'image-set(',
-};
-
-/**
- * If a temporal or number `<input>` has `max` and/or `min` attributes, then `:in-range` matches when the value is within the specified range and `:out-of-range` matches when the value is outside the specified range. If there are no range constraints, then neither pseudo-class matches.
- * @see https://caniuse.com/css-in-out-of-range
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssInOutOfRange = checkSelector([
- ':in-range',
- ':out-of-range',
-]);
-
-/**
- * The `:indeterminate` pseudo-class matches indeterminate checkboxes, indeterminate `<progress>` bars, and radio buttons with no checked button in their radio button group.
- * @see https://caniuse.com/css-indeterminate-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssIndeterminatePseudo = checkSelector(':indeterminate');
-
-/**
- * Method of creating an enlarged cap, including a drop or raised cap, in a robust way.
- * @see https://caniuse.com/css-initial-letter
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssInitialLetter = {
- 'initial-letter': true,
-};
-
-var cssInitialValue = {
- '': 'initial',
-};
-
-/**
- * The `lch()` and `lab()` color functions are based on the CIE LAB color space, representing colors in a way that closely matches human perception and provides access to a wider spectrum of colors than offered by the usual RGB color space.
- * @see https://caniuse.com/css-lch-lab
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssLchLab = {
- '': [
- 'lch(',
- 'lab(',
- ],
-};
-
-/**
- * Controls spacing between characters of text (i.e. "tracking" in typographical terms). Not to be confused with kerning.
- * @see https://caniuse.com/css-letter-spacing
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssLetterSpacing = {
- 'letter-spacing': true,
-};
-
-/**
- * CSS property that will contain text to a given amount of lines when used in combination with `display: -webkit-box`. It will end with ellipsis when `text-overflow: ellipsis` is included.
- * @see https://caniuse.com/css-line-clamp
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssLineClamp = {
- 'line-clamp': true,
- '-webkit-line-clamp': true,
-};
-
-var cssLogicalProps = {
- 'block-size': true,
- 'inline-size': true,
- 'min-block-size': true,
- 'min-inline-size': true,
- 'max-block-size': true,
- 'max-inline-size': true,
- 'margin-block-start': true,
- 'margin-block-end': true,
- 'margin-inline-start': true,
- 'margin-inline-end': true,
- 'margin-block': true,
- 'margin-inline': true,
- 'inset-block-start': true,
- 'inset-block-end': true,
- 'inset-inline-start': true,
- 'inset-inline-end': true,
- 'inset-block': true,
- 'inset-inline': true,
- 'inset': true,
- 'padding-block-start': true,
- 'padding-block-end': true,
- 'padding-inline-start': true,
- 'padding-inline-end': true,
- 'padding-block': true,
- 'padding-inline': true,
- 'border-block-start-width': true,
- 'border-block-end-width': true,
- 'border-inline-start-width': true,
- 'border-inline-end-width': true,
- 'border-block-width': true,
- 'border-inline-width': true,
- 'border-block-start-style': true,
- 'border-block-end-style': true,
- 'border-inline-start-style': true,
- 'border-inline-end-style': true,
- 'border-block-style': true,
- 'border-inline-style': true,
- 'border-block-start-color': true,
- 'border-block-end-color': true,
- 'border-inline-start-color': true,
- 'border-inline-end-color': true,
- 'border-block-color': true,
- 'border-inline-color': true,
- 'border-block-start': true,
- 'border-block-end': true,
- 'border-inline-start': true,
- 'border-inline-end': true,
- 'border-block': true,
- 'border-inline': true,
- 'border-start-start-radius': true,
- 'border-start-end-radius': true,
- 'border-end-start-radius': true,
- 'border-end-end-radius': true,
- 'text-align': ['start', 'end'],
- 'float': ['inline-start', 'inline-end'],
- 'resize': ['block', 'inline'],
- 'overflow-block': true,
- 'overflow-inline': true,
-};
-
-/**
- * The `::marker` pseudo-element allows list item markers to be styled or have their content value customized.
- * @see https://caniuse.com/css-marker-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssMarkerPseudo = checkSelector(':marker');
-
-var cssMasks = {
- 'clip-path': true,
- 'mask': true,
- 'mask-border': true,
- 'mask-border-mode': true,
- 'mask-border-outset': true,
- 'mask-border-repeat': true,
- 'mask-border-slice': true,
- 'mask-border-source': true,
- 'mask-border-width': true,
- 'mask-clip': true,
- 'mask-composite': true,
- 'mask-image': true,
- 'mask-mode': true,
- 'mask-origin': true,
- 'mask-position': true,
- 'mask-repeat': true,
- 'mask-size': true,
- 'mask-type': true,
- // and webkit versions
- '-webkit-clip-path': true,
- '-webkit-mask': true,
- '-webkit-mask-border': true,
- '-webkit-mask-border-mode': true,
- '-webkit-mask-border-outset': true,
- '-webkit-mask-border-repeat': true,
- '-webkit-mask-border-slice': true,
- '-webkit-mask-border-source': true,
- '-webkit-mask-border-width': true,
- '-webkit-mask-clip': true,
- '-webkit-mask-composite': true,
- '-webkit-mask-image': true,
- '-webkit-mask-mode': true,
- '-webkit-mask-origin': true,
- '-webkit-mask-position': true,
- '-webkit-mask-repeat': true,
- '-webkit-mask-size': true,
- '-webkit-mask-type': true,
-};
-
-var cssMatchesPseudo = checkSelector([
- ':is',
- ':where',
- ':matches',
- ':any',
- ':-webkit-any',
- ':-webkit-is',
- ':-webkit-where',
- ':-webkit-matches',
-]);
-
-var cssMathFunctions = {
- '': ['min(', 'max(', 'clamp('],
-};
-
-/**
- * Allows a media query to be set based on the presence and accuracy of the user's pointing device, and whether they have the ability to hover over elements on the page. This includes the `pointer`, `any-pointer`, `hover`, and `any-hover` media features.
- * @see https://caniuse.com/css-media-interaction
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssMediaInteraction = checkAtRule('media', [
- 'pointer',
- 'any-pointer',
- 'hover',
- 'any-hover',
-]);
-
-var cssMediaRangeSyntax = checkAtRule('media', [' > ', ' < ', ' <= ', ' >= ']);
-
-var cssMediaResolution = checkAtRule('media', ['min-resolution', 'max-resolution', 'resolution', 'device-pixel-ratio']);
-
-/**
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=Media+Queries:+scripting+media+feature
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssMediaScripting = checkAtRule('media', ['scripting']);
-
-var cssMediaqueries = checkAtRule(['media']);
-
-var cssMixblendmode = {
- 'mix-blend-mode': true,
-};
-
-var cssMotionPaths = {
- 'offset-path': true,
-};
-
-/**
- * Using the `@namespace` at-rule, elements of other namespaces (e.g. SVG) can be targeted using the pipe (`|`) selector.
- * @see https://caniuse.com/css-namespaces
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssNamespaces = checkAtRule('namespace');
-
-/**
- * CSS nesting provides the ability to nest one style rule inside another, with the selector of the child rule relative to the selector of the parent rule. Similar behavior previously required a CSS pre-processor.
- * @see https://caniuse.com/css-nesting
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssNesting = (rule) => {
- if (rule.type === 'rule' && rule.parent.type === 'rule') {
- return true;
- }
-
- if (rule.type === 'atrule' && rule.parent.type === 'rule') {
- return true;
- }
-
- return false;
-};
-
-/**
- * Selectors Level 3 only allowed `:not()` pseudo-class to accept a single simple selector, which the element must not match any of. Thus, `:not(a, .b, [c])` or `:not(a.b[c])` did not work. Selectors Level 4 allows `:not()` to accept a list of selectors. Thus, `:not(a):not(.b):not([c])` can instead be written as `:not(a, .b, [c])` and `:not(a.b[c])` works as intended.
- * @see https://caniuse.com/css-not-sel-list
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssNotSelList = checkSelector(
- (selector) => selector.includes(':not(') && !/:not\(.?#?-?[\w[\]-]+\)/.test(selector),
-);
-
-/**
- * The newest versions of `:nth-child()` and `:nth-last-child()` accept an optional `of S` clause which filters the children to only those which match the selector list `S`. For example, `:nth-child(1 of .foo)` selects the first child among the children that have the `foo` class (ignoring any non-`foo` children which precede that child). Similar to `:nth-of-type`, but for arbitrary selectors instead of only type selectors.
- * @see https://caniuse.com/css-nth-child-of
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssNthChildOf = checkSelector(
- (selector) => /:nth-(child|last-child)\(\s*\d+\s*of/.test(selector),
-);
-
-var cssOpacity = {
- 'opacity': true,
-};
-
-/**
- * The `:optional` pseudo-class matches form inputs (`<input>`, `<textarea>`, `<select>`) which are not `:required`.
- * @see https://caniuse.com/css-optional-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssOptionalPseudo = checkSelector(':optional');
-
-/**
- * Originally a single property for controlling overflowing content in both horizontal & vertical directions, the `overflow` property is now a shorthand for `overflow-x` & `overflow-y`. The latest version of the specification also introduces the `clip` value that blocks programmatic scrolling.
- * @see https://caniuse.com/css-overflow
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssOverflow = {
- 'overflow': true,
- 'overflow-x': true,
- 'overflow-y': true,
-};
-
-/**
- * Changes in DOM elements above the visible region of a scrolling box can result in the page moving while the user is in the middle of consuming the content. By default, the value of `overflow-anchor` is `auto`, it can mitigate this jarring user experience by keeping track of the position of an anchor node and adjusting the scroll offset accordingly
- * @see https://caniuse.com/css-overflow-anchor
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssOverflowAnchor = {
- 'overflow-anchor': true,
-};
-
-var cssOverflowOverlay = {
- 'overflow': 'overlay',
-};
-
-var cssOverscrollBehavior = {
- 'overscroll-behavior': true,
- 'overscroll-behavior-x': true,
- 'overscroll-behavior-y': true,
-};
-
-/**
- * Properties to control the way elements are broken across (printed) pages.
- * @see https://caniuse.com/css-page-break
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssPageBreak = {
- 'page-break-after': true,
- 'page-break-before': true,
- 'page-break-inside': true,
-};
-
-/**
- * CSS at-rule (`@page`) to define page-specific rules when printing web pages, such as margin per page and page dimensions.
- * @see https://caniuse.com/css-paged-media
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssPagedMedia = checkAtRule('page');
-
-/**
- * Allows programmatic generation of images used by CSS
- * @see https://caniuse.com/css-paint-api
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssPaintApi = { '': 'paint(' };
-
-var cssPlaceholder = [
- checkSelector(':placeholder'),
-];
-
-/**
- * :placeholder-shown CSS pseudo-class
- * Input elements can sometimes show placeholder text as a hint to the user on what to type in. See, for example, the placeholder attribute in HTML5. The :placeholder-shown pseudo-class matches an input element that is showing such placeholder text.
- * @see https://caniuse.com/css-placeholder-shown
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssPlaceholderShown = checkSelector(':placeholder-shown');
-
-var cssPrintColorAdjust = {
- 'print-color-adjust': true,
-};
-
-/**
- * CSS :read-only and :read-write selectors
- * :read-only and :read-write pseudo-classes to match elements which are considered user-alterable
- * @see https://caniuse.com/css-read-only-write
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssReadOnlyWrite = checkSelector([':read-only', ':read-write']);
-
-/**
- * Rebeccapurple color
- * The new color added in CSS Color Module Level 4
- * @see https://caniuse.com/css-rebeccapurple
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssRebeccapurple = {
- '': 'rebeccapurple',
-};
-
-var cssReflections = {
- 'box-reflect': true,
- '-webkit-box-reflect': true,
-};
-
-/**
- * CSS Regions
- * Method of flowing content into multiple elements, allowing magazine-like layouts. While once supported in WebKit-based browsers and Internet Explorer, implementing the feature is no longer being pursued by any browser.
- * @see https://caniuse.com/css-regions
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssRegions = {
- 'flow-into': true,
- 'flow-from': true,
- '-webkit-flow-into': true,
- '-webkit-flow-from': true,
-};
-
-/**
- * CSS Relative colors
- * The CSS Relative Color syntax allows a color to be defined relative to another color using the `from` keyword and optionally `calc()` for any of the color values.
- * @see https://caniuse.com/css-relative-colors
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssRelativeColors = {
- '': /((rgb)|(rgba)|(hsl)|(hsla)|(hwb))\(\s*from/,
-};
-
-var cssRepeatingGradients = {
- '': [
- 'repeating-linear-gradient',
- 'repeating-radial-gradient',
- ],
-};
-
-var cssResize = {
- 'resize': true,
-};
-
-var cssRevertValue = {
- '': 'revert',
-
-};
-
-/**
- * #rrggbbaa hex color notation
- * The CSS Color Module Level 4 defines new 4 & 8 character hex notation for color to include the opacity level.
- * @see https://caniuse.com/css-rrggbbaa
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssRrggbbaa = {
- '': [
- /#[\da-f]{8}/i,
- /#[\da-f]{4}(\W|$)/i,
- ],
-};
-
-/**
- * CSS Scroll-behavior
- * Method of specifying the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.
- * @see https://caniuse.com/css-scroll-behavior
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssScrollBehavior = {
- 'scroll-behavior': true,
-};
-
-/**
- * CSS @scroll-timeline
- * CSS property that allows animations to be driven by a container's scroll position
- * @see https://caniuse.com/css-scroll-timeline
- */
-
-const checkAt = checkAtRule('scroll-timeline');
-
-/**
- * @type {import('../features').Feature}
- */
-var cssScrollTimeline = (node) => {
- // check for @scroll-timeline
- if (checkAt(node)) {
- return true;
- }
-
- // check for animation-timeline
- if (node.type !== 'decl') return false;
- if (node.prop.startsWith('animation-timeline')) {
- return true;
- }
-
- return false;
-};
-
-var cssScrollbar = {
- 'scrollbar-color': true,
- 'scrollbar-width': true,
-};
-
-const ATTRIBUTE_IDENTIFIER$1 = '[^\\~|^$*\\]]*';
-
-// Export for testing
-const REGEXES$1 = {
- 'HAS_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER$1}\\]`),
- 'MATCH_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER$1}=${ATTRIBUTE_IDENTIFIER$1}\\]`),
- 'WORD_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER$1}\\~=${ATTRIBUTE_IDENTIFIER$1}\\]`),
- 'SUBCODE_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER$1}\\|=${ATTRIBUTE_IDENTIFIER$1}\\]`),
- 'BRACKET_PARENS': /(\[[^=\]]*(=("[^"]*")|[^\]]+|)])|(\([^)]*\))/g,
-};
-
-/**
- * @param {RegExp} pattern
- * @return {(str:string) => boolean}
- */
-function matchOutsideOfBrackets(pattern) {
- if (!(pattern instanceof RegExp)) {
- throw new TypeError('matchOutsideOfBrackets expects a RegExp');
- }
- return (string) => pattern.test(string.replaceAll(REGEXES$1.BRACKET_PARENS, ''));
-}
-
-var cssSel2 = checkSelector([
- ':first-child',
- ':link',
- ':visited',
- ':active',
- ':hover',
- ':focus',
- ':lang',
- REGEXES$1.HAS_ATTRIBUTE,
- REGEXES$1.MATCH_ATTRIBUTE,
- REGEXES$1.WORD_ATTRIBUTE,
- REGEXES$1.SUBCODE_ATTRIBUTE,
- matchOutsideOfBrackets(/\*/),
- matchOutsideOfBrackets(/>/),
- matchOutsideOfBrackets(/\+/),
- matchOutsideOfBrackets(/\./),
- matchOutsideOfBrackets(/#/),
-]);
-
-const ATTRIBUTE_IDENTIFIER = '[^\\~|^$*\\]]*';
-
-// Export for testing
-const REGEXES = {
- 'SIBLING_SELECTOR': /^[^[]*~/,
- 'STARTSWITH_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\^=${ATTRIBUTE_IDENTIFIER}\\]`),
- 'ENDSWITH_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\$=${ATTRIBUTE_IDENTIFIER}\\]`),
- 'INSENSITIVE_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\*=${ATTRIBUTE_IDENTIFIER}\\]`),
-};
-
-var cssSel3 = checkSelector([
- ':root',
- ':nth-child',
- ':nth-last-child',
- 'nth-of-type',
- 'nth-last-of-type',
- ':last-child',
- ':first-of-type',
- ':last-of-type',
- ':only-child',
- ':only-of-type',
- ':empty',
- ':target',
- ':enabled',
- ':disabled',
- ':checked',
- ':not',
- REGEXES.SIBLING_SELECTOR,
- REGEXES.STARTSWITH_ATTRIBUTE,
- REGEXES.ENDSWITH_ATTRIBUTE,
- REGEXES.INSENSITIVE_ATTRIBUTE,
-]);
-
-var cssSelection = checkSelector(':selection');
-
-var cssShapes = {
- 'shape-outside': true,
- 'shape-image-threshold': true,
- 'shape-margin': true,
-};
-
-/**
- * CSS Scroll Snap
- * CSS technique that allows customizable scrolling experiences like pagination of carousels by setting defined snap positions.
- * @see https://caniuse.com/css-snappoints
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssSnappoints = {
- 'scroll-snap-type': true,
- 'scroll-padding': true,
- 'scroll-padding-top': true,
- 'scroll-padding-right': true,
- 'scroll-padding-bottom': true,
- 'scroll-padding-left': true,
- 'scroll-padding-inline': true,
- 'scroll-padding-inline-start': true,
- 'scroll-padding-inline-end': true,
- 'scroll-padding-block': true,
- 'scroll-padding-block-start': true,
- 'scroll-padding-block-end': true,
- 'scroll-snap-align': true,
- 'scroll-margin': true,
- 'scroll-margin-top': true,
- 'scroll-margin-right': true,
- 'scroll-margin-bottom': true,
- 'scroll-margin-left': true,
- 'scroll-margin-inline': true,
- 'scroll-margin-inline-start': true,
- 'scroll-margin-inline-end': true,
- 'scroll-margin-block': true,
- 'scroll-margin-block-start': true,
- 'scroll-margin-block-end': true,
- 'scroll-snap-stop': true,
-};
-
-var cssSticky = {
- 'position': 'sticky',
-};
-
-/**
- * CSS Subgrid
- * Feature of the CSS Grid Layout Module Level 2 that allows a grid-item with its own grid to align in one or both dimensions with its parent grid.
- * @see https://caniuse.com/css-subgrid
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssSubgrid = {
- '': 'subgrid',
-};
-
-/**
- * CSS.supports() API
- * The CSS.supports() static methods returns a Boolean value indicating if the browser supports a given CSS feature, or not.
- * @see https://caniuse.com/css-supports-api
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssSupportsApi = {};
-
-/* this feature appears in JS, so it's not linted by this tool */
-
-var cssTable = {
- 'display': [
- 'table',
- 'table-',
- 'inline-table',
- ],
-};
-
-/**
- * CSS3 text-align-last
- * CSS property to describe how the last line of a block or a line right before a forced line break when `text-align` is `justify`.
- * @see https://caniuse.com/css-text-align-last
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextAlignLast = {
- 'text-align-last': true,
-};
-
-/**
- * CSS text-box-trim & text-box-edge
- * Provides the ability to remove the vertical space appearing above and below text glyphs, allowing more precise positioning and alignment. Previously specified as the `leading-trim` & `text-edge` properties.
- * @see https://caniuse.com/css-text-box-trim
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextBoxTrim = {
- 'text-box-trim': true,
- 'text-box-edge': true,
-};
-
-/**
- * CSS text-indent
- * The `text-indent` property applies indentation to lines of inline content in a block.
- * @see https://caniuse.com/css-text-indent
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextIndent = {
- 'text-indent': true,
-};
-
-/**
- * CSS text-justify
- * CSS property to define how text should be justified when `text-align: justify` is set.
- * @see https://caniuse.com/css-text-justify
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextJustify = {
- 'text-justify': true,
-};
-
-/**
- * CSS text-orientation
- * The CSS `text-orientation` property specifies the orientation of text within a line. Current values only have an effect in vertical typographic modes (defined with the `writing-mode` property)
- * @see https://caniuse.com/css-text-orientation
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextOrientation = {
- 'text-orientation': true,
-};
-
-/**
- * CSS Text 4 text-spacing
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=CSS+Text+4+text-spacing
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextSpacing = {
- 'text-spacing': true,
-};
-
-var cssTextshadow = {
- 'text-shadow': true,
-};
-
-var cssTouchAction = {
- 'touch-action': true,
-};
-
-var cssTransitions = {
- 'transition': true,
- 'transition-property': true,
- 'transition-duration': true,
- 'transition-delay': true,
- 'transition-timing-function': true,
-};
-
-/**
- * CSS unicode-bidi property
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=CSS+unicode-bidi+property
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssUnicodeBidi = {
- 'unicode-bidi': true,
-};
-
-var cssUnsetValue = {
- '': 'unset',
-};
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-var cssVariables = (rule) => {
- if (rule.type !== 'decl') return false;
- return (rule.prop.startsWith('--') || rule.value.includes('var('));
-};
-
-/**
- * CSS @when / @else conditional rules
- * Syntax allowing CSS conditions (like media and support queries) to be written more simply, as well as making it possibly to write mutually exclusive rules using `@else` statements.
- * @see https://caniuse.com/css-when-else
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssWhenElse = checkAtRule(['when', 'else']);
-
-/**
- * CSS widows & orphans
- * CSS properties to control when lines break across pages or columns by defining the amount of lines that must be left before or after the break.
- * @see https://caniuse.com/css-widows-orphans
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssWidowsOrphans = {
- 'widows': true,
- 'orphans': true,
-};
-
-/**
- * width: stretch property
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=width:+stretch+property
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssWidthStretch = {
- 'width': 'stretch',
-};
-
-/**
- * CSS writing-mode property
- * Property to define whether lines of text are laid out horizontally or vertically and the direction in which blocks progress.
- * @see https://caniuse.com/css-writing-mode
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssWritingMode = {
- 'writing-mode': true,
-};
-
-/**
- * CSS zoom
- * Non-standard method of scaling content.
- * @see https://caniuse.com/css-zoom
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssZoom = {
- 'zoom': true,
-};
-
-/**
- * CSS3 attr() function for all properties
- * While `attr()` is supported for effectively all browsers for the `content` property, CSS Values and Units Level 5 adds the ability to use `attr()` on **any** CSS property, and to use it for non-string values (e.g. numbers, colors).
- * @see https://caniuse.com/css3-attr
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var css3Attr = (rule) => {
- if (rule.type !== 'decl') return false;
- if (rule.prop === 'content') {
- return false;
- }
-
- return rule.toString().includes('attr(');
-};
-
-var css3Boxsizing = {
- 'box-sizing': true,
-};
-
-var css3Colors = {
- '': [
- 'rgba',
- 'hsl',
- 'hsla',
- ],
-};
-
-var css3Cursors = {
- 'cursor': [
- 'none',
- 'context-menu',
- 'cell',
- 'vertical-text',
- 'alias',
- 'copy',
- 'no-drop',
- 'not-allowed',
- 'nesw-resize',
- 'nwse-resize',
- 'col-resize',
- 'row-resize',
- 'all-scroll',
- ],
-};
-
-var css3CursorsGrab = {
- 'cursor': ['grab', 'grabbing'],
-};
-
-var css3CursorsNewer = {
- 'cursor': ['zoom-in', 'zoom-out'],
-};
-
-var css3Tabsize = {
- 'tab-size': true,
-};
-
-/**
- * CSS currentColor value
- * A CSS value that will apply the existing `color` value to other properties like `background-color`, etc.
- * @see https://caniuse.com/currentcolor
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var currentcolor = {
- '': 'currentColor',
-};
-
-/**
- * Window.devicePixelRatio
- * Read-only property that returns the ratio of the (vertical) size of one physical pixel on the current display device to the size of one CSS pixel.
- * @see https://caniuse.com/devicepixelratio
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var devicepixelratio = {};
-
-/* this feature is found in JS and is not linted by this tool */
-
-/**
- * ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family
- * Allows more control when choosing system interface fonts
- * @see https://caniuse.com/extended-system-fonts
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var extendedSystemFonts = {
- 'font-family': ['ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded'],
-};
-
-var flexbox = {
- 'display': [
- 'flex',
- 'inline-flex',
- ],
- 'flex': true,
- 'flex-grow': true,
- 'flex-shrink': true,
- 'flex-basis': true,
- 'flex-direction': true,
- 'flex-wrap': true,
- 'flex-flow': true,
-};
-
-/**
- * gap property for Flexbox
- * `gap` for flexbox containers to create gaps/gutters between flex items
- * @see https://caniuse.com/flexbox-gap
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var flexboxGap = (rule) => {
- if (/display:\s(inline-)?flex/.test(rule.toString())
- && rule.toString().includes('gap:')
- ) {
- return true;
- }
-
- return false;
-};
-
-/**
- * display: flow-root
- * The element generates a block container box, and lays out its contents using flow layout. It always establishes a new block formatting context for its contents. It provides a better solution to the most use cases of the "clearfix" hack.
- * @see https://caniuse.com/flow-root
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var flowRoot = {
- 'display': 'flow-root',
-};
-
-/**
- * system-ui value for font-family
- * Value for `font-family` that represents the default user interface font.
- * @see https://caniuse.com/font-family-system-ui
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontFamilySystemUi = {
- 'font-family': 'system-ui',
-};
-
-var fontFeature = {
- 'font-feature-settings': true,
- 'font-variant-ligatures': true,
- 'font-language-override': true,
- 'font-kerning': true,
-};
-
-/**
- * CSS3 font-kerning
- * Controls the usage of the kerning information (spacing between letters) stored in the font. Note that this only affects OpenType fonts with kerning information, it has no effect on other fonts.
- * @see https://caniuse.com/font-kerning
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontKerning = {
- 'font-kerning': true,
-};
-
-/**
- * CSS Font Loading
- * This CSS module defines a scripting interface to font faces in CSS, allowing font faces to be easily created and loaded from script. It also provides methods to track the loading status of an individual font, or of all the fonts on an entire page.
- * @see https://caniuse.com/font-loading
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontLoading = {};
-
-/* this feature appears in JS and as such is not linted */
-
-var fontSizeAdjust = {
- 'font-size-adjust': true,
-};
-
-/**
- * CSS font-smooth
- * Controls the application of anti-aliasing when fonts are rendered.
- * @see https://caniuse.com/font-smooth
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontSmooth = {
- 'font-smooth': true,
-};
-
-var fontUnicodeRange = {
- 'unicode-range': true,
-};
-
-/**
- * CSS font-variant-alternates
- * Controls the usage of alternate glyphs associated to alternative names defined in @font-feature-values for certain types of OpenType fonts.
- * @see https://caniuse.com/font-variant-alternates
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontVariantAlternates = {
- 'font-variant-alternates': true,
-};
-
-/**
- * CSS font-variant-numeric
- * CSS property that provides different ways of displaying numbers, fractions, and ordinal markers.
- * @see https://caniuse.com/font-variant-numeric
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontVariantNumeric = {
- 'font-variant-numeric': true,
-};
-
-var fontface = [
- checkAtRule('font-face'),
-];
-
-var fullscreen = checkSelector(':fullscreen');
-
-/**
- * getComputedStyle
- * API to get the current computed CSS styles applied to an element. This may be the current value applied by an animation or as set by a stylesheet.
- * @see https://caniuse.com/getcomputedstyle
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var getcomputedstyle = {};
-
-/* this is a js api, so we don't lint it */
-
-var inlineBlock = {
- 'display': 'inline-block',
-};
-
-const VALUES = ['max-content', 'min-content', 'fit-content', 'fill-available', 'stretch', 'fill'];
-
-var intrinsicWidth = {
- 'width': VALUES,
- 'min-width': VALUES,
- 'max-width': VALUES,
- 'height': VALUES,
- 'min-height': VALUES,
- 'max-height': VALUES,
-};
-
-/**
- * CSS justify-content: space-evenly
- * The "space-evenly" value for the `justify-content` property distributes the space between items evenly. It is similar to space-around but provides equal instead of half-sized space on the edges. Can be used in both CSS flexbox & grid.
- * @see https://caniuse.com/justify-content-space-evenly
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var justifyContentSpaceEvenly = {
- 'justify-content': 'space-evenly',
-};
-
-var kerningPairsLigatures = {
- 'text-rendering': 'optimizeLegibility',
-};
-
-var mdnCssUnicodeBidiIsolate = {
- 'unicode-bidi': 'isolate',
-};
-
-var mdnCssUnicodeBidiIsolateOverride = {
- 'unicode-bidi': 'isolate-override',
-};
-
-var mdnCssUnicodeBidiPlaintext = {
- 'unicode-bidi': 'plaintext',
-};
-
-var mdnTextDecorationColor = {
- 'text-decoration-color': true,
-};
-
-var mdnTextDecorationLine = {
- 'text-decoration-line': true,
-};
-
-var mdnTextDecorationShorthand = {
- 'text-decoration': true,
-};
-
-var mdnTextDecorationStyle = {
- 'text-decoration-style': true,
-};
-
-var minmaxwh = {
- 'min-width': true,
- 'max-width': true,
- 'min-height': true,
- 'max-height': true,
-};
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-var multibackgrounds = (rule) => {
- if (rule.type !== 'decl') return false;
- if (!/^background-?/.test(rule.prop)) return false;
- return postcss.list.comma(rule.value).length > 1;
-};
-
-var multicolumn = {
- 'columns': true,
- 'column-width': true,
- 'column-gap': true,
- 'column-rule': true,
- 'column-rule-color': true,
- 'column-rule-width': true,
- 'column-count': true,
- 'column-rule-style': true,
- 'column-span': true,
- 'column-fill': true,
- 'break-before': true,
- 'break-after': true,
- 'break-inside': true,
-};
-
-var objectFit = {
- 'object-fit': true,
- 'object-position': true,
-};
-
-var outline = {
- 'outline': true,
- 'outline-style': true,
- 'outline-width': true,
- 'outline-color': true,
-};
-
-var pointer = {
- 'touch-action': true,
-};
-
-var pointerEvents = {
- 'pointer-events': true,
-};
-
-/**
- * prefers-color-scheme media query
- * Media query to detect if the user has set their system to use a light or dark color theme.
- * @see https://caniuse.com/prefers-color-scheme
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var prefersColorScheme = checkAtRule('media', 'prefers-color-scheme');
-
-/**
- * TODO: initially implement feature
- * prefers-reduced-motion media query
- * CSS media query based on a user preference for preferring reduced motion (animation, etc).
- * @see https://caniuse.com/prefers-reduced-motion
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var prefersReducedMotion = checkAtRule('media', 'prefers-reduced-motion');
-
-var rem = checkCSSLengthUnits('rem');
-
-/**
- * display: run-in
- * If the run-in box contains a block box, same as block. If a block box follows the run-in box, the run-in box becomes the first inline box of the block box. If an inline box follows, the run-in box becomes a block box.
- * @see https://caniuse.com/run-in
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var runIn = {
- 'display': 'run-in',
-};
-
-/**
- * Scoped CSS
- * Allows CSS rules to be scoped to part of the document, based on the position of the style element. The attribute has been [removed from the current specification](https://github.com/whatwg/html/issues/552).
- * @see https://caniuse.com/style-scoped
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var styleScoped = {};
-
-/* this feature appears in HTML, so we don't lint it */
-
-/**
- * SVG in CSS backgrounds
- * Method of using SVG images as CSS backgrounds
- * @see https://caniuse.com/svg-css
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var svgCss = (rule) => {
- if (rule.type !== 'decl') return false;
- if (/url\([\S\s]*svg/g.test(
- rule.toString(),
- )) {
- return true;
- }
-
- return false;
-};
-
-var textDecoration = {
- 'text-decoration-style': true,
- 'text-decoration-line': true,
- 'text-decoration-color': true,
- 'text-decoration': /\w \w/,
- 'text-decoration-thickness': true,
- 'text-decoration-skip': true,
- 'text-decoration-skip-ink': true,
-};
-
-/**
- * text-emphasis styling
- * Method of using small symbols next to each glyph to emphasize a run of text, commonly used in East Asian languages. The `text-emphasis` shorthand, and its `text-emphasis-style` and `text-emphasis-color` longhands, can be used to apply marks to the text. The `text-emphasis-position` property, which inherits separately, allows setting the emphasis marks' position with respect to the text.
- * @see https://caniuse.com/text-emphasis
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var textEmphasis = {
- 'text-emphasis': true,
- 'text-emphasis-style': true,
- 'text-emphasis-color': true,
- 'text-emphasis-position': true,
-};
-
-var textOverflow = {
- 'text-overflow': true,
-};
-
-var textSizeAdjust = {
- 'text-size-adjust': true,
-};
-
-/**
- * CSS text-stroke and text-fill
- * Method of declaring the outline (stroke) width and color for text.
- * @see https://caniuse.com/text-stroke
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var textStroke = {
- 'text-stroke-color': true,
- 'text-stroke-width': true,
- 'text-stroke': true,
- 'text-fill-color': true,
-};
-
-var transforms2d = {
- 'transform': true,
- 'transform-origin': true,
-};
-
-var transforms3d = {
- 'perspective': true,
- 'perspective-origin': true,
- 'transform-style': true,
- 'backface-visibility': true,
- 'transform': '3d',
-};
-
-/**
- * TTF/OTF - TrueType and OpenType font support
- * Support for the TrueType (.ttf) and OpenType (.otf) outline font formats in @font-face.
- * @see https://caniuse.com/ttf
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var ttf = (rule) => {
- const ruleText = rule.toString();
-
- if (ruleText.includes('@font-face') && (
- (ruleText.includes('.ttf') || ruleText.includes('.otf'))
- )) {
- return true;
- }
-
- return false;
-};
-
-var userSelectNone = {
- 'user-select': true,
-};
-
-/**
- * Variable fonts
- * OpenType font settings that allows a single font file to behave like multiple fonts: it can contain all the allowed variations in width, weight, slant, optical size, or any other exposed axes of variation as defined by the font designer. Variations can be applied via the `font-variation-settings` property.
- * @see https://caniuse.com/variable-fonts
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var variableFonts = {
- 'font-variation-settings': true,
-};
-
-/**
- * Small, Large, and Dynamic viewport units
- * Viewport units similar to `vw` and `vh` that are based on shown or hidden
- * browser UI states to address shortcomings of the original units. Currently
- * defined as the
- * `sv*` units (`svb`, `svh`, `svi`, `svmax`, `svmin`, `svw`),
- * `lv*` units (`lvb`, `lvh`, `lvi`, `lvmax`, `lvmin`, `lvw`),
- * `dv*` units (`dvb`, `dvh`, `dvi`, `dvmax`, `dvmin`, `dvw`)
- * and the logical `vi`/`vb` units.
- * @see https://caniuse.com/viewport-unit-variants
- * @type {import('../features').Feature}
- */
-var viewportUnitVariants = checkCSSLengthUnits(
- /* sv* units */
- 'svb',
- 'svh',
- 'svi',
- 'svmax',
- 'svmin',
- 'svw',
-
- /* lv* units */
- 'lvb',
- 'lvh',
- 'lvi',
- 'lvmax',
- 'lvmin',
- 'lvw',
-
- /* dv* units */
- 'dvb',
- 'dvh',
- 'dvi',
- 'dvmax',
- 'dvmin',
- 'dvw',
-
- /* vi/vb units */
- 'vi',
- 'vb',
-);
-
-var viewportUnits = {
- '': [
- 'vw',
- 'vh',
- 'vmin',
- 'vmax',
- ],
-};
-
-/**
- * CSS -webkit-user-drag property
- * The non-standard `-webkit-user-drag` CSS property can be used to either make an element draggable or explicitly non-draggable (like links and images). See the standardized [draggable attribute/property](/mdn-api_htmlelement_draggable) for the recommended alternative method of accomplishing the same functionality.
- * @see https://caniuse.com/webkit-user-drag
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var webkitUserDrag = {
- 'webkit-user-drag': true,
-};
-
-var willChange = {
- 'will-change': true,
-};
-
-var wordBreak = {
- 'word-break': true,
-};
-
-var wordwrap = {
- 'overflow-wrap': true,
- 'word-wrap': true,
-};
-
-/* THIS FILE IS AUTOGENERATED */
-
-/** @typedef {RegExp|string|((value:string) => boolean)} FeatureCheck */
-
-/** @typedef {((rule:import('postcss').ChildNode) => boolean)} RuleCheck */
-
-/** @typedef {Record<string, FeatureCheck|FeatureCheck[]|boolean> | RuleCheck | RuleCheck[]} Feature */
-
-/** @enum {Feature} */
-const FEATURES = {
- 'alternate-stylesheet': alternateStylesheet,
- 'background-attachment': backgroundAttachment,
- 'background-clip-text': backgroundClipText,
- 'background-img-opts': backgroundImgOpts,
- 'background-position-x-y': backgroundPositionXY,
- 'background-repeat-round-space': backgroundRepeatRoundSpace,
- 'border-image': borderImage,
- 'border-radius': borderRadius,
- 'calc': calc,
- 'ch-unit': chUnit,
- 'css-all': cssAll,
- 'css-animation': cssAnimation,
- 'css-any-link': cssAnyLink,
- 'css-appearance': cssAppearance,
- 'css-at-counter-style': cssAtCounterStyle,
- 'css-autofill': cssAutofill,
- 'css-backdrop-filter': cssBackdropFilter,
- 'css-background-offsets': cssBackgroundOffsets,
- 'css-backgroundblendmode': cssBackgroundblendmode,
- 'css-boxdecorationbreak': cssBoxdecorationbreak,
- 'css-boxshadow': cssBoxshadow,
- 'css-canvas': cssCanvas,
- 'css-caret-color': cssCaretColor,
- 'css-cascade-layers': cssCascadeLayers,
- 'css-case-insensitive': cssCaseInsensitive,
- 'css-clip-path': cssClipPath,
- 'css-color-adjust': cssColorAdjust,
- 'css-color-function': cssColorFunction,
- 'css-conic-gradients': cssConicGradients,
- 'css-container-queries': cssContainerQueries,
- 'css-container-queries-style': cssContainerQueriesStyle,
- 'css-container-query-units': cssContainerQueryUnits,
- 'css-containment': cssContainment,
- 'css-content-visibility': cssContentVisibility,
- 'css-counters': cssCounters,
- 'css-crisp-edges': cssCrispEdges,
- 'css-cross-fade': cssCrossFade,
- 'css-default-pseudo': cssDefaultPseudo,
- 'css-descendant-gtgt': cssDescendantGtgt,
- 'css-deviceadaptation': cssDeviceadaptation,
- 'css-dir-pseudo': cssDirPseudo,
- 'css-display-contents': cssDisplayContents,
- 'css-element-function': cssElementFunction,
- 'css-env-function': cssEnvFunction,
- 'css-exclusions': cssExclusions,
- 'css-featurequeries': cssFeaturequeries,
- 'css-file-selector-button': cssFileSelectorButton,
- 'css-filter-function': cssFilterFunction,
- 'css-filters': cssFilters,
- 'css-first-letter': cssFirstLetter,
- 'css-first-line': cssFirstLine,
- 'css-fixed': cssFixed,
- 'css-focus-visible': cssFocusVisible,
- 'css-focus-within': cssFocusWithin,
- 'css-font-palette': cssFontPalette,
- 'css-font-rendering-controls': cssFontRenderingControls,
- 'css-font-stretch': cssFontStretch,
- 'css-gencontent': cssGencontent,
- 'css-gradients': cssGradients,
- 'css-grid': cssGrid,
- 'css-grid-animation': cssGridAnimation,
- 'css-hanging-punctuation': cssHangingPunctuation,
- 'css-has': cssHas,
- 'css-hyphens': cssHyphens,
- 'css-image-orientation': cssImageOrientation,
- 'css-image-set': cssImageSet,
- 'css-in-out-of-range': cssInOutOfRange,
- 'css-indeterminate-pseudo': cssIndeterminatePseudo,
- 'css-initial-letter': cssInitialLetter,
- 'css-initial-value': cssInitialValue,
- 'css-lch-lab': cssLchLab,
- 'css-letter-spacing': cssLetterSpacing,
- 'css-line-clamp': cssLineClamp,
- 'css-logical-props': cssLogicalProps,
- 'css-marker-pseudo': cssMarkerPseudo,
- 'css-masks': cssMasks,
- 'css-matches-pseudo': cssMatchesPseudo,
- 'css-math-functions': cssMathFunctions,
- 'css-media-interaction': cssMediaInteraction,
- 'css-media-range-syntax': cssMediaRangeSyntax,
- 'css-media-resolution': cssMediaResolution,
- 'css-media-scripting': cssMediaScripting,
- 'css-mediaqueries': cssMediaqueries,
- 'css-mixblendmode': cssMixblendmode,
- 'css-motion-paths': cssMotionPaths,
- 'css-namespaces': cssNamespaces,
- 'css-nesting': cssNesting,
- 'css-not-sel-list': cssNotSelList,
- 'css-nth-child-of': cssNthChildOf,
- 'css-opacity': cssOpacity,
- 'css-optional-pseudo': cssOptionalPseudo,
- 'css-overflow': cssOverflow,
- 'css-overflow-anchor': cssOverflowAnchor,
- 'css-overflow-overlay': cssOverflowOverlay,
- 'css-overscroll-behavior': cssOverscrollBehavior,
- 'css-page-break': cssPageBreak,
- 'css-paged-media': cssPagedMedia,
- 'css-paint-api': cssPaintApi,
- 'css-placeholder': cssPlaceholder,
- 'css-placeholder-shown': cssPlaceholderShown,
- 'css-print-color-adjust': cssPrintColorAdjust,
- 'css-read-only-write': cssReadOnlyWrite,
- 'css-rebeccapurple': cssRebeccapurple,
- 'css-reflections': cssReflections,
- 'css-regions': cssRegions,
- 'css-relative-colors': cssRelativeColors,
- 'css-repeating-gradients': cssRepeatingGradients,
- 'css-resize': cssResize,
- 'css-revert-value': cssRevertValue,
- 'css-rrggbbaa': cssRrggbbaa,
- 'css-scroll-behavior': cssScrollBehavior,
- 'css-scroll-timeline': cssScrollTimeline,
- 'css-scrollbar': cssScrollbar,
- 'css-sel2': cssSel2,
- 'css-sel3': cssSel3,
- 'css-selection': cssSelection,
- 'css-shapes': cssShapes,
- 'css-snappoints': cssSnappoints,
- 'css-sticky': cssSticky,
- 'css-subgrid': cssSubgrid,
- 'css-supports-api': cssSupportsApi,
- 'css-table': cssTable,
- 'css-text-align-last': cssTextAlignLast,
- 'css-text-box-trim': cssTextBoxTrim,
- 'css-text-indent': cssTextIndent,
- 'css-text-justify': cssTextJustify,
- 'css-text-orientation': cssTextOrientation,
- 'css-text-spacing': cssTextSpacing,
- 'css-textshadow': cssTextshadow,
- 'css-touch-action': cssTouchAction,
- 'css-transitions': cssTransitions,
- 'css-unicode-bidi': cssUnicodeBidi,
- 'css-unset-value': cssUnsetValue,
- 'css-variables': cssVariables,
- 'css-when-else': cssWhenElse,
- 'css-widows-orphans': cssWidowsOrphans,
- 'css-width-stretch': cssWidthStretch,
- 'css-writing-mode': cssWritingMode,
- 'css-zoom': cssZoom,
- 'css3-attr': css3Attr,
- 'css3-boxsizing': css3Boxsizing,
- 'css3-colors': css3Colors,
- 'css3-cursors': css3Cursors,
- 'css3-cursors-grab': css3CursorsGrab,
- 'css3-cursors-newer': css3CursorsNewer,
- 'css3-tabsize': css3Tabsize,
- 'currentcolor': currentcolor,
- 'devicepixelratio': devicepixelratio,
- 'extended-system-fonts': extendedSystemFonts,
- 'flexbox': flexbox,
- 'flexbox-gap': flexboxGap,
- 'flow-root': flowRoot,
- 'font-family-system-ui': fontFamilySystemUi,
- 'font-feature': fontFeature,
- 'font-kerning': fontKerning,
- 'font-loading': fontLoading,
- 'font-size-adjust': fontSizeAdjust,
- 'font-smooth': fontSmooth,
- 'font-unicode-range': fontUnicodeRange,
- 'font-variant-alternates': fontVariantAlternates,
- 'font-variant-numeric': fontVariantNumeric,
- 'fontface': fontface,
- 'fullscreen': fullscreen,
- 'getcomputedstyle': getcomputedstyle,
- 'inline-block': inlineBlock,
- 'intrinsic-width': intrinsicWidth,
- 'justify-content-space-evenly': justifyContentSpaceEvenly,
- 'kerning-pairs-ligatures': kerningPairsLigatures,
- 'mdn-css-unicode-bidi-isolate': mdnCssUnicodeBidiIsolate,
- 'mdn-css-unicode-bidi-isolate-override': mdnCssUnicodeBidiIsolateOverride,
- 'mdn-css-unicode-bidi-plaintext': mdnCssUnicodeBidiPlaintext,
- 'mdn-text-decoration-color': mdnTextDecorationColor,
- 'mdn-text-decoration-line': mdnTextDecorationLine,
- 'mdn-text-decoration-shorthand': mdnTextDecorationShorthand,
- 'mdn-text-decoration-style': mdnTextDecorationStyle,
- 'minmaxwh': minmaxwh,
- 'multibackgrounds': multibackgrounds,
- 'multicolumn': multicolumn,
- 'object-fit': objectFit,
- 'outline': outline,
- 'pointer': pointer,
- 'pointer-events': pointerEvents,
- 'prefers-color-scheme': prefersColorScheme,
- 'prefers-reduced-motion': prefersReducedMotion,
- 'rem': rem,
- 'run-in': runIn,
- 'style-scoped': styleScoped,
- 'svg-css': svgCss,
- 'text-decoration': textDecoration,
- 'text-emphasis': textEmphasis,
- 'text-overflow': textOverflow,
- 'text-size-adjust': textSizeAdjust,
- 'text-stroke': textStroke,
- 'transforms2d': transforms2d,
- 'transforms3d': transforms3d,
- 'ttf': ttf,
- 'user-select-none': userSelectNone,
- 'variable-fonts': variableFonts,
- 'viewport-unit-variants': viewportUnitVariants,
- 'viewport-units': viewportUnits,
- 'webkit-user-drag': webkitUserDrag,
- 'will-change': willChange,
- 'word-break': wordBreak,
- 'wordwrap': wordwrap,
-};
-
-/**
- * @template T
- * @typedef {{missing: T, partial: T}} Filter
- */
-
-/**
- * @typedef {Object} MissingSupportResultStats
- * @prop {string} title
- * @prop {caniuse.Feature} caniuseData
- * @prop {string} [missing]
- * @prop {Record<string, Record<string, string>>} [missingData]
- * @prop {string} [partial]
- * @prop {Record<string, Record<string, string>>} [partialData]
- */
-
-/**
- * @typedef {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} BrowserSupportStats
- */
-
-/**
- * @typedef {Object} MissingSupportResult
- * @prop {string[][]} browsers
- * @prop {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} features
- */
-
-class BrowserSelection {
- #list;
-
- /**
- * @param {string | string[]} [query]
- * @param {string | false} [from]
- */
- constructor(query, from) {
- this.browsersRequest = query;
- const options = from ? { path: from } : {};
- this.#list = browserslist__default["default"](this.browsersRequest, options).map((browser) => browser.split(' '));
- }
-
- /**
- * @param {string} browser
- * @param {string} version
- * @return {string[]|undefined}
- */
- test(browser, version) {
- const versions = version.split('-');
-
- if (versions.length === 1) {
- versions.push(versions[0]);
- }
-
- return this.#list.find(([b, v]) => b === browser && v >= versions[0] && v <= versions[1]);
- }
-
- list() {
- return [...this.#list];
- }
-
- /**
- * @param {Record<string, Record<string, string>>} browserStats
- * @return {string}
- */
- static lackingBrowsers(browserStats) {
- const result = [];
- for (const browser of Object.keys(browserStats)) {
- result.push(formatBrowserName(browser, Object.keys(browserStats[browser])));
- }
- return result.join(', ');
- }
-
- /**
- * @param {import('caniuse-lite').StatsByAgentID} stats
- * @return {Filter<Record<string,Record<string, string>>>}
- */
- filterStats(stats) {
- /** @type {Filter<Record<string,Record<string, string>>>} */
- const result = { missing: {}, partial: {} };
- for (const [browser, versions] of Object.entries(stats)) {
- /** @type {Filter<Record<string,string>>} */
- const feature = { missing: {}, partial: {} };
- for (const [version, support] of Object.entries(versions)) {
- const selected = this.test(browser, version);
-
- // check if browser is NOT fully (i.e., don't have 'y' in their stats) supported
- if (!selected) continue;
- if ((/(^|\s)y($|\s)/.test(support))) continue;
- // when it's not partially supported ('a'), it's missing
- const type = (/(^|\s)a($|\s)/.test(support) ? 'partial' : 'missing');
-
- if (!feature[type]) {
- feature[type] = {};
- }
-
- feature[type][selected[1]] = support;
- }
- if (Object.keys(feature.missing).length > 0) {
- result.missing[browser] = feature.missing;
- }
-
- if (Object.keys(feature.partial).length > 0) {
- result.partial[browser] = feature.partial;
- }
- }
- return result;
- }
-
- /**
- * Get data on CSS features not supported by the given autoprefixer-like
- * browser selection.
- * @return {BrowserSupportStats} `features` is an array of:
- * ```
- * {
- * 'feature-name': {
- * title: 'Title of feature'
- * missing: "IE (8), Chrome (31)"
- * missingData: {
- * // map of browser -> version -> (lack of)support code
- * ie: { '8': 'n' },
- * chrome: { '31': 'n' }
- * }
- * partialData: {
- * // map of browser -> version -> (partial)support code
- * ie: { '7': 'a' },
- * ff: { '29': 'a #1' }
- * }
- * caniuseData: {
- * // caniuse-db json data for this feature
- * }
- * },
- * 'feature-name-2': {} // etc.
- * }
- * ```
- *
- * `feature-name` is a caniuse-db slug.
- */
- compileBrowserSupport() {
- /** @type {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} */
- const result = {};
-
- for (const key of Object.keys(FEATURES)) {
- const feature = /** @type {keyof FEATURES} */ (key);
- const packedFeature = caniuse__namespace.features[feature];
- const featureData = caniuse__namespace.feature(packedFeature);
- const lackData = this.filterStats(featureData.stats);
- const missingData = lackData.missing;
- const partialData = lackData.partial;
- // browsers with missing or partial support for this feature
- const missing = BrowserSelection.lackingBrowsers(missingData);
- const partial = BrowserSelection.lackingBrowsers(partialData);
-
- if (missing.length > 0 || partial.length > 0) {
- result[feature] = {
- title: featureData.title,
- caniuseData: featureData,
- ...(missing.length > 0 ? { missingData, missing } : null),
- ...(partial.length > 0 ? { partialData, partial } : null),
- };
- }
- }
-
- return result;
- }
-
- /**
- * @see BrowserSelection.compileBrowserSupport
- * @param {ConstructorParameters<typeof this>} constructorParameters
- * @return {MissingSupportResult} `{browsers, features}`
- */
- static missingSupport(...constructorParameters) {
- const selection = new BrowserSelection(...constructorParameters);
- return {
- browsers: selection.list(),
- features: selection.compileBrowserSupport(),
- };
- }
-}
-
-/**
- * @typedef DetectorCallbackArgument
- * @prop {!import('postcss').ChildNode} usage
- * @prop {keyof FEATURES} feature
- * @prop {(keyof FEATURES & string)[]} ignore
- */
-
-/**
- * @callback DetectorCallback
- * @param {DetectorCallbackArgument} result
- * @return {any}
- */
-
-const PLUGIN_OPTION_COMMENT = 'doiuse-';
-const DISABLE_FEATURE_COMMENT = `${PLUGIN_OPTION_COMMENT}disable`;
-const ENABLE_FEATURE_COMMENT = `${PLUGIN_OPTION_COMMENT}enable`;
-
-/**
- * Strip the contents of url literals so they aren't matched
- * by our naive substring matching.
- * @param {string} input
- * @return {string}
- */
-function stripUrls(input) {
- return input.replaceAll(/url\([^)]*\)/g, 'url()');
-}
-
-/**
- * Detect the use of any of a given list of CSS features.
- * ```
- * var detector = new Detector(featureList)
- * detector.process(css, cb)
- * ```
- *
- * `featureList`: an array of feature slugs (see caniuse-db)
- * `cb`: a callback that gets called for each usage of one of the given features,
- * called with an argument like:
- * ```
- * {
- * usage: {} // postcss node where usage was found
- * feature: {} // caniuse-db feature slug
- * ignore: {} // caniuse-db feature to ignore in current file
- * }
- * ```
- */
-class Detector {
- /**
- * @param {(keyof FEATURES & string)[]} featureList an array of feature slugs (see caniuse-db)
- */
- constructor(featureList) {
- /** @type {Partial<FEATURES>} */
- this.features = {};
- for (const feature of featureList) {
- if (FEATURES[feature]) {
- this.features[feature] = FEATURES[feature];
- }
- }
- /** @type {(keyof FEATURES & string)[]} */
- this.ignore = [];
- }
-
- /**
- * @param {import('postcss').Comment} comment
- * @return {void}
- */
- comment(comment) {
- const text = comment.text.toLowerCase();
-
- if (!text.startsWith(PLUGIN_OPTION_COMMENT)) return;
- const option = text.split(' ', 1)[0];
- const value = text.replace(option, '').trim();
-
- switch (option) {
- case DISABLE_FEATURE_COMMENT: {
- if (value === '') {
- // @ts-expect-error Skip cast
- this.ignore = Object.keys(this.features);
- } else {
- for (const feat of value.split(',')) {
- /** @type {any} */
- const f = feat.trim();
- if (!this.ignore.includes(f)) {
- this.ignore.push(f);
- }
- }
- }
- break;
- }
- case ENABLE_FEATURE_COMMENT: {
- if (value === '') {
- this.ignore = [];
- } else {
- const without = new Set(value.split(',').map((feat) => feat.trim()));
- this.ignore = this.ignore.filter((index) => !without.has(index));
- }
- break;
- }
- }
- }
-
- /**
- * @param {import('postcss').Container} node
- * @param {DetectorCallback} callback
- * @return {void}
- */
- node(node, callback) {
- node.each((child) => {
- if (child.type === 'comment') {
- this.comment(child);
- return;
- }
-
- for (const [feat] of Object.entries(this.features).filter(([, featValue]) => {
- if (!featValue) return false;
- if (typeof featValue === 'function') {
- return featValue(child);
- }
- if (Array.isArray(featValue)) {
- return featValue.some((function_) => function_(child));
- }
- if (child.type !== 'decl') {
- return false;
- }
-
- return Object.entries(featValue).some(([property, value]) => {
- if (property !== '' && property !== child.prop) return false;
- if (value === true) return true;
- if (value === false) return false;
- return performFeatureCheck(value, stripUrls(child.value));
- });
- })) {
- const feature = /** @type {keyof FEATURES} */ (feat);
- callback({ usage: child, feature, ignore: this.ignore });
- }
- if (child.type !== 'decl') {
- this.node(child, callback);
- }
- });
- }
-
- /**
- * @param {import('postcss').Root} node
- * @param {DetectorCallback} callback
- * @return {void}
- */
- process(node, callback) {
- // Reset ignoring rules specified by inline comments per each file
- this.ignore = [];
-
- // Recursively walk nodes in file
- this.node(node, callback);
- }
-}
-
-/** @typedef {import('../data/features.js').FeatureKeys} FeatureKeys */
-
-/**
- * @typedef {Object} OnFeatureUsageArguments
- * @prop {FeatureKeys} feature
- * @prop {import('./BrowserSelection.js').MissingSupportResultStats|undefined} featureData
- * @prop {import('postcss').Node} usage
- * @prop {string} message
- */
-
-/**
- * @callback OnFeatureUsage
- * @param {OnFeatureUsageArguments} result
- * @return {any}
- */
-
-/**
- * @typedef {Object} DoIUseOptions
- * @prop {ConstructorParameters<typeof BrowserSelection>[0]} [browsers]
- * @prop {FeatureKeys[]} [ignore]
- * @prop {OnFeatureUsage} [onFeatureUsage]
- * @prop {string[]} [ignoreFiles]
- */
-
-class DoIUse {
- static default = null;
-
- /**
- * @param {DoIUseOptions} [optionsOrBrowserQuery]
- */
- constructor(optionsOrBrowserQuery) {
- const options = (typeof optionsOrBrowserQuery === 'string')
- ? { browsers: optionsOrBrowserQuery }
- : { ...optionsOrBrowserQuery };
- this.browserQuery = options.browsers;
- this.onFeatureUsage = options.onFeatureUsage;
- this.ignoreOptions = options.ignore;
- this.ignoreFiles = options.ignoreFiles;
- this.info = this.info.bind(this);
- this.postcss = this.postcss.bind(this);
- }
-
- /**
- * @param {Object} [options]
- * @param {ConstructorParameters<typeof BrowserSelection>[1]} [options.from]
- */
- info(options = {}) {
- const { browsers, features } = BrowserSelection.missingSupport(this.browserQuery, options.from);
-
- return {
- browsers,
- features,
- };
- }
-
- /** @type {import('postcss').TransformCallback} */
- postcss(css, result) {
- let from;
- if (css.source && css.source.input) {
- from = css.source.input.file;
- }
- const { features } = BrowserSelection.missingSupport(this.browserQuery, from);
- // @ts-expect-error Needs cast
- const detector = new Detector(Object.keys(features));
-
- return detector.process(css, ({ feature, usage, ignore }) => {
- if (ignore && ignore.includes(feature)) {
- return;
- }
-
- if (this.ignoreOptions && this.ignoreOptions.includes(feature)) {
- return;
- }
-
- if (!usage.source) {
- throw new Error('No source?');
- }
- if (this.ignoreFiles && multimatch__default["default"](usage.source.input.from, this.ignoreFiles).length > 0) {
- return;
- }
-
- const data = features[feature];
- if (!data) {
- throw new Error('No feature data?');
- }
- const messages = [];
- if (data.missing) {
- messages.push(`not supported by: ${data.missing}`);
- }
- if (data.partial) {
- messages.push(`only partially supported by: ${data.partial}`);
- }
-
- let message = `${data.title} ${messages.join(' and ')} (${feature})`;
-
- result.warn(message, { node: usage, plugin: 'doiuse' });
-
- if (this.onFeatureUsage) {
- if (!usage.source) {
- throw new Error('No usage source?');
- }
- const { start, input } = usage.source;
- if (!start) {
- throw new Error('No usage source start?');
- }
-
- const map = css.source && css.source.input.map;
- const mappedStart = map && map.consumer().originalPositionFor(start);
-
- const file = (mappedStart && mappedStart.source) || input.file || input.from;
- const line = (mappedStart && mappedStart.line) || start.line;
- const column = (mappedStart && mappedStart.column) || start.column;
-
- message = `${file}:${line}:${column}: ${message}`;
-
- this.onFeatureUsage({
- feature,
- featureData: features[feature],
- usage,
- message,
- });
- }
- });
- }
-}
-
-/**
- * @param {ConstructorParameters<typeof DoIUse>} options
- * @return {DoIUse}
- */
-function index(...options) {
- return new DoIUse(...options);
-}
-
-module.exports = index;
diff --git a/node_modules/doiuse/exports/index.js b/node_modules/doiuse/exports/index.js
deleted file mode 100644
index dde9ea23..00000000
--- a/node_modules/doiuse/exports/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import DoIUse from '../lib/DoIUse.js';
-
-/**
- * @param {ConstructorParameters<typeof DoIUse>} options
- * @return {DoIUse}
- */
-export default function index(...options) {
- return new DoIUse(...options);
-}
diff --git a/node_modules/doiuse/exports/stream.cjs b/node_modules/doiuse/exports/stream.cjs
deleted file mode 100644
index 982a0d35..00000000
--- a/node_modules/doiuse/exports/stream.cjs
+++ /dev/null
@@ -1,3087 +0,0 @@
-'use strict';
-
-var node_stream = require('node:stream');
-var Tokenize = require('css-tokenize');
-var Duplexify = require('duplexify');
-var postcss = require('postcss');
-var sourcemap = require('source-map');
-var multimatch = require('multimatch');
-var browserslist = require('browserslist');
-var caniuse = require('caniuse-lite');
-
-function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
-
-function _interopNamespace(e) {
- if (e && e.__esModule) return e;
- var n = Object.create(null);
- if (e) {
- Object.keys(e).forEach(function (k) {
- if (k !== 'default') {
- var d = Object.getOwnPropertyDescriptor(e, k);
- Object.defineProperty(n, k, d.get ? d : {
- enumerable: true,
- get: function () { return e[k]; }
- });
- }
- });
- }
- n["default"] = e;
- return Object.freeze(n);
-}
-
-var Tokenize__default = /*#__PURE__*/_interopDefaultLegacy(Tokenize);
-var Duplexify__default = /*#__PURE__*/_interopDefaultLegacy(Duplexify);
-var postcss__default = /*#__PURE__*/_interopDefaultLegacy(postcss);
-var sourcemap__default = /*#__PURE__*/_interopDefaultLegacy(sourcemap);
-var multimatch__default = /*#__PURE__*/_interopDefaultLegacy(multimatch);
-var browserslist__default = /*#__PURE__*/_interopDefaultLegacy(browserslist);
-var caniuse__namespace = /*#__PURE__*/_interopNamespace(caniuse);
-
-/**
- * No description available.
- *
- * See: This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=Alternate+stylesheet
- */
-
-// This feature is only in HTML, so we don't lint it
-
-/**
- * @type {import('../features').Feature}
- */
-var alternateStylesheet = {};
-
-/**
- * Method of defining how a background image is attached to a scrollable element. Values include `scroll` (default), `fixed` and `local`.
- *
- * See: https://caniuse.com/background-attachment
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var backgroundAttachment = {
- 'background-attachment': [
- 'fixed',
- 'local',
- ],
-};
-
-/**
- * Non-standard method of clipping a background image to the foreground text.
- *
- * See: https://caniuse.com/background-clip-text
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var backgroundClipText = {
- 'background-clip': 'text',
- '-webkit-background-clip': 'text',
-};
-
-var backgroundImgOpts = {
- 'background-clip': true,
- 'background-origin': true,
- 'background-size': true,
-};
-
-var backgroundPositionXY = {
- 'background-position-x': true,
- 'background-position-y': true,
-};
-
-/**
- * Allows CSS background images to be repeated without clipping.
- *
- * See: https://caniuse.com/background-repeat-round-space
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var backgroundRepeatRoundSpace = {
- 'background-repeat': ['round', 'space'],
-};
-
-var borderImage = {
- 'border-image': true,
- 'border-image-outset': true,
- 'border-image-repeat': true,
- 'border-image-slice': true,
- 'border-image-source': true,
- 'border-image-width': true,
-
-};
-
-var borderRadius = {
- 'border-radius': true,
- 'border-top-left-radius': true,
- 'border-top-right-radius': true,
- 'border-bottom-right-radius': true,
- 'border-bottom-left-radius': true,
-};
-
-var calc = {
- '': 'calc(',
-};
-
-/** @typedef {RegExp|string|((value:string) => boolean)} FeatureCheck */
-
-/**
- * @param {string} browserKey
- * @param {string[]} [versions]
- * @return {string}
- */
-function formatBrowserName(browserKey, versions) {
- const entry = caniuse.agents[browserKey];
- const browserName = entry ? entry.browser : null;
- if (!versions) {
- return browserName || '';
- }
- return (`${browserName} (${versions.join(',')})`);
-}
-
-/**
- *
- * @param {FeatureCheck|FeatureCheck[]} check
- * @param {?string|undefined} candidate
- */
-function performFeatureCheck(check, candidate) {
- if (check == null || candidate == null) return false;
- if (check instanceof RegExp) {
- return check.test(candidate);
- }
- switch (typeof check) {
- case 'string':
- return candidate.includes(check);
- case 'function':
- return check(candidate);
- case 'boolean':
- return check;
- case 'object':
- if (Array.isArray(check)) {
- return check.some((c) => performFeatureCheck(c, candidate));
- }
- // Fallthrough
- default:
- console.error(check);
- throw new TypeError(`Unexpected feature check: ${check}`);
- }
-}
-
-/**
- * @param {FeatureCheck|FeatureCheck[]} selector
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-function checkSelector(selector) {
- return (rule) => rule.type === 'rule'
- && performFeatureCheck(selector, rule.selector);
-}
-
-/**
- * @param {FeatureCheck|FeatureCheck[]} [name]
- * @param {FeatureCheck|FeatureCheck[]} [parameters]
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-function checkAtRule(name, parameters) {
- return (rule) => rule.type === 'atrule'
- && performFeatureCheck(name, rule.name)
- && (!parameters || performFeatureCheck(parameters, rule.params));
-}
-
-/**
- * @see https://drafts.csswg.org/css-values/#lengths
- * @see https://drafts.csswg.org/css-values/#number-value
- * @param {string[]} units
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-function checkCSSLengthUnits(...units) {
- const regexp = new RegExp(`(\\+-)?[\\d.]*\\.?\\d+(e(\\+-)?\\d+)?(${units.join('|')})`, 'i');
- return (rule) => (
- (rule.type === 'decl') ? performFeatureCheck(regexp, rule.value)
- : ((rule.type === 'atrule') ? performFeatureCheck(regexp, rule.params)
- : false));
-}
-
-/**
- * Unit representing the width of the character "0" in the current font, of particular use in combination with monospace fonts.
- * @see https://caniuse.com/ch-unit
- * @type {import('../features').Feature}
- */
-var chUnit = checkCSSLengthUnits('ch');
-
-var cssAll = {
- 'all': true,
-};
-
-var cssAnimation = {
- 'animation': true,
- 'animation-name': true,
- 'animation-duration': true,
- 'animation-timing-function': true,
- 'animation-iteration-count': true,
- 'animation-direction': true,
- 'animation-play-state': true,
- 'animation-delay': true,
- 'animation-fill-mode': true,
-};
-
-// @keyframes isn't checked for, but if you try to use it,
-// you'll still get a warning anyway because of the 'animation' property
-
-var cssAnyLink = checkSelector([':any-link', ':-webkit-any-link']);
-
-var cssAppearance = {
- 'appearance': true,
- '-webkit-appearance': true,
- '-moz-appearance': true,
-};
-
-var cssAtCounterStyle = checkAtRule('counter-style');
-
-var cssAutofill = checkSelector([':autofill', ':-webkit-autofill']);
-
-var cssBackdropFilter = {
- 'backdrop-filter': true,
-};
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-var cssBackgroundOffsets = (rule) => {
- if (rule.type !== 'decl') return false;
- if (rule.prop !== 'background-position') return false;
- return postcss.list.space(rule.value).length > 2;
-};
-
-var cssBackgroundblendmode = {
- 'background-blend-mode': true,
-};
-
-/**
- * Controls whether the box's margins, borders, padding, and other decorations wrap the broken edges of the box fragments (when the box is split by a break (page/column/region/line).
- *
- * See: https://caniuse.com/css-boxdecorationbreak
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssBoxdecorationbreak = {
- 'box-decoration-break': true,
- '-webkit-box-decoration-break': true,
-};
-
-var cssBoxshadow = {
- 'box-shadow': true,
-};
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-var cssCanvas = (rule) => {
- if (rule.type !== 'decl') return false;
- if (!rule.prop.startsWith('background')) return false;
- return rule.value.startsWith('-webkit-canvas');
-};
-
-/**
- * The `caret-color` property allows the color to be set of the caret (blinking text insertion pointer) in an editable text area.
- *
- * See: https://caniuse.com/css-caret-color
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCaretColor = {
- 'caret-color': true,
-};
-
-/**
- * The `@layer` at-rule allows authors to explicitly layer their styles in the cascade, before specificity and order of appearance are considered.
- *
- * See: https://caniuse.com/css-cascade-layers
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCascadeLayers = checkAtRule('layer');
-
-/**
- * Including an `i` before the `]` in a CSS attribute selector causes the attribute value to be matched in an ASCII-case-insensitive manner. For example, `[b="xyz" i]` would match both `<a b="xyz">` and `<a b="XYZ">`.
- *
- * See: https://caniuse.com/css-case-insensitive
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCaseInsensitive = (rule) => {
- if (rule.type !== 'rule') { return false; }
- if (/\[.*i]/.test(rule.selector)) { return true; }
- return false;
-};
-
-var cssClipPath = {
- 'clip-path': true,
-};
-
-/**
- * The `print-color-adjust` (or `-webkit-print-color-adjust` as prefixed in WebKit/Blink browsers) property is a CSS extension that can be used to force printing of background colors and images.
- *
- * See: https://caniuse.com/css-color-adjust
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssColorAdjust = {
- 'print-color-adjust': true,
- '-webkit-print-color-adjust': true,
-};
-
-/**
- * The CSS `color()` function allows the browser to display colors in any color space, such as the P3 color space which can display colors outside of the default sRGB color space.
- *
- * See: https://caniuse.com/css-color-function
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssColorFunction = {
- '': 'color(',
-};
-
-const REGEX$2 = /(^|[^-])(repeating-)?conic-gradient/;
-
-var cssConicGradients = {
- 'background': REGEX$2,
- 'background-image': REGEX$2,
- 'border-image': REGEX$2,
- 'border-image-source': REGEX$2,
- 'content': REGEX$2,
- 'cursor': REGEX$2,
- 'list-style': REGEX$2,
- 'list-style-image': REGEX$2,
-};
-
-/**
- * Size queries in Container Queries provide a way to query the size of a container, and conditionally apply CSS to the content of that container.
- *
- * See: https://caniuse.com/css-container-queries
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssContainerQueries = checkAtRule('container');
-
-var cssContainerQueriesStyle = checkAtRule('container', 'style(');
-
-var cssContainerQueryUnits = checkCSSLengthUnits(
- 'cqw',
- 'cqh',
- 'cqi',
- 'cqb',
- 'cqmin',
- 'cqmax',
-);
-
-/**
- * The CSS `contain` property lets developers limit the scope of the browser's styles, layout and paint work for faster and more efficient rendering.
- *
- * See: https://caniuse.com/css-containment
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssContainment = {
- 'contain': true,
-};
-
-/**
- * Provides control over when elements are rendered, so rendering can be skipped for elements not yet in the user's viewport.
- *
- * See: https://caniuse.com/css-content-visibility
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssContentVisibility = {
- 'content-visibility': true,
-};
-
-var cssCounters = {
- 'counter-reset': true,
- 'counter-increment': true,
- '': 'counter(',
-};
-
-/**
- * Scales images with an algorithm that preserves edges and contrast, without smoothing colors or introducing blur. This is intended for images such as pixel art. Official values that accomplish this for the `image-rendering` property are `crisp-edges` and `pixelated`.
- *
- * See: https://caniuse.com/css-crisp-edges
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCrispEdges = {
- 'image-rendering': ['crisp-edges', 'pixelated'],
-};
-
-/**
- * Image function to create a "crossfade" between images. This allows one image to transition (fade) into another based on a percentage value.
- *
- * See: https://caniuse.com/css-cross-fade
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssCrossFade = {
- '': [
- 'cross-fade(',
- '-webkit-cross-fade(',
- ],
-};
-
-/**
- * The `:default` pseudo-class matches checkboxes and radio buttons which are checked by default, `<option>`s with the `selected` attribute, and the default submit button (if any) of a form.
- *
- * See: https://caniuse.com/css-default-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDefaultPseudo = checkSelector(':default');
-
-/**
- * An explicit, non-whitespace spelling of the descendant combinator. `A >> B` is equivalent to `A B`.
- *
- * See: https://caniuse.com/css-descendant-gtgt
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDescendantGtgt = checkSelector('>>');
-
-/**
- * Method of overriding the size of viewport in web page using the `@viewport` rule, replacing Apple's own popular `<meta>` viewport implementation. Includes the `extend-to-zoom` width value.
- *
- * See: https://caniuse.com/css-deviceadaptation
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDeviceadaptation = checkAtRule('viewport');
-
-/**
- * Matches elements based on their directionality. `:dir(ltr)` matches elements which are Left-to-Right. `:dir(rtl)` matches elements which are Right-to-Left.
- *
- * See: https://caniuse.com/css-dir-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDirPseudo = checkSelector(':dir(');
-
-/**
- * `display: contents` causes an element's children to appear as if they were direct children of the element's parent, ignoring the element itself. This can be useful when a wrapper element should be ignored when using CSS grid or similar layout techniques.
- *
- * See: https://caniuse.com/css-display-contents
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssDisplayContents = {
- 'display': 'contents',
-};
-
-/**
- * This function renders a live image generated from an arbitrary HTML element
- *
- * See: https://caniuse.com/css-element-function
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssElementFunction = {
- '': 'element(',
-};
-
-var cssEnvFunction = {
- '': 'env(',
-};
-
-/**
- * Exclusions defines how inline content flows around elements. It extends the content wrapping ability of floats to any block-level element.
- *
- * See: https://caniuse.com/css-exclusions
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssExclusions = {
- 'wrap-flow': true,
- '-ms-wrap-flow': true,
-};
-
-var cssFeaturequeries = checkAtRule(['supports']);
-
-/**
- * No description available.
- *
- * See: This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=::file-selector-button+CSS+pseudo-element
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFileSelectorButton = checkSelector(':file-selector-button');
-
-/**
- * This function filters a CSS input image with a set of filter functions (like blur, grayscale or hue)
- *
- * See: https://caniuse.com/css-filter-function
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFilterFunction = {
- '': 'filter(',
-};
-
-var cssFilters = {
- 'filter': true,
-};
-
-/**
- * CSS pseudo-element that allows styling only the first "letter" of text within an element. Useful for implementing initial caps or drop caps styling.
- *
- * See: https://caniuse.com/css-first-letter
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFirstLetter = checkSelector(':first-letter');
-
-/**
- * Allows styling specifically for the first line of text using the `::first-line` pseudo-element. Note that only a limited set of properties can be applied.
- *
- * See: https://caniuse.com/css-first-line
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFirstLine = checkSelector(':first-line');
-
-var cssFixed = {
- 'position': 'fixed',
-};
-
-/**
- * The `:focus-visible` pseudo-class applies while an element matches the `:focus` pseudo-class, and the UA determines via heuristics that the focus should be specially indicated on the element (typically via a “focus ring”).
- *
- * See: https://caniuse.com/css-focus-visible
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFocusVisible = checkSelector(':focus-visible');
-
-/**
- * The `:focus-within` pseudo-class matches elements that either themselves match `:focus` or that have descendants which match `:focus`.
- *
- * See: https://caniuse.com/css-focus-within
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFocusWithin = checkSelector(':focus-within');
-
-var cssFontPalette = [
- (rule) => performFeatureCheck('font-palette', rule.name),
- checkAtRule('font-palette-values'),
-];
-
-/**
- * `@font-face` descriptor `font-display` that allows control over how a downloadable font renders before it is fully loaded.
- *
- * See: https://caniuse.com/css-font-rendering-controls
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssFontRenderingControls = {
- 'font-display': true,
-};
-
-var cssFontStretch = {
- 'font-stretch': true,
-};
-
-var cssGencontent = checkSelector([':before', ':after']);
-
-const REGEX$1 = /(^|[^-])((linear)|(radial))-gradient/;
-
-var cssGradients = {
- 'background': REGEX$1,
- 'background-image': REGEX$1,
- 'border-image': REGEX$1,
- 'border-image-source': REGEX$1,
- 'content': REGEX$1,
- 'cursor': REGEX$1,
- 'list-style': REGEX$1,
- 'list-style-image': REGEX$1,
-};
-
-/** @see https://drafts.csswg.org/css-grid/ */
-
-var cssGrid = {
- 'display': ['grid', 'inline-grid', '-ms-grid'],
- 'grid': true,
- 'grid-area': true,
- 'grid-auto-columns': true,
-
- 'grid-auto-flow': true,
- 'grid-auto-rows': true,
- 'grid-column': true,
- 'grid-column-end': true,
-
- 'grid-column-start': true,
- 'grid-row': true,
- 'grid-row-end': true,
- 'grid-row-start': true,
-
- 'grid-template': true,
- 'grid-template-areas': true,
- 'grid-template-columns': true,
- 'grid-template-rows': true,
-};
-
-const REGEX = /grid/;
-
-var cssGridAnimation = {
- 'transition': REGEX,
- 'transition-property': REGEX,
-};
-
-/**
- * Allows some punctuation characters from start (or the end) of text elements to be placed "outside" of the box in order to preserve the reading flow.
- * @see https://caniuse.com/css-hanging-punctuation
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssHangingPunctuation = {
- 'hanging-punctuation': true,
-};
-
-/**
- * Select elements containing specific content. For example, `a:has(img)` selects all `<a>` elements that contain an `<img>` child.
- * @see https://caniuse.com/css-has
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssHas = checkSelector(':has');
-
-var cssHyphens = {
- 'hyphens': true,
-};
-
-var cssImageOrientation = {
- 'image-orientation': true,
-};
-
-/**
- * Method of letting the browser pick the most appropriate CSS image from a given set.
- * @see https://caniuse.com/css-image-set
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssImageSet = {
- '': 'image-set(',
-};
-
-/**
- * If a temporal or number `<input>` has `max` and/or `min` attributes, then `:in-range` matches when the value is within the specified range and `:out-of-range` matches when the value is outside the specified range. If there are no range constraints, then neither pseudo-class matches.
- * @see https://caniuse.com/css-in-out-of-range
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssInOutOfRange = checkSelector([
- ':in-range',
- ':out-of-range',
-]);
-
-/**
- * The `:indeterminate` pseudo-class matches indeterminate checkboxes, indeterminate `<progress>` bars, and radio buttons with no checked button in their radio button group.
- * @see https://caniuse.com/css-indeterminate-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssIndeterminatePseudo = checkSelector(':indeterminate');
-
-/**
- * Method of creating an enlarged cap, including a drop or raised cap, in a robust way.
- * @see https://caniuse.com/css-initial-letter
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssInitialLetter = {
- 'initial-letter': true,
-};
-
-var cssInitialValue = {
- '': 'initial',
-};
-
-/**
- * The `lch()` and `lab()` color functions are based on the CIE LAB color space, representing colors in a way that closely matches human perception and provides access to a wider spectrum of colors than offered by the usual RGB color space.
- * @see https://caniuse.com/css-lch-lab
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssLchLab = {
- '': [
- 'lch(',
- 'lab(',
- ],
-};
-
-/**
- * Controls spacing between characters of text (i.e. "tracking" in typographical terms). Not to be confused with kerning.
- * @see https://caniuse.com/css-letter-spacing
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssLetterSpacing = {
- 'letter-spacing': true,
-};
-
-/**
- * CSS property that will contain text to a given amount of lines when used in combination with `display: -webkit-box`. It will end with ellipsis when `text-overflow: ellipsis` is included.
- * @see https://caniuse.com/css-line-clamp
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssLineClamp = {
- 'line-clamp': true,
- '-webkit-line-clamp': true,
-};
-
-var cssLogicalProps = {
- 'block-size': true,
- 'inline-size': true,
- 'min-block-size': true,
- 'min-inline-size': true,
- 'max-block-size': true,
- 'max-inline-size': true,
- 'margin-block-start': true,
- 'margin-block-end': true,
- 'margin-inline-start': true,
- 'margin-inline-end': true,
- 'margin-block': true,
- 'margin-inline': true,
- 'inset-block-start': true,
- 'inset-block-end': true,
- 'inset-inline-start': true,
- 'inset-inline-end': true,
- 'inset-block': true,
- 'inset-inline': true,
- 'inset': true,
- 'padding-block-start': true,
- 'padding-block-end': true,
- 'padding-inline-start': true,
- 'padding-inline-end': true,
- 'padding-block': true,
- 'padding-inline': true,
- 'border-block-start-width': true,
- 'border-block-end-width': true,
- 'border-inline-start-width': true,
- 'border-inline-end-width': true,
- 'border-block-width': true,
- 'border-inline-width': true,
- 'border-block-start-style': true,
- 'border-block-end-style': true,
- 'border-inline-start-style': true,
- 'border-inline-end-style': true,
- 'border-block-style': true,
- 'border-inline-style': true,
- 'border-block-start-color': true,
- 'border-block-end-color': true,
- 'border-inline-start-color': true,
- 'border-inline-end-color': true,
- 'border-block-color': true,
- 'border-inline-color': true,
- 'border-block-start': true,
- 'border-block-end': true,
- 'border-inline-start': true,
- 'border-inline-end': true,
- 'border-block': true,
- 'border-inline': true,
- 'border-start-start-radius': true,
- 'border-start-end-radius': true,
- 'border-end-start-radius': true,
- 'border-end-end-radius': true,
- 'text-align': ['start', 'end'],
- 'float': ['inline-start', 'inline-end'],
- 'resize': ['block', 'inline'],
- 'overflow-block': true,
- 'overflow-inline': true,
-};
-
-/**
- * The `::marker` pseudo-element allows list item markers to be styled or have their content value customized.
- * @see https://caniuse.com/css-marker-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssMarkerPseudo = checkSelector(':marker');
-
-var cssMasks = {
- 'clip-path': true,
- 'mask': true,
- 'mask-border': true,
- 'mask-border-mode': true,
- 'mask-border-outset': true,
- 'mask-border-repeat': true,
- 'mask-border-slice': true,
- 'mask-border-source': true,
- 'mask-border-width': true,
- 'mask-clip': true,
- 'mask-composite': true,
- 'mask-image': true,
- 'mask-mode': true,
- 'mask-origin': true,
- 'mask-position': true,
- 'mask-repeat': true,
- 'mask-size': true,
- 'mask-type': true,
- // and webkit versions
- '-webkit-clip-path': true,
- '-webkit-mask': true,
- '-webkit-mask-border': true,
- '-webkit-mask-border-mode': true,
- '-webkit-mask-border-outset': true,
- '-webkit-mask-border-repeat': true,
- '-webkit-mask-border-slice': true,
- '-webkit-mask-border-source': true,
- '-webkit-mask-border-width': true,
- '-webkit-mask-clip': true,
- '-webkit-mask-composite': true,
- '-webkit-mask-image': true,
- '-webkit-mask-mode': true,
- '-webkit-mask-origin': true,
- '-webkit-mask-position': true,
- '-webkit-mask-repeat': true,
- '-webkit-mask-size': true,
- '-webkit-mask-type': true,
-};
-
-var cssMatchesPseudo = checkSelector([
- ':is',
- ':where',
- ':matches',
- ':any',
- ':-webkit-any',
- ':-webkit-is',
- ':-webkit-where',
- ':-webkit-matches',
-]);
-
-var cssMathFunctions = {
- '': ['min(', 'max(', 'clamp('],
-};
-
-/**
- * Allows a media query to be set based on the presence and accuracy of the user's pointing device, and whether they have the ability to hover over elements on the page. This includes the `pointer`, `any-pointer`, `hover`, and `any-hover` media features.
- * @see https://caniuse.com/css-media-interaction
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssMediaInteraction = checkAtRule('media', [
- 'pointer',
- 'any-pointer',
- 'hover',
- 'any-hover',
-]);
-
-var cssMediaRangeSyntax = checkAtRule('media', [' > ', ' < ', ' <= ', ' >= ']);
-
-var cssMediaResolution = checkAtRule('media', ['min-resolution', 'max-resolution', 'resolution', 'device-pixel-ratio']);
-
-/**
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=Media+Queries:+scripting+media+feature
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssMediaScripting = checkAtRule('media', ['scripting']);
-
-var cssMediaqueries = checkAtRule(['media']);
-
-var cssMixblendmode = {
- 'mix-blend-mode': true,
-};
-
-var cssMotionPaths = {
- 'offset-path': true,
-};
-
-/**
- * Using the `@namespace` at-rule, elements of other namespaces (e.g. SVG) can be targeted using the pipe (`|`) selector.
- * @see https://caniuse.com/css-namespaces
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssNamespaces = checkAtRule('namespace');
-
-/**
- * CSS nesting provides the ability to nest one style rule inside another, with the selector of the child rule relative to the selector of the parent rule. Similar behavior previously required a CSS pre-processor.
- * @see https://caniuse.com/css-nesting
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssNesting = (rule) => {
- if (rule.type === 'rule' && rule.parent.type === 'rule') {
- return true;
- }
-
- if (rule.type === 'atrule' && rule.parent.type === 'rule') {
- return true;
- }
-
- return false;
-};
-
-/**
- * Selectors Level 3 only allowed `:not()` pseudo-class to accept a single simple selector, which the element must not match any of. Thus, `:not(a, .b, [c])` or `:not(a.b[c])` did not work. Selectors Level 4 allows `:not()` to accept a list of selectors. Thus, `:not(a):not(.b):not([c])` can instead be written as `:not(a, .b, [c])` and `:not(a.b[c])` works as intended.
- * @see https://caniuse.com/css-not-sel-list
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssNotSelList = checkSelector(
- (selector) => selector.includes(':not(') && !/:not\(.?#?-?[\w[\]-]+\)/.test(selector),
-);
-
-/**
- * The newest versions of `:nth-child()` and `:nth-last-child()` accept an optional `of S` clause which filters the children to only those which match the selector list `S`. For example, `:nth-child(1 of .foo)` selects the first child among the children that have the `foo` class (ignoring any non-`foo` children which precede that child). Similar to `:nth-of-type`, but for arbitrary selectors instead of only type selectors.
- * @see https://caniuse.com/css-nth-child-of
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssNthChildOf = checkSelector(
- (selector) => /:nth-(child|last-child)\(\s*\d+\s*of/.test(selector),
-);
-
-var cssOpacity = {
- 'opacity': true,
-};
-
-/**
- * The `:optional` pseudo-class matches form inputs (`<input>`, `<textarea>`, `<select>`) which are not `:required`.
- * @see https://caniuse.com/css-optional-pseudo
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssOptionalPseudo = checkSelector(':optional');
-
-/**
- * Originally a single property for controlling overflowing content in both horizontal & vertical directions, the `overflow` property is now a shorthand for `overflow-x` & `overflow-y`. The latest version of the specification also introduces the `clip` value that blocks programmatic scrolling.
- * @see https://caniuse.com/css-overflow
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssOverflow = {
- 'overflow': true,
- 'overflow-x': true,
- 'overflow-y': true,
-};
-
-/**
- * Changes in DOM elements above the visible region of a scrolling box can result in the page moving while the user is in the middle of consuming the content. By default, the value of `overflow-anchor` is `auto`, it can mitigate this jarring user experience by keeping track of the position of an anchor node and adjusting the scroll offset accordingly
- * @see https://caniuse.com/css-overflow-anchor
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssOverflowAnchor = {
- 'overflow-anchor': true,
-};
-
-var cssOverflowOverlay = {
- 'overflow': 'overlay',
-};
-
-var cssOverscrollBehavior = {
- 'overscroll-behavior': true,
- 'overscroll-behavior-x': true,
- 'overscroll-behavior-y': true,
-};
-
-/**
- * Properties to control the way elements are broken across (printed) pages.
- * @see https://caniuse.com/css-page-break
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssPageBreak = {
- 'page-break-after': true,
- 'page-break-before': true,
- 'page-break-inside': true,
-};
-
-/**
- * CSS at-rule (`@page`) to define page-specific rules when printing web pages, such as margin per page and page dimensions.
- * @see https://caniuse.com/css-paged-media
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssPagedMedia = checkAtRule('page');
-
-/**
- * Allows programmatic generation of images used by CSS
- * @see https://caniuse.com/css-paint-api
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssPaintApi = { '': 'paint(' };
-
-var cssPlaceholder = [
- checkSelector(':placeholder'),
-];
-
-/**
- * :placeholder-shown CSS pseudo-class
- * Input elements can sometimes show placeholder text as a hint to the user on what to type in. See, for example, the placeholder attribute in HTML5. The :placeholder-shown pseudo-class matches an input element that is showing such placeholder text.
- * @see https://caniuse.com/css-placeholder-shown
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssPlaceholderShown = checkSelector(':placeholder-shown');
-
-var cssPrintColorAdjust = {
- 'print-color-adjust': true,
-};
-
-/**
- * CSS :read-only and :read-write selectors
- * :read-only and :read-write pseudo-classes to match elements which are considered user-alterable
- * @see https://caniuse.com/css-read-only-write
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssReadOnlyWrite = checkSelector([':read-only', ':read-write']);
-
-/**
- * Rebeccapurple color
- * The new color added in CSS Color Module Level 4
- * @see https://caniuse.com/css-rebeccapurple
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssRebeccapurple = {
- '': 'rebeccapurple',
-};
-
-var cssReflections = {
- 'box-reflect': true,
- '-webkit-box-reflect': true,
-};
-
-/**
- * CSS Regions
- * Method of flowing content into multiple elements, allowing magazine-like layouts. While once supported in WebKit-based browsers and Internet Explorer, implementing the feature is no longer being pursued by any browser.
- * @see https://caniuse.com/css-regions
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssRegions = {
- 'flow-into': true,
- 'flow-from': true,
- '-webkit-flow-into': true,
- '-webkit-flow-from': true,
-};
-
-/**
- * CSS Relative colors
- * The CSS Relative Color syntax allows a color to be defined relative to another color using the `from` keyword and optionally `calc()` for any of the color values.
- * @see https://caniuse.com/css-relative-colors
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssRelativeColors = {
- '': /((rgb)|(rgba)|(hsl)|(hsla)|(hwb))\(\s*from/,
-};
-
-var cssRepeatingGradients = {
- '': [
- 'repeating-linear-gradient',
- 'repeating-radial-gradient',
- ],
-};
-
-var cssResize = {
- 'resize': true,
-};
-
-var cssRevertValue = {
- '': 'revert',
-
-};
-
-/**
- * #rrggbbaa hex color notation
- * The CSS Color Module Level 4 defines new 4 & 8 character hex notation for color to include the opacity level.
- * @see https://caniuse.com/css-rrggbbaa
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssRrggbbaa = {
- '': [
- /#[\da-f]{8}/i,
- /#[\da-f]{4}(\W|$)/i,
- ],
-};
-
-/**
- * CSS Scroll-behavior
- * Method of specifying the scrolling behavior for a scrolling box, when scrolling happens due to navigation or CSSOM scrolling APIs.
- * @see https://caniuse.com/css-scroll-behavior
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssScrollBehavior = {
- 'scroll-behavior': true,
-};
-
-/**
- * CSS @scroll-timeline
- * CSS property that allows animations to be driven by a container's scroll position
- * @see https://caniuse.com/css-scroll-timeline
- */
-
-const checkAt = checkAtRule('scroll-timeline');
-
-/**
- * @type {import('../features').Feature}
- */
-var cssScrollTimeline = (node) => {
- // check for @scroll-timeline
- if (checkAt(node)) {
- return true;
- }
-
- // check for animation-timeline
- if (node.type !== 'decl') return false;
- if (node.prop.startsWith('animation-timeline')) {
- return true;
- }
-
- return false;
-};
-
-var cssScrollbar = {
- 'scrollbar-color': true,
- 'scrollbar-width': true,
-};
-
-const ATTRIBUTE_IDENTIFIER$1 = '[^\\~|^$*\\]]*';
-
-// Export for testing
-const REGEXES$1 = {
- 'HAS_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER$1}\\]`),
- 'MATCH_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER$1}=${ATTRIBUTE_IDENTIFIER$1}\\]`),
- 'WORD_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER$1}\\~=${ATTRIBUTE_IDENTIFIER$1}\\]`),
- 'SUBCODE_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER$1}\\|=${ATTRIBUTE_IDENTIFIER$1}\\]`),
- 'BRACKET_PARENS': /(\[[^=\]]*(=("[^"]*")|[^\]]+|)])|(\([^)]*\))/g,
-};
-
-/**
- * @param {RegExp} pattern
- * @return {(str:string) => boolean}
- */
-function matchOutsideOfBrackets(pattern) {
- if (!(pattern instanceof RegExp)) {
- throw new TypeError('matchOutsideOfBrackets expects a RegExp');
- }
- return (string) => pattern.test(string.replaceAll(REGEXES$1.BRACKET_PARENS, ''));
-}
-
-var cssSel2 = checkSelector([
- ':first-child',
- ':link',
- ':visited',
- ':active',
- ':hover',
- ':focus',
- ':lang',
- REGEXES$1.HAS_ATTRIBUTE,
- REGEXES$1.MATCH_ATTRIBUTE,
- REGEXES$1.WORD_ATTRIBUTE,
- REGEXES$1.SUBCODE_ATTRIBUTE,
- matchOutsideOfBrackets(/\*/),
- matchOutsideOfBrackets(/>/),
- matchOutsideOfBrackets(/\+/),
- matchOutsideOfBrackets(/\./),
- matchOutsideOfBrackets(/#/),
-]);
-
-const ATTRIBUTE_IDENTIFIER = '[^\\~|^$*\\]]*';
-
-// Export for testing
-const REGEXES = {
- 'SIBLING_SELECTOR': /^[^[]*~/,
- 'STARTSWITH_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\^=${ATTRIBUTE_IDENTIFIER}\\]`),
- 'ENDSWITH_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\$=${ATTRIBUTE_IDENTIFIER}\\]`),
- 'INSENSITIVE_ATTRIBUTE': new RegExp(`\\[${ATTRIBUTE_IDENTIFIER}\\*=${ATTRIBUTE_IDENTIFIER}\\]`),
-};
-
-var cssSel3 = checkSelector([
- ':root',
- ':nth-child',
- ':nth-last-child',
- 'nth-of-type',
- 'nth-last-of-type',
- ':last-child',
- ':first-of-type',
- ':last-of-type',
- ':only-child',
- ':only-of-type',
- ':empty',
- ':target',
- ':enabled',
- ':disabled',
- ':checked',
- ':not',
- REGEXES.SIBLING_SELECTOR,
- REGEXES.STARTSWITH_ATTRIBUTE,
- REGEXES.ENDSWITH_ATTRIBUTE,
- REGEXES.INSENSITIVE_ATTRIBUTE,
-]);
-
-var cssSelection = checkSelector(':selection');
-
-var cssShapes = {
- 'shape-outside': true,
- 'shape-image-threshold': true,
- 'shape-margin': true,
-};
-
-/**
- * CSS Scroll Snap
- * CSS technique that allows customizable scrolling experiences like pagination of carousels by setting defined snap positions.
- * @see https://caniuse.com/css-snappoints
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssSnappoints = {
- 'scroll-snap-type': true,
- 'scroll-padding': true,
- 'scroll-padding-top': true,
- 'scroll-padding-right': true,
- 'scroll-padding-bottom': true,
- 'scroll-padding-left': true,
- 'scroll-padding-inline': true,
- 'scroll-padding-inline-start': true,
- 'scroll-padding-inline-end': true,
- 'scroll-padding-block': true,
- 'scroll-padding-block-start': true,
- 'scroll-padding-block-end': true,
- 'scroll-snap-align': true,
- 'scroll-margin': true,
- 'scroll-margin-top': true,
- 'scroll-margin-right': true,
- 'scroll-margin-bottom': true,
- 'scroll-margin-left': true,
- 'scroll-margin-inline': true,
- 'scroll-margin-inline-start': true,
- 'scroll-margin-inline-end': true,
- 'scroll-margin-block': true,
- 'scroll-margin-block-start': true,
- 'scroll-margin-block-end': true,
- 'scroll-snap-stop': true,
-};
-
-var cssSticky = {
- 'position': 'sticky',
-};
-
-/**
- * CSS Subgrid
- * Feature of the CSS Grid Layout Module Level 2 that allows a grid-item with its own grid to align in one or both dimensions with its parent grid.
- * @see https://caniuse.com/css-subgrid
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssSubgrid = {
- '': 'subgrid',
-};
-
-/**
- * CSS.supports() API
- * The CSS.supports() static methods returns a Boolean value indicating if the browser supports a given CSS feature, or not.
- * @see https://caniuse.com/css-supports-api
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssSupportsApi = {};
-
-/* this feature appears in JS, so it's not linted by this tool */
-
-var cssTable = {
- 'display': [
- 'table',
- 'table-',
- 'inline-table',
- ],
-};
-
-/**
- * CSS3 text-align-last
- * CSS property to describe how the last line of a block or a line right before a forced line break when `text-align` is `justify`.
- * @see https://caniuse.com/css-text-align-last
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextAlignLast = {
- 'text-align-last': true,
-};
-
-/**
- * CSS text-box-trim & text-box-edge
- * Provides the ability to remove the vertical space appearing above and below text glyphs, allowing more precise positioning and alignment. Previously specified as the `leading-trim` & `text-edge` properties.
- * @see https://caniuse.com/css-text-box-trim
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextBoxTrim = {
- 'text-box-trim': true,
- 'text-box-edge': true,
-};
-
-/**
- * CSS text-indent
- * The `text-indent` property applies indentation to lines of inline content in a block.
- * @see https://caniuse.com/css-text-indent
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextIndent = {
- 'text-indent': true,
-};
-
-/**
- * CSS text-justify
- * CSS property to define how text should be justified when `text-align: justify` is set.
- * @see https://caniuse.com/css-text-justify
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextJustify = {
- 'text-justify': true,
-};
-
-/**
- * CSS text-orientation
- * The CSS `text-orientation` property specifies the orientation of text within a line. Current values only have an effect in vertical typographic modes (defined with the `writing-mode` property)
- * @see https://caniuse.com/css-text-orientation
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextOrientation = {
- 'text-orientation': true,
-};
-
-/**
- * CSS Text 4 text-spacing
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=CSS+Text+4+text-spacing
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssTextSpacing = {
- 'text-spacing': true,
-};
-
-var cssTextshadow = {
- 'text-shadow': true,
-};
-
-var cssTouchAction = {
- 'touch-action': true,
-};
-
-var cssTransitions = {
- 'transition': true,
- 'transition-property': true,
- 'transition-duration': true,
- 'transition-delay': true,
- 'transition-timing-function': true,
-};
-
-/**
- * CSS unicode-bidi property
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=CSS+unicode-bidi+property
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssUnicodeBidi = {
- 'unicode-bidi': true,
-};
-
-var cssUnsetValue = {
- '': 'unset',
-};
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-var cssVariables = (rule) => {
- if (rule.type !== 'decl') return false;
- return (rule.prop.startsWith('--') || rule.value.includes('var('));
-};
-
-/**
- * CSS @when / @else conditional rules
- * Syntax allowing CSS conditions (like media and support queries) to be written more simply, as well as making it possibly to write mutually exclusive rules using `@else` statements.
- * @see https://caniuse.com/css-when-else
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssWhenElse = checkAtRule(['when', 'else']);
-
-/**
- * CSS widows & orphans
- * CSS properties to control when lines break across pages or columns by defining the amount of lines that must be left before or after the break.
- * @see https://caniuse.com/css-widows-orphans
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssWidowsOrphans = {
- 'widows': true,
- 'orphans': true,
-};
-
-/**
- * width: stretch property
- * No description available.
- * @see This feature comes from MDN: https://developer.mozilla.org/en-US/search?q=width:+stretch+property
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssWidthStretch = {
- 'width': 'stretch',
-};
-
-/**
- * CSS writing-mode property
- * Property to define whether lines of text are laid out horizontally or vertically and the direction in which blocks progress.
- * @see https://caniuse.com/css-writing-mode
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssWritingMode = {
- 'writing-mode': true,
-};
-
-/**
- * CSS zoom
- * Non-standard method of scaling content.
- * @see https://caniuse.com/css-zoom
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var cssZoom = {
- 'zoom': true,
-};
-
-/**
- * CSS3 attr() function for all properties
- * While `attr()` is supported for effectively all browsers for the `content` property, CSS Values and Units Level 5 adds the ability to use `attr()` on **any** CSS property, and to use it for non-string values (e.g. numbers, colors).
- * @see https://caniuse.com/css3-attr
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var css3Attr = (rule) => {
- if (rule.type !== 'decl') return false;
- if (rule.prop === 'content') {
- return false;
- }
-
- return rule.toString().includes('attr(');
-};
-
-var css3Boxsizing = {
- 'box-sizing': true,
-};
-
-var css3Colors = {
- '': [
- 'rgba',
- 'hsl',
- 'hsla',
- ],
-};
-
-var css3Cursors = {
- 'cursor': [
- 'none',
- 'context-menu',
- 'cell',
- 'vertical-text',
- 'alias',
- 'copy',
- 'no-drop',
- 'not-allowed',
- 'nesw-resize',
- 'nwse-resize',
- 'col-resize',
- 'row-resize',
- 'all-scroll',
- ],
-};
-
-var css3CursorsGrab = {
- 'cursor': ['grab', 'grabbing'],
-};
-
-var css3CursorsNewer = {
- 'cursor': ['zoom-in', 'zoom-out'],
-};
-
-var css3Tabsize = {
- 'tab-size': true,
-};
-
-/**
- * CSS currentColor value
- * A CSS value that will apply the existing `color` value to other properties like `background-color`, etc.
- * @see https://caniuse.com/currentcolor
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var currentcolor = {
- '': 'currentColor',
-};
-
-/**
- * Window.devicePixelRatio
- * Read-only property that returns the ratio of the (vertical) size of one physical pixel on the current display device to the size of one CSS pixel.
- * @see https://caniuse.com/devicepixelratio
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var devicepixelratio = {};
-
-/* this feature is found in JS and is not linted by this tool */
-
-/**
- * ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family
- * Allows more control when choosing system interface fonts
- * @see https://caniuse.com/extended-system-fonts
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var extendedSystemFonts = {
- 'font-family': ['ui-serif', 'ui-sans-serif', 'ui-monospace', 'ui-rounded'],
-};
-
-var flexbox = {
- 'display': [
- 'flex',
- 'inline-flex',
- ],
- 'flex': true,
- 'flex-grow': true,
- 'flex-shrink': true,
- 'flex-basis': true,
- 'flex-direction': true,
- 'flex-wrap': true,
- 'flex-flow': true,
-};
-
-/**
- * gap property for Flexbox
- * `gap` for flexbox containers to create gaps/gutters between flex items
- * @see https://caniuse.com/flexbox-gap
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var flexboxGap = (rule) => {
- if (/display:\s(inline-)?flex/.test(rule.toString())
- && rule.toString().includes('gap:')
- ) {
- return true;
- }
-
- return false;
-};
-
-/**
- * display: flow-root
- * The element generates a block container box, and lays out its contents using flow layout. It always establishes a new block formatting context for its contents. It provides a better solution to the most use cases of the "clearfix" hack.
- * @see https://caniuse.com/flow-root
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var flowRoot = {
- 'display': 'flow-root',
-};
-
-/**
- * system-ui value for font-family
- * Value for `font-family` that represents the default user interface font.
- * @see https://caniuse.com/font-family-system-ui
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontFamilySystemUi = {
- 'font-family': 'system-ui',
-};
-
-var fontFeature = {
- 'font-feature-settings': true,
- 'font-variant-ligatures': true,
- 'font-language-override': true,
- 'font-kerning': true,
-};
-
-/**
- * CSS3 font-kerning
- * Controls the usage of the kerning information (spacing between letters) stored in the font. Note that this only affects OpenType fonts with kerning information, it has no effect on other fonts.
- * @see https://caniuse.com/font-kerning
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontKerning = {
- 'font-kerning': true,
-};
-
-/**
- * CSS Font Loading
- * This CSS module defines a scripting interface to font faces in CSS, allowing font faces to be easily created and loaded from script. It also provides methods to track the loading status of an individual font, or of all the fonts on an entire page.
- * @see https://caniuse.com/font-loading
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontLoading = {};
-
-/* this feature appears in JS and as such is not linted */
-
-var fontSizeAdjust = {
- 'font-size-adjust': true,
-};
-
-/**
- * CSS font-smooth
- * Controls the application of anti-aliasing when fonts are rendered.
- * @see https://caniuse.com/font-smooth
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontSmooth = {
- 'font-smooth': true,
-};
-
-var fontUnicodeRange = {
- 'unicode-range': true,
-};
-
-/**
- * CSS font-variant-alternates
- * Controls the usage of alternate glyphs associated to alternative names defined in @font-feature-values for certain types of OpenType fonts.
- * @see https://caniuse.com/font-variant-alternates
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontVariantAlternates = {
- 'font-variant-alternates': true,
-};
-
-/**
- * CSS font-variant-numeric
- * CSS property that provides different ways of displaying numbers, fractions, and ordinal markers.
- * @see https://caniuse.com/font-variant-numeric
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var fontVariantNumeric = {
- 'font-variant-numeric': true,
-};
-
-var fontface = [
- checkAtRule('font-face'),
-];
-
-var fullscreen = checkSelector(':fullscreen');
-
-/**
- * getComputedStyle
- * API to get the current computed CSS styles applied to an element. This may be the current value applied by an animation or as set by a stylesheet.
- * @see https://caniuse.com/getcomputedstyle
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var getcomputedstyle = {};
-
-/* this is a js api, so we don't lint it */
-
-var inlineBlock = {
- 'display': 'inline-block',
-};
-
-const VALUES = ['max-content', 'min-content', 'fit-content', 'fill-available', 'stretch', 'fill'];
-
-var intrinsicWidth = {
- 'width': VALUES,
- 'min-width': VALUES,
- 'max-width': VALUES,
- 'height': VALUES,
- 'min-height': VALUES,
- 'max-height': VALUES,
-};
-
-/**
- * CSS justify-content: space-evenly
- * The "space-evenly" value for the `justify-content` property distributes the space between items evenly. It is similar to space-around but provides equal instead of half-sized space on the edges. Can be used in both CSS flexbox & grid.
- * @see https://caniuse.com/justify-content-space-evenly
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var justifyContentSpaceEvenly = {
- 'justify-content': 'space-evenly',
-};
-
-var kerningPairsLigatures = {
- 'text-rendering': 'optimizeLegibility',
-};
-
-var mdnCssUnicodeBidiIsolate = {
- 'unicode-bidi': 'isolate',
-};
-
-var mdnCssUnicodeBidiIsolateOverride = {
- 'unicode-bidi': 'isolate-override',
-};
-
-var mdnCssUnicodeBidiPlaintext = {
- 'unicode-bidi': 'plaintext',
-};
-
-var mdnTextDecorationColor = {
- 'text-decoration-color': true,
-};
-
-var mdnTextDecorationLine = {
- 'text-decoration-line': true,
-};
-
-var mdnTextDecorationShorthand = {
- 'text-decoration': true,
-};
-
-var mdnTextDecorationStyle = {
- 'text-decoration-style': true,
-};
-
-var minmaxwh = {
- 'min-width': true,
- 'max-width': true,
- 'min-height': true,
- 'max-height': true,
-};
-
-/**
- * @param {import('postcss').ChildNode} rule
- * @return {boolean}
- */
-var multibackgrounds = (rule) => {
- if (rule.type !== 'decl') return false;
- if (!/^background-?/.test(rule.prop)) return false;
- return postcss.list.comma(rule.value).length > 1;
-};
-
-var multicolumn = {
- 'columns': true,
- 'column-width': true,
- 'column-gap': true,
- 'column-rule': true,
- 'column-rule-color': true,
- 'column-rule-width': true,
- 'column-count': true,
- 'column-rule-style': true,
- 'column-span': true,
- 'column-fill': true,
- 'break-before': true,
- 'break-after': true,
- 'break-inside': true,
-};
-
-var objectFit = {
- 'object-fit': true,
- 'object-position': true,
-};
-
-var outline = {
- 'outline': true,
- 'outline-style': true,
- 'outline-width': true,
- 'outline-color': true,
-};
-
-var pointer = {
- 'touch-action': true,
-};
-
-var pointerEvents = {
- 'pointer-events': true,
-};
-
-/**
- * prefers-color-scheme media query
- * Media query to detect if the user has set their system to use a light or dark color theme.
- * @see https://caniuse.com/prefers-color-scheme
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var prefersColorScheme = checkAtRule('media', 'prefers-color-scheme');
-
-/**
- * TODO: initially implement feature
- * prefers-reduced-motion media query
- * CSS media query based on a user preference for preferring reduced motion (animation, etc).
- * @see https://caniuse.com/prefers-reduced-motion
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var prefersReducedMotion = checkAtRule('media', 'prefers-reduced-motion');
-
-var rem = checkCSSLengthUnits('rem');
-
-/**
- * display: run-in
- * If the run-in box contains a block box, same as block. If a block box follows the run-in box, the run-in box becomes the first inline box of the block box. If an inline box follows, the run-in box becomes a block box.
- * @see https://caniuse.com/run-in
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var runIn = {
- 'display': 'run-in',
-};
-
-/**
- * Scoped CSS
- * Allows CSS rules to be scoped to part of the document, based on the position of the style element. The attribute has been [removed from the current specification](https://github.com/whatwg/html/issues/552).
- * @see https://caniuse.com/style-scoped
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var styleScoped = {};
-
-/* this feature appears in HTML, so we don't lint it */
-
-/**
- * SVG in CSS backgrounds
- * Method of using SVG images as CSS backgrounds
- * @see https://caniuse.com/svg-css
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var svgCss = (rule) => {
- if (rule.type !== 'decl') return false;
- if (/url\([\S\s]*svg/g.test(
- rule.toString(),
- )) {
- return true;
- }
-
- return false;
-};
-
-var textDecoration = {
- 'text-decoration-style': true,
- 'text-decoration-line': true,
- 'text-decoration-color': true,
- 'text-decoration': /\w \w/,
- 'text-decoration-thickness': true,
- 'text-decoration-skip': true,
- 'text-decoration-skip-ink': true,
-};
-
-/**
- * text-emphasis styling
- * Method of using small symbols next to each glyph to emphasize a run of text, commonly used in East Asian languages. The `text-emphasis` shorthand, and its `text-emphasis-style` and `text-emphasis-color` longhands, can be used to apply marks to the text. The `text-emphasis-position` property, which inherits separately, allows setting the emphasis marks' position with respect to the text.
- * @see https://caniuse.com/text-emphasis
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var textEmphasis = {
- 'text-emphasis': true,
- 'text-emphasis-style': true,
- 'text-emphasis-color': true,
- 'text-emphasis-position': true,
-};
-
-var textOverflow = {
- 'text-overflow': true,
-};
-
-var textSizeAdjust = {
- 'text-size-adjust': true,
-};
-
-/**
- * CSS text-stroke and text-fill
- * Method of declaring the outline (stroke) width and color for text.
- * @see https://caniuse.com/text-stroke
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var textStroke = {
- 'text-stroke-color': true,
- 'text-stroke-width': true,
- 'text-stroke': true,
- 'text-fill-color': true,
-};
-
-var transforms2d = {
- 'transform': true,
- 'transform-origin': true,
-};
-
-var transforms3d = {
- 'perspective': true,
- 'perspective-origin': true,
- 'transform-style': true,
- 'backface-visibility': true,
- 'transform': '3d',
-};
-
-/**
- * TTF/OTF - TrueType and OpenType font support
- * Support for the TrueType (.ttf) and OpenType (.otf) outline font formats in @font-face.
- * @see https://caniuse.com/ttf
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var ttf = (rule) => {
- const ruleText = rule.toString();
-
- if (ruleText.includes('@font-face') && (
- (ruleText.includes('.ttf') || ruleText.includes('.otf'))
- )) {
- return true;
- }
-
- return false;
-};
-
-var userSelectNone = {
- 'user-select': true,
-};
-
-/**
- * Variable fonts
- * OpenType font settings that allows a single font file to behave like multiple fonts: it can contain all the allowed variations in width, weight, slant, optical size, or any other exposed axes of variation as defined by the font designer. Variations can be applied via the `font-variation-settings` property.
- * @see https://caniuse.com/variable-fonts
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var variableFonts = {
- 'font-variation-settings': true,
-};
-
-/**
- * Small, Large, and Dynamic viewport units
- * Viewport units similar to `vw` and `vh` that are based on shown or hidden
- * browser UI states to address shortcomings of the original units. Currently
- * defined as the
- * `sv*` units (`svb`, `svh`, `svi`, `svmax`, `svmin`, `svw`),
- * `lv*` units (`lvb`, `lvh`, `lvi`, `lvmax`, `lvmin`, `lvw`),
- * `dv*` units (`dvb`, `dvh`, `dvi`, `dvmax`, `dvmin`, `dvw`)
- * and the logical `vi`/`vb` units.
- * @see https://caniuse.com/viewport-unit-variants
- * @type {import('../features').Feature}
- */
-var viewportUnitVariants = checkCSSLengthUnits(
- /* sv* units */
- 'svb',
- 'svh',
- 'svi',
- 'svmax',
- 'svmin',
- 'svw',
-
- /* lv* units */
- 'lvb',
- 'lvh',
- 'lvi',
- 'lvmax',
- 'lvmin',
- 'lvw',
-
- /* dv* units */
- 'dvb',
- 'dvh',
- 'dvi',
- 'dvmax',
- 'dvmin',
- 'dvw',
-
- /* vi/vb units */
- 'vi',
- 'vb',
-);
-
-var viewportUnits = {
- '': [
- 'vw',
- 'vh',
- 'vmin',
- 'vmax',
- ],
-};
-
-/**
- * CSS -webkit-user-drag property
- * The non-standard `-webkit-user-drag` CSS property can be used to either make an element draggable or explicitly non-draggable (like links and images). See the standardized [draggable attribute/property](/mdn-api_htmlelement_draggable) for the recommended alternative method of accomplishing the same functionality.
- * @see https://caniuse.com/webkit-user-drag
- */
-
-/**
- * @type {import('../features').Feature}
- */
-var webkitUserDrag = {
- 'webkit-user-drag': true,
-};
-
-var willChange = {
- 'will-change': true,
-};
-
-var wordBreak = {
- 'word-break': true,
-};
-
-var wordwrap = {
- 'overflow-wrap': true,
- 'word-wrap': true,
-};
-
-/* THIS FILE IS AUTOGENERATED */
-
-/** @typedef {RegExp|string|((value:string) => boolean)} FeatureCheck */
-
-/** @typedef {((rule:import('postcss').ChildNode) => boolean)} RuleCheck */
-
-/** @typedef {Record<string, FeatureCheck|FeatureCheck[]|boolean> | RuleCheck | RuleCheck[]} Feature */
-
-/** @enum {Feature} */
-const FEATURES = {
- 'alternate-stylesheet': alternateStylesheet,
- 'background-attachment': backgroundAttachment,
- 'background-clip-text': backgroundClipText,
- 'background-img-opts': backgroundImgOpts,
- 'background-position-x-y': backgroundPositionXY,
- 'background-repeat-round-space': backgroundRepeatRoundSpace,
- 'border-image': borderImage,
- 'border-radius': borderRadius,
- 'calc': calc,
- 'ch-unit': chUnit,
- 'css-all': cssAll,
- 'css-animation': cssAnimation,
- 'css-any-link': cssAnyLink,
- 'css-appearance': cssAppearance,
- 'css-at-counter-style': cssAtCounterStyle,
- 'css-autofill': cssAutofill,
- 'css-backdrop-filter': cssBackdropFilter,
- 'css-background-offsets': cssBackgroundOffsets,
- 'css-backgroundblendmode': cssBackgroundblendmode,
- 'css-boxdecorationbreak': cssBoxdecorationbreak,
- 'css-boxshadow': cssBoxshadow,
- 'css-canvas': cssCanvas,
- 'css-caret-color': cssCaretColor,
- 'css-cascade-layers': cssCascadeLayers,
- 'css-case-insensitive': cssCaseInsensitive,
- 'css-clip-path': cssClipPath,
- 'css-color-adjust': cssColorAdjust,
- 'css-color-function': cssColorFunction,
- 'css-conic-gradients': cssConicGradients,
- 'css-container-queries': cssContainerQueries,
- 'css-container-queries-style': cssContainerQueriesStyle,
- 'css-container-query-units': cssContainerQueryUnits,
- 'css-containment': cssContainment,
- 'css-content-visibility': cssContentVisibility,
- 'css-counters': cssCounters,
- 'css-crisp-edges': cssCrispEdges,
- 'css-cross-fade': cssCrossFade,
- 'css-default-pseudo': cssDefaultPseudo,
- 'css-descendant-gtgt': cssDescendantGtgt,
- 'css-deviceadaptation': cssDeviceadaptation,
- 'css-dir-pseudo': cssDirPseudo,
- 'css-display-contents': cssDisplayContents,
- 'css-element-function': cssElementFunction,
- 'css-env-function': cssEnvFunction,
- 'css-exclusions': cssExclusions,
- 'css-featurequeries': cssFeaturequeries,
- 'css-file-selector-button': cssFileSelectorButton,
- 'css-filter-function': cssFilterFunction,
- 'css-filters': cssFilters,
- 'css-first-letter': cssFirstLetter,
- 'css-first-line': cssFirstLine,
- 'css-fixed': cssFixed,
- 'css-focus-visible': cssFocusVisible,
- 'css-focus-within': cssFocusWithin,
- 'css-font-palette': cssFontPalette,
- 'css-font-rendering-controls': cssFontRenderingControls,
- 'css-font-stretch': cssFontStretch,
- 'css-gencontent': cssGencontent,
- 'css-gradients': cssGradients,
- 'css-grid': cssGrid,
- 'css-grid-animation': cssGridAnimation,
- 'css-hanging-punctuation': cssHangingPunctuation,
- 'css-has': cssHas,
- 'css-hyphens': cssHyphens,
- 'css-image-orientation': cssImageOrientation,
- 'css-image-set': cssImageSet,
- 'css-in-out-of-range': cssInOutOfRange,
- 'css-indeterminate-pseudo': cssIndeterminatePseudo,
- 'css-initial-letter': cssInitialLetter,
- 'css-initial-value': cssInitialValue,
- 'css-lch-lab': cssLchLab,
- 'css-letter-spacing': cssLetterSpacing,
- 'css-line-clamp': cssLineClamp,
- 'css-logical-props': cssLogicalProps,
- 'css-marker-pseudo': cssMarkerPseudo,
- 'css-masks': cssMasks,
- 'css-matches-pseudo': cssMatchesPseudo,
- 'css-math-functions': cssMathFunctions,
- 'css-media-interaction': cssMediaInteraction,
- 'css-media-range-syntax': cssMediaRangeSyntax,
- 'css-media-resolution': cssMediaResolution,
- 'css-media-scripting': cssMediaScripting,
- 'css-mediaqueries': cssMediaqueries,
- 'css-mixblendmode': cssMixblendmode,
- 'css-motion-paths': cssMotionPaths,
- 'css-namespaces': cssNamespaces,
- 'css-nesting': cssNesting,
- 'css-not-sel-list': cssNotSelList,
- 'css-nth-child-of': cssNthChildOf,
- 'css-opacity': cssOpacity,
- 'css-optional-pseudo': cssOptionalPseudo,
- 'css-overflow': cssOverflow,
- 'css-overflow-anchor': cssOverflowAnchor,
- 'css-overflow-overlay': cssOverflowOverlay,
- 'css-overscroll-behavior': cssOverscrollBehavior,
- 'css-page-break': cssPageBreak,
- 'css-paged-media': cssPagedMedia,
- 'css-paint-api': cssPaintApi,
- 'css-placeholder': cssPlaceholder,
- 'css-placeholder-shown': cssPlaceholderShown,
- 'css-print-color-adjust': cssPrintColorAdjust,
- 'css-read-only-write': cssReadOnlyWrite,
- 'css-rebeccapurple': cssRebeccapurple,
- 'css-reflections': cssReflections,
- 'css-regions': cssRegions,
- 'css-relative-colors': cssRelativeColors,
- 'css-repeating-gradients': cssRepeatingGradients,
- 'css-resize': cssResize,
- 'css-revert-value': cssRevertValue,
- 'css-rrggbbaa': cssRrggbbaa,
- 'css-scroll-behavior': cssScrollBehavior,
- 'css-scroll-timeline': cssScrollTimeline,
- 'css-scrollbar': cssScrollbar,
- 'css-sel2': cssSel2,
- 'css-sel3': cssSel3,
- 'css-selection': cssSelection,
- 'css-shapes': cssShapes,
- 'css-snappoints': cssSnappoints,
- 'css-sticky': cssSticky,
- 'css-subgrid': cssSubgrid,
- 'css-supports-api': cssSupportsApi,
- 'css-table': cssTable,
- 'css-text-align-last': cssTextAlignLast,
- 'css-text-box-trim': cssTextBoxTrim,
- 'css-text-indent': cssTextIndent,
- 'css-text-justify': cssTextJustify,
- 'css-text-orientation': cssTextOrientation,
- 'css-text-spacing': cssTextSpacing,
- 'css-textshadow': cssTextshadow,
- 'css-touch-action': cssTouchAction,
- 'css-transitions': cssTransitions,
- 'css-unicode-bidi': cssUnicodeBidi,
- 'css-unset-value': cssUnsetValue,
- 'css-variables': cssVariables,
- 'css-when-else': cssWhenElse,
- 'css-widows-orphans': cssWidowsOrphans,
- 'css-width-stretch': cssWidthStretch,
- 'css-writing-mode': cssWritingMode,
- 'css-zoom': cssZoom,
- 'css3-attr': css3Attr,
- 'css3-boxsizing': css3Boxsizing,
- 'css3-colors': css3Colors,
- 'css3-cursors': css3Cursors,
- 'css3-cursors-grab': css3CursorsGrab,
- 'css3-cursors-newer': css3CursorsNewer,
- 'css3-tabsize': css3Tabsize,
- 'currentcolor': currentcolor,
- 'devicepixelratio': devicepixelratio,
- 'extended-system-fonts': extendedSystemFonts,
- 'flexbox': flexbox,
- 'flexbox-gap': flexboxGap,
- 'flow-root': flowRoot,
- 'font-family-system-ui': fontFamilySystemUi,
- 'font-feature': fontFeature,
- 'font-kerning': fontKerning,
- 'font-loading': fontLoading,
- 'font-size-adjust': fontSizeAdjust,
- 'font-smooth': fontSmooth,
- 'font-unicode-range': fontUnicodeRange,
- 'font-variant-alternates': fontVariantAlternates,
- 'font-variant-numeric': fontVariantNumeric,
- 'fontface': fontface,
- 'fullscreen': fullscreen,
- 'getcomputedstyle': getcomputedstyle,
- 'inline-block': inlineBlock,
- 'intrinsic-width': intrinsicWidth,
- 'justify-content-space-evenly': justifyContentSpaceEvenly,
- 'kerning-pairs-ligatures': kerningPairsLigatures,
- 'mdn-css-unicode-bidi-isolate': mdnCssUnicodeBidiIsolate,
- 'mdn-css-unicode-bidi-isolate-override': mdnCssUnicodeBidiIsolateOverride,
- 'mdn-css-unicode-bidi-plaintext': mdnCssUnicodeBidiPlaintext,
- 'mdn-text-decoration-color': mdnTextDecorationColor,
- 'mdn-text-decoration-line': mdnTextDecorationLine,
- 'mdn-text-decoration-shorthand': mdnTextDecorationShorthand,
- 'mdn-text-decoration-style': mdnTextDecorationStyle,
- 'minmaxwh': minmaxwh,
- 'multibackgrounds': multibackgrounds,
- 'multicolumn': multicolumn,
- 'object-fit': objectFit,
- 'outline': outline,
- 'pointer': pointer,
- 'pointer-events': pointerEvents,
- 'prefers-color-scheme': prefersColorScheme,
- 'prefers-reduced-motion': prefersReducedMotion,
- 'rem': rem,
- 'run-in': runIn,
- 'style-scoped': styleScoped,
- 'svg-css': svgCss,
- 'text-decoration': textDecoration,
- 'text-emphasis': textEmphasis,
- 'text-overflow': textOverflow,
- 'text-size-adjust': textSizeAdjust,
- 'text-stroke': textStroke,
- 'transforms2d': transforms2d,
- 'transforms3d': transforms3d,
- 'ttf': ttf,
- 'user-select-none': userSelectNone,
- 'variable-fonts': variableFonts,
- 'viewport-unit-variants': viewportUnitVariants,
- 'viewport-units': viewportUnits,
- 'webkit-user-drag': webkitUserDrag,
- 'will-change': willChange,
- 'word-break': wordBreak,
- 'wordwrap': wordwrap,
-};
-
-/**
- * @template T
- * @typedef {{missing: T, partial: T}} Filter
- */
-
-/**
- * @typedef {Object} MissingSupportResultStats
- * @prop {string} title
- * @prop {caniuse.Feature} caniuseData
- * @prop {string} [missing]
- * @prop {Record<string, Record<string, string>>} [missingData]
- * @prop {string} [partial]
- * @prop {Record<string, Record<string, string>>} [partialData]
- */
-
-/**
- * @typedef {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} BrowserSupportStats
- */
-
-/**
- * @typedef {Object} MissingSupportResult
- * @prop {string[][]} browsers
- * @prop {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} features
- */
-
-class BrowserSelection {
- #list;
-
- /**
- * @param {string | string[]} [query]
- * @param {string | false} [from]
- */
- constructor(query, from) {
- this.browsersRequest = query;
- const options = from ? { path: from } : {};
- this.#list = browserslist__default["default"](this.browsersRequest, options).map((browser) => browser.split(' '));
- }
-
- /**
- * @param {string} browser
- * @param {string} version
- * @return {string[]|undefined}
- */
- test(browser, version) {
- const versions = version.split('-');
-
- if (versions.length === 1) {
- versions.push(versions[0]);
- }
-
- return this.#list.find(([b, v]) => b === browser && v >= versions[0] && v <= versions[1]);
- }
-
- list() {
- return [...this.#list];
- }
-
- /**
- * @param {Record<string, Record<string, string>>} browserStats
- * @return {string}
- */
- static lackingBrowsers(browserStats) {
- const result = [];
- for (const browser of Object.keys(browserStats)) {
- result.push(formatBrowserName(browser, Object.keys(browserStats[browser])));
- }
- return result.join(', ');
- }
-
- /**
- * @param {import('caniuse-lite').StatsByAgentID} stats
- * @return {Filter<Record<string,Record<string, string>>>}
- */
- filterStats(stats) {
- /** @type {Filter<Record<string,Record<string, string>>>} */
- const result = { missing: {}, partial: {} };
- for (const [browser, versions] of Object.entries(stats)) {
- /** @type {Filter<Record<string,string>>} */
- const feature = { missing: {}, partial: {} };
- for (const [version, support] of Object.entries(versions)) {
- const selected = this.test(browser, version);
-
- // check if browser is NOT fully (i.e., don't have 'y' in their stats) supported
- if (!selected) continue;
- if ((/(^|\s)y($|\s)/.test(support))) continue;
- // when it's not partially supported ('a'), it's missing
- const type = (/(^|\s)a($|\s)/.test(support) ? 'partial' : 'missing');
-
- if (!feature[type]) {
- feature[type] = {};
- }
-
- feature[type][selected[1]] = support;
- }
- if (Object.keys(feature.missing).length > 0) {
- result.missing[browser] = feature.missing;
- }
-
- if (Object.keys(feature.partial).length > 0) {
- result.partial[browser] = feature.partial;
- }
- }
- return result;
- }
-
- /**
- * Get data on CSS features not supported by the given autoprefixer-like
- * browser selection.
- * @return {BrowserSupportStats} `features` is an array of:
- * ```
- * {
- * 'feature-name': {
- * title: 'Title of feature'
- * missing: "IE (8), Chrome (31)"
- * missingData: {
- * // map of browser -> version -> (lack of)support code
- * ie: { '8': 'n' },
- * chrome: { '31': 'n' }
- * }
- * partialData: {
- * // map of browser -> version -> (partial)support code
- * ie: { '7': 'a' },
- * ff: { '29': 'a #1' }
- * }
- * caniuseData: {
- * // caniuse-db json data for this feature
- * }
- * },
- * 'feature-name-2': {} // etc.
- * }
- * ```
- *
- * `feature-name` is a caniuse-db slug.
- */
- compileBrowserSupport() {
- /** @type {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} */
- const result = {};
-
- for (const key of Object.keys(FEATURES)) {
- const feature = /** @type {keyof FEATURES} */ (key);
- const packedFeature = caniuse__namespace.features[feature];
- const featureData = caniuse__namespace.feature(packedFeature);
- const lackData = this.filterStats(featureData.stats);
- const missingData = lackData.missing;
- const partialData = lackData.partial;
- // browsers with missing or partial support for this feature
- const missing = BrowserSelection.lackingBrowsers(missingData);
- const partial = BrowserSelection.lackingBrowsers(partialData);
-
- if (missing.length > 0 || partial.length > 0) {
- result[feature] = {
- title: featureData.title,
- caniuseData: featureData,
- ...(missing.length > 0 ? { missingData, missing } : null),
- ...(partial.length > 0 ? { partialData, partial } : null),
- };
- }
- }
-
- return result;
- }
-
- /**
- * @see BrowserSelection.compileBrowserSupport
- * @param {ConstructorParameters<typeof this>} constructorParameters
- * @return {MissingSupportResult} `{browsers, features}`
- */
- static missingSupport(...constructorParameters) {
- const selection = new BrowserSelection(...constructorParameters);
- return {
- browsers: selection.list(),
- features: selection.compileBrowserSupport(),
- };
- }
-}
-
-/**
- * @typedef DetectorCallbackArgument
- * @prop {!import('postcss').ChildNode} usage
- * @prop {keyof FEATURES} feature
- * @prop {(keyof FEATURES & string)[]} ignore
- */
-
-/**
- * @callback DetectorCallback
- * @param {DetectorCallbackArgument} result
- * @return {any}
- */
-
-const PLUGIN_OPTION_COMMENT = 'doiuse-';
-const DISABLE_FEATURE_COMMENT = `${PLUGIN_OPTION_COMMENT}disable`;
-const ENABLE_FEATURE_COMMENT = `${PLUGIN_OPTION_COMMENT}enable`;
-
-/**
- * Strip the contents of url literals so they aren't matched
- * by our naive substring matching.
- * @param {string} input
- * @return {string}
- */
-function stripUrls(input) {
- return input.replaceAll(/url\([^)]*\)/g, 'url()');
-}
-
-/**
- * Detect the use of any of a given list of CSS features.
- * ```
- * var detector = new Detector(featureList)
- * detector.process(css, cb)
- * ```
- *
- * `featureList`: an array of feature slugs (see caniuse-db)
- * `cb`: a callback that gets called for each usage of one of the given features,
- * called with an argument like:
- * ```
- * {
- * usage: {} // postcss node where usage was found
- * feature: {} // caniuse-db feature slug
- * ignore: {} // caniuse-db feature to ignore in current file
- * }
- * ```
- */
-class Detector {
- /**
- * @param {(keyof FEATURES & string)[]} featureList an array of feature slugs (see caniuse-db)
- */
- constructor(featureList) {
- /** @type {Partial<FEATURES>} */
- this.features = {};
- for (const feature of featureList) {
- if (FEATURES[feature]) {
- this.features[feature] = FEATURES[feature];
- }
- }
- /** @type {(keyof FEATURES & string)[]} */
- this.ignore = [];
- }
-
- /**
- * @param {import('postcss').Comment} comment
- * @return {void}
- */
- comment(comment) {
- const text = comment.text.toLowerCase();
-
- if (!text.startsWith(PLUGIN_OPTION_COMMENT)) return;
- const option = text.split(' ', 1)[0];
- const value = text.replace(option, '').trim();
-
- switch (option) {
- case DISABLE_FEATURE_COMMENT: {
- if (value === '') {
- // @ts-expect-error Skip cast
- this.ignore = Object.keys(this.features);
- } else {
- for (const feat of value.split(',')) {
- /** @type {any} */
- const f = feat.trim();
- if (!this.ignore.includes(f)) {
- this.ignore.push(f);
- }
- }
- }
- break;
- }
- case ENABLE_FEATURE_COMMENT: {
- if (value === '') {
- this.ignore = [];
- } else {
- const without = new Set(value.split(',').map((feat) => feat.trim()));
- this.ignore = this.ignore.filter((index) => !without.has(index));
- }
- break;
- }
- }
- }
-
- /**
- * @param {import('postcss').Container} node
- * @param {DetectorCallback} callback
- * @return {void}
- */
- node(node, callback) {
- node.each((child) => {
- if (child.type === 'comment') {
- this.comment(child);
- return;
- }
-
- for (const [feat] of Object.entries(this.features).filter(([, featValue]) => {
- if (!featValue) return false;
- if (typeof featValue === 'function') {
- return featValue(child);
- }
- if (Array.isArray(featValue)) {
- return featValue.some((function_) => function_(child));
- }
- if (child.type !== 'decl') {
- return false;
- }
-
- return Object.entries(featValue).some(([property, value]) => {
- if (property !== '' && property !== child.prop) return false;
- if (value === true) return true;
- if (value === false) return false;
- return performFeatureCheck(value, stripUrls(child.value));
- });
- })) {
- const feature = /** @type {keyof FEATURES} */ (feat);
- callback({ usage: child, feature, ignore: this.ignore });
- }
- if (child.type !== 'decl') {
- this.node(child, callback);
- }
- });
- }
-
- /**
- * @param {import('postcss').Root} node
- * @param {DetectorCallback} callback
- * @return {void}
- */
- process(node, callback) {
- // Reset ignoring rules specified by inline comments per each file
- this.ignore = [];
-
- // Recursively walk nodes in file
- this.node(node, callback);
- }
-}
-
-/** @typedef {import('../data/features.js').FeatureKeys} FeatureKeys */
-
-/**
- * @typedef {Object} OnFeatureUsageArguments
- * @prop {FeatureKeys} feature
- * @prop {import('./BrowserSelection.js').MissingSupportResultStats|undefined} featureData
- * @prop {import('postcss').Node} usage
- * @prop {string} message
- */
-
-/**
- * @callback OnFeatureUsage
- * @param {OnFeatureUsageArguments} result
- * @return {any}
- */
-
-/**
- * @typedef {Object} DoIUseOptions
- * @prop {ConstructorParameters<typeof BrowserSelection>[0]} [browsers]
- * @prop {FeatureKeys[]} [ignore]
- * @prop {OnFeatureUsage} [onFeatureUsage]
- * @prop {string[]} [ignoreFiles]
- */
-
-class DoIUse {
- static default = null;
-
- /**
- * @param {DoIUseOptions} [optionsOrBrowserQuery]
- */
- constructor(optionsOrBrowserQuery) {
- const options = (typeof optionsOrBrowserQuery === 'string')
- ? { browsers: optionsOrBrowserQuery }
- : { ...optionsOrBrowserQuery };
- this.browserQuery = options.browsers;
- this.onFeatureUsage = options.onFeatureUsage;
- this.ignoreOptions = options.ignore;
- this.ignoreFiles = options.ignoreFiles;
- this.info = this.info.bind(this);
- this.postcss = this.postcss.bind(this);
- }
-
- /**
- * @param {Object} [options]
- * @param {ConstructorParameters<typeof BrowserSelection>[1]} [options.from]
- */
- info(options = {}) {
- const { browsers, features } = BrowserSelection.missingSupport(this.browserQuery, options.from);
-
- return {
- browsers,
- features,
- };
- }
-
- /** @type {import('postcss').TransformCallback} */
- postcss(css, result) {
- let from;
- if (css.source && css.source.input) {
- from = css.source.input.file;
- }
- const { features } = BrowserSelection.missingSupport(this.browserQuery, from);
- // @ts-expect-error Needs cast
- const detector = new Detector(Object.keys(features));
-
- return detector.process(css, ({ feature, usage, ignore }) => {
- if (ignore && ignore.includes(feature)) {
- return;
- }
-
- if (this.ignoreOptions && this.ignoreOptions.includes(feature)) {
- return;
- }
-
- if (!usage.source) {
- throw new Error('No source?');
- }
- if (this.ignoreFiles && multimatch__default["default"](usage.source.input.from, this.ignoreFiles).length > 0) {
- return;
- }
-
- const data = features[feature];
- if (!data) {
- throw new Error('No feature data?');
- }
- const messages = [];
- if (data.missing) {
- messages.push(`not supported by: ${data.missing}`);
- }
- if (data.partial) {
- messages.push(`only partially supported by: ${data.partial}`);
- }
-
- let message = `${data.title} ${messages.join(' and ')} (${feature})`;
-
- result.warn(message, { node: usage, plugin: 'doiuse' });
-
- if (this.onFeatureUsage) {
- if (!usage.source) {
- throw new Error('No usage source?');
- }
- const { start, input } = usage.source;
- if (!start) {
- throw new Error('No usage source start?');
- }
-
- const map = css.source && css.source.input.map;
- const mappedStart = map && map.consumer().originalPositionFor(start);
-
- const file = (mappedStart && mappedStart.source) || input.file || input.from;
- const line = (mappedStart && mappedStart.line) || start.line;
- const column = (mappedStart && mappedStart.column) || start.column;
-
- message = `${file}:${line}:${column}: ${message}`;
-
- this.onFeatureUsage({
- feature,
- featureData: features[feature],
- usage,
- message,
- });
- }
- });
- }
-}
-
-/* eslint-disable no-underscore-dangle */
-
-/** @typedef {import('../../data/features.js').FeatureKeys} FeatureKeys */
-/** @typedef {import('./SourceMapTransform.js').SourceMapTransformation} SourceMapTransformation */
-
-class RuleUsageTransform extends node_stream.Transform {
- /** @type {import("postcss").Processor} */
- #processor;
-
- #skipErrors;
-
- #filename;
-
- /**
- * @param {Object} options
- * @param {string} options.browsers
- * @param {FeatureKeys[]} [options.ignore]
- * @param {boolean} [options.skipErrors]
- * @param {string} [filename] Filename for outputting source code locations.
- */
- constructor(options, filename = '<streaming css input>') {
- super({
- objectMode: true,
- });
- this.#processor = postcss__default["default"]([new DoIUse({
- browsers: options.browsers,
- ignore: options.ignore,
- onFeatureUsage: (usage) => {
- this.push(usage);
- },
- })]);
- this.#filename = filename;
- this.#skipErrors = options.skipErrors;
- }
-
- /**
- * @param {SourceMapTransformation} rule
- * @param {any} encoding
- * @param {Function} callback
- */
- async _transform(rule, encoding, callback) {
- let caughtError;
- try {
- const mapper = new sourcemap__default["default"].SourceMapGenerator();
- const lines = rule.content.split('\n');
- let oline = rule.line;
- let ocol = rule.column;
- for (const [lineNumber, content] of lines.entries()) {
- mapper.addMapping({
- generated: { line: lineNumber + 1, column: 1 },
- original: { line: oline, column: ocol },
- source: this.#filename,
- });
- mapper.addMapping({
- generated: { line: lineNumber + 1, column: content.length },
- original: { line: oline, column: ocol + content.length },
- source: this.#filename,
- });
- oline += 1;
- ocol = 1;
- }
- await this.#processor.process(rule.content, {
- from: this.#filename, map: { prev: mapper.toString() },
- });
- } catch (error) {
- if (this.#skipErrors) {
- this.emit('warning', error);
- } else {
- caughtError = error;
- }
- }
- callback(caughtError);
- }
-}
-
-/* eslint-disable no-underscore-dangle */
-
-const NEW_LINE_CHAR = '\n'.codePointAt(0);
-
-/**
- * @typedef {Object} SourceMapTransformation
- * @prop {number} line
- * @prop {number} column
- * @prop {string} content
- */
-
-class SourceMapTransform extends node_stream.Transform {
- constructor() {
- super({ objectMode: true });
- }
-
- /**
- * @type {?{location:[number,number], buffers: Buffer[]}}
- * buffer for the current incoming rule.
- */
- #current = null;
-
- /** track depth to handle rules nested in at-rules. */
- #depth = 0;
-
- /** track this and pass it downstream for source mapping. */
- #line = 1;
-
- /** track this and pass it downstream for source mapping. */
- #column = 1;
-
- /**
- * @param {[string,Buffer]} chunk
- * @param {any} encoding
- * @param {Function} callback
- */
- _transform([type, buf], encoding, callback) {
- if ((type === 'rule_start' || type === 'atrule_start')) {
- this.#depth += 1;
- }
- if (this.#depth > 0 && !this.#current) {
- this.#current = { location: [this.#line, this.#column], buffers: [] };
- }
- if (type === 'rule_end' || type === 'atrule_end') {
- this.#depth -= 1;
- }
-
- if (this.#current) {
- this.#current.buffers.push(buf);
- if (this.#depth === 0) {
- // Push rule
- this.push({
- line: this.#current.location[0],
- column: this.#current.location[1],
- content: Buffer.concat(this.#current.buffers).toString(),
- });
- this.#current = null;
- }
- }
-
- // Update position
- for (const char of buf) {
- if (char === NEW_LINE_CHAR) {
- this.#line += 1;
- this.#column = 1;
- } else {
- this.#column += 1;
- }
- }
-
- callback();
- }
-}
-
-/* eslint-disable no-underscore-dangle */
-
-/** @typedef {import('../../data/features.js').FeatureKeys} FeatureKeys */
-
-class CssUsageDuplex extends Duplexify__default["default"] {
- /**
- * @param {Object} options
- * @param {string} options.browsers
- * @param {FeatureKeys[]} [options.ignore]
- * @param {boolean} [options.skipErrors]
- * @param {string} [filename] Filename for outputting source code locations.
- */
- constructor(options, filename) {
- const streams = [
- new Tokenize__default["default"](),
- new SourceMapTransform(),
- new RuleUsageTransform(options, filename),
- ];
- node_stream.pipeline(
- // @ts-expect-error Bad typings
- ...streams,
- () => {
- // noop (Error handled by Duplexify)
- },
- );
- super(streams[0], streams.at(-1), { objectMode: true });
- }
-}
-
-/**
- * @param {ConstructorParameters<typeof CssUsageDuplex>} options
- * @return {CssUsageDuplex}
- */
-function index(...options) {
- return new CssUsageDuplex(...options);
-}
-
-module.exports = index;
diff --git a/node_modules/doiuse/exports/stream.js b/node_modules/doiuse/exports/stream.js
deleted file mode 100644
index fecaefac..00000000
--- a/node_modules/doiuse/exports/stream.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import CssUsageDuplex from '../lib/stream/CssUsageDuplex.js';
-
-/**
- * @param {ConstructorParameters<typeof CssUsageDuplex>} options
- * @return {CssUsageDuplex}
- */
-export default function index(...options) {
- return new CssUsageDuplex(...options);
-}
diff --git a/node_modules/doiuse/lib/BrowserSelection.js b/node_modules/doiuse/lib/BrowserSelection.js
deleted file mode 100644
index 17467548..00000000
--- a/node_modules/doiuse/lib/BrowserSelection.js
+++ /dev/null
@@ -1,181 +0,0 @@
-import browserslist from 'browserslist';
-import * as caniuse from 'caniuse-lite';
-
-import FEATURES from '../data/features.js';
-import { formatBrowserName } from '../utils/util.js';
-
-/**
- * @template T
- * @typedef {{missing: T, partial: T}} Filter
- */
-
-/**
- * @typedef {Object} MissingSupportResultStats
- * @prop {string} title
- * @prop {caniuse.Feature} caniuseData
- * @prop {string} [missing]
- * @prop {Record<string, Record<string, string>>} [missingData]
- * @prop {string} [partial]
- * @prop {Record<string, Record<string, string>>} [partialData]
- */
-
-/**
- * @typedef {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} BrowserSupportStats
- */
-
-/**
- * @typedef {Object} MissingSupportResult
- * @prop {string[][]} browsers
- * @prop {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} features
- */
-
-export default class BrowserSelection {
- #list;
-
- /**
- * @param {string | string[]} [query]
- * @param {string | false} [from]
- */
- constructor(query, from) {
- this.browsersRequest = query;
- const options = from ? { path: from } : {};
- this.#list = browserslist(this.browsersRequest, options).map((browser) => browser.split(' '));
- }
-
- /**
- * @param {string} browser
- * @param {string} version
- * @return {string[]|undefined}
- */
- test(browser, version) {
- const versions = version.split('-');
-
- if (versions.length === 1) {
- versions.push(versions[0]);
- }
-
- return this.#list.find(([b, v]) => b === browser && v >= versions[0] && v <= versions[1]);
- }
-
- list() {
- return [...this.#list];
- }
-
- /**
- * @param {Record<string, Record<string, string>>} browserStats
- * @return {string}
- */
- static lackingBrowsers(browserStats) {
- const result = [];
- for (const browser of Object.keys(browserStats)) {
- result.push(formatBrowserName(browser, Object.keys(browserStats[browser])));
- }
- return result.join(', ');
- }
-
- /**
- * @param {import('caniuse-lite').StatsByAgentID} stats
- * @return {Filter<Record<string,Record<string, string>>>}
- */
- filterStats(stats) {
- /** @type {Filter<Record<string,Record<string, string>>>} */
- const result = { missing: {}, partial: {} };
- for (const [browser, versions] of Object.entries(stats)) {
- /** @type {Filter<Record<string,string>>} */
- const feature = { missing: {}, partial: {} };
- for (const [version, support] of Object.entries(versions)) {
- const selected = this.test(browser, version);
-
- // check if browser is NOT fully (i.e., don't have 'y' in their stats) supported
- if (!selected) continue;
- if ((/(^|\s)y($|\s)/.test(support))) continue;
- // when it's not partially supported ('a'), it's missing
- const type = (/(^|\s)a($|\s)/.test(support) ? 'partial' : 'missing');
-
- if (!feature[type]) {
- feature[type] = {};
- }
-
- feature[type][selected[1]] = support;
- }
- if (Object.keys(feature.missing).length > 0) {
- result.missing[browser] = feature.missing;
- }
-
- if (Object.keys(feature.partial).length > 0) {
- result.partial[browser] = feature.partial;
- }
- }
- return result;
- }
-
- /**
- * Get data on CSS features not supported by the given autoprefixer-like
- * browser selection.
- * @return {BrowserSupportStats} `features` is an array of:
- * ```
- * {
- * 'feature-name': {
- * title: 'Title of feature'
- * missing: "IE (8), Chrome (31)"
- * missingData: {
- * // map of browser -> version -> (lack of)support code
- * ie: { '8': 'n' },
- * chrome: { '31': 'n' }
- * }
- * partialData: {
- * // map of browser -> version -> (partial)support code
- * ie: { '7': 'a' },
- * ff: { '29': 'a #1' }
- * }
- * caniuseData: {
- * // caniuse-db json data for this feature
- * }
- * },
- * 'feature-name-2': {} // etc.
- * }
- * ```
- *
- * `feature-name` is a caniuse-db slug.
- */
- compileBrowserSupport() {
- /** @type {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} */
- const result = {};
-
- for (const key of Object.keys(FEATURES)) {
- const feature = /** @type {keyof FEATURES} */ (key);
- const packedFeature = caniuse.features[feature];
- const featureData = caniuse.feature(packedFeature);
- const lackData = this.filterStats(featureData.stats);
- const missingData = lackData.missing;
- const partialData = lackData.partial;
- // browsers with missing or partial support for this feature
- const missing = BrowserSelection.lackingBrowsers(missingData);
- const partial = BrowserSelection.lackingBrowsers(partialData);
-
- if (missing.length > 0 || partial.length > 0) {
- result[feature] = {
- title: featureData.title,
- caniuseData: featureData,
- ...(missing.length > 0 ? { missingData, missing } : null),
- ...(partial.length > 0 ? { partialData, partial } : null),
- };
- }
- }
-
- return result;
- }
-
- /**
- * @see BrowserSelection.compileBrowserSupport
- * @param {ConstructorParameters<typeof this>} constructorParameters
- * @return {MissingSupportResult} `{browsers, features}`
- */
- static missingSupport(...constructorParameters) {
- const selection = new BrowserSelection(...constructorParameters);
- return {
- browsers: selection.list(),
- features: selection.compileBrowserSupport(),
- };
- }
-}
diff --git a/node_modules/doiuse/lib/Detector.js b/node_modules/doiuse/lib/Detector.js
deleted file mode 100644
index 2858bca9..00000000
--- a/node_modules/doiuse/lib/Detector.js
+++ /dev/null
@@ -1,157 +0,0 @@
-import FEATURES from '../data/features.js';
-import { performFeatureCheck } from '../utils/util.js';
-
-/**
- * @typedef DetectorCallbackArgument
- * @prop {!import('postcss').ChildNode} usage
- * @prop {keyof FEATURES} feature
- * @prop {(keyof FEATURES & string)[]} ignore
- */
-
-/**
- * @callback DetectorCallback
- * @param {DetectorCallbackArgument} result
- * @return {any}
- */
-
-const PLUGIN_OPTION_COMMENT = 'doiuse-';
-const DISABLE_FEATURE_COMMENT = `${PLUGIN_OPTION_COMMENT}disable`;
-const ENABLE_FEATURE_COMMENT = `${PLUGIN_OPTION_COMMENT}enable`;
-
-/**
- * Strip the contents of url literals so they aren't matched
- * by our naive substring matching.
- * @param {string} input
- * @return {string}
- */
-function stripUrls(input) {
- return input.replaceAll(/url\([^)]*\)/g, 'url()');
-}
-
-/**
- * Detect the use of any of a given list of CSS features.
- * ```
- * var detector = new Detector(featureList)
- * detector.process(css, cb)
- * ```
- *
- * `featureList`: an array of feature slugs (see caniuse-db)
- * `cb`: a callback that gets called for each usage of one of the given features,
- * called with an argument like:
- * ```
- * {
- * usage: {} // postcss node where usage was found
- * feature: {} // caniuse-db feature slug
- * ignore: {} // caniuse-db feature to ignore in current file
- * }
- * ```
- */
-export default class Detector {
- /**
- * @param {(keyof FEATURES & string)[]} featureList an array of feature slugs (see caniuse-db)
- */
- constructor(featureList) {
- /** @type {Partial<FEATURES>} */
- this.features = {};
- for (const feature of featureList) {
- if (FEATURES[feature]) {
- this.features[feature] = FEATURES[feature];
- }
- }
- /** @type {(keyof FEATURES & string)[]} */
- this.ignore = [];
- }
-
- /**
- * @param {import('postcss').Comment} comment
- * @return {void}
- */
- comment(comment) {
- const text = comment.text.toLowerCase();
-
- if (!text.startsWith(PLUGIN_OPTION_COMMENT)) return;
- const option = text.split(' ', 1)[0];
- const value = text.replace(option, '').trim();
-
- switch (option) {
- case DISABLE_FEATURE_COMMENT: {
- if (value === '') {
- // @ts-expect-error Skip cast
- this.ignore = Object.keys(this.features);
- } else {
- for (const feat of value.split(',')) {
- /** @type {any} */
- const f = feat.trim();
- if (!this.ignore.includes(f)) {
- this.ignore.push(f);
- }
- }
- }
- break;
- }
- case ENABLE_FEATURE_COMMENT: {
- if (value === '') {
- this.ignore = [];
- } else {
- const without = new Set(value.split(',').map((feat) => feat.trim()));
- this.ignore = this.ignore.filter((index) => !without.has(index));
- }
- break;
- }
- default:
- }
- }
-
- /**
- * @param {import('postcss').Container} node
- * @param {DetectorCallback} callback
- * @return {void}
- */
- node(node, callback) {
- node.each((child) => {
- if (child.type === 'comment') {
- this.comment(child);
- return;
- }
-
- for (const [feat] of Object.entries(this.features).filter(([, featValue]) => {
- if (!featValue) return false;
- if (typeof featValue === 'function') {
- return featValue(child);
- }
- if (Array.isArray(featValue)) {
- return featValue.some((function_) => function_(child));
- }
- if (child.type !== 'decl') {
- return false;
- }
-
- return Object.entries(featValue).some(([property, value]) => {
- if (property !== '' && property !== child.prop) return false;
- if (value === true) return true;
- if (value === false) return false;
- return performFeatureCheck(value, stripUrls(child.value));
- });
- })) {
- const feature = /** @type {keyof FEATURES} */ (feat);
- callback({ usage: child, feature, ignore: this.ignore });
- }
- if (child.type !== 'decl') {
- this.node(child, callback);
- }
- });
- }
-
- /**
- * @param {import('postcss').Root} node
- * @param {DetectorCallback} callback
- * @return {void}
- */
- process(node, callback) {
- // Reset ignoring rules specified by inline comments per each file
- this.ignore = [];
-
- // Recursively walk nodes in file
- this.node(node, callback);
- }
-}
diff --git a/node_modules/doiuse/lib/DoIUse.js b/node_modules/doiuse/lib/DoIUse.js
deleted file mode 100644
index 78db53c8..00000000
--- a/node_modules/doiuse/lib/DoIUse.js
+++ /dev/null
@@ -1,130 +0,0 @@
-import multimatch from 'multimatch';
-
-import BrowserSelection from './BrowserSelection.js';
-import Detector from './Detector.js';
-
-/** @typedef {import('../data/features.js').FeatureKeys} FeatureKeys */
-
-/**
- * @typedef {Object} OnFeatureUsageArguments
- * @prop {FeatureKeys} feature
- * @prop {import('./BrowserSelection.js').MissingSupportResultStats|undefined} featureData
- * @prop {import('postcss').Node} usage
- * @prop {string} message
- */
-
-/**
- * @callback OnFeatureUsage
- * @param {OnFeatureUsageArguments} result
- * @return {any}
- */
-
-/**
- * @typedef {Object} DoIUseOptions
- * @prop {ConstructorParameters<typeof BrowserSelection>[0]} [browsers]
- * @prop {FeatureKeys[]} [ignore]
- * @prop {OnFeatureUsage} [onFeatureUsage]
- * @prop {string[]} [ignoreFiles]
- */
-
-export default class DoIUse {
- static default = null;
-
- /**
- * @param {DoIUseOptions} [optionsOrBrowserQuery]
- */
- constructor(optionsOrBrowserQuery) {
- const options = (typeof optionsOrBrowserQuery === 'string')
- ? { browsers: optionsOrBrowserQuery }
- : { ...optionsOrBrowserQuery };
- this.browserQuery = options.browsers;
- this.onFeatureUsage = options.onFeatureUsage;
- this.ignoreOptions = options.ignore;
- this.ignoreFiles = options.ignoreFiles;
- this.info = this.info.bind(this);
- this.postcss = this.postcss.bind(this);
- }
-
- /**
- * @param {Object} [options]
- * @param {ConstructorParameters<typeof BrowserSelection>[1]} [options.from]
- */
- info(options = {}) {
- const { browsers, features } = BrowserSelection.missingSupport(this.browserQuery, options.from);
-
- return {
- browsers,
- features,
- };
- }
-
- /** @type {import('postcss').TransformCallback} */
- postcss(css, result) {
- let from;
- if (css.source && css.source.input) {
- from = css.source.input.file;
- }
- const { features } = BrowserSelection.missingSupport(this.browserQuery, from);
- // @ts-expect-error Needs cast
- const detector = new Detector(Object.keys(features));
-
- return detector.process(css, ({ feature, usage, ignore }) => {
- if (ignore && ignore.includes(feature)) {
- return;
- }
-
- if (this.ignoreOptions && this.ignoreOptions.includes(feature)) {
- return;
- }
-
- if (!usage.source) {
- throw new Error('No source?');
- }
- if (this.ignoreFiles && multimatch(usage.source.input.from, this.ignoreFiles).length > 0) {
- return;
- }
-
- const data = features[feature];
- if (!data) {
- throw new Error('No feature data?');
- }
- const messages = [];
- if (data.missing) {
- messages.push(`not supported by: ${data.missing}`);
- }
- if (data.partial) {
- messages.push(`only partially supported by: ${data.partial}`);
- }
-
- let message = `${data.title} ${messages.join(' and ')} (${feature})`;
-
- result.warn(message, { node: usage, plugin: 'doiuse' });
-
- if (this.onFeatureUsage) {
- if (!usage.source) {
- throw new Error('No usage source?');
- }
- const { start, input } = usage.source;
- if (!start) {
- throw new Error('No usage source start?');
- }
-
- const map = css.source && css.source.input.map;
- const mappedStart = map && map.consumer().originalPositionFor(start);
-
- const file = (mappedStart && mappedStart.source) || input.file || input.from;
- const line = (mappedStart && mappedStart.line) || start.line;
- const column = (mappedStart && mappedStart.column) || start.column;
-
- message = `${file}:${line}:${column}: ${message}`;
-
- this.onFeatureUsage({
- feature,
- featureData: features[feature],
- usage,
- message,
- });
- }
- });
- }
-}
diff --git a/node_modules/doiuse/lib/stream/CssUsageDuplex.js b/node_modules/doiuse/lib/stream/CssUsageDuplex.js
deleted file mode 100644
index 063ed1dc..00000000
--- a/node_modules/doiuse/lib/stream/CssUsageDuplex.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/* eslint-disable no-underscore-dangle */
-
-import { pipeline } from 'node:stream';
-
-import Tokenize from 'css-tokenize';
-import Duplexify from 'duplexify';
-
-import RuleUsageTransform from './RuleUsageTransform.js';
-import SourceMapTransform from './SourceMapTransform.js';
-
-/** @typedef {import('../../data/features.js').FeatureKeys} FeatureKeys */
-
-export default class CssUsageDuplex extends Duplexify {
- /**
- * @param {Object} options
- * @param {string} options.browsers
- * @param {FeatureKeys[]} [options.ignore]
- * @param {boolean} [options.skipErrors]
- * @param {string} [filename] Filename for outputting source code locations.
- */
- constructor(options, filename) {
- const streams = [
- new Tokenize(),
- new SourceMapTransform(),
- new RuleUsageTransform(options, filename),
- ];
- pipeline(
- // @ts-expect-error Bad typings
- ...streams,
- () => {
- // noop (Error handled by Duplexify)
- },
- );
- super(streams[0], streams.at(-1), { objectMode: true });
- }
-}
diff --git a/node_modules/doiuse/lib/stream/RuleUsageTransform.js b/node_modules/doiuse/lib/stream/RuleUsageTransform.js
deleted file mode 100644
index a2a79d4d..00000000
--- a/node_modules/doiuse/lib/stream/RuleUsageTransform.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/* eslint-disable no-underscore-dangle */
-import { Transform } from 'node:stream';
-
-import postcss from 'postcss';
-import sourcemap from 'source-map';
-
-import DoIUse from '../DoIUse.js';
-
-/** @typedef {import('../../data/features.js').FeatureKeys} FeatureKeys */
-/** @typedef {import('./SourceMapTransform.js').SourceMapTransformation} SourceMapTransformation */
-
-export default class RuleUsageTransform extends Transform {
- /** @type {import("postcss").Processor} */
- #processor;
-
- #skipErrors;
-
- #filename;
-
- /**
- * @param {Object} options
- * @param {string} options.browsers
- * @param {FeatureKeys[]} [options.ignore]
- * @param {boolean} [options.skipErrors]
- * @param {string} [filename] Filename for outputting source code locations.
- */
- constructor(options, filename = '<streaming css input>') {
- super({
- objectMode: true,
- });
- this.#processor = postcss([new DoIUse({
- browsers: options.browsers,
- ignore: options.ignore,
- onFeatureUsage: (usage) => {
- this.push(usage);
- },
- })]);
- this.#filename = filename;
- this.#skipErrors = options.skipErrors;
- }
-
- /**
- * @param {SourceMapTransformation} rule
- * @param {any} encoding
- * @param {Function} callback
- */
- async _transform(rule, encoding, callback) {
- let caughtError;
- try {
- const mapper = new sourcemap.SourceMapGenerator();
- const lines = rule.content.split('\n');
- let oline = rule.line;
- let ocol = rule.column;
- for (const [lineNumber, content] of lines.entries()) {
- mapper.addMapping({
- generated: { line: lineNumber + 1, column: 1 },
- original: { line: oline, column: ocol },
- source: this.#filename,
- });
- mapper.addMapping({
- generated: { line: lineNumber + 1, column: content.length },
- original: { line: oline, column: ocol + content.length },
- source: this.#filename,
- });
- oline += 1;
- ocol = 1;
- }
- await this.#processor.process(rule.content, {
- from: this.#filename, map: { prev: mapper.toString() },
- });
- } catch (error) {
- if (this.#skipErrors) {
- this.emit('warning', error);
- } else {
- caughtError = error;
- }
- }
- callback(caughtError);
- }
-}
diff --git a/node_modules/doiuse/lib/stream/SourceMapTransform.js b/node_modules/doiuse/lib/stream/SourceMapTransform.js
deleted file mode 100644
index 6295b1d3..00000000
--- a/node_modules/doiuse/lib/stream/SourceMapTransform.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/* eslint-disable no-underscore-dangle */
-import { Transform } from 'node:stream';
-
-const NEW_LINE_CHAR = '\n'.codePointAt(0);
-
-/**
- * @typedef {Object} SourceMapTransformation
- * @prop {number} line
- * @prop {number} column
- * @prop {string} content
- */
-
-export default class SourceMapTransform extends Transform {
- constructor() {
- super({ objectMode: true });
- }
-
- /**
- * @type {?{location:[number,number], buffers: Buffer[]}}
- * buffer for the current incoming rule.
- */
- #current = null;
-
- /** track depth to handle rules nested in at-rules. */
- #depth = 0;
-
- /** track this and pass it downstream for source mapping. */
- #line = 1;
-
- /** track this and pass it downstream for source mapping. */
- #column = 1;
-
- /**
- * @param {[string,Buffer]} chunk
- * @param {any} encoding
- * @param {Function} callback
- */
- _transform([type, buf], encoding, callback) {
- if ((type === 'rule_start' || type === 'atrule_start')) {
- this.#depth += 1;
- }
- if (this.#depth > 0 && !this.#current) {
- this.#current = { location: [this.#line, this.#column], buffers: [] };
- }
- if (type === 'rule_end' || type === 'atrule_end') {
- this.#depth -= 1;
- }
-
- if (this.#current) {
- this.#current.buffers.push(buf);
- if (this.#depth === 0) {
- // Push rule
- this.push({
- line: this.#current.location[0],
- column: this.#current.location[1],
- content: Buffer.concat(this.#current.buffers).toString(),
- });
- this.#current = null;
- }
- }
-
- // Update position
- for (const char of buf) {
- if (char === NEW_LINE_CHAR) {
- this.#line += 1;
- this.#column = 1;
- } else {
- this.#column += 1;
- }
- }
-
- callback();
- }
-}
diff --git a/node_modules/doiuse/package.json b/node_modules/doiuse/package.json
deleted file mode 100644
index c82d589c..00000000
--- a/node_modules/doiuse/package.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "name": "doiuse",
- "version": "6.0.2",
- "description": "Lint CSS for browser support against caniuse database",
- "main:": "./exports/index.cjs",
- "type": "module",
- "exports": {
- "./lib/*": "./lib/*",
- ".": {
- "require": "./exports/index.cjs",
- "import": "./exports/index.js"
- },
- "./stream": {
- "require": "./exports/stream.cjs",
- "import": "./exports/stream.js"
- }
- },
- "bin": "./bin/cli.js",
- "repository": {
- "type": "git",
- "url": "https://github.com/anandthakker/doiuse.git"
- },
- "keywords": [
- "lint",
- "css",
- "browser",
- "support",
- "caniuse",
- "stylelint"
- ],
- "author": "Carlos Lopez Jr. <clshortfuse@gmail.com> (https://github.com/clshortfuse)",
- "contributors": [
- "Robbie Wadley (https://github.com/RJWadley)",
- "Anand Thakker <mail@anandthakker.net> (http://www.anandthakker.net/)",
- "Piotr Kuczynski <piotr.kuczynski@gmail.com> (https://github.com/pkuczynski)"
- ],
- "license": "MIT",
- "bugs": {
- "url": "https://github.com/anandthakker/doiuse/issues"
- },
- "homepage": "https://github.com/anandthakker/doiuse",
- "engines": {
- "node": ">=16"
- },
- "dependencies": {
- "browserslist": "^4.21.5",
- "caniuse-lite": "^1.0.30001487",
- "css-tokenize": "^1.0.1",
- "duplexify": "^4.1.2",
- "ldjson-stream": "^1.2.1",
- "multimatch": "^5.0.0",
- "postcss": "^8.4.21",
- "source-map": "^0.7.4",
- "yargs": "^17.7.1"
- },
- "devDependencies": {
- "@types/caniuse-lite": "^1.0.1",
- "@types/duplexify": "^3.6.1",
- "@types/node": "^16.18.34",
- "@types/tap": "^15.0.8",
- "@types/yargs": "^17.0.24",
- "@typescript-eslint/eslint-plugin": "^5.54.0",
- "@typescript-eslint/parser": "^5.54.0",
- "c8": "^7.13.0",
- "caniuse-db": "^1.0.30001487",
- "eslint": "^8.35.0",
- "eslint-config-airbnb-base": "^15.0.0",
- "eslint-plugin-canonical": "^4.2.2",
- "eslint-plugin-import": "^2.27.5",
- "eslint-plugin-jsdoc": "^46.4.3",
- "eslint-plugin-n": "^16.0.0",
- "eslint-plugin-unicorn": "^47.0.0",
- "mock-fs": "^4.14.0",
- "postcss-import": "^14.1.0",
- "rollup": "^2.79.1",
- "safe-regex": "^2.1.1",
- "tap": "^16.3.4",
- "typescript": "^5.1.6"
- },
- "files": [
- "bin",
- "data",
- "features",
- "exports",
- "lib",
- "types",
- "utils"
- ],
- "scripts": {
- "pretest": "eslint \"./bin/**/*.js\" \"./data/**/*.js\" \"./utils/**/*.js\" \"./lib/**/*.js\" \"./test/**/*.js\" && tsc --noEmit",
- "test": "c8 tap --no-coverage",
- "prepare": "rollup -c rollup.config.js",
- "prepublishOnly": "tsc --emitDeclarationOnly",
- "updateFeatures": "scripts/update-caniuse.sh && node scripts/update-features.js"
- }
-}
diff --git a/node_modules/doiuse/types/bin/cli.d.ts b/node_modules/doiuse/types/bin/cli.d.ts
deleted file mode 100644
index b7988016..00000000
--- a/node_modules/doiuse/types/bin/cli.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/usr/bin/env node
-export {};
diff --git a/node_modules/doiuse/types/data/features.d.ts b/node_modules/doiuse/types/data/features.d.ts
deleted file mode 100644
index f724f4d4..00000000
--- a/node_modules/doiuse/types/data/features.d.ts
+++ /dev/null
@@ -1,786 +0,0 @@
-declare const _default: {
- outline: Feature;
- "background-attachment": Feature;
- pointer: Feature;
- "flow-root": Feature;
- "font-kerning": Feature;
- "font-smooth": Feature;
- "font-variant-alternates": Feature;
- "font-variant-numeric": Feature;
- "inline-block": Feature;
- "prefers-color-scheme": Feature;
- "prefers-reduced-motion": Feature;
- rem: Feature;
- "run-in": Feature;
- "text-emphasis": Feature;
- "text-stroke": Feature;
- "webkit-user-drag": Feature;
- "border-image": Feature;
- "border-radius": Feature;
- "font-size-adjust": Feature;
- "text-decoration": Feature;
- "object-fit": Feature;
- "pointer-events": Feature;
- "text-overflow": Feature;
- "text-size-adjust": Feature;
- "will-change": Feature;
- "word-break": Feature;
- "alternate-stylesheet": Feature;
- "background-clip-text": Feature;
- "background-img-opts": Feature;
- "background-position-x-y": Feature;
- "background-repeat-round-space": Feature;
- calc: Feature;
- "ch-unit": Feature;
- "css-all": Feature;
- "css-animation": Feature;
- "css-any-link": Feature;
- "css-appearance": Feature;
- "css-at-counter-style": Feature;
- "css-autofill": Feature;
- "css-backdrop-filter": Feature;
- "css-background-offsets": Feature;
- "css-backgroundblendmode": Feature;
- "css-boxdecorationbreak": Feature;
- "css-boxshadow": Feature;
- "css-canvas": Feature;
- "css-caret-color": Feature;
- "css-cascade-layers": Feature;
- "css-case-insensitive": Feature;
- "css-clip-path": Feature;
- "css-color-adjust": Feature;
- "css-color-function": Feature;
- "css-conic-gradients": Feature;
- "css-container-queries": Feature;
- "css-container-queries-style": Feature;
- "css-container-query-units": Feature;
- "css-containment": Feature;
- "css-content-visibility": Feature;
- "css-counters": Feature;
- "css-crisp-edges": Feature;
- "css-cross-fade": Feature;
- "css-default-pseudo": Feature;
- "css-descendant-gtgt": Feature;
- "css-deviceadaptation": Feature;
- "css-dir-pseudo": Feature;
- "css-display-contents": Feature;
- "css-element-function": Feature;
- "css-env-function": Feature;
- "css-exclusions": Feature;
- "css-featurequeries": Feature;
- "css-file-selector-button": Feature;
- "css-filter-function": Feature;
- "css-filters": Feature;
- "css-first-letter": Feature;
- "css-first-line": Feature;
- "css-fixed": Feature;
- "css-focus-visible": Feature;
- "css-focus-within": Feature;
- "css-font-palette": Feature;
- "css-font-rendering-controls": Feature;
- "css-font-stretch": Feature;
- "css-gencontent": Feature;
- "css-gradients": Feature;
- "css-grid": Feature;
- "css-grid-animation": Feature;
- "css-hanging-punctuation": Feature;
- "css-has": Feature;
- "css-hyphens": Feature;
- "css-image-orientation": Feature;
- "css-image-set": Feature;
- "css-in-out-of-range": Feature;
- "css-indeterminate-pseudo": Feature;
- "css-initial-letter": Feature;
- "css-initial-value": Feature;
- "css-lch-lab": Feature;
- "css-letter-spacing": Feature;
- "css-line-clamp": Feature;
- "css-logical-props": Feature;
- "css-marker-pseudo": Feature;
- "css-masks": Feature;
- "css-matches-pseudo": Feature;
- "css-math-functions": Feature;
- "css-media-interaction": Feature;
- "css-media-range-syntax": Feature;
- "css-media-resolution": Feature;
- "css-media-scripting": Feature;
- "css-mediaqueries": Feature;
- "css-mixblendmode": Feature;
- "css-motion-paths": Feature;
- "css-namespaces": Feature;
- "css-nesting": Feature;
- "css-not-sel-list": Feature;
- "css-nth-child-of": Feature;
- "css-opacity": Feature;
- "css-optional-pseudo": Feature;
- "css-overflow": Feature;
- "css-overflow-anchor": Feature;
- "css-overflow-overlay": Feature;
- "css-overscroll-behavior": Feature;
- "css-page-break": Feature;
- "css-paged-media": Feature;
- "css-paint-api": Feature;
- "css-placeholder": Feature;
- "css-placeholder-shown": Feature;
- "css-print-color-adjust": Feature;
- "css-read-only-write": Feature;
- "css-rebeccapurple": Feature;
- "css-reflections": Feature;
- "css-regions": Feature;
- "css-relative-colors": Feature;
- "css-repeating-gradients": Feature;
- "css-resize": Feature;
- "css-revert-value": Feature;
- "css-rrggbbaa": Feature;
- "css-scroll-behavior": Feature;
- "css-scroll-timeline": Feature;
- "css-scrollbar": Feature;
- "css-sel2": Feature;
- "css-sel3": Feature;
- "css-selection": Feature;
- "css-shapes": Feature;
- "css-snappoints": Feature;
- "css-sticky": Feature;
- "css-subgrid": Feature;
- "css-supports-api": Feature;
- "css-table": Feature;
- "css-text-align-last": Feature;
- "css-text-box-trim": Feature;
- "css-text-indent": Feature;
- "css-text-justify": Feature;
- "css-text-orientation": Feature;
- "css-text-spacing": Feature;
- "css-textshadow": Feature;
- "css-touch-action": Feature;
- "css-transitions": Feature;
- "css-unicode-bidi": Feature;
- "css-unset-value": Feature;
- "css-variables": Feature;
- "css-when-else": Feature;
- "css-widows-orphans": Feature;
- "css-width-stretch": Feature;
- "css-writing-mode": Feature;
- "css-zoom": Feature;
- "css3-attr": Feature;
- "css3-boxsizing": Feature;
- "css3-colors": Feature;
- "css3-cursors": Feature;
- "css3-cursors-grab": Feature;
- "css3-cursors-newer": Feature;
- "css3-tabsize": Feature;
- currentcolor: Feature;
- devicepixelratio: Feature;
- "extended-system-fonts": Feature;
- flexbox: Feature;
- "flexbox-gap": Feature;
- "font-family-system-ui": Feature;
- "font-feature": Feature;
- "font-loading": Feature;
- "font-unicode-range": Feature;
- fontface: Feature;
- fullscreen: Feature;
- getcomputedstyle: Feature;
- "intrinsic-width": Feature;
- "justify-content-space-evenly": Feature;
- "kerning-pairs-ligatures": Feature;
- "mdn-css-unicode-bidi-isolate": Feature;
- "mdn-css-unicode-bidi-isolate-override": Feature;
- "mdn-css-unicode-bidi-plaintext": Feature;
- "mdn-text-decoration-color": Feature;
- "mdn-text-decoration-line": Feature;
- "mdn-text-decoration-shorthand": Feature;
- "mdn-text-decoration-style": Feature;
- minmaxwh: Feature;
- multibackgrounds: Feature;
- multicolumn: Feature;
- "style-scoped": Feature;
- "svg-css": Feature;
- transforms2d: Feature;
- transforms3d: Feature;
- ttf: Feature;
- "user-select-none": Feature;
- "variable-fonts": Feature;
- "viewport-unit-variants": Feature;
- "viewport-units": Feature;
- wordwrap: Feature;
-};
-export default _default;
-export type FeatureCheck = string | RegExp | ((value: string) => boolean);
-export type RuleCheck = (rule: import('postcss').ChildNode) => boolean;
-export type Feature = Record<string, FeatureCheck | FeatureCheck[] | boolean> | RuleCheck | RuleCheck[];
-export type FeatureKeys = keyof typeof FEATURES;
-type FEATURES = Feature;
-/** @typedef {RegExp|string|((value:string) => boolean)} FeatureCheck */
-/** @typedef {((rule:import('postcss').ChildNode) => boolean)} RuleCheck */
-/** @typedef {Record<string, FeatureCheck|FeatureCheck[]|boolean> | RuleCheck | RuleCheck[]} Feature */
-/** @enum {Feature} */
-declare const FEATURES: {
- 'alternate-stylesheet': Feature;
- 'background-attachment': Feature;
- 'background-clip-text': Feature;
- 'background-img-opts': {
- 'background-clip': boolean;
- 'background-origin': boolean;
- 'background-size': boolean;
- };
- 'background-position-x-y': {
- 'background-position-x': boolean;
- 'background-position-y': boolean;
- };
- 'background-repeat-round-space': Feature;
- 'border-image': {
- 'border-image': boolean;
- 'border-image-outset': boolean;
- 'border-image-repeat': boolean;
- 'border-image-slice': boolean;
- 'border-image-source': boolean;
- 'border-image-width': boolean;
- };
- 'border-radius': {
- 'border-radius': boolean;
- 'border-top-left-radius': boolean;
- 'border-top-right-radius': boolean;
- 'border-bottom-right-radius': boolean;
- 'border-bottom-left-radius': boolean;
- };
- calc: {
- '': string;
- };
- 'ch-unit': Feature;
- 'css-all': {
- all: boolean;
- };
- 'css-animation': {
- animation: boolean;
- 'animation-name': boolean;
- 'animation-duration': boolean;
- 'animation-timing-function': boolean;
- 'animation-iteration-count': boolean;
- 'animation-direction': boolean;
- 'animation-play-state': boolean;
- 'animation-delay': boolean;
- 'animation-fill-mode': boolean;
- };
- 'css-any-link': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-appearance': {
- appearance: boolean;
- '-webkit-appearance': boolean;
- '-moz-appearance': boolean;
- };
- 'css-at-counter-style': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-autofill': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-backdrop-filter': {
- 'backdrop-filter': boolean;
- };
- 'css-background-offsets': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-backgroundblendmode': {
- 'background-blend-mode': boolean;
- };
- 'css-boxdecorationbreak': Feature;
- 'css-boxshadow': {
- 'box-shadow': boolean;
- };
- 'css-canvas': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-caret-color': Feature;
- 'css-cascade-layers': Feature;
- 'css-case-insensitive': Feature;
- 'css-clip-path': {
- 'clip-path': boolean;
- };
- 'css-color-adjust': Feature;
- 'css-color-function': Feature;
- 'css-conic-gradients': {
- background: RegExp;
- 'background-image': RegExp;
- 'border-image': RegExp;
- 'border-image-source': RegExp;
- content: RegExp;
- cursor: RegExp;
- 'list-style': RegExp;
- 'list-style-image': RegExp;
- };
- 'css-container-queries': Feature;
- 'css-container-queries-style': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-container-query-units': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-containment': Feature;
- 'css-content-visibility': Feature;
- 'css-counters': {
- 'counter-reset': boolean;
- 'counter-increment': boolean;
- '': string;
- };
- 'css-crisp-edges': Feature;
- 'css-cross-fade': Feature;
- 'css-default-pseudo': Feature;
- 'css-descendant-gtgt': Feature;
- 'css-deviceadaptation': Feature;
- 'css-dir-pseudo': Feature;
- 'css-display-contents': Feature;
- 'css-element-function': Feature;
- 'css-env-function': {
- '': string;
- };
- 'css-exclusions': Feature;
- 'css-featurequeries': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-file-selector-button': Feature;
- 'css-filter-function': Feature;
- 'css-filters': {
- filter: boolean;
- };
- 'css-first-letter': Feature;
- 'css-first-line': Feature;
- 'css-fixed': {
- position: string;
- };
- 'css-focus-visible': Feature;
- 'css-focus-within': Feature;
- 'css-font-palette': ((rule: any) => any)[];
- 'css-font-rendering-controls': Feature;
- 'css-font-stretch': {
- 'font-stretch': boolean;
- };
- 'css-gencontent': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-gradients': {
- background: RegExp;
- 'background-image': RegExp;
- 'border-image': RegExp;
- 'border-image-source': RegExp;
- content: RegExp;
- cursor: RegExp;
- 'list-style': RegExp;
- 'list-style-image': RegExp;
- };
- 'css-grid': {
- display: string[];
- grid: boolean;
- 'grid-area': boolean;
- 'grid-auto-columns': boolean;
- 'grid-auto-flow': boolean;
- 'grid-auto-rows': boolean;
- 'grid-column': boolean;
- 'grid-column-end': boolean;
- 'grid-column-start': boolean;
- 'grid-row': boolean;
- 'grid-row-end': boolean;
- 'grid-row-start': boolean;
- 'grid-template': boolean;
- 'grid-template-areas': boolean;
- 'grid-template-columns': boolean;
- 'grid-template-rows': boolean;
- };
- 'css-grid-animation': {
- transition: RegExp;
- 'transition-property': RegExp;
- };
- 'css-hanging-punctuation': Feature;
- 'css-has': Feature;
- 'css-hyphens': {
- hyphens: boolean;
- };
- 'css-image-orientation': {
- 'image-orientation': boolean;
- };
- 'css-image-set': Feature;
- 'css-in-out-of-range': Feature;
- 'css-indeterminate-pseudo': Feature;
- 'css-initial-letter': Feature;
- 'css-initial-value': {
- '': string;
- };
- 'css-lch-lab': Feature;
- 'css-letter-spacing': Feature;
- 'css-line-clamp': Feature;
- 'css-logical-props': {
- 'block-size': boolean;
- 'inline-size': boolean;
- 'min-block-size': boolean;
- 'min-inline-size': boolean;
- 'max-block-size': boolean;
- 'max-inline-size': boolean;
- 'margin-block-start': boolean;
- 'margin-block-end': boolean;
- 'margin-inline-start': boolean;
- 'margin-inline-end': boolean;
- 'margin-block': boolean;
- 'margin-inline': boolean;
- 'inset-block-start': boolean;
- 'inset-block-end': boolean;
- 'inset-inline-start': boolean;
- 'inset-inline-end': boolean;
- 'inset-block': boolean;
- 'inset-inline': boolean;
- inset: boolean;
- 'padding-block-start': boolean;
- 'padding-block-end': boolean;
- 'padding-inline-start': boolean;
- 'padding-inline-end': boolean;
- 'padding-block': boolean;
- 'padding-inline': boolean;
- 'border-block-start-width': boolean;
- 'border-block-end-width': boolean;
- 'border-inline-start-width': boolean;
- 'border-inline-end-width': boolean;
- 'border-block-width': boolean;
- 'border-inline-width': boolean;
- 'border-block-start-style': boolean;
- 'border-block-end-style': boolean;
- 'border-inline-start-style': boolean;
- 'border-inline-end-style': boolean;
- 'border-block-style': boolean;
- 'border-inline-style': boolean;
- 'border-block-start-color': boolean;
- 'border-block-end-color': boolean;
- 'border-inline-start-color': boolean;
- 'border-inline-end-color': boolean;
- 'border-block-color': boolean;
- 'border-inline-color': boolean;
- 'border-block-start': boolean;
- 'border-block-end': boolean;
- 'border-inline-start': boolean;
- 'border-inline-end': boolean;
- 'border-block': boolean;
- 'border-inline': boolean;
- 'border-start-start-radius': boolean;
- 'border-start-end-radius': boolean;
- 'border-end-start-radius': boolean;
- 'border-end-end-radius': boolean;
- 'text-align': string[];
- float: string[];
- resize: string[];
- 'overflow-block': boolean;
- 'overflow-inline': boolean;
- };
- 'css-marker-pseudo': Feature;
- 'css-masks': {
- 'clip-path': boolean;
- mask: boolean;
- 'mask-border': boolean;
- 'mask-border-mode': boolean;
- 'mask-border-outset': boolean;
- 'mask-border-repeat': boolean;
- 'mask-border-slice': boolean;
- 'mask-border-source': boolean;
- 'mask-border-width': boolean;
- 'mask-clip': boolean;
- 'mask-composite': boolean;
- 'mask-image': boolean;
- 'mask-mode': boolean;
- 'mask-origin': boolean;
- 'mask-position': boolean;
- 'mask-repeat': boolean;
- 'mask-size': boolean;
- 'mask-type': boolean;
- '-webkit-clip-path': boolean;
- '-webkit-mask': boolean;
- '-webkit-mask-border': boolean;
- '-webkit-mask-border-mode': boolean;
- '-webkit-mask-border-outset': boolean;
- '-webkit-mask-border-repeat': boolean;
- '-webkit-mask-border-slice': boolean;
- '-webkit-mask-border-source': boolean;
- '-webkit-mask-border-width': boolean;
- '-webkit-mask-clip': boolean;
- '-webkit-mask-composite': boolean;
- '-webkit-mask-image': boolean;
- '-webkit-mask-mode': boolean;
- '-webkit-mask-origin': boolean;
- '-webkit-mask-position': boolean;
- '-webkit-mask-repeat': boolean;
- '-webkit-mask-size': boolean;
- '-webkit-mask-type': boolean;
- };
- 'css-matches-pseudo': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-math-functions': {
- '': string[];
- };
- 'css-media-interaction': Feature;
- 'css-media-range-syntax': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-media-resolution': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-media-scripting': Feature;
- 'css-mediaqueries': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-mixblendmode': {
- 'mix-blend-mode': boolean;
- };
- 'css-motion-paths': {
- 'offset-path': boolean;
- };
- 'css-namespaces': Feature;
- 'css-nesting': Feature;
- 'css-not-sel-list': Feature;
- 'css-nth-child-of': Feature;
- 'css-opacity': {
- opacity: boolean;
- };
- 'css-optional-pseudo': Feature;
- 'css-overflow': Feature;
- 'css-overflow-anchor': Feature;
- 'css-overflow-overlay': {
- overflow: string;
- };
- 'css-overscroll-behavior': {
- 'overscroll-behavior': boolean;
- 'overscroll-behavior-x': boolean;
- 'overscroll-behavior-y': boolean;
- };
- 'css-page-break': Feature;
- 'css-paged-media': Feature;
- 'css-paint-api': Feature;
- 'css-placeholder': ((rule: import("postcss/lib/node.js").ChildNode) => boolean)[];
- 'css-placeholder-shown': Feature;
- 'css-print-color-adjust': {
- 'print-color-adjust': boolean;
- };
- 'css-read-only-write': Feature;
- 'css-rebeccapurple': Feature;
- 'css-reflections': {
- 'box-reflect': boolean;
- '-webkit-box-reflect': boolean;
- };
- 'css-regions': Feature;
- 'css-relative-colors': Feature;
- 'css-repeating-gradients': {
- '': string[];
- };
- 'css-resize': {
- resize: boolean;
- };
- 'css-revert-value': {
- '': string;
- };
- 'css-rrggbbaa': Feature;
- 'css-scroll-behavior': Feature;
- 'css-scroll-timeline': Feature;
- 'css-scrollbar': {
- 'scrollbar-color': boolean;
- 'scrollbar-width': boolean;
- };
- 'css-sel2': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-sel3': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-selection': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-shapes': {
- 'shape-outside': boolean;
- 'shape-image-threshold': boolean;
- 'shape-margin': boolean;
- };
- 'css-snappoints': Feature;
- 'css-sticky': {
- position: string;
- };
- 'css-subgrid': Feature;
- 'css-supports-api': Feature;
- 'css-table': {
- display: string[];
- };
- 'css-text-align-last': Feature;
- 'css-text-box-trim': Feature;
- 'css-text-indent': Feature;
- 'css-text-justify': Feature;
- 'css-text-orientation': Feature;
- 'css-text-spacing': Feature;
- 'css-textshadow': {
- 'text-shadow': boolean;
- };
- 'css-touch-action': {
- 'touch-action': boolean;
- };
- 'css-transitions': {
- transition: boolean;
- 'transition-property': boolean;
- 'transition-duration': boolean;
- 'transition-delay': boolean;
- 'transition-timing-function': boolean;
- };
- 'css-unicode-bidi': Feature;
- 'css-unset-value': {
- '': string;
- };
- 'css-variables': (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'css-when-else': Feature;
- 'css-widows-orphans': Feature;
- 'css-width-stretch': Feature;
- 'css-writing-mode': Feature;
- 'css-zoom': Feature;
- 'css3-attr': Feature;
- 'css3-boxsizing': {
- 'box-sizing': boolean;
- };
- 'css3-colors': {
- '': string[];
- };
- 'css3-cursors': {
- cursor: string[];
- };
- 'css3-cursors-grab': {
- cursor: string[];
- };
- 'css3-cursors-newer': {
- cursor: string[];
- };
- 'css3-tabsize': {
- 'tab-size': boolean;
- };
- currentcolor: Feature;
- devicepixelratio: Feature;
- 'extended-system-fonts': Feature;
- flexbox: {
- display: string[];
- flex: boolean;
- 'flex-grow': boolean;
- 'flex-shrink': boolean;
- 'flex-basis': boolean;
- 'flex-direction': boolean;
- 'flex-wrap': boolean;
- 'flex-flow': boolean;
- };
- 'flexbox-gap': Feature;
- 'flow-root': Feature;
- 'font-family-system-ui': Feature;
- 'font-feature': {
- 'font-feature-settings': boolean;
- 'font-variant-ligatures': boolean;
- 'font-language-override': boolean;
- 'font-kerning': boolean;
- };
- 'font-kerning': Feature;
- 'font-loading': Feature;
- 'font-size-adjust': {
- 'font-size-adjust': boolean;
- };
- 'font-smooth': Feature;
- 'font-unicode-range': {
- 'unicode-range': boolean;
- };
- 'font-variant-alternates': Feature;
- 'font-variant-numeric': Feature;
- fontface: ((rule: import("postcss/lib/node.js").ChildNode) => boolean)[];
- fullscreen: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- getcomputedstyle: Feature;
- 'inline-block': {
- display: string;
- };
- 'intrinsic-width': {
- width: string[];
- 'min-width': string[];
- 'max-width': string[];
- height: string[];
- 'min-height': string[];
- 'max-height': string[];
- };
- 'justify-content-space-evenly': Feature;
- 'kerning-pairs-ligatures': {
- 'text-rendering': string;
- };
- 'mdn-css-unicode-bidi-isolate': {
- 'unicode-bidi': string;
- };
- 'mdn-css-unicode-bidi-isolate-override': {
- 'unicode-bidi': string;
- };
- 'mdn-css-unicode-bidi-plaintext': {
- 'unicode-bidi': string;
- };
- 'mdn-text-decoration-color': {
- 'text-decoration-color': boolean;
- };
- 'mdn-text-decoration-line': {
- 'text-decoration-line': boolean;
- };
- 'mdn-text-decoration-shorthand': {
- 'text-decoration': boolean;
- };
- 'mdn-text-decoration-style': {
- 'text-decoration-style': boolean;
- };
- minmaxwh: {
- 'min-width': boolean;
- 'max-width': boolean;
- 'min-height': boolean;
- 'max-height': boolean;
- };
- multibackgrounds: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- multicolumn: {
- columns: boolean;
- 'column-width': boolean;
- 'column-gap': boolean;
- 'column-rule': boolean;
- 'column-rule-color': boolean;
- 'column-rule-width': boolean;
- 'column-count': boolean;
- 'column-rule-style': boolean;
- 'column-span': boolean;
- 'column-fill': boolean;
- 'break-before': boolean;
- 'break-after': boolean;
- 'break-inside': boolean;
- };
- 'object-fit': {
- 'object-fit': boolean;
- 'object-position': boolean;
- };
- outline: {
- outline: boolean;
- 'outline-style': boolean;
- 'outline-width': boolean;
- 'outline-color': boolean;
- };
- pointer: {
- 'touch-action': boolean;
- };
- 'pointer-events': {
- 'pointer-events': boolean;
- };
- 'prefers-color-scheme': Feature;
- 'prefers-reduced-motion': Feature;
- rem: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
- 'run-in': Feature;
- 'style-scoped': Feature;
- 'svg-css': Feature;
- 'text-decoration': {
- 'text-decoration-style': boolean;
- 'text-decoration-line': boolean;
- 'text-decoration-color': boolean;
- 'text-decoration': RegExp;
- 'text-decoration-thickness': boolean;
- 'text-decoration-skip': boolean;
- 'text-decoration-skip-ink': boolean;
- };
- 'text-emphasis': Feature;
- 'text-overflow': {
- 'text-overflow': boolean;
- };
- 'text-size-adjust': {
- 'text-size-adjust': boolean;
- };
- 'text-stroke': Feature;
- transforms2d: {
- transform: boolean;
- 'transform-origin': boolean;
- };
- transforms3d: {
- perspective: boolean;
- 'perspective-origin': boolean;
- 'transform-style': boolean;
- 'backface-visibility': boolean;
- transform: string;
- };
- ttf: Feature;
- 'user-select-none': {
- 'user-select': boolean;
- };
- 'variable-fonts': Feature;
- 'viewport-unit-variants': Feature;
- 'viewport-units': {
- '': string[];
- };
- 'webkit-user-drag': Feature;
- 'will-change': {
- 'will-change': boolean;
- };
- 'word-break': {
- 'word-break': boolean;
- };
- wordwrap: {
- 'overflow-wrap': boolean;
- 'word-wrap': boolean;
- };
-};
diff --git a/node_modules/doiuse/types/data/features/alternate-stylesheet.d.ts b/node_modules/doiuse/types/data/features/alternate-stylesheet.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/alternate-stylesheet.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/background-attachment.d.ts b/node_modules/doiuse/types/data/features/background-attachment.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/background-attachment.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/background-clip-text.d.ts b/node_modules/doiuse/types/data/features/background-clip-text.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/background-clip-text.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/background-img-opts.d.ts b/node_modules/doiuse/types/data/features/background-img-opts.d.ts
deleted file mode 100644
index 78c1aefe..00000000
--- a/node_modules/doiuse/types/data/features/background-img-opts.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-declare const _default: {
- 'background-clip': boolean;
- 'background-origin': boolean;
- 'background-size': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/background-position-x-y.d.ts b/node_modules/doiuse/types/data/features/background-position-x-y.d.ts
deleted file mode 100644
index a6c9a187..00000000
--- a/node_modules/doiuse/types/data/features/background-position-x-y.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare const _default: {
- 'background-position-x': boolean;
- 'background-position-y': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/background-repeat-round-space.d.ts b/node_modules/doiuse/types/data/features/background-repeat-round-space.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/background-repeat-round-space.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/border-image.d.ts b/node_modules/doiuse/types/data/features/border-image.d.ts
deleted file mode 100644
index 5ea36f26..00000000
--- a/node_modules/doiuse/types/data/features/border-image.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-declare const _default: {
- 'border-image': boolean;
- 'border-image-outset': boolean;
- 'border-image-repeat': boolean;
- 'border-image-slice': boolean;
- 'border-image-source': boolean;
- 'border-image-width': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/border-radius.d.ts b/node_modules/doiuse/types/data/features/border-radius.d.ts
deleted file mode 100644
index 42a5f870..00000000
--- a/node_modules/doiuse/types/data/features/border-radius.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-declare const _default: {
- 'border-radius': boolean;
- 'border-top-left-radius': boolean;
- 'border-top-right-radius': boolean;
- 'border-bottom-right-radius': boolean;
- 'border-bottom-left-radius': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/calc.d.ts b/node_modules/doiuse/types/data/features/calc.d.ts
deleted file mode 100644
index e9abdf25..00000000
--- a/node_modules/doiuse/types/data/features/calc.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- '': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/ch-unit.d.ts b/node_modules/doiuse/types/data/features/ch-unit.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/ch-unit.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-all.d.ts b/node_modules/doiuse/types/data/features/css-all.d.ts
deleted file mode 100644
index 9d932f8c..00000000
--- a/node_modules/doiuse/types/data/features/css-all.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let all: boolean;
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-animation.d.ts b/node_modules/doiuse/types/data/features/css-animation.d.ts
deleted file mode 100644
index 00d5a94f..00000000
--- a/node_modules/doiuse/types/data/features/css-animation.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-declare const _default: {
- animation: boolean;
- 'animation-name': boolean;
- 'animation-duration': boolean;
- 'animation-timing-function': boolean;
- 'animation-iteration-count': boolean;
- 'animation-direction': boolean;
- 'animation-play-state': boolean;
- 'animation-delay': boolean;
- 'animation-fill-mode': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-any-link.d.ts b/node_modules/doiuse/types/data/features/css-any-link.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-any-link.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-appearance.d.ts b/node_modules/doiuse/types/data/features/css-appearance.d.ts
deleted file mode 100644
index 5306895c..00000000
--- a/node_modules/doiuse/types/data/features/css-appearance.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-declare const _default: {
- appearance: boolean;
- '-webkit-appearance': boolean;
- '-moz-appearance': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-at-counter-style.d.ts b/node_modules/doiuse/types/data/features/css-at-counter-style.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-at-counter-style.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-autofill.d.ts b/node_modules/doiuse/types/data/features/css-autofill.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-autofill.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-backdrop-filter.d.ts b/node_modules/doiuse/types/data/features/css-backdrop-filter.d.ts
deleted file mode 100644
index 7b11086f..00000000
--- a/node_modules/doiuse/types/data/features/css-backdrop-filter.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'backdrop-filter': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-background-offsets.d.ts b/node_modules/doiuse/types/data/features/css-background-offsets.d.ts
deleted file mode 100644
index 2dbf6838..00000000
--- a/node_modules/doiuse/types/data/features/css-background-offsets.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare function _default(rule: import('postcss').ChildNode): boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-backgroundblendmode.d.ts b/node_modules/doiuse/types/data/features/css-backgroundblendmode.d.ts
deleted file mode 100644
index 0b1cfffb..00000000
--- a/node_modules/doiuse/types/data/features/css-backgroundblendmode.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'background-blend-mode': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-boxdecorationbreak.d.ts b/node_modules/doiuse/types/data/features/css-boxdecorationbreak.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-boxdecorationbreak.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-boxshadow.d.ts b/node_modules/doiuse/types/data/features/css-boxshadow.d.ts
deleted file mode 100644
index 42eee3a6..00000000
--- a/node_modules/doiuse/types/data/features/css-boxshadow.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'box-shadow': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-canvas.d.ts b/node_modules/doiuse/types/data/features/css-canvas.d.ts
deleted file mode 100644
index 2dbf6838..00000000
--- a/node_modules/doiuse/types/data/features/css-canvas.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare function _default(rule: import('postcss').ChildNode): boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-caret-color.d.ts b/node_modules/doiuse/types/data/features/css-caret-color.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-caret-color.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-cascade-layers.d.ts b/node_modules/doiuse/types/data/features/css-cascade-layers.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-cascade-layers.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-case-insensitive.d.ts b/node_modules/doiuse/types/data/features/css-case-insensitive.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-case-insensitive.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-clip-path.d.ts b/node_modules/doiuse/types/data/features/css-clip-path.d.ts
deleted file mode 100644
index 4d709c81..00000000
--- a/node_modules/doiuse/types/data/features/css-clip-path.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'clip-path': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-color-adjust.d.ts b/node_modules/doiuse/types/data/features/css-color-adjust.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-color-adjust.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-color-function.d.ts b/node_modules/doiuse/types/data/features/css-color-function.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-color-function.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-conic-gradients.d.ts b/node_modules/doiuse/types/data/features/css-conic-gradients.d.ts
deleted file mode 100644
index 0f7d08ee..00000000
--- a/node_modules/doiuse/types/data/features/css-conic-gradients.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-declare const _default: {
- background: RegExp;
- 'background-image': RegExp;
- 'border-image': RegExp;
- 'border-image-source': RegExp;
- content: RegExp;
- cursor: RegExp;
- 'list-style': RegExp;
- 'list-style-image': RegExp;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-container-queries-style.d.ts b/node_modules/doiuse/types/data/features/css-container-queries-style.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-container-queries-style.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-container-queries.d.ts b/node_modules/doiuse/types/data/features/css-container-queries.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-container-queries.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-container-query-units.d.ts b/node_modules/doiuse/types/data/features/css-container-query-units.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-container-query-units.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-containment.d.ts b/node_modules/doiuse/types/data/features/css-containment.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-containment.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-content-visibility.d.ts b/node_modules/doiuse/types/data/features/css-content-visibility.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-content-visibility.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-counters.d.ts b/node_modules/doiuse/types/data/features/css-counters.d.ts
deleted file mode 100644
index 15591bb6..00000000
--- a/node_modules/doiuse/types/data/features/css-counters.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-declare const _default: {
- 'counter-reset': boolean;
- 'counter-increment': boolean;
- '': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-crisp-edges.d.ts b/node_modules/doiuse/types/data/features/css-crisp-edges.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-crisp-edges.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-cross-fade.d.ts b/node_modules/doiuse/types/data/features/css-cross-fade.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-cross-fade.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-default-pseudo.d.ts b/node_modules/doiuse/types/data/features/css-default-pseudo.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-default-pseudo.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-descendant-gtgt.d.ts b/node_modules/doiuse/types/data/features/css-descendant-gtgt.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-descendant-gtgt.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-deviceadaptation.d.ts b/node_modules/doiuse/types/data/features/css-deviceadaptation.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-deviceadaptation.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-dir-pseudo.d.ts b/node_modules/doiuse/types/data/features/css-dir-pseudo.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-dir-pseudo.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-display-contents.d.ts b/node_modules/doiuse/types/data/features/css-display-contents.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-display-contents.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-element-function.d.ts b/node_modules/doiuse/types/data/features/css-element-function.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-element-function.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-env-function.d.ts b/node_modules/doiuse/types/data/features/css-env-function.d.ts
deleted file mode 100644
index e9abdf25..00000000
--- a/node_modules/doiuse/types/data/features/css-env-function.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- '': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-exclusions.d.ts b/node_modules/doiuse/types/data/features/css-exclusions.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-exclusions.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-featurequeries.d.ts b/node_modules/doiuse/types/data/features/css-featurequeries.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-featurequeries.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-file-selector-button.d.ts b/node_modules/doiuse/types/data/features/css-file-selector-button.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-file-selector-button.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-filter-function.d.ts b/node_modules/doiuse/types/data/features/css-filter-function.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-filter-function.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-filters.d.ts b/node_modules/doiuse/types/data/features/css-filters.d.ts
deleted file mode 100644
index 7d91e054..00000000
--- a/node_modules/doiuse/types/data/features/css-filters.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let filter: boolean;
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-first-letter.d.ts b/node_modules/doiuse/types/data/features/css-first-letter.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-first-letter.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-first-line.d.ts b/node_modules/doiuse/types/data/features/css-first-line.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-first-line.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-fixed.d.ts b/node_modules/doiuse/types/data/features/css-fixed.d.ts
deleted file mode 100644
index 48be0197..00000000
--- a/node_modules/doiuse/types/data/features/css-fixed.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let position: string;
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-focus-visible.d.ts b/node_modules/doiuse/types/data/features/css-focus-visible.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-focus-visible.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-focus-within.d.ts b/node_modules/doiuse/types/data/features/css-focus-within.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-focus-within.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-font-palette.d.ts b/node_modules/doiuse/types/data/features/css-font-palette.d.ts
deleted file mode 100644
index 2e9f0c70..00000000
--- a/node_modules/doiuse/types/data/features/css-font-palette.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: ((rule: any) => any)[];
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-font-rendering-controls.d.ts b/node_modules/doiuse/types/data/features/css-font-rendering-controls.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-font-rendering-controls.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-font-stretch.d.ts b/node_modules/doiuse/types/data/features/css-font-stretch.d.ts
deleted file mode 100644
index e5d73f80..00000000
--- a/node_modules/doiuse/types/data/features/css-font-stretch.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'font-stretch': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-gencontent.d.ts b/node_modules/doiuse/types/data/features/css-gencontent.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-gencontent.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-gradients.d.ts b/node_modules/doiuse/types/data/features/css-gradients.d.ts
deleted file mode 100644
index 0f7d08ee..00000000
--- a/node_modules/doiuse/types/data/features/css-gradients.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-declare const _default: {
- background: RegExp;
- 'background-image': RegExp;
- 'border-image': RegExp;
- 'border-image-source': RegExp;
- content: RegExp;
- cursor: RegExp;
- 'list-style': RegExp;
- 'list-style-image': RegExp;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-grid-animation.d.ts b/node_modules/doiuse/types/data/features/css-grid-animation.d.ts
deleted file mode 100644
index 7b363681..00000000
--- a/node_modules/doiuse/types/data/features/css-grid-animation.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare const _default: {
- transition: RegExp;
- 'transition-property': RegExp;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-grid.d.ts b/node_modules/doiuse/types/data/features/css-grid.d.ts
deleted file mode 100644
index 0239676e..00000000
--- a/node_modules/doiuse/types/data/features/css-grid.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-declare const _default: {
- display: string[];
- grid: boolean;
- 'grid-area': boolean;
- 'grid-auto-columns': boolean;
- 'grid-auto-flow': boolean;
- 'grid-auto-rows': boolean;
- 'grid-column': boolean;
- 'grid-column-end': boolean;
- 'grid-column-start': boolean;
- 'grid-row': boolean;
- 'grid-row-end': boolean;
- 'grid-row-start': boolean;
- 'grid-template': boolean;
- 'grid-template-areas': boolean;
- 'grid-template-columns': boolean;
- 'grid-template-rows': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-hanging-punctuation.d.ts b/node_modules/doiuse/types/data/features/css-hanging-punctuation.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-hanging-punctuation.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-has.d.ts b/node_modules/doiuse/types/data/features/css-has.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-has.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-hyphens.d.ts b/node_modules/doiuse/types/data/features/css-hyphens.d.ts
deleted file mode 100644
index daa4d458..00000000
--- a/node_modules/doiuse/types/data/features/css-hyphens.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let hyphens: boolean;
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-image-orientation.d.ts b/node_modules/doiuse/types/data/features/css-image-orientation.d.ts
deleted file mode 100644
index e0cd313f..00000000
--- a/node_modules/doiuse/types/data/features/css-image-orientation.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'image-orientation': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-image-set.d.ts b/node_modules/doiuse/types/data/features/css-image-set.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-image-set.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-in-out-of-range.d.ts b/node_modules/doiuse/types/data/features/css-in-out-of-range.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-in-out-of-range.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-indeterminate-pseudo.d.ts b/node_modules/doiuse/types/data/features/css-indeterminate-pseudo.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-indeterminate-pseudo.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-initial-letter.d.ts b/node_modules/doiuse/types/data/features/css-initial-letter.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-initial-letter.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-initial-value.d.ts b/node_modules/doiuse/types/data/features/css-initial-value.d.ts
deleted file mode 100644
index e9abdf25..00000000
--- a/node_modules/doiuse/types/data/features/css-initial-value.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- '': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-lch-lab.d.ts b/node_modules/doiuse/types/data/features/css-lch-lab.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-lch-lab.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-letter-spacing.d.ts b/node_modules/doiuse/types/data/features/css-letter-spacing.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-letter-spacing.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-line-clamp.d.ts b/node_modules/doiuse/types/data/features/css-line-clamp.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-line-clamp.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-logical-props.d.ts b/node_modules/doiuse/types/data/features/css-logical-props.d.ts
deleted file mode 100644
index f214d4c1..00000000
--- a/node_modules/doiuse/types/data/features/css-logical-props.d.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-declare const _default: {
- 'block-size': boolean;
- 'inline-size': boolean;
- 'min-block-size': boolean;
- 'min-inline-size': boolean;
- 'max-block-size': boolean;
- 'max-inline-size': boolean;
- 'margin-block-start': boolean;
- 'margin-block-end': boolean;
- 'margin-inline-start': boolean;
- 'margin-inline-end': boolean;
- 'margin-block': boolean;
- 'margin-inline': boolean;
- 'inset-block-start': boolean;
- 'inset-block-end': boolean;
- 'inset-inline-start': boolean;
- 'inset-inline-end': boolean;
- 'inset-block': boolean;
- 'inset-inline': boolean;
- inset: boolean;
- 'padding-block-start': boolean;
- 'padding-block-end': boolean;
- 'padding-inline-start': boolean;
- 'padding-inline-end': boolean;
- 'padding-block': boolean;
- 'padding-inline': boolean;
- 'border-block-start-width': boolean;
- 'border-block-end-width': boolean;
- 'border-inline-start-width': boolean;
- 'border-inline-end-width': boolean;
- 'border-block-width': boolean;
- 'border-inline-width': boolean;
- 'border-block-start-style': boolean;
- 'border-block-end-style': boolean;
- 'border-inline-start-style': boolean;
- 'border-inline-end-style': boolean;
- 'border-block-style': boolean;
- 'border-inline-style': boolean;
- 'border-block-start-color': boolean;
- 'border-block-end-color': boolean;
- 'border-inline-start-color': boolean;
- 'border-inline-end-color': boolean;
- 'border-block-color': boolean;
- 'border-inline-color': boolean;
- 'border-block-start': boolean;
- 'border-block-end': boolean;
- 'border-inline-start': boolean;
- 'border-inline-end': boolean;
- 'border-block': boolean;
- 'border-inline': boolean;
- 'border-start-start-radius': boolean;
- 'border-start-end-radius': boolean;
- 'border-end-start-radius': boolean;
- 'border-end-end-radius': boolean;
- 'text-align': string[];
- float: string[];
- resize: string[];
- 'overflow-block': boolean;
- 'overflow-inline': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-marker-pseudo.d.ts b/node_modules/doiuse/types/data/features/css-marker-pseudo.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-marker-pseudo.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-masks.d.ts b/node_modules/doiuse/types/data/features/css-masks.d.ts
deleted file mode 100644
index 4e8cb234..00000000
--- a/node_modules/doiuse/types/data/features/css-masks.d.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-declare const _default: {
- 'clip-path': boolean;
- mask: boolean;
- 'mask-border': boolean;
- 'mask-border-mode': boolean;
- 'mask-border-outset': boolean;
- 'mask-border-repeat': boolean;
- 'mask-border-slice': boolean;
- 'mask-border-source': boolean;
- 'mask-border-width': boolean;
- 'mask-clip': boolean;
- 'mask-composite': boolean;
- 'mask-image': boolean;
- 'mask-mode': boolean;
- 'mask-origin': boolean;
- 'mask-position': boolean;
- 'mask-repeat': boolean;
- 'mask-size': boolean;
- 'mask-type': boolean;
- '-webkit-clip-path': boolean;
- '-webkit-mask': boolean;
- '-webkit-mask-border': boolean;
- '-webkit-mask-border-mode': boolean;
- '-webkit-mask-border-outset': boolean;
- '-webkit-mask-border-repeat': boolean;
- '-webkit-mask-border-slice': boolean;
- '-webkit-mask-border-source': boolean;
- '-webkit-mask-border-width': boolean;
- '-webkit-mask-clip': boolean;
- '-webkit-mask-composite': boolean;
- '-webkit-mask-image': boolean;
- '-webkit-mask-mode': boolean;
- '-webkit-mask-origin': boolean;
- '-webkit-mask-position': boolean;
- '-webkit-mask-repeat': boolean;
- '-webkit-mask-size': boolean;
- '-webkit-mask-type': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-matches-pseudo.d.ts b/node_modules/doiuse/types/data/features/css-matches-pseudo.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-matches-pseudo.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-math-functions.d.ts b/node_modules/doiuse/types/data/features/css-math-functions.d.ts
deleted file mode 100644
index de2aca6e..00000000
--- a/node_modules/doiuse/types/data/features/css-math-functions.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- '': string[];
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-media-interaction.d.ts b/node_modules/doiuse/types/data/features/css-media-interaction.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-media-interaction.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-media-range-syntax.d.ts b/node_modules/doiuse/types/data/features/css-media-range-syntax.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-media-range-syntax.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-media-resolution.d.ts b/node_modules/doiuse/types/data/features/css-media-resolution.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-media-resolution.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-media-scripting.d.ts b/node_modules/doiuse/types/data/features/css-media-scripting.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-media-scripting.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-mediaqueries.d.ts b/node_modules/doiuse/types/data/features/css-mediaqueries.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-mediaqueries.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-mixblendmode.d.ts b/node_modules/doiuse/types/data/features/css-mixblendmode.d.ts
deleted file mode 100644
index 7c651984..00000000
--- a/node_modules/doiuse/types/data/features/css-mixblendmode.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'mix-blend-mode': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-motion-paths.d.ts b/node_modules/doiuse/types/data/features/css-motion-paths.d.ts
deleted file mode 100644
index 668aad63..00000000
--- a/node_modules/doiuse/types/data/features/css-motion-paths.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'offset-path': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-namespaces.d.ts b/node_modules/doiuse/types/data/features/css-namespaces.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-namespaces.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-nesting.d.ts b/node_modules/doiuse/types/data/features/css-nesting.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-nesting.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-not-sel-list.d.ts b/node_modules/doiuse/types/data/features/css-not-sel-list.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-not-sel-list.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-nth-child-of.d.ts b/node_modules/doiuse/types/data/features/css-nth-child-of.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-nth-child-of.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-opacity.d.ts b/node_modules/doiuse/types/data/features/css-opacity.d.ts
deleted file mode 100644
index 503169ee..00000000
--- a/node_modules/doiuse/types/data/features/css-opacity.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let opacity: boolean;
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-optional-pseudo.d.ts b/node_modules/doiuse/types/data/features/css-optional-pseudo.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-optional-pseudo.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-overflow-anchor.d.ts b/node_modules/doiuse/types/data/features/css-overflow-anchor.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-overflow-anchor.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-overflow-overlay.d.ts b/node_modules/doiuse/types/data/features/css-overflow-overlay.d.ts
deleted file mode 100644
index b3f11e17..00000000
--- a/node_modules/doiuse/types/data/features/css-overflow-overlay.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let overflow: string;
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-overflow.d.ts b/node_modules/doiuse/types/data/features/css-overflow.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-overflow.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-overscroll-behavior.d.ts b/node_modules/doiuse/types/data/features/css-overscroll-behavior.d.ts
deleted file mode 100644
index fc0a2dce..00000000
--- a/node_modules/doiuse/types/data/features/css-overscroll-behavior.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-declare const _default: {
- 'overscroll-behavior': boolean;
- 'overscroll-behavior-x': boolean;
- 'overscroll-behavior-y': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-page-break.d.ts b/node_modules/doiuse/types/data/features/css-page-break.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-page-break.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-paged-media.d.ts b/node_modules/doiuse/types/data/features/css-paged-media.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-paged-media.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-paint-api.d.ts b/node_modules/doiuse/types/data/features/css-paint-api.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-paint-api.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-placeholder-shown.d.ts b/node_modules/doiuse/types/data/features/css-placeholder-shown.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-placeholder-shown.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-placeholder.d.ts b/node_modules/doiuse/types/data/features/css-placeholder.d.ts
deleted file mode 100644
index ead1e0f0..00000000
--- a/node_modules/doiuse/types/data/features/css-placeholder.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: ((rule: import("postcss/lib/node.js").ChildNode) => boolean)[];
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-print-color-adjust.d.ts b/node_modules/doiuse/types/data/features/css-print-color-adjust.d.ts
deleted file mode 100644
index 69a15267..00000000
--- a/node_modules/doiuse/types/data/features/css-print-color-adjust.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'print-color-adjust': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-read-only-write.d.ts b/node_modules/doiuse/types/data/features/css-read-only-write.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-read-only-write.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-rebeccapurple.d.ts b/node_modules/doiuse/types/data/features/css-rebeccapurple.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-rebeccapurple.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-reflections.d.ts b/node_modules/doiuse/types/data/features/css-reflections.d.ts
deleted file mode 100644
index 20d0b51a..00000000
--- a/node_modules/doiuse/types/data/features/css-reflections.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare const _default: {
- 'box-reflect': boolean;
- '-webkit-box-reflect': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-regions.d.ts b/node_modules/doiuse/types/data/features/css-regions.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-regions.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-relative-colors.d.ts b/node_modules/doiuse/types/data/features/css-relative-colors.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-relative-colors.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-repeating-gradients.d.ts b/node_modules/doiuse/types/data/features/css-repeating-gradients.d.ts
deleted file mode 100644
index de2aca6e..00000000
--- a/node_modules/doiuse/types/data/features/css-repeating-gradients.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- '': string[];
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-resize.d.ts b/node_modules/doiuse/types/data/features/css-resize.d.ts
deleted file mode 100644
index f30fce5a..00000000
--- a/node_modules/doiuse/types/data/features/css-resize.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let resize: boolean;
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-revert-value.d.ts b/node_modules/doiuse/types/data/features/css-revert-value.d.ts
deleted file mode 100644
index e9abdf25..00000000
--- a/node_modules/doiuse/types/data/features/css-revert-value.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- '': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-rrggbbaa.d.ts b/node_modules/doiuse/types/data/features/css-rrggbbaa.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-rrggbbaa.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-scroll-behavior.d.ts b/node_modules/doiuse/types/data/features/css-scroll-behavior.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-scroll-behavior.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-scroll-timeline.d.ts b/node_modules/doiuse/types/data/features/css-scroll-timeline.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-scroll-timeline.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-scrollbar.d.ts b/node_modules/doiuse/types/data/features/css-scrollbar.d.ts
deleted file mode 100644
index d4c79319..00000000
--- a/node_modules/doiuse/types/data/features/css-scrollbar.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare const _default: {
- 'scrollbar-color': boolean;
- 'scrollbar-width': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-sel2.d.ts b/node_modules/doiuse/types/data/features/css-sel2.d.ts
deleted file mode 100644
index ff916920..00000000
--- a/node_modules/doiuse/types/data/features/css-sel2.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export namespace REGEXES {
- let HAS_ATTRIBUTE: RegExp;
- let MATCH_ATTRIBUTE: RegExp;
- let WORD_ATTRIBUTE: RegExp;
- let SUBCODE_ATTRIBUTE: RegExp;
- let BRACKET_PARENS: RegExp;
-}
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-sel3.d.ts b/node_modules/doiuse/types/data/features/css-sel3.d.ts
deleted file mode 100644
index cfd74e8d..00000000
--- a/node_modules/doiuse/types/data/features/css-sel3.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export namespace REGEXES {
- let SIBLING_SELECTOR: RegExp;
- let STARTSWITH_ATTRIBUTE: RegExp;
- let ENDSWITH_ATTRIBUTE: RegExp;
- let INSENSITIVE_ATTRIBUTE: RegExp;
-}
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-selection.d.ts b/node_modules/doiuse/types/data/features/css-selection.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/css-selection.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-shapes.d.ts b/node_modules/doiuse/types/data/features/css-shapes.d.ts
deleted file mode 100644
index 17233b47..00000000
--- a/node_modules/doiuse/types/data/features/css-shapes.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-declare const _default: {
- 'shape-outside': boolean;
- 'shape-image-threshold': boolean;
- 'shape-margin': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-snappoints.d.ts b/node_modules/doiuse/types/data/features/css-snappoints.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-snappoints.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-sticky.d.ts b/node_modules/doiuse/types/data/features/css-sticky.d.ts
deleted file mode 100644
index 48be0197..00000000
--- a/node_modules/doiuse/types/data/features/css-sticky.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let position: string;
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-subgrid.d.ts b/node_modules/doiuse/types/data/features/css-subgrid.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-subgrid.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-supports-api.d.ts b/node_modules/doiuse/types/data/features/css-supports-api.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-supports-api.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-table.d.ts b/node_modules/doiuse/types/data/features/css-table.d.ts
deleted file mode 100644
index 8ee6ac9c..00000000
--- a/node_modules/doiuse/types/data/features/css-table.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let display: string[];
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-text-align-last.d.ts b/node_modules/doiuse/types/data/features/css-text-align-last.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-text-align-last.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-text-box-trim.d.ts b/node_modules/doiuse/types/data/features/css-text-box-trim.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-text-box-trim.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-text-indent.d.ts b/node_modules/doiuse/types/data/features/css-text-indent.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-text-indent.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-text-justify.d.ts b/node_modules/doiuse/types/data/features/css-text-justify.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-text-justify.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-text-orientation.d.ts b/node_modules/doiuse/types/data/features/css-text-orientation.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-text-orientation.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-text-spacing.d.ts b/node_modules/doiuse/types/data/features/css-text-spacing.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-text-spacing.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-textshadow.d.ts b/node_modules/doiuse/types/data/features/css-textshadow.d.ts
deleted file mode 100644
index f1647e7c..00000000
--- a/node_modules/doiuse/types/data/features/css-textshadow.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'text-shadow': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-touch-action.d.ts b/node_modules/doiuse/types/data/features/css-touch-action.d.ts
deleted file mode 100644
index 41e36c8a..00000000
--- a/node_modules/doiuse/types/data/features/css-touch-action.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'touch-action': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-transitions.d.ts b/node_modules/doiuse/types/data/features/css-transitions.d.ts
deleted file mode 100644
index b2b373e7..00000000
--- a/node_modules/doiuse/types/data/features/css-transitions.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-declare const _default: {
- transition: boolean;
- 'transition-property': boolean;
- 'transition-duration': boolean;
- 'transition-delay': boolean;
- 'transition-timing-function': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-unicode-bidi.d.ts b/node_modules/doiuse/types/data/features/css-unicode-bidi.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-unicode-bidi.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-unset-value.d.ts b/node_modules/doiuse/types/data/features/css-unset-value.d.ts
deleted file mode 100644
index e9abdf25..00000000
--- a/node_modules/doiuse/types/data/features/css-unset-value.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- '': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-variables.d.ts b/node_modules/doiuse/types/data/features/css-variables.d.ts
deleted file mode 100644
index 2dbf6838..00000000
--- a/node_modules/doiuse/types/data/features/css-variables.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare function _default(rule: import('postcss').ChildNode): boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-when-else.d.ts b/node_modules/doiuse/types/data/features/css-when-else.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-when-else.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-widows-orphans.d.ts b/node_modules/doiuse/types/data/features/css-widows-orphans.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-widows-orphans.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-width-stretch.d.ts b/node_modules/doiuse/types/data/features/css-width-stretch.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-width-stretch.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-writing-mode.d.ts b/node_modules/doiuse/types/data/features/css-writing-mode.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-writing-mode.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css-zoom.d.ts b/node_modules/doiuse/types/data/features/css-zoom.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css-zoom.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css3-attr.d.ts b/node_modules/doiuse/types/data/features/css3-attr.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/css3-attr.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css3-boxsizing.d.ts b/node_modules/doiuse/types/data/features/css3-boxsizing.d.ts
deleted file mode 100644
index 2f6e597c..00000000
--- a/node_modules/doiuse/types/data/features/css3-boxsizing.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'box-sizing': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css3-colors.d.ts b/node_modules/doiuse/types/data/features/css3-colors.d.ts
deleted file mode 100644
index de2aca6e..00000000
--- a/node_modules/doiuse/types/data/features/css3-colors.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- '': string[];
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css3-cursors-grab.d.ts b/node_modules/doiuse/types/data/features/css3-cursors-grab.d.ts
deleted file mode 100644
index 8cea8157..00000000
--- a/node_modules/doiuse/types/data/features/css3-cursors-grab.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let cursor: string[];
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css3-cursors-newer.d.ts b/node_modules/doiuse/types/data/features/css3-cursors-newer.d.ts
deleted file mode 100644
index 8cea8157..00000000
--- a/node_modules/doiuse/types/data/features/css3-cursors-newer.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let cursor: string[];
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css3-cursors.d.ts b/node_modules/doiuse/types/data/features/css3-cursors.d.ts
deleted file mode 100644
index 8cea8157..00000000
--- a/node_modules/doiuse/types/data/features/css3-cursors.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let cursor: string[];
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/css3-tabsize.d.ts b/node_modules/doiuse/types/data/features/css3-tabsize.d.ts
deleted file mode 100644
index 8c68b4f7..00000000
--- a/node_modules/doiuse/types/data/features/css3-tabsize.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'tab-size': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/currentcolor.d.ts b/node_modules/doiuse/types/data/features/currentcolor.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/currentcolor.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/devicepixelratio.d.ts b/node_modules/doiuse/types/data/features/devicepixelratio.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/devicepixelratio.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/extended-system-fonts.d.ts b/node_modules/doiuse/types/data/features/extended-system-fonts.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/extended-system-fonts.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/flexbox-gap.d.ts b/node_modules/doiuse/types/data/features/flexbox-gap.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/flexbox-gap.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/flexbox.d.ts b/node_modules/doiuse/types/data/features/flexbox.d.ts
deleted file mode 100644
index aee7362b..00000000
--- a/node_modules/doiuse/types/data/features/flexbox.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-declare const _default: {
- display: string[];
- flex: boolean;
- 'flex-grow': boolean;
- 'flex-shrink': boolean;
- 'flex-basis': boolean;
- 'flex-direction': boolean;
- 'flex-wrap': boolean;
- 'flex-flow': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/flow-root.d.ts b/node_modules/doiuse/types/data/features/flow-root.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/flow-root.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/font-family-system-ui.d.ts b/node_modules/doiuse/types/data/features/font-family-system-ui.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/font-family-system-ui.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/font-feature.d.ts b/node_modules/doiuse/types/data/features/font-feature.d.ts
deleted file mode 100644
index cee8d3b2..00000000
--- a/node_modules/doiuse/types/data/features/font-feature.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-declare const _default: {
- 'font-feature-settings': boolean;
- 'font-variant-ligatures': boolean;
- 'font-language-override': boolean;
- 'font-kerning': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/font-kerning.d.ts b/node_modules/doiuse/types/data/features/font-kerning.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/font-kerning.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/font-loading.d.ts b/node_modules/doiuse/types/data/features/font-loading.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/font-loading.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/font-size-adjust.d.ts b/node_modules/doiuse/types/data/features/font-size-adjust.d.ts
deleted file mode 100644
index d271aa3e..00000000
--- a/node_modules/doiuse/types/data/features/font-size-adjust.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'font-size-adjust': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/font-smooth.d.ts b/node_modules/doiuse/types/data/features/font-smooth.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/font-smooth.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/font-unicode-range.d.ts b/node_modules/doiuse/types/data/features/font-unicode-range.d.ts
deleted file mode 100644
index b2de26b1..00000000
--- a/node_modules/doiuse/types/data/features/font-unicode-range.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'unicode-range': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/font-variant-alternates.d.ts b/node_modules/doiuse/types/data/features/font-variant-alternates.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/font-variant-alternates.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/font-variant-numeric.d.ts b/node_modules/doiuse/types/data/features/font-variant-numeric.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/font-variant-numeric.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/fontface.d.ts b/node_modules/doiuse/types/data/features/fontface.d.ts
deleted file mode 100644
index ead1e0f0..00000000
--- a/node_modules/doiuse/types/data/features/fontface.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: ((rule: import("postcss/lib/node.js").ChildNode) => boolean)[];
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/fullscreen.d.ts b/node_modules/doiuse/types/data/features/fullscreen.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/fullscreen.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/getcomputedstyle.d.ts b/node_modules/doiuse/types/data/features/getcomputedstyle.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/getcomputedstyle.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/inline-block.d.ts b/node_modules/doiuse/types/data/features/inline-block.d.ts
deleted file mode 100644
index 076ffde4..00000000
--- a/node_modules/doiuse/types/data/features/inline-block.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare namespace _default {
- let display: string;
-}
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/intrinsic-width.d.ts b/node_modules/doiuse/types/data/features/intrinsic-width.d.ts
deleted file mode 100644
index a19e9901..00000000
--- a/node_modules/doiuse/types/data/features/intrinsic-width.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-declare const _default: {
- width: string[];
- 'min-width': string[];
- 'max-width': string[];
- height: string[];
- 'min-height': string[];
- 'max-height': string[];
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/justify-content-space-evenly.d.ts b/node_modules/doiuse/types/data/features/justify-content-space-evenly.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/justify-content-space-evenly.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/kerning-pairs-ligatures.d.ts b/node_modules/doiuse/types/data/features/kerning-pairs-ligatures.d.ts
deleted file mode 100644
index 8ef9c98d..00000000
--- a/node_modules/doiuse/types/data/features/kerning-pairs-ligatures.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'text-rendering': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-isolate-override.d.ts b/node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-isolate-override.d.ts
deleted file mode 100644
index 63183b7c..00000000
--- a/node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-isolate-override.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'unicode-bidi': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-isolate.d.ts b/node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-isolate.d.ts
deleted file mode 100644
index 63183b7c..00000000
--- a/node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-isolate.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'unicode-bidi': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-plaintext.d.ts b/node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-plaintext.d.ts
deleted file mode 100644
index 63183b7c..00000000
--- a/node_modules/doiuse/types/data/features/mdn-css-unicode-bidi-plaintext.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'unicode-bidi': string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/mdn-text-decoration-color.d.ts b/node_modules/doiuse/types/data/features/mdn-text-decoration-color.d.ts
deleted file mode 100644
index b795d459..00000000
--- a/node_modules/doiuse/types/data/features/mdn-text-decoration-color.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'text-decoration-color': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/mdn-text-decoration-line.d.ts b/node_modules/doiuse/types/data/features/mdn-text-decoration-line.d.ts
deleted file mode 100644
index 69fd574c..00000000
--- a/node_modules/doiuse/types/data/features/mdn-text-decoration-line.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'text-decoration-line': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/mdn-text-decoration-shorthand.d.ts b/node_modules/doiuse/types/data/features/mdn-text-decoration-shorthand.d.ts
deleted file mode 100644
index a2ccf44f..00000000
--- a/node_modules/doiuse/types/data/features/mdn-text-decoration-shorthand.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'text-decoration': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/mdn-text-decoration-style.d.ts b/node_modules/doiuse/types/data/features/mdn-text-decoration-style.d.ts
deleted file mode 100644
index f715fd10..00000000
--- a/node_modules/doiuse/types/data/features/mdn-text-decoration-style.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'text-decoration-style': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/minmaxwh.d.ts b/node_modules/doiuse/types/data/features/minmaxwh.d.ts
deleted file mode 100644
index 758cc182..00000000
--- a/node_modules/doiuse/types/data/features/minmaxwh.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-declare const _default: {
- 'min-width': boolean;
- 'max-width': boolean;
- 'min-height': boolean;
- 'max-height': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/multibackgrounds.d.ts b/node_modules/doiuse/types/data/features/multibackgrounds.d.ts
deleted file mode 100644
index 2dbf6838..00000000
--- a/node_modules/doiuse/types/data/features/multibackgrounds.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare function _default(rule: import('postcss').ChildNode): boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/multicolumn.d.ts b/node_modules/doiuse/types/data/features/multicolumn.d.ts
deleted file mode 100644
index 97aca34e..00000000
--- a/node_modules/doiuse/types/data/features/multicolumn.d.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-declare const _default: {
- columns: boolean;
- 'column-width': boolean;
- 'column-gap': boolean;
- 'column-rule': boolean;
- 'column-rule-color': boolean;
- 'column-rule-width': boolean;
- 'column-count': boolean;
- 'column-rule-style': boolean;
- 'column-span': boolean;
- 'column-fill': boolean;
- 'break-before': boolean;
- 'break-after': boolean;
- 'break-inside': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/object-fit.d.ts b/node_modules/doiuse/types/data/features/object-fit.d.ts
deleted file mode 100644
index 54045cea..00000000
--- a/node_modules/doiuse/types/data/features/object-fit.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare const _default: {
- 'object-fit': boolean;
- 'object-position': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/outline.d.ts b/node_modules/doiuse/types/data/features/outline.d.ts
deleted file mode 100644
index 58053da8..00000000
--- a/node_modules/doiuse/types/data/features/outline.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-declare const _default: {
- outline: boolean;
- 'outline-style': boolean;
- 'outline-width': boolean;
- 'outline-color': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/pointer-events.d.ts b/node_modules/doiuse/types/data/features/pointer-events.d.ts
deleted file mode 100644
index f8fecaf9..00000000
--- a/node_modules/doiuse/types/data/features/pointer-events.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'pointer-events': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/pointer.d.ts b/node_modules/doiuse/types/data/features/pointer.d.ts
deleted file mode 100644
index 41e36c8a..00000000
--- a/node_modules/doiuse/types/data/features/pointer.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'touch-action': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/prefers-color-scheme.d.ts b/node_modules/doiuse/types/data/features/prefers-color-scheme.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/prefers-color-scheme.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/prefers-reduced-motion.d.ts b/node_modules/doiuse/types/data/features/prefers-reduced-motion.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/prefers-reduced-motion.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/rem.d.ts b/node_modules/doiuse/types/data/features/rem.d.ts
deleted file mode 100644
index 5f226387..00000000
--- a/node_modules/doiuse/types/data/features/rem.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: (rule: import("postcss/lib/node.js").ChildNode) => boolean;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/run-in.d.ts b/node_modules/doiuse/types/data/features/run-in.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/run-in.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/style-scoped.d.ts b/node_modules/doiuse/types/data/features/style-scoped.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/style-scoped.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/svg-css.d.ts b/node_modules/doiuse/types/data/features/svg-css.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/svg-css.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/text-decoration.d.ts b/node_modules/doiuse/types/data/features/text-decoration.d.ts
deleted file mode 100644
index 9f64bd04..00000000
--- a/node_modules/doiuse/types/data/features/text-decoration.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-declare const _default: {
- 'text-decoration-style': boolean;
- 'text-decoration-line': boolean;
- 'text-decoration-color': boolean;
- 'text-decoration': RegExp;
- 'text-decoration-thickness': boolean;
- 'text-decoration-skip': boolean;
- 'text-decoration-skip-ink': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/text-emphasis.d.ts b/node_modules/doiuse/types/data/features/text-emphasis.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/text-emphasis.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/text-overflow.d.ts b/node_modules/doiuse/types/data/features/text-overflow.d.ts
deleted file mode 100644
index 3d129e43..00000000
--- a/node_modules/doiuse/types/data/features/text-overflow.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'text-overflow': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/text-size-adjust.d.ts b/node_modules/doiuse/types/data/features/text-size-adjust.d.ts
deleted file mode 100644
index 51ca2e87..00000000
--- a/node_modules/doiuse/types/data/features/text-size-adjust.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'text-size-adjust': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/text-stroke.d.ts b/node_modules/doiuse/types/data/features/text-stroke.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/text-stroke.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/transforms2d.d.ts b/node_modules/doiuse/types/data/features/transforms2d.d.ts
deleted file mode 100644
index f870ccec..00000000
--- a/node_modules/doiuse/types/data/features/transforms2d.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare const _default: {
- transform: boolean;
- 'transform-origin': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/transforms3d.d.ts b/node_modules/doiuse/types/data/features/transforms3d.d.ts
deleted file mode 100644
index 31f3a085..00000000
--- a/node_modules/doiuse/types/data/features/transforms3d.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-declare const _default: {
- perspective: boolean;
- 'perspective-origin': boolean;
- 'transform-style': boolean;
- 'backface-visibility': boolean;
- transform: string;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/ttf.d.ts b/node_modules/doiuse/types/data/features/ttf.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/ttf.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/user-select-none.d.ts b/node_modules/doiuse/types/data/features/user-select-none.d.ts
deleted file mode 100644
index bf7305af..00000000
--- a/node_modules/doiuse/types/data/features/user-select-none.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'user-select': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/variable-fonts.d.ts b/node_modules/doiuse/types/data/features/variable-fonts.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/variable-fonts.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/viewport-unit-variants.d.ts b/node_modules/doiuse/types/data/features/viewport-unit-variants.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/viewport-unit-variants.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/viewport-units.d.ts b/node_modules/doiuse/types/data/features/viewport-units.d.ts
deleted file mode 100644
index de2aca6e..00000000
--- a/node_modules/doiuse/types/data/features/viewport-units.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- '': string[];
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/webkit-user-drag.d.ts b/node_modules/doiuse/types/data/features/webkit-user-drag.d.ts
deleted file mode 100644
index ba3f665f..00000000
--- a/node_modules/doiuse/types/data/features/webkit-user-drag.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const _default: import('../features').Feature;
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/will-change.d.ts b/node_modules/doiuse/types/data/features/will-change.d.ts
deleted file mode 100644
index 7e1c986d..00000000
--- a/node_modules/doiuse/types/data/features/will-change.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'will-change': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/word-break.d.ts b/node_modules/doiuse/types/data/features/word-break.d.ts
deleted file mode 100644
index 5163a5e3..00000000
--- a/node_modules/doiuse/types/data/features/word-break.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare const _default: {
- 'word-break': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/data/features/wordwrap.d.ts b/node_modules/doiuse/types/data/features/wordwrap.d.ts
deleted file mode 100644
index e34cb3cc..00000000
--- a/node_modules/doiuse/types/data/features/wordwrap.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-declare const _default: {
- 'overflow-wrap': boolean;
- 'word-wrap': boolean;
-};
-export default _default;
diff --git a/node_modules/doiuse/types/exports/index.d.ts b/node_modules/doiuse/types/exports/index.d.ts
deleted file mode 100644
index 33d2d468..00000000
--- a/node_modules/doiuse/types/exports/index.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * @param {ConstructorParameters<typeof DoIUse>} options
- * @return {DoIUse}
- */
-export default function index(optionsOrBrowserQuery?: import("../lib/DoIUse.js").DoIUseOptions): DoIUse;
-import DoIUse from '../lib/DoIUse.js';
diff --git a/node_modules/doiuse/types/exports/stream.d.ts b/node_modules/doiuse/types/exports/stream.d.ts
deleted file mode 100644
index acaa62d8..00000000
--- a/node_modules/doiuse/types/exports/stream.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * @param {ConstructorParameters<typeof CssUsageDuplex>} options
- * @return {CssUsageDuplex}
- */
-export default function index(options: {
- browsers: string;
- ignore?: ("outline" | "background-attachment" | "pointer" | "flow-root" | "font-kerning" | "font-smooth" | "font-variant-alternates" | "font-variant-numeric" | "inline-block" | "prefers-color-scheme" | "prefers-reduced-motion" | "rem" | "run-in" | "text-emphasis" | "text-stroke" | "webkit-user-drag" | "border-image" | "border-radius" | "font-size-adjust" | "text-decoration" | "object-fit" | "pointer-events" | "text-overflow" | "text-size-adjust" | "will-change" | "word-break" | "alternate-stylesheet" | "background-clip-text" | "background-img-opts" | "background-position-x-y" | "background-repeat-round-space" | "calc" | "ch-unit" | "css-all" | "css-animation" | "css-any-link" | "css-appearance" | "css-at-counter-style" | "css-autofill" | "css-backdrop-filter" | "css-background-offsets" | "css-backgroundblendmode" | "css-boxdecorationbreak" | "css-boxshadow" | "css-canvas" | "css-caret-color" | "css-cascade-layers" | "css-case-insensitive" | "css-clip-path" | "css-color-adjust" | "css-color-function" | "css-conic-gradients" | "css-container-queries" | "css-container-queries-style" | "css-container-query-units" | "css-containment" | "css-content-visibility" | "css-counters" | "css-crisp-edges" | "css-cross-fade" | "css-default-pseudo" | "css-descendant-gtgt" | "css-deviceadaptation" | "css-dir-pseudo" | "css-display-contents" | "css-element-function" | "css-env-function" | "css-exclusions" | "css-featurequeries" | "css-file-selector-button" | "css-filter-function" | "css-filters" | "css-first-letter" | "css-first-line" | "css-fixed" | "css-focus-visible" | "css-focus-within" | "css-font-palette" | "css-font-rendering-controls" | "css-font-stretch" | "css-gencontent" | "css-gradients" | "css-grid" | "css-grid-animation" | "css-hanging-punctuation" | "css-has" | "css-hyphens" | "css-image-orientation" | "css-image-set" | "css-in-out-of-range" | "css-indeterminate-pseudo" | "css-initial-letter" | "css-initial-value" | "css-lch-lab" | "css-letter-spacing" | "css-line-clamp" | "css-logical-props" | "css-marker-pseudo" | "css-masks" | "css-matches-pseudo" | "css-math-functions" | "css-media-interaction" | "css-media-range-syntax" | "css-media-resolution" | "css-media-scripting" | "css-mediaqueries" | "css-mixblendmode" | "css-motion-paths" | "css-namespaces" | "css-nesting" | "css-not-sel-list" | "css-nth-child-of" | "css-opacity" | "css-optional-pseudo" | "css-overflow" | "css-overflow-anchor" | "css-overflow-overlay" | "css-overscroll-behavior" | "css-page-break" | "css-paged-media" | "css-paint-api" | "css-placeholder" | "css-placeholder-shown" | "css-print-color-adjust" | "css-read-only-write" | "css-rebeccapurple" | "css-reflections" | "css-regions" | "css-relative-colors" | "css-repeating-gradients" | "css-resize" | "css-revert-value" | "css-rrggbbaa" | "css-scroll-behavior" | "css-scroll-timeline" | "css-scrollbar" | "css-sel2" | "css-sel3" | "css-selection" | "css-shapes" | "css-snappoints" | "css-sticky" | "css-subgrid" | "css-supports-api" | "css-table" | "css-text-align-last" | "css-text-box-trim" | "css-text-indent" | "css-text-justify" | "css-text-orientation" | "css-text-spacing" | "css-textshadow" | "css-touch-action" | "css-transitions" | "css-unicode-bidi" | "css-unset-value" | "css-variables" | "css-when-else" | "css-widows-orphans" | "css-width-stretch" | "css-writing-mode" | "css-zoom" | "css3-attr" | "css3-boxsizing" | "css3-colors" | "css3-cursors" | "css3-cursors-grab" | "css3-cursors-newer" | "css3-tabsize" | "currentcolor" | "devicepixelratio" | "extended-system-fonts" | "flexbox" | "flexbox-gap" | "font-family-system-ui" | "font-feature" | "font-loading" | "font-unicode-range" | "fontface" | "fullscreen" | "getcomputedstyle" | "intrinsic-width" | "justify-content-space-evenly" | "kerning-pairs-ligatures" | "mdn-css-unicode-bidi-isolate" | "mdn-css-unicode-bidi-isolate-override" | "mdn-css-unicode-bidi-plaintext" | "mdn-text-decoration-color" | "mdn-text-decoration-line" | "mdn-text-decoration-shorthand" | "mdn-text-decoration-style" | "minmaxwh" | "multibackgrounds" | "multicolumn" | "style-scoped" | "svg-css" | "transforms2d" | "transforms3d" | "ttf" | "user-select-none" | "variable-fonts" | "viewport-unit-variants" | "viewport-units" | "wordwrap")[];
- skipErrors?: boolean;
-}, filename?: string): CssUsageDuplex;
-import CssUsageDuplex from '../lib/stream/CssUsageDuplex.js';
diff --git a/node_modules/doiuse/types/lib/BrowserSelection.d.ts b/node_modules/doiuse/types/lib/BrowserSelection.d.ts
deleted file mode 100644
index 26b71cc0..00000000
--- a/node_modules/doiuse/types/lib/BrowserSelection.d.ts
+++ /dev/null
@@ -1,511 +0,0 @@
-/**
- * @template T
- * @typedef {{missing: T, partial: T}} Filter
- */
-/**
- * @typedef {Object} MissingSupportResultStats
- * @prop {string} title
- * @prop {caniuse.Feature} caniuseData
- * @prop {string} [missing]
- * @prop {Record<string, Record<string, string>>} [missingData]
- * @prop {string} [partial]
- * @prop {Record<string, Record<string, string>>} [partialData]
- */
-/**
- * @typedef {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} BrowserSupportStats
- */
-/**
- * @typedef {Object} MissingSupportResult
- * @prop {string[][]} browsers
- * @prop {Partial<Record<keyof FEATURES, MissingSupportResultStats>>} features
- */
-export default class BrowserSelection {
- /**
- * @param {Record<string, Record<string, string>>} browserStats
- * @return {string}
- */
- static lackingBrowsers(browserStats: Record<string, Record<string, string>>): string;
- /**
- * @see BrowserSelection.compileBrowserSupport
- * @param {ConstructorParameters<typeof this>} constructorParameters
- * @return {MissingSupportResult} `{browsers, features}`
- */
- static missingSupport(query?: string | string[], from?: string | false): MissingSupportResult;
- /**
- * @param {string | string[]} [query]
- * @param {string | false} [from]
- */
- constructor(query?: string | string[], from?: string | false);
- browsersRequest: string | string[];
- /**
- * @param {string} browser
- * @param {string} version
- * @return {string[]|undefined}
- */
- test(browser: string, version: string): string[] | undefined;
- list(): string[][];
- /**
- * @param {import('caniuse-lite').StatsByAgentID} stats
- * @return {Filter<Record<string,Record<string, string>>>}
- */
- filterStats(stats: import('caniuse-lite').StatsByAgentID): Filter<Record<string, Record<string, string>>>;
- /**
- * Get data on CSS features not supported by the given autoprefixer-like
- * browser selection.
- * @return {BrowserSupportStats} `features` is an array of:
- * ```
- * {
- * 'feature-name': {
- * title: 'Title of feature'
- * missing: "IE (8), Chrome (31)"
- * missingData: {
- * // map of browser -> version -> (lack of)support code
- * ie: { '8': 'n' },
- * chrome: { '31': 'n' }
- * }
- * partialData: {
- * // map of browser -> version -> (partial)support code
- * ie: { '7': 'a' },
- * ff: { '29': 'a #1' }
- * }
- * caniuseData: {
- * // caniuse-db json data for this feature
- * }
- * },
- * 'feature-name-2': {} // etc.
- * }
- * ```
- *
- * `feature-name` is a caniuse-db slug.
- */
- compileBrowserSupport(): BrowserSupportStats;
- #private;
-}
-export type Filter<T> = {
- missing: T;
- partial: T;
-};
-export type MissingSupportResultStats = {
- title: string;
- caniuseData: caniuse.Feature;
- missing?: string;
- missingData?: Record<string, Record<string, string>>;
- partial?: string;
- partialData?: Record<string, Record<string, string>>;
-};
-export type BrowserSupportStats = Partial<Record<keyof {
- outline: import("../data/features.js").Feature;
- "background-attachment": import("../data/features.js").Feature;
- pointer: import("../data/features.js").Feature;
- "flow-root": import("../data/features.js").Feature;
- "font-kerning": import("../data/features.js").Feature;
- "font-smooth": import("../data/features.js").Feature;
- "font-variant-alternates": import("../data/features.js").Feature;
- "font-variant-numeric": import("../data/features.js").Feature;
- "inline-block": import("../data/features.js").Feature;
- "prefers-color-scheme": import("../data/features.js").Feature;
- "prefers-reduced-motion": import("../data/features.js").Feature;
- rem: import("../data/features.js").Feature;
- "run-in": import("../data/features.js").Feature;
- "text-emphasis": import("../data/features.js").Feature;
- "text-stroke": import("../data/features.js").Feature;
- "webkit-user-drag": import("../data/features.js").Feature;
- "border-image": import("../data/features.js").Feature;
- "border-radius": import("../data/features.js").Feature;
- "font-size-adjust": import("../data/features.js").Feature;
- "text-decoration": import("../data/features.js").Feature;
- "object-fit": import("../data/features.js").Feature;
- "pointer-events": import("../data/features.js").Feature;
- "text-overflow": import("../data/features.js").Feature;
- "text-size-adjust": import("../data/features.js").Feature;
- "will-change": import("../data/features.js").Feature;
- "word-break": import("../data/features.js").Feature;
- "alternate-stylesheet": import("../data/features.js").Feature;
- "background-clip-text": import("../data/features.js").Feature;
- "background-img-opts": import("../data/features.js").Feature;
- "background-position-x-y": import("../data/features.js").Feature;
- "background-repeat-round-space": import("../data/features.js").Feature;
- calc: import("../data/features.js").Feature;
- "ch-unit": import("../data/features.js").Feature;
- "css-all": import("../data/features.js").Feature;
- "css-animation": import("../data/features.js").Feature;
- "css-any-link": import("../data/features.js").Feature;
- "css-appearance": import("../data/features.js").Feature;
- "css-at-counter-style": import("../data/features.js").Feature;
- "css-autofill": import("../data/features.js").Feature;
- "css-backdrop-filter": import("../data/features.js").Feature;
- "css-background-offsets": import("../data/features.js").Feature;
- "css-backgroundblendmode": import("../data/features.js").Feature;
- "css-boxdecorationbreak": import("../data/features.js").Feature;
- "css-boxshadow": import("../data/features.js").Feature;
- "css-canvas": import("../data/features.js").Feature;
- "css-caret-color": import("../data/features.js").Feature;
- "css-cascade-layers": import("../data/features.js").Feature;
- "css-case-insensitive": import("../data/features.js").Feature;
- "css-clip-path": import("../data/features.js").Feature;
- "css-color-adjust": import("../data/features.js").Feature;
- "css-color-function": import("../data/features.js").Feature;
- "css-conic-gradients": import("../data/features.js").Feature;
- "css-container-queries": import("../data/features.js").Feature;
- "css-container-queries-style": import("../data/features.js").Feature;
- "css-container-query-units": import("../data/features.js").Feature;
- "css-containment": import("../data/features.js").Feature;
- "css-content-visibility": import("../data/features.js").Feature;
- "css-counters": import("../data/features.js").Feature;
- "css-crisp-edges": import("../data/features.js").Feature;
- "css-cross-fade": import("../data/features.js").Feature;
- "css-default-pseudo": import("../data/features.js").Feature;
- "css-descendant-gtgt": import("../data/features.js").Feature;
- "css-deviceadaptation": import("../data/features.js").Feature;
- "css-dir-pseudo": import("../data/features.js").Feature;
- "css-display-contents": import("../data/features.js").Feature;
- "css-element-function": import("../data/features.js").Feature;
- "css-env-function": import("../data/features.js").Feature;
- "css-exclusions": import("../data/features.js").Feature;
- "css-featurequeries": import("../data/features.js").Feature;
- "css-file-selector-button": import("../data/features.js").Feature;
- "css-filter-function": import("../data/features.js").Feature;
- "css-filters": import("../data/features.js").Feature;
- "css-first-letter": import("../data/features.js").Feature;
- "css-first-line": import("../data/features.js").Feature;
- "css-fixed": import("../data/features.js").Feature;
- "css-focus-visible": import("../data/features.js").Feature;
- "css-focus-within": import("../data/features.js").Feature;
- "css-font-palette": import("../data/features.js").Feature;
- "css-font-rendering-controls": import("../data/features.js").Feature;
- "css-font-stretch": import("../data/features.js").Feature;
- "css-gencontent": import("../data/features.js").Feature;
- "css-gradients": import("../data/features.js").Feature;
- "css-grid": import("../data/features.js").Feature;
- "css-grid-animation": import("../data/features.js").Feature;
- "css-hanging-punctuation": import("../data/features.js").Feature;
- "css-has": import("../data/features.js").Feature;
- "css-hyphens": import("../data/features.js").Feature;
- "css-image-orientation": import("../data/features.js").Feature;
- "css-image-set": import("../data/features.js").Feature;
- "css-in-out-of-range": import("../data/features.js").Feature;
- "css-indeterminate-pseudo": import("../data/features.js").Feature;
- "css-initial-letter": import("../data/features.js").Feature;
- "css-initial-value": import("../data/features.js").Feature;
- "css-lch-lab": import("../data/features.js").Feature;
- "css-letter-spacing": import("../data/features.js").Feature;
- "css-line-clamp": import("../data/features.js").Feature;
- "css-logical-props": import("../data/features.js").Feature;
- "css-marker-pseudo": import("../data/features.js").Feature;
- "css-masks": import("../data/features.js").Feature;
- "css-matches-pseudo": import("../data/features.js").Feature;
- "css-math-functions": import("../data/features.js").Feature;
- "css-media-interaction": import("../data/features.js").Feature;
- "css-media-range-syntax": import("../data/features.js").Feature;
- "css-media-resolution": import("../data/features.js").Feature;
- "css-media-scripting": import("../data/features.js").Feature;
- "css-mediaqueries": import("../data/features.js").Feature;
- "css-mixblendmode": import("../data/features.js").Feature;
- "css-motion-paths": import("../data/features.js").Feature;
- "css-namespaces": import("../data/features.js").Feature;
- "css-nesting": import("../data/features.js").Feature;
- "css-not-sel-list": import("../data/features.js").Feature;
- "css-nth-child-of": import("../data/features.js").Feature;
- "css-opacity": import("../data/features.js").Feature;
- "css-optional-pseudo": import("../data/features.js").Feature;
- "css-overflow": import("../data/features.js").Feature;
- "css-overflow-anchor": import("../data/features.js").Feature;
- "css-overflow-overlay": import("../data/features.js").Feature;
- "css-overscroll-behavior": import("../data/features.js").Feature;
- "css-page-break": import("../data/features.js").Feature;
- "css-paged-media": import("../data/features.js").Feature;
- "css-paint-api": import("../data/features.js").Feature;
- "css-placeholder": import("../data/features.js").Feature;
- "css-placeholder-shown": import("../data/features.js").Feature;
- "css-print-color-adjust": import("../data/features.js").Feature;
- "css-read-only-write": import("../data/features.js").Feature;
- "css-rebeccapurple": import("../data/features.js").Feature;
- "css-reflections": import("../data/features.js").Feature;
- "css-regions": import("../data/features.js").Feature;
- "css-relative-colors": import("../data/features.js").Feature;
- "css-repeating-gradients": import("../data/features.js").Feature;
- "css-resize": import("../data/features.js").Feature;
- "css-revert-value": import("../data/features.js").Feature;
- "css-rrggbbaa": import("../data/features.js").Feature;
- "css-scroll-behavior": import("../data/features.js").Feature;
- "css-scroll-timeline": import("../data/features.js").Feature;
- "css-scrollbar": import("../data/features.js").Feature;
- "css-sel2": import("../data/features.js").Feature;
- "css-sel3": import("../data/features.js").Feature;
- "css-selection": import("../data/features.js").Feature;
- "css-shapes": import("../data/features.js").Feature;
- "css-snappoints": import("../data/features.js").Feature;
- "css-sticky": import("../data/features.js").Feature;
- "css-subgrid": import("../data/features.js").Feature;
- "css-supports-api": import("../data/features.js").Feature;
- "css-table": import("../data/features.js").Feature;
- "css-text-align-last": import("../data/features.js").Feature;
- "css-text-box-trim": import("../data/features.js").Feature;
- "css-text-indent": import("../data/features.js").Feature;
- "css-text-justify": import("../data/features.js").Feature;
- "css-text-orientation": import("../data/features.js").Feature;
- "css-text-spacing": import("../data/features.js").Feature;
- "css-textshadow": import("../data/features.js").Feature;
- "css-touch-action": import("../data/features.js").Feature;
- "css-transitions": import("../data/features.js").Feature;
- "css-unicode-bidi": import("../data/features.js").Feature;
- "css-unset-value": import("../data/features.js").Feature;
- "css-variables": import("../data/features.js").Feature;
- "css-when-else": import("../data/features.js").Feature;
- "css-widows-orphans": import("../data/features.js").Feature;
- "css-width-stretch": import("../data/features.js").Feature;
- "css-writing-mode": import("../data/features.js").Feature;
- "css-zoom": import("../data/features.js").Feature;
- "css3-attr": import("../data/features.js").Feature;
- "css3-boxsizing": import("../data/features.js").Feature;
- "css3-colors": import("../data/features.js").Feature;
- "css3-cursors": import("../data/features.js").Feature;
- "css3-cursors-grab": import("../data/features.js").Feature;
- "css3-cursors-newer": import("../data/features.js").Feature;
- "css3-tabsize": import("../data/features.js").Feature;
- currentcolor: import("../data/features.js").Feature;
- devicepixelratio: import("../data/features.js").Feature;
- "extended-system-fonts": import("../data/features.js").Feature;
- flexbox: import("../data/features.js").Feature;
- "flexbox-gap": import("../data/features.js").Feature;
- "font-family-system-ui": import("../data/features.js").Feature;
- "font-feature": import("../data/features.js").Feature;
- "font-loading": import("../data/features.js").Feature;
- "font-unicode-range": import("../data/features.js").Feature;
- fontface: import("../data/features.js").Feature;
- fullscreen: import("../data/features.js").Feature;
- getcomputedstyle: import("../data/features.js").Feature;
- "intrinsic-width": import("../data/features.js").Feature;
- "justify-content-space-evenly": import("../data/features.js").Feature;
- "kerning-pairs-ligatures": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate-override": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-plaintext": import("../data/features.js").Feature;
- "mdn-text-decoration-color": import("../data/features.js").Feature;
- "mdn-text-decoration-line": import("../data/features.js").Feature;
- "mdn-text-decoration-shorthand": import("../data/features.js").Feature;
- "mdn-text-decoration-style": import("../data/features.js").Feature;
- minmaxwh: import("../data/features.js").Feature;
- multibackgrounds: import("../data/features.js").Feature;
- multicolumn: import("../data/features.js").Feature;
- "style-scoped": import("../data/features.js").Feature;
- "svg-css": import("../data/features.js").Feature;
- transforms2d: import("../data/features.js").Feature;
- transforms3d: import("../data/features.js").Feature;
- ttf: import("../data/features.js").Feature;
- "user-select-none": import("../data/features.js").Feature;
- "variable-fonts": import("../data/features.js").Feature;
- "viewport-unit-variants": import("../data/features.js").Feature;
- "viewport-units": import("../data/features.js").Feature;
- wordwrap: import("../data/features.js").Feature;
-}, MissingSupportResultStats>>;
-export type MissingSupportResult = {
- browsers: string[][];
- features: Partial<Record<keyof {
- outline: import("../data/features.js").Feature;
- "background-attachment": import("../data/features.js").Feature;
- pointer: import("../data/features.js").Feature;
- "flow-root": import("../data/features.js").Feature;
- "font-kerning": import("../data/features.js").Feature;
- "font-smooth": import("../data/features.js").Feature;
- "font-variant-alternates": import("../data/features.js").Feature;
- "font-variant-numeric": import("../data/features.js").Feature;
- "inline-block": import("../data/features.js").Feature;
- "prefers-color-scheme": import("../data/features.js").Feature;
- "prefers-reduced-motion": import("../data/features.js").Feature;
- rem: import("../data/features.js").Feature;
- "run-in": import("../data/features.js").Feature;
- "text-emphasis": import("../data/features.js").Feature;
- "text-stroke": import("../data/features.js").Feature;
- "webkit-user-drag": import("../data/features.js").Feature;
- "border-image": import("../data/features.js").Feature;
- "border-radius": import("../data/features.js").Feature;
- "font-size-adjust": import("../data/features.js").Feature;
- "text-decoration": import("../data/features.js").Feature;
- "object-fit": import("../data/features.js").Feature;
- "pointer-events": import("../data/features.js").Feature;
- "text-overflow": import("../data/features.js").Feature;
- "text-size-adjust": import("../data/features.js").Feature;
- "will-change": import("../data/features.js").Feature;
- "word-break": import("../data/features.js").Feature;
- "alternate-stylesheet": import("../data/features.js").Feature;
- "background-clip-text": import("../data/features.js").Feature;
- "background-img-opts": import("../data/features.js").Feature;
- "background-position-x-y": import("../data/features.js").Feature;
- "background-repeat-round-space": import("../data/features.js").Feature;
- calc: import("../data/features.js").Feature;
- "ch-unit": import("../data/features.js").Feature;
- "css-all": import("../data/features.js").Feature;
- "css-animation": import("../data/features.js").Feature;
- "css-any-link": import("../data/features.js").Feature;
- "css-appearance": import("../data/features.js").Feature;
- "css-at-counter-style": import("../data/features.js").Feature;
- "css-autofill": import("../data/features.js").Feature;
- "css-backdrop-filter": import("../data/features.js").Feature;
- "css-background-offsets": import("../data/features.js").Feature;
- "css-backgroundblendmode": import("../data/features.js").Feature;
- "css-boxdecorationbreak": import("../data/features.js").Feature;
- "css-boxshadow": import("../data/features.js").Feature;
- "css-canvas": import("../data/features.js").Feature;
- "css-caret-color": import("../data/features.js").Feature;
- "css-cascade-layers": import("../data/features.js").Feature;
- "css-case-insensitive": import("../data/features.js").Feature;
- "css-clip-path": import("../data/features.js").Feature;
- "css-color-adjust": import("../data/features.js").Feature;
- "css-color-function": import("../data/features.js").Feature;
- "css-conic-gradients": import("../data/features.js").Feature;
- "css-container-queries": import("../data/features.js").Feature;
- "css-container-queries-style": import("../data/features.js").Feature;
- "css-container-query-units": import("../data/features.js").Feature;
- "css-containment": import("../data/features.js").Feature;
- "css-content-visibility": import("../data/features.js").Feature;
- "css-counters": import("../data/features.js").Feature;
- "css-crisp-edges": import("../data/features.js").Feature;
- "css-cross-fade": import("../data/features.js").Feature;
- "css-default-pseudo": import("../data/features.js").Feature;
- "css-descendant-gtgt": import("../data/features.js").Feature;
- "css-deviceadaptation": import("../data/features.js").Feature;
- "css-dir-pseudo": import("../data/features.js").Feature;
- "css-display-contents": import("../data/features.js").Feature;
- "css-element-function": import("../data/features.js").Feature;
- "css-env-function": import("../data/features.js").Feature;
- "css-exclusions": import("../data/features.js").Feature;
- "css-featurequeries": import("../data/features.js").Feature;
- "css-file-selector-button": import("../data/features.js").Feature;
- "css-filter-function": import("../data/features.js").Feature;
- "css-filters": import("../data/features.js").Feature;
- "css-first-letter": import("../data/features.js").Feature;
- "css-first-line": import("../data/features.js").Feature;
- "css-fixed": import("../data/features.js").Feature;
- "css-focus-visible": import("../data/features.js").Feature;
- "css-focus-within": import("../data/features.js").Feature;
- "css-font-palette": import("../data/features.js").Feature;
- "css-font-rendering-controls": import("../data/features.js").Feature;
- "css-font-stretch": import("../data/features.js").Feature;
- "css-gencontent": import("../data/features.js").Feature;
- "css-gradients": import("../data/features.js").Feature;
- "css-grid": import("../data/features.js").Feature;
- "css-grid-animation": import("../data/features.js").Feature;
- "css-hanging-punctuation": import("../data/features.js").Feature;
- "css-has": import("../data/features.js").Feature;
- "css-hyphens": import("../data/features.js").Feature;
- "css-image-orientation": import("../data/features.js").Feature;
- "css-image-set": import("../data/features.js").Feature;
- "css-in-out-of-range": import("../data/features.js").Feature;
- "css-indeterminate-pseudo": import("../data/features.js").Feature;
- "css-initial-letter": import("../data/features.js").Feature;
- "css-initial-value": import("../data/features.js").Feature;
- "css-lch-lab": import("../data/features.js").Feature;
- "css-letter-spacing": import("../data/features.js").Feature;
- "css-line-clamp": import("../data/features.js").Feature;
- "css-logical-props": import("../data/features.js").Feature;
- "css-marker-pseudo": import("../data/features.js").Feature;
- "css-masks": import("../data/features.js").Feature;
- "css-matches-pseudo": import("../data/features.js").Feature;
- "css-math-functions": import("../data/features.js").Feature;
- "css-media-interaction": import("../data/features.js").Feature;
- "css-media-range-syntax": import("../data/features.js").Feature;
- "css-media-resolution": import("../data/features.js").Feature;
- "css-media-scripting": import("../data/features.js").Feature;
- "css-mediaqueries": import("../data/features.js").Feature;
- "css-mixblendmode": import("../data/features.js").Feature;
- "css-motion-paths": import("../data/features.js").Feature;
- "css-namespaces": import("../data/features.js").Feature;
- "css-nesting": import("../data/features.js").Feature;
- "css-not-sel-list": import("../data/features.js").Feature;
- "css-nth-child-of": import("../data/features.js").Feature;
- "css-opacity": import("../data/features.js").Feature;
- "css-optional-pseudo": import("../data/features.js").Feature;
- "css-overflow": import("../data/features.js").Feature;
- "css-overflow-anchor": import("../data/features.js").Feature;
- "css-overflow-overlay": import("../data/features.js").Feature;
- "css-overscroll-behavior": import("../data/features.js").Feature;
- "css-page-break": import("../data/features.js").Feature;
- "css-paged-media": import("../data/features.js").Feature;
- "css-paint-api": import("../data/features.js").Feature;
- "css-placeholder": import("../data/features.js").Feature;
- "css-placeholder-shown": import("../data/features.js").Feature;
- "css-print-color-adjust": import("../data/features.js").Feature;
- "css-read-only-write": import("../data/features.js").Feature;
- "css-rebeccapurple": import("../data/features.js").Feature;
- "css-reflections": import("../data/features.js").Feature;
- "css-regions": import("../data/features.js").Feature;
- "css-relative-colors": import("../data/features.js").Feature;
- "css-repeating-gradients": import("../data/features.js").Feature;
- "css-resize": import("../data/features.js").Feature;
- "css-revert-value": import("../data/features.js").Feature;
- "css-rrggbbaa": import("../data/features.js").Feature;
- "css-scroll-behavior": import("../data/features.js").Feature;
- "css-scroll-timeline": import("../data/features.js").Feature;
- "css-scrollbar": import("../data/features.js").Feature;
- "css-sel2": import("../data/features.js").Feature;
- "css-sel3": import("../data/features.js").Feature;
- "css-selection": import("../data/features.js").Feature;
- "css-shapes": import("../data/features.js").Feature;
- "css-snappoints": import("../data/features.js").Feature;
- "css-sticky": import("../data/features.js").Feature;
- "css-subgrid": import("../data/features.js").Feature;
- "css-supports-api": import("../data/features.js").Feature;
- "css-table": import("../data/features.js").Feature;
- "css-text-align-last": import("../data/features.js").Feature;
- "css-text-box-trim": import("../data/features.js").Feature;
- "css-text-indent": import("../data/features.js").Feature;
- "css-text-justify": import("../data/features.js").Feature;
- "css-text-orientation": import("../data/features.js").Feature;
- "css-text-spacing": import("../data/features.js").Feature;
- "css-textshadow": import("../data/features.js").Feature;
- "css-touch-action": import("../data/features.js").Feature;
- "css-transitions": import("../data/features.js").Feature;
- "css-unicode-bidi": import("../data/features.js").Feature;
- "css-unset-value": import("../data/features.js").Feature;
- "css-variables": import("../data/features.js").Feature;
- "css-when-else": import("../data/features.js").Feature;
- "css-widows-orphans": import("../data/features.js").Feature;
- "css-width-stretch": import("../data/features.js").Feature;
- "css-writing-mode": import("../data/features.js").Feature;
- "css-zoom": import("../data/features.js").Feature;
- "css3-attr": import("../data/features.js").Feature;
- "css3-boxsizing": import("../data/features.js").Feature;
- "css3-colors": import("../data/features.js").Feature;
- "css3-cursors": import("../data/features.js").Feature;
- "css3-cursors-grab": import("../data/features.js").Feature;
- "css3-cursors-newer": import("../data/features.js").Feature;
- "css3-tabsize": import("../data/features.js").Feature;
- currentcolor: import("../data/features.js").Feature;
- devicepixelratio: import("../data/features.js").Feature;
- "extended-system-fonts": import("../data/features.js").Feature;
- flexbox: import("../data/features.js").Feature;
- "flexbox-gap": import("../data/features.js").Feature;
- "font-family-system-ui": import("../data/features.js").Feature;
- "font-feature": import("../data/features.js").Feature;
- "font-loading": import("../data/features.js").Feature;
- "font-unicode-range": import("../data/features.js").Feature;
- fontface: import("../data/features.js").Feature;
- fullscreen: import("../data/features.js").Feature;
- getcomputedstyle: import("../data/features.js").Feature;
- "intrinsic-width": import("../data/features.js").Feature;
- "justify-content-space-evenly": import("../data/features.js").Feature;
- "kerning-pairs-ligatures": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate-override": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-plaintext": import("../data/features.js").Feature;
- "mdn-text-decoration-color": import("../data/features.js").Feature;
- "mdn-text-decoration-line": import("../data/features.js").Feature;
- "mdn-text-decoration-shorthand": import("../data/features.js").Feature;
- "mdn-text-decoration-style": import("../data/features.js").Feature;
- minmaxwh: import("../data/features.js").Feature;
- multibackgrounds: import("../data/features.js").Feature;
- multicolumn: import("../data/features.js").Feature;
- "style-scoped": import("../data/features.js").Feature;
- "svg-css": import("../data/features.js").Feature;
- transforms2d: import("../data/features.js").Feature;
- transforms3d: import("../data/features.js").Feature;
- ttf: import("../data/features.js").Feature;
- "user-select-none": import("../data/features.js").Feature;
- "variable-fonts": import("../data/features.js").Feature;
- "viewport-unit-variants": import("../data/features.js").Feature;
- "viewport-units": import("../data/features.js").Feature;
- wordwrap: import("../data/features.js").Feature;
- }, MissingSupportResultStats>>;
-};
-import * as caniuse from 'caniuse-lite';
diff --git a/node_modules/doiuse/types/lib/Detector.d.ts b/node_modules/doiuse/types/lib/Detector.d.ts
deleted file mode 100644
index 27be89f3..00000000
--- a/node_modules/doiuse/types/lib/Detector.d.ts
+++ /dev/null
@@ -1,1076 +0,0 @@
-/**
- * Detect the use of any of a given list of CSS features.
- * ```
- * var detector = new Detector(featureList)
- * detector.process(css, cb)
- * ```
- *
- * `featureList`: an array of feature slugs (see caniuse-db)
- * `cb`: a callback that gets called for each usage of one of the given features,
- * called with an argument like:
- * ```
- * {
- * usage: {} // postcss node where usage was found
- * feature: {} // caniuse-db feature slug
- * ignore: {} // caniuse-db feature to ignore in current file
- * }
- * ```
- */
-export default class Detector {
- /**
- * @param {(keyof FEATURES & string)[]} featureList an array of feature slugs (see caniuse-db)
- */
- constructor(featureList: (keyof {
- outline: import("../data/features.js").Feature;
- "background-attachment": import("../data/features.js").Feature;
- pointer: import("../data/features.js").Feature;
- "flow-root": import("../data/features.js").Feature;
- "font-kerning": import("../data/features.js").Feature;
- "font-smooth": import("../data/features.js").Feature;
- "font-variant-alternates": import("../data/features.js").Feature;
- "font-variant-numeric": import("../data/features.js").Feature;
- "inline-block": import("../data/features.js").Feature;
- "prefers-color-scheme": import("../data/features.js").Feature;
- "prefers-reduced-motion": import("../data/features.js").Feature;
- rem: import("../data/features.js").Feature;
- "run-in": import("../data/features.js").Feature;
- "text-emphasis": import("../data/features.js").Feature;
- "text-stroke": import("../data/features.js").Feature;
- "webkit-user-drag": import("../data/features.js").Feature;
- "border-image": import("../data/features.js").Feature;
- "border-radius": import("../data/features.js").Feature;
- "font-size-adjust": import("../data/features.js").Feature;
- "text-decoration": import("../data/features.js").Feature;
- "object-fit": import("../data/features.js").Feature;
- "pointer-events": import("../data/features.js").Feature;
- "text-overflow": import("../data/features.js").Feature;
- "text-size-adjust": import("../data/features.js").Feature;
- "will-change": import("../data/features.js").Feature;
- "word-break": import("../data/features.js").Feature;
- "alternate-stylesheet": import("../data/features.js").Feature;
- "background-clip-text": import("../data/features.js").Feature;
- "background-img-opts": import("../data/features.js").Feature;
- "background-position-x-y": import("../data/features.js").Feature;
- "background-repeat-round-space": import("../data/features.js").Feature;
- calc: import("../data/features.js").Feature;
- "ch-unit": import("../data/features.js").Feature;
- "css-all": import("../data/features.js").Feature;
- "css-animation": import("../data/features.js").Feature;
- "css-any-link": import("../data/features.js").Feature;
- "css-appearance": import("../data/features.js").Feature;
- "css-at-counter-style": import("../data/features.js").Feature;
- "css-autofill": import("../data/features.js").Feature;
- "css-backdrop-filter": import("../data/features.js").Feature;
- "css-background-offsets": import("../data/features.js").Feature;
- "css-backgroundblendmode": import("../data/features.js").Feature;
- "css-boxdecorationbreak": import("../data/features.js").Feature;
- "css-boxshadow": import("../data/features.js").Feature;
- "css-canvas": import("../data/features.js").Feature;
- "css-caret-color": import("../data/features.js").Feature;
- "css-cascade-layers": import("../data/features.js").Feature;
- "css-case-insensitive": import("../data/features.js").Feature;
- "css-clip-path": import("../data/features.js").Feature;
- "css-color-adjust": import("../data/features.js").Feature;
- "css-color-function": import("../data/features.js").Feature;
- "css-conic-gradients": import("../data/features.js").Feature;
- "css-container-queries": import("../data/features.js").Feature;
- "css-container-queries-style": import("../data/features.js").Feature;
- "css-container-query-units": import("../data/features.js").Feature;
- "css-containment": import("../data/features.js").Feature;
- "css-content-visibility": import("../data/features.js").Feature;
- "css-counters": import("../data/features.js").Feature;
- "css-crisp-edges": import("../data/features.js").Feature;
- "css-cross-fade": import("../data/features.js").Feature;
- "css-default-pseudo": import("../data/features.js").Feature;
- "css-descendant-gtgt": import("../data/features.js").Feature;
- "css-deviceadaptation": import("../data/features.js").Feature;
- "css-dir-pseudo": import("../data/features.js").Feature;
- "css-display-contents": import("../data/features.js").Feature;
- "css-element-function": import("../data/features.js").Feature;
- "css-env-function": import("../data/features.js").Feature;
- "css-exclusions": import("../data/features.js").Feature;
- "css-featurequeries": import("../data/features.js").Feature;
- "css-file-selector-button": import("../data/features.js").Feature;
- "css-filter-function": import("../data/features.js").Feature;
- "css-filters": import("../data/features.js").Feature;
- "css-first-letter": import("../data/features.js").Feature;
- "css-first-line": import("../data/features.js").Feature;
- "css-fixed": import("../data/features.js").Feature;
- "css-focus-visible": import("../data/features.js").Feature;
- "css-focus-within": import("../data/features.js").Feature;
- "css-font-palette": import("../data/features.js").Feature;
- "css-font-rendering-controls": import("../data/features.js").Feature;
- "css-font-stretch": import("../data/features.js").Feature;
- "css-gencontent": import("../data/features.js").Feature;
- "css-gradients": import("../data/features.js").Feature;
- "css-grid": import("../data/features.js").Feature;
- "css-grid-animation": import("../data/features.js").Feature;
- "css-hanging-punctuation": import("../data/features.js").Feature;
- "css-has": import("../data/features.js").Feature;
- "css-hyphens": import("../data/features.js").Feature;
- "css-image-orientation": import("../data/features.js").Feature;
- "css-image-set": import("../data/features.js").Feature;
- "css-in-out-of-range": import("../data/features.js").Feature;
- "css-indeterminate-pseudo": import("../data/features.js").Feature;
- "css-initial-letter": import("../data/features.js").Feature;
- "css-initial-value": import("../data/features.js").Feature;
- "css-lch-lab": import("../data/features.js").Feature;
- "css-letter-spacing": import("../data/features.js").Feature;
- "css-line-clamp": import("../data/features.js").Feature;
- "css-logical-props": import("../data/features.js").Feature;
- "css-marker-pseudo": import("../data/features.js").Feature;
- "css-masks": import("../data/features.js").Feature;
- "css-matches-pseudo": import("../data/features.js").Feature;
- "css-math-functions": import("../data/features.js").Feature;
- "css-media-interaction": import("../data/features.js").Feature;
- "css-media-range-syntax": import("../data/features.js").Feature;
- "css-media-resolution": import("../data/features.js").Feature;
- "css-media-scripting": import("../data/features.js").Feature;
- "css-mediaqueries": import("../data/features.js").Feature;
- "css-mixblendmode": import("../data/features.js").Feature;
- "css-motion-paths": import("../data/features.js").Feature;
- "css-namespaces": import("../data/features.js").Feature;
- "css-nesting": import("../data/features.js").Feature;
- "css-not-sel-list": import("../data/features.js").Feature;
- "css-nth-child-of": import("../data/features.js").Feature;
- "css-opacity": import("../data/features.js").Feature;
- "css-optional-pseudo": import("../data/features.js").Feature;
- "css-overflow": import("../data/features.js").Feature;
- "css-overflow-anchor": import("../data/features.js").Feature;
- "css-overflow-overlay": import("../data/features.js").Feature;
- "css-overscroll-behavior": import("../data/features.js").Feature;
- "css-page-break": import("../data/features.js").Feature;
- "css-paged-media": import("../data/features.js").Feature;
- "css-paint-api": import("../data/features.js").Feature;
- "css-placeholder": import("../data/features.js").Feature;
- "css-placeholder-shown": import("../data/features.js").Feature;
- "css-print-color-adjust": import("../data/features.js").Feature;
- "css-read-only-write": import("../data/features.js").Feature;
- "css-rebeccapurple": import("../data/features.js").Feature;
- "css-reflections": import("../data/features.js").Feature;
- "css-regions": import("../data/features.js").Feature;
- "css-relative-colors": import("../data/features.js").Feature;
- "css-repeating-gradients": import("../data/features.js").Feature;
- "css-resize": import("../data/features.js").Feature;
- "css-revert-value": import("../data/features.js").Feature;
- "css-rrggbbaa": import("../data/features.js").Feature;
- "css-scroll-behavior": import("../data/features.js").Feature;
- "css-scroll-timeline": import("../data/features.js").Feature;
- "css-scrollbar": import("../data/features.js").Feature;
- "css-sel2": import("../data/features.js").Feature;
- "css-sel3": import("../data/features.js").Feature;
- "css-selection": import("../data/features.js").Feature;
- "css-shapes": import("../data/features.js").Feature;
- "css-snappoints": import("../data/features.js").Feature;
- "css-sticky": import("../data/features.js").Feature;
- "css-subgrid": import("../data/features.js").Feature;
- "css-supports-api": import("../data/features.js").Feature;
- "css-table": import("../data/features.js").Feature;
- "css-text-align-last": import("../data/features.js").Feature;
- "css-text-box-trim": import("../data/features.js").Feature;
- "css-text-indent": import("../data/features.js").Feature;
- "css-text-justify": import("../data/features.js").Feature;
- "css-text-orientation": import("../data/features.js").Feature;
- "css-text-spacing": import("../data/features.js").Feature;
- "css-textshadow": import("../data/features.js").Feature;
- "css-touch-action": import("../data/features.js").Feature;
- "css-transitions": import("../data/features.js").Feature;
- "css-unicode-bidi": import("../data/features.js").Feature;
- "css-unset-value": import("../data/features.js").Feature;
- "css-variables": import("../data/features.js").Feature;
- "css-when-else": import("../data/features.js").Feature;
- "css-widows-orphans": import("../data/features.js").Feature;
- "css-width-stretch": import("../data/features.js").Feature;
- "css-writing-mode": import("../data/features.js").Feature;
- "css-zoom": import("../data/features.js").Feature;
- "css3-attr": import("../data/features.js").Feature;
- "css3-boxsizing": import("../data/features.js").Feature;
- "css3-colors": import("../data/features.js").Feature;
- "css3-cursors": import("../data/features.js").Feature;
- "css3-cursors-grab": import("../data/features.js").Feature;
- "css3-cursors-newer": import("../data/features.js").Feature;
- "css3-tabsize": import("../data/features.js").Feature;
- currentcolor: import("../data/features.js").Feature;
- devicepixelratio: import("../data/features.js").Feature;
- "extended-system-fonts": import("../data/features.js").Feature;
- flexbox: import("../data/features.js").Feature;
- "flexbox-gap": import("../data/features.js").Feature;
- "font-family-system-ui": import("../data/features.js").Feature;
- "font-feature": import("../data/features.js").Feature;
- "font-loading": import("../data/features.js").Feature;
- "font-unicode-range": import("../data/features.js").Feature;
- fontface: import("../data/features.js").Feature;
- fullscreen: import("../data/features.js").Feature;
- getcomputedstyle: import("../data/features.js").Feature;
- "intrinsic-width": import("../data/features.js").Feature;
- "justify-content-space-evenly": import("../data/features.js").Feature;
- "kerning-pairs-ligatures": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate-override": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-plaintext": import("../data/features.js").Feature;
- "mdn-text-decoration-color": import("../data/features.js").Feature;
- "mdn-text-decoration-line": import("../data/features.js").Feature;
- "mdn-text-decoration-shorthand": import("../data/features.js").Feature;
- "mdn-text-decoration-style": import("../data/features.js").Feature;
- minmaxwh: import("../data/features.js").Feature;
- multibackgrounds: import("../data/features.js").Feature;
- multicolumn: import("../data/features.js").Feature;
- "style-scoped": import("../data/features.js").Feature;
- "svg-css": import("../data/features.js").Feature;
- transforms2d: import("../data/features.js").Feature;
- transforms3d: import("../data/features.js").Feature;
- ttf: import("../data/features.js").Feature;
- "user-select-none": import("../data/features.js").Feature;
- "variable-fonts": import("../data/features.js").Feature;
- "viewport-unit-variants": import("../data/features.js").Feature;
- "viewport-units": import("../data/features.js").Feature;
- wordwrap: import("../data/features.js").Feature;
- } & string)[]);
- /** @type {Partial<FEATURES>} */
- features: Partial<{
- outline: import("../data/features.js").Feature;
- "background-attachment": import("../data/features.js").Feature;
- pointer: import("../data/features.js").Feature;
- "flow-root": import("../data/features.js").Feature;
- "font-kerning": import("../data/features.js").Feature;
- "font-smooth": import("../data/features.js").Feature;
- "font-variant-alternates": import("../data/features.js").Feature;
- "font-variant-numeric": import("../data/features.js").Feature;
- "inline-block": import("../data/features.js").Feature;
- "prefers-color-scheme": import("../data/features.js").Feature;
- "prefers-reduced-motion": import("../data/features.js").Feature;
- rem: import("../data/features.js").Feature;
- "run-in": import("../data/features.js").Feature;
- "text-emphasis": import("../data/features.js").Feature;
- "text-stroke": import("../data/features.js").Feature;
- "webkit-user-drag": import("../data/features.js").Feature;
- "border-image": import("../data/features.js").Feature;
- "border-radius": import("../data/features.js").Feature;
- "font-size-adjust": import("../data/features.js").Feature;
- "text-decoration": import("../data/features.js").Feature;
- "object-fit": import("../data/features.js").Feature;
- "pointer-events": import("../data/features.js").Feature;
- "text-overflow": import("../data/features.js").Feature;
- "text-size-adjust": import("../data/features.js").Feature;
- "will-change": import("../data/features.js").Feature;
- "word-break": import("../data/features.js").Feature;
- "alternate-stylesheet": import("../data/features.js").Feature;
- "background-clip-text": import("../data/features.js").Feature;
- "background-img-opts": import("../data/features.js").Feature;
- "background-position-x-y": import("../data/features.js").Feature;
- "background-repeat-round-space": import("../data/features.js").Feature;
- calc: import("../data/features.js").Feature;
- "ch-unit": import("../data/features.js").Feature;
- "css-all": import("../data/features.js").Feature;
- "css-animation": import("../data/features.js").Feature;
- "css-any-link": import("../data/features.js").Feature;
- "css-appearance": import("../data/features.js").Feature;
- "css-at-counter-style": import("../data/features.js").Feature;
- "css-autofill": import("../data/features.js").Feature;
- "css-backdrop-filter": import("../data/features.js").Feature;
- "css-background-offsets": import("../data/features.js").Feature;
- "css-backgroundblendmode": import("../data/features.js").Feature;
- "css-boxdecorationbreak": import("../data/features.js").Feature;
- "css-boxshadow": import("../data/features.js").Feature;
- "css-canvas": import("../data/features.js").Feature;
- "css-caret-color": import("../data/features.js").Feature;
- "css-cascade-layers": import("../data/features.js").Feature;
- "css-case-insensitive": import("../data/features.js").Feature;
- "css-clip-path": import("../data/features.js").Feature;
- "css-color-adjust": import("../data/features.js").Feature;
- "css-color-function": import("../data/features.js").Feature;
- "css-conic-gradients": import("../data/features.js").Feature;
- "css-container-queries": import("../data/features.js").Feature;
- "css-container-queries-style": import("../data/features.js").Feature;
- "css-container-query-units": import("../data/features.js").Feature;
- "css-containment": import("../data/features.js").Feature;
- "css-content-visibility": import("../data/features.js").Feature;
- "css-counters": import("../data/features.js").Feature;
- "css-crisp-edges": import("../data/features.js").Feature;
- "css-cross-fade": import("../data/features.js").Feature;
- "css-default-pseudo": import("../data/features.js").Feature;
- "css-descendant-gtgt": import("../data/features.js").Feature;
- "css-deviceadaptation": import("../data/features.js").Feature;
- "css-dir-pseudo": import("../data/features.js").Feature;
- "css-display-contents": import("../data/features.js").Feature;
- "css-element-function": import("../data/features.js").Feature;
- "css-env-function": import("../data/features.js").Feature;
- "css-exclusions": import("../data/features.js").Feature;
- "css-featurequeries": import("../data/features.js").Feature;
- "css-file-selector-button": import("../data/features.js").Feature;
- "css-filter-function": import("../data/features.js").Feature;
- "css-filters": import("../data/features.js").Feature;
- "css-first-letter": import("../data/features.js").Feature;
- "css-first-line": import("../data/features.js").Feature;
- "css-fixed": import("../data/features.js").Feature;
- "css-focus-visible": import("../data/features.js").Feature;
- "css-focus-within": import("../data/features.js").Feature;
- "css-font-palette": import("../data/features.js").Feature;
- "css-font-rendering-controls": import("../data/features.js").Feature;
- "css-font-stretch": import("../data/features.js").Feature;
- "css-gencontent": import("../data/features.js").Feature;
- "css-gradients": import("../data/features.js").Feature;
- "css-grid": import("../data/features.js").Feature;
- "css-grid-animation": import("../data/features.js").Feature;
- "css-hanging-punctuation": import("../data/features.js").Feature;
- "css-has": import("../data/features.js").Feature;
- "css-hyphens": import("../data/features.js").Feature;
- "css-image-orientation": import("../data/features.js").Feature;
- "css-image-set": import("../data/features.js").Feature;
- "css-in-out-of-range": import("../data/features.js").Feature;
- "css-indeterminate-pseudo": import("../data/features.js").Feature;
- "css-initial-letter": import("../data/features.js").Feature;
- "css-initial-value": import("../data/features.js").Feature;
- "css-lch-lab": import("../data/features.js").Feature;
- "css-letter-spacing": import("../data/features.js").Feature;
- "css-line-clamp": import("../data/features.js").Feature;
- "css-logical-props": import("../data/features.js").Feature;
- "css-marker-pseudo": import("../data/features.js").Feature;
- "css-masks": import("../data/features.js").Feature;
- "css-matches-pseudo": import("../data/features.js").Feature;
- "css-math-functions": import("../data/features.js").Feature;
- "css-media-interaction": import("../data/features.js").Feature;
- "css-media-range-syntax": import("../data/features.js").Feature;
- "css-media-resolution": import("../data/features.js").Feature;
- "css-media-scripting": import("../data/features.js").Feature;
- "css-mediaqueries": import("../data/features.js").Feature;
- "css-mixblendmode": import("../data/features.js").Feature;
- "css-motion-paths": import("../data/features.js").Feature;
- "css-namespaces": import("../data/features.js").Feature;
- "css-nesting": import("../data/features.js").Feature;
- "css-not-sel-list": import("../data/features.js").Feature;
- "css-nth-child-of": import("../data/features.js").Feature;
- "css-opacity": import("../data/features.js").Feature;
- "css-optional-pseudo": import("../data/features.js").Feature;
- "css-overflow": import("../data/features.js").Feature;
- "css-overflow-anchor": import("../data/features.js").Feature;
- "css-overflow-overlay": import("../data/features.js").Feature;
- "css-overscroll-behavior": import("../data/features.js").Feature;
- "css-page-break": import("../data/features.js").Feature;
- "css-paged-media": import("../data/features.js").Feature;
- "css-paint-api": import("../data/features.js").Feature;
- "css-placeholder": import("../data/features.js").Feature;
- "css-placeholder-shown": import("../data/features.js").Feature;
- "css-print-color-adjust": import("../data/features.js").Feature;
- "css-read-only-write": import("../data/features.js").Feature;
- "css-rebeccapurple": import("../data/features.js").Feature;
- "css-reflections": import("../data/features.js").Feature;
- "css-regions": import("../data/features.js").Feature;
- "css-relative-colors": import("../data/features.js").Feature;
- "css-repeating-gradients": import("../data/features.js").Feature;
- "css-resize": import("../data/features.js").Feature;
- "css-revert-value": import("../data/features.js").Feature;
- "css-rrggbbaa": import("../data/features.js").Feature;
- "css-scroll-behavior": import("../data/features.js").Feature;
- "css-scroll-timeline": import("../data/features.js").Feature;
- "css-scrollbar": import("../data/features.js").Feature;
- "css-sel2": import("../data/features.js").Feature;
- "css-sel3": import("../data/features.js").Feature;
- "css-selection": import("../data/features.js").Feature;
- "css-shapes": import("../data/features.js").Feature;
- "css-snappoints": import("../data/features.js").Feature;
- "css-sticky": import("../data/features.js").Feature;
- "css-subgrid": import("../data/features.js").Feature;
- "css-supports-api": import("../data/features.js").Feature;
- "css-table": import("../data/features.js").Feature;
- "css-text-align-last": import("../data/features.js").Feature;
- "css-text-box-trim": import("../data/features.js").Feature;
- "css-text-indent": import("../data/features.js").Feature;
- "css-text-justify": import("../data/features.js").Feature;
- "css-text-orientation": import("../data/features.js").Feature;
- "css-text-spacing": import("../data/features.js").Feature;
- "css-textshadow": import("../data/features.js").Feature;
- "css-touch-action": import("../data/features.js").Feature;
- "css-transitions": import("../data/features.js").Feature;
- "css-unicode-bidi": import("../data/features.js").Feature;
- "css-unset-value": import("../data/features.js").Feature;
- "css-variables": import("../data/features.js").Feature;
- "css-when-else": import("../data/features.js").Feature;
- "css-widows-orphans": import("../data/features.js").Feature;
- "css-width-stretch": import("../data/features.js").Feature;
- "css-writing-mode": import("../data/features.js").Feature;
- "css-zoom": import("../data/features.js").Feature;
- "css3-attr": import("../data/features.js").Feature;
- "css3-boxsizing": import("../data/features.js").Feature;
- "css3-colors": import("../data/features.js").Feature;
- "css3-cursors": import("../data/features.js").Feature;
- "css3-cursors-grab": import("../data/features.js").Feature;
- "css3-cursors-newer": import("../data/features.js").Feature;
- "css3-tabsize": import("../data/features.js").Feature;
- currentcolor: import("../data/features.js").Feature;
- devicepixelratio: import("../data/features.js").Feature;
- "extended-system-fonts": import("../data/features.js").Feature;
- flexbox: import("../data/features.js").Feature;
- "flexbox-gap": import("../data/features.js").Feature;
- "font-family-system-ui": import("../data/features.js").Feature;
- "font-feature": import("../data/features.js").Feature;
- "font-loading": import("../data/features.js").Feature;
- "font-unicode-range": import("../data/features.js").Feature;
- fontface: import("../data/features.js").Feature;
- fullscreen: import("../data/features.js").Feature;
- getcomputedstyle: import("../data/features.js").Feature;
- "intrinsic-width": import("../data/features.js").Feature;
- "justify-content-space-evenly": import("../data/features.js").Feature;
- "kerning-pairs-ligatures": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate-override": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-plaintext": import("../data/features.js").Feature;
- "mdn-text-decoration-color": import("../data/features.js").Feature;
- "mdn-text-decoration-line": import("../data/features.js").Feature;
- "mdn-text-decoration-shorthand": import("../data/features.js").Feature;
- "mdn-text-decoration-style": import("../data/features.js").Feature;
- minmaxwh: import("../data/features.js").Feature;
- multibackgrounds: import("../data/features.js").Feature;
- multicolumn: import("../data/features.js").Feature;
- "style-scoped": import("../data/features.js").Feature;
- "svg-css": import("../data/features.js").Feature;
- transforms2d: import("../data/features.js").Feature;
- transforms3d: import("../data/features.js").Feature;
- ttf: import("../data/features.js").Feature;
- "user-select-none": import("../data/features.js").Feature;
- "variable-fonts": import("../data/features.js").Feature;
- "viewport-unit-variants": import("../data/features.js").Feature;
- "viewport-units": import("../data/features.js").Feature;
- wordwrap: import("../data/features.js").Feature;
- }>;
- /** @type {(keyof FEATURES & string)[]} */
- ignore: (keyof {
- outline: import("../data/features.js").Feature;
- "background-attachment": import("../data/features.js").Feature;
- pointer: import("../data/features.js").Feature;
- "flow-root": import("../data/features.js").Feature;
- "font-kerning": import("../data/features.js").Feature;
- "font-smooth": import("../data/features.js").Feature;
- "font-variant-alternates": import("../data/features.js").Feature;
- "font-variant-numeric": import("../data/features.js").Feature;
- "inline-block": import("../data/features.js").Feature;
- "prefers-color-scheme": import("../data/features.js").Feature;
- "prefers-reduced-motion": import("../data/features.js").Feature;
- rem: import("../data/features.js").Feature;
- "run-in": import("../data/features.js").Feature;
- "text-emphasis": import("../data/features.js").Feature;
- "text-stroke": import("../data/features.js").Feature;
- "webkit-user-drag": import("../data/features.js").Feature;
- "border-image": import("../data/features.js").Feature;
- "border-radius": import("../data/features.js").Feature;
- "font-size-adjust": import("../data/features.js").Feature;
- "text-decoration": import("../data/features.js").Feature;
- "object-fit": import("../data/features.js").Feature;
- "pointer-events": import("../data/features.js").Feature;
- "text-overflow": import("../data/features.js").Feature;
- "text-size-adjust": import("../data/features.js").Feature;
- "will-change": import("../data/features.js").Feature;
- "word-break": import("../data/features.js").Feature;
- "alternate-stylesheet": import("../data/features.js").Feature;
- "background-clip-text": import("../data/features.js").Feature;
- "background-img-opts": import("../data/features.js").Feature;
- "background-position-x-y": import("../data/features.js").Feature;
- "background-repeat-round-space": import("../data/features.js").Feature;
- calc: import("../data/features.js").Feature;
- "ch-unit": import("../data/features.js").Feature;
- "css-all": import("../data/features.js").Feature;
- "css-animation": import("../data/features.js").Feature;
- "css-any-link": import("../data/features.js").Feature;
- "css-appearance": import("../data/features.js").Feature;
- "css-at-counter-style": import("../data/features.js").Feature;
- "css-autofill": import("../data/features.js").Feature;
- "css-backdrop-filter": import("../data/features.js").Feature;
- "css-background-offsets": import("../data/features.js").Feature;
- "css-backgroundblendmode": import("../data/features.js").Feature;
- "css-boxdecorationbreak": import("../data/features.js").Feature;
- "css-boxshadow": import("../data/features.js").Feature;
- "css-canvas": import("../data/features.js").Feature;
- "css-caret-color": import("../data/features.js").Feature;
- "css-cascade-layers": import("../data/features.js").Feature;
- "css-case-insensitive": import("../data/features.js").Feature;
- "css-clip-path": import("../data/features.js").Feature;
- "css-color-adjust": import("../data/features.js").Feature;
- "css-color-function": import("../data/features.js").Feature;
- "css-conic-gradients": import("../data/features.js").Feature;
- "css-container-queries": import("../data/features.js").Feature;
- "css-container-queries-style": import("../data/features.js").Feature;
- "css-container-query-units": import("../data/features.js").Feature;
- "css-containment": import("../data/features.js").Feature;
- "css-content-visibility": import("../data/features.js").Feature;
- "css-counters": import("../data/features.js").Feature;
- "css-crisp-edges": import("../data/features.js").Feature;
- "css-cross-fade": import("../data/features.js").Feature;
- "css-default-pseudo": import("../data/features.js").Feature;
- "css-descendant-gtgt": import("../data/features.js").Feature;
- "css-deviceadaptation": import("../data/features.js").Feature;
- "css-dir-pseudo": import("../data/features.js").Feature;
- "css-display-contents": import("../data/features.js").Feature;
- "css-element-function": import("../data/features.js").Feature;
- "css-env-function": import("../data/features.js").Feature;
- "css-exclusions": import("../data/features.js").Feature;
- "css-featurequeries": import("../data/features.js").Feature;
- "css-file-selector-button": import("../data/features.js").Feature;
- "css-filter-function": import("../data/features.js").Feature;
- "css-filters": import("../data/features.js").Feature;
- "css-first-letter": import("../data/features.js").Feature;
- "css-first-line": import("../data/features.js").Feature;
- "css-fixed": import("../data/features.js").Feature;
- "css-focus-visible": import("../data/features.js").Feature;
- "css-focus-within": import("../data/features.js").Feature;
- "css-font-palette": import("../data/features.js").Feature;
- "css-font-rendering-controls": import("../data/features.js").Feature;
- "css-font-stretch": import("../data/features.js").Feature;
- "css-gencontent": import("../data/features.js").Feature;
- "css-gradients": import("../data/features.js").Feature;
- "css-grid": import("../data/features.js").Feature;
- "css-grid-animation": import("../data/features.js").Feature;
- "css-hanging-punctuation": import("../data/features.js").Feature;
- "css-has": import("../data/features.js").Feature;
- "css-hyphens": import("../data/features.js").Feature;
- "css-image-orientation": import("../data/features.js").Feature;
- "css-image-set": import("../data/features.js").Feature;
- "css-in-out-of-range": import("../data/features.js").Feature;
- "css-indeterminate-pseudo": import("../data/features.js").Feature;
- "css-initial-letter": import("../data/features.js").Feature;
- "css-initial-value": import("../data/features.js").Feature;
- "css-lch-lab": import("../data/features.js").Feature;
- "css-letter-spacing": import("../data/features.js").Feature;
- "css-line-clamp": import("../data/features.js").Feature;
- "css-logical-props": import("../data/features.js").Feature;
- "css-marker-pseudo": import("../data/features.js").Feature;
- "css-masks": import("../data/features.js").Feature;
- "css-matches-pseudo": import("../data/features.js").Feature;
- "css-math-functions": import("../data/features.js").Feature;
- "css-media-interaction": import("../data/features.js").Feature;
- "css-media-range-syntax": import("../data/features.js").Feature;
- "css-media-resolution": import("../data/features.js").Feature;
- "css-media-scripting": import("../data/features.js").Feature;
- "css-mediaqueries": import("../data/features.js").Feature;
- "css-mixblendmode": import("../data/features.js").Feature;
- "css-motion-paths": import("../data/features.js").Feature;
- "css-namespaces": import("../data/features.js").Feature;
- "css-nesting": import("../data/features.js").Feature;
- "css-not-sel-list": import("../data/features.js").Feature;
- "css-nth-child-of": import("../data/features.js").Feature;
- "css-opacity": import("../data/features.js").Feature;
- "css-optional-pseudo": import("../data/features.js").Feature;
- "css-overflow": import("../data/features.js").Feature;
- "css-overflow-anchor": import("../data/features.js").Feature;
- "css-overflow-overlay": import("../data/features.js").Feature;
- "css-overscroll-behavior": import("../data/features.js").Feature;
- "css-page-break": import("../data/features.js").Feature;
- "css-paged-media": import("../data/features.js").Feature;
- "css-paint-api": import("../data/features.js").Feature;
- "css-placeholder": import("../data/features.js").Feature;
- "css-placeholder-shown": import("../data/features.js").Feature;
- "css-print-color-adjust": import("../data/features.js").Feature;
- "css-read-only-write": import("../data/features.js").Feature;
- "css-rebeccapurple": import("../data/features.js").Feature;
- "css-reflections": import("../data/features.js").Feature;
- "css-regions": import("../data/features.js").Feature;
- "css-relative-colors": import("../data/features.js").Feature;
- "css-repeating-gradients": import("../data/features.js").Feature;
- "css-resize": import("../data/features.js").Feature;
- "css-revert-value": import("../data/features.js").Feature;
- "css-rrggbbaa": import("../data/features.js").Feature;
- "css-scroll-behavior": import("../data/features.js").Feature;
- "css-scroll-timeline": import("../data/features.js").Feature;
- "css-scrollbar": import("../data/features.js").Feature;
- "css-sel2": import("../data/features.js").Feature;
- "css-sel3": import("../data/features.js").Feature;
- "css-selection": import("../data/features.js").Feature;
- "css-shapes": import("../data/features.js").Feature;
- "css-snappoints": import("../data/features.js").Feature;
- "css-sticky": import("../data/features.js").Feature;
- "css-subgrid": import("../data/features.js").Feature;
- "css-supports-api": import("../data/features.js").Feature;
- "css-table": import("../data/features.js").Feature;
- "css-text-align-last": import("../data/features.js").Feature;
- "css-text-box-trim": import("../data/features.js").Feature;
- "css-text-indent": import("../data/features.js").Feature;
- "css-text-justify": import("../data/features.js").Feature;
- "css-text-orientation": import("../data/features.js").Feature;
- "css-text-spacing": import("../data/features.js").Feature;
- "css-textshadow": import("../data/features.js").Feature;
- "css-touch-action": import("../data/features.js").Feature;
- "css-transitions": import("../data/features.js").Feature;
- "css-unicode-bidi": import("../data/features.js").Feature;
- "css-unset-value": import("../data/features.js").Feature;
- "css-variables": import("../data/features.js").Feature;
- "css-when-else": import("../data/features.js").Feature;
- "css-widows-orphans": import("../data/features.js").Feature;
- "css-width-stretch": import("../data/features.js").Feature;
- "css-writing-mode": import("../data/features.js").Feature;
- "css-zoom": import("../data/features.js").Feature;
- "css3-attr": import("../data/features.js").Feature;
- "css3-boxsizing": import("../data/features.js").Feature;
- "css3-colors": import("../data/features.js").Feature;
- "css3-cursors": import("../data/features.js").Feature;
- "css3-cursors-grab": import("../data/features.js").Feature;
- "css3-cursors-newer": import("../data/features.js").Feature;
- "css3-tabsize": import("../data/features.js").Feature;
- currentcolor: import("../data/features.js").Feature;
- devicepixelratio: import("../data/features.js").Feature;
- "extended-system-fonts": import("../data/features.js").Feature;
- flexbox: import("../data/features.js").Feature;
- "flexbox-gap": import("../data/features.js").Feature;
- "font-family-system-ui": import("../data/features.js").Feature;
- "font-feature": import("../data/features.js").Feature;
- "font-loading": import("../data/features.js").Feature;
- "font-unicode-range": import("../data/features.js").Feature;
- fontface: import("../data/features.js").Feature;
- fullscreen: import("../data/features.js").Feature;
- getcomputedstyle: import("../data/features.js").Feature;
- "intrinsic-width": import("../data/features.js").Feature;
- "justify-content-space-evenly": import("../data/features.js").Feature;
- "kerning-pairs-ligatures": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate-override": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-plaintext": import("../data/features.js").Feature;
- "mdn-text-decoration-color": import("../data/features.js").Feature;
- "mdn-text-decoration-line": import("../data/features.js").Feature;
- "mdn-text-decoration-shorthand": import("../data/features.js").Feature;
- "mdn-text-decoration-style": import("../data/features.js").Feature;
- minmaxwh: import("../data/features.js").Feature;
- multibackgrounds: import("../data/features.js").Feature;
- multicolumn: import("../data/features.js").Feature;
- "style-scoped": import("../data/features.js").Feature;
- "svg-css": import("../data/features.js").Feature;
- transforms2d: import("../data/features.js").Feature;
- transforms3d: import("../data/features.js").Feature;
- ttf: import("../data/features.js").Feature;
- "user-select-none": import("../data/features.js").Feature;
- "variable-fonts": import("../data/features.js").Feature;
- "viewport-unit-variants": import("../data/features.js").Feature;
- "viewport-units": import("../data/features.js").Feature;
- wordwrap: import("../data/features.js").Feature;
- } & string)[];
- /**
- * @param {import('postcss').Comment} comment
- * @return {void}
- */
- comment(comment: import('postcss').Comment): void;
- /**
- * @param {import('postcss').Container} node
- * @param {DetectorCallback} callback
- * @return {void}
- */
- node(node: import('postcss').Container, callback: DetectorCallback): void;
- /**
- * @param {import('postcss').Root} node
- * @param {DetectorCallback} callback
- * @return {void}
- */
- process(node: import('postcss').Root, callback: DetectorCallback): void;
-}
-export type DetectorCallbackArgument = {
- usage: import('postcss').ChildNode;
- feature: keyof {
- outline: import("../data/features.js").Feature;
- "background-attachment": import("../data/features.js").Feature;
- pointer: import("../data/features.js").Feature;
- "flow-root": import("../data/features.js").Feature;
- "font-kerning": import("../data/features.js").Feature;
- "font-smooth": import("../data/features.js").Feature;
- "font-variant-alternates": import("../data/features.js").Feature;
- "font-variant-numeric": import("../data/features.js").Feature;
- "inline-block": import("../data/features.js").Feature;
- "prefers-color-scheme": import("../data/features.js").Feature;
- "prefers-reduced-motion": import("../data/features.js").Feature;
- rem: import("../data/features.js").Feature;
- "run-in": import("../data/features.js").Feature;
- "text-emphasis": import("../data/features.js").Feature;
- "text-stroke": import("../data/features.js").Feature;
- "webkit-user-drag": import("../data/features.js").Feature;
- "border-image": import("../data/features.js").Feature;
- "border-radius": import("../data/features.js").Feature;
- "font-size-adjust": import("../data/features.js").Feature;
- "text-decoration": import("../data/features.js").Feature;
- "object-fit": import("../data/features.js").Feature;
- "pointer-events": import("../data/features.js").Feature;
- "text-overflow": import("../data/features.js").Feature;
- "text-size-adjust": import("../data/features.js").Feature;
- "will-change": import("../data/features.js").Feature;
- "word-break": import("../data/features.js").Feature;
- "alternate-stylesheet": import("../data/features.js").Feature;
- "background-clip-text": import("../data/features.js").Feature;
- "background-img-opts": import("../data/features.js").Feature;
- "background-position-x-y": import("../data/features.js").Feature;
- "background-repeat-round-space": import("../data/features.js").Feature;
- calc: import("../data/features.js").Feature;
- "ch-unit": import("../data/features.js").Feature;
- "css-all": import("../data/features.js").Feature;
- "css-animation": import("../data/features.js").Feature;
- "css-any-link": import("../data/features.js").Feature;
- "css-appearance": import("../data/features.js").Feature;
- "css-at-counter-style": import("../data/features.js").Feature;
- "css-autofill": import("../data/features.js").Feature;
- "css-backdrop-filter": import("../data/features.js").Feature;
- "css-background-offsets": import("../data/features.js").Feature;
- "css-backgroundblendmode": import("../data/features.js").Feature;
- "css-boxdecorationbreak": import("../data/features.js").Feature;
- "css-boxshadow": import("../data/features.js").Feature;
- "css-canvas": import("../data/features.js").Feature;
- "css-caret-color": import("../data/features.js").Feature;
- "css-cascade-layers": import("../data/features.js").Feature;
- "css-case-insensitive": import("../data/features.js").Feature;
- "css-clip-path": import("../data/features.js").Feature;
- "css-color-adjust": import("../data/features.js").Feature;
- "css-color-function": import("../data/features.js").Feature;
- "css-conic-gradients": import("../data/features.js").Feature;
- "css-container-queries": import("../data/features.js").Feature;
- "css-container-queries-style": import("../data/features.js").Feature;
- "css-container-query-units": import("../data/features.js").Feature;
- "css-containment": import("../data/features.js").Feature;
- "css-content-visibility": import("../data/features.js").Feature;
- "css-counters": import("../data/features.js").Feature;
- "css-crisp-edges": import("../data/features.js").Feature;
- "css-cross-fade": import("../data/features.js").Feature;
- "css-default-pseudo": import("../data/features.js").Feature;
- "css-descendant-gtgt": import("../data/features.js").Feature;
- "css-deviceadaptation": import("../data/features.js").Feature;
- "css-dir-pseudo": import("../data/features.js").Feature;
- "css-display-contents": import("../data/features.js").Feature;
- "css-element-function": import("../data/features.js").Feature;
- "css-env-function": import("../data/features.js").Feature;
- "css-exclusions": import("../data/features.js").Feature;
- "css-featurequeries": import("../data/features.js").Feature;
- "css-file-selector-button": import("../data/features.js").Feature;
- "css-filter-function": import("../data/features.js").Feature;
- "css-filters": import("../data/features.js").Feature;
- "css-first-letter": import("../data/features.js").Feature;
- "css-first-line": import("../data/features.js").Feature;
- "css-fixed": import("../data/features.js").Feature;
- "css-focus-visible": import("../data/features.js").Feature;
- "css-focus-within": import("../data/features.js").Feature;
- "css-font-palette": import("../data/features.js").Feature;
- "css-font-rendering-controls": import("../data/features.js").Feature;
- "css-font-stretch": import("../data/features.js").Feature;
- "css-gencontent": import("../data/features.js").Feature;
- "css-gradients": import("../data/features.js").Feature;
- "css-grid": import("../data/features.js").Feature;
- "css-grid-animation": import("../data/features.js").Feature;
- "css-hanging-punctuation": import("../data/features.js").Feature;
- "css-has": import("../data/features.js").Feature;
- "css-hyphens": import("../data/features.js").Feature;
- "css-image-orientation": import("../data/features.js").Feature;
- "css-image-set": import("../data/features.js").Feature;
- "css-in-out-of-range": import("../data/features.js").Feature;
- "css-indeterminate-pseudo": import("../data/features.js").Feature;
- "css-initial-letter": import("../data/features.js").Feature;
- "css-initial-value": import("../data/features.js").Feature;
- "css-lch-lab": import("../data/features.js").Feature;
- "css-letter-spacing": import("../data/features.js").Feature;
- "css-line-clamp": import("../data/features.js").Feature;
- "css-logical-props": import("../data/features.js").Feature;
- "css-marker-pseudo": import("../data/features.js").Feature;
- "css-masks": import("../data/features.js").Feature;
- "css-matches-pseudo": import("../data/features.js").Feature;
- "css-math-functions": import("../data/features.js").Feature;
- "css-media-interaction": import("../data/features.js").Feature;
- "css-media-range-syntax": import("../data/features.js").Feature;
- "css-media-resolution": import("../data/features.js").Feature;
- "css-media-scripting": import("../data/features.js").Feature;
- "css-mediaqueries": import("../data/features.js").Feature;
- "css-mixblendmode": import("../data/features.js").Feature;
- "css-motion-paths": import("../data/features.js").Feature;
- "css-namespaces": import("../data/features.js").Feature;
- "css-nesting": import("../data/features.js").Feature;
- "css-not-sel-list": import("../data/features.js").Feature;
- "css-nth-child-of": import("../data/features.js").Feature;
- "css-opacity": import("../data/features.js").Feature;
- "css-optional-pseudo": import("../data/features.js").Feature;
- "css-overflow": import("../data/features.js").Feature;
- "css-overflow-anchor": import("../data/features.js").Feature;
- "css-overflow-overlay": import("../data/features.js").Feature;
- "css-overscroll-behavior": import("../data/features.js").Feature;
- "css-page-break": import("../data/features.js").Feature;
- "css-paged-media": import("../data/features.js").Feature;
- "css-paint-api": import("../data/features.js").Feature;
- "css-placeholder": import("../data/features.js").Feature;
- "css-placeholder-shown": import("../data/features.js").Feature;
- "css-print-color-adjust": import("../data/features.js").Feature;
- "css-read-only-write": import("../data/features.js").Feature;
- "css-rebeccapurple": import("../data/features.js").Feature;
- "css-reflections": import("../data/features.js").Feature;
- "css-regions": import("../data/features.js").Feature;
- "css-relative-colors": import("../data/features.js").Feature;
- "css-repeating-gradients": import("../data/features.js").Feature;
- "css-resize": import("../data/features.js").Feature;
- "css-revert-value": import("../data/features.js").Feature;
- "css-rrggbbaa": import("../data/features.js").Feature;
- "css-scroll-behavior": import("../data/features.js").Feature;
- "css-scroll-timeline": import("../data/features.js").Feature;
- "css-scrollbar": import("../data/features.js").Feature;
- "css-sel2": import("../data/features.js").Feature;
- "css-sel3": import("../data/features.js").Feature;
- "css-selection": import("../data/features.js").Feature;
- "css-shapes": import("../data/features.js").Feature;
- "css-snappoints": import("../data/features.js").Feature;
- "css-sticky": import("../data/features.js").Feature;
- "css-subgrid": import("../data/features.js").Feature;
- "css-supports-api": import("../data/features.js").Feature;
- "css-table": import("../data/features.js").Feature;
- "css-text-align-last": import("../data/features.js").Feature;
- "css-text-box-trim": import("../data/features.js").Feature;
- "css-text-indent": import("../data/features.js").Feature;
- "css-text-justify": import("../data/features.js").Feature;
- "css-text-orientation": import("../data/features.js").Feature;
- "css-text-spacing": import("../data/features.js").Feature;
- "css-textshadow": import("../data/features.js").Feature;
- "css-touch-action": import("../data/features.js").Feature;
- "css-transitions": import("../data/features.js").Feature;
- "css-unicode-bidi": import("../data/features.js").Feature;
- "css-unset-value": import("../data/features.js").Feature;
- "css-variables": import("../data/features.js").Feature;
- "css-when-else": import("../data/features.js").Feature;
- "css-widows-orphans": import("../data/features.js").Feature;
- "css-width-stretch": import("../data/features.js").Feature;
- "css-writing-mode": import("../data/features.js").Feature;
- "css-zoom": import("../data/features.js").Feature;
- "css3-attr": import("../data/features.js").Feature;
- "css3-boxsizing": import("../data/features.js").Feature;
- "css3-colors": import("../data/features.js").Feature;
- "css3-cursors": import("../data/features.js").Feature;
- "css3-cursors-grab": import("../data/features.js").Feature;
- "css3-cursors-newer": import("../data/features.js").Feature;
- "css3-tabsize": import("../data/features.js").Feature;
- currentcolor: import("../data/features.js").Feature;
- devicepixelratio: import("../data/features.js").Feature;
- "extended-system-fonts": import("../data/features.js").Feature;
- flexbox: import("../data/features.js").Feature;
- "flexbox-gap": import("../data/features.js").Feature;
- "font-family-system-ui": import("../data/features.js").Feature;
- "font-feature": import("../data/features.js").Feature;
- "font-loading": import("../data/features.js").Feature;
- "font-unicode-range": import("../data/features.js").Feature;
- fontface: import("../data/features.js").Feature;
- fullscreen: import("../data/features.js").Feature;
- getcomputedstyle: import("../data/features.js").Feature;
- "intrinsic-width": import("../data/features.js").Feature;
- "justify-content-space-evenly": import("../data/features.js").Feature;
- "kerning-pairs-ligatures": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate-override": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-plaintext": import("../data/features.js").Feature;
- "mdn-text-decoration-color": import("../data/features.js").Feature;
- "mdn-text-decoration-line": import("../data/features.js").Feature;
- "mdn-text-decoration-shorthand": import("../data/features.js").Feature;
- "mdn-text-decoration-style": import("../data/features.js").Feature;
- minmaxwh: import("../data/features.js").Feature;
- multibackgrounds: import("../data/features.js").Feature;
- multicolumn: import("../data/features.js").Feature;
- "style-scoped": import("../data/features.js").Feature;
- "svg-css": import("../data/features.js").Feature;
- transforms2d: import("../data/features.js").Feature;
- transforms3d: import("../data/features.js").Feature;
- ttf: import("../data/features.js").Feature;
- "user-select-none": import("../data/features.js").Feature;
- "variable-fonts": import("../data/features.js").Feature;
- "viewport-unit-variants": import("../data/features.js").Feature;
- "viewport-units": import("../data/features.js").Feature;
- wordwrap: import("../data/features.js").Feature;
- };
- ignore: (keyof {
- outline: import("../data/features.js").Feature;
- "background-attachment": import("../data/features.js").Feature;
- pointer: import("../data/features.js").Feature;
- "flow-root": import("../data/features.js").Feature;
- "font-kerning": import("../data/features.js").Feature;
- "font-smooth": import("../data/features.js").Feature;
- "font-variant-alternates": import("../data/features.js").Feature;
- "font-variant-numeric": import("../data/features.js").Feature;
- "inline-block": import("../data/features.js").Feature;
- "prefers-color-scheme": import("../data/features.js").Feature;
- "prefers-reduced-motion": import("../data/features.js").Feature;
- rem: import("../data/features.js").Feature;
- "run-in": import("../data/features.js").Feature;
- "text-emphasis": import("../data/features.js").Feature;
- "text-stroke": import("../data/features.js").Feature;
- "webkit-user-drag": import("../data/features.js").Feature;
- "border-image": import("../data/features.js").Feature;
- "border-radius": import("../data/features.js").Feature;
- "font-size-adjust": import("../data/features.js").Feature;
- "text-decoration": import("../data/features.js").Feature;
- "object-fit": import("../data/features.js").Feature;
- "pointer-events": import("../data/features.js").Feature;
- "text-overflow": import("../data/features.js").Feature;
- "text-size-adjust": import("../data/features.js").Feature;
- "will-change": import("../data/features.js").Feature;
- "word-break": import("../data/features.js").Feature;
- "alternate-stylesheet": import("../data/features.js").Feature;
- "background-clip-text": import("../data/features.js").Feature;
- "background-img-opts": import("../data/features.js").Feature;
- "background-position-x-y": import("../data/features.js").Feature;
- "background-repeat-round-space": import("../data/features.js").Feature;
- calc: import("../data/features.js").Feature;
- "ch-unit": import("../data/features.js").Feature;
- "css-all": import("../data/features.js").Feature;
- "css-animation": import("../data/features.js").Feature;
- "css-any-link": import("../data/features.js").Feature;
- "css-appearance": import("../data/features.js").Feature;
- "css-at-counter-style": import("../data/features.js").Feature;
- "css-autofill": import("../data/features.js").Feature;
- "css-backdrop-filter": import("../data/features.js").Feature;
- "css-background-offsets": import("../data/features.js").Feature;
- "css-backgroundblendmode": import("../data/features.js").Feature;
- "css-boxdecorationbreak": import("../data/features.js").Feature;
- "css-boxshadow": import("../data/features.js").Feature;
- "css-canvas": import("../data/features.js").Feature;
- "css-caret-color": import("../data/features.js").Feature;
- "css-cascade-layers": import("../data/features.js").Feature;
- "css-case-insensitive": import("../data/features.js").Feature;
- "css-clip-path": import("../data/features.js").Feature;
- "css-color-adjust": import("../data/features.js").Feature;
- "css-color-function": import("../data/features.js").Feature;
- "css-conic-gradients": import("../data/features.js").Feature;
- "css-container-queries": import("../data/features.js").Feature;
- "css-container-queries-style": import("../data/features.js").Feature;
- "css-container-query-units": import("../data/features.js").Feature;
- "css-containment": import("../data/features.js").Feature;
- "css-content-visibility": import("../data/features.js").Feature;
- "css-counters": import("../data/features.js").Feature;
- "css-crisp-edges": import("../data/features.js").Feature;
- "css-cross-fade": import("../data/features.js").Feature;
- "css-default-pseudo": import("../data/features.js").Feature;
- "css-descendant-gtgt": import("../data/features.js").Feature;
- "css-deviceadaptation": import("../data/features.js").Feature;
- "css-dir-pseudo": import("../data/features.js").Feature;
- "css-display-contents": import("../data/features.js").Feature;
- "css-element-function": import("../data/features.js").Feature;
- "css-env-function": import("../data/features.js").Feature;
- "css-exclusions": import("../data/features.js").Feature;
- "css-featurequeries": import("../data/features.js").Feature;
- "css-file-selector-button": import("../data/features.js").Feature;
- "css-filter-function": import("../data/features.js").Feature;
- "css-filters": import("../data/features.js").Feature;
- "css-first-letter": import("../data/features.js").Feature;
- "css-first-line": import("../data/features.js").Feature;
- "css-fixed": import("../data/features.js").Feature;
- "css-focus-visible": import("../data/features.js").Feature;
- "css-focus-within": import("../data/features.js").Feature;
- "css-font-palette": import("../data/features.js").Feature;
- "css-font-rendering-controls": import("../data/features.js").Feature;
- "css-font-stretch": import("../data/features.js").Feature;
- "css-gencontent": import("../data/features.js").Feature;
- "css-gradients": import("../data/features.js").Feature;
- "css-grid": import("../data/features.js").Feature;
- "css-grid-animation": import("../data/features.js").Feature;
- "css-hanging-punctuation": import("../data/features.js").Feature;
- "css-has": import("../data/features.js").Feature;
- "css-hyphens": import("../data/features.js").Feature;
- "css-image-orientation": import("../data/features.js").Feature;
- "css-image-set": import("../data/features.js").Feature;
- "css-in-out-of-range": import("../data/features.js").Feature;
- "css-indeterminate-pseudo": import("../data/features.js").Feature;
- "css-initial-letter": import("../data/features.js").Feature;
- "css-initial-value": import("../data/features.js").Feature;
- "css-lch-lab": import("../data/features.js").Feature;
- "css-letter-spacing": import("../data/features.js").Feature;
- "css-line-clamp": import("../data/features.js").Feature;
- "css-logical-props": import("../data/features.js").Feature;
- "css-marker-pseudo": import("../data/features.js").Feature;
- "css-masks": import("../data/features.js").Feature;
- "css-matches-pseudo": import("../data/features.js").Feature;
- "css-math-functions": import("../data/features.js").Feature;
- "css-media-interaction": import("../data/features.js").Feature;
- "css-media-range-syntax": import("../data/features.js").Feature;
- "css-media-resolution": import("../data/features.js").Feature;
- "css-media-scripting": import("../data/features.js").Feature;
- "css-mediaqueries": import("../data/features.js").Feature;
- "css-mixblendmode": import("../data/features.js").Feature;
- "css-motion-paths": import("../data/features.js").Feature;
- "css-namespaces": import("../data/features.js").Feature;
- "css-nesting": import("../data/features.js").Feature;
- "css-not-sel-list": import("../data/features.js").Feature;
- "css-nth-child-of": import("../data/features.js").Feature;
- "css-opacity": import("../data/features.js").Feature;
- "css-optional-pseudo": import("../data/features.js").Feature;
- "css-overflow": import("../data/features.js").Feature;
- "css-overflow-anchor": import("../data/features.js").Feature;
- "css-overflow-overlay": import("../data/features.js").Feature;
- "css-overscroll-behavior": import("../data/features.js").Feature;
- "css-page-break": import("../data/features.js").Feature;
- "css-paged-media": import("../data/features.js").Feature;
- "css-paint-api": import("../data/features.js").Feature;
- "css-placeholder": import("../data/features.js").Feature;
- "css-placeholder-shown": import("../data/features.js").Feature;
- "css-print-color-adjust": import("../data/features.js").Feature;
- "css-read-only-write": import("../data/features.js").Feature;
- "css-rebeccapurple": import("../data/features.js").Feature;
- "css-reflections": import("../data/features.js").Feature;
- "css-regions": import("../data/features.js").Feature;
- "css-relative-colors": import("../data/features.js").Feature;
- "css-repeating-gradients": import("../data/features.js").Feature;
- "css-resize": import("../data/features.js").Feature;
- "css-revert-value": import("../data/features.js").Feature;
- "css-rrggbbaa": import("../data/features.js").Feature;
- "css-scroll-behavior": import("../data/features.js").Feature;
- "css-scroll-timeline": import("../data/features.js").Feature;
- "css-scrollbar": import("../data/features.js").Feature;
- "css-sel2": import("../data/features.js").Feature;
- "css-sel3": import("../data/features.js").Feature;
- "css-selection": import("../data/features.js").Feature;
- "css-shapes": import("../data/features.js").Feature;
- "css-snappoints": import("../data/features.js").Feature;
- "css-sticky": import("../data/features.js").Feature;
- "css-subgrid": import("../data/features.js").Feature;
- "css-supports-api": import("../data/features.js").Feature;
- "css-table": import("../data/features.js").Feature;
- "css-text-align-last": import("../data/features.js").Feature;
- "css-text-box-trim": import("../data/features.js").Feature;
- "css-text-indent": import("../data/features.js").Feature;
- "css-text-justify": import("../data/features.js").Feature;
- "css-text-orientation": import("../data/features.js").Feature;
- "css-text-spacing": import("../data/features.js").Feature;
- "css-textshadow": import("../data/features.js").Feature;
- "css-touch-action": import("../data/features.js").Feature;
- "css-transitions": import("../data/features.js").Feature;
- "css-unicode-bidi": import("../data/features.js").Feature;
- "css-unset-value": import("../data/features.js").Feature;
- "css-variables": import("../data/features.js").Feature;
- "css-when-else": import("../data/features.js").Feature;
- "css-widows-orphans": import("../data/features.js").Feature;
- "css-width-stretch": import("../data/features.js").Feature;
- "css-writing-mode": import("../data/features.js").Feature;
- "css-zoom": import("../data/features.js").Feature;
- "css3-attr": import("../data/features.js").Feature;
- "css3-boxsizing": import("../data/features.js").Feature;
- "css3-colors": import("../data/features.js").Feature;
- "css3-cursors": import("../data/features.js").Feature;
- "css3-cursors-grab": import("../data/features.js").Feature;
- "css3-cursors-newer": import("../data/features.js").Feature;
- "css3-tabsize": import("../data/features.js").Feature;
- currentcolor: import("../data/features.js").Feature;
- devicepixelratio: import("../data/features.js").Feature;
- "extended-system-fonts": import("../data/features.js").Feature;
- flexbox: import("../data/features.js").Feature;
- "flexbox-gap": import("../data/features.js").Feature;
- "font-family-system-ui": import("../data/features.js").Feature;
- "font-feature": import("../data/features.js").Feature;
- "font-loading": import("../data/features.js").Feature;
- "font-unicode-range": import("../data/features.js").Feature;
- fontface: import("../data/features.js").Feature;
- fullscreen: import("../data/features.js").Feature;
- getcomputedstyle: import("../data/features.js").Feature;
- "intrinsic-width": import("../data/features.js").Feature;
- "justify-content-space-evenly": import("../data/features.js").Feature;
- "kerning-pairs-ligatures": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-isolate-override": import("../data/features.js").Feature;
- "mdn-css-unicode-bidi-plaintext": import("../data/features.js").Feature;
- "mdn-text-decoration-color": import("../data/features.js").Feature;
- "mdn-text-decoration-line": import("../data/features.js").Feature;
- "mdn-text-decoration-shorthand": import("../data/features.js").Feature;
- "mdn-text-decoration-style": import("../data/features.js").Feature;
- minmaxwh: import("../data/features.js").Feature;
- multibackgrounds: import("../data/features.js").Feature;
- multicolumn: import("../data/features.js").Feature;
- "style-scoped": import("../data/features.js").Feature;
- "svg-css": import("../data/features.js").Feature;
- transforms2d: import("../data/features.js").Feature;
- transforms3d: import("../data/features.js").Feature;
- ttf: import("../data/features.js").Feature;
- "user-select-none": import("../data/features.js").Feature;
- "variable-fonts": import("../data/features.js").Feature;
- "viewport-unit-variants": import("../data/features.js").Feature;
- "viewport-units": import("../data/features.js").Feature;
- wordwrap: import("../data/features.js").Feature;
- } & string)[];
-};
-export type DetectorCallback = (result: DetectorCallbackArgument) => any;
diff --git a/node_modules/doiuse/types/lib/DoIUse.d.ts b/node_modules/doiuse/types/lib/DoIUse.d.ts
deleted file mode 100644
index 491be904..00000000
--- a/node_modules/doiuse/types/lib/DoIUse.d.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-/** @typedef {import('../data/features.js').FeatureKeys} FeatureKeys */
-/**
- * @typedef {Object} OnFeatureUsageArguments
- * @prop {FeatureKeys} feature
- * @prop {import('./BrowserSelection.js').MissingSupportResultStats|undefined} featureData
- * @prop {import('postcss').Node} usage
- * @prop {string} message
- */
-/**
- * @callback OnFeatureUsage
- * @param {OnFeatureUsageArguments} result
- * @return {any}
- */
-/**
- * @typedef {Object} DoIUseOptions
- * @prop {ConstructorParameters<typeof BrowserSelection>[0]} [browsers]
- * @prop {FeatureKeys[]} [ignore]
- * @prop {OnFeatureUsage} [onFeatureUsage]
- * @prop {string[]} [ignoreFiles]
- */
-export default class DoIUse {
- static default: any;
- /**
- * @param {DoIUseOptions} [optionsOrBrowserQuery]
- */
- constructor(optionsOrBrowserQuery?: DoIUseOptions);
- browserQuery: string | string[];
- onFeatureUsage: OnFeatureUsage;
- ignoreOptions: ("outline" | "background-attachment" | "pointer" | "flow-root" | "font-kerning" | "font-smooth" | "font-variant-alternates" | "font-variant-numeric" | "inline-block" | "prefers-color-scheme" | "prefers-reduced-motion" | "rem" | "run-in" | "text-emphasis" | "text-stroke" | "webkit-user-drag" | "border-image" | "border-radius" | "font-size-adjust" | "text-decoration" | "object-fit" | "pointer-events" | "text-overflow" | "text-size-adjust" | "will-change" | "word-break" | "alternate-stylesheet" | "background-clip-text" | "background-img-opts" | "background-position-x-y" | "background-repeat-round-space" | "calc" | "ch-unit" | "css-all" | "css-animation" | "css-any-link" | "css-appearance" | "css-at-counter-style" | "css-autofill" | "css-backdrop-filter" | "css-background-offsets" | "css-backgroundblendmode" | "css-boxdecorationbreak" | "css-boxshadow" | "css-canvas" | "css-caret-color" | "css-cascade-layers" | "css-case-insensitive" | "css-clip-path" | "css-color-adjust" | "css-color-function" | "css-conic-gradients" | "css-container-queries" | "css-container-queries-style" | "css-container-query-units" | "css-containment" | "css-content-visibility" | "css-counters" | "css-crisp-edges" | "css-cross-fade" | "css-default-pseudo" | "css-descendant-gtgt" | "css-deviceadaptation" | "css-dir-pseudo" | "css-display-contents" | "css-element-function" | "css-env-function" | "css-exclusions" | "css-featurequeries" | "css-file-selector-button" | "css-filter-function" | "css-filters" | "css-first-letter" | "css-first-line" | "css-fixed" | "css-focus-visible" | "css-focus-within" | "css-font-palette" | "css-font-rendering-controls" | "css-font-stretch" | "css-gencontent" | "css-gradients" | "css-grid" | "css-grid-animation" | "css-hanging-punctuation" | "css-has" | "css-hyphens" | "css-image-orientation" | "css-image-set" | "css-in-out-of-range" | "css-indeterminate-pseudo" | "css-initial-letter" | "css-initial-value" | "css-lch-lab" | "css-letter-spacing" | "css-line-clamp" | "css-logical-props" | "css-marker-pseudo" | "css-masks" | "css-matches-pseudo" | "css-math-functions" | "css-media-interaction" | "css-media-range-syntax" | "css-media-resolution" | "css-media-scripting" | "css-mediaqueries" | "css-mixblendmode" | "css-motion-paths" | "css-namespaces" | "css-nesting" | "css-not-sel-list" | "css-nth-child-of" | "css-opacity" | "css-optional-pseudo" | "css-overflow" | "css-overflow-anchor" | "css-overflow-overlay" | "css-overscroll-behavior" | "css-page-break" | "css-paged-media" | "css-paint-api" | "css-placeholder" | "css-placeholder-shown" | "css-print-color-adjust" | "css-read-only-write" | "css-rebeccapurple" | "css-reflections" | "css-regions" | "css-relative-colors" | "css-repeating-gradients" | "css-resize" | "css-revert-value" | "css-rrggbbaa" | "css-scroll-behavior" | "css-scroll-timeline" | "css-scrollbar" | "css-sel2" | "css-sel3" | "css-selection" | "css-shapes" | "css-snappoints" | "css-sticky" | "css-subgrid" | "css-supports-api" | "css-table" | "css-text-align-last" | "css-text-box-trim" | "css-text-indent" | "css-text-justify" | "css-text-orientation" | "css-text-spacing" | "css-textshadow" | "css-touch-action" | "css-transitions" | "css-unicode-bidi" | "css-unset-value" | "css-variables" | "css-when-else" | "css-widows-orphans" | "css-width-stretch" | "css-writing-mode" | "css-zoom" | "css3-attr" | "css3-boxsizing" | "css3-colors" | "css3-cursors" | "css3-cursors-grab" | "css3-cursors-newer" | "css3-tabsize" | "currentcolor" | "devicepixelratio" | "extended-system-fonts" | "flexbox" | "flexbox-gap" | "font-family-system-ui" | "font-feature" | "font-loading" | "font-unicode-range" | "fontface" | "fullscreen" | "getcomputedstyle" | "intrinsic-width" | "justify-content-space-evenly" | "kerning-pairs-ligatures" | "mdn-css-unicode-bidi-isolate" | "mdn-css-unicode-bidi-isolate-override" | "mdn-css-unicode-bidi-plaintext" | "mdn-text-decoration-color" | "mdn-text-decoration-line" | "mdn-text-decoration-shorthand" | "mdn-text-decoration-style" | "minmaxwh" | "multibackgrounds" | "multicolumn" | "style-scoped" | "svg-css" | "transforms2d" | "transforms3d" | "ttf" | "user-select-none" | "variable-fonts" | "viewport-unit-variants" | "viewport-units" | "wordwrap")[];
- ignoreFiles: string[];
- /**
- * @param {Object} [options]
- * @param {ConstructorParameters<typeof BrowserSelection>[1]} [options.from]
- */
- info(options?: {
- from?: [query?: string | string[], from?: string | false][1];
- }): {
- browsers: string[][];
- features: Partial<Record<"outline" | "background-attachment" | "pointer" | "flow-root" | "font-kerning" | "font-smooth" | "font-variant-alternates" | "font-variant-numeric" | "inline-block" | "prefers-color-scheme" | "prefers-reduced-motion" | "rem" | "run-in" | "text-emphasis" | "text-stroke" | "webkit-user-drag" | "border-image" | "border-radius" | "font-size-adjust" | "text-decoration" | "object-fit" | "pointer-events" | "text-overflow" | "text-size-adjust" | "will-change" | "word-break" | "alternate-stylesheet" | "background-clip-text" | "background-img-opts" | "background-position-x-y" | "background-repeat-round-space" | "calc" | "ch-unit" | "css-all" | "css-animation" | "css-any-link" | "css-appearance" | "css-at-counter-style" | "css-autofill" | "css-backdrop-filter" | "css-background-offsets" | "css-backgroundblendmode" | "css-boxdecorationbreak" | "css-boxshadow" | "css-canvas" | "css-caret-color" | "css-cascade-layers" | "css-case-insensitive" | "css-clip-path" | "css-color-adjust" | "css-color-function" | "css-conic-gradients" | "css-container-queries" | "css-container-queries-style" | "css-container-query-units" | "css-containment" | "css-content-visibility" | "css-counters" | "css-crisp-edges" | "css-cross-fade" | "css-default-pseudo" | "css-descendant-gtgt" | "css-deviceadaptation" | "css-dir-pseudo" | "css-display-contents" | "css-element-function" | "css-env-function" | "css-exclusions" | "css-featurequeries" | "css-file-selector-button" | "css-filter-function" | "css-filters" | "css-first-letter" | "css-first-line" | "css-fixed" | "css-focus-visible" | "css-focus-within" | "css-font-palette" | "css-font-rendering-controls" | "css-font-stretch" | "css-gencontent" | "css-gradients" | "css-grid" | "css-grid-animation" | "css-hanging-punctuation" | "css-has" | "css-hyphens" | "css-image-orientation" | "css-image-set" | "css-in-out-of-range" | "css-indeterminate-pseudo" | "css-initial-letter" | "css-initial-value" | "css-lch-lab" | "css-letter-spacing" | "css-line-clamp" | "css-logical-props" | "css-marker-pseudo" | "css-masks" | "css-matches-pseudo" | "css-math-functions" | "css-media-interaction" | "css-media-range-syntax" | "css-media-resolution" | "css-media-scripting" | "css-mediaqueries" | "css-mixblendmode" | "css-motion-paths" | "css-namespaces" | "css-nesting" | "css-not-sel-list" | "css-nth-child-of" | "css-opacity" | "css-optional-pseudo" | "css-overflow" | "css-overflow-anchor" | "css-overflow-overlay" | "css-overscroll-behavior" | "css-page-break" | "css-paged-media" | "css-paint-api" | "css-placeholder" | "css-placeholder-shown" | "css-print-color-adjust" | "css-read-only-write" | "css-rebeccapurple" | "css-reflections" | "css-regions" | "css-relative-colors" | "css-repeating-gradients" | "css-resize" | "css-revert-value" | "css-rrggbbaa" | "css-scroll-behavior" | "css-scroll-timeline" | "css-scrollbar" | "css-sel2" | "css-sel3" | "css-selection" | "css-shapes" | "css-snappoints" | "css-sticky" | "css-subgrid" | "css-supports-api" | "css-table" | "css-text-align-last" | "css-text-box-trim" | "css-text-indent" | "css-text-justify" | "css-text-orientation" | "css-text-spacing" | "css-textshadow" | "css-touch-action" | "css-transitions" | "css-unicode-bidi" | "css-unset-value" | "css-variables" | "css-when-else" | "css-widows-orphans" | "css-width-stretch" | "css-writing-mode" | "css-zoom" | "css3-attr" | "css3-boxsizing" | "css3-colors" | "css3-cursors" | "css3-cursors-grab" | "css3-cursors-newer" | "css3-tabsize" | "currentcolor" | "devicepixelratio" | "extended-system-fonts" | "flexbox" | "flexbox-gap" | "font-family-system-ui" | "font-feature" | "font-loading" | "font-unicode-range" | "fontface" | "fullscreen" | "getcomputedstyle" | "intrinsic-width" | "justify-content-space-evenly" | "kerning-pairs-ligatures" | "mdn-css-unicode-bidi-isolate" | "mdn-css-unicode-bidi-isolate-override" | "mdn-css-unicode-bidi-plaintext" | "mdn-text-decoration-color" | "mdn-text-decoration-line" | "mdn-text-decoration-shorthand" | "mdn-text-decoration-style" | "minmaxwh" | "multibackgrounds" | "multicolumn" | "style-scoped" | "svg-css" | "transforms2d" | "transforms3d" | "ttf" | "user-select-none" | "variable-fonts" | "viewport-unit-variants" | "viewport-units" | "wordwrap", import("./BrowserSelection.js").MissingSupportResultStats>>;
- };
- postcss(root: import("postcss/lib/root.js").default, result: import("postcss/lib/result.js").default): void | Promise<void>;
-}
-export type FeatureKeys = import('../data/features.js').FeatureKeys;
-export type OnFeatureUsageArguments = {
- feature: FeatureKeys;
- featureData: import('./BrowserSelection.js').MissingSupportResultStats | undefined;
- usage: import('postcss').Node;
- message: string;
-};
-export type OnFeatureUsage = (result: OnFeatureUsageArguments) => any;
-export type DoIUseOptions = {
- browsers?: [query?: string | string[], from?: string | false][0];
- ignore?: FeatureKeys[];
- onFeatureUsage?: OnFeatureUsage;
- ignoreFiles?: string[];
-};
diff --git a/node_modules/doiuse/types/lib/stream/CssUsageDuplex.d.ts b/node_modules/doiuse/types/lib/stream/CssUsageDuplex.d.ts
deleted file mode 100644
index 4b977cb3..00000000
--- a/node_modules/doiuse/types/lib/stream/CssUsageDuplex.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-/** @typedef {import('../../data/features.js').FeatureKeys} FeatureKeys */
-export default class CssUsageDuplex extends Duplexify.Duplexify {
- /**
- * @param {Object} options
- * @param {string} options.browsers
- * @param {FeatureKeys[]} [options.ignore]
- * @param {boolean} [options.skipErrors]
- * @param {string} [filename] Filename for outputting source code locations.
- */
- constructor(options: {
- browsers: string;
- ignore?: FeatureKeys[];
- skipErrors?: boolean;
- }, filename?: string);
-}
-export type FeatureKeys = import('../../data/features.js').FeatureKeys;
-import Duplexify from 'duplexify';
diff --git a/node_modules/doiuse/types/lib/stream/RuleUsageTransform.d.ts b/node_modules/doiuse/types/lib/stream/RuleUsageTransform.d.ts
deleted file mode 100644
index dc2c0259..00000000
--- a/node_modules/doiuse/types/lib/stream/RuleUsageTransform.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/** @typedef {import('../../data/features.js').FeatureKeys} FeatureKeys */
-/** @typedef {import('./SourceMapTransform.js').SourceMapTransformation} SourceMapTransformation */
-export default class RuleUsageTransform extends Transform {
- /**
- * @param {Object} options
- * @param {string} options.browsers
- * @param {FeatureKeys[]} [options.ignore]
- * @param {boolean} [options.skipErrors]
- * @param {string} [filename] Filename for outputting source code locations.
- */
- constructor(options: {
- browsers: string;
- ignore?: FeatureKeys[];
- skipErrors?: boolean;
- }, filename?: string);
- /**
- * @param {SourceMapTransformation} rule
- * @param {any} encoding
- * @param {Function} callback
- */
- _transform(rule: SourceMapTransformation, encoding: any, callback: Function): Promise<void>;
- #private;
-}
-export type FeatureKeys = import('../../data/features.js').FeatureKeys;
-export type SourceMapTransformation = import('./SourceMapTransform.js').SourceMapTransformation;
-import { Transform } from 'node:stream';
diff --git a/node_modules/doiuse/types/lib/stream/SourceMapTransform.d.ts b/node_modules/doiuse/types/lib/stream/SourceMapTransform.d.ts
deleted file mode 100644
index f7bb4800..00000000
--- a/node_modules/doiuse/types/lib/stream/SourceMapTransform.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * @typedef {Object} SourceMapTransformation
- * @prop {number} line
- * @prop {number} column
- * @prop {string} content
- */
-export default class SourceMapTransform extends Transform {
- constructor();
- /**
- * @param {[string,Buffer]} chunk
- * @param {any} encoding
- * @param {Function} callback
- */
- _transform([type, buf]: [string, Buffer], encoding: any, callback: Function): void;
- #private;
-}
-export type SourceMapTransformation = {
- line: number;
- column: number;
- content: string;
-};
-import { Transform } from 'node:stream';
diff --git a/node_modules/doiuse/types/scripts/update-features.d.ts b/node_modules/doiuse/types/scripts/update-features.d.ts
deleted file mode 100644
index 6370e8f8..00000000
--- a/node_modules/doiuse/types/scripts/update-features.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env node
-export type StubOptions = {
- id: string;
- name: string;
- description: string;
- link: string;
-};
diff --git a/node_modules/doiuse/types/test/caniuse-lite.d.ts b/node_modules/doiuse/types/test/caniuse-lite.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/node_modules/doiuse/types/test/caniuse-lite.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/doiuse/types/test/cli.d.ts b/node_modules/doiuse/types/test/cli.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/node_modules/doiuse/types/test/cli.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/doiuse/types/test/css-rule-stream.d.ts b/node_modules/doiuse/types/test/css-rule-stream.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/node_modules/doiuse/types/test/css-rule-stream.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/doiuse/types/test/detect-feature-use.d.ts b/node_modules/doiuse/types/test/detect-feature-use.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/node_modules/doiuse/types/test/detect-feature-use.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/doiuse/types/test/missing-support.d.ts b/node_modules/doiuse/types/test/missing-support.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/node_modules/doiuse/types/test/missing-support.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/doiuse/types/test/postcss-plugin.d.ts b/node_modules/doiuse/types/test/postcss-plugin.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/node_modules/doiuse/types/test/postcss-plugin.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/doiuse/types/test/regex.d.ts b/node_modules/doiuse/types/test/regex.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/node_modules/doiuse/types/test/regex.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/doiuse/types/test/stream.d.ts b/node_modules/doiuse/types/test/stream.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/node_modules/doiuse/types/test/stream.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/node_modules/doiuse/types/test/utils.d.ts b/node_modules/doiuse/types/test/utils.d.ts
deleted file mode 100644
index 48ed3372..00000000
--- a/node_modules/doiuse/types/test/utils.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * @template {Object} T
- * @param {Tap.Test} t
- * @param {T} object
- * @param {(keyof T)[]} keys
- */
-export function hasKeys<T extends unknown>(t: Tap.Test, object: T, keys: (keyof T)[]): boolean;
diff --git a/node_modules/doiuse/types/utils/getFiles.d.ts b/node_modules/doiuse/types/utils/getFiles.d.ts
deleted file mode 100644
index 09b1b1df..00000000
--- a/node_modules/doiuse/types/utils/getFiles.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * recursively get all files in a directory
- * @param {string} directory the directory to read
- * @yields {string} the path to each file
- * @return {AsyncGenerator<string>} the path to each file
- */
-export function getFiles(directory: string): AsyncGenerator<string>;
diff --git a/node_modules/doiuse/types/utils/kebabToCamel.d.ts b/node_modules/doiuse/types/utils/kebabToCamel.d.ts
deleted file mode 100644
index 398896c0..00000000
--- a/node_modules/doiuse/types/utils/kebabToCamel.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * given a kebab-case string, returns a camelCase string
- * @param {string} kebab the kebab-case string
- * @return {string} the camelCase string
- */
-export function kebabToCamel(kebab: string): string;
diff --git a/node_modules/doiuse/types/utils/util.d.ts b/node_modules/doiuse/types/utils/util.d.ts
deleted file mode 100644
index c62d04ca..00000000
--- a/node_modules/doiuse/types/utils/util.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/** @typedef {RegExp|string|((value:string) => boolean)} FeatureCheck */
-/**
- * @param {string} browserKey
- * @param {string[]} [versions]
- * @return {string}
- */
-export function formatBrowserName(browserKey: string, versions?: string[]): string;
-/**
- *
- * @param {FeatureCheck|FeatureCheck[]} check
- * @param {?string|undefined} candidate
- */
-export function performFeatureCheck(check: FeatureCheck | FeatureCheck[], candidate: (string | undefined) | null): any;
-/**
- * @param {FeatureCheck|FeatureCheck[]} selector
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-export function checkSelector(selector: FeatureCheck | FeatureCheck[]): (rule: import('postcss').ChildNode) => boolean;
-/**
- * @param {FeatureCheck|FeatureCheck[]} [name]
- * @param {FeatureCheck|FeatureCheck[]} [parameters]
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-export function checkAtRule(name?: FeatureCheck | FeatureCheck[], parameters?: FeatureCheck | FeatureCheck[]): (rule: import('postcss').ChildNode) => boolean;
-/**
- * @see https://drafts.csswg.org/css-values/#lengths
- * @see https://drafts.csswg.org/css-values/#number-value
- * @param {string[]} units
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-export function checkCSSLengthUnits(...units: string[]): (rule: import('postcss').ChildNode) => boolean;
-export type FeatureCheck = string | RegExp | ((value: string) => boolean);
diff --git a/node_modules/doiuse/utils/getFiles.js b/node_modules/doiuse/utils/getFiles.js
deleted file mode 100644
index 3e939420..00000000
--- a/node_modules/doiuse/utils/getFiles.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import { readdir } from 'node:fs/promises';
-import { resolve } from 'node:path';
-
-/**
- * recursively get all files in a directory
- * @param {string} directory the directory to read
- * @yields {string} the path to each file
- * @return {AsyncGenerator<string>} the path to each file
- */
-export async function* getFiles(directory) {
- for (const entry of await readdir(directory, { withFileTypes: true })) {
- const path = resolve(directory, entry.name);
- if (entry.isDirectory()) {
- yield* getFiles(path);
- } else {
- yield path;
- }
- }
-}
diff --git a/node_modules/doiuse/utils/kebabToCamel.js b/node_modules/doiuse/utils/kebabToCamel.js
deleted file mode 100644
index c7237c3c..00000000
--- a/node_modules/doiuse/utils/kebabToCamel.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * given a kebab-case string, returns a camelCase string
- * @param {string} kebab the kebab-case string
- * @return {string} the camelCase string
- */
-export function kebabToCamel(kebab) {
- return kebab.replaceAll(/-([a-z])/g, (match, letter) => letter.toUpperCase());
-}
diff --git a/node_modules/doiuse/utils/util.js b/node_modules/doiuse/utils/util.js
deleted file mode 100644
index e9b323e9..00000000
--- a/node_modules/doiuse/utils/util.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import { agents } from 'caniuse-lite';
-
-/** @typedef {RegExp|string|((value:string) => boolean)} FeatureCheck */
-
-/**
- * @param {string} browserKey
- * @param {string[]} [versions]
- * @return {string}
- */
-export function formatBrowserName(browserKey, versions) {
- const entry = agents[browserKey];
- const browserName = entry ? entry.browser : null;
- if (!versions) {
- return browserName || '';
- }
- return (`${browserName} (${versions.join(',')})`);
-}
-
-/**
- *
- * @param {FeatureCheck|FeatureCheck[]} check
- * @param {?string|undefined} candidate
- */
-export function performFeatureCheck(check, candidate) {
- if (check == null || candidate == null) return false;
- if (check instanceof RegExp) {
- return check.test(candidate);
- }
- switch (typeof check) {
- case 'string':
- return candidate.includes(check);
- case 'function':
- return check(candidate);
- case 'boolean':
- return check;
- case 'object':
- if (Array.isArray(check)) {
- return check.some((c) => performFeatureCheck(c, candidate));
- }
- // Fallthrough
- default:
- console.error(check);
- throw new TypeError(`Unexpected feature check: ${check}`);
- }
-}
-
-/**
- * @param {FeatureCheck|FeatureCheck[]} selector
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-export function checkSelector(selector) {
- return (rule) => rule.type === 'rule'
- && performFeatureCheck(selector, rule.selector);
-}
-
-/**
- * @param {FeatureCheck|FeatureCheck[]} [name]
- * @param {FeatureCheck|FeatureCheck[]} [parameters]
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-export function checkAtRule(name, parameters) {
- return (rule) => rule.type === 'atrule'
- && performFeatureCheck(name, rule.name)
- && (!parameters || performFeatureCheck(parameters, rule.params));
-}
-
-/**
- * @see https://drafts.csswg.org/css-values/#lengths
- * @see https://drafts.csswg.org/css-values/#number-value
- * @param {string[]} units
- * @return {(rule:import('postcss').ChildNode) => boolean}
- */
-export function checkCSSLengthUnits(...units) {
- const regexp = new RegExp(`(\\+-)?[\\d.]*\\.?\\d+(e(\\+-)?\\d+)?(${units.join('|')})`, 'i');
- return (rule) => (
- (rule.type === 'decl') ? performFeatureCheck(regexp, rule.value)
- : ((rule.type === 'atrule') ? performFeatureCheck(regexp, rule.params)
- : false));
-}