@styleframe/loader 1.0.1 → 1.0.3

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 ADDED
@@ -0,0 +1,874 @@
1
+ import { stat, rm, mkdir, writeFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { loadConfig, watchConfig } from "c12";
4
+ const N$1 = ["charset", "import", "namespace"], E$1 = ["layer"], V$1 = ({ name: e }) => `[data-theme="${e}"]`, _$1 = ({
5
+ name: e,
6
+ value: t,
7
+ modifiers: s
8
+ }) => `._${[...s, e, t].filter(Boolean).join("\\:")}`, O$1 = ({ name: e }) => e;
9
+ function D$1(e, t) {
10
+ return `@${e}${t ? " " : ""}${t}`;
11
+ }
12
+ const B$1 = /\d/, L$1 = ["-", "_", "/", "."];
13
+ function M$1(e = "") {
14
+ if (!B$1.test(e))
15
+ return e !== e.toLowerCase();
16
+ }
17
+ function U(e, t) {
18
+ const s = L$1, r = [];
19
+ if (!e || typeof e != "string")
20
+ return r;
21
+ let c = "", l, u;
22
+ for (const i of e) {
23
+ const n = s.includes(i);
24
+ if (n === true) {
25
+ r.push(c), c = "", l = void 0;
26
+ continue;
27
+ }
28
+ const o = M$1(i);
29
+ if (u === false) {
30
+ if (l === false && o === true) {
31
+ r.push(c), c = i, l = o;
32
+ continue;
33
+ }
34
+ if (l === true && o === false && c.length > 1) {
35
+ const f = c.at(-1);
36
+ r.push(c.slice(0, Math.max(0, c.length - 1))), c = f + i, l = o;
37
+ continue;
38
+ }
39
+ }
40
+ c += i, l = o, u = n;
41
+ }
42
+ return r.push(c), r;
43
+ }
44
+ function P(e, t) {
45
+ return e ? (Array.isArray(e) ? e : U(e)).map((s) => s.toLowerCase()).join("-") : "";
46
+ }
47
+ function k$1(e) {
48
+ return ` ${e}`;
49
+ }
50
+ function x(e) {
51
+ return e.split(`
52
+ `).map((t) => k$1(t)).join(`
53
+ `);
54
+ }
55
+ function z$1(e) {
56
+ return P(e);
57
+ }
58
+ function H$1(e) {
59
+ return z$1(e);
60
+ }
61
+ function T$1(e, t) {
62
+ return `${e.startsWith("--") ? e : H$1(e)}: ${t};`;
63
+ }
64
+ function I$1(e) {
65
+ return `{${e.length > 0 ? `
66
+ ` : ""}${e.map((t) => `${x(`${t}`)}
67
+ `).join("")}}`;
68
+ }
69
+ function $$1(e) {
70
+ return `--${(e.startsWith("--") ? e.slice(2) : e).replace(/[^a-zA-Z0-9_\-\u0080-\uFFFF]/g, "-") || "unknown-variable"}`;
71
+ }
72
+ function K$1(e, t) {
73
+ return T$1($$1(e), t);
74
+ }
75
+ function Q(e, t) {
76
+ return `var(${$$1(e)}${t ? `, ${t}` : ""})`;
77
+ }
78
+ function C$1(e, t) {
79
+ return `${e} ${I$1(t)}`;
80
+ }
81
+ function W$1(e) {
82
+ return function(s, r) {
83
+ return Object.entries(s).map(([c, l]) => T$1(c, e(l, r)));
84
+ };
85
+ }
86
+ function w$1(e) {
87
+ return function(s, r) {
88
+ const l = (r.variables?.name ?? O$1)({ name: s.name });
89
+ return K$1(l, e(s.value, r));
90
+ };
91
+ }
92
+ function A(e) {
93
+ const t = w$1(e), s = W$1(e);
94
+ return function(c, l, u) {
95
+ const { variables: i, declarations: n, children: o } = l, f = c === ":root", a = (i ?? []).map(
96
+ (g2) => t(g2, u)
97
+ ), m2 = s(
98
+ n ?? {},
99
+ u
100
+ ), b2 = (o ?? []).map(
101
+ (g2) => e(g2, u)
102
+ ), p2 = a.length > 0, h = m2.length > 0, S2 = b2.length > 0;
103
+ return f ? `${p2 || h ? C$1(c, [
104
+ ...a,
105
+ ...p2 && h ? [""] : [],
106
+ ...m2
107
+ ]) : ""}${S2 && (p2 || h) ? `
108
+
109
+ ` : ""}${b2.join(`
110
+
111
+ `)}` : C$1(c, [
112
+ ...a,
113
+ ...p2 && (S2 || h) ? [""] : [],
114
+ ...m2,
115
+ ...h && S2 ? [""] : [],
116
+ ...b2.flatMap(
117
+ (g2, F2) => F2 === b2.length - 1 ? [g2] : [g2, ""]
118
+ )
119
+ ]);
120
+ };
121
+ }
122
+ function Z(e) {
123
+ const t = A(e);
124
+ return function(r, c) {
125
+ const l = N$1.includes(r.identifier), u = E$1.includes(
126
+ r.identifier
127
+ ), i = Object.keys(r.declarations).length > 0, n = r.variables.length > 0, o = r.children.length > 0, f = D$1(r.identifier, r.rule);
128
+ return l || u && !(i || n || o) ? `${f};` : t(f, r, c);
129
+ };
130
+ }
131
+ function q$1(e) {
132
+ return typeof e == "object" && e !== null;
133
+ }
134
+ function d(e, t) {
135
+ return q$1(e) && "type" in e && e.type === t;
136
+ }
137
+ function G(e) {
138
+ return d(e, "variable");
139
+ }
140
+ function J(e) {
141
+ return d(e, "reference");
142
+ }
143
+ function Y$1(e) {
144
+ return d(e, "selector");
145
+ }
146
+ function X(e) {
147
+ return d(e, "at-rule");
148
+ }
149
+ function ee(e) {
150
+ return d(e, "utility");
151
+ }
152
+ function te(e) {
153
+ return d(e, "css");
154
+ }
155
+ function re(e) {
156
+ return d(e, "theme");
157
+ }
158
+ function ne(e) {
159
+ return d(e, "root");
160
+ }
161
+ function j$1(e) {
162
+ if (e instanceof Buffer)
163
+ return Buffer.from(e);
164
+ const t = e.constructor;
165
+ return new t(
166
+ e.buffer.slice(0),
167
+ e.byteOffset,
168
+ e.byteLength / e.BYTES_PER_ELEMENT || 1
169
+ );
170
+ }
171
+ function oe$1(e) {
172
+ if (e = e || {}, e.circular)
173
+ return ue(e);
174
+ const t = /* @__PURE__ */ new Map();
175
+ if (t.set(Date, (u) => new Date(u)), t.set(
176
+ Map,
177
+ (u, i) => new Map(r(Array.from(u), i))
178
+ ), t.set(
179
+ Set,
180
+ (u, i) => new Set(r(Array.from(u), i))
181
+ ), e.constructorHandlers)
182
+ for (const u of e.constructorHandlers)
183
+ t.set(u[0], u[1]);
184
+ let s;
185
+ return e.proto ? l : c;
186
+ function r(u, i) {
187
+ const n = Object.keys(u), o = Array.from({ length: n.length });
188
+ for (let f = 0; f < n.length; f++) {
189
+ const a = n[f], m2 = u[a];
190
+ typeof m2 != "object" || m2 === null ? o[a] = m2 : m2.constructor !== Object && (s = t.get(m2.constructor)) ? o[a] = s(m2, i) : ArrayBuffer.isView(m2) ? o[a] = j$1(m2) : o[a] = i(m2);
191
+ }
192
+ return o;
193
+ }
194
+ function c(u) {
195
+ if (typeof u != "object" || u === null) return u;
196
+ if (Array.isArray(u)) return r(u, c);
197
+ if (u.constructor !== Object && (s = t.get(u.constructor)))
198
+ return s(u, c);
199
+ const i = {};
200
+ for (const n in u) {
201
+ if (Object.hasOwnProperty.call(u, n) === false) continue;
202
+ const o = u[n];
203
+ typeof o != "object" || o === null ? i[n] = o : o.constructor !== Object && (s = t.get(o.constructor)) ? i[n] = s(o, c) : ArrayBuffer.isView(o) ? i[n] = j$1(o) : i[n] = c(o);
204
+ }
205
+ return i;
206
+ }
207
+ function l(u) {
208
+ if (typeof u != "object" || u === null) return u;
209
+ if (Array.isArray(u)) return r(u, l);
210
+ if (u.constructor !== Object && (s = t.get(u.constructor)))
211
+ return s(u, l);
212
+ const i = {};
213
+ for (const n in u) {
214
+ const o = u[n];
215
+ typeof o != "object" || o === null ? i[n] = o : o.constructor !== Object && (s = t.get(o.constructor)) ? i[n] = s(o, l) : ArrayBuffer.isView(o) ? i[n] = j$1(o) : i[n] = l(o);
216
+ }
217
+ return i;
218
+ }
219
+ }
220
+ function ue(e) {
221
+ const t = [], s = [], r = /* @__PURE__ */ new Map();
222
+ if (r.set(Date, (n) => new Date(n)), r.set(
223
+ Map,
224
+ (n, o) => new Map(l(Array.from(n), o))
225
+ ), r.set(
226
+ Set,
227
+ (n, o) => new Set(l(Array.from(n), o))
228
+ ), e.constructorHandlers)
229
+ for (const n of e.constructorHandlers)
230
+ r.set(n[0], n[1]);
231
+ let c;
232
+ return e.proto ? i : u;
233
+ function l(n, o) {
234
+ const f = Object.keys(n), a = Array.from({ length: f.length });
235
+ for (let m2 = 0; m2 < f.length; m2++) {
236
+ const b2 = f[m2], p2 = n[b2];
237
+ if (typeof p2 != "object" || p2 === null)
238
+ a[b2] = p2;
239
+ else if (p2.constructor !== Object && (c = r.get(p2.constructor)))
240
+ a[b2] = c(p2, o);
241
+ else if (ArrayBuffer.isView(p2))
242
+ a[b2] = j$1(p2);
243
+ else {
244
+ const h = t.indexOf(p2);
245
+ h !== -1 ? a[b2] = s[h] : a[b2] = o(p2);
246
+ }
247
+ }
248
+ return a;
249
+ }
250
+ function u(n) {
251
+ if (typeof n != "object" || n === null) return n;
252
+ if (Array.isArray(n)) return l(n, u);
253
+ if (n.constructor !== Object && (c = r.get(n.constructor)))
254
+ return c(n, u);
255
+ const o = {};
256
+ t.push(n), s.push(o);
257
+ for (const f in n) {
258
+ if (Object.hasOwnProperty.call(n, f) === false) continue;
259
+ const a = n[f];
260
+ if (typeof a != "object" || a === null)
261
+ o[f] = a;
262
+ else if (a.constructor !== Object && (c = r.get(a.constructor)))
263
+ o[f] = c(a, u);
264
+ else if (ArrayBuffer.isView(a))
265
+ o[f] = j$1(a);
266
+ else {
267
+ const m2 = t.indexOf(a);
268
+ m2 !== -1 ? o[f] = s[m2] : o[f] = u(a);
269
+ }
270
+ }
271
+ return t.pop(), s.pop(), o;
272
+ }
273
+ function i(n) {
274
+ if (typeof n != "object" || n === null) return n;
275
+ if (Array.isArray(n)) return l(n, i);
276
+ if (n.constructor !== Object && (c = r.get(n.constructor)))
277
+ return c(n, i);
278
+ const o = {};
279
+ t.push(n), s.push(o);
280
+ for (const f in n) {
281
+ const a = n[f];
282
+ if (typeof a != "object" || a === null)
283
+ o[f] = a;
284
+ else if (a.constructor !== Object && (c = r.get(a.constructor)))
285
+ o[f] = c(a, i);
286
+ else if (ArrayBuffer.isView(a))
287
+ o[f] = j$1(a);
288
+ else {
289
+ const m2 = t.indexOf(a);
290
+ m2 !== -1 ? o[f] = s[m2] : o[f] = i(a);
291
+ }
292
+ }
293
+ return t.pop(), s.pop(), o;
294
+ }
295
+ }
296
+ oe$1();
297
+ function ce(e) {
298
+ return function(s, r) {
299
+ return s.value.map((c) => e(c, r)).join("").trim();
300
+ };
301
+ }
302
+ function se(e) {
303
+ return function(s, r) {
304
+ return s != null ? `${s}` : "";
305
+ };
306
+ }
307
+ function ie(e) {
308
+ return function(s, r) {
309
+ const l = (r.variables?.name ?? O$1)({ name: s.name });
310
+ return Q(
311
+ l,
312
+ s.fallback ? e(s.fallback, r) : void 0
313
+ );
314
+ };
315
+ }
316
+ function ae(e) {
317
+ const t = A(e);
318
+ return function(r, c) {
319
+ return r.themes.reduce(
320
+ (l, u) => (l.push(e(u, c)), l),
321
+ [t(":root", r, c)]
322
+ // Default theme (root)
323
+ ).join(`
324
+
325
+ `);
326
+ };
327
+ }
328
+ function le(e) {
329
+ const t = A(e);
330
+ return function(r, c) {
331
+ return t(r.query, r, c);
332
+ };
333
+ }
334
+ function fe(e) {
335
+ const t = A(e);
336
+ return function(r, c) {
337
+ const u = (c.theme?.selector ?? V$1)({ name: r.name });
338
+ return t(u, r, c);
339
+ };
340
+ }
341
+ function me(e) {
342
+ const t = A(e);
343
+ return function(r, c) {
344
+ const l = [], i = (c.utilities?.selector ?? _$1)({
345
+ name: r.name,
346
+ value: r.value,
347
+ modifiers: r.modifiers
348
+ });
349
+ return l.push(t(i, r, c)), l.join(`
350
+
351
+ `);
352
+ };
353
+ }
354
+ function y(e, t) {
355
+ const s = ae(y), r = le(y), c = me(y), l = Z(y), u = fe(y), i = w$1(y), n = ie(y), o = ce(y), f = se();
356
+ switch (true) {
357
+ case Y$1(e):
358
+ return r(e, t);
359
+ case ee(e):
360
+ return c(e, t);
361
+ case X(e):
362
+ return l(e, t);
363
+ case ne(e):
364
+ return s(e, t);
365
+ case re(e):
366
+ return u(e, t);
367
+ case G(e):
368
+ return i(e, t);
369
+ case J(e):
370
+ return n(e, t);
371
+ case te(e):
372
+ return o(e, t);
373
+ default:
374
+ return f(e, t);
375
+ }
376
+ }
377
+ function R$1(e, t) {
378
+ switch (true) {
379
+ case Array.isArray(e):
380
+ return e.map((s) => R$1(s)).join(`
381
+ `);
382
+ // case isRecipe(instance):
383
+ // return consumeRecipe(instance, options);
384
+ // break;
385
+ default:
386
+ return "";
387
+ }
388
+ }
389
+ function v(e, t = "") {
390
+ return {
391
+ name: e,
392
+ content: t
393
+ };
394
+ }
395
+ function be(e, {
396
+ type: t = "all",
397
+ consumers: s = { css: y, ts: R$1 }
398
+ } = {}) {
399
+ const r = { files: [] }, c = e.options, { recipes: l, ...u } = e.root;
400
+ if (t === "all" || t === "css") {
401
+ const i = v("index.css", s.css(u, c));
402
+ r.files.push(i);
403
+ }
404
+ if (t === "all" || t === "ts") {
405
+ const i = v("index.ts", s.ts([], c));
406
+ r.files.push(i);
407
+ }
408
+ return r;
409
+ }
410
+ async function directoryExists(path2) {
411
+ try {
412
+ const stats = await stat(path2);
413
+ return stats.isDirectory();
414
+ } catch {
415
+ return false;
416
+ }
417
+ }
418
+ async function build(instance, { clean = true, outputDir = "./styleframe", transpiler } = {}) {
419
+ const output = be(instance, transpiler);
420
+ const outputDirExists = await directoryExists(outputDir);
421
+ if (clean && outputDirExists) {
422
+ await rm(outputDir, { recursive: true });
423
+ }
424
+ for (const file of output.files) {
425
+ const filePath = path.join(outputDir, file.name);
426
+ const fileOutputDirPath = path.dirname(filePath);
427
+ const fileOutputDirExists = await directoryExists(fileOutputDirPath);
428
+ if (!fileOutputDirExists) {
429
+ await mkdir(fileOutputDirPath, { recursive: true });
430
+ }
431
+ await writeFile(filePath, file.content);
432
+ }
433
+ }
434
+ function M(e, t) {
435
+ return function(n, ...o) {
436
+ return {
437
+ type: "css",
438
+ value: n.reduce((i, u, c) => (i.push(u), c < o.length && i.push(o[c]), i), [])
439
+ };
440
+ };
441
+ }
442
+ function V(e) {
443
+ return typeof e == "object" && e !== null;
444
+ }
445
+ function p(e, t) {
446
+ return V(e) && "type" in e && e.type === t;
447
+ }
448
+ function k(e) {
449
+ return p(e, "variable");
450
+ }
451
+ function O(e) {
452
+ return p(e, "reference");
453
+ }
454
+ function B(e) {
455
+ return p(e, "css");
456
+ }
457
+ function F(e) {
458
+ return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || e === null;
459
+ }
460
+ function R(e) {
461
+ return F(e) || O(e) || B(e) || Array.isArray(e) && e.every(R);
462
+ }
463
+ function T(e) {
464
+ return V(e) && "children" in e && "declarations" in e && "variables" in e;
465
+ }
466
+ function w(e, t) {
467
+ return function(n, o, s) {
468
+ const i = {
469
+ type: "at-rule",
470
+ identifier: n,
471
+ rule: o,
472
+ declarations: {},
473
+ variables: [],
474
+ children: []
475
+ }, u = b(i, t);
476
+ return typeof s == "function" ? i.declarations = s(u) ?? {} : s && (i.declarations = s), g(i.declarations, u), e.children.push(i), i;
477
+ };
478
+ }
479
+ function C(e, t) {
480
+ const r = w(e, t);
481
+ return function(o, s) {
482
+ return r("media", o, s);
483
+ };
484
+ }
485
+ function _(e, t) {
486
+ const r = w(e, t);
487
+ return function(o, s) {
488
+ return r("keyframes", o, s);
489
+ };
490
+ }
491
+ function S(e, t) {
492
+ return function(n, o) {
493
+ return k(n) ? {
494
+ type: "reference",
495
+ name: n.name,
496
+ fallback: o
497
+ } : {
498
+ type: "reference",
499
+ name: n,
500
+ fallback: o
501
+ };
502
+ };
503
+ }
504
+ function E(e, t) {
505
+ return function(n, o) {
506
+ const s = {
507
+ type: "selector",
508
+ query: n,
509
+ declarations: {},
510
+ variables: [],
511
+ children: []
512
+ }, i = b(s, t);
513
+ return typeof o == "function" ? s.declarations = o(i) ?? {} : T(o) ? (s.variables = o.variables, s.declarations = o.declarations, s.children = o.children) : s.declarations = o, g(s.declarations, i), e.children.push(s), s;
514
+ };
515
+ }
516
+ function D(e, t) {
517
+ return function(n, o, s = {
518
+ default: false
519
+ }) {
520
+ const i = typeof n == "string" ? n : n.name, u = e.variables.find(
521
+ (f) => f.name === i
522
+ );
523
+ if (s.default && u)
524
+ return u;
525
+ if (u)
526
+ return u.value = o, u;
527
+ const c = {
528
+ type: "variable",
529
+ name: i,
530
+ value: o
531
+ };
532
+ return e.variables.push(c), c;
533
+ };
534
+ }
535
+ function b(e, t) {
536
+ const r = D(e), n = E(e, t), o = w(e, t), s = _(t, t), i = C(e, t), u = S(), c = M();
537
+ return {
538
+ variable: r,
539
+ selector: n,
540
+ keyframes: s,
541
+ atRule: o,
542
+ media: i,
543
+ ref: u,
544
+ css: c
545
+ };
546
+ }
547
+ function g(e, t) {
548
+ for (const r in e)
549
+ if (r.startsWith("@")) {
550
+ const n = e[r];
551
+ if (typeof n == "object" && n !== null && !R(n)) {
552
+ const o = r.replace(/^@(\w+).*/, "$1"), s = r.replace(`@${o}`, "").trim();
553
+ t.atRule(o, s, n), delete e[r];
554
+ }
555
+ } else if (/^[.&:]/.test(r)) {
556
+ const n = e[r];
557
+ typeof n == "object" && (t.selector(r, n), delete e[r]);
558
+ }
559
+ return e;
560
+ }
561
+ function m(e) {
562
+ if (e instanceof Buffer)
563
+ return Buffer.from(e);
564
+ const t = e.constructor;
565
+ return new t(
566
+ e.buffer.slice(0),
567
+ e.byteOffset,
568
+ e.byteLength / e.BYTES_PER_ELEMENT || 1
569
+ );
570
+ }
571
+ function H(e) {
572
+ if (e = e || {}, e.circular)
573
+ return K(e);
574
+ const t = /* @__PURE__ */ new Map();
575
+ if (t.set(Date, (i) => new Date(i)), t.set(
576
+ Map,
577
+ (i, u) => new Map(n(Array.from(i), u))
578
+ ), t.set(
579
+ Set,
580
+ (i, u) => new Set(n(Array.from(i), u))
581
+ ), e.constructorHandlers)
582
+ for (const i of e.constructorHandlers)
583
+ t.set(i[0], i[1]);
584
+ let r;
585
+ return e.proto ? s : o;
586
+ function n(i, u) {
587
+ const c = Object.keys(i), f = Array.from({ length: c.length });
588
+ for (let a = 0; a < c.length; a++) {
589
+ const l = c[a], y2 = i[l];
590
+ typeof y2 != "object" || y2 === null ? f[l] = y2 : y2.constructor !== Object && (r = t.get(y2.constructor)) ? f[l] = r(y2, u) : ArrayBuffer.isView(y2) ? f[l] = m(y2) : f[l] = u(y2);
591
+ }
592
+ return f;
593
+ }
594
+ function o(i) {
595
+ if (typeof i != "object" || i === null) return i;
596
+ if (Array.isArray(i)) return n(i, o);
597
+ if (i.constructor !== Object && (r = t.get(i.constructor)))
598
+ return r(i, o);
599
+ const u = {};
600
+ for (const c in i) {
601
+ if (Object.hasOwnProperty.call(i, c) === false) continue;
602
+ const f = i[c];
603
+ typeof f != "object" || f === null ? u[c] = f : f.constructor !== Object && (r = t.get(f.constructor)) ? u[c] = r(f, o) : ArrayBuffer.isView(f) ? u[c] = m(f) : u[c] = o(f);
604
+ }
605
+ return u;
606
+ }
607
+ function s(i) {
608
+ if (typeof i != "object" || i === null) return i;
609
+ if (Array.isArray(i)) return n(i, s);
610
+ if (i.constructor !== Object && (r = t.get(i.constructor)))
611
+ return r(i, s);
612
+ const u = {};
613
+ for (const c in i) {
614
+ const f = i[c];
615
+ typeof f != "object" || f === null ? u[c] = f : f.constructor !== Object && (r = t.get(f.constructor)) ? u[c] = r(f, s) : ArrayBuffer.isView(f) ? u[c] = m(f) : u[c] = s(f);
616
+ }
617
+ return u;
618
+ }
619
+ }
620
+ function K(e) {
621
+ const t = [], r = [], n = /* @__PURE__ */ new Map();
622
+ if (n.set(Date, (c) => new Date(c)), n.set(
623
+ Map,
624
+ (c, f) => new Map(s(Array.from(c), f))
625
+ ), n.set(
626
+ Set,
627
+ (c, f) => new Set(s(Array.from(c), f))
628
+ ), e.constructorHandlers)
629
+ for (const c of e.constructorHandlers)
630
+ n.set(c[0], c[1]);
631
+ let o;
632
+ return e.proto ? u : i;
633
+ function s(c, f) {
634
+ const a = Object.keys(c), l = Array.from({ length: a.length });
635
+ for (let y2 = 0; y2 < a.length; y2++) {
636
+ const h = a[y2], d2 = c[h];
637
+ if (typeof d2 != "object" || d2 === null)
638
+ l[h] = d2;
639
+ else if (d2.constructor !== Object && (o = n.get(d2.constructor)))
640
+ l[h] = o(d2, f);
641
+ else if (ArrayBuffer.isView(d2))
642
+ l[h] = m(d2);
643
+ else {
644
+ const v2 = t.indexOf(d2);
645
+ v2 !== -1 ? l[h] = r[v2] : l[h] = f(d2);
646
+ }
647
+ }
648
+ return l;
649
+ }
650
+ function i(c) {
651
+ if (typeof c != "object" || c === null) return c;
652
+ if (Array.isArray(c)) return s(c, i);
653
+ if (c.constructor !== Object && (o = n.get(c.constructor)))
654
+ return o(c, i);
655
+ const f = {};
656
+ t.push(c), r.push(f);
657
+ for (const a in c) {
658
+ if (Object.hasOwnProperty.call(c, a) === false) continue;
659
+ const l = c[a];
660
+ if (typeof l != "object" || l === null)
661
+ f[a] = l;
662
+ else if (l.constructor !== Object && (o = n.get(l.constructor)))
663
+ f[a] = o(l, i);
664
+ else if (ArrayBuffer.isView(l))
665
+ f[a] = m(l);
666
+ else {
667
+ const y2 = t.indexOf(l);
668
+ y2 !== -1 ? f[a] = r[y2] : f[a] = i(l);
669
+ }
670
+ }
671
+ return t.pop(), r.pop(), f;
672
+ }
673
+ function u(c) {
674
+ if (typeof c != "object" || c === null) return c;
675
+ if (Array.isArray(c)) return s(c, u);
676
+ if (c.constructor !== Object && (o = n.get(c.constructor)))
677
+ return o(c, u);
678
+ const f = {};
679
+ t.push(c), r.push(f);
680
+ for (const a in c) {
681
+ const l = c[a];
682
+ if (typeof l != "object" || l === null)
683
+ f[a] = l;
684
+ else if (l.constructor !== Object && (o = n.get(l.constructor)))
685
+ f[a] = o(l, u);
686
+ else if (ArrayBuffer.isView(l))
687
+ f[a] = m(l);
688
+ else {
689
+ const y2 = t.indexOf(l);
690
+ y2 !== -1 ? f[a] = r[y2] : f[a] = u(l);
691
+ }
692
+ }
693
+ return t.pop(), r.pop(), f;
694
+ }
695
+ }
696
+ const j = H();
697
+ function $(e) {
698
+ const t = [];
699
+ function r(n, o) {
700
+ o.length > 0 && t.push([...o].sort());
701
+ for (let s = n; s < e.length; s++) {
702
+ const i = e[s];
703
+ if (i)
704
+ if (i.length === 1 && i[0])
705
+ r(s + 1, [...o, i[0]]);
706
+ else
707
+ for (const u of i)
708
+ r(s + 1, [...o, u]);
709
+ }
710
+ }
711
+ return r(0, []), t.sort((n, o) => n.length !== o.length ? n.length - o.length : n.join(",").localeCompare(o.join(",")));
712
+ }
713
+ function L(e, t, r) {
714
+ const n = {
715
+ ...e,
716
+ modifiers: [...r.keys()]
717
+ }, o = b(n, t);
718
+ for (const s of r.values())
719
+ s.factory({
720
+ ...o,
721
+ declarations: j(n.declarations),
722
+ variables: j(n.variables),
723
+ children: j(n.children)
724
+ }), g(n.declarations, o);
725
+ return n;
726
+ }
727
+ function N(e, t) {
728
+ return function(n, o) {
729
+ const s = {
730
+ type: "modifier",
731
+ key: Array.isArray(n) ? n : [n],
732
+ factory: o
733
+ };
734
+ return t.modifiers.push(s), s;
735
+ };
736
+ }
737
+ function z() {
738
+ return {
739
+ type: "root",
740
+ declarations: {},
741
+ utilities: [],
742
+ modifiers: [],
743
+ recipes: [],
744
+ variables: [],
745
+ children: [],
746
+ themes: []
747
+ };
748
+ }
749
+ function I(e, t, r) {
750
+ const n = t.map((s) => s.key);
751
+ return $(n).map((s) => {
752
+ const i = /* @__PURE__ */ new Map();
753
+ for (const u of s) {
754
+ const c = t.find(
755
+ (f) => f.key.includes(u)
756
+ );
757
+ c && i.set(u, c);
758
+ }
759
+ return L(e, r, i);
760
+ });
761
+ }
762
+ function W(e, t) {
763
+ return function(n, o) {
764
+ const s = {
765
+ type: "utility",
766
+ name: n,
767
+ factory: o
768
+ };
769
+ return t.utilities.push(s), (i, u = []) => {
770
+ for (const [c, f] of Object.entries(i)) {
771
+ const a = {
772
+ type: "utility",
773
+ name: n,
774
+ value: c,
775
+ declarations: {},
776
+ variables: [],
777
+ children: [],
778
+ modifiers: []
779
+ }, l = b(
780
+ a,
781
+ t
782
+ );
783
+ a.declarations = o({
784
+ ...l,
785
+ value: f
786
+ }) ?? {}, g(a.declarations, l), e.children.push(a), u.length > 0 && e.children.push(
787
+ ...I(a, u, t)
788
+ );
789
+ }
790
+ };
791
+ };
792
+ }
793
+ function Y(e, t) {
794
+ return function(n, o) {
795
+ const s = t.themes.find((c) => c.name === n), i = s ?? {
796
+ type: "theme",
797
+ name: n,
798
+ declarations: {},
799
+ variables: [],
800
+ children: []
801
+ };
802
+ s || t.themes.push(i);
803
+ const u = b(i, t);
804
+ return o && o(u), i;
805
+ };
806
+ }
807
+ function q(e, t) {
808
+ return function(n, o, s, i) {
809
+ const u = {
810
+ type: "recipe",
811
+ name: n,
812
+ defaults: o,
813
+ variants: s,
814
+ ...i
815
+ };
816
+ return t.recipes.push(u), u;
817
+ };
818
+ }
819
+ function oe(e) {
820
+ const t = z(), r = { ...e }, n = W(t, t), o = N(t, t), s = q(t, t), i = Y(t, t), { variable: u, selector: c, atRule: f, keyframes: a, media: l, ref: y2, css: h } = b(t, t);
821
+ return {
822
+ root: t,
823
+ variable: u,
824
+ selector: c,
825
+ utility: n,
826
+ modifier: o,
827
+ recipe: s,
828
+ theme: i,
829
+ atRule: f,
830
+ keyframes: a,
831
+ media: l,
832
+ ref: y2,
833
+ css: h,
834
+ options: r
835
+ };
836
+ }
837
+ async function loadConfiguration({
838
+ cwd = process.cwd(),
839
+ name = "styleframe"
840
+ } = {}) {
841
+ const { config } = await loadConfig({
842
+ cwd,
843
+ name,
844
+ defaults: oe()
845
+ });
846
+ return config;
847
+ }
848
+ async function loadConfigurationFromPath(entry) {
849
+ const entryPath = path.resolve(entry);
850
+ const cwd = path.dirname(entryPath);
851
+ const name = path.basename(entryPath).replace(/(\.config)?(\.ts)?$/, "");
852
+ return await loadConfiguration({ cwd, name });
853
+ }
854
+ async function watchConfiguration({
855
+ cwd = process.cwd()
856
+ } = {}) {
857
+ return await watchConfig({
858
+ cwd,
859
+ name: "styleframe",
860
+ acceptHMR({ getDiff }) {
861
+ const diff = getDiff();
862
+ if (diff.length === 0) {
863
+ return true;
864
+ }
865
+ }
866
+ });
867
+ }
868
+ export {
869
+ build,
870
+ directoryExists,
871
+ loadConfiguration,
872
+ loadConfigurationFromPath,
873
+ watchConfiguration
874
+ };