@pandacss/transformer 2.0.0-beta.19 → 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/css-BPeL3U6s.d.ts +4 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +176 -371
- package/dist/runtime/cx.d.ts +2 -2
- package/dist/runtime/cx.js +181 -52
- package/dist/runtime/internal.d.ts +37 -48
- package/dist/runtime/internal.js +334 -341
- package/dist/runtime/internal.runtime.mjs +278 -1
- package/package.json +3 -3
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
let
|
|
66
|
-
|
|
67
|
-
if (
|
|
68
|
-
if (
|
|
69
|
-
|
|
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
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
|
|
199
|
-
if (
|
|
200
|
-
|
|
201
|
-
|
|
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
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
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
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
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
|
-
|
|
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
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
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
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
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
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
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
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
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
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
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 = '
|
|
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
|