@pandacss/generator 0.0.0-dev-20240201185610 → 0.0.0-dev-20240201231741

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.
Files changed (3) hide show
  1. package/dist/index.js +123 -249
  2. package/dist/index.mjs +118 -244
  3. package/package.json +7 -7
package/dist/index.js CHANGED
@@ -35,7 +35,7 @@ __export(src_exports, {
35
35
  module.exports = __toCommonJS(src_exports);
36
36
 
37
37
  // src/generator.ts
38
- var import_core4 = require("@pandacss/core");
38
+ var import_core5 = require("@pandacss/core");
39
39
  var import_ts_pattern12 = require("ts-pattern");
40
40
 
41
41
  // src/artifacts/setup-artifacts.ts
@@ -420,7 +420,7 @@ var astish_mjs_default = {
420
420
 
421
421
  // src/artifacts/generated/helpers.mjs.json
422
422
  var helpers_mjs_default = {
423
- 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/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/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/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/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(utility.toHash(baseArray, toHash));\n } else {\n const baseArray = [...conds.finalize(conditions), formatClassName(className)];\n result = baseArray.join(":");\n }\n return result;\n };\n return memo((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: memo(mergeCss), assignCss };\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/is-css-function.ts\nvar fns = ["min", "max", "clamp", "calc"];\nvar fnRegExp = new RegExp(`^(${fns.join("|")})\\\\(.*\\\\)`);\nvar isCssFunction = (v) => typeof v === "string" && fnRegExp.test(v);\n\n// src/is-css-unit.ts\nvar lengthUnits = "cm,mm,Q,in,pc,pt,px,em,ex,ch,rem,lh,rlh,vw,vh,vmin,vmax,vb,vi,svw,svh,lvw,lvh,dvw,dvh,cqw,cqh,cqi,cqb,cqmin,cqmax,%";\nvar lengthUnitsPattern = `(?:${lengthUnits.split(",").join("|")})`;\nvar lengthRegExp = new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`);\nvar isCssUnit = (v) => typeof v === "string" && lengthRegExp.test(v);\n\n// src/is-css-var.ts\nvar isCssVar = (v) => typeof v === "string" && /^var\\(--.+\\)$/.test(v);\n\n// src/pattern-fns.ts\nvar patternFns = {\n map: mapObject,\n isCssFunction,\n isCssVar,\n isCssUnit\n};\nvar getPatternStyles = (pattern, styles) => {\n if (!pattern.defaultValues)\n return styles;\n const defaults = typeof pattern.defaultValues === "function" ? pattern.defaultValues(styles) : pattern.defaultValues;\n return Object.assign({}, defaults, compact(styles));\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 getPatternStyles,\n getSlotCompoundVariant,\n getSlotRecipes,\n hypenateProperty,\n isBaseCondition,\n isObject,\n mapObject,\n memo,\n mergeProps,\n patternFns,\n splitProps,\n toHash,\n uniq,\n walkObject,\n withoutSpace\n};\n'
423
+ 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/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/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/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/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, child) ?? 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 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(utility.toHash(baseArray, toHash));\n } else {\n const baseArray = [...conds.finalize(conditions), formatClassName(className)];\n result = baseArray.join(":");\n }\n return result;\n };\n return memo((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) => normalizeStyleObject(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: memo(mergeCss), assignCss };\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/is-css-function.ts\nvar fns = ["min", "max", "clamp", "calc"];\nvar fnRegExp = new RegExp(`^(${fns.join("|")})\\\\(.*\\\\)`);\nvar isCssFunction = (v) => typeof v === "string" && fnRegExp.test(v);\n\n// src/is-css-unit.ts\nvar lengthUnits = "cm,mm,Q,in,pc,pt,px,em,ex,ch,rem,lh,rlh,vw,vh,vmin,vmax,vb,vi,svw,svh,lvw,lvh,dvw,dvh,cqw,cqh,cqi,cqb,cqmin,cqmax,%";\nvar lengthUnitsPattern = `(?:${lengthUnits.split(",").join("|")})`;\nvar lengthRegExp = new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`);\nvar isCssUnit = (v) => typeof v === "string" && lengthRegExp.test(v);\n\n// src/is-css-var.ts\nvar isCssVar = (v) => typeof v === "string" && /^var\\(--.+\\)$/.test(v);\n\n// src/pattern-fns.ts\nvar patternFns = {\n map: mapObject,\n isCssFunction,\n isCssVar,\n isCssUnit\n};\nvar getPatternStyles = (pattern, styles) => {\n if (!pattern.defaultValues)\n return styles;\n const defaults = typeof pattern.defaultValues === "function" ? pattern.defaultValues(styles) : pattern.defaultValues;\n return Object.assign({}, defaults, compact(styles));\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 getPatternStyles,\n getSlotCompoundVariant,\n getSlotRecipes,\n hypenateProperty,\n isBaseCondition,\n isObject,\n mapObject,\n memo,\n mergeProps,\n patternFns,\n splitProps,\n toHash,\n uniq,\n walkObject,\n withoutSpace\n};\n'
424
424
  };
425
425
 
426
426
  // src/artifacts/generated/normalize-html.mjs.json
@@ -3520,11 +3520,11 @@ function generateKeyframeCss(ctx, sheet) {
3520
3520
  for (const [name, definition] of Object.entries(keyframes)) {
3521
3521
  result[`@keyframes ${name}`] = definition;
3522
3522
  }
3523
- let css2 = (0, import_core2.stringify)(sheet.serialize(result));
3523
+ let css = (0, import_core2.stringify)(sheet.serialize(result));
3524
3524
  if (ctx.hooks["cssgen:done"]) {
3525
- css2 = ctx.hooks["cssgen:done"]({ artifact: "keyframes", content: css2 }) ?? css2;
3525
+ css = ctx.hooks["cssgen:done"]({ artifact: "keyframes", content: css }) ?? css;
3526
3526
  }
3527
- sheet.layers.tokens.append(css2);
3527
+ sheet.layers.tokens.append(css);
3528
3528
  }
3529
3529
 
3530
3530
  // src/artifacts/css/parser-css.ts
@@ -3536,8 +3536,8 @@ var generateParserCss = (ctx, decoder) => {
3536
3536
  const { minify, optimize } = ctx.config;
3537
3537
  sheet.processDecoder(decoder);
3538
3538
  try {
3539
- const css2 = sheet.toCss({ minify, optimize });
3540
- return css2;
3539
+ const css = sheet.toCss({ minify, optimize });
3540
+ return css;
3541
3541
  } catch (err) {
3542
3542
  import_logger.logger.error("serializer:css", "Failed to serialize CSS: " + err);
3543
3543
  return "";
@@ -3545,234 +3545,108 @@ var generateParserCss = (ctx, decoder) => {
3545
3545
  };
3546
3546
 
3547
3547
  // src/artifacts/css/reset-css.ts
3548
+ var import_core3 = require("@pandacss/core");
3548
3549
  var import_shared4 = require("@pandacss/shared");
3549
- var css = String.raw;
3550
3550
  function generateResetCss(ctx, sheet) {
3551
3551
  const { preflight } = ctx.config;
3552
3552
  const scope = (0, import_shared4.isObject)(preflight) ? preflight.scope : void 0;
3553
3553
  const selector = scope ? `${scope} ` : "";
3554
- let output = css`
3555
- ${selector}* {
3556
- margin: 0;
3557
- padding: 0;
3558
- font: inherit;
3559
- }
3560
-
3561
- ${selector}*,
3562
- ${selector}*::before,
3563
- ${selector}*::after {
3564
- box-sizing: border-box;
3565
- border-width: 0;
3566
- border-style: solid;
3567
- border-color: var(--global-color-border, currentColor);
3568
- }
3569
-
3570
- ${scope || "html"} {
3571
- line-height: 1.5;
3572
- --font-fallback: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
3573
- 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
3574
- 'Noto Color Emoji';
3575
- -webkit-text-size-adjust: 100%;
3576
- -webkit-font-smoothing: antialiased;
3577
- -moz-osx-font-smoothing: grayscale;
3578
- -moz-tab-size: 4;
3579
- tab-size: 4;
3580
- font-family: var(--global-font-body, var(--font-fallback));
3581
- }
3582
-
3583
- ${selector}hr {
3584
- height: 0;
3585
- color: inherit;
3586
- border-top-width: 1px;
3587
- }
3588
-
3589
- body {
3590
- height: 100%;
3591
- line-height: inherit;
3592
- }
3593
-
3594
- ${selector}img {
3595
- border-style: none;
3596
- }
3597
-
3598
- ${selector}img,
3599
- ${selector}svg,
3600
- ${selector}video,
3601
- ${selector}canvas,
3602
- ${selector}audio,
3603
- ${selector}iframe,
3604
- ${selector}embed,
3605
- ${selector}object {
3606
- display: block;
3607
- vertical-align: middle;
3608
- }
3609
-
3610
- ${selector}img,
3611
- ${selector}video {
3612
- max-width: 100%;
3613
- height: auto;
3614
- }
3615
-
3616
- ${selector}p,
3617
- ${selector}h1,
3618
- ${selector}h2,
3619
- ${selector}h3,
3620
- ${selector}h4,
3621
- ${selector}h5,
3622
- ${selector}h6 {
3623
- overflow-wrap: break-word;
3624
- }
3625
-
3626
- ${selector}ol,
3627
- ${selector}ul {
3628
- list-style: none;
3629
- }
3630
-
3631
- ${selector}code,
3632
- ${selector}kbd,
3633
- ${selector}pre,
3634
- ${selector}samp {
3635
- font-size: 1em;
3636
- }
3637
-
3638
- ${selector}button,
3639
- ${selector}[type='button'],
3640
- ${selector}[type='reset'],
3641
- ${selector}[type='submit'] {
3642
- -webkit-appearance: button;
3643
- background-color: transparent;
3644
- background-image: none;
3645
- }
3646
-
3647
- ${selector}button,
3648
- ${selector}input,
3649
- ${selector}optgroup,
3650
- ${selector}select,
3651
- ${selector}textarea {
3652
- color: inherit;
3653
- }
3654
-
3655
- ${selector}button,
3656
- ${selector}select {
3657
- text-transform: none;
3658
- }
3659
-
3660
- ${selector}table {
3661
- text-indent: 0;
3662
- border-color: inherit;
3663
- border-collapse: collapse;
3664
- }
3665
-
3666
- ${selector}input::placeholder,
3667
- ${selector}textarea::placeholder {
3668
- opacity: 1;
3669
- color: var(--global-color-placeholder, #9ca3af);
3670
- }
3671
-
3672
- ${selector}textarea {
3673
- resize: vertical;
3674
- }
3675
-
3676
- ${selector}summary {
3677
- display: list-item;
3678
- }
3679
-
3680
- ${selector}small {
3681
- font-size: 80%;
3682
- }
3683
-
3684
- ${selector}sub,
3685
- ${selector}sup {
3686
- font-size: 75%;
3687
- line-height: 0;
3688
- position: relative;
3689
- vertical-align: baseline;
3690
- }
3691
-
3692
- ${selector}sub {
3693
- bottom: -0.25em;
3694
- }
3695
-
3696
- ${selector}sup {
3697
- top: -0.5em;
3698
- }
3699
-
3700
- ${selector}dialog {
3701
- padding: 0;
3702
- }
3703
-
3704
- ${selector}a {
3705
- color: inherit;
3706
- text-decoration: inherit;
3707
- }
3708
-
3709
- ${selector}abbr:where([title]) {
3710
- text-decoration: underline dotted;
3711
- }
3712
-
3713
- ${selector}b,
3714
- ${selector}strong {
3715
- font-weight: bolder;
3716
- }
3717
-
3718
- ${selector}code,
3719
- ${selector}kbd,
3720
- ${selector}samp,
3721
- ${selector}pre {
3722
- font-size: 1em;
3723
- --font-mono-fallback: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New';
3724
- font-family: var(--global-font-mono, var(--font-mono-fallback));
3725
- }
3726
-
3727
-
3728
- ${selector}input[type="text"],
3729
- ${selector}input[type="email"],
3730
- ${selector}input[type="search"],
3731
- ${selector}input[type="password"] {
3732
- -webkit-appearance: none;
3733
- -moz-appearance: none;
3734
- }
3735
-
3736
- ${selector}input[type='search'] {
3737
- -webkit-appearance: textfield;
3738
- outline-offset: -2px;
3739
- }
3740
-
3741
- ${selector}::-webkit-search-decoration,
3742
- ${selector}::-webkit-search-cancel-button {
3743
- -webkit-appearance: none;
3744
- }
3745
-
3746
- ${selector}::-webkit-file-upload-button {
3747
- -webkit-appearance: button;
3748
- font: inherit;
3749
- }
3750
-
3751
- ${selector}input[type="number"]::-webkit-inner-spin-button,
3752
- ${selector}input[type="number"]::-webkit-outer-spin-button {
3753
- height: auto;
3754
- }
3755
-
3756
- ${selector}input[type='number']{
3757
- -moz-appearance: textfield;
3758
- }
3759
-
3760
- ${selector}:-moz-ui-invalid {
3761
- box-shadow: none;
3762
- }
3763
-
3764
- ${selector}:-moz-focusring {
3765
- outline: auto;
3766
- }
3767
-
3768
- ${selector}[hidden] {
3769
- display: none !important;
3770
- }
3771
- `;
3772
- if (ctx.hooks["cssgen:done"]) {
3773
- output = ctx.hooks["cssgen:done"]({ artifact: "reset", content: output }) ?? output;
3554
+ const scoped = {
3555
+ "*": { margin: "0px", padding: "0px", font: "inherit" },
3556
+ "*, *::before, *::after": {
3557
+ boxSizing: "border-box",
3558
+ borderWidth: "0px",
3559
+ borderStyle: "solid",
3560
+ borderColor: "var(--global-color-border, currentColor)"
3561
+ },
3562
+ hr: { height: "0px", color: "inherit", borderTopWidth: "1px" },
3563
+ body: { height: "100%", lineHeight: "inherit" },
3564
+ img: { borderStyle: "none" },
3565
+ "img, svg, video, canvas, audio, iframe, embed, object": {
3566
+ display: "block",
3567
+ verticalAlign: "middle"
3568
+ },
3569
+ "img, video": { maxWidth: "100%", height: "auto" },
3570
+ "p, h1, h2, h3, h4, h5, h6": { overflowWrap: "break-word" },
3571
+ "ol, ul": { listStyle: "none" },
3572
+ "code, kbd, pre, samp": { fontSize: "1em" },
3573
+ "button, [type='button'], [type='reset'], [type='submit']": {
3574
+ WebkitAppearance: "button",
3575
+ backgroundColor: "transparent",
3576
+ backgroundImage: "none"
3577
+ },
3578
+ "button, input, optgroup, select, textarea": { color: "inherit" },
3579
+ "button, select": { textTransform: "none" },
3580
+ table: {
3581
+ textIndent: "0px",
3582
+ borderColor: "inherit",
3583
+ borderCollapse: "collapse"
3584
+ },
3585
+ "input::placeholder, textarea::placeholder": {
3586
+ opacity: 1,
3587
+ color: "var(--global-color-placeholder, #9ca3af)"
3588
+ },
3589
+ textarea: { resize: "vertical" },
3590
+ summary: { display: "list-item" },
3591
+ small: { fontSize: "80%" },
3592
+ "sub, sup": {
3593
+ fontSize: "75%",
3594
+ lineHeight: 0,
3595
+ position: "relative",
3596
+ verticalAlign: "baseline"
3597
+ },
3598
+ sub: { bottom: "-0.25em" },
3599
+ sup: { top: "-0.5em" },
3600
+ dialog: { padding: "0px" },
3601
+ a: { color: "inherit", textDecoration: "inherit" },
3602
+ "abbr:where([title])": { textDecoration: "underline dotted" },
3603
+ "b, strong": { fontWeight: "bolder" },
3604
+ "code, kbd, samp, pre": {
3605
+ fontSize: "1em",
3606
+ "--font-mono-fallback": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New'",
3607
+ fontFamily: "var(--global-font-mono, var(--font-mono-fallback))"
3608
+ },
3609
+ 'input[type="text"], input[type="email"], input[type="search"], input[type="password"]': {
3610
+ WebkitAppearance: "none",
3611
+ MozAppearance: "none"
3612
+ },
3613
+ "input[type='search']": {
3614
+ WebkitAppearance: "textfield",
3615
+ outlineOffset: "-2px"
3616
+ },
3617
+ "::-webkit-search-decoration, ::-webkit-search-cancel-button": {
3618
+ WebkitAppearance: "none"
3619
+ },
3620
+ "::-webkit-file-upload-button": {
3621
+ WebkitAppearance: "button",
3622
+ font: "inherit"
3623
+ },
3624
+ 'input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button': {
3625
+ height: "auto"
3626
+ },
3627
+ "input[type='number']": { MozAppearance: "textfield" },
3628
+ ":-moz-ui-invalid": { boxShadow: "none" },
3629
+ ":-moz-focusring": { outline: "auto" },
3630
+ "[hidden]": { display: "none !important" }
3631
+ };
3632
+ const reset = {
3633
+ [scope || "html"]: {
3634
+ lineHeight: 1.5,
3635
+ "--font-fallback": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
3636
+ WebkitTextSizeAdjust: "100%",
3637
+ WebkitFontSmoothing: "antialiased",
3638
+ MozOsxFontSmoothing: "grayscale",
3639
+ MozTabSize: "[4]",
3640
+ tabSize: "[4]",
3641
+ fontFamily: "var(--global-font-body, var(--font-fallback))"
3642
+ }
3643
+ };
3644
+ if (selector) {
3645
+ reset[selector] = scoped;
3646
+ } else {
3647
+ Object.assign(reset, scoped);
3774
3648
  }
3775
- sheet.layers.reset.append(output);
3649
+ sheet.processResetCss(reset);
3776
3650
  }
3777
3651
 
3778
3652
  // src/artifacts/css/static-css.ts
@@ -3781,16 +3655,16 @@ var generateStaticCss = (ctx, sheet) => {
3781
3655
  const engine = staticCss.process(ctx.config.staticCss ?? {}, sheet);
3782
3656
  if (!sheet) {
3783
3657
  const { optimize = true, minify } = config;
3784
- let css2 = engine.sheet.toCss({ optimize, minify });
3658
+ let css = engine.sheet.toCss({ optimize, minify });
3785
3659
  if (ctx.hooks["cssgen:done"]) {
3786
- css2 = ctx.hooks["cssgen:done"]({ artifact: "static", content: css2 }) ?? css2;
3660
+ css = ctx.hooks["cssgen:done"]({ artifact: "static", content: css }) ?? css;
3787
3661
  }
3788
- return css2;
3662
+ return css;
3789
3663
  }
3790
3664
  };
3791
3665
 
3792
3666
  // src/artifacts/css/token-css.ts
3793
- var import_core3 = require("@pandacss/core");
3667
+ var import_core4 = require("@pandacss/core");
3794
3668
  var import_postcss = __toESM(require("postcss"));
3795
3669
  function generateTokenCss(ctx, sheet) {
3796
3670
  const {
@@ -3805,28 +3679,28 @@ function generateTokenCss(ctx, sheet) {
3805
3679
  if (Object.keys(varsObj).length === 0)
3806
3680
  continue;
3807
3681
  if (key === "base") {
3808
- const css3 = (0, import_core3.stringify)({ [root]: varsObj });
3809
- results.push(css3);
3682
+ const css2 = (0, import_core4.stringify)({ [root]: varsObj });
3683
+ results.push(css2);
3810
3684
  } else {
3811
3685
  const keys = key.split(":");
3812
- const css3 = (0, import_core3.stringify)(varsObj);
3686
+ const css2 = (0, import_core4.stringify)(varsObj);
3813
3687
  const mapped = keys.map((key2) => conditions.get(key2)).filter(Boolean).map((condition) => {
3814
- const parent = (0, import_core3.extractParentSelectors)(condition);
3688
+ const parent = (0, import_core4.extractParentSelectors)(condition);
3815
3689
  return parent ? `&${parent}` : condition;
3816
3690
  });
3817
3691
  const rule = getDeepestRule(root, mapped);
3818
3692
  if (!rule)
3819
3693
  continue;
3820
- getDeepestNode(rule)?.append(css3);
3821
- results.push((0, import_core3.expandNestedCss)(rule.toString()));
3694
+ getDeepestNode(rule)?.append(css2);
3695
+ results.push((0, import_core4.expandNestedCss)(rule.toString()));
3822
3696
  }
3823
3697
  }
3824
- let css2 = results.join("\n\n");
3825
- css2 = "\n\n" + cleanupSelectors(css2, root);
3698
+ let css = results.join("\n\n");
3699
+ css = "\n\n" + cleanupSelectors(css, root);
3826
3700
  if (ctx.hooks["cssgen:done"]) {
3827
- css2 = ctx.hooks["cssgen:done"]({ artifact: "tokens", content: css2 }) ?? css2;
3701
+ css = ctx.hooks["cssgen:done"]({ artifact: "tokens", content: css }) ?? css;
3828
3702
  }
3829
- sheet.layers.tokens.append(css2);
3703
+ sheet.layers.tokens.append(css);
3830
3704
  }
3831
3705
  function getDeepestRule(root, selectors) {
3832
3706
  const rule = import_postcss.default.rule({ selector: "" });
@@ -3848,8 +3722,8 @@ function getDeepestNode(node) {
3848
3722
  }
3849
3723
  return node;
3850
3724
  }
3851
- function cleanupSelectors(css2, varSelector) {
3852
- const root = import_postcss.default.parse(css2);
3725
+ function cleanupSelectors(css, varSelector) {
3726
+ const root = import_postcss.default.parse(css);
3853
3727
  root.walkRules((rule) => {
3854
3728
  const selectors = [];
3855
3729
  rule.selectors.forEach((selector) => {
@@ -3875,7 +3749,7 @@ function cleanupSelectors(css2, varSelector) {
3875
3749
  }
3876
3750
 
3877
3751
  // src/generator.ts
3878
- var Generator = class extends import_core4.Context {
3752
+ var Generator = class extends import_core5.Context {
3879
3753
  constructor(conf) {
3880
3754
  super(conf);
3881
3755
  }
@@ -3909,14 +3783,14 @@ var Generator = class extends import_core4.Context {
3909
3783
  };
3910
3784
  getCss = (stylesheet) => {
3911
3785
  const sheet = stylesheet ?? this.createSheet();
3912
- let css2 = sheet.toCss({
3786
+ let css = sheet.toCss({
3913
3787
  optimize: true,
3914
3788
  minify: this.config.minify
3915
3789
  });
3916
3790
  if (this.hooks["cssgen:done"]) {
3917
- css2 = this.hooks["cssgen:done"]({ artifact: "styles.css", content: css2 }) ?? css2;
3791
+ css = this.hooks["cssgen:done"]({ artifact: "styles.css", content: css }) ?? css;
3918
3792
  }
3919
- return css2;
3793
+ return css;
3920
3794
  };
3921
3795
  };
3922
3796
  // Annotate the CommonJS export names for ESM import in node:
package/dist/index.mjs CHANGED
@@ -384,7 +384,7 @@ var astish_mjs_default = {
384
384
 
385
385
  // src/artifacts/generated/helpers.mjs.json
386
386
  var helpers_mjs_default = {
387
- 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/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/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/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/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(utility.toHash(baseArray, toHash));\n } else {\n const baseArray = [...conds.finalize(conditions), formatClassName(className)];\n result = baseArray.join(":");\n }\n return result;\n };\n return memo((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: memo(mergeCss), assignCss };\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/is-css-function.ts\nvar fns = ["min", "max", "clamp", "calc"];\nvar fnRegExp = new RegExp(`^(${fns.join("|")})\\\\(.*\\\\)`);\nvar isCssFunction = (v) => typeof v === "string" && fnRegExp.test(v);\n\n// src/is-css-unit.ts\nvar lengthUnits = "cm,mm,Q,in,pc,pt,px,em,ex,ch,rem,lh,rlh,vw,vh,vmin,vmax,vb,vi,svw,svh,lvw,lvh,dvw,dvh,cqw,cqh,cqi,cqb,cqmin,cqmax,%";\nvar lengthUnitsPattern = `(?:${lengthUnits.split(",").join("|")})`;\nvar lengthRegExp = new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`);\nvar isCssUnit = (v) => typeof v === "string" && lengthRegExp.test(v);\n\n// src/is-css-var.ts\nvar isCssVar = (v) => typeof v === "string" && /^var\\(--.+\\)$/.test(v);\n\n// src/pattern-fns.ts\nvar patternFns = {\n map: mapObject,\n isCssFunction,\n isCssVar,\n isCssUnit\n};\nvar getPatternStyles = (pattern, styles) => {\n if (!pattern.defaultValues)\n return styles;\n const defaults = typeof pattern.defaultValues === "function" ? pattern.defaultValues(styles) : pattern.defaultValues;\n return Object.assign({}, defaults, compact(styles));\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 getPatternStyles,\n getSlotCompoundVariant,\n getSlotRecipes,\n hypenateProperty,\n isBaseCondition,\n isObject,\n mapObject,\n memo,\n mergeProps,\n patternFns,\n splitProps,\n toHash,\n uniq,\n walkObject,\n withoutSpace\n};\n'
387
+ 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/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/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/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/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, child) ?? 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 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(utility.toHash(baseArray, toHash));\n } else {\n const baseArray = [...conds.finalize(conditions), formatClassName(className)];\n result = baseArray.join(":");\n }\n return result;\n };\n return memo((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) => normalizeStyleObject(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: memo(mergeCss), assignCss };\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/is-css-function.ts\nvar fns = ["min", "max", "clamp", "calc"];\nvar fnRegExp = new RegExp(`^(${fns.join("|")})\\\\(.*\\\\)`);\nvar isCssFunction = (v) => typeof v === "string" && fnRegExp.test(v);\n\n// src/is-css-unit.ts\nvar lengthUnits = "cm,mm,Q,in,pc,pt,px,em,ex,ch,rem,lh,rlh,vw,vh,vmin,vmax,vb,vi,svw,svh,lvw,lvh,dvw,dvh,cqw,cqh,cqi,cqb,cqmin,cqmax,%";\nvar lengthUnitsPattern = `(?:${lengthUnits.split(",").join("|")})`;\nvar lengthRegExp = new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${lengthUnitsPattern}$`);\nvar isCssUnit = (v) => typeof v === "string" && lengthRegExp.test(v);\n\n// src/is-css-var.ts\nvar isCssVar = (v) => typeof v === "string" && /^var\\(--.+\\)$/.test(v);\n\n// src/pattern-fns.ts\nvar patternFns = {\n map: mapObject,\n isCssFunction,\n isCssVar,\n isCssUnit\n};\nvar getPatternStyles = (pattern, styles) => {\n if (!pattern.defaultValues)\n return styles;\n const defaults = typeof pattern.defaultValues === "function" ? pattern.defaultValues(styles) : pattern.defaultValues;\n return Object.assign({}, defaults, compact(styles));\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 getPatternStyles,\n getSlotCompoundVariant,\n getSlotRecipes,\n hypenateProperty,\n isBaseCondition,\n isObject,\n mapObject,\n memo,\n mergeProps,\n patternFns,\n splitProps,\n toHash,\n uniq,\n walkObject,\n withoutSpace\n};\n'
388
388
  };
389
389
 
390
390
  // src/artifacts/generated/normalize-html.mjs.json
@@ -3484,11 +3484,11 @@ function generateKeyframeCss(ctx, sheet) {
3484
3484
  for (const [name, definition] of Object.entries(keyframes)) {
3485
3485
  result[`@keyframes ${name}`] = definition;
3486
3486
  }
3487
- let css2 = stringify3(sheet.serialize(result));
3487
+ let css = stringify3(sheet.serialize(result));
3488
3488
  if (ctx.hooks["cssgen:done"]) {
3489
- css2 = ctx.hooks["cssgen:done"]({ artifact: "keyframes", content: css2 }) ?? css2;
3489
+ css = ctx.hooks["cssgen:done"]({ artifact: "keyframes", content: css }) ?? css;
3490
3490
  }
3491
- sheet.layers.tokens.append(css2);
3491
+ sheet.layers.tokens.append(css);
3492
3492
  }
3493
3493
 
3494
3494
  // src/artifacts/css/parser-css.ts
@@ -3500,8 +3500,8 @@ var generateParserCss = (ctx, decoder) => {
3500
3500
  const { minify, optimize } = ctx.config;
3501
3501
  sheet.processDecoder(decoder);
3502
3502
  try {
3503
- const css2 = sheet.toCss({ minify, optimize });
3504
- return css2;
3503
+ const css = sheet.toCss({ minify, optimize });
3504
+ return css;
3505
3505
  } catch (err) {
3506
3506
  logger.error("serializer:css", "Failed to serialize CSS: " + err);
3507
3507
  return "";
@@ -3509,234 +3509,108 @@ var generateParserCss = (ctx, decoder) => {
3509
3509
  };
3510
3510
 
3511
3511
  // src/artifacts/css/reset-css.ts
3512
+ import "@pandacss/core";
3512
3513
  import { isObject } from "@pandacss/shared";
3513
- var css = String.raw;
3514
3514
  function generateResetCss(ctx, sheet) {
3515
3515
  const { preflight } = ctx.config;
3516
3516
  const scope = isObject(preflight) ? preflight.scope : void 0;
3517
3517
  const selector = scope ? `${scope} ` : "";
3518
- let output = css`
3519
- ${selector}* {
3520
- margin: 0;
3521
- padding: 0;
3522
- font: inherit;
3523
- }
3524
-
3525
- ${selector}*,
3526
- ${selector}*::before,
3527
- ${selector}*::after {
3528
- box-sizing: border-box;
3529
- border-width: 0;
3530
- border-style: solid;
3531
- border-color: var(--global-color-border, currentColor);
3532
- }
3533
-
3534
- ${scope || "html"} {
3535
- line-height: 1.5;
3536
- --font-fallback: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
3537
- 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
3538
- 'Noto Color Emoji';
3539
- -webkit-text-size-adjust: 100%;
3540
- -webkit-font-smoothing: antialiased;
3541
- -moz-osx-font-smoothing: grayscale;
3542
- -moz-tab-size: 4;
3543
- tab-size: 4;
3544
- font-family: var(--global-font-body, var(--font-fallback));
3545
- }
3546
-
3547
- ${selector}hr {
3548
- height: 0;
3549
- color: inherit;
3550
- border-top-width: 1px;
3551
- }
3552
-
3553
- body {
3554
- height: 100%;
3555
- line-height: inherit;
3556
- }
3557
-
3558
- ${selector}img {
3559
- border-style: none;
3560
- }
3561
-
3562
- ${selector}img,
3563
- ${selector}svg,
3564
- ${selector}video,
3565
- ${selector}canvas,
3566
- ${selector}audio,
3567
- ${selector}iframe,
3568
- ${selector}embed,
3569
- ${selector}object {
3570
- display: block;
3571
- vertical-align: middle;
3572
- }
3573
-
3574
- ${selector}img,
3575
- ${selector}video {
3576
- max-width: 100%;
3577
- height: auto;
3578
- }
3579
-
3580
- ${selector}p,
3581
- ${selector}h1,
3582
- ${selector}h2,
3583
- ${selector}h3,
3584
- ${selector}h4,
3585
- ${selector}h5,
3586
- ${selector}h6 {
3587
- overflow-wrap: break-word;
3588
- }
3589
-
3590
- ${selector}ol,
3591
- ${selector}ul {
3592
- list-style: none;
3593
- }
3594
-
3595
- ${selector}code,
3596
- ${selector}kbd,
3597
- ${selector}pre,
3598
- ${selector}samp {
3599
- font-size: 1em;
3600
- }
3601
-
3602
- ${selector}button,
3603
- ${selector}[type='button'],
3604
- ${selector}[type='reset'],
3605
- ${selector}[type='submit'] {
3606
- -webkit-appearance: button;
3607
- background-color: transparent;
3608
- background-image: none;
3609
- }
3610
-
3611
- ${selector}button,
3612
- ${selector}input,
3613
- ${selector}optgroup,
3614
- ${selector}select,
3615
- ${selector}textarea {
3616
- color: inherit;
3617
- }
3618
-
3619
- ${selector}button,
3620
- ${selector}select {
3621
- text-transform: none;
3622
- }
3623
-
3624
- ${selector}table {
3625
- text-indent: 0;
3626
- border-color: inherit;
3627
- border-collapse: collapse;
3628
- }
3629
-
3630
- ${selector}input::placeholder,
3631
- ${selector}textarea::placeholder {
3632
- opacity: 1;
3633
- color: var(--global-color-placeholder, #9ca3af);
3634
- }
3635
-
3636
- ${selector}textarea {
3637
- resize: vertical;
3638
- }
3639
-
3640
- ${selector}summary {
3641
- display: list-item;
3642
- }
3643
-
3644
- ${selector}small {
3645
- font-size: 80%;
3646
- }
3647
-
3648
- ${selector}sub,
3649
- ${selector}sup {
3650
- font-size: 75%;
3651
- line-height: 0;
3652
- position: relative;
3653
- vertical-align: baseline;
3654
- }
3655
-
3656
- ${selector}sub {
3657
- bottom: -0.25em;
3658
- }
3659
-
3660
- ${selector}sup {
3661
- top: -0.5em;
3662
- }
3663
-
3664
- ${selector}dialog {
3665
- padding: 0;
3666
- }
3667
-
3668
- ${selector}a {
3669
- color: inherit;
3670
- text-decoration: inherit;
3671
- }
3672
-
3673
- ${selector}abbr:where([title]) {
3674
- text-decoration: underline dotted;
3675
- }
3676
-
3677
- ${selector}b,
3678
- ${selector}strong {
3679
- font-weight: bolder;
3680
- }
3681
-
3682
- ${selector}code,
3683
- ${selector}kbd,
3684
- ${selector}samp,
3685
- ${selector}pre {
3686
- font-size: 1em;
3687
- --font-mono-fallback: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New';
3688
- font-family: var(--global-font-mono, var(--font-mono-fallback));
3689
- }
3690
-
3691
-
3692
- ${selector}input[type="text"],
3693
- ${selector}input[type="email"],
3694
- ${selector}input[type="search"],
3695
- ${selector}input[type="password"] {
3696
- -webkit-appearance: none;
3697
- -moz-appearance: none;
3698
- }
3699
-
3700
- ${selector}input[type='search'] {
3701
- -webkit-appearance: textfield;
3702
- outline-offset: -2px;
3703
- }
3704
-
3705
- ${selector}::-webkit-search-decoration,
3706
- ${selector}::-webkit-search-cancel-button {
3707
- -webkit-appearance: none;
3708
- }
3709
-
3710
- ${selector}::-webkit-file-upload-button {
3711
- -webkit-appearance: button;
3712
- font: inherit;
3713
- }
3714
-
3715
- ${selector}input[type="number"]::-webkit-inner-spin-button,
3716
- ${selector}input[type="number"]::-webkit-outer-spin-button {
3717
- height: auto;
3718
- }
3719
-
3720
- ${selector}input[type='number']{
3721
- -moz-appearance: textfield;
3722
- }
3723
-
3724
- ${selector}:-moz-ui-invalid {
3725
- box-shadow: none;
3726
- }
3727
-
3728
- ${selector}:-moz-focusring {
3729
- outline: auto;
3730
- }
3731
-
3732
- ${selector}[hidden] {
3733
- display: none !important;
3734
- }
3735
- `;
3736
- if (ctx.hooks["cssgen:done"]) {
3737
- output = ctx.hooks["cssgen:done"]({ artifact: "reset", content: output }) ?? output;
3518
+ const scoped = {
3519
+ "*": { margin: "0px", padding: "0px", font: "inherit" },
3520
+ "*, *::before, *::after": {
3521
+ boxSizing: "border-box",
3522
+ borderWidth: "0px",
3523
+ borderStyle: "solid",
3524
+ borderColor: "var(--global-color-border, currentColor)"
3525
+ },
3526
+ hr: { height: "0px", color: "inherit", borderTopWidth: "1px" },
3527
+ body: { height: "100%", lineHeight: "inherit" },
3528
+ img: { borderStyle: "none" },
3529
+ "img, svg, video, canvas, audio, iframe, embed, object": {
3530
+ display: "block",
3531
+ verticalAlign: "middle"
3532
+ },
3533
+ "img, video": { maxWidth: "100%", height: "auto" },
3534
+ "p, h1, h2, h3, h4, h5, h6": { overflowWrap: "break-word" },
3535
+ "ol, ul": { listStyle: "none" },
3536
+ "code, kbd, pre, samp": { fontSize: "1em" },
3537
+ "button, [type='button'], [type='reset'], [type='submit']": {
3538
+ WebkitAppearance: "button",
3539
+ backgroundColor: "transparent",
3540
+ backgroundImage: "none"
3541
+ },
3542
+ "button, input, optgroup, select, textarea": { color: "inherit" },
3543
+ "button, select": { textTransform: "none" },
3544
+ table: {
3545
+ textIndent: "0px",
3546
+ borderColor: "inherit",
3547
+ borderCollapse: "collapse"
3548
+ },
3549
+ "input::placeholder, textarea::placeholder": {
3550
+ opacity: 1,
3551
+ color: "var(--global-color-placeholder, #9ca3af)"
3552
+ },
3553
+ textarea: { resize: "vertical" },
3554
+ summary: { display: "list-item" },
3555
+ small: { fontSize: "80%" },
3556
+ "sub, sup": {
3557
+ fontSize: "75%",
3558
+ lineHeight: 0,
3559
+ position: "relative",
3560
+ verticalAlign: "baseline"
3561
+ },
3562
+ sub: { bottom: "-0.25em" },
3563
+ sup: { top: "-0.5em" },
3564
+ dialog: { padding: "0px" },
3565
+ a: { color: "inherit", textDecoration: "inherit" },
3566
+ "abbr:where([title])": { textDecoration: "underline dotted" },
3567
+ "b, strong": { fontWeight: "bolder" },
3568
+ "code, kbd, samp, pre": {
3569
+ fontSize: "1em",
3570
+ "--font-mono-fallback": "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New'",
3571
+ fontFamily: "var(--global-font-mono, var(--font-mono-fallback))"
3572
+ },
3573
+ 'input[type="text"], input[type="email"], input[type="search"], input[type="password"]': {
3574
+ WebkitAppearance: "none",
3575
+ MozAppearance: "none"
3576
+ },
3577
+ "input[type='search']": {
3578
+ WebkitAppearance: "textfield",
3579
+ outlineOffset: "-2px"
3580
+ },
3581
+ "::-webkit-search-decoration, ::-webkit-search-cancel-button": {
3582
+ WebkitAppearance: "none"
3583
+ },
3584
+ "::-webkit-file-upload-button": {
3585
+ WebkitAppearance: "button",
3586
+ font: "inherit"
3587
+ },
3588
+ 'input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button': {
3589
+ height: "auto"
3590
+ },
3591
+ "input[type='number']": { MozAppearance: "textfield" },
3592
+ ":-moz-ui-invalid": { boxShadow: "none" },
3593
+ ":-moz-focusring": { outline: "auto" },
3594
+ "[hidden]": { display: "none !important" }
3595
+ };
3596
+ const reset = {
3597
+ [scope || "html"]: {
3598
+ lineHeight: 1.5,
3599
+ "--font-fallback": "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
3600
+ WebkitTextSizeAdjust: "100%",
3601
+ WebkitFontSmoothing: "antialiased",
3602
+ MozOsxFontSmoothing: "grayscale",
3603
+ MozTabSize: "[4]",
3604
+ tabSize: "[4]",
3605
+ fontFamily: "var(--global-font-body, var(--font-fallback))"
3606
+ }
3607
+ };
3608
+ if (selector) {
3609
+ reset[selector] = scoped;
3610
+ } else {
3611
+ Object.assign(reset, scoped);
3738
3612
  }
3739
- sheet.layers.reset.append(output);
3613
+ sheet.processResetCss(reset);
3740
3614
  }
3741
3615
 
3742
3616
  // src/artifacts/css/static-css.ts
@@ -3745,11 +3619,11 @@ var generateStaticCss = (ctx, sheet) => {
3745
3619
  const engine = staticCss.process(ctx.config.staticCss ?? {}, sheet);
3746
3620
  if (!sheet) {
3747
3621
  const { optimize = true, minify } = config;
3748
- let css2 = engine.sheet.toCss({ optimize, minify });
3622
+ let css = engine.sheet.toCss({ optimize, minify });
3749
3623
  if (ctx.hooks["cssgen:done"]) {
3750
- css2 = ctx.hooks["cssgen:done"]({ artifact: "static", content: css2 }) ?? css2;
3624
+ css = ctx.hooks["cssgen:done"]({ artifact: "static", content: css }) ?? css;
3751
3625
  }
3752
- return css2;
3626
+ return css;
3753
3627
  }
3754
3628
  };
3755
3629
 
@@ -3769,11 +3643,11 @@ function generateTokenCss(ctx, sheet) {
3769
3643
  if (Object.keys(varsObj).length === 0)
3770
3644
  continue;
3771
3645
  if (key === "base") {
3772
- const css3 = stringify4({ [root]: varsObj });
3773
- results.push(css3);
3646
+ const css2 = stringify4({ [root]: varsObj });
3647
+ results.push(css2);
3774
3648
  } else {
3775
3649
  const keys = key.split(":");
3776
- const css3 = stringify4(varsObj);
3650
+ const css2 = stringify4(varsObj);
3777
3651
  const mapped = keys.map((key2) => conditions.get(key2)).filter(Boolean).map((condition) => {
3778
3652
  const parent = extractParentSelectors(condition);
3779
3653
  return parent ? `&${parent}` : condition;
@@ -3781,16 +3655,16 @@ function generateTokenCss(ctx, sheet) {
3781
3655
  const rule = getDeepestRule(root, mapped);
3782
3656
  if (!rule)
3783
3657
  continue;
3784
- getDeepestNode(rule)?.append(css3);
3658
+ getDeepestNode(rule)?.append(css2);
3785
3659
  results.push(expandNestedCss(rule.toString()));
3786
3660
  }
3787
3661
  }
3788
- let css2 = results.join("\n\n");
3789
- css2 = "\n\n" + cleanupSelectors(css2, root);
3662
+ let css = results.join("\n\n");
3663
+ css = "\n\n" + cleanupSelectors(css, root);
3790
3664
  if (ctx.hooks["cssgen:done"]) {
3791
- css2 = ctx.hooks["cssgen:done"]({ artifact: "tokens", content: css2 }) ?? css2;
3665
+ css = ctx.hooks["cssgen:done"]({ artifact: "tokens", content: css }) ?? css;
3792
3666
  }
3793
- sheet.layers.tokens.append(css2);
3667
+ sheet.layers.tokens.append(css);
3794
3668
  }
3795
3669
  function getDeepestRule(root, selectors) {
3796
3670
  const rule = postcss.rule({ selector: "" });
@@ -3812,8 +3686,8 @@ function getDeepestNode(node) {
3812
3686
  }
3813
3687
  return node;
3814
3688
  }
3815
- function cleanupSelectors(css2, varSelector) {
3816
- const root = postcss.parse(css2);
3689
+ function cleanupSelectors(css, varSelector) {
3690
+ const root = postcss.parse(css);
3817
3691
  root.walkRules((rule) => {
3818
3692
  const selectors = [];
3819
3693
  rule.selectors.forEach((selector) => {
@@ -3873,14 +3747,14 @@ var Generator = class extends Context2 {
3873
3747
  };
3874
3748
  getCss = (stylesheet) => {
3875
3749
  const sheet = stylesheet ?? this.createSheet();
3876
- let css2 = sheet.toCss({
3750
+ let css = sheet.toCss({
3877
3751
  optimize: true,
3878
3752
  minify: this.config.minify
3879
3753
  });
3880
3754
  if (this.hooks["cssgen:done"]) {
3881
- css2 = this.hooks["cssgen:done"]({ artifact: "styles.css", content: css2 }) ?? css2;
3755
+ css = this.hooks["cssgen:done"]({ artifact: "styles.css", content: css }) ?? css;
3882
3756
  }
3883
- return css2;
3757
+ return css;
3884
3758
  };
3885
3759
  };
3886
3760
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pandacss/generator",
3
- "version": "0.0.0-dev-20240201185610",
3
+ "version": "0.0.0-dev-20240201231741",
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-20240201185610",
41
- "@pandacss/is-valid-prop": "^0.0.0-dev-20240201185610",
42
- "@pandacss/logger": "0.0.0-dev-20240201185610",
43
- "@pandacss/shared": "0.0.0-dev-20240201185610",
44
- "@pandacss/token-dictionary": "0.0.0-dev-20240201185610",
45
- "@pandacss/types": "0.0.0-dev-20240201185610"
40
+ "@pandacss/core": "0.0.0-dev-20240201231741",
41
+ "@pandacss/is-valid-prop": "^0.0.0-dev-20240201231741",
42
+ "@pandacss/logger": "0.0.0-dev-20240201231741",
43
+ "@pandacss/shared": "0.0.0-dev-20240201231741",
44
+ "@pandacss/token-dictionary": "0.0.0-dev-20240201231741",
45
+ "@pandacss/types": "0.0.0-dev-20240201231741"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/pluralize": "0.0.33"