@pandacss/generator 0.0.0-dev-20240110101351 → 0.0.0-dev-20240112100832
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.js +16 -18
- package/dist/index.mjs +20 -22
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -418,7 +418,7 @@ var astish_mjs_default = {
|
|
|
418
418
|
|
|
419
419
|
// src/artifacts/generated/helpers.mjs.json
|
|
420
420
|
var helpers_mjs_default = {
|
|
421
|
-
content: '// src/assert.ts\nfunction isObject(value) {\n return typeof value === "object" && value != null && !Array.isArray(value);\n}\n\n// src/compact.ts\nfunction compact(value) {\n return Object.fromEntries(Object.entries(value ?? {}).filter(([_, value2]) => value2 !== void 0));\n}\n\n// src/condition.ts\nvar isBaseCondition = (v) => v === "base";\nfunction filterBaseConditions(c) {\n return c.slice().filter((v) => !isBaseCondition(v));\n}\n\n// src/css-important.ts\nvar importantRegex =
|
|
421
|
+
content: '// src/assert.ts\nfunction isObject(value) {\n return typeof value === "object" && value != null && !Array.isArray(value);\n}\n\n// src/compact.ts\nfunction compact(value) {\n return Object.fromEntries(Object.entries(value ?? {}).filter(([_, value2]) => value2 !== void 0));\n}\n\n// src/condition.ts\nvar isBaseCondition = (v) => v === "base";\nfunction filterBaseConditions(c) {\n return c.slice().filter((v) => !isBaseCondition(v));\n}\n\n// src/css-important.ts\nvar importantRegex = /\\s*!(important)?/i;\nfunction isImportant(value) {\n return typeof value === "string" ? importantRegex.test(value) : false;\n}\nfunction withoutImportant(value) {\n return typeof value === "string" ? value.replace(importantRegex, "").trim() : value;\n}\nfunction withoutSpace(str) {\n return typeof str === "string" ? str.replaceAll(" ", "_") : str;\n}\n\n// src/hash.ts\nfunction toChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n}\nfunction toName(code) {\n let name = "";\n let x;\n for (x = Math.abs(code); x > 52; x = x / 52 | 0)\n name = toChar(x % 52) + name;\n return toChar(x % 52) + name;\n}\nfunction toPhash(h, x) {\n let i = x.length;\n while (i)\n h = h * 33 ^ x.charCodeAt(--i);\n return h;\n}\nfunction toHash(value) {\n return toName(toPhash(5381, value) >>> 0);\n}\n\n// src/merge-props.ts\nfunction mergeProps(...sources) {\n const objects = sources.filter(Boolean);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const prevValue = prev[key];\n const value = obj[key];\n if (isObject(prevValue) && isObject(value)) {\n prev[key] = mergeProps(prevValue, value);\n } else {\n prev[key] = value;\n }\n });\n return prev;\n }, {});\n}\n\n// src/walk-object.ts\nvar isNotNullish = (element) => element != null;\nfunction walkObject(target, predicate, options = {}) {\n const { stop, getKey } = options;\n function inner(value, path = []) {\n if (isObject(value) || Array.isArray(value)) {\n const result = {};\n for (const [prop, child] of Object.entries(value)) {\n const key = getKey?.(prop) ?? prop;\n const childPath = [...path, key];\n if (stop?.(value, childPath)) {\n return predicate(value, path);\n }\n const next = inner(child, childPath);\n if (isNotNullish(next)) {\n result[key] = next;\n }\n }\n return result;\n }\n return predicate(value, path);\n }\n return inner(target);\n}\nfunction mapObject(obj, fn) {\n if (Array.isArray(obj))\n return obj.map((value) => fn(value));\n if (!isObject(obj))\n return fn(obj);\n return walkObject(obj, (value) => fn(value));\n}\n\n// src/normalize-style-object.ts\nfunction toResponsiveObject(values, breakpoints) {\n return values.reduce((acc, current, index) => {\n const key = breakpoints[index];\n if (current != null) {\n acc[key] = current;\n }\n return acc;\n }, {});\n}\nfunction normalizeShorthand(styles, context) {\n const { hasShorthand, resolveShorthand } = context.utility;\n return walkObject(styles, (v) => v, {\n getKey: (prop) => {\n return hasShorthand ? resolveShorthand(prop) : prop;\n }\n });\n}\nfunction normalizeStyleObject(styles, context, shorthand = true) {\n const { utility, conditions } = context;\n const { hasShorthand, resolveShorthand } = utility;\n return walkObject(\n styles,\n (value) => {\n return Array.isArray(value) ? toResponsiveObject(value, conditions.breakpoints.keys) : value;\n },\n {\n stop: (value) => Array.isArray(value),\n getKey: shorthand ? (prop) => hasShorthand ? resolveShorthand(prop) : prop : void 0\n }\n );\n}\n\n// src/classname.ts\nvar fallbackCondition = {\n shift: (v) => v,\n finalize: (v) => v,\n breakpoints: { keys: [] }\n};\nvar sanitize = (value) => typeof value === "string" ? value.replaceAll(/[\\n\\s]+/g, " ") : value;\nfunction createCss(context) {\n const { utility, hash, conditions: conds = fallbackCondition } = context;\n const formatClassName = (str) => [utility.prefix, str].filter(Boolean).join("-");\n const hashFn = (conditions, className) => {\n let result;\n if (hash) {\n const baseArray = [...conds.finalize(conditions), className];\n result = formatClassName(toHash(baseArray.join(":")));\n } else {\n const baseArray = [...conds.finalize(conditions), formatClassName(className)];\n result = baseArray.join(":");\n }\n return result;\n };\n return (styleObject = {}) => {\n const normalizedObject = normalizeStyleObject(styleObject, context);\n const classNames = /* @__PURE__ */ new Set();\n walkObject(normalizedObject, (value, paths) => {\n const important = isImportant(value);\n if (value == null)\n return;\n const [prop, ...allConditions] = conds.shift(paths);\n const conditions = filterBaseConditions(allConditions);\n const transformed = utility.transform(prop, withoutImportant(sanitize(value)));\n let className = hashFn(conditions, transformed.className);\n if (important)\n className = `${className}!`;\n classNames.add(className);\n });\n return Array.from(classNames).join(" ");\n };\n}\nfunction compactStyles(...styles) {\n return styles.filter((style) => isObject(style) && Object.keys(compact(style)).length > 0);\n}\nfunction createMergeCss(context) {\n function resolve(styles) {\n const allStyles = compactStyles(...styles);\n if (allStyles.length === 1)\n return allStyles;\n return allStyles.map((style) => normalizeShorthand(style, context));\n }\n function mergeCss(...styles) {\n return mergeProps(...resolve(styles));\n }\n function assignCss(...styles) {\n return Object.assign({}, ...resolve(styles));\n }\n return { mergeCss, assignCss };\n}\n\n// src/memo.ts\nvar memo = (fn) => {\n const cache = /* @__PURE__ */ new Map();\n const get = (...args) => {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = fn(...args);\n cache.set(key, result);\n return result;\n };\n return get;\n};\n\n// src/hypenate-property.ts\nvar wordRegex = /([A-Z])/g;\nvar msRegex = /^ms-/;\nvar hypenateProperty = memo((property) => {\n if (property.startsWith("--"))\n return property;\n return property.replace(wordRegex, "-$1").replace(msRegex, "-ms-").toLowerCase();\n});\n\n// src/slot.ts\nvar getSlotRecipes = (recipe = {}) => {\n const init = (slot) => ({\n className: [recipe.className, slot].filter(Boolean).join("__"),\n base: recipe.base?.[slot] ?? {},\n variants: {},\n defaultVariants: recipe.defaultVariants ?? {},\n compoundVariants: recipe.compoundVariants ? getSlotCompoundVariant(recipe.compoundVariants, slot) : []\n });\n const slots = recipe.slots ?? [];\n const recipeParts = slots.map((slot) => [slot, init(slot)]);\n for (const [variantsKey, variantsSpec] of Object.entries(recipe.variants ?? {})) {\n for (const [variantKey, variantSpec] of Object.entries(variantsSpec)) {\n recipeParts.forEach(([slot, slotRecipe]) => {\n slotRecipe.variants[variantsKey] ??= {};\n slotRecipe.variants[variantsKey][variantKey] = variantSpec[slot] ?? {};\n });\n }\n }\n return Object.fromEntries(recipeParts);\n};\nvar getSlotCompoundVariant = (compoundVariants, slotName) => compoundVariants.filter((compoundVariant) => compoundVariant.css[slotName]).map((compoundVariant) => ({ ...compoundVariant, css: compoundVariant.css[slotName] }));\n\n// src/split-props.ts\nfunction splitProps(props, ...keys) {\n const descriptors = Object.getOwnPropertyDescriptors(props);\n const dKeys = Object.keys(descriptors);\n const split = (k) => {\n const clone = {};\n for (let i = 0; i < k.length; i++) {\n const key = k[i];\n if (descriptors[key]) {\n Object.defineProperty(clone, key, descriptors[key]);\n delete descriptors[key];\n }\n }\n return clone;\n };\n const fn = (key) => split(Array.isArray(key) ? key : dKeys.filter(key));\n return keys.map(fn).concat(split(dKeys));\n}\n\n// src/uniq.ts\nvar uniq = (...items) => items.filter(Boolean).reduce((acc, item) => Array.from(/* @__PURE__ */ new Set([...acc, ...item])), []);\nexport {\n compact,\n createCss,\n createMergeCss,\n filterBaseConditions,\n getSlotCompoundVariant,\n getSlotRecipes,\n hypenateProperty,\n isBaseCondition,\n isObject,\n mapObject,\n memo,\n mergeProps,\n splitProps,\n toHash,\n uniq,\n walkObject,\n withoutSpace\n};\n'
|
|
422
422
|
};
|
|
423
423
|
|
|
424
424
|
// src/artifacts/generated/normalize-html.mjs.json
|
|
@@ -2925,12 +2925,15 @@ function generatePropTypes(ctx) {
|
|
|
2925
2925
|
| 'visibility'
|
|
2926
2926
|
| 'wordBreak'
|
|
2927
2927
|
| 'writingMode'
|
|
2928
|
+
|
|
2928
2929
|
type WithEscapeHatch<T> = T | \`[\${string}]\`
|
|
2930
|
+
|
|
2929
2931
|
type FilterVagueString<Key, Value> = Value extends boolean
|
|
2930
2932
|
? Value
|
|
2931
2933
|
: Key extends StrictableProps
|
|
2932
2934
|
? Value extends \`\${infer _}\` ? Value : never
|
|
2933
2935
|
: Value
|
|
2936
|
+
|
|
2934
2937
|
type PropOrCondition<Key, Value> = ${(0, import_ts_pattern11.match)(ctx.config).with(
|
|
2935
2938
|
{ strictTokens: true, strictPropertyValues: true },
|
|
2936
2939
|
() => "ConditionalValue<WithEscapeHatch<FilterVagueString<Key, Value>>>"
|
|
@@ -2983,6 +2986,7 @@ var import_shared3 = require("@pandacss/shared");
|
|
|
2983
2986
|
var import_outdent42 = require("outdent");
|
|
2984
2987
|
var import_pluralize = __toESM(require("pluralize"));
|
|
2985
2988
|
var categories = [
|
|
2989
|
+
"aspectRatios",
|
|
2986
2990
|
"zIndex",
|
|
2987
2991
|
"opacity",
|
|
2988
2992
|
"colors",
|
|
@@ -3502,20 +3506,14 @@ var generateGlobalCss = (ctx, sheet) => {
|
|
|
3502
3506
|
|
|
3503
3507
|
// src/artifacts/css/keyframe-css.ts
|
|
3504
3508
|
var import_core2 = require("@pandacss/core");
|
|
3505
|
-
var import_postcss = __toESM(require("postcss"));
|
|
3506
3509
|
function generateKeyframeCss(ctx, sheet) {
|
|
3507
3510
|
const { keyframes = {} } = ctx.config.theme ?? {};
|
|
3508
|
-
const
|
|
3511
|
+
const result = {};
|
|
3509
3512
|
for (const [name, definition] of Object.entries(keyframes)) {
|
|
3510
|
-
|
|
3511
|
-
import_postcss.default.atRule({
|
|
3512
|
-
name: "keyframes",
|
|
3513
|
-
params: name,
|
|
3514
|
-
nodes: (0, import_core2.toCss)(definition).root.nodes
|
|
3515
|
-
})
|
|
3516
|
-
);
|
|
3513
|
+
result[`@keyframes ${name}`] = definition;
|
|
3517
3514
|
}
|
|
3518
|
-
sheet.
|
|
3515
|
+
const css2 = (0, import_core2.stringify)(sheet.serialize(result));
|
|
3516
|
+
sheet.layers.tokens.append(css2);
|
|
3519
3517
|
void ctx.hooks.callHook("generator:css", "keyframes.css", "");
|
|
3520
3518
|
}
|
|
3521
3519
|
|
|
@@ -3776,7 +3774,7 @@ var generateStaticCss = (ctx, sheet) => {
|
|
|
3776
3774
|
|
|
3777
3775
|
// src/artifacts/css/token-css.ts
|
|
3778
3776
|
var import_core3 = require("@pandacss/core");
|
|
3779
|
-
var
|
|
3777
|
+
var import_postcss = __toESM(require("postcss"));
|
|
3780
3778
|
function generateTokenCss(ctx, sheet) {
|
|
3781
3779
|
const {
|
|
3782
3780
|
config: { cssVarRoot },
|
|
@@ -3790,11 +3788,11 @@ function generateTokenCss(ctx, sheet) {
|
|
|
3790
3788
|
if (Object.keys(varsObj).length === 0)
|
|
3791
3789
|
continue;
|
|
3792
3790
|
if (key === "base") {
|
|
3793
|
-
const
|
|
3791
|
+
const css3 = (0, import_core3.stringify)({ [root]: varsObj });
|
|
3794
3792
|
results.push(css3);
|
|
3795
3793
|
} else {
|
|
3796
3794
|
const keys = key.split(":");
|
|
3797
|
-
const
|
|
3795
|
+
const css3 = (0, import_core3.stringify)(varsObj);
|
|
3798
3796
|
const mapped = keys.map((key2) => conditions.get(key2)).filter(Boolean).map((condition) => {
|
|
3799
3797
|
const parent = (0, import_core3.extractParentSelectors)(condition);
|
|
3800
3798
|
return parent ? `&${parent}` : condition;
|
|
@@ -3812,15 +3810,15 @@ function generateTokenCss(ctx, sheet) {
|
|
|
3812
3810
|
void ctx.hooks.callHook("generator:css", "tokens.css", "");
|
|
3813
3811
|
}
|
|
3814
3812
|
function getDeepestRule(root, selectors) {
|
|
3815
|
-
const rule =
|
|
3813
|
+
const rule = import_postcss.default.rule({ selector: "" });
|
|
3816
3814
|
for (const selector of selectors) {
|
|
3817
3815
|
const last = getDeepestNode(rule);
|
|
3818
3816
|
const node = last ?? rule;
|
|
3819
3817
|
if (selector.startsWith("@")) {
|
|
3820
|
-
const atRule =
|
|
3818
|
+
const atRule = import_postcss.default.rule({ selector, nodes: [import_postcss.default.rule({ selector: `${root}&` })] });
|
|
3821
3819
|
node.append(atRule);
|
|
3822
3820
|
} else {
|
|
3823
|
-
node.append(
|
|
3821
|
+
node.append(import_postcss.default.rule({ selector }));
|
|
3824
3822
|
}
|
|
3825
3823
|
}
|
|
3826
3824
|
return rule;
|
|
@@ -3832,7 +3830,7 @@ function getDeepestNode(node) {
|
|
|
3832
3830
|
return node;
|
|
3833
3831
|
}
|
|
3834
3832
|
function cleanupSelectors(css2, varSelector) {
|
|
3835
|
-
const root =
|
|
3833
|
+
const root = import_postcss.default.parse(css2);
|
|
3836
3834
|
root.walkRules((rule) => {
|
|
3837
3835
|
const selectors = [];
|
|
3838
3836
|
rule.selectors.forEach((selector) => {
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/generator.ts
|
|
2
|
-
import { Context } from "@pandacss/core";
|
|
2
|
+
import { Context as Context2 } from "@pandacss/core";
|
|
3
3
|
import { match as match12 } from "ts-pattern";
|
|
4
4
|
|
|
5
5
|
// src/artifacts/setup-artifacts.ts
|
|
@@ -382,7 +382,7 @@ var astish_mjs_default = {
|
|
|
382
382
|
|
|
383
383
|
// src/artifacts/generated/helpers.mjs.json
|
|
384
384
|
var helpers_mjs_default = {
|
|
385
|
-
content: '// src/assert.ts\nfunction isObject(value) {\n return typeof value === "object" && value != null && !Array.isArray(value);\n}\n\n// src/compact.ts\nfunction compact(value) {\n return Object.fromEntries(Object.entries(value ?? {}).filter(([_, value2]) => value2 !== void 0));\n}\n\n// src/condition.ts\nvar isBaseCondition = (v) => v === "base";\nfunction filterBaseConditions(c) {\n return c.slice().filter((v) => !isBaseCondition(v));\n}\n\n// src/css-important.ts\nvar importantRegex =
|
|
385
|
+
content: '// src/assert.ts\nfunction isObject(value) {\n return typeof value === "object" && value != null && !Array.isArray(value);\n}\n\n// src/compact.ts\nfunction compact(value) {\n return Object.fromEntries(Object.entries(value ?? {}).filter(([_, value2]) => value2 !== void 0));\n}\n\n// src/condition.ts\nvar isBaseCondition = (v) => v === "base";\nfunction filterBaseConditions(c) {\n return c.slice().filter((v) => !isBaseCondition(v));\n}\n\n// src/css-important.ts\nvar importantRegex = /\\s*!(important)?/i;\nfunction isImportant(value) {\n return typeof value === "string" ? importantRegex.test(value) : false;\n}\nfunction withoutImportant(value) {\n return typeof value === "string" ? value.replace(importantRegex, "").trim() : value;\n}\nfunction withoutSpace(str) {\n return typeof str === "string" ? str.replaceAll(" ", "_") : str;\n}\n\n// src/hash.ts\nfunction toChar(code) {\n return String.fromCharCode(code + (code > 25 ? 39 : 97));\n}\nfunction toName(code) {\n let name = "";\n let x;\n for (x = Math.abs(code); x > 52; x = x / 52 | 0)\n name = toChar(x % 52) + name;\n return toChar(x % 52) + name;\n}\nfunction toPhash(h, x) {\n let i = x.length;\n while (i)\n h = h * 33 ^ x.charCodeAt(--i);\n return h;\n}\nfunction toHash(value) {\n return toName(toPhash(5381, value) >>> 0);\n}\n\n// src/merge-props.ts\nfunction mergeProps(...sources) {\n const objects = sources.filter(Boolean);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach((key) => {\n const prevValue = prev[key];\n const value = obj[key];\n if (isObject(prevValue) && isObject(value)) {\n prev[key] = mergeProps(prevValue, value);\n } else {\n prev[key] = value;\n }\n });\n return prev;\n }, {});\n}\n\n// src/walk-object.ts\nvar isNotNullish = (element) => element != null;\nfunction walkObject(target, predicate, options = {}) {\n const { stop, getKey } = options;\n function inner(value, path = []) {\n if (isObject(value) || Array.isArray(value)) {\n const result = {};\n for (const [prop, child] of Object.entries(value)) {\n const key = getKey?.(prop) ?? prop;\n const childPath = [...path, key];\n if (stop?.(value, childPath)) {\n return predicate(value, path);\n }\n const next = inner(child, childPath);\n if (isNotNullish(next)) {\n result[key] = next;\n }\n }\n return result;\n }\n return predicate(value, path);\n }\n return inner(target);\n}\nfunction mapObject(obj, fn) {\n if (Array.isArray(obj))\n return obj.map((value) => fn(value));\n if (!isObject(obj))\n return fn(obj);\n return walkObject(obj, (value) => fn(value));\n}\n\n// src/normalize-style-object.ts\nfunction toResponsiveObject(values, breakpoints) {\n return values.reduce((acc, current, index) => {\n const key = breakpoints[index];\n if (current != null) {\n acc[key] = current;\n }\n return acc;\n }, {});\n}\nfunction normalizeShorthand(styles, context) {\n const { hasShorthand, resolveShorthand } = context.utility;\n return walkObject(styles, (v) => v, {\n getKey: (prop) => {\n return hasShorthand ? resolveShorthand(prop) : prop;\n }\n });\n}\nfunction normalizeStyleObject(styles, context, shorthand = true) {\n const { utility, conditions } = context;\n const { hasShorthand, resolveShorthand } = utility;\n return walkObject(\n styles,\n (value) => {\n return Array.isArray(value) ? toResponsiveObject(value, conditions.breakpoints.keys) : value;\n },\n {\n stop: (value) => Array.isArray(value),\n getKey: shorthand ? (prop) => hasShorthand ? resolveShorthand(prop) : prop : void 0\n }\n );\n}\n\n// src/classname.ts\nvar fallbackCondition = {\n shift: (v) => v,\n finalize: (v) => v,\n breakpoints: { keys: [] }\n};\nvar sanitize = (value) => typeof value === "string" ? value.replaceAll(/[\\n\\s]+/g, " ") : value;\nfunction createCss(context) {\n const { utility, hash, conditions: conds = fallbackCondition } = context;\n const formatClassName = (str) => [utility.prefix, str].filter(Boolean).join("-");\n const hashFn = (conditions, className) => {\n let result;\n if (hash) {\n const baseArray = [...conds.finalize(conditions), className];\n result = formatClassName(toHash(baseArray.join(":")));\n } else {\n const baseArray = [...conds.finalize(conditions), formatClassName(className)];\n result = baseArray.join(":");\n }\n return result;\n };\n return (styleObject = {}) => {\n const normalizedObject = normalizeStyleObject(styleObject, context);\n const classNames = /* @__PURE__ */ new Set();\n walkObject(normalizedObject, (value, paths) => {\n const important = isImportant(value);\n if (value == null)\n return;\n const [prop, ...allConditions] = conds.shift(paths);\n const conditions = filterBaseConditions(allConditions);\n const transformed = utility.transform(prop, withoutImportant(sanitize(value)));\n let className = hashFn(conditions, transformed.className);\n if (important)\n className = `${className}!`;\n classNames.add(className);\n });\n return Array.from(classNames).join(" ");\n };\n}\nfunction compactStyles(...styles) {\n return styles.filter((style) => isObject(style) && Object.keys(compact(style)).length > 0);\n}\nfunction createMergeCss(context) {\n function resolve(styles) {\n const allStyles = compactStyles(...styles);\n if (allStyles.length === 1)\n return allStyles;\n return allStyles.map((style) => normalizeShorthand(style, context));\n }\n function mergeCss(...styles) {\n return mergeProps(...resolve(styles));\n }\n function assignCss(...styles) {\n return Object.assign({}, ...resolve(styles));\n }\n return { mergeCss, assignCss };\n}\n\n// src/memo.ts\nvar memo = (fn) => {\n const cache = /* @__PURE__ */ new Map();\n const get = (...args) => {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = fn(...args);\n cache.set(key, result);\n return result;\n };\n return get;\n};\n\n// src/hypenate-property.ts\nvar wordRegex = /([A-Z])/g;\nvar msRegex = /^ms-/;\nvar hypenateProperty = memo((property) => {\n if (property.startsWith("--"))\n return property;\n return property.replace(wordRegex, "-$1").replace(msRegex, "-ms-").toLowerCase();\n});\n\n// src/slot.ts\nvar getSlotRecipes = (recipe = {}) => {\n const init = (slot) => ({\n className: [recipe.className, slot].filter(Boolean).join("__"),\n base: recipe.base?.[slot] ?? {},\n variants: {},\n defaultVariants: recipe.defaultVariants ?? {},\n compoundVariants: recipe.compoundVariants ? getSlotCompoundVariant(recipe.compoundVariants, slot) : []\n });\n const slots = recipe.slots ?? [];\n const recipeParts = slots.map((slot) => [slot, init(slot)]);\n for (const [variantsKey, variantsSpec] of Object.entries(recipe.variants ?? {})) {\n for (const [variantKey, variantSpec] of Object.entries(variantsSpec)) {\n recipeParts.forEach(([slot, slotRecipe]) => {\n slotRecipe.variants[variantsKey] ??= {};\n slotRecipe.variants[variantsKey][variantKey] = variantSpec[slot] ?? {};\n });\n }\n }\n return Object.fromEntries(recipeParts);\n};\nvar getSlotCompoundVariant = (compoundVariants, slotName) => compoundVariants.filter((compoundVariant) => compoundVariant.css[slotName]).map((compoundVariant) => ({ ...compoundVariant, css: compoundVariant.css[slotName] }));\n\n// src/split-props.ts\nfunction splitProps(props, ...keys) {\n const descriptors = Object.getOwnPropertyDescriptors(props);\n const dKeys = Object.keys(descriptors);\n const split = (k) => {\n const clone = {};\n for (let i = 0; i < k.length; i++) {\n const key = k[i];\n if (descriptors[key]) {\n Object.defineProperty(clone, key, descriptors[key]);\n delete descriptors[key];\n }\n }\n return clone;\n };\n const fn = (key) => split(Array.isArray(key) ? key : dKeys.filter(key));\n return keys.map(fn).concat(split(dKeys));\n}\n\n// src/uniq.ts\nvar uniq = (...items) => items.filter(Boolean).reduce((acc, item) => Array.from(/* @__PURE__ */ new Set([...acc, ...item])), []);\nexport {\n compact,\n createCss,\n createMergeCss,\n filterBaseConditions,\n getSlotCompoundVariant,\n getSlotRecipes,\n hypenateProperty,\n isBaseCondition,\n isObject,\n mapObject,\n memo,\n mergeProps,\n splitProps,\n toHash,\n uniq,\n walkObject,\n withoutSpace\n};\n'
|
|
386
386
|
};
|
|
387
387
|
|
|
388
388
|
// src/artifacts/generated/normalize-html.mjs.json
|
|
@@ -2889,12 +2889,15 @@ function generatePropTypes(ctx) {
|
|
|
2889
2889
|
| 'visibility'
|
|
2890
2890
|
| 'wordBreak'
|
|
2891
2891
|
| 'writingMode'
|
|
2892
|
+
|
|
2892
2893
|
type WithEscapeHatch<T> = T | \`[\${string}]\`
|
|
2894
|
+
|
|
2893
2895
|
type FilterVagueString<Key, Value> = Value extends boolean
|
|
2894
2896
|
? Value
|
|
2895
2897
|
: Key extends StrictableProps
|
|
2896
2898
|
? Value extends \`\${infer _}\` ? Value : never
|
|
2897
2899
|
: Value
|
|
2900
|
+
|
|
2898
2901
|
type PropOrCondition<Key, Value> = ${match11(ctx.config).with(
|
|
2899
2902
|
{ strictTokens: true, strictPropertyValues: true },
|
|
2900
2903
|
() => "ConditionalValue<WithEscapeHatch<FilterVagueString<Key, Value>>>"
|
|
@@ -2947,6 +2950,7 @@ import { capitalize, unionType as unionType3 } from "@pandacss/shared";
|
|
|
2947
2950
|
import { outdent as outdent42 } from "outdent";
|
|
2948
2951
|
import pluralize from "pluralize";
|
|
2949
2952
|
var categories = [
|
|
2953
|
+
"aspectRatios",
|
|
2950
2954
|
"zIndex",
|
|
2951
2955
|
"opacity",
|
|
2952
2956
|
"colors",
|
|
@@ -3465,21 +3469,15 @@ var generateGlobalCss = (ctx, sheet) => {
|
|
|
3465
3469
|
};
|
|
3466
3470
|
|
|
3467
3471
|
// src/artifacts/css/keyframe-css.ts
|
|
3468
|
-
import {
|
|
3469
|
-
import postcss from "postcss";
|
|
3472
|
+
import { stringify as stringify3 } from "@pandacss/core";
|
|
3470
3473
|
function generateKeyframeCss(ctx, sheet) {
|
|
3471
3474
|
const { keyframes = {} } = ctx.config.theme ?? {};
|
|
3472
|
-
const
|
|
3475
|
+
const result = {};
|
|
3473
3476
|
for (const [name, definition] of Object.entries(keyframes)) {
|
|
3474
|
-
|
|
3475
|
-
postcss.atRule({
|
|
3476
|
-
name: "keyframes",
|
|
3477
|
-
params: name,
|
|
3478
|
-
nodes: toCss(definition).root.nodes
|
|
3479
|
-
})
|
|
3480
|
-
);
|
|
3477
|
+
result[`@keyframes ${name}`] = definition;
|
|
3481
3478
|
}
|
|
3482
|
-
sheet.
|
|
3479
|
+
const css2 = stringify3(sheet.serialize(result));
|
|
3480
|
+
sheet.layers.tokens.append(css2);
|
|
3483
3481
|
void ctx.hooks.callHook("generator:css", "keyframes.css", "");
|
|
3484
3482
|
}
|
|
3485
3483
|
|
|
@@ -3739,8 +3737,8 @@ var generateStaticCss = (ctx, sheet) => {
|
|
|
3739
3737
|
};
|
|
3740
3738
|
|
|
3741
3739
|
// src/artifacts/css/token-css.ts
|
|
3742
|
-
import { expandNestedCss, extractParentSelectors,
|
|
3743
|
-
import
|
|
3740
|
+
import { expandNestedCss, extractParentSelectors, stringify as stringify4 } from "@pandacss/core";
|
|
3741
|
+
import postcss from "postcss";
|
|
3744
3742
|
function generateTokenCss(ctx, sheet) {
|
|
3745
3743
|
const {
|
|
3746
3744
|
config: { cssVarRoot },
|
|
@@ -3754,11 +3752,11 @@ function generateTokenCss(ctx, sheet) {
|
|
|
3754
3752
|
if (Object.keys(varsObj).length === 0)
|
|
3755
3753
|
continue;
|
|
3756
3754
|
if (key === "base") {
|
|
3757
|
-
const
|
|
3755
|
+
const css3 = stringify4({ [root]: varsObj });
|
|
3758
3756
|
results.push(css3);
|
|
3759
3757
|
} else {
|
|
3760
3758
|
const keys = key.split(":");
|
|
3761
|
-
const
|
|
3759
|
+
const css3 = stringify4(varsObj);
|
|
3762
3760
|
const mapped = keys.map((key2) => conditions.get(key2)).filter(Boolean).map((condition) => {
|
|
3763
3761
|
const parent = extractParentSelectors(condition);
|
|
3764
3762
|
return parent ? `&${parent}` : condition;
|
|
@@ -3776,15 +3774,15 @@ function generateTokenCss(ctx, sheet) {
|
|
|
3776
3774
|
void ctx.hooks.callHook("generator:css", "tokens.css", "");
|
|
3777
3775
|
}
|
|
3778
3776
|
function getDeepestRule(root, selectors) {
|
|
3779
|
-
const rule =
|
|
3777
|
+
const rule = postcss.rule({ selector: "" });
|
|
3780
3778
|
for (const selector of selectors) {
|
|
3781
3779
|
const last = getDeepestNode(rule);
|
|
3782
3780
|
const node = last ?? rule;
|
|
3783
3781
|
if (selector.startsWith("@")) {
|
|
3784
|
-
const atRule =
|
|
3782
|
+
const atRule = postcss.rule({ selector, nodes: [postcss.rule({ selector: `${root}&` })] });
|
|
3785
3783
|
node.append(atRule);
|
|
3786
3784
|
} else {
|
|
3787
|
-
node.append(
|
|
3785
|
+
node.append(postcss.rule({ selector }));
|
|
3788
3786
|
}
|
|
3789
3787
|
}
|
|
3790
3788
|
return rule;
|
|
@@ -3796,7 +3794,7 @@ function getDeepestNode(node) {
|
|
|
3796
3794
|
return node;
|
|
3797
3795
|
}
|
|
3798
3796
|
function cleanupSelectors(css2, varSelector) {
|
|
3799
|
-
const root =
|
|
3797
|
+
const root = postcss.parse(css2);
|
|
3800
3798
|
root.walkRules((rule) => {
|
|
3801
3799
|
const selectors = [];
|
|
3802
3800
|
rule.selectors.forEach((selector) => {
|
|
@@ -3822,7 +3820,7 @@ function cleanupSelectors(css2, varSelector) {
|
|
|
3822
3820
|
}
|
|
3823
3821
|
|
|
3824
3822
|
// src/generator.ts
|
|
3825
|
-
var Generator = class extends
|
|
3823
|
+
var Generator = class extends Context2 {
|
|
3826
3824
|
constructor(conf) {
|
|
3827
3825
|
super(conf);
|
|
3828
3826
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pandacss/generator",
|
|
3
|
-
"version": "0.0.0-dev-
|
|
3
|
+
"version": "0.0.0-dev-20240112100832",
|
|
4
4
|
"description": "The css generator for css panda",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"pluralize": "8.0.0",
|
|
38
38
|
"postcss": "^8.4.31",
|
|
39
39
|
"ts-pattern": "5.0.5",
|
|
40
|
-
"@pandacss/core": "0.0.0-dev-
|
|
41
|
-
"@pandacss/is-valid-prop": "^0.0.0-dev-
|
|
42
|
-
"@pandacss/logger": "0.0.0-dev-
|
|
43
|
-
"@pandacss/shared": "0.0.0-dev-
|
|
44
|
-
"@pandacss/token-dictionary": "0.0.0-dev-
|
|
45
|
-
"@pandacss/types": "0.0.0-dev-
|
|
40
|
+
"@pandacss/core": "0.0.0-dev-20240112100832",
|
|
41
|
+
"@pandacss/is-valid-prop": "^0.0.0-dev-20240112100832",
|
|
42
|
+
"@pandacss/logger": "0.0.0-dev-20240112100832",
|
|
43
|
+
"@pandacss/shared": "0.0.0-dev-20240112100832",
|
|
44
|
+
"@pandacss/token-dictionary": "0.0.0-dev-20240112100832",
|
|
45
|
+
"@pandacss/types": "0.0.0-dev-20240112100832"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/pluralize": "0.0.33",
|