zyzz 0.0.24 → 0.0.26

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 (106) hide show
  1. package/README.md +23 -365
  2. package/dist/Style.d.ts +2 -0
  3. package/dist/Style.d.ts.map +1 -1
  4. package/dist/Vars.d.ts +18 -2
  5. package/dist/Vars.d.ts.map +1 -1
  6. package/dist/Vars.js +21 -3
  7. package/dist/Vars.js.map +1 -1
  8. package/dist/compiler/Graph.d.ts +3 -0
  9. package/dist/compiler/Graph.d.ts.map +1 -1
  10. package/dist/compiler/Graph.js +38 -2
  11. package/dist/compiler/Graph.js.map +1 -1
  12. package/dist/compiler/Source.d.ts.map +1 -1
  13. package/dist/compiler/Source.js +11 -3
  14. package/dist/compiler/Source.js.map +1 -1
  15. package/dist/compiler/Transform.d.ts +4 -0
  16. package/dist/compiler/Transform.d.ts.map +1 -1
  17. package/dist/compiler/Transform.js +79 -15
  18. package/dist/compiler/Transform.js.map +1 -1
  19. package/dist/compiler/internal/Applications.d.ts +20 -0
  20. package/dist/compiler/internal/Applications.d.ts.map +1 -1
  21. package/dist/compiler/internal/Applications.js +151 -47
  22. package/dist/compiler/internal/Applications.js.map +1 -1
  23. package/dist/compiler/internal/Compositions.d.ts.map +1 -1
  24. package/dist/compiler/internal/Compositions.js +6 -0
  25. package/dist/compiler/internal/Compositions.js.map +1 -1
  26. package/dist/compiler/internal/Configurations.d.ts +3 -0
  27. package/dist/compiler/internal/Configurations.d.ts.map +1 -1
  28. package/dist/compiler/internal/Configurations.js +6 -1
  29. package/dist/compiler/internal/Configurations.js.map +1 -1
  30. package/dist/compiler/internal/Contract.d.ts.map +1 -1
  31. package/dist/compiler/internal/Contract.js +34 -7
  32. package/dist/compiler/internal/Contract.js.map +1 -1
  33. package/dist/compiler/internal/PackedStyles.d.ts.map +1 -1
  34. package/dist/compiler/internal/PackedStyles.js +7 -0
  35. package/dist/compiler/internal/PackedStyles.js.map +1 -1
  36. package/dist/compiler/internal/Themes.d.ts.map +1 -1
  37. package/dist/compiler/internal/Themes.js +123 -35
  38. package/dist/compiler/internal/Themes.js.map +1 -1
  39. package/dist/internal/Configuration.d.ts +10 -0
  40. package/dist/internal/Configuration.d.ts.map +1 -1
  41. package/dist/internal/Configuration.js +13 -1
  42. package/dist/internal/Configuration.js.map +1 -1
  43. package/dist/internal/Token.d.ts +2 -0
  44. package/dist/internal/Token.d.ts.map +1 -1
  45. package/dist/internal/Token.js.map +1 -1
  46. package/dist/internal/VariableSets.d.ts +20 -4
  47. package/dist/internal/VariableSets.d.ts.map +1 -1
  48. package/dist/internal/VariableSets.js +70 -19
  49. package/dist/internal/VariableSets.js.map +1 -1
  50. package/dist/next/internal/Project.d.ts.map +1 -1
  51. package/dist/next/internal/Project.js +30 -25
  52. package/dist/next/internal/Project.js.map +1 -1
  53. package/dist/next/loader.js +2 -1
  54. package/dist/next/loader.js.map +1 -1
  55. package/dist/node/Host.d.ts.map +1 -1
  56. package/dist/node/Host.js +32 -23
  57. package/dist/node/Host.js.map +1 -1
  58. package/dist/node/internal/Contracts.d.ts +22 -0
  59. package/dist/node/internal/Contracts.d.ts.map +1 -0
  60. package/dist/node/internal/Contracts.js +287 -0
  61. package/dist/node/internal/Contracts.js.map +1 -0
  62. package/dist/react-native/internal/Tokens.d.ts.map +1 -1
  63. package/dist/react-native/internal/Tokens.js +3 -6
  64. package/dist/react-native/internal/Tokens.js.map +1 -1
  65. package/dist/unplugin/index.d.ts.map +1 -1
  66. package/dist/unplugin/index.js +31 -13
  67. package/dist/unplugin/index.js.map +1 -1
  68. package/dist/vite/index.d.ts.map +1 -1
  69. package/dist/vite/index.js +33 -44
  70. package/dist/vite/index.js.map +1 -1
  71. package/dist/web/Css.d.ts +10 -5
  72. package/dist/web/Css.d.ts.map +1 -1
  73. package/dist/web/Css.js +170 -31
  74. package/dist/web/Css.js.map +1 -1
  75. package/dist/web/internal/ClassName.d.ts +49 -0
  76. package/dist/web/internal/ClassName.d.ts.map +1 -1
  77. package/dist/web/internal/ClassName.js +57 -0
  78. package/dist/web/internal/ClassName.js.map +1 -1
  79. package/dist/web/internal/Themes.d.ts.map +1 -1
  80. package/dist/web/internal/Themes.js +4 -2
  81. package/dist/web/internal/Themes.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/Style.ts +2 -0
  84. package/src/Vars.ts +104 -12
  85. package/src/compiler/Graph.ts +42 -2
  86. package/src/compiler/Source.ts +11 -3
  87. package/src/compiler/Transform.ts +130 -29
  88. package/src/compiler/internal/Applications.ts +239 -63
  89. package/src/compiler/internal/Compositions.ts +9 -0
  90. package/src/compiler/internal/Configurations.ts +8 -1
  91. package/src/compiler/internal/Contract.ts +59 -7
  92. package/src/compiler/internal/PackedStyles.ts +9 -0
  93. package/src/compiler/internal/Themes.ts +174 -52
  94. package/src/internal/Configuration.ts +26 -4
  95. package/src/internal/Token.ts +2 -0
  96. package/src/internal/VariableSets.ts +104 -24
  97. package/src/next/internal/Project.ts +28 -23
  98. package/src/next/loader.ts +2 -1
  99. package/src/node/Host.ts +31 -24
  100. package/src/node/internal/Contracts.ts +384 -0
  101. package/src/react-native/internal/Tokens.ts +5 -6
  102. package/src/unplugin/index.ts +35 -13
  103. package/src/vite/index.ts +38 -45
  104. package/src/web/Css.ts +228 -42
  105. package/src/web/internal/ClassName.ts +114 -0
  106. package/src/web/internal/Themes.ts +12 -11
package/dist/web/Css.d.ts CHANGED
@@ -9,7 +9,8 @@ export type Contribution = Contributions.Definition;
9
9
  /**
10
10
  * Emits atomic or grouped CSS without reading files or generating runtime code.
11
11
  * Shares only nonconflicting declaration domains; conflicting rules retain authored
12
- * order by default. Independent composition deduplicates complete applications.
12
+ * order by default. Independent composition deduplicates complete applications and
13
+ * shares equal atomic domain declarations under short names.
13
14
  * Class lists are scoped to the complete compilation input. Empty styles
14
15
  * return an empty class list and no rule.
15
16
  * @param options - Validated, ordered definitions from Style.define.
@@ -27,18 +28,20 @@ export declare namespace compile {
27
28
  readonly [Themes.shared]?: 'all' | 'defaults' | undefined;
28
29
  /** Readable source bindings and consumer-owned configuration namespaces. */
29
30
  readonly [ClassName.labels]?: ClassName.Labels | undefined;
31
+ /** Names shared independent atomic rules, with one name table across a graph's modules. */
32
+ readonly [ClassName.units]?: ClassName.Units | undefined;
30
33
  /** Fixed class identities used by CSS-only consumers. */
31
34
  readonly names?: Readonly<Record<string, string>> | undefined;
32
35
  /**
33
- * Defaults to ordered, preserving stylesheet precedence across combined class lists.
34
- * Independent deduplicates complete applications; its class lists must not be
35
- * combined with each other. Resolve composition before compiling in this mode.
36
+ * Ordered by default, preserving precedence across combined class lists.
37
+ * Independent shares applications and atomic declarations, so resolve
38
+ * composition first and never combine its lists.
36
39
  */
40
+ readonly composition?: 'independent' | 'ordered' | undefined;
37
41
  /** Eager module-level stylesheet contributions, supplied as static data. */
38
42
  readonly contributions?: readonly Contribution[] | undefined;
39
43
  /** CSS representation; atomic declarations are the default. */
40
44
  readonly cssOutput?: 'atomic' | 'grouped' | undefined;
41
- readonly composition?: 'independent' | 'ordered' | undefined;
42
45
  /** Retains live definitions for development updates. */
43
46
  readonly development?: boolean | undefined;
44
47
  /**
@@ -57,6 +60,8 @@ export declare namespace compile {
57
60
  type ReturnType<name extends string = string, themeName extends string = string> = {
58
61
  /** Exact emitted rule bodies retained for graph-wide collision diagnostics. */
59
62
  readonly [ClassName.rules]: Readonly<Record<string, string>>;
63
+ /** Shared rule names chosen by this compilation, for graph cache validation. */
64
+ readonly [ClassName.units]: ClassName.Units['used'];
60
65
  /** Shared token resources omitted from this module's stylesheet. */
61
66
  readonly [Themes.shared]?: readonly Themes.Resource[] | undefined;
62
67
  /** Contribution text separated for graph-wide hoisting. */
@@ -1 +1 @@
1
- {"version":3,"file":"Css.d.ts","sourceRoot":"","sources":["../../src/web/Css.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Css.d.ts","sourceRoot":"","sources":["../../src/web/Css.ts"],"names":[],"mappings":"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"}
package/dist/web/Css.js CHANGED
@@ -14,7 +14,8 @@ import * as Themes from './internal/Themes.js';
14
14
  /**
15
15
  * Emits atomic or grouped CSS without reading files or generating runtime code.
16
16
  * Shares only nonconflicting declaration domains; conflicting rules retain authored
17
- * order by default. Independent composition deduplicates complete applications.
17
+ * order by default. Independent composition deduplicates complete applications and
18
+ * shares equal atomic domain declarations under short names.
18
19
  * Class lists are scoped to the complete compilation input. Empty styles
19
20
  * return an empty class list and no rule.
20
21
  * @param options - Validated, ordered definitions from Style.define.
@@ -23,6 +24,8 @@ import * as Themes from './internal/Themes.js';
23
24
  */
24
25
  export function compile(options) {
25
26
  const labels = options[ClassName.labels] ?? options.styles[ClassName.labels];
27
+ const units = options[ClassName.units] ??
28
+ ClassName.registry().scope({ owner: '', qualifier: '' });
26
29
  options = {
27
30
  ...options,
28
31
  styles: { styles: options.styles.styles.map(Targets.web) },
@@ -61,11 +64,17 @@ export function compile(options) {
61
64
  const classes = Object.create(null);
62
65
  const diagnostics = [];
63
66
  const groups = new Map();
64
- const nestedComposition = options.styles.styles.some((style) => style.rules);
67
+ const nestedComposition = options.styles.styles.some((style) => style.rules && !isolated(style));
65
68
  const properties = new Set();
66
- for (const style of analyzed)
69
+ // Conditional and composed declarations join the same conflict domains.
70
+ function collect(style) {
67
71
  for (const { property } of style.declarations)
68
72
  properties.add(property);
73
+ for (const rule of style.rules ?? [])
74
+ collect(rule.style);
75
+ }
76
+ for (const style of analyzed)
77
+ collect(style);
69
78
  // Logical dimensions may alias either physical axis in inherited writing modes.
70
79
  // Preserve physical-only factoring when no logical dimension is authored.
71
80
  const logicalSizing = [...properties].some((property) => /^(min|max)?(blockSize|inlineSize)$/i.test(canonical(property)));
@@ -278,28 +287,31 @@ export function compile(options) {
278
287
  }
279
288
  // Sharing is safe only when every use of a conflict domain has the same
280
289
  // declaration sequence. Conditions conservatively retain contextual identities.
290
+ // Isolated class lists never combine, so atomic sharing considers ordered styles only.
291
+ const ordered = new Map();
292
+ const combinable = new Set();
293
+ for (const [index, style] of options.styles.styles.entries())
294
+ if (!isolated(style))
295
+ combinable.add(canonicalStyles[index]);
281
296
  for (const style of analyzed) {
282
297
  const domains = new Map();
283
298
  for (const item of style.declarations) {
284
299
  const property = item.property;
285
300
  const key = conflict(property);
286
- const declaration = declarationBody(item);
287
- if (groups.get(key) === false)
288
- continue;
289
- const entry = domains.get(key) ?? {
290
- body: '',
291
- property,
292
- };
293
- entry.body += declaration;
294
- if (entry.property !== property)
295
- groups.set(key, false);
301
+ const entry = domains.get(key) ?? { body: '', mixed: false, property };
302
+ entry.body += declarationBody(item);
303
+ entry.mixed ||= entry.property !== property;
296
304
  domains.set(key, entry);
297
305
  }
298
- for (const [key, entry] of domains) {
299
- const value = entry.body;
300
- const previous = groups.get(key);
301
- groups.set(key, previous === undefined || previous === value ? value : false);
302
- }
306
+ for (const [key, entry] of domains)
307
+ for (const map of combinable.has(style) ? [groups, ordered] : [groups]) {
308
+ const previous = map.get(key);
309
+ map.set(key, previous === false ||
310
+ entry.mixed ||
311
+ (previous !== undefined && previous !== entry.body)
312
+ ? false
313
+ : entry.body);
314
+ }
303
315
  }
304
316
  const defaultMode = options.cssOutput ?? 'atomic';
305
317
  if (defaultMode !== 'atomic' && defaultMode !== 'grouped')
@@ -313,6 +325,59 @@ export function compile(options) {
313
325
  function outputMode(style) {
314
326
  return Object.getOwnPropertyDescriptor(style, 'cssOutput')?.value;
315
327
  }
328
+ function compositionMode(style) {
329
+ const mode = Object.getOwnPropertyDescriptor(style, 'composition')
330
+ ?.value;
331
+ return mode ?? options.composition ?? 'ordered';
332
+ }
333
+ // Development keeps every style ordered so names survive value edits.
334
+ function isolated(style) {
335
+ return compositionMode(style) === 'independent' && !options.development;
336
+ }
337
+ // Lists declaration groups in authored order; undefined marks styles whose
338
+ // nested grouped output or anonymous layers emit one opaque rule.
339
+ function flatten(style, conditions = []) {
340
+ if (outputMode(style) === 'grouped')
341
+ return undefined;
342
+ if (style.rules) {
343
+ const items = [];
344
+ for (const rule of style.rules) {
345
+ if (rule.condition?.trim() === '@layer')
346
+ return undefined;
347
+ const nested = flatten(rule.style, rule.condition === undefined
348
+ ? conditions
349
+ : [...conditions, rule.condition]);
350
+ if (!nested)
351
+ return undefined;
352
+ items.push(...nested);
353
+ }
354
+ return items;
355
+ }
356
+ const items = [];
357
+ for (let index = 0; index < style.declarations.length;) {
358
+ const property = style.declarations[index].property;
359
+ let value = '';
360
+ // Keep same-property fallbacks ordered; they form one semantic value.
361
+ while (style.declarations[index]?.property === property) {
362
+ const declaration = style.declarations[index++];
363
+ value += `${Literal.name(property)}:${serialize(declaration.value)}${declaration.important ? '!important' : ''};`;
364
+ }
365
+ items.push({ conditions, property, value });
366
+ }
367
+ return items;
368
+ }
369
+ function byDomain(items) {
370
+ const result = new Map();
371
+ for (const item of items) {
372
+ const key = conflict(item.property);
373
+ const domain = result.get(key);
374
+ if (domain)
375
+ domain.push(item);
376
+ else
377
+ result.set(key, [item]);
378
+ }
379
+ return result;
380
+ }
316
381
  function representation(style) {
317
382
  return [
318
383
  outputMode(style),
@@ -348,8 +413,40 @@ export function compile(options) {
348
413
  const key = conflict(declaration.property);
349
414
  occurrences.set(key, (occurrences.get(key) ?? 0) + 1);
350
415
  }
416
+ // An ordered atomic style reuses the rules of the previous style that set a
417
+ // domain to the same sequence: no differing rule sits between them.
418
+ const runs = new Map();
419
+ const owned = new Map();
420
+ if (!options.development) {
421
+ const last = new Map();
422
+ for (const [index, style] of options.styles.styles.entries()) {
423
+ if (isolated(style))
424
+ continue;
425
+ const items = (outputMode(style) ?? defaultMode) === 'atomic' &&
426
+ options.names?.[style.name] === undefined
427
+ ? flatten(style)
428
+ : undefined;
429
+ // Grouped, explicit, and opaque rules may set any domain.
430
+ if (!items) {
431
+ last.clear();
432
+ continue;
433
+ }
434
+ for (const [domain, list] of byDomain(items)) {
435
+ const key = JSON.stringify(list.map((item) => [item.conditions, item.value]));
436
+ const previous = last.get(domain);
437
+ if (previous?.key !== key) {
438
+ last.set(domain, { key, owner: index });
439
+ continue;
440
+ }
441
+ const reuse = runs.get(index) ?? new Map();
442
+ reuse.set(domain, previous.owner);
443
+ runs.set(index, reuse);
444
+ }
445
+ }
446
+ }
351
447
  for (const [styleIndex, style] of options.styles.styles.entries()) {
352
448
  const mode = outputMode(style) ?? defaultMode;
449
+ const independent = compositionMode(style) === 'independent' && !options.development;
353
450
  if (!style.name || Object.hasOwn(classes, style.name)) {
354
451
  diagnostics.push({
355
452
  code: 'invalid_name',
@@ -375,9 +472,7 @@ export function compile(options) {
375
472
  continue;
376
473
  explicitModes.add(key);
377
474
  }
378
- const application = explicit === undefined &&
379
- options.composition === 'independent' &&
380
- !options.development
475
+ const application = explicit === undefined && independent
381
476
  ? `${mode}:${style.rules ? JSON.stringify(representation(style)) : ''}:${nested(canonicalStyles[styleIndex])}`
382
477
  : undefined;
383
478
  if (application !== undefined && applications.has(application)) {
@@ -396,16 +491,13 @@ export function compile(options) {
396
491
  }
397
492
  function emit(body, label, shared, output = mode, conditional) {
398
493
  if (!body)
399
- return;
400
- const independent = mode === 'grouped' &&
401
- !options.development &&
402
- output === mode &&
403
- options.composition === 'independent';
404
- const reusable = explicit === undefined && (shared || independent);
494
+ return undefined;
495
+ const reusable = explicit === undefined &&
496
+ (shared || (independent && mode === 'grouped' && output === mode));
405
497
  const previous = reusable ? sharedRules[output].get(body) : undefined;
406
498
  if (previous && !names.includes(previous)) {
407
499
  names.push(previous);
408
- return;
500
+ return previous;
409
501
  }
410
502
  if (previous)
411
503
  shared = false;
@@ -447,6 +539,7 @@ export function compile(options) {
447
539
  sharedRules[output].set(body, identity);
448
540
  names.push(identity);
449
541
  }
542
+ return identity;
450
543
  }
451
544
  function atoms(style, conditions = []) {
452
545
  if (outputMode(style) === 'grouped') {
@@ -475,14 +568,56 @@ export function compile(options) {
475
568
  // Keep same-property fallbacks ordered; they form one semantic value.
476
569
  while (style.declarations[index]?.property === property)
477
570
  values.push(style.declarations[index++]);
571
+ const domain = conflict(property);
572
+ const owner = runs.get(styleIndex)?.get(domain);
573
+ const reused = owner === undefined ? undefined : owned.get(owner)?.get(domain);
574
+ if (reused) {
575
+ for (const identity of reused)
576
+ if (!names.includes(identity))
577
+ names.push(identity);
578
+ continue;
579
+ }
478
580
  const value = values
479
581
  .map(({ important, value }) => `${Literal.name(property)}:${serialize(value)}${important ? '!important' : ''};`)
480
582
  .join('');
481
583
  const body = conditions.reduceRight((body, condition) => `${condition}{${body}}`, value);
482
584
  const shared = !nestedComposition &&
483
585
  !conditions.length &&
484
- groups.get(conflict(property)) !== false;
485
- emit(body, property, shared, mode, { conditions, value });
586
+ ordered.get(domain) !== false;
587
+ const identity = emit(body, property, shared, mode, {
588
+ conditions,
589
+ value,
590
+ });
591
+ if (identity === undefined)
592
+ continue;
593
+ const domains = owned.get(styleIndex) ?? new Map();
594
+ domains.set(domain, [...(domains.get(domain) ?? []), identity]);
595
+ owned.set(styleIndex, domains);
596
+ }
597
+ }
598
+ // Independent class lists never combine, so only declarations within one
599
+ // conflict domain need relative order. Equal domain bodies share one rule.
600
+ function share(style) {
601
+ const items = flatten(style);
602
+ if (!items)
603
+ return atoms(style);
604
+ for (const domain of byDomain(items).values()) {
605
+ // Conditional rules stay contextual to keep their order against base declarations.
606
+ if (domain.some((item) => item.conditions.length)) {
607
+ for (const item of domain)
608
+ emit(item.conditions.reduceRight((body, condition) => `${condition}{${body}}`, item.value), item.property, false, mode, item);
609
+ continue;
610
+ }
611
+ const body = domain.map((item) => item.value).join('');
612
+ const identity = units.name(body, cssNamespace);
613
+ if (rules.has(identity) && rules.get(identity) !== body)
614
+ diagnostics.push({
615
+ code: 'identity_collision',
616
+ message: 'Generated class names conflict. Supply distinct config or style ids.',
617
+ path: [style.name],
618
+ });
619
+ rules.set(identity, body);
620
+ names.push(identity);
486
621
  }
487
622
  }
488
623
  try {
@@ -492,7 +627,7 @@ export function compile(options) {
492
627
  for (const declaration of style.declarations) {
493
628
  const key = conflict(declaration.property);
494
629
  const reusable = !style.rules &&
495
- options.composition === 'independent' &&
630
+ independent &&
496
631
  groups.get(key) !== false &&
497
632
  (occurrences.get(key) ?? 0) > 1;
498
633
  if (reusable)
@@ -507,6 +642,8 @@ export function compile(options) {
507
642
  else
508
643
  emit(nested(style), 'style', false);
509
644
  }
645
+ else if (explicit === undefined && independent)
646
+ share(style);
510
647
  else
511
648
  atoms(style);
512
649
  }
@@ -576,6 +713,7 @@ export function compile(options) {
576
713
  const result = {
577
714
  ...(scopes.resources.length ? { [Themes.shared]: scopes.resources } : {}),
578
715
  ...(contributionCss ? { contributionCss, scopedCss } : {}),
716
+ [ClassName.units]: units.used,
579
717
  [ClassName.rules]: Object.freeze({
580
718
  ...Object.fromEntries(rules),
581
719
  ...Object.fromEntries(scopes.rules.map((rule) => [
@@ -588,6 +726,7 @@ export function compile(options) {
588
726
  vars: scopes.classes,
589
727
  };
590
728
  Object.defineProperty(result, ClassName.rules, { enumerable: false });
729
+ Object.defineProperty(result, ClassName.units, { enumerable: false });
591
730
  return Object.freeze(result);
592
731
  }
593
732
  /** Aggregated literal compilation diagnostics in authored traversal order. */
@@ -1 +1 @@
1
- {"version":3,"file":"Css.js","sourceRoot":"","sources":["../../src/web/Css.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Css.js","sourceRoot":"","sources":["../../src/web/Css.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,55 @@ export declare namespace create {
20
20
  export declare function selector(value: string): string;
21
21
  /** Carries exact emitted rule bodies for graph-wide collision checks. */
22
22
  export declare const rules: unique symbol;
23
+ /** Carries a compilation's unit naming scope in, and its naming decisions out. */
24
+ export declare const units: unique symbol;
25
+ /**
26
+ * Marks a graph compiled once with every module, whose stylesheets load together.
27
+ * Only its modules may reuse names that unrelated modules introduce.
28
+ */
29
+ export declare const complete: unique symbol;
30
+ /** One compilation's unit names. */
31
+ export type Units = {
32
+ /** Names a declaration unit, reusing a visible earlier name for an equal body. */
33
+ readonly name: (body: string, namespace: string | undefined) => string;
34
+ /** Names chosen so far, keyed by namespace and body, and whether each was reused. */
35
+ readonly used: ReadonlyMap<string, Decision>;
36
+ };
37
+ /** A naming decision recorded so cached output can be validated against a later build. */
38
+ export type Decision = {
39
+ /** Whether the name was introduced by an earlier compilation. */
40
+ readonly borrowed: boolean;
41
+ /** Emitted class name. */
42
+ readonly name: string;
43
+ };
44
+ /** Shares unit names across the compilations of one graph. */
45
+ export declare function registry(): registry.ReturnType;
46
+ /** Graph-wide unit naming contracts. */
47
+ export declare namespace registry {
48
+ /** Visibility and identity of one compilation in the shared name table. */
49
+ type Options = {
50
+ /** Compilation identity recorded on the names it introduces. */
51
+ readonly owner: string;
52
+ /** Limits reuse to names introduced by these owners. Defaults to every owner. */
53
+ readonly visible?: ((owner: string) => boolean) | undefined;
54
+ };
55
+ /** Creates per-compilation naming scopes over one shared name table. */
56
+ type ReturnType = {
57
+ /**
58
+ * Registers a cached compilation's names. Returns false, registering nothing,
59
+ * when compiling it now would choose different names.
60
+ */
61
+ readonly restore: (options: Options & {
62
+ /** Decisions recorded by the cached compilation. */
63
+ readonly used: ReadonlyMap<string, Decision>;
64
+ }) => boolean;
65
+ /** Names units for one compilation, whose qualifier keeps new names distinct. */
66
+ readonly scope: (options: Options & {
67
+ /** Fixed prefix distinguishing this compilation's new names. */
68
+ readonly qualifier: string;
69
+ }) => Units;
70
+ };
71
+ }
23
72
  /** Carries authored names between source extraction and CSS emission. */
24
73
  export declare const labels: unique symbol;
25
74
  /** Authored names retained on extracted style data. */
@@ -1 +1 @@
1
- {"version":3,"file":"ClassName.d.ts","sourceRoot":"","sources":["../../../src/web/internal/ClassName.ts"],"names":[],"mappings":"AAGA,uEAAuE;AACvE,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CA4BtD;AAED,uFAAuF;AACvF,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,oEAAoE;IACpE,KAAK,OAAO,GAAG;QACb,gEAAgE;QAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,yEAAyE;QACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACrC,uDAAuD;QACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,mCAAmC;QACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,0DAA0D;QAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACnC,CAAA;CACF;AAqCD,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,yEAAyE;AACzE,eAAO,MAAM,KAAK,eAA2B,CAAA;AAE7C,yEAAyE;AACzE,eAAO,MAAM,MAAM,eAA4B,CAAA;AAE/C,uDAAuD;AACvD,MAAM,MAAM,MAAM,GAAG,QAAQ,CAC3B,MAAM,CACJ,MAAM,EACN;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CACnE,CACF,CAAA"}
1
+ {"version":3,"file":"ClassName.d.ts","sourceRoot":"","sources":["../../../src/web/internal/ClassName.ts"],"names":[],"mappings":"AAGA,uEAAuE;AACvE,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CA4BtD;AAED,uFAAuF;AACvF,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,oEAAoE;IACpE,KAAK,OAAO,GAAG;QACb,gEAAgE;QAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,yEAAyE;QACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACrC,uDAAuD;QACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,mCAAmC;QACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,0DAA0D;QAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACnC,CAAA;CACF;AAqCD,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,yEAAyE;AACzE,eAAO,MAAM,KAAK,eAA2B,CAAA;AAE7C,kFAAkF;AAClF,eAAO,MAAM,KAAK,eAA2B,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,QAAQ,eAA8B,CAAA;AAEnD,oCAAoC;AACpC,MAAM,MAAM,KAAK,GAAG;IAClB,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAA;IACtE,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAC7C,CAAA;AAED,0FAA0F;AAC1F,MAAM,MAAM,QAAQ,GAAG;IACrB,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,8DAA8D;AAC9D,wBAAgB,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAsD9C;AAED,wCAAwC;AACxC,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,2EAA2E;IAC3E,KAAK,OAAO,GAAG;QACb,gEAAgE;QAChE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,iFAAiF;QACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;KAC5D,CAAA;IAED,wEAAwE;IACxE,KAAK,UAAU,GAAG;QAChB;;;WAGG;QACH,QAAQ,CAAC,OAAO,EAAE,CAChB,OAAO,EAAE,OAAO,GAAG;YACjB,oDAAoD;YACpD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;SAC7C,KACE,OAAO,CAAA;QACZ,iFAAiF;QACjF,QAAQ,CAAC,KAAK,EAAE,CACd,OAAO,EAAE,OAAO,GAAG;YACjB,gEAAgE;YAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;SAC3B,KACE,KAAK,CAAA;KACX,CAAA;CACF;AAED,yEAAyE;AACzE,eAAO,MAAM,MAAM,eAA4B,CAAA;AAE/C,uDAAuD;AACvD,MAAM,MAAM,MAAM,GAAG,QAAQ,CAC3B,MAAM,CACJ,MAAM,EACN;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CACnE,CACF,CAAA"}
@@ -59,6 +59,63 @@ export function selector(value) {
59
59
  }
60
60
  /** Carries exact emitted rule bodies for graph-wide collision checks. */
61
61
  export const rules = Symbol('zyzz.css.rules');
62
+ /** Carries a compilation's unit naming scope in, and its naming decisions out. */
63
+ export const units = Symbol('zyzz.css.units');
64
+ /**
65
+ * Marks a graph compiled once with every module, whose stylesheets load together.
66
+ * Only its modules may reuse names that unrelated modules introduce.
67
+ */
68
+ export const complete = Symbol('zyzz.css.complete');
69
+ /** Shares unit names across the compilations of one graph. */
70
+ export function registry() {
71
+ const names = new Map();
72
+ // A borrowed name stays tied to its first owner, so later modules can resolve it.
73
+ function borrow(key, visible) {
74
+ const previous = names.get(key);
75
+ if (previous && (visible?.(previous.owner) ?? true))
76
+ return previous.name;
77
+ return undefined;
78
+ }
79
+ return {
80
+ restore(options) {
81
+ for (const [key, decision] of options.used) {
82
+ const name = borrow(key, options.visible);
83
+ if ((name !== undefined) !== decision.borrowed)
84
+ return false;
85
+ if (name !== undefined && name !== decision.name)
86
+ return false;
87
+ }
88
+ for (const [key, decision] of options.used)
89
+ if (!names.has(key))
90
+ names.set(key, { name: decision.name, owner: options.owner });
91
+ return true;
92
+ },
93
+ scope(options) {
94
+ const local = new Map();
95
+ const used = new Map();
96
+ return {
97
+ name(body, namespace) {
98
+ const key = `${namespace ?? ''}\n${body}`;
99
+ // Every distinct body consumes a slot, so own names never depend on reuse.
100
+ let index = local.get(key);
101
+ if (index === undefined) {
102
+ index = local.size;
103
+ local.set(key, index);
104
+ }
105
+ const borrowed = borrow(key, options.visible);
106
+ // The underscore keeps unit names apart from readable names and anonymous scopes.
107
+ const name = borrowed ??
108
+ `z_${namespace ? `${namespace}-` : ''}${options.qualifier}${index.toString(36)}`;
109
+ if (!names.has(key))
110
+ names.set(key, { name, owner: options.owner });
111
+ used.set(key, { borrowed: borrowed !== undefined, name });
112
+ return name;
113
+ },
114
+ used,
115
+ };
116
+ },
117
+ };
118
+ }
62
119
  /** Carries authored names between source extraction and CSS emission. */
63
120
  export const labels = Symbol('zyzz.css.labels');
64
121
  //# sourceMappingURL=ClassName.js.map