@pandacss/transformer 2.0.0-beta.18 → 2.0.0-beta.20

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 CHANGED
@@ -42,400 +42,207 @@ function getMergeKey(className, separator) {
42
42
  const propStart = lastColon + 1;
43
43
  const sepIdx = className.indexOf(separator, propStart);
44
44
  if (sepIdx < propStart + 1 || sepIdx >= end) return null;
45
- const property = className.slice(propStart, sepIdx);
46
- if (lastColon === -1) return property;
47
- return `${className.slice(0, lastColon)}:${property}`;
45
+ return className.slice(0, sepIdx);
46
+ }
47
+ var CACHE_LIMIT = 2048;
48
+ var CHAR_SPACE = 32;
49
+ var CHAR_BANG = 33;
50
+ var FIELDS = 4;
51
+ function createCache(limit = CACHE_LIMIT) {
52
+ let size = 0;
53
+ let current = /* @__PURE__ */ new Map();
54
+ let previous = /* @__PURE__ */ new Map();
55
+ const set = (key, value) => {
56
+ current.set(key, value);
57
+ if (++size > limit) {
58
+ size = 0;
59
+ previous = current;
60
+ current = /* @__PURE__ */ new Map();
61
+ }
62
+ };
63
+ return {
64
+ get(key) {
65
+ let value = current.get(key);
66
+ if (value === void 0 && (value = previous.get(key)) !== void 0) set(key, value);
67
+ return value;
68
+ },
69
+ set
70
+ };
48
71
  }
49
- function flattenParts(parts, out) {
50
- for (const part of parts) {
51
- if (!part) continue;
52
- if (Array.isArray(part)) {
53
- flattenParts(part, out);
72
+ function scanPart(part, separator, out, offset) {
73
+ let count = 0;
74
+ let clean = part.length > 0;
75
+ let start = 0;
76
+ for (let i = 0; i <= part.length; i++) {
77
+ const code = i === part.length ? CHAR_SPACE : part.charCodeAt(i);
78
+ if (code !== CHAR_SPACE && (code < 9 || code > 13)) continue;
79
+ if (code !== CHAR_SPACE || i === start) clean = false;
80
+ if (i === start) {
81
+ start = i + 1;
54
82
  continue;
55
83
  }
56
- if (part === "") continue;
57
- out.push(part);
58
- }
59
- }
60
- function mergeClassStrings(separator, classes) {
61
- const seen = /* @__PURE__ */ new Map();
62
- const order = [];
63
- let id = 0;
64
- for (const cls of classes) {
65
- let tokenStart = 0;
66
- for (let i = 0; i <= cls.length; i++) {
67
- if (i !== cls.length && cls.charCodeAt(i) !== 32) continue;
68
- if (i === tokenStart) {
69
- tokenStart = i + 1;
70
- continue;
71
- }
72
- const token = cls.slice(tokenStart, i);
73
- tokenStart = i + 1;
74
- const key = getMergeKey(token, separator);
75
- if (key !== null) {
76
- if (!seen.has(key)) order.push(key);
77
- seen.set(key, token);
78
- } else {
79
- const uniqueKey = `__${id++}`;
80
- order.push(uniqueKey);
81
- seen.set(uniqueKey, token);
82
- }
84
+ const at = offset + count * FIELDS;
85
+ count++;
86
+ out[at] = start;
87
+ out[at + 1] = i;
88
+ out[at + 2] = -1;
89
+ let end = i;
90
+ if (part.charCodeAt(end - 1) === CHAR_BANG) end--;
91
+ let depth = 0;
92
+ let propStart = start;
93
+ for (let c = start; c < end; c++) {
94
+ const code2 = part.charCodeAt(c);
95
+ if (code2 === CHAR_OPEN_BRACKET) depth++;
96
+ else if (code2 === CHAR_CLOSE_BRACKET) depth--;
97
+ else if (code2 === CHAR_COLON && depth === 0) propStart = c + 1;
83
98
  }
99
+ const sep = part.indexOf(separator, propStart);
100
+ if (sep > propStart && sep < end) {
101
+ let hash = 2166136261;
102
+ for (let c = start; c < sep; c++) hash = Math.imul(hash ^ part.charCodeAt(c), 16777619);
103
+ out[at + 2] = sep;
104
+ out[at + 3] = hash;
105
+ }
106
+ start = i + 1;
84
107
  }
85
- if (order.length === 0) return "";
86
- if (order.length === 1) return seen.get(order[0]);
87
- let str = seen.get(order[0]);
88
- for (let i = 1; i < order.length; i++) {
89
- str += ` ${seen.get(order[i])}`;
90
- }
91
- return str;
108
+ return clean ? count : -count;
92
109
  }
93
110
  function createCx(options = {}) {
94
111
  const separator = options.separator ?? bakedSeparator;
95
- return function cx2(...parts) {
96
- if (parts.length === 1) {
97
- const only = parts[0];
98
- if (typeof only === "string") return only;
99
- if (!only) return "";
100
- }
101
- const flat = [];
102
- flattenParts(parts, flat);
103
- if (flat.length === 0) return "";
104
- if (flat.length === 1) return flat[0];
105
- return mergeClassStrings(separator, flat);
106
- };
107
- }
108
- var cx = createCx();
109
-
110
- // src/runtime/internal/css.ts
111
- function css(...styles) {
112
- return cx(...styles);
113
- }
114
-
115
- // src/runtime/internal/shared.ts
116
- function withDefaults(defaults, props) {
117
- const out = { ...defaults };
118
- for (const key in props) {
119
- if (props[key] !== void 0) out[key] = props[key];
120
- }
121
- return out;
122
- }
123
- function splitVariantProps(props, variantKeySet) {
124
- const rest = {};
125
- const variantProps = {};
126
- for (const key in props) {
127
- if (variantKeySet.has(key)) variantProps[key] = props[key];
128
- else rest[key] = props[key];
129
- }
130
- return [rest, variantProps];
131
- }
132
- function toVariantMap(variants) {
133
- const map = {};
134
- for (const key in variants) map[key] = Object.keys(variants[key] ?? {});
135
- return map;
136
- }
137
- function compoundMatches(compound, variants) {
138
- for (const key in compound) {
139
- if (key === "css" || key === "className" || key === "classNames") continue;
140
- const expected = compound[key];
141
- const actual = variants[key];
142
- if (Array.isArray(expected)) {
143
- if (!expected.includes(actual)) return false;
144
- } else if (actual !== expected) {
145
- return false;
146
- }
147
- }
148
- return true;
149
- }
150
- function variantClass(variants, key, value) {
151
- if (value == null) return void 0;
152
- const cls = variants[key]?.[value];
153
- return typeof cls === "string" && cls ? cls : void 0;
154
- }
155
- function memoProps(resolve) {
156
- const cache = /* @__PURE__ */ new Map();
157
- let lastKey = "";
158
- let lastValue;
159
- let hasLast = false;
160
- return (props = {}) => {
161
- let key = "";
162
- for (const k in props) {
163
- const value = props[k];
164
- if (value !== void 0) key += `${k}:${String(value)}|`;
165
- }
166
- if (hasLast && key === lastKey) return lastValue;
167
- const hit = cache.get(key);
168
- if (hit !== void 0) {
169
- lastKey = key;
170
- lastValue = hit;
171
- hasLast = true;
172
- return hit;
173
- }
174
- const out = resolve(props);
175
- cache.set(key, out);
176
- if (cache.size > 500) cache.delete(cache.keys().next().value);
177
- lastKey = key;
178
- lastValue = out;
179
- hasLast = true;
180
- return out;
181
- };
182
- }
183
- function joinClasses(parts) {
184
- if (parts.length === 0) return "";
185
- if (parts.length === 1) return parts[0];
186
- return cx(...parts);
187
- }
188
- function isBooleanBranch(branch) {
189
- if (!branch) return false;
190
- const keys = Object.keys(branch);
191
- return keys.length === 1 && keys[0] === "true" && typeof branch.true === "string";
192
- }
193
- function booleanKeys(variants, keys, defaults, hasCompounds) {
194
- if (hasCompounds || keys.length === 0 || keys.length > 12) return void 0;
195
- for (const key of keys) {
196
- if (!isBooleanBranch(variants[key])) return void 0;
112
+ const scanned = createCache();
113
+ const seenOnce = createCache(512);
114
+ const parts = [];
115
+ let tokens = new Int32Array(64 * FIELDS);
116
+ let tokenPart = new Int32Array(64);
117
+ let winner = new Int32Array(64);
118
+ let tableSize = 128;
119
+ let table = new Int32Array(tableSize);
120
+ let stamps = new Int32Array(tableSize);
121
+ let stamp = 0;
122
+ function collect(value) {
123
+ if (!value) return;
124
+ if (typeof value === "string") parts.push(value);
125
+ else for (let i = 0; i < value.length; i++) collect(value[i]);
197
126
  }
198
- for (const key in defaults) {
199
- if (!keys.includes(key)) return void 0;
200
- const value = defaults[key];
201
- if (value !== true && value !== false && value !== "true" && value !== "false") return void 0;
127
+ function reserve(tokenCount) {
128
+ if (tokenCount <= tokenPart.length) return;
129
+ let size = tokenPart.length;
130
+ while (size < tokenCount) size *= 2;
131
+ const grow = (from, length) => {
132
+ const next = new Int32Array(length);
133
+ next.set(from);
134
+ return next;
135
+ };
136
+ tokens = grow(tokens, size * FIELDS);
137
+ tokenPart = grow(tokenPart, size);
138
+ winner = grow(winner, size);
202
139
  }
203
- return keys;
204
- }
205
- function selectsTrue(value) {
206
- return value === true || value === "true";
207
- }
208
- function booleanBitset(base, variants, keys, defaults, hasCompounds) {
209
- const boolKeys = booleanKeys(variants, keys, defaults, hasCompounds);
210
- if (!boolKeys) return void 0;
211
- const n = boolKeys.length;
212
- let defaultMask = 0;
213
- for (let i = 0; i < n; i++) {
214
- if (selectsTrue(defaults[boolKeys[i]])) defaultMask |= 1 << i;
215
- }
216
- const table = new Array(1 << n);
217
- const build = (mask) => {
218
- const parts = [];
219
- if (base) parts.push(base);
220
- for (let i = 0; i < n; i++) {
221
- if (mask & 1 << i) parts.push(variants[boolKeys[i]].true);
222
- }
223
- return joinClasses(parts);
224
- };
225
- return (props = {}) => {
226
- let mask = defaultMask;
227
- for (let i = 0; i < n; i++) {
228
- const value = props[boolKeys[i]];
229
- if (value === void 0) continue;
230
- if (selectsTrue(value)) mask |= 1 << i;
231
- else mask &= ~(1 << i);
232
- }
233
- return table[mask] ??= build(mask);
234
- };
235
- }
236
- var MAX_VARIANT_STATES = 4096;
237
- function optionIndex(options) {
238
- const index = /* @__PURE__ */ new Map();
239
- for (let i = 0; i < options.length; i++) {
240
- const option = options[i];
241
- const slot = i + 1;
242
- index.set(option, slot);
243
- if (option === "true") index.set(true, slot);
244
- else if (option === "false") index.set(false, slot);
245
- else {
246
- const numeric = Number(option);
247
- if (option !== "" && !Number.isNaN(numeric)) index.set(numeric, slot);
140
+ function sameKey(a, b) {
141
+ const aStart = tokens[a * FIELDS];
142
+ const bStart = tokens[b * FIELDS];
143
+ const length = tokens[a * FIELDS + 2] - aStart;
144
+ if (tokens[b * FIELDS + 2] - bStart !== length) return false;
145
+ const left = parts[tokenPart[a]];
146
+ const right = parts[tokenPart[b]];
147
+ for (let i = 0; i < length; i++) {
148
+ if (left.charCodeAt(aStart + i) !== right.charCodeAt(bStart + i)) return false;
248
149
  }
150
+ return true;
249
151
  }
250
- return index;
251
- }
252
- function variantTable(base, variants, keys, defaults, hasCompounds) {
253
- if (hasCompounds || keys.length === 0) return void 0;
254
- const slots = [];
255
- let states = 1;
256
- for (const key of keys) {
257
- const options = Object.keys(variants[key] ?? {});
258
- if (options.length === 0) return void 0;
259
- slots.push({ key, options, index: optionIndex(options), radix: options.length + 1, stride: states });
260
- states *= options.length + 1;
261
- if (states > MAX_VARIANT_STATES) return void 0;
262
- }
263
- let defaultState = 0;
264
- for (const key in defaults) {
265
- const slot = slots.find((candidate) => candidate.key === key);
266
- if (!slot) return void 0;
267
- const chosen = slot.index.get(defaults[key]);
268
- if (chosen === void 0) return void 0;
269
- defaultState += chosen * slot.stride;
270
- }
271
- const table = new Array(states);
272
- const build = (state) => {
273
- const parts = [];
274
- if (base) parts.push(base);
275
- for (const slot of slots) {
276
- const chosen = Math.floor(state / slot.stride) % slot.radix;
277
- if (chosen === 0) continue;
278
- const cls = variants[slot.key][slot.options[chosen - 1]];
279
- if (cls) parts.push(cls);
152
+ function merge() {
153
+ let count = 0;
154
+ let clean = true;
155
+ for (let p = 0; p < parts.length; p++) {
156
+ const part = parts[p];
157
+ const cached = scanned.get(part);
158
+ let partCount;
159
+ if (cached !== void 0) {
160
+ partCount = cached[0];
161
+ reserve(count + Math.abs(partCount));
162
+ const base = count * FIELDS;
163
+ for (let i = 1; i < cached.length; i++) tokens[base + i - 1] = cached[i];
164
+ } else {
165
+ reserve(count + part.length);
166
+ partCount = scanPart(part, separator, tokens, count * FIELDS);
167
+ if (seenOnce.get(part) === void 0) seenOnce.set(part, true);
168
+ else {
169
+ const record = new Int32Array(1 + Math.abs(partCount) * FIELDS);
170
+ record[0] = partCount;
171
+ record.set(tokens.subarray(count * FIELDS, (count + Math.abs(partCount)) * FIELDS), 1);
172
+ scanned.set(part, record);
173
+ }
174
+ }
175
+ if (partCount <= 0) clean = false;
176
+ const end = count + Math.abs(partCount);
177
+ for (; count < end; count++) tokenPart[count] = p;
280
178
  }
281
- return joinClasses(parts);
282
- };
283
- return (props = {}) => {
284
- let state = defaultState;
285
- for (let i = 0; i < slots.length; i++) {
286
- const slot = slots[i];
287
- const value = props[slot.key];
288
- if (value === void 0) continue;
289
- const chosen = slot.index.get(value) ?? 0;
290
- const current = Math.floor(state / slot.stride) % slot.radix;
291
- state += (chosen - current) * slot.stride;
179
+ if (count * 2 > tableSize) {
180
+ while (count * 2 > tableSize) tableSize *= 2;
181
+ table = new Int32Array(tableSize);
182
+ stamps = new Int32Array(tableSize);
183
+ stamp = 0;
292
184
  }
293
- return table[state] ??= build(state);
294
- };
295
- }
296
-
297
- // src/runtime/internal/cva.ts
298
- function unionKeys(other, own) {
299
- const keys = [...other];
300
- for (const key of own) {
301
- if (!keys.includes(key)) keys.push(key);
302
- }
303
- return keys;
304
- }
305
- function cva(config) {
306
- const base = config.base ?? "";
307
- const variants = config.variants ?? {};
308
- const defaultVariants = config.defaultVariants ?? {};
309
- const compoundVariants = config.compoundVariants ?? [];
310
- const variantKeys = Object.keys(variants);
311
- const variantKeySet = new Set(variantKeys);
312
- const hasDefaults = Object.keys(defaultVariants).length > 0;
313
- const hasCompounds = compoundVariants.length > 0;
314
- const resolve = (props = {}) => {
315
- const computed = hasDefaults ? withDefaults(defaultVariants, props) : props;
316
- const parts = [];
317
- if (base) parts.push(base);
318
- for (const key of variantKeys) {
319
- const cls = variantClass(variants, key, computed[key]);
320
- if (cls) parts.push(cls);
185
+ if (++stamp === 2147483647) {
186
+ stamp = 1;
187
+ stamps.fill(0);
321
188
  }
322
- if (hasCompounds) {
323
- for (const compound of compoundVariants) {
324
- if (!compoundMatches(compound, computed)) continue;
325
- const cls = compound.className ?? compound.css;
326
- if (typeof cls === "string" && cls) parts.push(cls);
189
+ const mask = tableSize - 1;
190
+ let replaced = false;
191
+ for (let t = 0; t < count; t++) {
192
+ winner[t] = t;
193
+ if (tokens[t * FIELDS + 2] < 0) continue;
194
+ const hash = tokens[t * FIELDS + 3];
195
+ let slot = hash & mask;
196
+ let owner = -1;
197
+ while (stamps[slot] === stamp) {
198
+ const candidate = table[slot];
199
+ if (tokens[candidate * FIELDS + 3] === hash && sameKey(candidate, t)) {
200
+ owner = candidate;
201
+ break;
202
+ }
203
+ slot = slot + 1 & mask;
327
204
  }
328
- }
329
- return joinClasses(parts);
330
- };
331
- const cvaFn = booleanBitset(base, variants, variantKeys, defaultVariants, hasCompounds) ?? variantTable(base, variants, variantKeys, defaultVariants, hasCompounds) ?? memoProps(resolve);
332
- const merge = (other) => {
333
- const override = other.config;
334
- const overrideVariants = override.variants ?? {};
335
- const mergedVariants = {};
336
- for (const key of unionKeys(other.variantKeys, variantKeys)) {
337
- const group = { ...variants[key] };
338
- const theirs = overrideVariants[key] ?? {};
339
- for (const option in theirs) {
340
- const mine = group[option];
341
- group[option] = mine ? cx(mine, theirs[option]) : theirs[option];
205
+ if (owner === -1) {
206
+ stamps[slot] = stamp;
207
+ table[slot] = t;
208
+ } else {
209
+ winner[owner] = t;
210
+ winner[t] = -1;
211
+ replaced = true;
342
212
  }
343
- mergedVariants[key] = group;
344
213
  }
345
- return cva({
346
- base: cx(base, override.base),
347
- variants: mergedVariants,
348
- defaultVariants: { ...defaultVariants, ...override.defaultVariants },
349
- compoundVariants: [...compoundVariants, ...override.compoundVariants ?? []]
350
- });
351
- };
352
- return Object.assign(cvaFn, {
353
- __cva__: true,
354
- variantKeys,
355
- variantMap: toVariantMap(variants),
356
- raw: resolve,
357
- merge,
358
- config,
359
- getVariantProps: (props) => withDefaults(defaultVariants, props),
360
- splitVariantProps: (props) => splitVariantProps(props, variantKeySet)
361
- });
362
- }
363
-
364
- // src/runtime/internal/sva.ts
365
- function variantsForSlot(variants, slot) {
366
- if (!variants) return void 0;
367
- const out = {};
368
- for (const key in variants) {
369
- const options = {};
370
- for (const option in variants[key]) {
371
- const value = variants[key][option];
372
- const cls = typeof value === "string" ? value : value?.[slot];
373
- if (cls) options[option] = cls;
214
+ if (!replaced && clean) {
215
+ let joined = parts[0];
216
+ for (let p = 1; p < parts.length; p++) joined += " " + parts[p];
217
+ return joined;
374
218
  }
375
- out[key] = options;
376
- }
377
- return out;
378
- }
379
- function compoundsForSlot(compounds, slot) {
380
- if (!compounds?.length) return void 0;
381
- const out = [];
382
- for (const compound of compounds) {
383
- const next = {};
384
- for (const key in compound) {
385
- if (key === "css" || key === "className" || key === "classNames") continue;
386
- next[key] = compound[key];
219
+ let result = "";
220
+ for (let t = 0; t < count; t++) {
221
+ const w = winner[t];
222
+ if (w === -1) continue;
223
+ const piece = parts[tokenPart[w]].slice(tokens[w * FIELDS], tokens[w * FIELDS + 1]);
224
+ result = result ? result + " " + piece : piece;
387
225
  }
388
- const css2 = compound.css;
389
- if (typeof css2 === "string") next.css = css2;
390
- else if (css2 && typeof css2 === "object" && slot in css2) next.css = css2[slot];
391
- const className = compound.classNames?.[slot] ?? compound.className;
392
- if (className) next.className = className;
393
- if (next.css || next.className) out.push(next);
394
- }
395
- return out.length ? out : void 0;
396
- }
397
- function sva(config) {
398
- const slots = config.slots ?? Object.keys(config.base ?? {});
399
- const defaultVariants = config.defaultVariants ?? {};
400
- const variantKeys = Object.keys(config.variants ?? {});
401
- const variantKeySet = new Set(variantKeys);
402
- const slotFns = slots.map((slot) => {
403
- let base = config.base?.[slot];
404
- if (config.className?.[slot]) base = cx(base, config.className[slot]);
405
- return [
406
- slot,
407
- cva({
408
- base,
409
- variants: variantsForSlot(config.variants, slot),
410
- defaultVariants: config.defaultVariants,
411
- compoundVariants: compoundsForSlot(config.compoundVariants, slot)
412
- })
413
- ];
414
- });
415
- const resolve = (props = {}) => {
416
- const result = {};
417
- for (const [slot, fn] of slotFns) result[slot] = fn(props);
418
- return result;
419
- };
420
- const raw = (props = {}) => {
421
- const result = {};
422
- for (const [slot, fn] of slotFns) result[slot] = fn.raw(props);
423
226
  return result;
227
+ }
228
+ return function cx2(...args) {
229
+ parts.length = 0;
230
+ for (let i = 0; i < args.length; i++) collect(args[i]);
231
+ const count = parts.length;
232
+ if (count === 0) return "";
233
+ if (count === 1) return parts[0];
234
+ return merge();
424
235
  };
425
- return Object.assign(memoProps(resolve), {
426
- __cva__: false,
427
- raw,
428
- config,
429
- variantMap: Object.fromEntries(variantKeys.map((key) => [key, Object.keys(config.variants?.[key] ?? {})])),
430
- variantKeys,
431
- classNameMap: config.className ?? {},
432
- getVariantProps: (props) => withDefaults(defaultVariants, props),
433
- splitVariantProps: (props) => splitVariantProps(props, variantKeySet)
434
- });
236
+ }
237
+ var cx = /* @__PURE__ */ createCx();
238
+
239
+ // src/runtime/internal/css.ts
240
+ function css(...styles) {
241
+ return cx(...styles);
435
242
  }
436
243
 
437
244
  // src/runtime/internal/source.ts
438
- var internalCssSource = 'var D="__PANDA_CX_SEPARATOR__";function w(n,r){let t=n.length;if(t>0&&n.charCodeAt(t-1)===33&&(t-=1),t===0)return null;let e=0,s=-1;for(let i=0;i<t;i++){let d=n.charCodeAt(i);d===91?e++:d===93?e--:d===58&&e===0&&(s=i)}let o=s+1,a=n.indexOf(r,o);if(a<o+1||a>=t)return null;let l=n.slice(o,a);return s===-1?l:`${n.slice(0,s)}:${l}`}function S(n,r){for(let t of n)if(t){if(Array.isArray(t)){S(t,r);continue}t!==""&&r.push(t)}}function H(n,r){let t=new Map,e=[],s=0;for(let a of r){let l=0;for(let i=0;i<=a.length;i++){if(i!==a.length&&a.charCodeAt(i)!==32)continue;if(i===l){l=i+1;continue}let d=a.slice(l,i);l=i+1;let u=w(d,n);if(u!==null)t.has(u)||e.push(u),t.set(u,d);else{let c=`__${s++}`;e.push(c),t.set(c,d)}}}if(e.length===0)return"";if(e.length===1)return t.get(e[0]);let o=t.get(e[0]);for(let a=1;a<e.length;a++)o+=` ${t.get(e[a])}`;return o}function M(n={}){let r=n.separator??D;return function(...e){if(e.length===1){let o=e[0];if(typeof o=="string")return o;if(!o)return""}let s=[];return S(e,s),s.length===0?"":s.length===1?s[0]:H(r,s)}}var V=M();function P(...n){return V(...n)}function y(n,r){let t={...n};for(let e in r)r[e]!==void 0&&(t[e]=r[e]);return t}function k(n,r){let t={},e={};for(let s in n)r.has(s)?e[s]=n[s]:t[s]=n[s];return[t,e]}function N(n){let r={};for(let t in n)r[t]=Object.keys(n[t]??{});return r}function T(n,r){for(let t in n){if(t==="css"||t==="className"||t==="classNames")continue;let e=n[t],s=r[t];if(Array.isArray(e)){if(!e.includes(s))return!1}else if(s!==e)return!1}return!0}function K(n,r,t){if(t==null)return;let e=n[r]?.[t];return typeof e=="string"&&e?e:void 0}function x(n){let r=new Map,t="",e,s=!1;return(o={})=>{let a="";for(let d in o){let u=o[d];u!==void 0&&(a+=`${d}:${String(u)}|`)}if(s&&a===t)return e;let l=r.get(a);if(l!==void 0)return t=a,e=l,s=!0,l;let i=n(o);return r.set(a,i),r.size>500&&r.delete(r.keys().next().value),t=a,e=i,s=!0,i}}function _(n){return n.length===0?"":n.length===1?n[0]:V(...n)}function L(n){if(!n)return!1;let r=Object.keys(n);return r.length===1&&r[0]==="true"&&typeof n.true=="string"}function $(n,r,t,e){if(!(e||r.length===0||r.length>12)){for(let s of r)if(!L(n[s]))return;for(let s in t){if(!r.includes(s))return;let o=t[s];if(o!==!0&&o!==!1&&o!=="true"&&o!=="false")return}return r}}function O(n){return n===!0||n==="true"}function E(n,r,t,e,s){let o=$(r,t,e,s);if(!o)return;let a=o.length,l=0;for(let u=0;u<a;u++)O(e[o[u]])&&(l|=1<<u);let i=new Array(1<<a),d=u=>{let c=[];n&&c.push(n);for(let f=0;f<a;f++)u&1<<f&&c.push(r[o[f]].true);return _(c)};return(u={})=>{let c=l;for(let f=0;f<a;f++){let g=u[o[f]];g!==void 0&&(O(g)?c|=1<<f:c&=~(1<<f))}return i[c]??=d(c)}}var X=4096;function F(n){let r=new Map;for(let t=0;t<n.length;t++){let e=n[t],s=t+1;if(r.set(e,s),e==="true")r.set(!0,s);else if(e==="false")r.set(!1,s);else{let o=Number(e);e!==""&&!Number.isNaN(o)&&r.set(o,s)}}return r}function j(n,r,t,e,s){if(s||t.length===0)return;let o=[],a=1;for(let u of t){let c=Object.keys(r[u]??{});if(c.length===0||(o.push({key:u,options:c,index:F(c),radix:c.length+1,stride:a}),a*=c.length+1,a>X))return}let l=0;for(let u in e){let c=o.find(g=>g.key===u);if(!c)return;let f=c.index.get(e[u]);if(f===void 0)return;l+=f*c.stride}let i=new Array(a),d=u=>{let c=[];n&&c.push(n);for(let f of o){let g=Math.floor(u/f.stride)%f.radix;if(g===0)continue;let p=r[f.key][f.options[g-1]];p&&c.push(p)}return _(c)};return(u={})=>{let c=l;for(let f=0;f<o.length;f++){let g=o[f],p=u[g.key];if(p===void 0)continue;let C=g.index.get(p)??0,m=Math.floor(c/g.stride)%g.radix;c+=(C-m)*g.stride}return i[c]??=d(c)}}function I(n,r){let t=[...n];for(let e of r)t.includes(e)||t.push(e);return t}function R(n){let r=n.base??"",t=n.variants??{},e=n.defaultVariants??{},s=n.compoundVariants??[],o=Object.keys(t),a=new Set(o),l=Object.keys(e).length>0,i=s.length>0,d=(f={})=>{let g=l?y(e,f):f,p=[];r&&p.push(r);for(let C of o){let m=K(t,C,g[C]);m&&p.push(m)}if(i)for(let C of s){if(!T(C,g))continue;let m=C.className??C.css;typeof m=="string"&&m&&p.push(m)}return _(p)},u=E(r,t,o,e,i)??j(r,t,o,e,i)??x(d),c=f=>{let g=f.config,p=g.variants??{},C={};for(let m of I(f.variantKeys,o)){let b={...t[m]},v=p[m]??{};for(let h in v){let A=b[h];b[h]=A?V(A,v[h]):v[h]}C[m]=b}return R({base:V(r,g.base),variants:C,defaultVariants:{...e,...g.defaultVariants},compoundVariants:[...s,...g.compoundVariants??[]]})};return Object.assign(u,{__cva__:!0,variantKeys:o,variantMap:N(t),raw:d,merge:c,config:n,getVariantProps:f=>y(e,f),splitVariantProps:f=>k(f,a)})}function q(n,r){if(!n)return;let t={};for(let e in n){let s={};for(let o in n[e]){let a=n[e][o],l=typeof a=="string"?a:a?.[r];l&&(s[o]=l)}t[e]=s}return t}function z(n,r){if(!n?.length)return;let t=[];for(let e of n){let s={};for(let l in e)l==="css"||l==="className"||l==="classNames"||(s[l]=e[l]);let o=e.css;typeof o=="string"?s.css=o:o&&typeof o=="object"&&r in o&&(s.css=o[r]);let a=e.classNames?.[r]??e.className;a&&(s.className=a),(s.css||s.className)&&t.push(s)}return t.length?t:void 0}function B(n){let r=n.slots??Object.keys(n.base??{}),t=n.defaultVariants??{},e=Object.keys(n.variants??{}),s=new Set(e),o=r.map(i=>{let d=n.base?.[i];return n.className?.[i]&&(d=V(d,n.className[i])),[i,R({base:d,variants:q(n.variants,i),defaultVariants:n.defaultVariants,compoundVariants:z(n.compoundVariants,i)})]}),a=(i={})=>{let d={};for(let[u,c]of o)d[u]=c(i);return d},l=(i={})=>{let d={};for(let[u,c]of o)d[u]=c.raw(i);return d};return Object.assign(x(a),{__cva__:!1,raw:l,config:n,variantMap:Object.fromEntries(e.map(i=>[i,Object.keys(n.variants?.[i]??{})])),variantKeys:e,classNameMap:n.className??{},getVariantProps:i=>y(t,i),splitVariantProps:i=>k(i,s)})}export{P as css,R as cva,V as cx,B as sva};\n';
245
+ var internalCssSource = '// src/runtime/internal/cx.ts\nvar z = "__PANDA_CX_SEPARATOR__";\nvar X = 2048, M = 32, G = 33, m = 4;\nfunction H(e = X) {\n let o = 0, t = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), r = (i, n) => {\n t.set(i, n), ++o > e && (o = 0, s = t, t = /* @__PURE__ */ new Map());\n };\n return {\n get(i) {\n let n = t.get(i);\n return n === void 0 && (n = s.get(i)) !== void 0 && r(i, n), n;\n },\n set: r\n };\n}\nfunction W(e, o, t, s) {\n let r = 0, i = e.length > 0, n = 0;\n for (let l = 0; l <= e.length; l++) {\n let a = l === e.length ? M : e.charCodeAt(l);\n if (a !== M && (a < 9 || a > 13)) continue;\n if ((a !== M || l === n) && (i = !1), l === n) {\n n = l + 1;\n continue;\n }\n let C = s + r * m;\n r++, t[C] = n, t[C + 1] = l, t[C + 2] = -1;\n let h = l;\n e.charCodeAt(h - 1) === G && h--;\n let u = 0, _ = n;\n for (let R = n; R < h; R++) {\n let g = e.charCodeAt(R);\n g === 91 ? u++ : g === 93 ? u-- : g === 58 && u === 0 && (_ = R + 1);\n }\n let p = e.indexOf(o, _);\n if (p > _ && p < h) {\n let R = 2166136261;\n for (let g = n; g < p; g++) R = Math.imul(R ^ e.charCodeAt(g), 16777619);\n t[C + 2] = p, t[C + 3] = R;\n }\n n = l + 1;\n }\n return i ? r : -r;\n}\nfunction K(e = {}) {\n let o = e.separator ?? z, t = H(), s = H(512), r = [], i = new Int32Array(64 * m), n = new Int32Array(64), l = new Int32Array(64), a = 128, C = new Int32Array(a), h = new Int32Array(a), u = 0;\n function _(c) {\n if (c)\n if (typeof c == "string") r.push(c);\n else for (let f = 0; f < c.length; f++) _(c[f]);\n }\n function p(c) {\n if (c <= n.length) return;\n let f = n.length;\n for (; f < c; ) f *= 2;\n let w = (P, x) => {\n let d = new Int32Array(x);\n return d.set(P), d;\n };\n i = w(i, f * m), n = w(n, f), l = w(l, f);\n }\n function R(c, f) {\n let w = i[c * m], P = i[f * m], x = i[c * m + 2] - w;\n if (i[f * m + 2] - P !== x) return !1;\n let d = r[n[c]], A = r[n[f]];\n for (let y = 0; y < x; y++)\n if (d.charCodeAt(w + y) !== A.charCodeAt(P + y)) return !1;\n return !0;\n }\n function g() {\n let c = 0, f = !0;\n for (let d = 0; d < r.length; d++) {\n let A = r[d], y = t.get(A), S;\n if (y !== void 0) {\n S = y[0], p(c + Math.abs(S));\n let T = c * m;\n for (let V = 1; V < y.length; V++) i[T + V - 1] = y[V];\n } else if (p(c + A.length), S = W(A, o, i, c * m), s.get(A) === void 0) s.set(A, !0);\n else {\n let T = new Int32Array(1 + Math.abs(S) * m);\n T[0] = S, T.set(i.subarray(c * m, (c + Math.abs(S)) * m), 1), t.set(A, T);\n }\n S <= 0 && (f = !1);\n let O = c + Math.abs(S);\n for (; c < O; c++) n[c] = d;\n }\n if (c * 2 > a) {\n for (; c * 2 > a; ) a *= 2;\n C = new Int32Array(a), h = new Int32Array(a), u = 0;\n }\n ++u === 2147483647 && (u = 1, h.fill(0));\n let w = a - 1, P = !1;\n for (let d = 0; d < c; d++) {\n if (l[d] = d, i[d * m + 2] < 0) continue;\n let A = i[d * m + 3], y = A & w, S = -1;\n for (; h[y] === u; ) {\n let O = C[y];\n if (i[O * m + 3] === A && R(O, d)) {\n S = O;\n break;\n }\n y = y + 1 & w;\n }\n S === -1 ? (h[y] = u, C[y] = d) : (l[S] = d, l[d] = -1, P = !0);\n }\n if (!P && f) {\n let d = r[0];\n for (let A = 1; A < r.length; A++) d += " " + r[A];\n return d;\n }\n let x = "";\n for (let d = 0; d < c; d++) {\n let A = l[d];\n if (A === -1) continue;\n let y = r[n[A]].slice(i[A * m], i[A * m + 1]);\n x = x ? x + " " + y : y;\n }\n return x;\n }\n return function(...f) {\n r.length = 0;\n for (let P = 0; P < f.length; P++) _(f[P]);\n let w = r.length;\n return w === 0 ? "" : w === 1 ? r[0] : g();\n };\n}\nvar b = /* @__PURE__ */ K();\n\n// src/runtime/internal/css.ts\nfunction N(...e) {\n return b(...e);\n}\n\n// src/runtime/internal/memo.ts\nvar B = (e) => e !== null && (typeof e == "object" || typeof e == "function"), F = ["true", "false", "null"];\nfunction q(e, o, t, s) {\n let r = 1, i = [], n = [], l = [], a = [], C = o.map((_) => {\n let p = /* @__PURE__ */ Object.create(null), R = 1;\n for (let g of t[_]) p[g] = R++;\n if (s)\n n.push(R++), l.push(R++), a.push(R++);\n else {\n for (let g of F) p[g] ??= R++;\n n.push(p.true), l.push(p.false), a.push(p.null);\n }\n return i.push(R), r *= R, p;\n });\n if (r > 256) return null;\n let h = new Array(r), u;\n return (_) => {\n if (_ == null) return u === void 0 ? u = e() : u;\n let p = 0;\n for (let g = 0; g < o.length; g++) {\n let c = _[o[g]], f = 0;\n if (c === !0) f = n[g];\n else if (c === !1) f = l[g];\n else if (c === null) f = a[g];\n else if (typeof c == "string") f = C[g][c];\n else if (c !== void 0) {\n if (s || B(c)) return e(_);\n f = C[g][String(c)];\n }\n if (f === void 0) return e(_);\n p = p * i[g] + f;\n }\n let R = h[p];\n return R === void 0 && (h[p] = R = e(_)), R;\n };\n}\nfunction J(e, o) {\n let t = o.length, s = new Array(16 * t), r = new Array(16), i = 0, n = 0, l;\n return (a) => {\n if (a == null) return l === void 0 ? l = e() : l;\n e: for (let u = 0; u < i; u++) {\n let _ = u * t;\n for (let p = 0; p < t; p++)\n if (a[o[p]] !== s[_ + p]) continue e;\n return r[u];\n }\n for (let u = 0; u < t; u++)\n if (B(a[o[u]])) return e(a);\n let C = e(a), h = n * t;\n for (let u = 0; u < t; u++) s[h + u] = a[o[u]];\n return r[n] = C, n === i && i++, n = (n + 1) % 16, C;\n };\n}\nfunction k(e, o, t) {\n let s = Object.keys(o);\n return s.length === 0 ? e : q(e, s, o, !!t) ?? J(e, s);\n}\n\n// src/runtime/internal/shared.ts\nfunction E(e, o) {\n let t = { ...e };\n for (let s in o)\n o[s] !== void 0 && (t[s] = o[s]);\n return t;\n}\nfunction j(e, o) {\n for (let t in e) {\n if (t === "css" || t === "className" || t === "classNames") continue;\n let s = e[t], r = o[t];\n if (Array.isArray(s)) {\n if (!s.includes(r)) return !1;\n } else if (r !== s)\n return !1;\n }\n return !0;\n}\n\n// src/runtime/internal/recipe.ts\nvar D = (e) => e != null && typeof e == "object" && !Array.isArray(e);\nfunction I(...e) {\n let o = {};\n for (let t of e)\n if (D(t))\n for (let s in t) {\n let r = t[s];\n o[s] = D(r) ? I(o[s], r) : r;\n }\n return o;\n}\nfunction v(e, o, t = (s) => s) {\n let s = E(e.defaultVariants ?? {}, o), r = e.variants ?? {}, i = [t(e.base)];\n for (let n in s) i.push(t(r[n]?.[s[n]]));\n for (let n of e.compoundVariants ?? [])\n j(n, s) && i.push(t(n.css));\n return I(...i);\n}\nfunction Q(e, o) {\n let t = {};\n for (let s of e.slots ?? Object.keys(e.base ?? {}))\n t[s] = v(e, o, (r) => r?.[s]);\n return t;\n}\nfunction U(e, o) {\n let t = { ...e.config?.defaultVariants, ...o.config?.defaultVariants }, s = [.../* @__PURE__ */ new Set([...e.variantKeys ?? [], ...o.variantKeys ?? []])], r = (n = {}) => E(t, n), i = L(\n (n) => {\n let l = r(n);\n return b(e(l), o(l));\n },\n // Compounds from either side rule out the coercing table memo.\n {\n defaultVariants: t,\n compoundVariants: [...e.config?.compoundVariants ?? [], ...o.config?.compoundVariants ?? []]\n },\n s,\n { ...e.variantMap, ...o.variantMap }\n );\n return i.raw = (n) => {\n let l = r(n);\n return I(e.raw(l), o.raw(l));\n }, i;\n}\nfunction L(e, o, t, s, r) {\n let i = o, n = i.defaultVariants ?? {}, l = k(e, s, i.compoundVariants?.length);\n return Object.assign(l, {\n __cva__: !r,\n variantKeys: t,\n variantMap: s,\n ...r && { classNameMap: r },\n config: o,\n raw: (a = {}) => r ? Q(i, a) : v(i, a),\n // The styled factory passes its own `cva`, so chains merge exactly like styled-system.\n merge: (a, C) => C ? C(o).merge(a) : U(l, a),\n getVariantProps: (a = {}) => E(n, a),\n splitVariantProps: (a) => {\n let C = {}, h = {};\n for (let u in a) (t.includes(u) ? C : h)[u] = a[u];\n return [C, h];\n }\n });\n}\nexport {\n L as attachRecipe,\n N as css,\n b as cx,\n k as memoRecipe\n};\n';
439
246
 
440
247
  // src/runtime/internal/load.ts
441
248
  var CX_SEPARATOR_PLACEHOLDER = "__PANDA_CX_SEPARATOR__";
@@ -637,7 +444,6 @@ export {
637
444
  createPandaSourcePluginHooks,
638
445
  createSourceTransformer,
639
446
  css,
640
- cva,
641
447
  cx,
642
448
  src_default as default,
643
449
  esbuild,
@@ -653,7 +459,6 @@ export {
653
459
  runSourceTransform,
654
460
  shouldTransform,
655
461
  splitClassName,
656
- sva,
657
462
  transformSource,
658
463
  vite,
659
464
  webpack