@animus-ui/system 0.1.3 → 0.1.4

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.
@@ -45,7 +45,11 @@ export declare const BUILT_IN_SELECTORS: SelectorAliasMap;
45
45
  /**
46
46
  * Merge user-provided selectors with built-in defaults.
47
47
  * User selectors override built-in aliases of the same name.
48
- * New aliases get an order value based on their position (500+).
48
+ * New aliases allocate orders CONTINUING from the highest existing order
49
+ * (floored at 490, so the first user alias lands at 500) rather than
50
+ * restarting at 500 each call (mirrors `mergeConditions`) — aliases from
51
+ * successive `.addSelectors()`/`extend()` merges must not collide on
52
+ * order 500.
49
53
  */
50
54
  export declare function mergeSelectors(base: SelectorAliasMap, custom: Record<string, string>): SelectorAliasMap;
51
55
  /** Get the sorted alias keys for deterministic cascade ordering. */
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,SAAS;CAAG;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAyDhC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,gBAAgB,CAgBlB;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAElE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG;IAC3D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAOA"}
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,SAAS;CAAG;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAyDhC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,gBAAgB,CAmBlB;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAElE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG;IAC3D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAOA"}
@@ -1,15 +1,42 @@
1
- //#region src/scales/createScale.ts
2
- const createScale = () => [];
3
- const numericScale = [];
4
- const stringScale = [];
5
- const numericOrStringScale = [];
6
- //#endregion
7
1
  //#region src/transforms/createTransform.ts
8
2
  function createTransform(name, fn) {
9
3
  const wrapper = (value, property, props) => fn(value, property, props);
10
4
  Object.defineProperty(wrapper, "name", { value: name });
11
- return Object.assign(wrapper, { transformName: name });
5
+ const inherited = fn.transformSource;
6
+ return Object.assign(wrapper, {
7
+ transformName: name,
8
+ transformSource: inherited ?? fn.toString()
9
+ });
12
10
  }
11
+ /**
12
+ * Cross-system transform equality (design D12): identity fast path, then —
13
+ * when both carry `transformName` — equal names AND equal captured
14
+ * `transformSource`. A name match with the captured source missing on either
15
+ * side is a loud conflict (older-instance safety), as is a named/bare mix.
16
+ * Bare-function pairs compare by their own `toString()` (their body IS their
17
+ * source; only `createTransform` wrappers hide it). Known accepted residual:
18
+ * two functions with byte-identical source can close over different values
19
+ * and would coalesce — the loud-conflict alternative (identity-only) was
20
+ * measured to false-conflict every transform-bearing prop under duplicate
21
+ * module instances (inc-01 spike) and to forbid re-registering kit props.
22
+ */
23
+ function areTransformsEqual(a, b) {
24
+ if (a === b) return true;
25
+ if (a === void 0 || b === void 0) return false;
26
+ const aNamed = a;
27
+ const bNamed = b;
28
+ const aName = aNamed.transformName;
29
+ const bName = bNamed.transformName;
30
+ if (aName !== void 0 && bName !== void 0) return aName === bName && aNamed.transformSource !== void 0 && aNamed.transformSource === bNamed.transformSource;
31
+ if (aName === void 0 && bName === void 0) return a.toString() === b.toString();
32
+ return false;
33
+ }
34
+ //#endregion
35
+ //#region src/scales/createScale.ts
36
+ const createScale = () => [];
37
+ const numericScale = [];
38
+ const stringScale = [];
39
+ const numericOrStringScale = [];
13
40
  //#endregion
14
41
  //#region src/transforms/border.ts
15
42
  /**
@@ -94,4 +121,4 @@ const size = createTransform("size", (value) => {
94
121
  return !unit ? toSize(numericValue) : `${numericValue}${unit}`;
95
122
  });
96
123
  //#endregion
97
- export { borderShorthand as a, numericOrStringScale as c, gridItemRatio as i, numericScale as l, size as n, createTransform as o, gridItem as r, createScale as s, percentageOrAbsolute as t, stringScale as u };
124
+ export { borderShorthand as a, numericScale as c, createTransform as d, gridItemRatio as i, stringScale as l, size as n, createScale as o, gridItem as r, numericOrStringScale as s, percentageOrAbsolute as t, areTransformsEqual as u };
@@ -1,9 +1,11 @@
1
- import { ColorModeOptions, ContextualVarRegistration, CSSColorValue, ModeAliasDefinition, SerializedTheme, ThemeCssFragment, ThemeManifest, TokenDefinition } from '../types/theme';
1
+ import { ColorModeOptions, ContextualVarRegistration, CSSColorValue, ModeAliasDefinition, SerializedTheme, ThemeCssFragment, ThemeManifest, ThemeStructuralKey, TokenDefinition } from '../types/theme';
2
2
  import { LiteralPaths } from './flattenScale';
3
3
  /** Flatten a type to prevent MergeTheme depth accumulation (TS2589). Exported for use in consumer themes. */
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
+ type MergeRecord<Base, Incoming> = Omit<Base, keyof Incoming> & Incoming;
7
9
  /**
8
10
  * The union of contextual var NAMES declared across all scales in a
9
11
  * `declareContextualVars` config. Read only for the optional registration
@@ -13,6 +15,7 @@ export type Flatten<T> = {
13
15
  type ContextualVarNames<Vars> = {
14
16
  [K in keyof Vars]: Vars[K] extends readonly (infer N extends string)[] ? N : never;
15
17
  }[keyof Vars];
18
+ type ThemeScaleKeys<T> = Exclude<keyof T & string, ThemeStructuralKey>;
16
19
  /** The built theme: nested raw data + non-enumerable boundary methods */
17
20
  type BuiltTheme<T, Emitted extends string> = {
18
21
  [K in keyof T]: T[K];
@@ -35,6 +38,7 @@ type BuiltTheme<T, Emitted extends string> = {
35
38
  */
36
39
  interface CarriedManifestV2 {
37
40
  tokenDefinitions?: Record<string, TokenDefinition>;
41
+ emittedScales?: string[];
38
42
  modeAliasDefinitions?: ModeAliasDefinition;
39
43
  registrations?: Record<string, ContextualVarRegistration>;
40
44
  emitterVersion?: number;
@@ -63,31 +67,139 @@ interface BuilderState {
63
67
  * `createThemeVariants` rejection keys off exactly that absence.
64
68
  */
65
69
  hasLegacyManifestSource: boolean;
70
+ /**
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).
75
+ */
76
+ extendProvenance: Map<string, number>;
77
+ /** Number of `extend()` calls made so far — the next source's label index. */
78
+ extendCount: number;
79
+ /**
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.
83
+ */
84
+ inheritedModes: Set<string>;
85
+ /**
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.
89
+ */
90
+ inheritedModeAliases: Set<string>;
91
+ /**
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.
96
+ */
97
+ droppedTokenPaths: Map<string, string>;
66
98
  }
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
+ type ThemeSourceOf<Source> = Source extends {
107
+ system: {
108
+ toConfig(...args: never[]): unknown;
109
+ };
110
+ theme?: infer ThemeHalf;
111
+ tokens?: infer TokensHalf;
112
+ } ? ThemeHalf extends Record<string, unknown> ? ThemeHalf : TokensHalf extends Record<string, unknown> ? TokensHalf : Record<never, never> : Source;
113
+ type ThemeBoundaryKey = '__emitted' | 'manifest' | 'serialize' | 'varRef';
114
+ /** Runtime composition copies enumerable data and deliberately skips methods. */
115
+ type ThemeDataOf<Source> = {
116
+ [Key in keyof Source as Key extends ThemeBoundaryKey ? never : Extract<Source[Key], (...args: never[]) => unknown> extends never ? Key : never]: Source[Key];
117
+ };
118
+ 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
+ type EmittedThemeScalesOf<Source> = Source extends {
121
+ readonly __emitted: [infer Emitted extends string];
122
+ } ? 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
+ type ExtendedThemeSourceOf<Source> = Source extends {
131
+ system: {
132
+ toConfig(...args: never[]): unknown;
133
+ };
134
+ theme?: infer ThemeHalf;
135
+ tokens?: infer TokensHalf;
136
+ } ? ThemeHalf extends Record<string, unknown> ? ThemeHalf : TokensHalf extends Record<string, unknown> ? TokensHalf : Record<never, never> : Source;
137
+ declare const THEME_STAGE_BRAND: unique symbol;
138
+ /**
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.
146
+ */
147
+ export type ThemeBuilderStage = 'inherit' | 'extend';
67
148
  /**
68
149
  * ThemeScales — the final phase. Has addScale, extendScale, declareContextualVars, build.
69
150
  * Also allows addColors and addColorModes for augmentation.
70
151
  */
71
- export declare class ThemeBuilder<T extends Record<string, unknown> = Record<string, unknown>, Emitted extends string = never> {
152
+ export declare class ThemeBuilder<T extends Record<string, unknown> = Record<string, unknown>, Emitted extends string = never, Stage extends ThemeBuilderStage = 'inherit'> {
153
+ readonly [THEME_STAGE_BRAND]?: Stage;
72
154
  /** @internal */ _state: BuilderState;
73
155
  constructor(state: BuilderState);
74
- 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>;
75
- from<Source extends Record<string, unknown>>(builtTheme: Source): ThemeBuilder<T & Source, Emitted>;
76
- addColors<Colors extends Record<string, CSSColorValue | Record<string, CSSColorValue>>, NextColors extends LiteralPaths<Colors, '.'> = LiteralPaths<Colors, '.'>>(colors: Colors): ThemeBuilder<{ [K in keyof (T & Record<"colors", NextColors>)]: (T & Record<"colors", NextColors>)[K]; }, "colors" | Emitted>;
156
+ 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
+ /**
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.
167
+ */
168
+ from<Source extends object>(builtTheme: Source): ThemeBuilder<Flatten<MergeRecord<T, ThemeDataOf<ThemeSourceOf<Source>>>>, Emitted | EmittedThemeScalesOf<ThemeSourceOf<Source>>, Stage>;
169
+ /**
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).
183
+ */
184
+ extend<Source extends object>(this: ThemeBuilder<T, Emitted, 'inherit'>, source: Source): ThemeBuilder<MergeThemeData<T, ExtendedThemeSourceOf<Source>>, Emitted | EmittedThemeScalesOf<ExtendedThemeSourceOf<Source>>, 'inherit'>;
185
+ 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 {
186
+ colors: infer Existing;
187
+ } ? Existing : {}, NextColors>>>>, "colors" | Emitted, "extend">;
77
188
  addColorModes<Config extends Record<string, Record<string, unknown>>, AliasKeys extends LiteralPaths<Config[keyof Config], '.', '_'> = LiteralPaths<Config[keyof Config], '.', '_'>>(initialMode: string, modeConfig: Config, options?: ColorModeOptions<Config>): ThemeBuilder<{ [K in keyof (Omit<T, "colors"> & Record<"colors", (T extends {
78
189
  colors: infer C;
79
190
  } ? C : unknown) & AliasKeys>)]: (Omit<T, "colors"> & Record<"colors", (T extends {
80
191
  colors: infer C;
81
- } ? C : unknown) & AliasKeys>)[K]; }, Emitted>;
82
- addScale<Key extends string, Values extends Record<string | number, string | number | Record<string, string | number>>, Emit extends boolean = false, NewScale extends LiteralPaths<Values, '.'> = LiteralPaths<Values, '.'>>(config: {
83
- name: Key;
192
+ } ? C : unknown) & AliasKeys>)[K]; }, Emitted, "extend">;
193
+ addScale<Key extends string, Values extends Record<string | number, string | number | Record<string, string | number>>, Emit extends boolean = false, Replace extends boolean = false, NewScale extends LiteralPaths<Values, '.'> = LiteralPaths<Values, '.'>>(config: {
194
+ name: Key & (Key extends ThemeStructuralKey ? never : unknown);
84
195
  values: Values;
85
196
  emit?: Emit;
86
- }): ThemeBuilder<{ [K in keyof (T & Record<Key, NewScale>)]: (T & Record<Key, NewScale>)[K]; }, Emit extends true ? Emitted | Key : Emitted>;
197
+ replace?: Replace;
198
+ }): ThemeBuilder<Flatten<Omit<T, Key> & Record<Key, Replace extends true ? NewScale : Flatten<MergeRecord<Key extends keyof T ? T[Key] : {}, NewScale>>>>, Emit extends true ? Emitted | Key : Emitted, "extend">;
87
199
  declareContextualVars<const Vars extends Partial<{
88
- [K in keyof T & string]: readonly string[];
89
- }>>(vars: Vars, 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>;
90
- extendScale<Key extends keyof T, Fn extends (tokens: T[Key]) => Record<string | number, unknown>>(key: Key, updateFn: Fn): ThemeBuilder<{ [K in keyof (T & Record<Key, T[Key] & ReturnType<Fn>>)]: (T & Record<Key, T[Key] & ReturnType<Fn>>)[K]; }, Emitted>;
200
+ [K in ThemeScaleKeys<T>]: readonly string[];
201
+ }>>(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
+ 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">;
91
203
  /**
92
204
  * Finalize the theme build.
93
205
  * Flattens nested data at the boundary — produces manifest and serialize().
@@ -97,6 +209,6 @@ export declare class ThemeBuilder<T extends Record<string, unknown> = Record<str
97
209
  type EmptyTheme = {
98
210
  breakpoints: Record<string, number>;
99
211
  };
100
- export declare function createTheme(): ThemeBuilder<EmptyTheme, never>;
212
+ export declare function createTheme(): ThemeBuilder<EmptyTheme, never, "inherit">;
101
213
  export {};
102
214
  //# sourceMappingURL=createTheme.d.ts.map
@@ -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,4 +1,4 @@
1
- export { createTheme, ThemeBuilder } from './createTheme';
1
+ export { createTheme, type Flatten, ThemeBuilder, type ThemeBuilderStage, } from './createTheme';
2
2
  export type { FindPath, LiteralPaths, Path, PathToLiteral, PathValue, } from './flattenScale';
3
3
  export type { KeyAsVariable, SanitizeKey } from './serializeTokens';
4
4
  export type { Assign, AssignValueIfUnmergable, ColorModeConfig, Mergable, Merge, MergeTheme, PrivateThemeKeys, } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EACV,MAAM,EACN,uBAAuB,EACvB,eAAe,EACf,QAAQ,EACR,KAAK,EACL,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,OAAO,EACZ,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EACV,MAAM,EACN,uBAAuB,EACvB,eAAe,EACf,QAAQ,EACR,KAAK,EACL,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,49 @@
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.
16
+ */
17
+ export interface ResolvedReferences {
18
+ /**
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).
22
+ */
23
+ tokenMap: Record<string, string>;
24
+ /**
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.
28
+ */
29
+ variables: Record<string, string>;
30
+ }
31
+ /**
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).
47
+ */
48
+ export declare function resolveReferences(tokenMap: Record<string, string>, variableMap: Record<string, string>, variables: Record<string, string>): ResolvedReferences;
49
+ //# sourceMappingURL=resolveReferences.d.ts.map
@@ -0,0 +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"}
@@ -3,6 +3,28 @@ import type { CSSObject } from '../types/shared';
3
3
  export type TransformFn = (value: string | number, property?: string, props?: AbstractProps) => string | number | CSSObject;
4
4
  export type NamedTransform = TransformFn & {
5
5
  transformName: string;
6
+ /**
7
+ * The user function's source text, captured at creation (design D12).
8
+ * The wrapper's own `toString()` is byte-identical for every transform
9
+ * (the body is closure-captured), so cross-system equality must compare
10
+ * the original source. Optional in the type: instances built by an older
11
+ * @animus-ui/system lack it, and a name match with a missing source is a
12
+ * loud conflict, never a silent coalesce.
13
+ */
14
+ transformSource?: string;
6
15
  };
7
16
  export declare function createTransform(name: string, fn: TransformFn): NamedTransform;
17
+ /**
18
+ * Cross-system transform equality (design D12): identity fast path, then —
19
+ * when both carry `transformName` — equal names AND equal captured
20
+ * `transformSource`. A name match with the captured source missing on either
21
+ * side is a loud conflict (older-instance safety), as is a named/bare mix.
22
+ * Bare-function pairs compare by their own `toString()` (their body IS their
23
+ * source; only `createTransform` wrappers hide it). Known accepted residual:
24
+ * two functions with byte-identical source can close over different values
25
+ * and would coalesce — the loud-conflict alternative (identity-only) was
26
+ * measured to false-conflict every transform-bearing prop under duplicate
27
+ * module instances (inc-01 spike) and to forbid re-registering kit props.
28
+ */
29
+ export declare function areTransformsEqual(a: TransformFn | undefined, b: TransformFn | undefined): boolean;
8
30
  //# 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,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;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,cAAc,CAK7E"}
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,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"}
@@ -8,9 +8,11 @@ export interface AbstractTheme extends BaseTheme {
8
8
  }
9
9
  /**
10
10
  * Filter non-scale keys from T so only user-defined scales appear.
11
- * breakpoints, modes, mode are structural — not token scales.
11
+ * Builder/runtime metadata and color-mode options are structural — not token
12
+ * scales.
12
13
  */
13
- export type TokenScales<T> = Omit<T, 'breakpoints' | 'modes' | 'mode'>;
14
+ export type ThemeStructuralKey = 'breakpoints' | 'modes' | 'mode' | 'systemPreference' | 'browserColorScheme' | 'modeBases' | '__emitted' | 'manifest' | 'serialize' | 'varRef';
15
+ export type TokenScales<T> = Omit<T, ThemeStructuralKey>;
14
16
  /**
15
17
  * Augmentable Theme interface. Consumers extend this via module augmentation
16
18
  * to get type-safe scale lookups in .styles(), .variant(), and .states():
@@ -132,6 +134,20 @@ export interface ColorModeOptions<Config> {
132
134
  * type applying.
133
135
  */
134
136
  browserColorScheme?: Partial<Record<keyof Config & string, 'light' | 'dark' | 'normal'>>;
137
+ /**
138
+ * NEW mode → the declared mode its uncovered INHERITED aliases resolve
139
+ * through (D6, first-class-extension). A consumer-declared mode over an
140
+ * extended theme that leaves inherited aliases uncovered must name a base
141
+ * here — the build fails otherwise, listing the uncovered set; with a
142
+ * base, uncovered aliases resolve through the declared chain and the
143
+ * build reports ONE aggregated inherited-alias count per mode.
144
+ *
145
+ * The base value is a plain `string` (not `keyof Config`) on purpose: the
146
+ * base is typically a mode declared by the EXTENDED source, which this
147
+ * call's local config type cannot see. Runtime validation covers both
148
+ * sides against the merged mode set.
149
+ */
150
+ basedOn?: Partial<Record<keyof Config & string, string>>;
135
151
  }
136
152
  /** Pipeline-ready JSON strings returned by `.serialize()` on a built theme. */
137
153
  export interface SerializedTheme {
@@ -146,7 +162,7 @@ export interface SerializedTheme {
146
162
  }
147
163
  /**
148
164
  * One authored `{scale.key}` reference occurrence inside a token value
149
- * (manifest v2, D6). Captured BEFORE `resolveTokenRefs` rewrites the value —
165
+ * (manifest v2, D6). Captured BEFORE `resolveReferences` rewrites the value —
150
166
  * the authored graph is unrecoverable from resolved CSS (D8).
151
167
  */
152
168
  export interface TokenReference {
@@ -202,7 +218,13 @@ export interface ThemeManifest {
202
218
  tokenMap: Record<string, string>;
203
219
  /** Flat token key → CSS variable name without var() wrapper (e.g. 'colors.ember' → '--color-ember') */
204
220
  variableMap: Record<string, string>;
205
- /** Mode name → flat key → resolved raw value (e.g. { dark: { 'colors.primary': '#FF2800' } }) */
221
+ /**
222
+ * Mode name → flat key → RESOLVED value (e.g. { dark: { 'colors.primary':
223
+ * '#FF2800' } }). Since first-class-extension inc 04 the values pass
224
+ * through the reference resolver (a reference-valued color contributes its
225
+ * resolved value, never a raw `{…}` string), and both mode keys and inner
226
+ * keys are in sorted order (G3).
227
+ */
206
228
  modes: Record<string, Record<string, string>>;
207
229
  /** Pre-built CSS string with :root and [data-color-mode] blocks */
208
230
  variableCss: string;
@@ -216,6 +238,8 @@ export interface ThemeManifest {
216
238
  manifestVersion?: 2;
217
239
  /** Authored literal-vs-reference structure per flattened token path. */
218
240
  tokenDefinitions?: Record<string, TokenDefinition>;
241
+ /** Exact scale names configured for CSS-variable emission, including empty scales. */
242
+ emittedScales?: string[];
219
243
  /** Mode name → alias dot-path → AUTHORED color dot-path (pre-resolution). */
220
244
  modeAliasDefinitions?: ModeAliasDefinition;
221
245
  /** `@property` registrations by contextual var name, in declaration order. */
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/types/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/types/theme.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animus-ui/system",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Animus design system builder — tokens, prop groups, global styles",
5
5
  "keywords": [
6
6
  "css",
@@ -71,7 +71,7 @@
71
71
  "compile": "tsc --noEmit"
72
72
  },
73
73
  "dependencies": {
74
- "@animus-ui/properties": "0.1.3",
74
+ "@animus-ui/properties": "0.1.4",
75
75
  "csstype": "^3.1.3"
76
76
  },
77
77
  "devDependencies": {