@pandacss/generator 0.11.0 → 0.11.1
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/dist/index.d.mts +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +61 -23
- package/dist/index.mjs +61 -23
- package/package.json +8 -8
package/dist/index.d.mts
CHANGED
|
@@ -94,6 +94,10 @@ declare const getEngine: (conf: ConfigResultWithHooks) => {
|
|
|
94
94
|
conditions: _pandacss_core.Conditions;
|
|
95
95
|
createSheetContext: () => _pandacss_core.StylesheetContext;
|
|
96
96
|
createSheet: (options?: Pick<_pandacss_core.StylesheetOptions, "content"> | undefined) => _pandacss_core.Stylesheet;
|
|
97
|
+
layers: _pandacss_types.CascadeLayers;
|
|
98
|
+
isValidLayerRule: (layerRule: string) => boolean;
|
|
99
|
+
layerString: string;
|
|
100
|
+
layerNames: string[];
|
|
97
101
|
hooks: _pandacss_types.PandaHookable;
|
|
98
102
|
path: string;
|
|
99
103
|
config: _pandacss_types_dist_shared.UnwrapExtend<_pandacss_types.RequiredBy<_pandacss_types.Config, "outdir" | "cwd" | "include">>;
|
|
@@ -320,6 +324,10 @@ declare const createGenerator: (conf: ConfigResultWithHooks) => {
|
|
|
320
324
|
conditions: _pandacss_core.Conditions;
|
|
321
325
|
createSheetContext: () => _pandacss_core.StylesheetContext;
|
|
322
326
|
createSheet: (options?: Pick<_pandacss_core.StylesheetOptions, "content"> | undefined) => _pandacss_core.Stylesheet;
|
|
327
|
+
layers: _pandacss_types.CascadeLayers;
|
|
328
|
+
isValidLayerRule: (layerRule: string) => boolean;
|
|
329
|
+
layerString: string;
|
|
330
|
+
layerNames: string[];
|
|
323
331
|
hooks: _pandacss_types.PandaHookable;
|
|
324
332
|
path: string;
|
|
325
333
|
config: _pandacss_types_dist_shared.UnwrapExtend<_pandacss_types.RequiredBy<_pandacss_types.Config, "outdir" | "cwd" | "include">>;
|
package/dist/index.d.ts
CHANGED
|
@@ -94,6 +94,10 @@ declare const getEngine: (conf: ConfigResultWithHooks) => {
|
|
|
94
94
|
conditions: _pandacss_core.Conditions;
|
|
95
95
|
createSheetContext: () => _pandacss_core.StylesheetContext;
|
|
96
96
|
createSheet: (options?: Pick<_pandacss_core.StylesheetOptions, "content"> | undefined) => _pandacss_core.Stylesheet;
|
|
97
|
+
layers: _pandacss_types.CascadeLayers;
|
|
98
|
+
isValidLayerRule: (layerRule: string) => boolean;
|
|
99
|
+
layerString: string;
|
|
100
|
+
layerNames: string[];
|
|
97
101
|
hooks: _pandacss_types.PandaHookable;
|
|
98
102
|
path: string;
|
|
99
103
|
config: _pandacss_types_dist_shared.UnwrapExtend<_pandacss_types.RequiredBy<_pandacss_types.Config, "outdir" | "cwd" | "include">>;
|
|
@@ -320,6 +324,10 @@ declare const createGenerator: (conf: ConfigResultWithHooks) => {
|
|
|
320
324
|
conditions: _pandacss_core.Conditions;
|
|
321
325
|
createSheetContext: () => _pandacss_core.StylesheetContext;
|
|
322
326
|
createSheet: (options?: Pick<_pandacss_core.StylesheetOptions, "content"> | undefined) => _pandacss_core.Stylesheet;
|
|
327
|
+
layers: _pandacss_types.CascadeLayers;
|
|
328
|
+
isValidLayerRule: (layerRule: string) => boolean;
|
|
329
|
+
layerString: string;
|
|
330
|
+
layerNames: string[];
|
|
323
331
|
hooks: _pandacss_types.PandaHookable;
|
|
324
332
|
path: string;
|
|
325
333
|
config: _pandacss_types_dist_shared.UnwrapExtend<_pandacss_types.RequiredBy<_pandacss_types.Config, "outdir" | "cwd" | "include">>;
|
package/dist/index.js
CHANGED
|
@@ -206,7 +206,7 @@ function generateKeyframeCss(ctx) {
|
|
|
206
206
|
var css = String.raw;
|
|
207
207
|
function generateResetCss(ctx, scope = "") {
|
|
208
208
|
const selector = scope ? `${scope} ` : "";
|
|
209
|
-
const output = css`@layer reset {
|
|
209
|
+
const output = css`@layer ${ctx.layers.reset} {
|
|
210
210
|
${selector}* {
|
|
211
211
|
margin: 0;
|
|
212
212
|
padding: 0;
|
|
@@ -473,7 +473,7 @@ function generateTokenCss(ctx) {
|
|
|
473
473
|
}
|
|
474
474
|
}
|
|
475
475
|
const css2 = results.join("\n\n");
|
|
476
|
-
const output = `@layer tokens {
|
|
476
|
+
const output = `@layer ${ctx.layers.tokens} {
|
|
477
477
|
${(0, import_core3.prettifyCss)(cleanupSelectors(css2, root))}
|
|
478
478
|
}
|
|
479
479
|
`;
|
|
@@ -654,13 +654,13 @@ function generateCssFn(ctx) {
|
|
|
654
654
|
return result;
|
|
655
655
|
}).join(",")}"
|
|
656
656
|
|
|
657
|
-
const
|
|
657
|
+
const classNameByProp = new Map()
|
|
658
658
|
${utility.hasShorthand ? import_outdent4.outdent`
|
|
659
659
|
const shorthands = new Map()
|
|
660
660
|
utilities.split(',').forEach((utility) => {
|
|
661
661
|
const [prop, meta] = utility.split(':')
|
|
662
662
|
const [className, ...shorthandList] = meta.split('/')
|
|
663
|
-
|
|
663
|
+
classNameByProp.set(prop, className)
|
|
664
664
|
if (shorthandList.length) {
|
|
665
665
|
shorthandList.forEach((shorthand) => {
|
|
666
666
|
shorthands.set(shorthand === '1' ? className : shorthand, prop)
|
|
@@ -672,7 +672,7 @@ function generateCssFn(ctx) {
|
|
|
672
672
|
` : import_outdent4.outdent`
|
|
673
673
|
utilities.split(',').forEach((utility) => {
|
|
674
674
|
const [prop, className] = utility.split(':')
|
|
675
|
-
|
|
675
|
+
classNameByProp.set(prop, className)
|
|
676
676
|
})
|
|
677
677
|
`}
|
|
678
678
|
|
|
@@ -687,15 +687,21 @@ function generateCssFn(ctx) {
|
|
|
687
687
|
${prefix ? "prefix: " + JSON.stringify(prefix) + "," : ""}
|
|
688
688
|
transform: ${utility.hasShorthand ? `(prop, value) => {
|
|
689
689
|
const key = resolveShorthand(prop)
|
|
690
|
-
const propKey =
|
|
690
|
+
const propKey = classNameByProp.get(key) || hypenateProperty(key)
|
|
691
691
|
return { className: \`\${propKey}${separator}\${withoutSpace(value)}\` }
|
|
692
|
-
}` : `(key, value) => ({ className: \`\${
|
|
692
|
+
}` : `(key, value) => ({ className: \`\${classNameByProp.get(key) || hypenateProperty(key)}${separator}\${withoutSpace(value)}\` })`},
|
|
693
693
|
${utility.hasShorthand ? "hasShorthand: true," : ""}
|
|
694
694
|
resolveShorthand: ${utility.hasShorthand ? "resolveShorthand" : "prop => prop"},
|
|
695
695
|
}
|
|
696
696
|
}
|
|
697
697
|
|
|
698
|
-
|
|
698
|
+
const cssFn = createCss(context)
|
|
699
|
+
export const cssCache = new Map()
|
|
700
|
+
export const css = (styles) => {
|
|
701
|
+
const classNames = cssFn(styles)
|
|
702
|
+
cssCache.set(classNames, styles)
|
|
703
|
+
return classNames
|
|
704
|
+
}
|
|
699
705
|
css.raw = (styles) => styles
|
|
700
706
|
|
|
701
707
|
export const { mergeCss, assignCss } = createMergeCss(context)
|
|
@@ -833,23 +839,34 @@ function generateCvaFn(ctx) {
|
|
|
833
839
|
|
|
834
840
|
// src/artifacts/js/cx.ts
|
|
835
841
|
var import_outdent7 = __toESM(require("outdent"));
|
|
836
|
-
function generateCx() {
|
|
842
|
+
function generateCx(ctx) {
|
|
837
843
|
return {
|
|
838
844
|
js: import_outdent7.default`
|
|
845
|
+
${ctx.file.import("cssCache, css, mergeCss", "./css")}
|
|
846
|
+
|
|
839
847
|
function cx() {
|
|
848
|
+
const objs = []
|
|
840
849
|
let str = '',
|
|
841
850
|
i = 0,
|
|
842
851
|
arg
|
|
843
|
-
|
|
852
|
+
|
|
844
853
|
for (; i < arguments.length; ) {
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
854
|
+
arg = arguments[i++]
|
|
855
|
+
if (!arg || typeof arg !== 'string') continue
|
|
856
|
+
|
|
857
|
+
if (cssCache.has(arg)) {
|
|
858
|
+
objs.push(cssCache.get(arg))
|
|
859
|
+
continue
|
|
848
860
|
}
|
|
861
|
+
|
|
862
|
+
str && (str += ' ')
|
|
863
|
+
str += arg.toString()
|
|
849
864
|
}
|
|
850
|
-
|
|
865
|
+
|
|
866
|
+
const merged = mergeCss(...objs)
|
|
867
|
+
return [css(merged), str].join(' ')
|
|
851
868
|
}
|
|
852
|
-
|
|
869
|
+
|
|
853
870
|
export { cx }
|
|
854
871
|
`,
|
|
855
872
|
dts: import_outdent7.default`
|
|
@@ -901,14 +918,14 @@ function generateHelpers(ctx) {
|
|
|
901
918
|
|
|
902
919
|
// src/artifacts/generated/is-valid-prop.mjs.json
|
|
903
920
|
var is_valid_prop_mjs_default = {
|
|
904
|
-
content: '// src/index.ts\nvar userGeneratedStr = "";\nvar userGenerated = userGeneratedStr.split(",");\nvar cssPropertiesStr = "WebkitAppearance,WebkitBorderBefore,WebkitBorderBeforeColor,WebkitBorderBeforeStyle,WebkitBorderBeforeWidth,WebkitBoxReflect,WebkitLineClamp,WebkitMask,WebkitMaskAttachment,WebkitMaskClip,WebkitMaskComposite,WebkitMaskImage,WebkitMaskOrigin,WebkitMaskPosition,WebkitMaskPositionX,WebkitMaskPositionY,WebkitMaskRepeat,WebkitMaskRepeatX,WebkitMaskRepeatY,WebkitMaskSize,WebkitOverflowScrolling,WebkitTapHighlightColor,WebkitTextFillColor,WebkitTextStroke,WebkitTextStrokeColor,WebkitTextStrokeWidth,WebkitTouchCallout,WebkitUserModify,accentColor,alignContent,alignItems,alignSelf,alignTracks,all,animation,animationComposition,animationDelay,animationDirection,animationDuration,animationFillMode,animationIterationCount,animationName,animationPlayState,animationTimingFunction,animationTimeline,appearance,aspectRatio,azimuth,backdropFilter,backfaceVisibility,background,backgroundAttachment,backgroundBlendMode,backgroundClip,backgroundColor,backgroundImage,backgroundOrigin,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundRepeat,backgroundSize,blockOverflow,blockSize,border,borderBlock,borderBlockColor,borderBlockStyle,borderBlockWidth,borderBlockEnd,borderBlockEndColor,borderBlockEndStyle,borderBlockEndWidth,borderBlockStart,borderBlockStartColor,borderBlockStartStyle,borderBlockStartWidth,borderBottom,borderBottomColor,borderBottomLeftRadius,borderBottomRightRadius,borderBottomStyle,borderBottomWidth,borderCollapse,borderColor,borderEndEndRadius,borderEndStartRadius,borderImage,borderImageOutset,borderImageRepeat,borderImageSlice,borderImageSource,borderImageWidth,borderInline,borderInlineEnd,borderInlineColor,borderInlineStyle,borderInlineWidth,borderInlineEndColor,borderInlineEndStyle,borderInlineEndWidth,borderInlineStart,borderInlineStartColor,borderInlineStartStyle,borderInlineStartWidth,borderLeft,borderLeftColor,borderLeftStyle,borderLeftWidth,borderRadius,borderRight,borderRightColor,borderRightStyle,borderRightWidth,borderSpacing,borderStartEndRadius,borderStartStartRadius,borderStyle,borderTop,borderTopColor,borderTopLeftRadius,borderTopRightRadius,borderTopStyle,borderTopWidth,borderWidth,bottom,boxAlign,boxDecorationBreak,boxDirection,boxFlex,boxFlexGroup,boxLines,boxOrdinalGroup,boxOrient,boxPack,boxShadow,boxSizing,breakAfter,breakBefore,breakInside,captionSide,caret,caretColor,caretShape,clear,clip,clipPath,color,colorScheme,columnCount,columnFill,columnGap,columnRule,columnRuleColor,columnRuleStyle,columnRuleWidth,columnSpan,columnWidth,columns,contain,containIntrinsicSize,containIntrinsicBlockSize,containIntrinsicHeight,containIntrinsicInlineSize,containIntrinsicWidth,container,containerName,containerType,content,contentVisibility,counterIncrement,counterReset,counterSet,cursor,direction,display,emptyCells,filter,flex,flexBasis,flexDirection,flexFlow,flexGrow,flexShrink,flexWrap,float,font,fontFamily,fontFeatureSettings,fontKerning,fontLanguageOverride,fontOpticalSizing,fontPalette,fontVariationSettings,fontSize,fontSizeAdjust,fontSmooth,fontStretch,fontStyle,fontSynthesis,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontVariantEmoji,fontVariantLigatures,fontVariantNumeric,fontVariantPosition,fontWeight,forcedColorAdjust,gap,grid,gridArea,gridAutoColumns,gridAutoFlow,gridAutoRows,gridColumn,gridColumnEnd,gridColumnGap,gridColumnStart,gridGap,gridRow,gridRowEnd,gridRowGap,gridRowStart,gridTemplate,gridTemplateAreas,gridTemplateColumns,gridTemplateRows,hangingPunctuation,height,hyphenateCharacter,hyphenateLimitChars,hyphens,imageOrientation,imageRendering,imageResolution,imeMode,initialLetter,initialLetterAlign,inlineSize,inputSecurity,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,isolation,justifyContent,justifyItems,justifySelf,justifyTracks,left,letterSpacing,lineBreak,lineClamp,lineHeight,lineHeightStep,listStyle,listStyleImage,listStylePosition,listStyleType,margin,marginBlock,marginBlockEnd,marginBlockStart,marginBottom,marginInline,marginInlineEnd,marginInlineStart,marginLeft,marginRight,marginTop,marginTrim,mask,maskBorder,maskBorderMode,maskBorderOutset,maskBorderRepeat,maskBorderSlice,maskBorderSource,maskBorderWidth,maskClip,maskComposite,maskImage,maskMode,maskOrigin,maskPosition,maskRepeat,maskSize,maskType,masonryAutoFlow,mathDepth,mathShift,mathStyle,maxBlockSize,maxHeight,maxInlineSize,maxLines,maxWidth,minBlockSize,minHeight,minInlineSize,minWidth,mixBlendMode,objectFit,objectPosition,offset,offsetAnchor,offsetDistance,offsetPath,offsetPosition,offsetRotate,opacity,order,orphans,outline,outlineColor,outlineOffset,outlineStyle,outlineWidth,overflow,overflowAnchor,overflowBlock,overflowClipBox,overflowClipMargin,overflowInline,overflowWrap,overflowX,overflowY,overscrollBehavior,overscrollBehaviorBlock,overscrollBehaviorInline,overscrollBehaviorX,overscrollBehaviorY,padding,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingBottom,paddingInline,paddingInlineEnd,paddingInlineStart,paddingLeft,paddingRight,paddingTop,page,pageBreakAfter,pageBreakBefore,pageBreakInside,paintOrder,perspective,perspectiveOrigin,placeContent,placeItems,placeSelf,pointerEvents,position,printColorAdjust,quotes,resize,right,rotate,rowGap,rubyAlign,rubyMerge,rubyPosition,scale,scrollbarColor,scrollbarGutter,scrollbarWidth,scrollBehavior,scrollMargin,scrollMarginBlock,scrollMarginBlockStart,scrollMarginBlockEnd,scrollMarginBottom,scrollMarginInline,scrollMarginInlineStart,scrollMarginInlineEnd,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockStart,scrollPaddingBlockEnd,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineStart,scrollPaddingInlineEnd,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapStop,scrollSnapType,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,shapeImageThreshold,shapeMargin,shapeOutside,tabSize,tableLayout,textAlign,textAlignLast,textCombineUpright,textDecoration,textDecorationColor,textDecorationLine,textDecorationSkip,textDecorationSkipInk,textDecorationStyle,textDecorationThickness,textEmphasis,textEmphasisColor,textEmphasisPosition,textEmphasisStyle,textIndent,textJustify,textOrientation,textOverflow,textRendering,textShadow,textSizeAdjust,textTransform,textUnderlineOffset,textUnderlinePosition,top,touchAction,transform,transformBox,transformOrigin,transformStyle,transition,transitionDelay,transitionDuration,transitionProperty,transitionTimingFunction,translate,unicodeBidi,userSelect,verticalAlign,viewTransitionName,visibility,whiteSpace,widows,width,willChange,wordBreak,wordSpacing,wordWrap,writingMode,zIndex,zoom";\nvar allCssProperties = cssPropertiesStr.split(",").concat(userGenerated);\nvar properties = new Map(allCssProperties.map((prop) => [prop, true]));\nfunction memo(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (arg) => {\n if (cache[arg] === void 0)\n cache[arg] = fn(arg);\n return cache[arg];\n };\n}\nvar
|
|
921
|
+
content: '// src/index.ts\nvar userGeneratedStr = "";\nvar userGenerated = userGeneratedStr.split(",");\nvar cssPropertiesStr = "WebkitAppearance,WebkitBorderBefore,WebkitBorderBeforeColor,WebkitBorderBeforeStyle,WebkitBorderBeforeWidth,WebkitBoxReflect,WebkitLineClamp,WebkitMask,WebkitMaskAttachment,WebkitMaskClip,WebkitMaskComposite,WebkitMaskImage,WebkitMaskOrigin,WebkitMaskPosition,WebkitMaskPositionX,WebkitMaskPositionY,WebkitMaskRepeat,WebkitMaskRepeatX,WebkitMaskRepeatY,WebkitMaskSize,WebkitOverflowScrolling,WebkitTapHighlightColor,WebkitTextFillColor,WebkitTextStroke,WebkitTextStrokeColor,WebkitTextStrokeWidth,WebkitTouchCallout,WebkitUserModify,accentColor,alignContent,alignItems,alignSelf,alignTracks,all,animation,animationComposition,animationDelay,animationDirection,animationDuration,animationFillMode,animationIterationCount,animationName,animationPlayState,animationTimingFunction,animationTimeline,appearance,aspectRatio,azimuth,backdropFilter,backfaceVisibility,background,backgroundAttachment,backgroundBlendMode,backgroundClip,backgroundColor,backgroundImage,backgroundOrigin,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundRepeat,backgroundSize,blockOverflow,blockSize,border,borderBlock,borderBlockColor,borderBlockStyle,borderBlockWidth,borderBlockEnd,borderBlockEndColor,borderBlockEndStyle,borderBlockEndWidth,borderBlockStart,borderBlockStartColor,borderBlockStartStyle,borderBlockStartWidth,borderBottom,borderBottomColor,borderBottomLeftRadius,borderBottomRightRadius,borderBottomStyle,borderBottomWidth,borderCollapse,borderColor,borderEndEndRadius,borderEndStartRadius,borderImage,borderImageOutset,borderImageRepeat,borderImageSlice,borderImageSource,borderImageWidth,borderInline,borderInlineEnd,borderInlineColor,borderInlineStyle,borderInlineWidth,borderInlineEndColor,borderInlineEndStyle,borderInlineEndWidth,borderInlineStart,borderInlineStartColor,borderInlineStartStyle,borderInlineStartWidth,borderLeft,borderLeftColor,borderLeftStyle,borderLeftWidth,borderRadius,borderRight,borderRightColor,borderRightStyle,borderRightWidth,borderSpacing,borderStartEndRadius,borderStartStartRadius,borderStyle,borderTop,borderTopColor,borderTopLeftRadius,borderTopRightRadius,borderTopStyle,borderTopWidth,borderWidth,bottom,boxAlign,boxDecorationBreak,boxDirection,boxFlex,boxFlexGroup,boxLines,boxOrdinalGroup,boxOrient,boxPack,boxShadow,boxSizing,breakAfter,breakBefore,breakInside,captionSide,caret,caretColor,caretShape,clear,clip,clipPath,color,colorScheme,columnCount,columnFill,columnGap,columnRule,columnRuleColor,columnRuleStyle,columnRuleWidth,columnSpan,columnWidth,columns,contain,containIntrinsicSize,containIntrinsicBlockSize,containIntrinsicHeight,containIntrinsicInlineSize,containIntrinsicWidth,container,containerName,containerType,content,contentVisibility,counterIncrement,counterReset,counterSet,cursor,direction,display,emptyCells,filter,flex,flexBasis,flexDirection,flexFlow,flexGrow,flexShrink,flexWrap,float,font,fontFamily,fontFeatureSettings,fontKerning,fontLanguageOverride,fontOpticalSizing,fontPalette,fontVariationSettings,fontSize,fontSizeAdjust,fontSmooth,fontStretch,fontStyle,fontSynthesis,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontVariantEmoji,fontVariantLigatures,fontVariantNumeric,fontVariantPosition,fontWeight,forcedColorAdjust,gap,grid,gridArea,gridAutoColumns,gridAutoFlow,gridAutoRows,gridColumn,gridColumnEnd,gridColumnGap,gridColumnStart,gridGap,gridRow,gridRowEnd,gridRowGap,gridRowStart,gridTemplate,gridTemplateAreas,gridTemplateColumns,gridTemplateRows,hangingPunctuation,height,hyphenateCharacter,hyphenateLimitChars,hyphens,imageOrientation,imageRendering,imageResolution,imeMode,initialLetter,initialLetterAlign,inlineSize,inputSecurity,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,isolation,justifyContent,justifyItems,justifySelf,justifyTracks,left,letterSpacing,lineBreak,lineClamp,lineHeight,lineHeightStep,listStyle,listStyleImage,listStylePosition,listStyleType,margin,marginBlock,marginBlockEnd,marginBlockStart,marginBottom,marginInline,marginInlineEnd,marginInlineStart,marginLeft,marginRight,marginTop,marginTrim,mask,maskBorder,maskBorderMode,maskBorderOutset,maskBorderRepeat,maskBorderSlice,maskBorderSource,maskBorderWidth,maskClip,maskComposite,maskImage,maskMode,maskOrigin,maskPosition,maskRepeat,maskSize,maskType,masonryAutoFlow,mathDepth,mathShift,mathStyle,maxBlockSize,maxHeight,maxInlineSize,maxLines,maxWidth,minBlockSize,minHeight,minInlineSize,minWidth,mixBlendMode,objectFit,objectPosition,offset,offsetAnchor,offsetDistance,offsetPath,offsetPosition,offsetRotate,opacity,order,orphans,outline,outlineColor,outlineOffset,outlineStyle,outlineWidth,overflow,overflowAnchor,overflowBlock,overflowClipBox,overflowClipMargin,overflowInline,overflowWrap,overflowX,overflowY,overscrollBehavior,overscrollBehaviorBlock,overscrollBehaviorInline,overscrollBehaviorX,overscrollBehaviorY,padding,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingBottom,paddingInline,paddingInlineEnd,paddingInlineStart,paddingLeft,paddingRight,paddingTop,page,pageBreakAfter,pageBreakBefore,pageBreakInside,paintOrder,perspective,perspectiveOrigin,placeContent,placeItems,placeSelf,pointerEvents,position,printColorAdjust,quotes,resize,right,rotate,rowGap,rubyAlign,rubyMerge,rubyPosition,scale,scrollbarColor,scrollbarGutter,scrollbarWidth,scrollBehavior,scrollMargin,scrollMarginBlock,scrollMarginBlockStart,scrollMarginBlockEnd,scrollMarginBottom,scrollMarginInline,scrollMarginInlineStart,scrollMarginInlineEnd,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockStart,scrollPaddingBlockEnd,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineStart,scrollPaddingInlineEnd,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapStop,scrollSnapType,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,shapeImageThreshold,shapeMargin,shapeOutside,tabSize,tableLayout,textAlign,textAlignLast,textCombineUpright,textDecoration,textDecorationColor,textDecorationLine,textDecorationSkip,textDecorationSkipInk,textDecorationStyle,textDecorationThickness,textEmphasis,textEmphasisColor,textEmphasisPosition,textEmphasisStyle,textIndent,textJustify,textOrientation,textOverflow,textRendering,textShadow,textSizeAdjust,textTransform,textUnderlineOffset,textUnderlinePosition,top,touchAction,transform,transformBox,transformOrigin,transformStyle,transition,transitionDelay,transitionDuration,transitionProperty,transitionTimingFunction,translate,unicodeBidi,userSelect,verticalAlign,viewTransitionName,visibility,whiteSpace,widows,width,willChange,wordBreak,wordSpacing,wordWrap,writingMode,zIndex,zoom,alignmentBaseline,baselineShift,clipRule,colorInterpolation,colorRendering,dominantBaseline,fill,fillOpacity,fillRule,floodColor,floodOpacity,glyphOrientationVertical,lightingColor,marker,markerEnd,markerMid,markerStart,shapeRendering,stopColor,stopOpacity,stroke,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,strokeWidth,textAnchor,vectorEffect";\nvar allCssProperties = cssPropertiesStr.split(",").concat(userGenerated);\nvar properties = new Map(allCssProperties.map((prop) => [prop, true]));\nfunction memo(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (arg) => {\n if (cache[arg] === void 0)\n cache[arg] = fn(arg);\n return cache[arg];\n };\n}\nvar cssPropertySelectorRegex = /&|@/;\nvar isCssProperty = /* @__PURE__ */ memo((prop) => {\n return properties.has(prop) || prop.startsWith("--") || cssPropertySelectorRegex.test(prop);\n});\nexport {\n allCssProperties,\n isCssProperty\n};\n'
|
|
905
922
|
};
|
|
906
923
|
|
|
907
924
|
// src/artifacts/js/is-valid-prop.ts
|
|
908
925
|
var import_outdent9 = require("outdent");
|
|
909
926
|
var import_ts_pattern = require("ts-pattern");
|
|
910
927
|
var cssPropRegex = /var cssPropertiesStr = ".*?";/;
|
|
911
|
-
var memoFnDeclarationRegex = /function memo(.+?)\nvar
|
|
928
|
+
var memoFnDeclarationRegex = /function memo(.+?)\nvar cssPropertySelectorRegex/s;
|
|
912
929
|
function generateIsValidProp(ctx) {
|
|
913
930
|
if (ctx.isTemplateLiteralSyntax)
|
|
914
931
|
return;
|
|
@@ -917,7 +934,7 @@ function generateIsValidProp(ctx) {
|
|
|
917
934
|
'var userGeneratedStr = "";',
|
|
918
935
|
`var userGeneratedStr = "${(0, import_ts_pattern.match)(ctx.jsx.styleProps).with("all", () => Array.from(new Set(ctx.properties)).join(",")).with("minimal", () => "css").with("none", () => "").exhaustive()}"`
|
|
919
936
|
);
|
|
920
|
-
content = content.replace(memoFnDeclarationRegex, "var
|
|
937
|
+
content = content.replace(memoFnDeclarationRegex, "var cssPropertySelectorRegex");
|
|
921
938
|
if (ctx.jsx.styleProps === "minimal" || ctx.jsx.styleProps === "none") {
|
|
922
939
|
content = content.replace("/* @__PURE__ */ memo(", "/* @__PURE__ */ (");
|
|
923
940
|
content = content.replace(cssPropRegex, 'var cssPropertiesStr = "";');
|
|
@@ -3168,7 +3185,7 @@ function setupSva(ctx) {
|
|
|
3168
3185
|
};
|
|
3169
3186
|
}
|
|
3170
3187
|
function setupCx(ctx) {
|
|
3171
|
-
const code = generateCx();
|
|
3188
|
+
const code = generateCx(ctx);
|
|
3172
3189
|
return {
|
|
3173
3190
|
dir: ctx.paths.css,
|
|
3174
3191
|
files: [
|
|
@@ -3334,7 +3351,7 @@ var generateFlattenedCss = (ctx) => (options) => {
|
|
|
3334
3351
|
const { files, resolve } = options;
|
|
3335
3352
|
const { theme: { keyframes } = {}, preflight, minify, staticCss } = ctx.config;
|
|
3336
3353
|
const unresolved = [
|
|
3337
|
-
|
|
3354
|
+
ctx.layerString,
|
|
3338
3355
|
preflight && "@import './reset.css';",
|
|
3339
3356
|
"@import './global.css';",
|
|
3340
3357
|
staticCss && "@import './static.css';",
|
|
@@ -3485,12 +3502,20 @@ var getBaseEngine = (conf) => {
|
|
|
3485
3502
|
});
|
|
3486
3503
|
const compositionContext = { conditions, utility };
|
|
3487
3504
|
(0, import_core5.assignCompositions)(compositions, compositionContext);
|
|
3505
|
+
const layers = config.layers;
|
|
3506
|
+
const layerNames = Object.values(layers);
|
|
3507
|
+
const isValidLayerRule = (0, import_shared5.memo)((layerRule) => {
|
|
3508
|
+
const names = new Set(layerRule.split(",").map((name) => name.trim()));
|
|
3509
|
+
return names.size >= 5 && layerNames.every((name) => names.has(name));
|
|
3510
|
+
});
|
|
3511
|
+
const layerString = `@layer ${layerNames.join(", ")};`;
|
|
3488
3512
|
const createSheetContext = () => ({
|
|
3489
3513
|
root: import_postcss3.default.root(),
|
|
3490
3514
|
conditions,
|
|
3491
3515
|
utility,
|
|
3492
3516
|
hash: hash.className,
|
|
3493
|
-
helpers
|
|
3517
|
+
helpers,
|
|
3518
|
+
layers
|
|
3494
3519
|
});
|
|
3495
3520
|
const createSheet = (options) => {
|
|
3496
3521
|
const sheetContext = createSheetContext();
|
|
@@ -3526,7 +3551,12 @@ var getBaseEngine = (conf) => {
|
|
|
3526
3551
|
recipes,
|
|
3527
3552
|
conditions,
|
|
3528
3553
|
createSheetContext,
|
|
3529
|
-
createSheet
|
|
3554
|
+
createSheet,
|
|
3555
|
+
// cascade layer
|
|
3556
|
+
layers,
|
|
3557
|
+
isValidLayerRule,
|
|
3558
|
+
layerString,
|
|
3559
|
+
layerNames
|
|
3530
3560
|
};
|
|
3531
3561
|
};
|
|
3532
3562
|
|
|
@@ -3635,7 +3665,15 @@ var defaults = (conf) => ({
|
|
|
3635
3665
|
outExtension: "mjs",
|
|
3636
3666
|
shorthands: true,
|
|
3637
3667
|
syntax: "object-literal",
|
|
3638
|
-
...conf.config
|
|
3668
|
+
...conf.config,
|
|
3669
|
+
layers: {
|
|
3670
|
+
reset: "reset",
|
|
3671
|
+
base: "base",
|
|
3672
|
+
tokens: "tokens",
|
|
3673
|
+
recipes: "recipes",
|
|
3674
|
+
utilities: "utilities",
|
|
3675
|
+
...conf.config.layers
|
|
3676
|
+
}
|
|
3639
3677
|
}
|
|
3640
3678
|
});
|
|
3641
3679
|
var getImportMap = (outdir) => ({
|
package/dist/index.mjs
CHANGED
|
@@ -175,7 +175,7 @@ function generateKeyframeCss(ctx) {
|
|
|
175
175
|
var css = String.raw;
|
|
176
176
|
function generateResetCss(ctx, scope = "") {
|
|
177
177
|
const selector = scope ? `${scope} ` : "";
|
|
178
|
-
const output = css`@layer reset {
|
|
178
|
+
const output = css`@layer ${ctx.layers.reset} {
|
|
179
179
|
${selector}* {
|
|
180
180
|
margin: 0;
|
|
181
181
|
padding: 0;
|
|
@@ -442,7 +442,7 @@ function generateTokenCss(ctx) {
|
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
const css2 = results.join("\n\n");
|
|
445
|
-
const output = `@layer tokens {
|
|
445
|
+
const output = `@layer ${ctx.layers.tokens} {
|
|
446
446
|
${prettifyCss(cleanupSelectors(css2, root))}
|
|
447
447
|
}
|
|
448
448
|
`;
|
|
@@ -623,13 +623,13 @@ function generateCssFn(ctx) {
|
|
|
623
623
|
return result;
|
|
624
624
|
}).join(",")}"
|
|
625
625
|
|
|
626
|
-
const
|
|
626
|
+
const classNameByProp = new Map()
|
|
627
627
|
${utility.hasShorthand ? outdent4`
|
|
628
628
|
const shorthands = new Map()
|
|
629
629
|
utilities.split(',').forEach((utility) => {
|
|
630
630
|
const [prop, meta] = utility.split(':')
|
|
631
631
|
const [className, ...shorthandList] = meta.split('/')
|
|
632
|
-
|
|
632
|
+
classNameByProp.set(prop, className)
|
|
633
633
|
if (shorthandList.length) {
|
|
634
634
|
shorthandList.forEach((shorthand) => {
|
|
635
635
|
shorthands.set(shorthand === '1' ? className : shorthand, prop)
|
|
@@ -641,7 +641,7 @@ function generateCssFn(ctx) {
|
|
|
641
641
|
` : outdent4`
|
|
642
642
|
utilities.split(',').forEach((utility) => {
|
|
643
643
|
const [prop, className] = utility.split(':')
|
|
644
|
-
|
|
644
|
+
classNameByProp.set(prop, className)
|
|
645
645
|
})
|
|
646
646
|
`}
|
|
647
647
|
|
|
@@ -656,15 +656,21 @@ function generateCssFn(ctx) {
|
|
|
656
656
|
${prefix ? "prefix: " + JSON.stringify(prefix) + "," : ""}
|
|
657
657
|
transform: ${utility.hasShorthand ? `(prop, value) => {
|
|
658
658
|
const key = resolveShorthand(prop)
|
|
659
|
-
const propKey =
|
|
659
|
+
const propKey = classNameByProp.get(key) || hypenateProperty(key)
|
|
660
660
|
return { className: \`\${propKey}${separator}\${withoutSpace(value)}\` }
|
|
661
|
-
}` : `(key, value) => ({ className: \`\${
|
|
661
|
+
}` : `(key, value) => ({ className: \`\${classNameByProp.get(key) || hypenateProperty(key)}${separator}\${withoutSpace(value)}\` })`},
|
|
662
662
|
${utility.hasShorthand ? "hasShorthand: true," : ""}
|
|
663
663
|
resolveShorthand: ${utility.hasShorthand ? "resolveShorthand" : "prop => prop"},
|
|
664
664
|
}
|
|
665
665
|
}
|
|
666
666
|
|
|
667
|
-
|
|
667
|
+
const cssFn = createCss(context)
|
|
668
|
+
export const cssCache = new Map()
|
|
669
|
+
export const css = (styles) => {
|
|
670
|
+
const classNames = cssFn(styles)
|
|
671
|
+
cssCache.set(classNames, styles)
|
|
672
|
+
return classNames
|
|
673
|
+
}
|
|
668
674
|
css.raw = (styles) => styles
|
|
669
675
|
|
|
670
676
|
export const { mergeCss, assignCss } = createMergeCss(context)
|
|
@@ -802,23 +808,34 @@ function generateCvaFn(ctx) {
|
|
|
802
808
|
|
|
803
809
|
// src/artifacts/js/cx.ts
|
|
804
810
|
import outdent7 from "outdent";
|
|
805
|
-
function generateCx() {
|
|
811
|
+
function generateCx(ctx) {
|
|
806
812
|
return {
|
|
807
813
|
js: outdent7`
|
|
814
|
+
${ctx.file.import("cssCache, css, mergeCss", "./css")}
|
|
815
|
+
|
|
808
816
|
function cx() {
|
|
817
|
+
const objs = []
|
|
809
818
|
let str = '',
|
|
810
819
|
i = 0,
|
|
811
820
|
arg
|
|
812
|
-
|
|
821
|
+
|
|
813
822
|
for (; i < arguments.length; ) {
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
823
|
+
arg = arguments[i++]
|
|
824
|
+
if (!arg || typeof arg !== 'string') continue
|
|
825
|
+
|
|
826
|
+
if (cssCache.has(arg)) {
|
|
827
|
+
objs.push(cssCache.get(arg))
|
|
828
|
+
continue
|
|
817
829
|
}
|
|
830
|
+
|
|
831
|
+
str && (str += ' ')
|
|
832
|
+
str += arg.toString()
|
|
818
833
|
}
|
|
819
|
-
|
|
834
|
+
|
|
835
|
+
const merged = mergeCss(...objs)
|
|
836
|
+
return [css(merged), str].join(' ')
|
|
820
837
|
}
|
|
821
|
-
|
|
838
|
+
|
|
822
839
|
export { cx }
|
|
823
840
|
`,
|
|
824
841
|
dts: outdent7`
|
|
@@ -870,14 +887,14 @@ function generateHelpers(ctx) {
|
|
|
870
887
|
|
|
871
888
|
// src/artifacts/generated/is-valid-prop.mjs.json
|
|
872
889
|
var is_valid_prop_mjs_default = {
|
|
873
|
-
content: '// src/index.ts\nvar userGeneratedStr = "";\nvar userGenerated = userGeneratedStr.split(",");\nvar cssPropertiesStr = "WebkitAppearance,WebkitBorderBefore,WebkitBorderBeforeColor,WebkitBorderBeforeStyle,WebkitBorderBeforeWidth,WebkitBoxReflect,WebkitLineClamp,WebkitMask,WebkitMaskAttachment,WebkitMaskClip,WebkitMaskComposite,WebkitMaskImage,WebkitMaskOrigin,WebkitMaskPosition,WebkitMaskPositionX,WebkitMaskPositionY,WebkitMaskRepeat,WebkitMaskRepeatX,WebkitMaskRepeatY,WebkitMaskSize,WebkitOverflowScrolling,WebkitTapHighlightColor,WebkitTextFillColor,WebkitTextStroke,WebkitTextStrokeColor,WebkitTextStrokeWidth,WebkitTouchCallout,WebkitUserModify,accentColor,alignContent,alignItems,alignSelf,alignTracks,all,animation,animationComposition,animationDelay,animationDirection,animationDuration,animationFillMode,animationIterationCount,animationName,animationPlayState,animationTimingFunction,animationTimeline,appearance,aspectRatio,azimuth,backdropFilter,backfaceVisibility,background,backgroundAttachment,backgroundBlendMode,backgroundClip,backgroundColor,backgroundImage,backgroundOrigin,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundRepeat,backgroundSize,blockOverflow,blockSize,border,borderBlock,borderBlockColor,borderBlockStyle,borderBlockWidth,borderBlockEnd,borderBlockEndColor,borderBlockEndStyle,borderBlockEndWidth,borderBlockStart,borderBlockStartColor,borderBlockStartStyle,borderBlockStartWidth,borderBottom,borderBottomColor,borderBottomLeftRadius,borderBottomRightRadius,borderBottomStyle,borderBottomWidth,borderCollapse,borderColor,borderEndEndRadius,borderEndStartRadius,borderImage,borderImageOutset,borderImageRepeat,borderImageSlice,borderImageSource,borderImageWidth,borderInline,borderInlineEnd,borderInlineColor,borderInlineStyle,borderInlineWidth,borderInlineEndColor,borderInlineEndStyle,borderInlineEndWidth,borderInlineStart,borderInlineStartColor,borderInlineStartStyle,borderInlineStartWidth,borderLeft,borderLeftColor,borderLeftStyle,borderLeftWidth,borderRadius,borderRight,borderRightColor,borderRightStyle,borderRightWidth,borderSpacing,borderStartEndRadius,borderStartStartRadius,borderStyle,borderTop,borderTopColor,borderTopLeftRadius,borderTopRightRadius,borderTopStyle,borderTopWidth,borderWidth,bottom,boxAlign,boxDecorationBreak,boxDirection,boxFlex,boxFlexGroup,boxLines,boxOrdinalGroup,boxOrient,boxPack,boxShadow,boxSizing,breakAfter,breakBefore,breakInside,captionSide,caret,caretColor,caretShape,clear,clip,clipPath,color,colorScheme,columnCount,columnFill,columnGap,columnRule,columnRuleColor,columnRuleStyle,columnRuleWidth,columnSpan,columnWidth,columns,contain,containIntrinsicSize,containIntrinsicBlockSize,containIntrinsicHeight,containIntrinsicInlineSize,containIntrinsicWidth,container,containerName,containerType,content,contentVisibility,counterIncrement,counterReset,counterSet,cursor,direction,display,emptyCells,filter,flex,flexBasis,flexDirection,flexFlow,flexGrow,flexShrink,flexWrap,float,font,fontFamily,fontFeatureSettings,fontKerning,fontLanguageOverride,fontOpticalSizing,fontPalette,fontVariationSettings,fontSize,fontSizeAdjust,fontSmooth,fontStretch,fontStyle,fontSynthesis,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontVariantEmoji,fontVariantLigatures,fontVariantNumeric,fontVariantPosition,fontWeight,forcedColorAdjust,gap,grid,gridArea,gridAutoColumns,gridAutoFlow,gridAutoRows,gridColumn,gridColumnEnd,gridColumnGap,gridColumnStart,gridGap,gridRow,gridRowEnd,gridRowGap,gridRowStart,gridTemplate,gridTemplateAreas,gridTemplateColumns,gridTemplateRows,hangingPunctuation,height,hyphenateCharacter,hyphenateLimitChars,hyphens,imageOrientation,imageRendering,imageResolution,imeMode,initialLetter,initialLetterAlign,inlineSize,inputSecurity,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,isolation,justifyContent,justifyItems,justifySelf,justifyTracks,left,letterSpacing,lineBreak,lineClamp,lineHeight,lineHeightStep,listStyle,listStyleImage,listStylePosition,listStyleType,margin,marginBlock,marginBlockEnd,marginBlockStart,marginBottom,marginInline,marginInlineEnd,marginInlineStart,marginLeft,marginRight,marginTop,marginTrim,mask,maskBorder,maskBorderMode,maskBorderOutset,maskBorderRepeat,maskBorderSlice,maskBorderSource,maskBorderWidth,maskClip,maskComposite,maskImage,maskMode,maskOrigin,maskPosition,maskRepeat,maskSize,maskType,masonryAutoFlow,mathDepth,mathShift,mathStyle,maxBlockSize,maxHeight,maxInlineSize,maxLines,maxWidth,minBlockSize,minHeight,minInlineSize,minWidth,mixBlendMode,objectFit,objectPosition,offset,offsetAnchor,offsetDistance,offsetPath,offsetPosition,offsetRotate,opacity,order,orphans,outline,outlineColor,outlineOffset,outlineStyle,outlineWidth,overflow,overflowAnchor,overflowBlock,overflowClipBox,overflowClipMargin,overflowInline,overflowWrap,overflowX,overflowY,overscrollBehavior,overscrollBehaviorBlock,overscrollBehaviorInline,overscrollBehaviorX,overscrollBehaviorY,padding,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingBottom,paddingInline,paddingInlineEnd,paddingInlineStart,paddingLeft,paddingRight,paddingTop,page,pageBreakAfter,pageBreakBefore,pageBreakInside,paintOrder,perspective,perspectiveOrigin,placeContent,placeItems,placeSelf,pointerEvents,position,printColorAdjust,quotes,resize,right,rotate,rowGap,rubyAlign,rubyMerge,rubyPosition,scale,scrollbarColor,scrollbarGutter,scrollbarWidth,scrollBehavior,scrollMargin,scrollMarginBlock,scrollMarginBlockStart,scrollMarginBlockEnd,scrollMarginBottom,scrollMarginInline,scrollMarginInlineStart,scrollMarginInlineEnd,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockStart,scrollPaddingBlockEnd,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineStart,scrollPaddingInlineEnd,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapStop,scrollSnapType,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,shapeImageThreshold,shapeMargin,shapeOutside,tabSize,tableLayout,textAlign,textAlignLast,textCombineUpright,textDecoration,textDecorationColor,textDecorationLine,textDecorationSkip,textDecorationSkipInk,textDecorationStyle,textDecorationThickness,textEmphasis,textEmphasisColor,textEmphasisPosition,textEmphasisStyle,textIndent,textJustify,textOrientation,textOverflow,textRendering,textShadow,textSizeAdjust,textTransform,textUnderlineOffset,textUnderlinePosition,top,touchAction,transform,transformBox,transformOrigin,transformStyle,transition,transitionDelay,transitionDuration,transitionProperty,transitionTimingFunction,translate,unicodeBidi,userSelect,verticalAlign,viewTransitionName,visibility,whiteSpace,widows,width,willChange,wordBreak,wordSpacing,wordWrap,writingMode,zIndex,zoom";\nvar allCssProperties = cssPropertiesStr.split(",").concat(userGenerated);\nvar properties = new Map(allCssProperties.map((prop) => [prop, true]));\nfunction memo(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (arg) => {\n if (cache[arg] === void 0)\n cache[arg] = fn(arg);\n return cache[arg];\n };\n}\nvar
|
|
890
|
+
content: '// src/index.ts\nvar userGeneratedStr = "";\nvar userGenerated = userGeneratedStr.split(",");\nvar cssPropertiesStr = "WebkitAppearance,WebkitBorderBefore,WebkitBorderBeforeColor,WebkitBorderBeforeStyle,WebkitBorderBeforeWidth,WebkitBoxReflect,WebkitLineClamp,WebkitMask,WebkitMaskAttachment,WebkitMaskClip,WebkitMaskComposite,WebkitMaskImage,WebkitMaskOrigin,WebkitMaskPosition,WebkitMaskPositionX,WebkitMaskPositionY,WebkitMaskRepeat,WebkitMaskRepeatX,WebkitMaskRepeatY,WebkitMaskSize,WebkitOverflowScrolling,WebkitTapHighlightColor,WebkitTextFillColor,WebkitTextStroke,WebkitTextStrokeColor,WebkitTextStrokeWidth,WebkitTouchCallout,WebkitUserModify,accentColor,alignContent,alignItems,alignSelf,alignTracks,all,animation,animationComposition,animationDelay,animationDirection,animationDuration,animationFillMode,animationIterationCount,animationName,animationPlayState,animationTimingFunction,animationTimeline,appearance,aspectRatio,azimuth,backdropFilter,backfaceVisibility,background,backgroundAttachment,backgroundBlendMode,backgroundClip,backgroundColor,backgroundImage,backgroundOrigin,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundRepeat,backgroundSize,blockOverflow,blockSize,border,borderBlock,borderBlockColor,borderBlockStyle,borderBlockWidth,borderBlockEnd,borderBlockEndColor,borderBlockEndStyle,borderBlockEndWidth,borderBlockStart,borderBlockStartColor,borderBlockStartStyle,borderBlockStartWidth,borderBottom,borderBottomColor,borderBottomLeftRadius,borderBottomRightRadius,borderBottomStyle,borderBottomWidth,borderCollapse,borderColor,borderEndEndRadius,borderEndStartRadius,borderImage,borderImageOutset,borderImageRepeat,borderImageSlice,borderImageSource,borderImageWidth,borderInline,borderInlineEnd,borderInlineColor,borderInlineStyle,borderInlineWidth,borderInlineEndColor,borderInlineEndStyle,borderInlineEndWidth,borderInlineStart,borderInlineStartColor,borderInlineStartStyle,borderInlineStartWidth,borderLeft,borderLeftColor,borderLeftStyle,borderLeftWidth,borderRadius,borderRight,borderRightColor,borderRightStyle,borderRightWidth,borderSpacing,borderStartEndRadius,borderStartStartRadius,borderStyle,borderTop,borderTopColor,borderTopLeftRadius,borderTopRightRadius,borderTopStyle,borderTopWidth,borderWidth,bottom,boxAlign,boxDecorationBreak,boxDirection,boxFlex,boxFlexGroup,boxLines,boxOrdinalGroup,boxOrient,boxPack,boxShadow,boxSizing,breakAfter,breakBefore,breakInside,captionSide,caret,caretColor,caretShape,clear,clip,clipPath,color,colorScheme,columnCount,columnFill,columnGap,columnRule,columnRuleColor,columnRuleStyle,columnRuleWidth,columnSpan,columnWidth,columns,contain,containIntrinsicSize,containIntrinsicBlockSize,containIntrinsicHeight,containIntrinsicInlineSize,containIntrinsicWidth,container,containerName,containerType,content,contentVisibility,counterIncrement,counterReset,counterSet,cursor,direction,display,emptyCells,filter,flex,flexBasis,flexDirection,flexFlow,flexGrow,flexShrink,flexWrap,float,font,fontFamily,fontFeatureSettings,fontKerning,fontLanguageOverride,fontOpticalSizing,fontPalette,fontVariationSettings,fontSize,fontSizeAdjust,fontSmooth,fontStretch,fontStyle,fontSynthesis,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontVariantEmoji,fontVariantLigatures,fontVariantNumeric,fontVariantPosition,fontWeight,forcedColorAdjust,gap,grid,gridArea,gridAutoColumns,gridAutoFlow,gridAutoRows,gridColumn,gridColumnEnd,gridColumnGap,gridColumnStart,gridGap,gridRow,gridRowEnd,gridRowGap,gridRowStart,gridTemplate,gridTemplateAreas,gridTemplateColumns,gridTemplateRows,hangingPunctuation,height,hyphenateCharacter,hyphenateLimitChars,hyphens,imageOrientation,imageRendering,imageResolution,imeMode,initialLetter,initialLetterAlign,inlineSize,inputSecurity,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,isolation,justifyContent,justifyItems,justifySelf,justifyTracks,left,letterSpacing,lineBreak,lineClamp,lineHeight,lineHeightStep,listStyle,listStyleImage,listStylePosition,listStyleType,margin,marginBlock,marginBlockEnd,marginBlockStart,marginBottom,marginInline,marginInlineEnd,marginInlineStart,marginLeft,marginRight,marginTop,marginTrim,mask,maskBorder,maskBorderMode,maskBorderOutset,maskBorderRepeat,maskBorderSlice,maskBorderSource,maskBorderWidth,maskClip,maskComposite,maskImage,maskMode,maskOrigin,maskPosition,maskRepeat,maskSize,maskType,masonryAutoFlow,mathDepth,mathShift,mathStyle,maxBlockSize,maxHeight,maxInlineSize,maxLines,maxWidth,minBlockSize,minHeight,minInlineSize,minWidth,mixBlendMode,objectFit,objectPosition,offset,offsetAnchor,offsetDistance,offsetPath,offsetPosition,offsetRotate,opacity,order,orphans,outline,outlineColor,outlineOffset,outlineStyle,outlineWidth,overflow,overflowAnchor,overflowBlock,overflowClipBox,overflowClipMargin,overflowInline,overflowWrap,overflowX,overflowY,overscrollBehavior,overscrollBehaviorBlock,overscrollBehaviorInline,overscrollBehaviorX,overscrollBehaviorY,padding,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingBottom,paddingInline,paddingInlineEnd,paddingInlineStart,paddingLeft,paddingRight,paddingTop,page,pageBreakAfter,pageBreakBefore,pageBreakInside,paintOrder,perspective,perspectiveOrigin,placeContent,placeItems,placeSelf,pointerEvents,position,printColorAdjust,quotes,resize,right,rotate,rowGap,rubyAlign,rubyMerge,rubyPosition,scale,scrollbarColor,scrollbarGutter,scrollbarWidth,scrollBehavior,scrollMargin,scrollMarginBlock,scrollMarginBlockStart,scrollMarginBlockEnd,scrollMarginBottom,scrollMarginInline,scrollMarginInlineStart,scrollMarginInlineEnd,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockStart,scrollPaddingBlockEnd,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineStart,scrollPaddingInlineEnd,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapStop,scrollSnapType,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,shapeImageThreshold,shapeMargin,shapeOutside,tabSize,tableLayout,textAlign,textAlignLast,textCombineUpright,textDecoration,textDecorationColor,textDecorationLine,textDecorationSkip,textDecorationSkipInk,textDecorationStyle,textDecorationThickness,textEmphasis,textEmphasisColor,textEmphasisPosition,textEmphasisStyle,textIndent,textJustify,textOrientation,textOverflow,textRendering,textShadow,textSizeAdjust,textTransform,textUnderlineOffset,textUnderlinePosition,top,touchAction,transform,transformBox,transformOrigin,transformStyle,transition,transitionDelay,transitionDuration,transitionProperty,transitionTimingFunction,translate,unicodeBidi,userSelect,verticalAlign,viewTransitionName,visibility,whiteSpace,widows,width,willChange,wordBreak,wordSpacing,wordWrap,writingMode,zIndex,zoom,alignmentBaseline,baselineShift,clipRule,colorInterpolation,colorRendering,dominantBaseline,fill,fillOpacity,fillRule,floodColor,floodOpacity,glyphOrientationVertical,lightingColor,marker,markerEnd,markerMid,markerStart,shapeRendering,stopColor,stopOpacity,stroke,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,strokeWidth,textAnchor,vectorEffect";\nvar allCssProperties = cssPropertiesStr.split(",").concat(userGenerated);\nvar properties = new Map(allCssProperties.map((prop) => [prop, true]));\nfunction memo(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (arg) => {\n if (cache[arg] === void 0)\n cache[arg] = fn(arg);\n return cache[arg];\n };\n}\nvar cssPropertySelectorRegex = /&|@/;\nvar isCssProperty = /* @__PURE__ */ memo((prop) => {\n return properties.has(prop) || prop.startsWith("--") || cssPropertySelectorRegex.test(prop);\n});\nexport {\n allCssProperties,\n isCssProperty\n};\n'
|
|
874
891
|
};
|
|
875
892
|
|
|
876
893
|
// src/artifacts/js/is-valid-prop.ts
|
|
877
894
|
import { outdent as outdent9 } from "outdent";
|
|
878
895
|
import { match } from "ts-pattern";
|
|
879
896
|
var cssPropRegex = /var cssPropertiesStr = ".*?";/;
|
|
880
|
-
var memoFnDeclarationRegex = /function memo(.+?)\nvar
|
|
897
|
+
var memoFnDeclarationRegex = /function memo(.+?)\nvar cssPropertySelectorRegex/s;
|
|
881
898
|
function generateIsValidProp(ctx) {
|
|
882
899
|
if (ctx.isTemplateLiteralSyntax)
|
|
883
900
|
return;
|
|
@@ -886,7 +903,7 @@ function generateIsValidProp(ctx) {
|
|
|
886
903
|
'var userGeneratedStr = "";',
|
|
887
904
|
`var userGeneratedStr = "${match(ctx.jsx.styleProps).with("all", () => Array.from(new Set(ctx.properties)).join(",")).with("minimal", () => "css").with("none", () => "").exhaustive()}"`
|
|
888
905
|
);
|
|
889
|
-
content = content.replace(memoFnDeclarationRegex, "var
|
|
906
|
+
content = content.replace(memoFnDeclarationRegex, "var cssPropertySelectorRegex");
|
|
890
907
|
if (ctx.jsx.styleProps === "minimal" || ctx.jsx.styleProps === "none") {
|
|
891
908
|
content = content.replace("/* @__PURE__ */ memo(", "/* @__PURE__ */ (");
|
|
892
909
|
content = content.replace(cssPropRegex, 'var cssPropertiesStr = "";');
|
|
@@ -3137,7 +3154,7 @@ function setupSva(ctx) {
|
|
|
3137
3154
|
};
|
|
3138
3155
|
}
|
|
3139
3156
|
function setupCx(ctx) {
|
|
3140
|
-
const code = generateCx();
|
|
3157
|
+
const code = generateCx(ctx);
|
|
3141
3158
|
return {
|
|
3142
3159
|
dir: ctx.paths.css,
|
|
3143
3160
|
files: [
|
|
@@ -3303,7 +3320,7 @@ var generateFlattenedCss = (ctx) => (options) => {
|
|
|
3303
3320
|
const { files, resolve } = options;
|
|
3304
3321
|
const { theme: { keyframes } = {}, preflight, minify, staticCss } = ctx.config;
|
|
3305
3322
|
const unresolved = [
|
|
3306
|
-
|
|
3323
|
+
ctx.layerString,
|
|
3307
3324
|
preflight && "@import './reset.css';",
|
|
3308
3325
|
"@import './global.css';",
|
|
3309
3326
|
staticCss && "@import './static.css';",
|
|
@@ -3460,12 +3477,20 @@ var getBaseEngine = (conf) => {
|
|
|
3460
3477
|
});
|
|
3461
3478
|
const compositionContext = { conditions, utility };
|
|
3462
3479
|
assignCompositions(compositions, compositionContext);
|
|
3480
|
+
const layers = config.layers;
|
|
3481
|
+
const layerNames = Object.values(layers);
|
|
3482
|
+
const isValidLayerRule = memo((layerRule) => {
|
|
3483
|
+
const names = new Set(layerRule.split(",").map((name) => name.trim()));
|
|
3484
|
+
return names.size >= 5 && layerNames.every((name) => names.has(name));
|
|
3485
|
+
});
|
|
3486
|
+
const layerString = `@layer ${layerNames.join(", ")};`;
|
|
3463
3487
|
const createSheetContext = () => ({
|
|
3464
3488
|
root: postcss3.root(),
|
|
3465
3489
|
conditions,
|
|
3466
3490
|
utility,
|
|
3467
3491
|
hash: hash.className,
|
|
3468
|
-
helpers
|
|
3492
|
+
helpers,
|
|
3493
|
+
layers
|
|
3469
3494
|
});
|
|
3470
3495
|
const createSheet = (options) => {
|
|
3471
3496
|
const sheetContext = createSheetContext();
|
|
@@ -3501,7 +3526,12 @@ var getBaseEngine = (conf) => {
|
|
|
3501
3526
|
recipes,
|
|
3502
3527
|
conditions,
|
|
3503
3528
|
createSheetContext,
|
|
3504
|
-
createSheet
|
|
3529
|
+
createSheet,
|
|
3530
|
+
// cascade layer
|
|
3531
|
+
layers,
|
|
3532
|
+
isValidLayerRule,
|
|
3533
|
+
layerString,
|
|
3534
|
+
layerNames
|
|
3505
3535
|
};
|
|
3506
3536
|
};
|
|
3507
3537
|
|
|
@@ -3610,7 +3640,15 @@ var defaults = (conf) => ({
|
|
|
3610
3640
|
outExtension: "mjs",
|
|
3611
3641
|
shorthands: true,
|
|
3612
3642
|
syntax: "object-literal",
|
|
3613
|
-
...conf.config
|
|
3643
|
+
...conf.config,
|
|
3644
|
+
layers: {
|
|
3645
|
+
reset: "reset",
|
|
3646
|
+
base: "base",
|
|
3647
|
+
tokens: "tokens",
|
|
3648
|
+
recipes: "recipes",
|
|
3649
|
+
utilities: "utilities",
|
|
3650
|
+
...conf.config.layers
|
|
3651
|
+
}
|
|
3614
3652
|
}
|
|
3615
3653
|
});
|
|
3616
3654
|
var getImportMap = (outdir) => ({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pandacss/generator",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "The css generator for css panda",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -20,17 +20,17 @@
|
|
|
20
20
|
"pluralize": "8.0.0",
|
|
21
21
|
"postcss": "8.4.27",
|
|
22
22
|
"ts-pattern": "5.0.4",
|
|
23
|
-
"@pandacss/core": "0.11.
|
|
24
|
-
"@pandacss/is-valid-prop": "0.11.
|
|
25
|
-
"@pandacss/logger": "0.11.
|
|
26
|
-
"@pandacss/shared": "0.11.
|
|
27
|
-
"@pandacss/token-dictionary": "0.11.
|
|
28
|
-
"@pandacss/types": "0.11.
|
|
23
|
+
"@pandacss/core": "0.11.1",
|
|
24
|
+
"@pandacss/is-valid-prop": "0.11.1",
|
|
25
|
+
"@pandacss/logger": "0.11.1",
|
|
26
|
+
"@pandacss/shared": "0.11.1",
|
|
27
|
+
"@pandacss/token-dictionary": "0.11.1",
|
|
28
|
+
"@pandacss/types": "0.11.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/pluralize": "0.0.30",
|
|
32
32
|
"hookable": "5.5.3",
|
|
33
|
-
"@pandacss/fixture": "0.11.
|
|
33
|
+
"@pandacss/fixture": "0.11.1"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"prebuild": "tsx scripts/prebuild.ts",
|