@master/css 2.0.0-alpha.50 → 2.0.0-alpha.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{config → esm/config}/breakpoints.d.ts +0 -0
- package/esm/config/breakpoints.js +12 -0
- package/{config → esm/config}/colors.d.ts +0 -0
- package/esm/config/colors.js +264 -0
- package/{config → esm/config}/index.d.ts +0 -0
- package/esm/config/index.js +19 -0
- package/{config → esm/config}/root-size.d.ts +0 -0
- package/esm/config/root-size.js +1 -0
- package/{config → esm/config}/rules.d.ts +0 -0
- package/esm/config/rules.js +388 -0
- package/{config → esm/config}/selectors.d.ts +0 -0
- package/esm/config/selectors.js +18 -0
- package/{config → esm/config}/semantics.d.ts +0 -0
- package/esm/config/semantics.js +81 -0
- package/{config → esm/config}/themes.d.ts +0 -0
- package/esm/config/themes.js +1 -0
- package/{config → esm/config}/values.d.ts +0 -0
- package/esm/config/values.js +83 -0
- package/{configure.d.ts → esm/configure.d.ts} +0 -0
- package/esm/configure.js +10 -0
- package/{constants → esm/constants}/start-symbol.d.ts +0 -0
- package/esm/constants/start-symbol.js +5 -0
- package/{core.d.ts → esm/core.d.ts} +0 -0
- package/esm/core.js +865 -0
- package/{fill-color-scale.d.ts → esm/fill-color-scale.d.ts} +0 -0
- package/esm/fill-color-scale.js +59 -0
- package/{index.d.ts → esm/index.d.ts} +0 -0
- package/esm/index.js +9 -0
- package/{init.d.ts → esm/init.d.ts} +0 -0
- package/esm/init.js +12 -0
- package/{interfaces → esm/interfaces}/config.d.ts +0 -0
- package/{config.test.d.ts → esm/interfaces/config.js} +0 -0
- package/{interfaces → esm/interfaces}/declaration.d.ts +0 -0
- package/{configure.test.d.ts → esm/interfaces/declaration.js} +0 -0
- package/{interfaces → esm/interfaces}/media-feature-rule.d.ts +0 -0
- package/{grouping-selectors.test.d.ts → esm/interfaces/media-feature-rule.js} +0 -0
- package/{interfaces → esm/interfaces}/media.d.ts +0 -0
- package/{render.test.d.ts → esm/interfaces/media.js} +0 -0
- package/esm/polyfills/css-escape.d.ts +2 -0
- package/esm/polyfills/css-escape.js +90 -0
- package/{render-from-html.d.ts → esm/render-from-html.d.ts} +0 -0
- package/esm/render-from-html.js +18 -0
- package/{render-into-html.d.ts → esm/render-into-html.d.ts} +0 -0
- package/esm/render-into-html.js +9 -0
- package/{render.d.ts → esm/render.d.ts} +0 -0
- package/esm/render.js +13 -0
- package/{rule.d.ts → esm/rule.d.ts} +2 -1
- package/esm/rule.js +563 -0
- package/{rules → esm/rules}/accent-color.d.ts +0 -0
- package/esm/rules/accent-color.js +7 -0
- package/{rules → esm/rules}/align-content.d.ts +0 -0
- package/esm/rules/align-content.js +6 -0
- package/{rules → esm/rules}/align-items.d.ts +0 -0
- package/esm/rules/align-items.js +6 -0
- package/{rules → esm/rules}/align-self.d.ts +0 -0
- package/esm/rules/align-self.js +6 -0
- package/{rules → esm/rules}/animation-delay.d.ts +0 -0
- package/esm/rules/animation-delay.js +7 -0
- package/{rules → esm/rules}/animation-direction.d.ts +0 -0
- package/esm/rules/animation-direction.js +6 -0
- package/{rules → esm/rules}/animation-duration.d.ts +0 -0
- package/esm/rules/animation-duration.js +7 -0
- package/{rules → esm/rules}/animation-fill-mode.d.ts +0 -0
- package/esm/rules/animation-fill-mode.js +6 -0
- package/{rules → esm/rules}/animation-iteration-count.d.ts +0 -0
- package/esm/rules/animation-iteration-count.js +7 -0
- package/{rules → esm/rules}/animation-name.d.ts +0 -0
- package/esm/rules/animation-name.js +6 -0
- package/{rules → esm/rules}/animation-play-state.d.ts +0 -0
- package/esm/rules/animation-play-state.js +6 -0
- package/{rules → esm/rules}/animation-timing-function.d.ts +0 -0
- package/esm/rules/animation-timing-function.js +6 -0
- package/{rules → esm/rules}/animation.d.ts +0 -0
- package/esm/rules/animation.js +8 -0
- package/{rules → esm/rules}/appearance.d.ts +0 -0
- package/esm/rules/appearance.js +5 -0
- package/{rules → esm/rules}/aspect-radio.d.ts +0 -0
- package/esm/rules/aspect-radio.js +7 -0
- package/{rules → esm/rules}/backdrop-filter.d.ts +2 -1
- package/esm/rules/backdrop-filter.js +26 -0
- package/{rules → esm/rules}/background-attachment.d.ts +0 -0
- package/esm/rules/background-attachment.js +6 -0
- package/{rules → esm/rules}/background-blend-mode.d.ts +0 -0
- package/esm/rules/background-blend-mode.js +5 -0
- package/{rules → esm/rules}/background-clip.d.ts +0 -0
- package/esm/rules/background-clip.js +12 -0
- package/{rules → esm/rules}/background-color.d.ts +0 -0
- package/esm/rules/background-color.js +8 -0
- package/{rules → esm/rules}/background-image.d.ts +0 -0
- package/esm/rules/background-image.js +7 -0
- package/{rules → esm/rules}/background-origin.d.ts +0 -0
- package/esm/rules/background-origin.js +6 -0
- package/{rules → esm/rules}/background-position.d.ts +0 -0
- package/esm/rules/background-position.js +7 -0
- package/{rules → esm/rules}/background-repeat.d.ts +0 -0
- package/esm/rules/background-repeat.js +6 -0
- package/{rules → esm/rules}/background-size.d.ts +0 -0
- package/esm/rules/background-size.js +6 -0
- package/{rules → esm/rules}/background.d.ts +0 -0
- package/esm/rules/background.js +8 -0
- package/{rules → esm/rules}/border-collapse.d.ts +0 -0
- package/esm/rules/border-collapse.js +6 -0
- package/{rules → esm/rules}/border-color.d.ts +0 -0
- package/esm/rules/border-color.js +14 -0
- package/{rules → esm/rules}/border-image-outset.d.ts +0 -0
- package/esm/rules/border-image-outset.js +5 -0
- package/{rules → esm/rules}/border-image-repeat.d.ts +0 -0
- package/esm/rules/border-image-repeat.js +6 -0
- package/{rules → esm/rules}/border-image-slice.d.ts +0 -0
- package/esm/rules/border-image-slice.js +6 -0
- package/{rules → esm/rules}/border-image-source.d.ts +0 -0
- package/esm/rules/border-image-source.js +6 -0
- package/{rules → esm/rules}/border-image-width.d.ts +0 -0
- package/esm/rules/border-image-width.js +6 -0
- package/{rules → esm/rules}/border-image.d.ts +0 -0
- package/esm/rules/border-image.js +6 -0
- package/{rules → esm/rules}/border-radius.d.ts +0 -0
- package/esm/rules/border-radius.js +73 -0
- package/{rules → esm/rules}/border-spacing.d.ts +0 -0
- package/esm/rules/border-spacing.js +5 -0
- package/{rules → esm/rules}/border-style.d.ts +0 -0
- package/esm/rules/border-style.js +12 -0
- package/{rules → esm/rules}/border-width.d.ts +0 -0
- package/esm/rules/border-width.js +12 -0
- package/{rules → esm/rules}/border.d.ts +0 -0
- package/esm/rules/border.js +13 -0
- package/{rules → esm/rules}/box-decoration-break.d.ts +0 -0
- package/esm/rules/box-decoration-break.js +13 -0
- package/{rules → esm/rules}/box-shadow.d.ts +0 -0
- package/esm/rules/box-shadow.js +7 -0
- package/{rules → esm/rules}/box-sizing.d.ts +0 -0
- package/esm/rules/box-sizing.js +6 -0
- package/{rules → esm/rules}/break-after.d.ts +0 -0
- package/esm/rules/break-after.js +5 -0
- package/{rules → esm/rules}/break-before.d.ts +0 -0
- package/esm/rules/break-before.js +5 -0
- package/{rules → esm/rules}/break-inside.d.ts +0 -0
- package/esm/rules/break-inside.js +5 -0
- package/{rules → esm/rules}/caret-color.d.ts +0 -0
- package/esm/rules/caret-color.js +7 -0
- package/{rules → esm/rules}/clear.d.ts +0 -0
- package/esm/rules/clear.js +5 -0
- package/{rules → esm/rules}/clip-path.d.ts +0 -0
- package/esm/rules/clip-path.js +6 -0
- package/{rules → esm/rules}/color.d.ts +0 -0
- package/esm/rules/color.js +8 -0
- package/{rules → esm/rules}/column-span.d.ts +0 -0
- package/esm/rules/column-span.js +6 -0
- package/{rules → esm/rules}/columns.d.ts +0 -0
- package/esm/rules/columns.js +8 -0
- package/{rules → esm/rules}/contain.d.ts +0 -0
- package/esm/rules/contain.js +5 -0
- package/{rules → esm/rules}/content.d.ts +0 -0
- package/esm/rules/content.js +5 -0
- package/{rules → esm/rules}/counter-increment.d.ts +0 -0
- package/esm/rules/counter-increment.js +6 -0
- package/{rules → esm/rules}/cursor.d.ts +0 -0
- package/esm/rules/cursor.js +5 -0
- package/{rules → esm/rules}/cx.d.ts +0 -0
- package/esm/rules/cx.js +6 -0
- package/{rules → esm/rules}/cy.d.ts +0 -0
- package/esm/rules/cy.js +6 -0
- package/{rules → esm/rules}/direction.d.ts +0 -0
- package/esm/rules/direction.js +5 -0
- package/{rules → esm/rules}/display.d.ts +0 -0
- package/esm/rules/display.js +6 -0
- package/{rules → esm/rules}/fill.d.ts +0 -0
- package/esm/rules/fill.js +7 -0
- package/{rules → esm/rules}/filter.d.ts +2 -1
- package/esm/rules/filter.js +19 -0
- package/{rules → esm/rules}/flex-basis.d.ts +0 -0
- package/esm/rules/flex-basis.js +5 -0
- package/{rules → esm/rules}/flex-direction.d.ts +0 -0
- package/esm/rules/flex-direction.js +6 -0
- package/{rules → esm/rules}/flex-grow.d.ts +0 -0
- package/esm/rules/flex-grow.js +6 -0
- package/{rules → esm/rules}/flex-shrink.d.ts +0 -0
- package/esm/rules/flex-shrink.js +6 -0
- package/{rules → esm/rules}/flex-wrap.d.ts +0 -0
- package/esm/rules/flex-wrap.js +6 -0
- package/{rules → esm/rules}/flex.d.ts +0 -0
- package/esm/rules/flex.js +7 -0
- package/{rules → esm/rules}/float.d.ts +0 -0
- package/esm/rules/float.js +5 -0
- package/{rules → esm/rules}/font-family.d.ts +0 -0
- package/esm/rules/font-family.js +6 -0
- package/{rules → esm/rules}/font-size.d.ts +0 -0
- package/esm/rules/font-size.js +6 -0
- package/{rules → esm/rules}/font-smoothing.d.ts +0 -0
- package/esm/rules/font-smoothing.js +34 -0
- package/{rules → esm/rules}/font-style.d.ts +0 -0
- package/esm/rules/font-style.js +7 -0
- package/{rules → esm/rules}/font-variant-numeric.d.ts +0 -0
- package/esm/rules/font-variant-numeric.js +6 -0
- package/{rules → esm/rules}/font-weight.d.ts +0 -0
- package/esm/rules/font-weight.js +7 -0
- package/{rules → esm/rules}/font.d.ts +0 -0
- package/esm/rules/font.js +8 -0
- package/{rules → esm/rules}/gap.d.ts +0 -0
- package/esm/rules/gap.js +16 -0
- package/{rules → esm/rules}/grid-area.d.ts +0 -0
- package/esm/rules/grid-area.js +7 -0
- package/{rules → esm/rules}/grid-auto-columns.d.ts +0 -0
- package/esm/rules/grid-auto-columns.js +6 -0
- package/{rules → esm/rules}/grid-auto-flow.d.ts +0 -0
- package/esm/rules/grid-auto-flow.js +6 -0
- package/{rules → esm/rules}/grid-auto-rows.d.ts +0 -0
- package/esm/rules/grid-auto-rows.js +5 -0
- package/{rules → esm/rules}/grid-column-end.d.ts +0 -0
- package/esm/rules/grid-column-end.js +7 -0
- package/{rules → esm/rules}/grid-column-start.d.ts +0 -0
- package/esm/rules/grid-column-start.js +7 -0
- package/{rules → esm/rules}/grid-column.d.ts +0 -0
- package/esm/rules/grid-column.js +13 -0
- package/{rules → esm/rules}/grid-columns.d.ts +0 -0
- package/esm/rules/grid-columns.js +20 -0
- package/{rules → esm/rules}/grid-row-end.d.ts +0 -0
- package/esm/rules/grid-row-end.js +6 -0
- package/{rules → esm/rules}/grid-row-start.d.ts +0 -0
- package/esm/rules/grid-row-start.js +6 -0
- package/{rules → esm/rules}/grid-row.d.ts +0 -0
- package/esm/rules/grid-row.js +13 -0
- package/{rules → esm/rules}/grid-rows.d.ts +0 -0
- package/esm/rules/grid-rows.js +20 -0
- package/{rules → esm/rules}/grid-template-areas.d.ts +0 -0
- package/esm/rules/grid-template-areas.js +5 -0
- package/{rules → esm/rules}/grid-template-columns.d.ts +0 -0
- package/esm/rules/grid-template-columns.js +6 -0
- package/{rules → esm/rules}/grid-template-rows.d.ts +0 -0
- package/esm/rules/grid-template-rows.js +5 -0
- package/{rules → esm/rules}/grid-template.d.ts +0 -0
- package/esm/rules/grid-template.js +6 -0
- package/{rules → esm/rules}/grid.d.ts +0 -0
- package/esm/rules/grid.js +6 -0
- package/{rules → esm/rules}/group.d.ts +0 -0
- package/esm/rules/group.js +104 -0
- package/{rules → esm/rules}/height.d.ts +0 -0
- package/esm/rules/height.js +6 -0
- package/{rules → esm/rules}/inset.d.ts +0 -0
- package/esm/rules/inset.js +11 -0
- package/{rules → esm/rules}/isolation.d.ts +0 -0
- package/esm/rules/isolation.js +5 -0
- package/{rules → esm/rules}/justify-content.d.ts +0 -0
- package/esm/rules/justify-content.js +6 -0
- package/{rules → esm/rules}/justify-items.d.ts +0 -0
- package/esm/rules/justify-items.js +6 -0
- package/{rules → esm/rules}/justify-self.d.ts +0 -0
- package/esm/rules/justify-self.js +6 -0
- package/{rules → esm/rules}/letter-spacing.d.ts +0 -0
- package/esm/rules/letter-spacing.js +7 -0
- package/{rules → esm/rules}/line-clamp.d.ts +0 -0
- package/esm/rules/line-clamp.js +11 -0
- package/{rules → esm/rules}/line-height.d.ts +0 -0
- package/esm/rules/line-height.js +7 -0
- package/{rules → esm/rules}/lines.d.ts +0 -0
- package/esm/rules/lines.js +16 -0
- package/{rules → esm/rules}/list-style-image.d.ts +0 -0
- package/esm/rules/list-style-image.js +6 -0
- package/{rules → esm/rules}/list-style-position.d.ts +0 -0
- package/esm/rules/list-style-position.js +6 -0
- package/{rules → esm/rules}/list-style-type.d.ts +0 -0
- package/esm/rules/list-style-type.js +6 -0
- package/{rules → esm/rules}/list-style.d.ts +0 -0
- package/esm/rules/list-style.js +6 -0
- package/{rules → esm/rules}/margin.d.ts +0 -0
- package/esm/rules/margin.js +13 -0
- package/{rules → esm/rules}/mask-image.d.ts +0 -0
- package/esm/rules/mask-image.js +11 -0
- package/{rules → esm/rules}/max-height.d.ts +0 -0
- package/esm/rules/max-height.js +6 -0
- package/{rules → esm/rules}/max-width.d.ts +0 -0
- package/esm/rules/max-width.js +6 -0
- package/{rules → esm/rules}/min-height.d.ts +0 -0
- package/esm/rules/min-height.js +6 -0
- package/{rules → esm/rules}/min-width.d.ts +0 -0
- package/esm/rules/min-width.js +6 -0
- package/{rules → esm/rules}/mix-blend-mode.d.ts +0 -0
- package/esm/rules/mix-blend-mode.js +6 -0
- package/{rules → esm/rules}/object-fit.d.ts +0 -0
- package/esm/rules/object-fit.js +6 -0
- package/{rules → esm/rules}/object-position.d.ts +0 -0
- package/esm/rules/object-position.js +6 -0
- package/{rules → esm/rules}/opacity.d.ts +0 -0
- package/esm/rules/opacity.js +6 -0
- package/{rules → esm/rules}/order.d.ts +0 -0
- package/esm/rules/order.js +8 -0
- package/{rules → esm/rules}/outline-color.d.ts +0 -0
- package/esm/rules/outline-color.js +7 -0
- package/{rules → esm/rules}/outline-offset.d.ts +0 -0
- package/esm/rules/outline-offset.js +5 -0
- package/{rules → esm/rules}/outline-style.d.ts +0 -0
- package/esm/rules/outline-style.js +6 -0
- package/{rules → esm/rules}/outline-width.d.ts +0 -0
- package/esm/rules/outline-width.js +6 -0
- package/{rules → esm/rules}/outline.d.ts +0 -0
- package/esm/rules/outline.js +7 -0
- package/{rules → esm/rules}/overflow.d.ts +0 -0
- package/esm/rules/overflow.js +26 -0
- package/{rules → esm/rules}/overscroll-behavior.d.ts +0 -0
- package/esm/rules/overscroll-behavior.js +15 -0
- package/{rules → esm/rules}/padding.d.ts +0 -0
- package/esm/rules/padding.js +13 -0
- package/{rules → esm/rules}/place-content.d.ts +0 -0
- package/esm/rules/place-content.js +6 -0
- package/{rules → esm/rules}/place-items.d.ts +0 -0
- package/esm/rules/place-items.js +6 -0
- package/{rules → esm/rules}/place-self.d.ts +0 -0
- package/esm/rules/place-self.js +6 -0
- package/{rules → esm/rules}/placement.d.ts +0 -0
- package/esm/rules/placement.js +29 -0
- package/{rules → esm/rules}/pointer-events.d.ts +0 -0
- package/esm/rules/pointer-events.js +5 -0
- package/{rules → esm/rules}/position.d.ts +0 -0
- package/esm/rules/position.js +5 -0
- package/{rules → esm/rules}/quotes.d.ts +0 -0
- package/esm/rules/quotes.js +5 -0
- package/{rules → esm/rules}/resize.d.ts +0 -0
- package/esm/rules/resize.js +5 -0
- package/{rules → esm/rules}/rx.d.ts +0 -0
- package/esm/rules/rx.js +6 -0
- package/{rules → esm/rules}/ry.d.ts +0 -0
- package/esm/rules/ry.js +6 -0
- package/{rules → esm/rules}/scroll-behavior.d.ts +0 -0
- package/esm/rules/scroll-behavior.js +5 -0
- package/{rules → esm/rules}/scroll-margin.d.ts +0 -0
- package/esm/rules/scroll-margin.js +45 -0
- package/{rules → esm/rules}/scroll-padding.d.ts +0 -0
- package/esm/rules/scroll-padding.js +45 -0
- package/{rules → esm/rules}/scroll-snap-align.d.ts +0 -0
- package/esm/rules/scroll-snap-align.js +6 -0
- package/{rules → esm/rules}/scroll-snap-stop.d.ts +0 -0
- package/esm/rules/scroll-snap-stop.js +6 -0
- package/{rules → esm/rules}/scroll-snap-type.d.ts +0 -0
- package/esm/rules/scroll-snap-type.js +6 -0
- package/{rules → esm/rules}/shape-image-threshold.d.ts +0 -0
- package/esm/rules/shape-image-threshold.js +6 -0
- package/{rules → esm/rules}/shape-margin.d.ts +0 -0
- package/esm/rules/shape-margin.js +6 -0
- package/{rules → esm/rules}/shape-outside.d.ts +0 -0
- package/esm/rules/shape-outside.js +6 -0
- package/{rules → esm/rules}/spacing.d.ts +0 -0
- package/esm/rules/spacing.js +48 -0
- package/{rules → esm/rules}/stroke-dasharray.d.ts +0 -0
- package/esm/rules/stroke-dasharray.js +5 -0
- package/{rules → esm/rules}/stroke-dashoffset.d.ts +0 -0
- package/esm/rules/stroke-dashoffset.js +5 -0
- package/{rules → esm/rules}/stroke-width.d.ts +0 -0
- package/esm/rules/stroke-width.js +6 -0
- package/{rules → esm/rules}/stroke.d.ts +0 -0
- package/esm/rules/stroke.js +6 -0
- package/{rules → esm/rules}/table-layout.d.ts +0 -0
- package/esm/rules/table-layout.js +5 -0
- package/{rules → esm/rules}/text-align.d.ts +0 -0
- package/esm/rules/text-align.js +6 -0
- package/{rules → esm/rules}/text-decoration-color.d.ts +0 -0
- package/esm/rules/text-decoration-color.js +7 -0
- package/{rules → esm/rules}/text-decoration-line.d.ts +0 -0
- package/esm/rules/text-decoration-line.js +6 -0
- package/{rules → esm/rules}/text-decoration-style.d.ts +0 -0
- package/esm/rules/text-decoration-style.js +6 -0
- package/{rules → esm/rules}/text-decoration-thickness.d.ts +0 -0
- package/esm/rules/text-decoration-thickness.js +7 -0
- package/{rules → esm/rules}/text-decoration.d.ts +0 -0
- package/esm/rules/text-decoration.js +8 -0
- package/{rules → esm/rules}/text-fill-color.d.ts +0 -0
- package/esm/rules/text-fill-color.js +12 -0
- package/{rules → esm/rules}/text-indent.d.ts +0 -0
- package/esm/rules/text-indent.js +5 -0
- package/{rules → esm/rules}/text-orientation.d.ts +0 -0
- package/esm/rules/text-orientation.js +6 -0
- package/{rules → esm/rules}/text-overflow.d.ts +0 -0
- package/esm/rules/text-overflow.js +6 -0
- package/{rules → esm/rules}/text-rendering.d.ts +0 -0
- package/esm/rules/text-rendering.js +6 -0
- package/{rules → esm/rules}/text-shadow.d.ts +0 -0
- package/esm/rules/text-shadow.js +6 -0
- package/{rules → esm/rules}/text-size.d.ts +0 -0
- package/esm/rules/text-size.js +17 -0
- package/{rules → esm/rules}/text-stroke-color.d.ts +0 -0
- package/esm/rules/text-stroke-color.js +12 -0
- package/{rules → esm/rules}/text-stroke-width.d.ts +0 -0
- package/esm/rules/text-stroke-width.js +10 -0
- package/{rules → esm/rules}/text-stroke.d.ts +0 -0
- package/esm/rules/text-stroke.js +10 -0
- package/{rules → esm/rules}/text-transform.d.ts +0 -0
- package/esm/rules/text-transform.js +6 -0
- package/{rules → esm/rules}/text-underline-offset.d.ts +0 -0
- package/esm/rules/text-underline-offset.js +5 -0
- package/{rules → esm/rules}/touch-action.d.ts +0 -0
- package/esm/rules/touch-action.js +5 -0
- package/{rules → esm/rules}/transform-box.d.ts +0 -0
- package/esm/rules/transform-box.js +6 -0
- package/{rules → esm/rules}/transform-origin.d.ts +0 -0
- package/esm/rules/transform-origin.js +7 -0
- package/{rules → esm/rules}/transform-style.d.ts +0 -0
- package/esm/rules/transform-style.js +6 -0
- package/{rules → esm/rules}/transform.d.ts +2 -1
- package/esm/rules/transform.js +44 -0
- package/{rules → esm/rules}/transition-delay.d.ts +0 -0
- package/esm/rules/transition-delay.js +7 -0
- package/{rules → esm/rules}/transition-duration.d.ts +0 -0
- package/esm/rules/transition-duration.js +7 -0
- package/{rules → esm/rules}/transition-property.d.ts +0 -0
- package/esm/rules/transition-property.js +6 -0
- package/{rules → esm/rules}/transition-timing-function.d.ts +0 -0
- package/esm/rules/transition-timing-function.js +6 -0
- package/{rules → esm/rules}/transition.d.ts +0 -0
- package/esm/rules/transition.js +7 -0
- package/{rules → esm/rules}/user-drag.d.ts +0 -0
- package/esm/rules/user-drag.js +12 -0
- package/{rules → esm/rules}/user-select.d.ts +0 -0
- package/esm/rules/user-select.js +12 -0
- package/{rules → esm/rules}/variable.d.ts +0 -0
- package/esm/rules/variable.js +11 -0
- package/{rules → esm/rules}/vertical-align.d.ts +0 -0
- package/esm/rules/vertical-align.js +6 -0
- package/{rules → esm/rules}/visibility.d.ts +0 -0
- package/esm/rules/visibility.js +5 -0
- package/{rules → esm/rules}/white-space.d.ts +0 -0
- package/esm/rules/white-space.js +6 -0
- package/{rules → esm/rules}/width.d.ts +0 -0
- package/esm/rules/width.js +6 -0
- package/{rules → esm/rules}/will-change.d.ts +0 -0
- package/esm/rules/will-change.js +5 -0
- package/{rules → esm/rules}/word-break.d.ts +0 -0
- package/esm/rules/word-break.js +6 -0
- package/{rules → esm/rules}/word-spacing.d.ts +0 -0
- package/esm/rules/word-spacing.js +6 -0
- package/{rules → esm/rules}/writing-mode.d.ts +0 -0
- package/esm/rules/writing-mode.js +6 -0
- package/{rules → esm/rules}/x.d.ts +0 -0
- package/esm/rules/x.js +6 -0
- package/{rules → esm/rules}/y.d.ts +0 -0
- package/esm/rules/y.js +6 -0
- package/{rules → esm/rules}/z-index.d.ts +0 -0
- package/esm/rules/z-index.js +7 -0
- package/{utils → esm/utils}/concat-arrays.d.ts +0 -0
- package/esm/utils/concat-arrays.js +7 -0
- package/{utils → esm/utils}/get-border-props.d.ts +0 -0
- package/esm/utils/get-border-props.js +43 -0
- package/{utils → esm/utils}/get-css-property-text.d.ts +0 -0
- package/esm/utils/get-css-property-text.js +7 -0
- package/{utils → esm/utils}/get-type.d.ts +0 -0
- package/esm/utils/get-type.js +9 -0
- package/{utils → esm/utils}/hex-to-rgb.d.ts +0 -0
- package/esm/utils/hex-to-rgb.js +7 -0
- package/{utils → esm/utils}/is-plain-object.d.ts +0 -0
- package/esm/utils/is-plain-object.js +12 -0
- package/{utils → esm/utils}/is-symbol.d.ts +0 -0
- package/esm/utils/is-symbol.js +10 -0
- package/{utils → esm/utils}/merge.d.ts +0 -0
- package/esm/utils/merge.js +58 -0
- package/{utils → esm/utils}/normalize-css-calc-text.d.ts +0 -0
- package/esm/utils/normalize-css-calc-text.js +55 -0
- package/esm/utils/parse-value-unit.d.ts +2 -0
- package/esm/utils/parse-value-unit.js +47 -0
- package/{utils → esm/utils}/parse-value.d.ts +0 -0
- package/esm/utils/parse-value.js +84 -0
- package/{utils → esm/utils}/rgb-to-hex.d.ts +0 -0
- package/esm/utils/rgb-to-hex.js +3 -0
- package/{utils → esm/utils}/test-css.d.ts +0 -0
- package/esm/utils/test-css.js +15 -0
- package/index.js +1 -1
- package/package.json +5 -5
- package/index.esm.js +0 -2
- package/rule.test.d.ts +0 -1
- package/rules/accent.test.d.ts +0 -1
- package/rules/area.test.d.ts +0 -1
- package/rules/background.test.d.ts +0 -1
- package/rules/caret.test.d.ts +0 -1
- package/rules/color.test.d.ts +0 -1
- package/rules/content.test.d.ts +0 -1
- package/rules/font-weight.test.d.ts +0 -1
- package/rules/grid-column.test.d.ts +0 -1
- package/rules/group.test.d.ts +0 -1
- package/rules/max-width.test.d.ts +0 -1
- package/rules/outline.test.d.ts +0 -1
- package/rules/overflow.test.d.ts +0 -1
- package/rules/scroll-snap-type.test.d.ts +0 -1
- package/rules/semantics.test.d.ts +0 -1
- package/rules/text-fill-color.test.d.ts +0 -1
- package/rules/text.test.d.ts +0 -1
- package/rules/transform.test.d.ts +0 -1
- package/rules/transition.test.d.ts +0 -1
- package/rules/writing-mode.test.d.ts +0 -1
- package/selectors.test.d.ts +0 -1
- package/utils/parse-value-unit.d.ts +0 -1
package/esm/rule.js
ADDED
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
import { getCssPropertyText } from './utils/get-css-property-text';
|
|
2
|
+
import { parseValue } from './utils/parse-value';
|
|
3
|
+
import { START_SYMBOL } from './constants/start-symbol';
|
|
4
|
+
export const PRIORITY_SELECTORS = [':disabled', ':active', ':focus', ':hover'];
|
|
5
|
+
const MATCHES = 'matches';
|
|
6
|
+
const SEMANTICS = 'semantics';
|
|
7
|
+
const SYMBOL = 'symbol';
|
|
8
|
+
const WIDTH = 'width';
|
|
9
|
+
const MAX_WIDTH = 'max-' + WIDTH;
|
|
10
|
+
const MIN_WIDTH = 'min-' + WIDTH;
|
|
11
|
+
const MOTION = 'motion';
|
|
12
|
+
const REDUCE = 'reduce';
|
|
13
|
+
const REDUCED_MOTION = REDUCE + 'd-' + MOTION;
|
|
14
|
+
const PX = 'px';
|
|
15
|
+
const REM = 'rem';
|
|
16
|
+
const selectorSymbols = ['!', '*', '>', '+', '~', ':', '[', '@', '_'];
|
|
17
|
+
const selectorSplitRegexp = /(\\'(?:.*?)[^\\]\\')(?=[*_>~+,)])|(\[[^=]+='(?:.*?)[^\\]'\])/;
|
|
18
|
+
const transformSelectorUnderline = (selector) => selector.split(selectorSplitRegexp)
|
|
19
|
+
.map((eachToken, i) => i % 3 ? eachToken : eachToken.replace(/\_/g, ' '))
|
|
20
|
+
.join('');
|
|
21
|
+
export class MasterCSSRule {
|
|
22
|
+
className;
|
|
23
|
+
matching;
|
|
24
|
+
css;
|
|
25
|
+
prefix;
|
|
26
|
+
symbol;
|
|
27
|
+
token;
|
|
28
|
+
prefixSelectors;
|
|
29
|
+
suffixSelectors;
|
|
30
|
+
important;
|
|
31
|
+
media;
|
|
32
|
+
at = {};
|
|
33
|
+
direction;
|
|
34
|
+
themeName;
|
|
35
|
+
unitToken;
|
|
36
|
+
hasWhere;
|
|
37
|
+
prioritySelectorIndex = -1;
|
|
38
|
+
natives = [];
|
|
39
|
+
static id;
|
|
40
|
+
static propName;
|
|
41
|
+
static matches;
|
|
42
|
+
static colorStarts;
|
|
43
|
+
static symbol;
|
|
44
|
+
static unit = REM;
|
|
45
|
+
static colorful;
|
|
46
|
+
static match(name, colorNames) {
|
|
47
|
+
/**
|
|
48
|
+
* STEP 1. matches
|
|
49
|
+
*/
|
|
50
|
+
if (this.matches && this.matches.test(name)) {
|
|
51
|
+
return { origin: MATCHES };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* STEP 2. color starts
|
|
55
|
+
*/
|
|
56
|
+
// TODO: 動態 new Regex 效能問題待優化
|
|
57
|
+
if (this.colorStarts
|
|
58
|
+
&& (name.match('^' + this.colorStarts + '(?:(?:#|(rgb|hsl)\\(.*\\))((?!\\|).)*$|(?:transparent|current))')
|
|
59
|
+
|| colorNames.length
|
|
60
|
+
&& name.match('^' + this.colorStarts + '(' + colorNames.join('|') + ')')
|
|
61
|
+
&& name.indexOf('|') === -1)) {
|
|
62
|
+
return { origin: MATCHES };
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* STEP 3. symbol
|
|
66
|
+
*/
|
|
67
|
+
if (this.symbol && name.startsWith(this.symbol)) {
|
|
68
|
+
return { origin: SYMBOL };
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* STEP 4. key full name
|
|
72
|
+
*/
|
|
73
|
+
if (this.propName && name.startsWith(this.propName + ':')) {
|
|
74
|
+
return { origin: MATCHES };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
;
|
|
78
|
+
constructor(className, matching, css) {
|
|
79
|
+
this.className = className;
|
|
80
|
+
this.matching = matching;
|
|
81
|
+
this.css = css;
|
|
82
|
+
const TargetRule = this.constructor;
|
|
83
|
+
let { id, unit, propName, colorful } = TargetRule;
|
|
84
|
+
const { breakpoints, mediaQueries, semantics, rootSize } = css.config;
|
|
85
|
+
const values = css.config.values[id];
|
|
86
|
+
const relationThemesMap = css.relationThemesMap[className];
|
|
87
|
+
const { themeNames, colorsThemesMap, selectors } = css;
|
|
88
|
+
let token = className;
|
|
89
|
+
// 1. value / selectorToken
|
|
90
|
+
let value, prefixToken, suffixToken, valueTokens;
|
|
91
|
+
if (matching.origin === SEMANTICS) {
|
|
92
|
+
suffixToken = token.slice(matching.value.length);
|
|
93
|
+
value = semantics[matching.value];
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
let valueToken;
|
|
97
|
+
if (matching.origin === MATCHES) {
|
|
98
|
+
if (id === 'Group') {
|
|
99
|
+
let i = 0;
|
|
100
|
+
for (; i < token.length; i++) {
|
|
101
|
+
if (token[i] === '{' && token[i - 1] !== '\\') {
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
prefixToken = token.slice(0, i);
|
|
106
|
+
valueToken = token.slice(i);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
const indexOfColon = token.indexOf(':');
|
|
110
|
+
this.prefix = token.slice(0, indexOfColon + 1);
|
|
111
|
+
if (this.prefix.includes('(')) {
|
|
112
|
+
this.prefix = undefined;
|
|
113
|
+
valueToken = token;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
valueToken = token.slice(indexOfColon + 1);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else if (matching.origin === SYMBOL) {
|
|
121
|
+
this.symbol = token[0];
|
|
122
|
+
valueToken = token.slice(1);
|
|
123
|
+
}
|
|
124
|
+
valueTokens = [];
|
|
125
|
+
let currentValueToken = '';
|
|
126
|
+
let i = 0;
|
|
127
|
+
(function analyze(end, depth, func = '') {
|
|
128
|
+
let varIndex;
|
|
129
|
+
let isString = false;
|
|
130
|
+
if (end) {
|
|
131
|
+
if (end === ')' && currentValueToken.slice(-1) === '$') {
|
|
132
|
+
varIndex = currentValueToken.length - 1;
|
|
133
|
+
}
|
|
134
|
+
else if (end === '\'') {
|
|
135
|
+
isString = true;
|
|
136
|
+
}
|
|
137
|
+
currentValueToken += valueToken[i++];
|
|
138
|
+
}
|
|
139
|
+
for (; i < valueToken.length; i++) {
|
|
140
|
+
const val = valueToken[i];
|
|
141
|
+
if (val === end) {
|
|
142
|
+
currentValueToken += val;
|
|
143
|
+
if (isString) {
|
|
144
|
+
let count = 0;
|
|
145
|
+
for (let j = currentValueToken.length - 2;; j--) {
|
|
146
|
+
if (currentValueToken[j] !== '\\') {
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
count++;
|
|
150
|
+
}
|
|
151
|
+
if (count % 2) {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (varIndex !== undefined) {
|
|
156
|
+
currentValueToken = currentValueToken.slice(0, varIndex) + currentValueToken.slice(varIndex).replace(/\$\((.*)\)/, 'var(--$1)');
|
|
157
|
+
}
|
|
158
|
+
if (!depth) {
|
|
159
|
+
if (isString) {
|
|
160
|
+
valueTokens.push(currentValueToken);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
valueTokens.push({ value: currentValueToken });
|
|
164
|
+
}
|
|
165
|
+
func = '';
|
|
166
|
+
currentValueToken = '';
|
|
167
|
+
}
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
else if (!isString && val in START_SYMBOL) {
|
|
171
|
+
analyze(START_SYMBOL[val], depth === undefined ? 0 : depth + 1, func);
|
|
172
|
+
}
|
|
173
|
+
else if (val === '|' && end !== '}' && (!isString || func === 'path')) {
|
|
174
|
+
if (!end) {
|
|
175
|
+
valueTokens.push({ value: currentValueToken });
|
|
176
|
+
currentValueToken = '';
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
currentValueToken += ' ';
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
if (!end) {
|
|
184
|
+
if (val === '.') {
|
|
185
|
+
if (isNaN(+valueToken[i + 1])) {
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
else if (valueToken[i - 1] === '-') {
|
|
189
|
+
currentValueToken += '0';
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
else if (val === ',') {
|
|
193
|
+
valueTokens.push({ value: currentValueToken }, ',');
|
|
194
|
+
currentValueToken = '';
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
else if (val === '#'
|
|
198
|
+
&& (currentValueToken || valueTokens.length && valueToken[i - 1] !== '|')
|
|
199
|
+
|| selectorSymbols.includes(val)) {
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
func += val;
|
|
203
|
+
}
|
|
204
|
+
currentValueToken += val;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
})();
|
|
208
|
+
if (currentValueToken) {
|
|
209
|
+
valueTokens.push({ value: currentValueToken });
|
|
210
|
+
}
|
|
211
|
+
suffixToken = valueToken.slice(i);
|
|
212
|
+
}
|
|
213
|
+
// 2. !important
|
|
214
|
+
if (suffixToken[0] === '!') {
|
|
215
|
+
this.important = true;
|
|
216
|
+
suffixToken = suffixToken.slice(1);
|
|
217
|
+
}
|
|
218
|
+
// 3. prefix selector
|
|
219
|
+
const analyzeSelectorToken = (selectorText) => {
|
|
220
|
+
const transformedSelectorText = transformSelectorUnderline(selectorText);
|
|
221
|
+
const selectors = [];
|
|
222
|
+
let currentSelector = '';
|
|
223
|
+
let symbolCount = 0;
|
|
224
|
+
for (let i = 0; i < transformedSelectorText.length; i++) {
|
|
225
|
+
const char = transformedSelectorText[i];
|
|
226
|
+
if (char === '\\') {
|
|
227
|
+
currentSelector += char + transformedSelectorText[++i];
|
|
228
|
+
continue;
|
|
229
|
+
}
|
|
230
|
+
if (!symbolCount && char === ',') {
|
|
231
|
+
selectors.push(currentSelector);
|
|
232
|
+
currentSelector = '';
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
currentSelector += char;
|
|
236
|
+
if (symbolCount && char === ')') {
|
|
237
|
+
symbolCount--;
|
|
238
|
+
}
|
|
239
|
+
else if (char === '(') {
|
|
240
|
+
symbolCount++;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (currentSelector) {
|
|
245
|
+
selectors.push(currentSelector);
|
|
246
|
+
}
|
|
247
|
+
return selectors;
|
|
248
|
+
};
|
|
249
|
+
this.prefixSelectors = prefixToken
|
|
250
|
+
? analyzeSelectorToken(prefixToken)
|
|
251
|
+
: [''];
|
|
252
|
+
// 4. suffix selector
|
|
253
|
+
const suffixTokens = suffixToken.split('@');
|
|
254
|
+
let suffixSelector = suffixTokens[0];
|
|
255
|
+
if (suffixSelector) {
|
|
256
|
+
this.suffixSelectors = [];
|
|
257
|
+
const originalSuffixTokens = analyzeSelectorToken(suffixSelector);
|
|
258
|
+
for (let eachOriginalSuffixToken of originalSuffixTokens) {
|
|
259
|
+
for (const eachSingleSelectorEntry of selectors.single) {
|
|
260
|
+
eachOriginalSuffixToken = eachOriginalSuffixToken.replace(eachSingleSelectorEntry[0], eachSingleSelectorEntry[1]);
|
|
261
|
+
}
|
|
262
|
+
const transform = (selectorText) => {
|
|
263
|
+
for (const eachMultipleSelectorEntry of selectors.multiple) {
|
|
264
|
+
if (eachMultipleSelectorEntry[0].test(selectorText)) {
|
|
265
|
+
for (const eachSelectorText of eachMultipleSelectorEntry[1]) {
|
|
266
|
+
transform(selectorText.replace(eachMultipleSelectorEntry[0], eachSelectorText));
|
|
267
|
+
}
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
this.suffixSelectors.push(selectorText);
|
|
272
|
+
};
|
|
273
|
+
transform(eachOriginalSuffixToken);
|
|
274
|
+
}
|
|
275
|
+
for (const eachSuffixSelector of this.suffixSelectors) {
|
|
276
|
+
if (this.hasWhere !== false) {
|
|
277
|
+
this.hasWhere = eachSuffixSelector.includes(':where(');
|
|
278
|
+
}
|
|
279
|
+
for (let i = 0; i < PRIORITY_SELECTORS.length; i++) {
|
|
280
|
+
if (eachSuffixSelector.includes(PRIORITY_SELECTORS[i])) {
|
|
281
|
+
if (this.prioritySelectorIndex === -1 || this.prioritySelectorIndex > i) {
|
|
282
|
+
this.prioritySelectorIndex = i;
|
|
283
|
+
}
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
this.suffixSelectors = [''];
|
|
291
|
+
}
|
|
292
|
+
// 5. atTokens
|
|
293
|
+
for (let i = 1; i < suffixTokens.length; i++) {
|
|
294
|
+
const atToken = suffixTokens[i];
|
|
295
|
+
if (atToken) {
|
|
296
|
+
if (themeNames.includes(atToken)) {
|
|
297
|
+
this.themeName = atToken;
|
|
298
|
+
}
|
|
299
|
+
else if (atToken === 'rtl'
|
|
300
|
+
|| atToken === 'ltr') {
|
|
301
|
+
this.direction = atToken;
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
let type;
|
|
305
|
+
let queryText;
|
|
306
|
+
const underscoreIndex = atToken.indexOf('_');
|
|
307
|
+
if (underscoreIndex !== -1) {
|
|
308
|
+
type = atToken.slice(0, underscoreIndex);
|
|
309
|
+
queryText = atToken.slice(underscoreIndex);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
const leftBracketIndex = atToken.indexOf('(');
|
|
313
|
+
if (leftBracketIndex !== -1) {
|
|
314
|
+
type = atToken.slice(0, leftBracketIndex);
|
|
315
|
+
queryText = atToken.slice(leftBracketIndex);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
if (!type) {
|
|
319
|
+
type = 'media';
|
|
320
|
+
const queryTexts = [];
|
|
321
|
+
this.media = {
|
|
322
|
+
token: atToken,
|
|
323
|
+
features: {}
|
|
324
|
+
};
|
|
325
|
+
const typeOrFeatureTokens = atToken.split('&');
|
|
326
|
+
for (const typeOrFeatureToken of typeOrFeatureTokens) {
|
|
327
|
+
if (typeOrFeatureToken === 'all'
|
|
328
|
+
|| typeOrFeatureToken === 'print'
|
|
329
|
+
|| typeOrFeatureToken === 'screen'
|
|
330
|
+
|| typeOrFeatureToken === 'speech') {
|
|
331
|
+
this.media.type = typeOrFeatureToken;
|
|
332
|
+
}
|
|
333
|
+
else if (typeOrFeatureToken === '🖨') {
|
|
334
|
+
this.media.type = 'print';
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
if (typeOrFeatureToken === 'landscape' || typeOrFeatureToken === 'portrait') {
|
|
338
|
+
queryTexts.push('(orientation:' + typeOrFeatureToken + ')');
|
|
339
|
+
}
|
|
340
|
+
else if (typeOrFeatureToken === MOTION || typeOrFeatureToken === REDUCED_MOTION) {
|
|
341
|
+
queryTexts.push('(prefers-' + REDUCED_MOTION + ':'
|
|
342
|
+
+ (typeOrFeatureToken === MOTION ? 'no-preference' : REDUCE)
|
|
343
|
+
+ ')');
|
|
344
|
+
}
|
|
345
|
+
else if (mediaQueries && typeOrFeatureToken in mediaQueries) {
|
|
346
|
+
queryTexts.push(mediaQueries[typeOrFeatureToken]);
|
|
347
|
+
}
|
|
348
|
+
else {
|
|
349
|
+
const feature = {
|
|
350
|
+
token: typeOrFeatureToken
|
|
351
|
+
};
|
|
352
|
+
let featureName = '';
|
|
353
|
+
let extremumOperator = '';
|
|
354
|
+
let correction = 0;
|
|
355
|
+
if (typeOrFeatureToken.startsWith('<=')) {
|
|
356
|
+
extremumOperator = '<=';
|
|
357
|
+
featureName = MAX_WIDTH;
|
|
358
|
+
}
|
|
359
|
+
else if (typeOrFeatureToken.startsWith('>=') || breakpoints[typeOrFeatureToken]) {
|
|
360
|
+
extremumOperator = '>=';
|
|
361
|
+
featureName = MIN_WIDTH;
|
|
362
|
+
}
|
|
363
|
+
else if (typeOrFeatureToken.startsWith('>')) {
|
|
364
|
+
extremumOperator = '>';
|
|
365
|
+
featureName = MIN_WIDTH;
|
|
366
|
+
correction = .02;
|
|
367
|
+
}
|
|
368
|
+
else if (typeOrFeatureToken.startsWith('<')) {
|
|
369
|
+
extremumOperator = '<';
|
|
370
|
+
featureName = MAX_WIDTH;
|
|
371
|
+
correction = -.02;
|
|
372
|
+
}
|
|
373
|
+
switch (featureName) {
|
|
374
|
+
case MAX_WIDTH:
|
|
375
|
+
case MIN_WIDTH:
|
|
376
|
+
const conditionUnitValueToken = extremumOperator
|
|
377
|
+
? typeOrFeatureToken.replace(extremumOperator, '')
|
|
378
|
+
: typeOrFeatureToken;
|
|
379
|
+
const breakpoint = breakpoints[conditionUnitValueToken];
|
|
380
|
+
if (breakpoint) {
|
|
381
|
+
Object.assign(feature, parseValue(breakpoint, PX));
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
Object.assign(feature, parseValue(conditionUnitValueToken, PX));
|
|
385
|
+
}
|
|
386
|
+
if (feature.unit === PX) {
|
|
387
|
+
feature.value += correction;
|
|
388
|
+
}
|
|
389
|
+
this.media.features[featureName] = feature;
|
|
390
|
+
queryTexts.push('(' + featureName + ':' + (feature.value + feature.unit) + ')');
|
|
391
|
+
break;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
queryText = '';
|
|
397
|
+
if (this.media.type) {
|
|
398
|
+
queryText = this.media.type;
|
|
399
|
+
}
|
|
400
|
+
if (queryTexts.length) {
|
|
401
|
+
queryText += (queryText ? ' and ' : '') + queryTexts.join(' and ');
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
if (queryText) {
|
|
405
|
+
this.at[type] = (type in this.at
|
|
406
|
+
? this.at[type] + ' and '
|
|
407
|
+
: '')
|
|
408
|
+
+ queryText.replace(/\_/g, ' ');
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
// 6. order
|
|
414
|
+
if (this.order === undefined) {
|
|
415
|
+
// @ts-ignore
|
|
416
|
+
this.order = 0;
|
|
417
|
+
}
|
|
418
|
+
// 7. value
|
|
419
|
+
const insertNewNative = (themeName, bypassWhenUnmatchColor) => {
|
|
420
|
+
let newValue, newUnit;
|
|
421
|
+
const generateCssText = (propertiesText, themeName) => {
|
|
422
|
+
let prefixText = '';
|
|
423
|
+
if (this.direction) {
|
|
424
|
+
prefixText += '[dir=' + this.direction + '] ';
|
|
425
|
+
}
|
|
426
|
+
const prefixTexts = this.prefixSelectors.map(eachPrefixSelector => eachPrefixSelector + prefixText);
|
|
427
|
+
const getCssText = (themeName, name) => {
|
|
428
|
+
const prefixThemeText = (themeName ? '.' + themeName + ' ' : '');
|
|
429
|
+
const esacpedName = '.' + CSS.escape(name);
|
|
430
|
+
return prefixTexts
|
|
431
|
+
.map(eachPrefixText => prefixThemeText + eachPrefixText)
|
|
432
|
+
.reduce((arr, eachPrefixText) => {
|
|
433
|
+
arr.push(this.suffixSelectors
|
|
434
|
+
.reduce((_arr, eachSuffixSelector) => {
|
|
435
|
+
_arr.push(eachPrefixText + esacpedName + eachSuffixSelector);
|
|
436
|
+
return _arr;
|
|
437
|
+
}, [])
|
|
438
|
+
.join(','));
|
|
439
|
+
return arr;
|
|
440
|
+
}, [])
|
|
441
|
+
.join(',');
|
|
442
|
+
};
|
|
443
|
+
let cssText = getCssText(themeName, className)
|
|
444
|
+
+ (relationThemesMap
|
|
445
|
+
? Object
|
|
446
|
+
.entries(relationThemesMap)
|
|
447
|
+
.filter(([relationTheme]) => this.themeName || !colorful || !themeName || !relationTheme || relationTheme === themeName)
|
|
448
|
+
.map(([relationTheme, classNames]) => classNames.reduce((str, className) => str + ',' + getCssText(this.themeName ?? (colorful ? themeName || relationTheme : relationTheme), className), ''))
|
|
449
|
+
.join('')
|
|
450
|
+
: '')
|
|
451
|
+
+ '{'
|
|
452
|
+
+ propertiesText
|
|
453
|
+
+ '}';
|
|
454
|
+
for (const key of Object.keys(this.at).sort((a, b) => b === 'supports' ? -1 : 1)) {
|
|
455
|
+
cssText = '@' + key + ' ' + this.at[key] + '{' + cssText + '}';
|
|
456
|
+
}
|
|
457
|
+
return cssText;
|
|
458
|
+
};
|
|
459
|
+
const newValueTokens = [];
|
|
460
|
+
if (valueTokens) {
|
|
461
|
+
let uv, anyColorMatched = undefined;
|
|
462
|
+
for (const eachValueToken of valueTokens) {
|
|
463
|
+
if (typeof eachValueToken === 'string') {
|
|
464
|
+
newValueTokens.push(eachValueToken);
|
|
465
|
+
}
|
|
466
|
+
else {
|
|
467
|
+
uv = parseValue(eachValueToken.value, unit, colorful && colorsThemesMap, values, rootSize, this.themeName ? [this.themeName, ''] : [themeName]);
|
|
468
|
+
if (uv.colorMatched !== undefined && anyColorMatched !== true) {
|
|
469
|
+
anyColorMatched = uv.colorMatched;
|
|
470
|
+
}
|
|
471
|
+
newValueTokens.push(uv.value + uv.unit);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
if (bypassWhenUnmatchColor && (anyColorMatched === undefined ? themeName : !anyColorMatched))
|
|
475
|
+
return;
|
|
476
|
+
if (newValueTokens.length === 1) {
|
|
477
|
+
if (uv) {
|
|
478
|
+
newValue = uv.value;
|
|
479
|
+
newUnit = uv.unit;
|
|
480
|
+
}
|
|
481
|
+
else {
|
|
482
|
+
newValue = newValueTokens[0];
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
newValue = newValueTokens.reduce((previousVal, currentVal, i) => previousVal + currentVal + ((currentVal === ',' || valueTokens[i + 1] === ',' || i === valueTokens.length - 1) ? '' : ' '), '');
|
|
487
|
+
}
|
|
488
|
+
if (typeof newValue !== 'object') {
|
|
489
|
+
// 8. parseValue
|
|
490
|
+
if (this.parseValue) {
|
|
491
|
+
newValue = this.parseValue(newValue, this.css.config);
|
|
492
|
+
}
|
|
493
|
+
// 9. transform value
|
|
494
|
+
if (colorful && newValue === 'current') {
|
|
495
|
+
newValue = 'currentColor';
|
|
496
|
+
}
|
|
497
|
+
else if (values && newValue in values) {
|
|
498
|
+
newValue = values[newValue].toString();
|
|
499
|
+
}
|
|
500
|
+
const declaration = { unit: newUnit, value: newValue, important: this.important };
|
|
501
|
+
if (this.getThemeProps) {
|
|
502
|
+
const themeProps = this.getThemeProps(declaration, css);
|
|
503
|
+
for (const themeName in themeProps) {
|
|
504
|
+
this.natives.push({
|
|
505
|
+
unit: newUnit,
|
|
506
|
+
value: newValue,
|
|
507
|
+
text: generateCssText(Object
|
|
508
|
+
.entries(themeProps[themeName])
|
|
509
|
+
.map(([propertyName, propertyValue]) => getCssPropertyText(propertyName, {
|
|
510
|
+
important: this.important,
|
|
511
|
+
unit: '',
|
|
512
|
+
value: propertyValue
|
|
513
|
+
}))
|
|
514
|
+
.join(';'), themeName),
|
|
515
|
+
themeName
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
return;
|
|
519
|
+
}
|
|
520
|
+
else if (this.get) {
|
|
521
|
+
newValue = this.get(declaration);
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
else {
|
|
526
|
+
newValue = value;
|
|
527
|
+
}
|
|
528
|
+
this.natives.push({
|
|
529
|
+
unit: newUnit,
|
|
530
|
+
value: newValue,
|
|
531
|
+
text: generateCssText(typeof newValue === 'object'
|
|
532
|
+
? Object
|
|
533
|
+
.entries(newValue)
|
|
534
|
+
.map(([propertyName, propertyValue]) => getCssPropertyText(propertyName, {
|
|
535
|
+
...(typeof propertyValue === 'object'
|
|
536
|
+
? propertyValue
|
|
537
|
+
: { unit: '', value: propertyValue }),
|
|
538
|
+
important: this.important
|
|
539
|
+
}))
|
|
540
|
+
.join(';')
|
|
541
|
+
: getCssPropertyText(propName, { unit: newUnit, value: newValue, important: this.important }), themeName),
|
|
542
|
+
themeName
|
|
543
|
+
});
|
|
544
|
+
};
|
|
545
|
+
if (this.getThemeProps) {
|
|
546
|
+
insertNewNative(undefined, false);
|
|
547
|
+
}
|
|
548
|
+
else if (this.themeName) {
|
|
549
|
+
insertNewNative(this.themeName, false);
|
|
550
|
+
}
|
|
551
|
+
else if (colorful) {
|
|
552
|
+
for (const eachThemeName of themeNames) {
|
|
553
|
+
insertNewNative(eachThemeName, true);
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
else {
|
|
557
|
+
insertNewNative('', false);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
if (typeof window !== 'undefined') {
|
|
562
|
+
window.MasterCSSRule = MasterCSSRule;
|
|
563
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|