diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:50:21 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:50:21 +0800 |
| commit | 0379526e20e1ff212df23e6326741aa9c06df204 (patch) | |
| tree | 340143b0c4dc4280c88ba1591d137b53477005b3 /node_modules/doiuse/data | |
| parent | 7aba14fb7c970c6e6af82c805db2aef6d70bfe2b (diff) | |
added doiuse plugin for postcss
Diffstat (limited to 'node_modules/doiuse/data')
206 files changed, 2452 insertions, 0 deletions
diff --git a/node_modules/doiuse/data/.eslintrc.json b/node_modules/doiuse/data/.eslintrc.json new file mode 100644 index 00000000..5d42aab7 --- /dev/null +++ b/node_modules/doiuse/data/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "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 new file mode 100644 index 00000000..52bdc6c8 --- /dev/null +++ b/node_modules/doiuse/data/features.js @@ -0,0 +1,425 @@ +/* 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 new file mode 100644 index 00000000..f127e84d --- /dev/null +++ b/node_modules/doiuse/data/features/alternate-stylesheet.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..cd493ddb --- /dev/null +++ b/node_modules/doiuse/data/features/background-attachment.js @@ -0,0 +1,15 @@ +/** + * 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 new file mode 100644 index 00000000..c02c5974 --- /dev/null +++ b/node_modules/doiuse/data/features/background-clip-text.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..32ba9590 --- /dev/null +++ b/node_modules/doiuse/data/features/background-img-opts.js @@ -0,0 +1,5 @@ +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 new file mode 100644 index 00000000..9239d7d0 --- /dev/null +++ b/node_modules/doiuse/data/features/background-position-x-y.js @@ -0,0 +1,4 @@ +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 new file mode 100644 index 00000000..0a8fb685 --- /dev/null +++ b/node_modules/doiuse/data/features/background-repeat-round-space.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..911a04ba --- /dev/null +++ b/node_modules/doiuse/data/features/border-image.js @@ -0,0 +1,9 @@ +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 new file mode 100644 index 00000000..ed207b05 --- /dev/null +++ b/node_modules/doiuse/data/features/border-radius.js @@ -0,0 +1,7 @@ +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 new file mode 100644 index 00000000..f20331d6 --- /dev/null +++ b/node_modules/doiuse/data/features/calc.js @@ -0,0 +1,3 @@ +export default { + '': 'calc(', +}; diff --git a/node_modules/doiuse/data/features/ch-unit.js b/node_modules/doiuse/data/features/ch-unit.js new file mode 100644 index 00000000..57da8096 --- /dev/null +++ b/node_modules/doiuse/data/features/ch-unit.js @@ -0,0 +1,8 @@ +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 new file mode 100644 index 00000000..8112d162 --- /dev/null +++ b/node_modules/doiuse/data/features/css-all.js @@ -0,0 +1,3 @@ +export default { + 'all': true, +}; diff --git a/node_modules/doiuse/data/features/css-animation.js b/node_modules/doiuse/data/features/css-animation.js new file mode 100644 index 00000000..7c2fb88f --- /dev/null +++ b/node_modules/doiuse/data/features/css-animation.js @@ -0,0 +1,14 @@ +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 new file mode 100644 index 00000000..990a591d --- /dev/null +++ b/node_modules/doiuse/data/features/css-any-link.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..f316c2d4 --- /dev/null +++ b/node_modules/doiuse/data/features/css-appearance.js @@ -0,0 +1,5 @@ +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 new file mode 100644 index 00000000..d944cc62 --- /dev/null +++ b/node_modules/doiuse/data/features/css-at-counter-style.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..52850482 --- /dev/null +++ b/node_modules/doiuse/data/features/css-autofill.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..ac92860c --- /dev/null +++ b/node_modules/doiuse/data/features/css-backdrop-filter.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..0fb021d4 --- /dev/null +++ b/node_modules/doiuse/data/features/css-background-offsets.js @@ -0,0 +1,11 @@ +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 new file mode 100644 index 00000000..f2e5181e --- /dev/null +++ b/node_modules/doiuse/data/features/css-backgroundblendmode.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..a68839a0 --- /dev/null +++ b/node_modules/doiuse/data/features/css-boxdecorationbreak.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..ac91aba2 --- /dev/null +++ b/node_modules/doiuse/data/features/css-boxshadow.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..92b858b8 --- /dev/null +++ b/node_modules/doiuse/data/features/css-canvas.js @@ -0,0 +1,9 @@ +/** + * @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 new file mode 100644 index 00000000..da95db5c --- /dev/null +++ b/node_modules/doiuse/data/features/css-caret-color.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..6edd5dbb --- /dev/null +++ b/node_modules/doiuse/data/features/css-cascade-layers.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..72c36107 --- /dev/null +++ b/node_modules/doiuse/data/features/css-case-insensitive.js @@ -0,0 +1,14 @@ +/** + * 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 new file mode 100644 index 00000000..d1322c5e --- /dev/null +++ b/node_modules/doiuse/data/features/css-clip-path.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..1feb161f --- /dev/null +++ b/node_modules/doiuse/data/features/css-color-adjust.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..0cd1dc34 --- /dev/null +++ b/node_modules/doiuse/data/features/css-color-function.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..60494e7b --- /dev/null +++ b/node_modules/doiuse/data/features/css-conic-gradients.js @@ -0,0 +1,12 @@ +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 new file mode 100644 index 00000000..d9886295 --- /dev/null +++ b/node_modules/doiuse/data/features/css-container-queries-style.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..1b013096 --- /dev/null +++ b/node_modules/doiuse/data/features/css-container-queries.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..c6212b4f --- /dev/null +++ b/node_modules/doiuse/data/features/css-container-query-units.js @@ -0,0 +1,10 @@ +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 new file mode 100644 index 00000000..c9492d32 --- /dev/null +++ b/node_modules/doiuse/data/features/css-containment.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..2adef2da --- /dev/null +++ b/node_modules/doiuse/data/features/css-content-visibility.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..56b824e2 --- /dev/null +++ b/node_modules/doiuse/data/features/css-counters.js @@ -0,0 +1,5 @@ +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 new file mode 100644 index 00000000..31690145 --- /dev/null +++ b/node_modules/doiuse/data/features/css-crisp-edges.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..bf32aee7 --- /dev/null +++ b/node_modules/doiuse/data/features/css-cross-fade.js @@ -0,0 +1,15 @@ +/** + * 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 new file mode 100644 index 00000000..e191fd88 --- /dev/null +++ b/node_modules/doiuse/data/features/css-default-pseudo.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..48371d35 --- /dev/null +++ b/node_modules/doiuse/data/features/css-descendant-gtgt.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..ac3481ac --- /dev/null +++ b/node_modules/doiuse/data/features/css-deviceadaptation.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..0b16e8f8 --- /dev/null +++ b/node_modules/doiuse/data/features/css-dir-pseudo.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..d6b002fd --- /dev/null +++ b/node_modules/doiuse/data/features/css-display-contents.js @@ -0,0 +1,12 @@ +/** + * `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 new file mode 100644 index 00000000..4d9171a0 --- /dev/null +++ b/node_modules/doiuse/data/features/css-element-function.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..4b275b55 --- /dev/null +++ b/node_modules/doiuse/data/features/css-env-function.js @@ -0,0 +1,3 @@ +export default { + '': 'env(', +}; diff --git a/node_modules/doiuse/data/features/css-exclusions.js b/node_modules/doiuse/data/features/css-exclusions.js new file mode 100644 index 00000000..1e45ea6e --- /dev/null +++ b/node_modules/doiuse/data/features/css-exclusions.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..ecd372f8 --- /dev/null +++ b/node_modules/doiuse/data/features/css-featurequeries.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..bc8d7682 --- /dev/null +++ b/node_modules/doiuse/data/features/css-file-selector-button.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..d83f30f6 --- /dev/null +++ b/node_modules/doiuse/data/features/css-filter-function.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..f10dfe6c --- /dev/null +++ b/node_modules/doiuse/data/features/css-filters.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..efaf92f8 --- /dev/null +++ b/node_modules/doiuse/data/features/css-first-letter.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..4f6e5df7 --- /dev/null +++ b/node_modules/doiuse/data/features/css-first-line.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..9075e504 --- /dev/null +++ b/node_modules/doiuse/data/features/css-fixed.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..54d79eb6 --- /dev/null +++ b/node_modules/doiuse/data/features/css-focus-visible.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..f020462b --- /dev/null +++ b/node_modules/doiuse/data/features/css-focus-within.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..8c8eff4e --- /dev/null +++ b/node_modules/doiuse/data/features/css-font-palette.js @@ -0,0 +1,6 @@ +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 new file mode 100644 index 00000000..ba99dfc8 --- /dev/null +++ b/node_modules/doiuse/data/features/css-font-rendering-controls.js @@ -0,0 +1,12 @@ +/** + * `@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 new file mode 100644 index 00000000..239170d3 --- /dev/null +++ b/node_modules/doiuse/data/features/css-font-stretch.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..d420e074 --- /dev/null +++ b/node_modules/doiuse/data/features/css-gencontent.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..b889583e --- /dev/null +++ b/node_modules/doiuse/data/features/css-gradients.js @@ -0,0 +1,12 @@ +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 new file mode 100644 index 00000000..50be7da2 --- /dev/null +++ b/node_modules/doiuse/data/features/css-grid-animation.js @@ -0,0 +1,6 @@ +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 new file mode 100644 index 00000000..3387ed60 --- /dev/null +++ b/node_modules/doiuse/data/features/css-grid.js @@ -0,0 +1,23 @@ +/** @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 new file mode 100644 index 00000000..def2e2db --- /dev/null +++ b/node_modules/doiuse/data/features/css-hanging-punctuation.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..da108c07 --- /dev/null +++ b/node_modules/doiuse/data/features/css-has.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..fff20407 --- /dev/null +++ b/node_modules/doiuse/data/features/css-hyphens.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..6a715f39 --- /dev/null +++ b/node_modules/doiuse/data/features/css-image-orientation.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..9134ce83 --- /dev/null +++ b/node_modules/doiuse/data/features/css-image-set.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..dae751db --- /dev/null +++ b/node_modules/doiuse/data/features/css-in-out-of-range.js @@ -0,0 +1,14 @@ +/** + * 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 new file mode 100644 index 00000000..855f8b27 --- /dev/null +++ b/node_modules/doiuse/data/features/css-indeterminate-pseudo.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..8376c7b8 --- /dev/null +++ b/node_modules/doiuse/data/features/css-initial-letter.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..21eb98f5 --- /dev/null +++ b/node_modules/doiuse/data/features/css-initial-value.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..9d208641 --- /dev/null +++ b/node_modules/doiuse/data/features/css-lch-lab.js @@ -0,0 +1,14 @@ +/** + * 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 new file mode 100644 index 00000000..60f900ab --- /dev/null +++ b/node_modules/doiuse/data/features/css-letter-spacing.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..bb704439 --- /dev/null +++ b/node_modules/doiuse/data/features/css-line-clamp.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..13c70831 --- /dev/null +++ b/node_modules/doiuse/data/features/css-logical-props.js @@ -0,0 +1,60 @@ +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 new file mode 100644 index 00000000..e8d51a39 --- /dev/null +++ b/node_modules/doiuse/data/features/css-marker-pseudo.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..fab5f338 --- /dev/null +++ b/node_modules/doiuse/data/features/css-masks.js @@ -0,0 +1,39 @@ +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 new file mode 100644 index 00000000..e1696a9a --- /dev/null +++ b/node_modules/doiuse/data/features/css-matches-pseudo.js @@ -0,0 +1,12 @@ +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 new file mode 100644 index 00000000..59bab0f4 --- /dev/null +++ b/node_modules/doiuse/data/features/css-math-functions.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..23e1a9c7 --- /dev/null +++ b/node_modules/doiuse/data/features/css-media-interaction.js @@ -0,0 +1,16 @@ +/** + * 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 new file mode 100644 index 00000000..ff9de126 --- /dev/null +++ b/node_modules/doiuse/data/features/css-media-range-syntax.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..a995449a --- /dev/null +++ b/node_modules/doiuse/data/features/css-media-resolution.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..cfac81d2 --- /dev/null +++ b/node_modules/doiuse/data/features/css-media-scripting.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..0f251607 --- /dev/null +++ b/node_modules/doiuse/data/features/css-mediaqueries.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..4197789b --- /dev/null +++ b/node_modules/doiuse/data/features/css-mixblendmode.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..c06f4cbf --- /dev/null +++ b/node_modules/doiuse/data/features/css-motion-paths.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..0e9797db --- /dev/null +++ b/node_modules/doiuse/data/features/css-namespaces.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..2415d08a --- /dev/null +++ b/node_modules/doiuse/data/features/css-nesting.js @@ -0,0 +1,19 @@ +/** + * 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 new file mode 100644 index 00000000..ee745e7e --- /dev/null +++ b/node_modules/doiuse/data/features/css-not-sel-list.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..b1249f6f --- /dev/null +++ b/node_modules/doiuse/data/features/css-nth-child-of.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..50f65243 --- /dev/null +++ b/node_modules/doiuse/data/features/css-opacity.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..8ecca39f --- /dev/null +++ b/node_modules/doiuse/data/features/css-optional-pseudo.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..6424835a --- /dev/null +++ b/node_modules/doiuse/data/features/css-overflow-anchor.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..bdbc6ba3 --- /dev/null +++ b/node_modules/doiuse/data/features/css-overflow-overlay.js @@ -0,0 +1,3 @@ +export default { + 'overflow': 'overlay', +}; diff --git a/node_modules/doiuse/data/features/css-overflow.js b/node_modules/doiuse/data/features/css-overflow.js new file mode 100644 index 00000000..324bbcda --- /dev/null +++ b/node_modules/doiuse/data/features/css-overflow.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..3f951b6a --- /dev/null +++ b/node_modules/doiuse/data/features/css-overscroll-behavior.js @@ -0,0 +1,5 @@ +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 new file mode 100644 index 00000000..93d95a04 --- /dev/null +++ b/node_modules/doiuse/data/features/css-page-break.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..b06d2042 --- /dev/null +++ b/node_modules/doiuse/data/features/css-paged-media.js @@ -0,0 +1,11 @@ +/** + * 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 new file mode 100644 index 00000000..cf951ec5 --- /dev/null +++ b/node_modules/doiuse/data/features/css-paint-api.js @@ -0,0 +1,9 @@ +/** + * 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 new file mode 100644 index 00000000..1a92d39e --- /dev/null +++ b/node_modules/doiuse/data/features/css-placeholder-shown.js @@ -0,0 +1,12 @@ +/** + * :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 new file mode 100644 index 00000000..52390e8c --- /dev/null +++ b/node_modules/doiuse/data/features/css-placeholder.js @@ -0,0 +1,5 @@ +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 new file mode 100644 index 00000000..ffa89e69 --- /dev/null +++ b/node_modules/doiuse/data/features/css-print-color-adjust.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..e9956292 --- /dev/null +++ b/node_modules/doiuse/data/features/css-read-only-write.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..3a813b5d --- /dev/null +++ b/node_modules/doiuse/data/features/css-rebeccapurple.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..de0a7671 --- /dev/null +++ b/node_modules/doiuse/data/features/css-reflections.js @@ -0,0 +1,4 @@ +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 new file mode 100644 index 00000000..3aefaacf --- /dev/null +++ b/node_modules/doiuse/data/features/css-regions.js @@ -0,0 +1,15 @@ +/** + * 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 new file mode 100644 index 00000000..48bcd665 --- /dev/null +++ b/node_modules/doiuse/data/features/css-relative-colors.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..5639bbe6 --- /dev/null +++ b/node_modules/doiuse/data/features/css-repeating-gradients.js @@ -0,0 +1,6 @@ +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 new file mode 100644 index 00000000..8b25994b --- /dev/null +++ b/node_modules/doiuse/data/features/css-resize.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..03067c7b --- /dev/null +++ b/node_modules/doiuse/data/features/css-revert-value.js @@ -0,0 +1,4 @@ +export default { + '': 'revert', + +}; diff --git a/node_modules/doiuse/data/features/css-rrggbbaa.js b/node_modules/doiuse/data/features/css-rrggbbaa.js new file mode 100644 index 00000000..7d83f4e4 --- /dev/null +++ b/node_modules/doiuse/data/features/css-rrggbbaa.js @@ -0,0 +1,15 @@ +/** + * #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 new file mode 100644 index 00000000..fc83e96f --- /dev/null +++ b/node_modules/doiuse/data/features/css-scroll-behavior.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..48da61cd --- /dev/null +++ b/node_modules/doiuse/data/features/css-scroll-timeline.js @@ -0,0 +1,27 @@ +/** + * 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 new file mode 100644 index 00000000..ed4edbf9 --- /dev/null +++ b/node_modules/doiuse/data/features/css-scrollbar.js @@ -0,0 +1,4 @@ +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 new file mode 100644 index 00000000..cdadf2ff --- /dev/null +++ b/node_modules/doiuse/data/features/css-sel2.js @@ -0,0 +1,42 @@ +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 new file mode 100644 index 00000000..c82db473 --- /dev/null +++ b/node_modules/doiuse/data/features/css-sel3.js @@ -0,0 +1,34 @@ +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 new file mode 100644 index 00000000..34c6fd4f --- /dev/null +++ b/node_modules/doiuse/data/features/css-selection.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..4eddbfa3 --- /dev/null +++ b/node_modules/doiuse/data/features/css-shapes.js @@ -0,0 +1,5 @@ +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 new file mode 100644 index 00000000..52b5649f --- /dev/null +++ b/node_modules/doiuse/data/features/css-snappoints.js @@ -0,0 +1,36 @@ +/** + * 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 new file mode 100644 index 00000000..b7336e62 --- /dev/null +++ b/node_modules/doiuse/data/features/css-sticky.js @@ -0,0 +1,3 @@ +export default { + 'position': 'sticky', +}; diff --git a/node_modules/doiuse/data/features/css-subgrid.js b/node_modules/doiuse/data/features/css-subgrid.js new file mode 100644 index 00000000..0b23eb99 --- /dev/null +++ b/node_modules/doiuse/data/features/css-subgrid.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..cea5cab1 --- /dev/null +++ b/node_modules/doiuse/data/features/css-supports-api.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..d86c5c2a --- /dev/null +++ b/node_modules/doiuse/data/features/css-table.js @@ -0,0 +1,7 @@ +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 new file mode 100644 index 00000000..31883731 --- /dev/null +++ b/node_modules/doiuse/data/features/css-text-align-last.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..e91567f0 --- /dev/null +++ b/node_modules/doiuse/data/features/css-text-box-trim.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..574fab41 --- /dev/null +++ b/node_modules/doiuse/data/features/css-text-indent.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..3b08cad8 --- /dev/null +++ b/node_modules/doiuse/data/features/css-text-justify.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..93c7ccd0 --- /dev/null +++ b/node_modules/doiuse/data/features/css-text-orientation.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..08d3262b --- /dev/null +++ b/node_modules/doiuse/data/features/css-text-spacing.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..00ec173d --- /dev/null +++ b/node_modules/doiuse/data/features/css-textshadow.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..fe8ccc57 --- /dev/null +++ b/node_modules/doiuse/data/features/css-touch-action.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..c2f29934 --- /dev/null +++ b/node_modules/doiuse/data/features/css-transitions.js @@ -0,0 +1,7 @@ +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 new file mode 100644 index 00000000..7a16c868 --- /dev/null +++ b/node_modules/doiuse/data/features/css-unicode-bidi.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..28b86a14 --- /dev/null +++ b/node_modules/doiuse/data/features/css-unset-value.js @@ -0,0 +1,3 @@ +export default { + '': 'unset', +}; diff --git a/node_modules/doiuse/data/features/css-variables.js b/node_modules/doiuse/data/features/css-variables.js new file mode 100644 index 00000000..fecc07b4 --- /dev/null +++ b/node_modules/doiuse/data/features/css-variables.js @@ -0,0 +1,8 @@ +/** + * @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 new file mode 100644 index 00000000..d449b9d3 --- /dev/null +++ b/node_modules/doiuse/data/features/css-when-else.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..1604f84d --- /dev/null +++ b/node_modules/doiuse/data/features/css-widows-orphans.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..f87b0b75 --- /dev/null +++ b/node_modules/doiuse/data/features/css-width-stretch.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..0a43f59c --- /dev/null +++ b/node_modules/doiuse/data/features/css-writing-mode.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..66f606b7 --- /dev/null +++ b/node_modules/doiuse/data/features/css-zoom.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..0031aedf --- /dev/null +++ b/node_modules/doiuse/data/features/css3-attr.js @@ -0,0 +1,17 @@ +/** + * 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 new file mode 100644 index 00000000..56f16d9f --- /dev/null +++ b/node_modules/doiuse/data/features/css3-boxsizing.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..97fa5620 --- /dev/null +++ b/node_modules/doiuse/data/features/css3-colors.js @@ -0,0 +1,7 @@ +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 new file mode 100644 index 00000000..69f55e6e --- /dev/null +++ b/node_modules/doiuse/data/features/css3-cursors-grab.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..8941c6f8 --- /dev/null +++ b/node_modules/doiuse/data/features/css3-cursors-newer.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..e6e96e18 --- /dev/null +++ b/node_modules/doiuse/data/features/css3-cursors.js @@ -0,0 +1,17 @@ +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 new file mode 100644 index 00000000..3176ab15 --- /dev/null +++ b/node_modules/doiuse/data/features/css3-tabsize.js @@ -0,0 +1,3 @@ +export default { + 'tab-size': true, +}; diff --git a/node_modules/doiuse/data/features/currentcolor.js b/node_modules/doiuse/data/features/currentcolor.js new file mode 100644 index 00000000..a3a733a7 --- /dev/null +++ b/node_modules/doiuse/data/features/currentcolor.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..13fdd938 --- /dev/null +++ b/node_modules/doiuse/data/features/devicepixelratio.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..5376d3f7 --- /dev/null +++ b/node_modules/doiuse/data/features/extended-system-fonts.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..c94eac38 --- /dev/null +++ b/node_modules/doiuse/data/features/flexbox-gap.js @@ -0,0 +1,18 @@ +/** + * 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 new file mode 100644 index 00000000..e494acb1 --- /dev/null +++ b/node_modules/doiuse/data/features/flexbox.js @@ -0,0 +1,13 @@ +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 new file mode 100644 index 00000000..9b16aede --- /dev/null +++ b/node_modules/doiuse/data/features/flow-root.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..b1b6e08f --- /dev/null +++ b/node_modules/doiuse/data/features/font-family-system-ui.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..f0b8ebd2 --- /dev/null +++ b/node_modules/doiuse/data/features/font-feature.js @@ -0,0 +1,6 @@ +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 new file mode 100644 index 00000000..d239756e --- /dev/null +++ b/node_modules/doiuse/data/features/font-kerning.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..1a0c1ca9 --- /dev/null +++ b/node_modules/doiuse/data/features/font-loading.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..4604c92a --- /dev/null +++ b/node_modules/doiuse/data/features/font-size-adjust.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..8304c4ad --- /dev/null +++ b/node_modules/doiuse/data/features/font-smooth.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..945ebb6d --- /dev/null +++ b/node_modules/doiuse/data/features/font-unicode-range.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..169e5c37 --- /dev/null +++ b/node_modules/doiuse/data/features/font-variant-alternates.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..13b05164 --- /dev/null +++ b/node_modules/doiuse/data/features/font-variant-numeric.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..2350dae0 --- /dev/null +++ b/node_modules/doiuse/data/features/fontface.js @@ -0,0 +1,5 @@ +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 new file mode 100644 index 00000000..c5befe68 --- /dev/null +++ b/node_modules/doiuse/data/features/fullscreen.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..ac64aab5 --- /dev/null +++ b/node_modules/doiuse/data/features/getcomputedstyle.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..35b09093 --- /dev/null +++ b/node_modules/doiuse/data/features/inline-block.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..a01a8f3f --- /dev/null +++ b/node_modules/doiuse/data/features/intrinsic-width.js @@ -0,0 +1,10 @@ +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 new file mode 100644 index 00000000..0df7d327 --- /dev/null +++ b/node_modules/doiuse/data/features/justify-content-space-evenly.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..31fbcbbc --- /dev/null +++ b/node_modules/doiuse/data/features/kerning-pairs-ligatures.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..72e64cf8 --- /dev/null +++ b/node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate-override.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..84039895 --- /dev/null +++ b/node_modules/doiuse/data/features/mdn-css-unicode-bidi-isolate.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..7850a81d --- /dev/null +++ b/node_modules/doiuse/data/features/mdn-css-unicode-bidi-plaintext.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..cc6cf839 --- /dev/null +++ b/node_modules/doiuse/data/features/mdn-text-decoration-color.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..45ad538d --- /dev/null +++ b/node_modules/doiuse/data/features/mdn-text-decoration-line.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..791f6067 --- /dev/null +++ b/node_modules/doiuse/data/features/mdn-text-decoration-shorthand.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..5c1142c2 --- /dev/null +++ b/node_modules/doiuse/data/features/mdn-text-decoration-style.js @@ -0,0 +1,3 @@ +export default { + 'text-decoration-style': true, +}; diff --git a/node_modules/doiuse/data/features/minmaxwh.js b/node_modules/doiuse/data/features/minmaxwh.js new file mode 100644 index 00000000..4b6ab356 --- /dev/null +++ b/node_modules/doiuse/data/features/minmaxwh.js @@ -0,0 +1,6 @@ +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 new file mode 100644 index 00000000..6ff70435 --- /dev/null +++ b/node_modules/doiuse/data/features/multibackgrounds.js @@ -0,0 +1,11 @@ +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 new file mode 100644 index 00000000..3d2efc7c --- /dev/null +++ b/node_modules/doiuse/data/features/multicolumn.js @@ -0,0 +1,15 @@ +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 new file mode 100644 index 00000000..44c59b2f --- /dev/null +++ b/node_modules/doiuse/data/features/object-fit.js @@ -0,0 +1,4 @@ +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 new file mode 100644 index 00000000..17e62061 --- /dev/null +++ b/node_modules/doiuse/data/features/outline.js @@ -0,0 +1,6 @@ +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 new file mode 100644 index 00000000..15492e04 --- /dev/null +++ b/node_modules/doiuse/data/features/pointer-events.js @@ -0,0 +1,3 @@ +export default { + 'pointer-events': true, +}; diff --git a/node_modules/doiuse/data/features/pointer.js b/node_modules/doiuse/data/features/pointer.js new file mode 100644 index 00000000..fe8ccc57 --- /dev/null +++ b/node_modules/doiuse/data/features/pointer.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..3886efa3 --- /dev/null +++ b/node_modules/doiuse/data/features/prefers-color-scheme.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..80246beb --- /dev/null +++ b/node_modules/doiuse/data/features/prefers-reduced-motion.js @@ -0,0 +1,13 @@ +/** + * 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 new file mode 100644 index 00000000..4fd69c35 --- /dev/null +++ b/node_modules/doiuse/data/features/rem.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..188909b0 --- /dev/null +++ b/node_modules/doiuse/data/features/run-in.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..667e7b52 --- /dev/null +++ b/node_modules/doiuse/data/features/style-scoped.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..8b2039a6 --- /dev/null +++ b/node_modules/doiuse/data/features/svg-css.js @@ -0,0 +1,19 @@ +/** + * 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 new file mode 100644 index 00000000..5b97b3a5 --- /dev/null +++ b/node_modules/doiuse/data/features/text-decoration.js @@ -0,0 +1,9 @@ +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 new file mode 100644 index 00000000..8bd63742 --- /dev/null +++ b/node_modules/doiuse/data/features/text-emphasis.js @@ -0,0 +1,15 @@ +/** + * 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 new file mode 100644 index 00000000..faf236ea --- /dev/null +++ b/node_modules/doiuse/data/features/text-overflow.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..828e27fb --- /dev/null +++ b/node_modules/doiuse/data/features/text-size-adjust.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..82e489b1 --- /dev/null +++ b/node_modules/doiuse/data/features/text-stroke.js @@ -0,0 +1,15 @@ +/** + * 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 new file mode 100644 index 00000000..32f0dc6c --- /dev/null +++ b/node_modules/doiuse/data/features/transforms2d.js @@ -0,0 +1,4 @@ +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 new file mode 100644 index 00000000..8f90cf6b --- /dev/null +++ b/node_modules/doiuse/data/features/transforms3d.js @@ -0,0 +1,7 @@ +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 new file mode 100644 index 00000000..19f7687e --- /dev/null +++ b/node_modules/doiuse/data/features/ttf.js @@ -0,0 +1,20 @@ +/** + * 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 new file mode 100644 index 00000000..880da5df --- /dev/null +++ b/node_modules/doiuse/data/features/user-select-none.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..461bde8c --- /dev/null +++ b/node_modules/doiuse/data/features/variable-fonts.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..330df5df --- /dev/null +++ b/node_modules/doiuse/data/features/viewport-unit-variants.js @@ -0,0 +1,43 @@ +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 new file mode 100644 index 00000000..fe8b79a8 --- /dev/null +++ b/node_modules/doiuse/data/features/viewport-units.js @@ -0,0 +1,8 @@ +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 new file mode 100644 index 00000000..a695919a --- /dev/null +++ b/node_modules/doiuse/data/features/webkit-user-drag.js @@ -0,0 +1,12 @@ +/** + * 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 new file mode 100644 index 00000000..042ef87b --- /dev/null +++ b/node_modules/doiuse/data/features/will-change.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 00000000..731e6be0 --- /dev/null +++ b/node_modules/doiuse/data/features/word-break.js @@ -0,0 +1,3 @@ +export default { + 'word-break': true, +}; diff --git a/node_modules/doiuse/data/features/wordwrap.js b/node_modules/doiuse/data/features/wordwrap.js new file mode 100644 index 00000000..b90e17f1 --- /dev/null +++ b/node_modules/doiuse/data/features/wordwrap.js @@ -0,0 +1,4 @@ +export default { + 'overflow-wrap': true, + 'word-wrap': true, +}; |
