@animus-ui/system 0.1.9 → 0.1.12

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 (86) hide show
  1. package/README.md +124 -51
  2. package/dist/Animus.d.ts +3 -2
  3. package/dist/Animus.d.ts.map +1 -1
  4. package/dist/AnimusExtended.d.ts +3 -2
  5. package/dist/AnimusExtended.d.ts.map +1 -1
  6. package/dist/SystemBuilder.d.ts +184 -155
  7. package/dist/SystemBuilder.d.ts.map +1 -1
  8. package/dist/appearance/index.d.ts +0 -68
  9. package/dist/appearance/index.d.ts.map +1 -1
  10. package/dist/appearance/index.js +0 -91
  11. package/dist/assert-root-slot-C3Lp9MNJ.js +10 -0
  12. package/dist/asset.d.ts +4 -13
  13. package/dist/asset.d.ts.map +1 -1
  14. package/dist/bootstrap/createAppearanceBootstrap.d.ts +0 -57
  15. package/dist/bootstrap/createAppearanceBootstrap.d.ts.map +1 -1
  16. package/dist/bootstrap/index.d.ts.map +1 -1
  17. package/dist/bootstrap/index.js +4 -58
  18. package/dist/class-resolver.d.ts +6 -0
  19. package/dist/class-resolver.d.ts.map +1 -0
  20. package/dist/class-resolver.js +2 -0
  21. package/dist/compose.d.ts +2 -16
  22. package/dist/compose.d.ts.map +1 -1
  23. package/dist/compose.js +3 -17
  24. package/dist/composeWithContext.d.ts +4 -15
  25. package/dist/composeWithContext.d.ts.map +1 -1
  26. package/dist/composeWithContext.js +5 -16
  27. package/dist/conditions.d.ts +24 -141
  28. package/dist/conditions.d.ts.map +1 -1
  29. package/dist/createClassResolver-EpwTL9Sa.js +228 -0
  30. package/dist/createComposedFamily-C4NovMcd.js +115 -0
  31. package/dist/groups/index.js +1 -1
  32. package/dist/index.d.ts +2 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +318 -408
  35. package/dist/keyframes.d.ts +2 -23
  36. package/dist/keyframes.d.ts.map +1 -1
  37. package/dist/runtime/assert-root-slot.d.ts +2 -13
  38. package/dist/runtime/assert-root-slot.d.ts.map +1 -1
  39. package/dist/runtime/createClassResolver.d.ts +10 -9
  40. package/dist/runtime/createClassResolver.d.ts.map +1 -1
  41. package/dist/runtime/createComposedFamily.d.ts +2 -7
  42. package/dist/runtime/createComposedFamily.d.ts.map +1 -1
  43. package/dist/runtime/index.d.ts +0 -16
  44. package/dist/runtime/index.d.ts.map +1 -1
  45. package/dist/runtime/is-dev.d.ts +2 -42
  46. package/dist/runtime/is-dev.d.ts.map +1 -1
  47. package/dist/runtime/resolveClasses.d.ts +8 -33
  48. package/dist/runtime/resolveClasses.d.ts.map +1 -1
  49. package/dist/runtime/witness.d.ts +0 -8
  50. package/dist/runtime/witness.d.ts.map +1 -1
  51. package/dist/runtime-entry.d.ts +2 -7
  52. package/dist/runtime-entry.d.ts.map +1 -1
  53. package/dist/runtime-entry.js +2 -1
  54. package/dist/selectors.d.ts +6 -45
  55. package/dist/selectors.d.ts.map +1 -1
  56. package/dist/{size-DHdmBc64.js → size-C6jqxiQy.js} +7 -34
  57. package/dist/theme/createTheme.d.ts +26 -95
  58. package/dist/theme/createTheme.d.ts.map +1 -1
  59. package/dist/theme/flattenScale.d.ts +4 -10
  60. package/dist/theme/flattenScale.d.ts.map +1 -1
  61. package/dist/theme/resolveReferences.d.ts +7 -35
  62. package/dist/theme/resolveReferences.d.ts.map +1 -1
  63. package/dist/theme/serializeTokens.d.ts +0 -3
  64. package/dist/theme/serializeTokens.d.ts.map +1 -1
  65. package/dist/theme/types.d.ts +4 -26
  66. package/dist/theme/types.d.ts.map +1 -1
  67. package/dist/theme/utils.d.ts +1 -18
  68. package/dist/theme/utils.d.ts.map +1 -1
  69. package/dist/transforms/border.d.ts +1 -4
  70. package/dist/transforms/border.d.ts.map +1 -1
  71. package/dist/transforms/createTransform.d.ts +6 -31
  72. package/dist/transforms/createTransform.d.ts.map +1 -1
  73. package/dist/transforms/grid.d.ts +2 -12
  74. package/dist/transforms/grid.d.ts.map +1 -1
  75. package/dist/transforms/size.d.ts +2 -8
  76. package/dist/transforms/size.d.ts.map +1 -1
  77. package/dist/types/component.d.ts +9 -105
  78. package/dist/types/component.d.ts.map +1 -1
  79. package/dist/types/config.d.ts +12 -141
  80. package/dist/types/config.d.ts.map +1 -1
  81. package/dist/types/theme.d.ts +8 -165
  82. package/dist/types/theme.d.ts.map +1 -1
  83. package/dist/utils/deepMerge.d.ts.map +1 -1
  84. package/package.json +17 -4
  85. package/dist/assert-root-slot-B83scqPh.js +0 -21
  86. package/dist/createComposedFamily-3ZugjBpU.js +0 -472
@@ -1,40 +1,32 @@
1
1
  import { ColorModeOptions, ContextualVarRegistration, CSSColorValue, ModeAliasDefinition, SerializedTheme, ThemeCssFragment, ThemeManifest, ThemeStructuralKey, TokenDefinition } from '../types/theme';
2
2
  import { LiteralPaths } from './flattenScale';
3
- /** Flatten a type to prevent MergeTheme depth accumulation (TS2589). Exported for use in consumer themes. */
3
+ /** Identity mapping that caches the type, preventing TS2589 depth growth. */
4
4
  export type Flatten<T> = {
5
5
  [K in keyof T]: T[K];
6
6
  };
7
- /** Right-biased object merge used where runtime composition is also right-biased. */
8
7
  type MergeRecord<Base, Incoming> = Omit<Base, keyof Incoming> & Incoming;
9
8
  /**
10
- * The union of contextual var NAMES declared across all scales in a
11
- * `declareContextualVars` config. Read only for the optional registration
12
- * parameter's key constraint — it derives FROM the already-inferred `Vars`, so
13
- * it can never feed back into `Vars` inference or perturb literal-key narrowing.
9
+ * Var NAMES across all scales. Derives from the already-inferred `Vars`, so it
10
+ * never feeds back into inference or perturbs literal-key narrowing.
14
11
  */
15
12
  type ContextualVarNames<Vars> = {
16
13
  [K in keyof Vars]: Vars[K] extends readonly (infer N extends string)[] ? N : never;
17
14
  }[keyof Vars];
18
15
  type ThemeScaleKeys<T> = Exclude<keyof T & string, ThemeStructuralKey>;
19
- /** The built theme: nested raw data + non-enumerable boundary methods */
16
+ /** Theme data plus boundary members, non-enumerable at runtime. */
20
17
  type BuiltTheme<T, Emitted extends string> = {
21
18
  [K in keyof T]: T[K];
22
19
  } & {
23
- /** Phantom — tuple wrapper prevents never-distribution. Non-enumerable at runtime. */
20
+ /** Tuple wrapper prevents never-distribution. Non-enumerable at runtime. */
24
21
  readonly __emitted: [Emitted];
25
22
  manifest: ThemeManifest;
26
23
  serialize(): SerializedTheme;
27
- /** Resolve a dot-path token to its var() reference. Runtime-validated against the manifest. */
24
+ /** Dot-path token → `var()` ref, or the raw value if not emitted. */
28
25
  varRef(tokenPath: string): string | undefined;
29
26
  };
30
27
  /**
31
- * Manifest-v2 fields carried through `from()`'s explicit manifest read (the
32
- * manifest is non-enumerable, so the ordinary key-copy loop never sees it).
33
- * A read-only carrier for the D8 copy-on-write substrate: in this manifest
34
- * version `build()` still REGENERATES every fragment from the authored data
35
- * (zero-delta contract — carried fragments never become the source of
36
- * `variableCss` here); later increments consult it for per-section
37
- * pass-through.
28
+ * Manifest fields carried through the explicit manifest read — the manifest is
29
+ * non-enumerable. Read-only: `build()` regenerates every fragment.
38
30
  */
39
31
  interface CarriedManifestV2 {
40
32
  tokenDefinitions?: Record<string, TokenDefinition>;
@@ -45,64 +37,43 @@ interface CarriedManifestV2 {
45
37
  contractHash?: string;
46
38
  cssFragments?: ThemeCssFragment[];
47
39
  }
48
- /** Shared runtime state passed between builder phases. */
49
40
  interface BuilderState {
50
41
  theme: Record<string, unknown>;
51
42
  emittedScales: Set<string>;
52
43
  contextualVars: Map<string, string[]>;
53
44
  /**
54
- * `@property` registration metadata keyed by contextual var NAME (not the
55
- * `--` custom property). Opt-in — empty unless a declaration supplies it.
56
- * Kept separate from `contextualVars` so the names-only registry the Rust
57
- * extractor consumes (`contextualVarsJson`) never changes shape.
45
+ * Keyed by contextual var NAME, not the `--` custom property. Kept out of
46
+ * `contextualVars` so the extractor's names-only registry keeps its shape.
58
47
  */
59
48
  contextualVarRegistrations: Map<string, ContextualVarRegistration>;
60
- /** See {@link CarriedManifestV2}. Present only after a v2-manifest from(). */
61
49
  carriedManifestV2?: CarriedManifestV2;
62
50
  /**
63
- * Set when a `from()` source carried a manifest WITHOUT the v2 discriminant.
64
- * The authored graph behind that data is unknowable, so `build()` suppresses
65
- * ALL v2 manifest fields rather than fabricating them from resolved values
66
- * (D8) — the composed theme stays v1-shaped and increment 03's targeted
67
- * `createThemeVariants` rejection keys off exactly that absence.
51
+ * A source manifest without the v2 discriminant: the authored graph is
52
+ * unknowable, so `build()` suppresses all v2 fields instead of fabricating.
68
53
  */
69
54
  hasLegacyManifestSource: boolean;
70
55
  /**
71
- * Per-leaf-path provenance of `extend()` sources: flattened dot-path →
72
- * 1-based index of the extend call that first defined it (D3/G4 — sibling
73
- * conflicts error naming both sources positionally; positional labels are
74
- * the accepted form until DEF-4's provenance artifact).
56
+ * Flattened leaf path → 1-based index of the `extend()` call that first
57
+ * defined it; sibling conflicts name both sources by that index.
75
58
  */
76
59
  extendProvenance: Map<string, number>;
77
- /** Number of `extend()` calls made so far — the next source's label index. */
78
60
  extendCount: number;
79
61
  /**
80
- * Mode names carried in by `extend()` sources (D6). Inherited modes are
81
- * EXEMPT from the coverage gate — a kit's own alias asymmetry is
82
- * pre-existing behavior, not consumer breakage, and must round-trip.
62
+ * Mode names carried in by `extend()`. Exempt from the coverage gate — a
63
+ * kit's own alias asymmetry must round-trip unchanged.
83
64
  */
84
65
  inheritedModes: Set<string>;
85
66
  /**
86
- * Alias dot-paths declared by any extended source's modes (D6). A
87
- * consumer-declared mode leaving any of these uncovered needs a `basedOn`
88
- * entry or the build fails listing the uncovered set.
67
+ * Alias dot-paths from extended sources: a consumer-declared mode must cover
68
+ * them or name a base.
89
69
  */
90
70
  inheritedModeAliases: Set<string>;
91
71
  /**
92
- * Token paths dropped by an explicit `addScale({ replace: true })` →
93
- * replaced scale name (D5). Consulted at `build()`: a reference whose
94
- * target is absent from the merged map AND present here is a hard error;
95
- * a later re-add simply makes the target known again.
72
+ * Token path dropped by `addScale({ replace: true })` → the replaced scale.
73
+ * A reference to one that is never re-added fails `build()`.
96
74
  */
97
75
  droppedTokenPaths: Map<string, string>;
98
76
  }
99
- /**
100
- * What `from()` actually inherits from its argument: a library bundle
101
- * contributes its theme half — `theme ?? tokens` (D9 naming; `tokens`
102
- * accepted until DEF-8 resolves) — anything else is treated as a built
103
- * theme and contributes itself. Mirrors the runtime bundle detection inside
104
- * `from()`.
105
- */
106
77
  type ThemeSourceOf<Source> = Source extends {
107
78
  system: {
108
79
  toConfig(...args: never[]): unknown;
@@ -111,22 +82,13 @@ type ThemeSourceOf<Source> = Source extends {
111
82
  tokens?: infer TokensHalf;
112
83
  } ? ThemeHalf extends Record<string, unknown> ? ThemeHalf : TokensHalf extends Record<string, unknown> ? TokensHalf : Record<never, never> : Source;
113
84
  type ThemeBoundaryKey = '__emitted' | 'manifest' | 'serialize' | 'varRef';
114
- /** Runtime composition copies enumerable data and deliberately skips methods. */
115
85
  type ThemeDataOf<Source> = {
116
86
  [Key in keyof Source as Key extends ThemeBoundaryKey ? never : Extract<Source[Key], (...args: never[]) => unknown> extends never ? Key : never]: Source[Key];
117
87
  };
118
88
  type MergeThemeData<Base, Source> = Flatten<MergeRecord<Base, ThemeDataOf<Source>>>;
119
- /** Preserve the built source's exact emitted-scale phantom without exposing it as data. */
120
89
  type EmittedThemeScalesOf<Source> = Source extends {
121
90
  readonly __emitted: [infer Emitted extends string];
122
91
  } ? Emitted : never;
123
- /**
124
- * What `extend()` inherits from its argument: a library bundle contributes
125
- * its THEME half — `theme ?? tokens` (D9 naming; `tokens` accepted until
126
- * DEF-8 resolves) — anything else is treated as a built theme and
127
- * contributes itself. Mirrors the runtime bundle-half resolution inside
128
- * `extend()`.
129
- */
130
92
  type ExtendedThemeSourceOf<Source> = Source extends {
131
93
  system: {
132
94
  toConfig(...args: never[]): unknown;
@@ -136,50 +98,23 @@ type ExtendedThemeSourceOf<Source> = Source extends {
136
98
  } ? ThemeHalf extends Record<string, unknown> ? ThemeHalf : TokensHalf extends Record<string, unknown> ? TokensHalf : Record<never, never> : Source;
137
99
  declare const THEME_STAGE_BRAND: unique symbol;
138
100
  /**
139
- * Builder type-state for the inherit-first rule (D2), mirroring the system
140
- * builder's `SystemBuilderStage`: `extend()` is only callable while the
141
- * builder is in the `'inherit'` stage; every augmentation method advances to
142
- * `'extend'`, making "inherit first, then extend" a compile error rather
143
- * than a lint. `from()` is deliberately NOT stage-gated — its call-anywhere
144
- * semantics are frozen for the deprecation window, so it passes the stage
145
- * through unchanged. Phantom — never present at runtime.
101
+ * Phantom builder stage: `extend()` is callable only while `'inherit'`, and
102
+ * every augmentation method advances to `'extend'`. `from()` is not gated.
146
103
  */
147
104
  export type ThemeBuilderStage = 'inherit' | 'extend';
148
- /**
149
- * ThemeScales — the final phase. Has addScale, extendScale, declareContextualVars, build.
150
- * Also allows addColors and addColorModes for augmentation.
151
- */
152
105
  export declare class ThemeBuilder<T extends Record<string, unknown> = Record<string, unknown>, Emitted extends string = never, Stage extends ThemeBuilderStage = 'inherit'> {
153
106
  readonly [THEME_STAGE_BRAND]?: Stage;
154
107
  /** @internal */ _state: BuilderState;
155
108
  constructor(state: BuilderState);
156
109
  addBreakpoints<BP extends Record<string, number>>(breakpoints: BP): ThemeBuilder<{ [K in keyof (Omit<T, "breakpoints"> & Record<"breakpoints", { [K in keyof BP]: BP[K]; }>)]: (Omit<T, "breakpoints"> & Record<"breakpoints", { [K in keyof BP]: BP[K]; }>)[K]; }, Emitted, "extend">;
157
110
  /**
158
- * FROZEN for the deprecation window (D1/G6): source-WINS precedence over
159
- * prior builder state, callable at ANY stage — the phantom Stage passes
160
- * through unchanged. Do not add a stage gate; do not flip the merge
161
- * direction. Those semantics ship under the new verb only.
162
- *
163
- * @deprecated Use `extend(source)` — the single extension verb on both
164
- * builders: the extended source seeds the base and later local calls win.
165
- * `from()` keeps these frozen source-wins semantics for at least one minor
166
- * release after `extend()` ships.
111
+ * Source-WINS precedence over prior builder state, callable at any stage.
112
+ * @deprecated Use `extend(source)` — the source seeds the base, local wins.
167
113
  */
168
114
  from<Source extends object>(builtTheme: Source): ThemeBuilder<Flatten<MergeRecord<T, ThemeDataOf<ThemeSourceOf<Source>>>>, Emitted | EmittedThemeScalesOf<ThemeSourceOf<Source>>, Stage>;
169
115
  /**
170
- * Extend this theme from a consumed library (D1/D2): the source's complete
171
- * configuration — tokens, modes, preferences, registrations, emitted-scale
172
- * set — seeds the builder as the BASE, and local calls made after
173
- * `extend()` win on conflict (the mirror of `from()`'s source-wins).
174
- * Chainable and repeatable, but only before augmentation methods ("inherit
175
- * first, then extend" — enforced by the phantom builder stage). Accepts a
176
- * built theme or a library bundle, consuming the bundle's theme half
177
- * (`theme ?? tokens`, D9) and ignoring the rest.
178
- *
179
- * Sibling conflicts fail loud (D3/G4): a leaf path defined divergently by
180
- * two extended sources throws naming the path and both sources
181
- * positionally; equal values coalesce silently, and the consumer's own
182
- * post-extend `add*` calls override silently (NS-4).
116
+ * Inherits a built theme or library bundle as the BASE; local calls after
117
+ * `extend()` win, and leaves that two sources define divergently throw.
183
118
  */
184
119
  extend<Source extends object>(this: ThemeBuilder<T, Emitted, 'inherit'>, source: Source): ThemeBuilder<MergeThemeData<T, ExtendedThemeSourceOf<Source>>, Emitted | EmittedThemeScalesOf<ExtendedThemeSourceOf<Source>>, 'inherit'>;
185
120
  addColors<Colors extends Record<string, CSSColorValue | Record<string, CSSColorValue>>, NextColors extends LiteralPaths<Colors, '.'> = LiteralPaths<Colors, '.'>>(colors: Colors): ThemeBuilder<Flatten<Omit<T, "colors"> & Record<"colors", Flatten<MergeRecord<T extends {
@@ -200,10 +135,6 @@ export declare class ThemeBuilder<T extends Record<string, unknown> = Record<str
200
135
  [K in ThemeScaleKeys<T>]: readonly string[];
201
136
  }>>(vars: Vars & Record<Exclude<keyof Vars, ThemeScaleKeys<T>>, never>, registrations?: Partial<Record<ContextualVarNames<Vars>, ContextualVarRegistration>>): ThemeBuilder<{ [K in keyof T]: K extends keyof Vars ? Vars[K] extends readonly string[] ? T[K] & Record<Vars[K][number], `var(--${string})`> : T[K] : T[K]; }, Emitted, "extend">;
202
137
  extendScale<Key extends Exclude<keyof T, ThemeStructuralKey>, Fn extends (tokens: T[Key]) => Record<string | number, unknown>>(key: Key, updateFn: Fn): ThemeBuilder<Flatten<Omit<T, Key> & Record<Key, Flatten<MergeRecord<T[Key], ReturnType<Fn>>>>>, Emitted, "extend">;
203
- /**
204
- * Finalize the theme build.
205
- * Flattens nested data at the boundary — produces manifest and serialize().
206
- */
207
138
  build(): BuiltTheme<T, Emitted>;
208
139
  }
209
140
  type EmptyTheme = {
@@ -1 +1 @@
1
- {"version":3,"file":"createTheme.d.ts","sourceRoot":"","sources":["../../src/theme/createTheme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createTheme.d.ts","sourceRoot":"","sources":["../../src/theme/createTheme.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,12 @@
1
- /**
2
- * Returns an exhaustive list of all possible paths of an object T for keys K.
3
- * Possibilities are returned as `k1.k2.k3`.
4
- */
1
+ /** Every path through T reachable from K, joined by `D`. */
5
2
  export type FindPath<T, K extends keyof T, D extends string = '.'> = K extends string | number ? T[K] extends Record<string | number, any> ? T[K] extends ArrayLike<any> ? K | `${K}${D}${FindPath<T[K], Exclude<keyof T[K], keyof any[]>, D>}` : K | `${K}${D}${FindPath<T[K], keyof T[K], D>}` : K : never;
6
- /** Returns valid paths of object T */
7
3
  export type Path<T, D extends string = '.'> = FindPath<T, keyof T, D> | keyof T;
8
- /** Returns the value of a valid path P `k1.k2.k3` in object T */
9
4
  export type PathValue<T, P extends Path<T, D>, D extends string = '.'> = P extends `${infer K}${D}${infer Rest}` ? K extends keyof T ? Rest extends Path<T[K], D> ? PathValue<T[K], Rest, D> : never : never : P extends keyof T ? T[P] : never;
10
- /** Check if path has a primitive end value and return only the union of end paths */
5
+ /** Only the paths whose value is a string or number, as a union. */
11
6
  export type PathToLiteral<T, K extends Path<T, D>, D extends string = '.', Base extends string = ''> = PathValue<T, K, D> extends string | number ? K extends string | number ? K extends `${infer BasePath}${D}${Base}` ? BasePath : K : never : never;
12
7
  /**
13
- * Reduce all paths to a single map of paths with primitive values removing all extra non stateful paths
14
- * { path: { sub: 1 } } => { 'path-sub': 1 }
15
- *
8
+ * Flat map of the primitive-valued paths only: `{ a: { b: 1 } }` becomes
9
+ * `{ 'a-b': 1 }` when `D` is `-`.
16
10
  */
17
11
  export type LiteralPaths<T extends Record<string | number, any>, D extends string = '.', Base extends string = ''> = {
18
12
  [K in Path<T, D> as PathToLiteral<T, K, D, Base>]: PathValue<T, PathToLiteral<T, K, D>, D>;
@@ -1 +1 @@
1
- {"version":3,"file":"flattenScale.d.ts","sourceRoot":"","sources":["../../src/theme/flattenScale.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flattenScale.d.ts","sourceRoot":"","sources":["../../src/theme/flattenScale.ts"],"names":[],"mappings":"AAEA,4DAA4D;AAC5D,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI,CAAC,SAClE,MAAM,GACN,MAAM,GACN,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GACvC,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,CAAC,GACzB,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GACpE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAChD,CAAC,GACH,KAAK,CAAC;AAEV,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;AAEhF,MAAM,MAAM,SAAS,CACnB,CAAC,EACD,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,CAAC,SAAS,MAAM,GAAG,GAAG,IACpB,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,EAAE,GACvC,CAAC,SAAS,MAAM,CAAC,GACf,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACxB,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GACxB,KAAK,GACP,KAAK,GACP,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK,CAAC;AAEZ,oEAAoE;AACpE,MAAM,MAAM,aAAa,CACvB,CAAC,EACD,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,CAAC,SAAS,MAAM,GAAG,GAAG,EACtB,IAAI,SAAS,MAAM,GAAG,EAAE,IAExB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GACtC,CAAC,SAAS,MAAM,GAAG,MAAM,GACvB,CAAC,SAAS,GAAG,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GACtC,QAAQ,GACR,CAAC,GACH,KAAK,GACP,KAAK,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,YAAY,CACtB,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EACtC,CAAC,SAAS,MAAM,GAAG,GAAG,EACtB,IAAI,SAAS,MAAM,GAAG,EAAE,IACtB;KACD,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,SAAS,CAC1D,CAAC,EACD,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACtB,CAAC,CACF;CACF,CAAC;AAEF,wBAAgB,YAAY,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAC1C,CAAC,SAAS,MAAM,EAChB,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAkBhD"}
@@ -1,49 +1,21 @@
1
1
  /**
2
- * Late-binding token-reference resolution over the flattened theme (D4,
3
- * openspec change first-class-extension).
4
- *
5
- * Replaces the old single-pass, insertion-order-dependent rewrite: references
6
- * resolve against the COMPLETE flattened map via depth-first traversal of the
7
- * reference DAG, so declaration order is never observable (G3), references
8
- * inside emitted scales resolve into the emitted variable declarations
9
- * instead of leaking literally into CSS (G2), and a token resolves to the
10
- * same value whether its scale is emitted or inlined (G1 — an emitted target
11
- * substitutes as `var()`, which the cascade late-binds to exactly the value
12
- * the inlined form substitutes directly).
13
- *
14
- * Pure module: consumes the flatten pass's maps, returns fresh maps, mutates
15
- * nothing. Runs in QuickJS — ES built-ins only, no Node/WHATWG APIs.
2
+ * Runs inside QuickJS: ES built-ins only, no Node or WHATWG APIs.
16
3
  */
17
4
  export interface ResolvedReferences {
18
5
  /**
19
- * Token path → resolved value: emitted paths keep their `var()`
20
- * indirection; every other path carries its fully resolved literal.
21
- * Keys are in sorted token-path order (deterministic serialization).
6
+ * Emitted paths keep their `var()` indirection, every other path its
7
+ * resolved literal; keys are in sorted path order for stable output.
22
8
  */
23
9
  tokenMap: Record<string, string>;
24
10
  /**
25
- * CSS var name → resolved declaration value for every emitted path, in
26
- * sorted token-path order — `buildVariableCss` emits in iteration order,
27
- * so reversed-declaration builds produce byte-identical CSS.
11
+ * Declaration values for the emitted paths, in sorted token-path order —
12
+ * the CSS emitter writes in iteration order, so builds are byte-identical.
28
13
  */
29
14
  variables: Record<string, string>;
30
15
  }
31
16
  /**
32
- * Resolve token references over the complete flattened maps.
33
- *
34
- * - `tokenMap`/`variableMap`/`variables` are `flattenTheme`'s outputs: an
35
- * emitted path's tokenMap entry is its `var()` indirection and its RAW
36
- * authored value is parked in `variables`; a non-emitted path's tokenMap
37
- * entry IS its raw value.
38
- * - Substitution per reference: emitted target → `var(--target)`; non-emitted
39
- * target → its resolved literal; `{path/NN}` keeps the existing
40
- * `color-mix` output shape (`/0` → `transparent`, `/100` → the base).
41
- * - Unresolvable target: warn once per missing path, keep the literal — a
42
- * SUPPORTED pattern (a kit theme may reference tokens its consumer
43
- * provides later). Dangling-reference errors arrive with the explicit
44
- * replacement form (D5, increment 04).
45
- * - Reference cycle: hard error naming the cycle's token paths in traversal
46
- * order, regardless of emission flags (emission-invariant failure, G1).
17
+ * An unresolvable reference warns and keeps its literal: a kit theme may
18
+ * reference tokens its consumer supplies later.
47
19
  */
48
20
  export declare function resolveReferences(tokenMap: Record<string, string>, variableMap: Record<string, string>, variables: Record<string, string>): ResolvedReferences;
49
21
  //# sourceMappingURL=resolveReferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveReferences.d.ts","sourceRoot":"","sources":["../../src/theme/resolveReferences.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAuCH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,kBAAkB,CAiIpB"}
1
+ {"version":3,"file":"resolveReferences.d.ts","sourceRoot":"","sources":["../../src/theme/resolveReferences.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiCH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,kBAAkB,CAqHpB"}
@@ -1,6 +1,3 @@
1
- /**
2
- * Returns an type of any object with { key: 'var(--key) }
3
- */
4
1
  export type KeyAsVariable<T extends Record<string, any>, Prefix extends string> = {
5
2
  [V in keyof T]: `var(--${Prefix}-${SanitizeKey<Extract<V, string>>})`;
6
3
  };
@@ -1 +1 @@
1
- {"version":3,"file":"serializeTokens.d.ts","sourceRoot":"","sources":["../../src/theme/serializeTokens.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,aAAa,CACvB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,MAAM,SAAS,MAAM,IACnB;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG;CACtE,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,GACpE,CAAC,GACD,CAAC,CAAC"}
1
+ {"version":3,"file":"serializeTokens.d.ts","sourceRoot":"","sources":["../../src/theme/serializeTokens.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,CACvB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,MAAM,SAAS,MAAM,IACnB;KACD,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG;CACtE,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,GACpE,CAAC,GACD,CAAC,CAAC"}
@@ -1,42 +1,20 @@
1
1
  import { AbstractTheme, CSSObject } from '../types/theme';
2
- /**
3
- * This is a custom generic that ensures the safety of adding additional values to a theme object without accidentally wiping out
4
- * required keys like `breakpoints`. It works by creating a new mapped type and merging the values of the union of Base & Next:
5
- * 1. If the key exists on both Base and Next return the intersection of both values
6
- * 2. If the key exists on next use the value on next.
7
- * 3. If the key exists on base but nothing else use the value on base.
8
- *
9
- * The resulting type is then rejoined with keys that cannot be mutated (breakpoints) as the next version of Theme
10
- */
11
2
  export type MergeTheme<Base extends AbstractTheme, Next, Unmergable = Record<'breakpoints', Base['breakpoints']>> = Unmergable & Merge<Base, Next>;
12
- /** This merges at 2 levels of depth */
13
3
  export type Merge<A, B> = {
14
4
  [K in keyof (A & B)]: K extends keyof B ? K extends keyof A ? AssignValueIfUnmergable<A[K], B[K]> : B[K] : K extends keyof A ? A[K] : never;
15
5
  };
16
- /** Extract mergable objects */
17
6
  export type Mergable<T> = Exclude<T, ((...args: any) => any) | string | boolean | symbol | number | any[]>;
18
- /** Return B if either A or B is unmergable */
19
7
  export type AssignValueIfUnmergable<A, B> = Mergable<A> extends never ? B : Mergable<B> extends never ? B : Assign<A, B>;
20
- /** Prefer all values from B */
21
8
  export type Assign<A, B> = {
22
9
  [K in keyof A | keyof B]: K extends keyof B ? B[K] : K extends keyof A ? A[K] : never;
23
10
  };
24
- /** These are keys that are consistent for all theme builds - they are loosely typed as they are not meant to be accessed directly */
25
11
  export type PrivateThemeKeys = {
26
12
  _variables: Record<string, CSSObject>;
27
13
  _tokens: Record<string | number, any>;
28
14
  };
29
- /** This allows 3 layers of color aliases to be constructed when adding colorModes
30
- * @example
31
- * {
32
- * button: {
33
- * bg: {
34
- * hover: 'someAlias'
35
- * }
36
- * }
37
- * }
38
- *
39
- * `button-bg-hover`
40
- * */
15
+ /**
16
+ * Nesting flattens to dash-joined keys: `{ button: { bg: { hover } } }`
17
+ * becomes `button-bg-hover`.
18
+ */
41
19
  export type ColorModeConfig<Colors> = Record<string, Colors | Record<string, Colors> | Record<string, Colors | Record<string, Colors>>>;
42
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,CACpB,IAAI,SAAS,aAAa,EAC1B,IAAI,EACJ,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,IACrD,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAEnC,uCAAuC;AACvC,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACnC,CAAC,SAAS,MAAM,CAAC,GACf,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,GACN,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK;CACZ,CAAC;AAEF,+BAA+B;AAC/B,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,OAAO,CAC/B,CAAC,EACD,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,EAAE,CACrE,CAAC;AAEF,8CAA8C;AAC9C,MAAM,MAAM,uBAAuB,CAAC,CAAC,EAAE,CAAC,IACtC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/E,+BAA+B;AAC/B,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACvC,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK;CACZ,CAAC;AAEF,qIAAqI;AACrI,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC,CAAC;AAEF;;;;;;;;;;;KAWK;AACL,MAAM,MAAM,eAAe,CAAC,MAAM,IAAI,MAAM,CAC1C,MAAM,EACJ,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAClD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/theme/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE1D,MAAM,MAAM,UAAU,CACpB,IAAI,SAAS,aAAa,EAC1B,IAAI,EACJ,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,IACrD,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAEnC,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACnC,CAAC,SAAS,MAAM,CAAC,GACf,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACnC,CAAC,CAAC,CAAC,CAAC,GACN,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK;CACZ,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,OAAO,CAC/B,CAAC,EACD,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,EAAE,CACrE,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,CAAC,EAAE,CAAC,IACtC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACvC,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,SAAS,MAAM,CAAC,GACf,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK;CACZ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,MAAM,IAAI,MAAM,CAC1C,MAAM,EACJ,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAClD,CAAC"}
@@ -1,28 +1,11 @@
1
- /** Type guard: true for non-null, non-array objects */
2
1
  export declare function isObject(value: unknown): value is object;
3
- /** Deep merge — matches lodash.merge overload signatures */
4
2
  export declare function merge<A, B>(target: A, source: B): A & B;
5
3
  export declare function merge<A, B, C>(target: A, s1: B, s2: C): A & B & C;
6
4
  export declare function merge<A, B, C, D>(target: A, s1: B, s2: C, s3: D): A & B & C & D;
7
- /**
8
- * Resolve a dot-path string against a nested object.
9
- * walkDotPath({ gray: { 50: '#fafafa' } }, 'gray.50') → '#fafafa'
10
- * The `_` identity key is handled: 'primary' resolves to obj.primary._ if obj.primary is an object with _.
11
- */
12
5
  export declare function walkDotPath(obj: Record<string, unknown>, path: string): unknown;
13
6
  /**
14
- * Flatten a nested object into a flat Record with dot-path keys.
15
- * The `_` key is an identity marker — it produces the parent key without suffix.
16
- * { gray: { 50: '#fafafa' } } → { 'gray.50': '#fafafa' }
17
- * { primary: { _: 'ember', hover: 'x' } } → { 'primary': 'ember', 'primary.hover': 'x' }
18
- * CSS variable names use dash-join, computed at the serialization boundary (not here).
7
+ * A `_` key is an identity marker: it takes the parent path with no suffix.
19
8
  */
20
9
  export declare function flattenToDotPaths(object: Record<string | number, unknown>, path?: string): Record<string, unknown>;
21
- /**
22
- * Convert a dot-path key to a dash-join key for CSS variable naming.
23
- * 'gray.50' → 'gray-50'
24
- * 'primary.hover' → 'primary-hover'
25
- */
26
10
  export declare function dotToDash(dotPath: string): string;
27
- /** Map over object values — matches lodash.mapValues overload signatures */
28
11
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/theme/utils.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED,4DAA4D;AAC5D,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzD,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnE,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9B,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,GACJ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAiBjB;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAQT;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,4EAA4E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/theme/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzD,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnE,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9B,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,CAAC,GACJ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAiBjB,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAQT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -1,6 +1,3 @@
1
- /**
2
- * Self-contained transform: all logic inlined in the callback.
3
- * No external references — satisfies the extraction constraint.
4
- */
1
+ /** All logic stays inline: the extractor cannot follow external references. */
5
2
  export declare const borderShorthand: import("./createTransform").NamedTransform;
6
3
  //# sourceMappingURL=border.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"border.d.ts","sourceRoot":"","sources":["../../src/transforms/border.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,eAAe,4CAE3B,CAAC"}
1
+ {"version":3,"file":"border.d.ts","sourceRoot":"","sources":["../../src/transforms/border.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,eAAO,MAAM,eAAe,4CAE3B,CAAC"}
@@ -1,47 +1,22 @@
1
1
  import type { AbstractProps } from '../types/props';
2
2
  import type { CSSObject } from '../types/shared';
3
3
  /**
4
- * The signature every prop transform satisfies: it receives the prop's raw
5
- * value, the CSS property being targeted, and the full props object.
6
- *
7
- * The `CSSObject` arm of the return union is DEPRECATED and is rejected on
8
- * both resolution paths. Build-time evaluation hard-errors on an object
9
- * return — no declaration is emitted and the build fails, naming the transform
10
- * and the file — and the browser runtime drops the whole prop value with a
11
- * dev-mode warning (production drops quietly). A transform must return a
12
- * `string` or a finite `number`; rule-level styling ships as declaration
13
- * scales (`composite-style-scales`), which is the sanctioned path.
14
- *
15
- * The arm survives in the type only so imported transforms whose inferred
16
- * signatures already carry it keep type-checking in `.props({ transform })`
17
- * positions; TypeScript cannot express `@deprecated` on a single union arm.
18
- * Narrowing to `string | number` is scheduled for the next breaking release.
4
+ * The `CSSObject` return arm fails the build and drops the value at runtime;
5
+ * a transform must return a string or a finite number.
19
6
  */
20
7
  export type TransformFn = (value: string | number, property?: string, props?: AbstractProps) => string | number | CSSObject;
21
8
  export type NamedTransform = TransformFn & {
22
9
  transformName: string;
23
10
  /**
24
- * The user function's source text, captured at creation (design D12).
25
- * The wrapper's own `toString()` is byte-identical for every transform
26
- * (the body is closure-captured), so cross-system equality must compare
27
- * the original source. Optional in the type: instances built by an older
28
- * @animus-ui/system lack it, and a name match with a missing source is a
29
- * loud conflict, never a silent coalesce.
11
+ * A wrapper's own `toString()` is identical for every transform, so
12
+ * equality compares this captured source instead.
30
13
  */
31
14
  transformSource?: string;
32
15
  };
33
16
  export declare function createTransform(name: string, fn: TransformFn): NamedTransform;
34
17
  /**
35
- * Cross-system transform equality (design D12): identity fast path, then —
36
- * when both carry `transformName` — equal names AND equal captured
37
- * `transformSource`. A name match with the captured source missing on either
38
- * side is a loud conflict (older-instance safety), as is a named/bare mix.
39
- * Bare-function pairs compare by their own `toString()` (their body IS their
40
- * source; only `createTransform` wrappers hide it). Known accepted residual:
41
- * two functions with byte-identical source can close over different values
42
- * and would coalesce — the loud-conflict alternative (identity-only) was
43
- * measured to false-conflict every transform-bearing prop under duplicate
44
- * module instances (inc-01 spike) and to forbid re-registering kit props.
18
+ * Two transforms with byte-identical source compare equal even when they
19
+ * close over different values.
45
20
  */
46
21
  export declare function areTransformsEqual(a: TransformFn | undefined, b: TransformFn | undefined): boolean;
47
22
  //# sourceMappingURL=createTransform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createTransform.d.ts","sourceRoot":"","sources":["../../src/transforms/createTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,aAAa,KAClB,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEjC,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,cAAc,CAa7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,WAAW,GAAG,SAAS,EAC1B,CAAC,EAAE,WAAW,GAAG,SAAS,GACzB,OAAO,CAkBT"}
1
+ {"version":3,"file":"createTransform.d.ts","sourceRoot":"","sources":["../../src/transforms/createTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,aAAa,KAClB,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAEjC,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,cAAc,CAW7E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,WAAW,GAAG,SAAS,EAC1B,CAAC,EAAE,WAAW,GAAG,SAAS,GACzB,OAAO,CAkBT"}
@@ -1,15 +1,5 @@
1
- /**
2
- * Self-contained transform: all logic inlined in the callback.
3
- * No external references — satisfies the extraction constraint.
4
- */
1
+ /** All logic stays inline: the extractor cannot follow external references. */
5
2
  export declare const gridItem: import("./createTransform").NamedTransform;
6
- /**
7
- * Convert a grid item value to a CSS template string.
8
- * Exported for non-extraction use — NOT referenced from createTransform callbacks.
9
- */
10
- /**
11
- * Self-contained transform: all logic inlined in the callback.
12
- * Duplicates grid-item-to-template logic to avoid cross-transform reference.
13
- */
3
+ /** Template logic is duplicated rather than shared: no external references. */
14
4
  export declare const gridItemRatio: import("./createTransform").NamedTransform;
15
5
  //# sourceMappingURL=grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/transforms/grid.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,QAAQ,4CAUnB,CAAC;AAEH;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,4CAoCxB,CAAC"}
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/transforms/grid.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,4CAUnB,CAAC;AAEH,+EAA+E;AAC/E,eAAO,MAAM,aAAa,4CAoCxB,CAAC"}
@@ -1,11 +1,5 @@
1
- /**
2
- * Convert a numeric coordinate to a CSS value.
3
- * Exported for non-extraction use — NOT referenced from the createTransform callback.
4
- */
1
+ /** The transform below cannot reference this: it inlines its own copy. */
5
2
  export declare const percentageOrAbsolute: (coordinate: number) => string | 0;
6
- /**
7
- * Self-contained transform: all logic inlined in the callback.
8
- * No external references — satisfies the extraction constraint.
9
- */
3
+ /** All logic stays inline: the extractor cannot follow external references. */
10
4
  export declare const size: import("./createTransform").NamedTransform;
11
5
  //# sourceMappingURL=size.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../src/transforms/size.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,eAAgB,MAAM,eAQtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,IAAI,4CA0Bf,CAAC"}
1
+ {"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../src/transforms/size.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,eAAO,MAAM,oBAAoB,eAAgB,MAAM,eAQtD,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,IAAI,4CA0Bf,CAAC"}