@animus-ui/system 0.1.3 → 0.1.5

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 (47) hide show
  1. package/README.md +31 -6
  2. package/dist/Animus.d.ts +1 -1
  3. package/dist/Animus.d.ts.map +1 -1
  4. package/dist/AnimusExtended.d.ts +1 -1
  5. package/dist/AnimusExtended.d.ts.map +1 -1
  6. package/dist/SystemBuilder.d.ts +180 -11
  7. package/dist/SystemBuilder.d.ts.map +1 -1
  8. package/dist/assert-root-slot-B83scqPh.js +21 -0
  9. package/dist/asset.d.ts +25 -0
  10. package/dist/asset.d.ts.map +1 -0
  11. package/dist/compose.d.ts +3 -1
  12. package/dist/compose.d.ts.map +1 -1
  13. package/dist/compose.js +2 -1
  14. package/dist/composeWithContext.d.ts +3 -1
  15. package/dist/composeWithContext.d.ts.map +1 -1
  16. package/dist/composeWithContext.js +3 -2
  17. package/dist/conditions.d.ts +52 -4
  18. package/dist/conditions.d.ts.map +1 -1
  19. package/dist/{createComposedFamily-DJ2aqfqN.js → createComposedFamily-DhjtkyWd.js} +81 -7
  20. package/dist/groups/index.js +1 -1
  21. package/dist/index.d.ts +6 -5
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +887 -147
  24. package/dist/runtime/assert-root-slot.d.ts +17 -0
  25. package/dist/runtime/assert-root-slot.d.ts.map +1 -0
  26. package/dist/runtime/createComposedFamily.d.ts.map +1 -1
  27. package/dist/runtime/is-dev.d.ts +46 -0
  28. package/dist/runtime/is-dev.d.ts.map +1 -0
  29. package/dist/runtime/resolveClasses.d.ts +15 -7
  30. package/dist/runtime/resolveClasses.d.ts.map +1 -1
  31. package/dist/runtime/witness.d.ts +4 -2
  32. package/dist/runtime/witness.d.ts.map +1 -1
  33. package/dist/runtime-entry.js +1 -1
  34. package/dist/selectors.d.ts +5 -1
  35. package/dist/selectors.d.ts.map +1 -1
  36. package/dist/{size-CusLCguT.js → size-DHdmBc64.js} +35 -8
  37. package/dist/theme/createTheme.d.ts +125 -13
  38. package/dist/theme/createTheme.d.ts.map +1 -1
  39. package/dist/theme/index.d.ts +1 -1
  40. package/dist/theme/index.d.ts.map +1 -1
  41. package/dist/theme/resolveReferences.d.ts +49 -0
  42. package/dist/theme/resolveReferences.d.ts.map +1 -0
  43. package/dist/transforms/createTransform.d.ts +22 -0
  44. package/dist/transforms/createTransform.d.ts.map +1 -1
  45. package/dist/types/theme.d.ts +28 -4
  46. package/dist/types/theme.d.ts.map +1 -1
  47. package/package.json +2 -2
package/README.md CHANGED
@@ -15,12 +15,12 @@ Pair with a bundler plugin for extraction:
15
15
 
16
16
  ## Quick Start
17
17
 
18
- ### 1. Define tokens
18
+ ### 1. Define the theme
19
19
 
20
20
  ```tsx
21
21
  import { createTheme } from '@animus-ui/system';
22
22
 
23
- const tokens = createTheme()
23
+ const theme = createTheme()
24
24
  .addBreakpoints({ sm: 480, md: 768, lg: 1024 })
25
25
  .addColors({
26
26
  gray: { 100: '#f0f0f0', 800: '#1a1a1a' },
@@ -30,11 +30,16 @@ const tokens = createTheme()
30
30
  dark: { primary: 'blue.400', bg: 'gray.800', text: 'gray.100' },
31
31
  light: { primary: 'blue.700', bg: 'gray.100', text: 'gray.800' },
32
32
  })
33
- .addScale({ name: 'space', values: { sm: '0.5rem', md: '1rem', lg: '1.5rem' } })
33
+ .addScale({
34
+ name: 'space',
35
+ values: { sm: '0.5rem', md: '1rem', lg: '1.5rem' },
36
+ })
34
37
  .build();
35
38
 
39
+ type AppTheme = typeof theme;
40
+
36
41
  declare module '@animus-ui/system' {
37
- interface Theme extends typeof tokens {}
42
+ interface Theme extends AppTheme {}
38
43
  }
39
44
  ```
40
45
 
@@ -63,6 +68,26 @@ export const { system: ds, createGlobalStyles } = createSystem()
63
68
  .build();
64
69
  ```
65
70
 
71
+ To build on a published design-system kit, start either chain with
72
+ `.extend()` — it merges the kit's registries/tokens into yours (kit as base,
73
+ your later calls win on conflict), and the extraction pipeline discovers the
74
+ kit through the same edge:
75
+
76
+ ```tsx
77
+ import { system as kitSystem, theme as kitTheme } from '@acme/kit';
78
+
79
+ const theme = createTheme().extend(kitTheme).build();
80
+ export const { system: ds } = createSystem()
81
+ .extend(kitSystem)
82
+ // Additive only — the kit's groups/props arrive through the merge.
83
+ .addProps({ cursor: { property: 'cursor' } })
84
+ .build();
85
+ ```
86
+
87
+ (`createSystem({ includes: [...] })` and `.from()` are deprecated aliases from
88
+ the pre-merge era; they keep their old no-merge semantics for one more minor
89
+ release.)
90
+
66
91
  Each group becomes an opt-in set of props that components can enable via `.system()`:
67
92
 
68
93
  ```tsx
@@ -142,7 +167,7 @@ The type system prevents calling methods out of order. `.variant()` after `.stat
142
167
  per mode. An optional third argument opts the theme into OS participation:
143
168
 
144
169
  ```tsx
145
- const tokens = createTheme()
170
+ const theme = createTheme()
146
171
  .addColors({ gray: { 100: '#f0f0f0', 800: '#1a1a1a' } })
147
172
  .addColorModes(
148
173
  'dark',
@@ -229,7 +254,7 @@ theme:
229
254
  ```ts
230
255
  import { createAppearanceBootstrap } from '@animus-ui/system/bootstrap';
231
256
 
232
- const { code, cspHash } = createAppearanceBootstrap(tokens, {
257
+ const { code, cspHash } = createAppearanceBootstrap(theme, {
233
258
  storageKey: 'animus:appearance', // default
234
259
  });
235
260
  ```
package/dist/Animus.d.ts CHANGED
@@ -13,7 +13,7 @@ export declare class AnimusWithAll<PropRegistry extends Record<string, Prop>, Gr
13
13
  custom: CustomProps;
14
14
  compounds: CompoundEntry[];
15
15
  constructor(props: PropRegistry, groups: GroupRegistry, base: BaseStyles, variants: Variants, states: States, activeGroups: ActiveGroups, custom: CustomProps, compounds?: CompoundEntry[]);
16
- extend(): AnimusExtended<PropRegistry, GroupRegistry, BaseStyles, Variants, States, ActiveGroups, CustomProps>;
16
+ protected extend(): AnimusExtended<PropRegistry, GroupRegistry, BaseStyles, Variants, States, ActiveGroups, CustomProps>;
17
17
  asElement<El extends keyof JSX.IntrinsicElements>(component: El): AnimusComponent<El, PropRegistry, GroupRegistry, BaseStyles, Variants, States, ActiveGroups, CustomProps>;
18
18
  asComponent<C extends ComponentType<any>>(AsComponent: C): AnimusWrappedComponent<C, PropRegistry, GroupRegistry, BaseStyles, Variants, States, ActiveGroups, CustomProps>;
19
19
  asClass(): (props?: Record<string, unknown>) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"Animus.d.ts","sourceRoot":"","sources":["../src/Animus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Animus.d.ts","sourceRoot":"","sources":["../src/Animus.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export declare class AnimusExtendedWithAll<PropRegistry extends Record<string, P
12
12
  custom: CustomProps;
13
13
  compounds: CompoundEntry[];
14
14
  constructor(props: PropRegistry, groups: GroupRegistry, base: BaseStyles, variants: Variants, states: States, activeGroups: ActiveGroups, custom: CustomProps, compounds?: CompoundEntry[]);
15
- extend(): AnimusExtended<PropRegistry, GroupRegistry, BaseStyles, Variants, States, ActiveGroups, CustomProps>;
15
+ protected extend(): AnimusExtended<PropRegistry, GroupRegistry, BaseStyles, Variants, States, ActiveGroups, CustomProps>;
16
16
  asElement<El extends keyof JSX.IntrinsicElements>(component: El): AnimusComponent<El, PropRegistry, GroupRegistry, BaseStyles, Variants, States, ActiveGroups, CustomProps>;
17
17
  asComponent<C extends ComponentType<any>>(AsComponent: C): AnimusWrappedComponent<C, PropRegistry, GroupRegistry, BaseStyles, Variants, States, ActiveGroups, CustomProps>;
18
18
  asClass(): (props?: Record<string, unknown>) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"AnimusExtended.d.ts","sourceRoot":"","sources":["../src/AnimusExtended.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimusExtended.d.ts","sourceRoot":"","sources":["../src/AnimusExtended.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,22 @@
1
1
  import { Animus } from './Animus';
2
- import { type ConditionAliasMap, type RegistryBrand } from './conditions';
2
+ import { type AssetRef } from './asset.js';
3
+ import { type AtRuleValue, type ConditionAliasMap, type NarrowedAliases, type RegistryBrand, type ReservedByConditionRegistry, type ReservedBySelectorRegistry } from './conditions';
3
4
  import { type KeyframeFrameMap, type Keyframes } from './keyframes';
4
5
  import { type SelectorAliasMap } from './selectors';
5
6
  import { NamedTransform } from './transforms/createTransform';
6
- import { Prop, ThemedCSSProps } from './types/config';
7
+ import { type BuiltInConditionAlias, type BuiltInSelectorAlias, Prop, ThemedCSSProps } from './types/config';
7
8
  import { AbstractProps } from './types/props';
8
9
  export type GlobalStyleMap = Record<string, Record<string, any>>;
9
10
  /** One `src` descriptor of a font-face resource. */
10
11
  export interface FontFaceSrc {
11
12
  /**
12
- * Emitted byte-exact as authored — asset resolution and rewriting belong
13
- * to the host bundler's CSS asset pipeline, not to extraction.
13
+ * A literal string is emitted byte-exact as authored — asset resolution
14
+ * and rewriting belong to the host bundler's CSS asset pipeline, not to
15
+ * extraction. An `AssetRef` (from `asset(specifier)`) rides through
16
+ * evaluation and emission as its placeholder string; the host plugin
17
+ * substitutes the bundler-resolved URL after extraction.
14
18
  */
15
- url: string;
19
+ url: string | AssetRef;
16
20
  /** Format hint (`woff2`, `woff`, …), rendered as `format('…')`. */
17
21
  format?: string;
18
22
  }
@@ -50,14 +54,153 @@ export type CreateKeyframesFactory<PropReg extends Record<string, Prop> = Record
50
54
  }>;
51
55
  type IncludableSystem = {
52
56
  toConfig(): SerializedConfig;
57
+ /**
58
+ * Present on every system built by this version (attached non-enumerably
59
+ * next to `toConfig` — see `build()`). Optional in the type so systems
60
+ * built by an older @animus-ui/system remain structurally acceptable
61
+ * during the deprecation window; `extend()` fails loud at runtime when it
62
+ * is absent (design D7 — no `SerializedConfig` reconstruction).
63
+ */
64
+ getRegistrySnapshot?(): RegistrySnapshot;
53
65
  };
66
+ /**
67
+ * The frozen registry state captured at `build()` (design D7). `toConfig()`
68
+ * serializes from it and `extend()` merges from it, so post-build mutation of
69
+ * the public `propRegistry`/`groupRegistry` fields affects neither. Containers
70
+ * and per-entry objects are frozen shallow copies. Transforms are immutable,
71
+ * cached forwarding wrappers so later mutation of function metadata cannot
72
+ * alter serialization while anonymous transform behavior is retained.
73
+ */
74
+ export interface RegistrySnapshot {
75
+ props: Record<string, Prop>;
76
+ groups: Record<string, readonly string[]>;
77
+ selectors: SelectorAliasMap;
78
+ conditions: ConditionAliasMap;
79
+ }
80
+ /**
81
+ * A library bundle groups one export for both builders: the system half is
82
+ * consumed by `createSystem().extend()`, the theme half by
83
+ * `createTheme().extend()`; each builder takes its half and ignores the rest.
84
+ * `tokens` is the pre-D9 name for the theme half — both spellings are
85
+ * accepted (design D9; removal horizon is DEF-8).
86
+ */
87
+ export interface LibraryBundle {
88
+ system: IncludableSystem;
89
+ theme?: unknown;
90
+ tokens?: unknown;
91
+ }
92
+ /**
93
+ * The one runtime discriminator for a library bundle: `system.toConfig`
94
+ * being callable. A built system instance also has a `.system()` CHAIN
95
+ * METHOD, so presence of a `system` key alone cannot discriminate the two
96
+ * shapes. Both builders' `from()` use this guard; the QuickJS capture
97
+ * script in the Rust system-loader mirrors it by necessity (it cannot
98
+ * import TS) and points back here.
99
+ */
100
+ export declare function isLibraryBundle(value: unknown): value is LibraryBundle;
54
101
  export interface CreateSystemConfig {
102
+ /**
103
+ * @deprecated Use `createSystem().extend(source)` — the single extension
104
+ * verb on both builders, which actually merges the source's registries.
105
+ * The alias keeps its frozen pre-existing semantics (discovery membership
106
+ * via the same source list, NO registry merge, no type-surface admission)
107
+ * for at least one minor release after `extend()` ships.
108
+ */
55
109
  includes?: readonly IncludableSystem[];
56
110
  }
57
- export declare class SystemBuilder<PropReg extends Record<string, Prop> = {}, GroupReg extends Record<string, (keyof PropReg)[]> = {}, Conds extends string = never, Sels extends string = never> {
111
+ declare const STAGE_BRAND: unique symbol;
112
+ /**
113
+ * Builder type-state for the inherit-first rule: `extend()` (and the
114
+ * deprecated `from()`) is only callable while the builder is in the
115
+ * `'inherit'` stage; every extension call (`addGroup`, `addProps`,
116
+ * `addSelectors`, `addConditions`) advances to `'extend'`, making "inherit
117
+ * first, then extend" a compile error rather than a lint. Phantom — never
118
+ * present at runtime.
119
+ */
120
+ export type SystemBuilderStage = 'inherit' | 'extend';
121
+ export declare class SystemBuilder<PropReg extends Record<string, Prop> = {}, GroupReg extends Record<string, (keyof PropReg)[]> = {}, Conds extends string = never, Sels extends string = never, Stage extends SystemBuilderStage = 'inherit'> {
58
122
  #private;
59
- constructor(propRegistry?: PropReg, groupRegistry?: GroupReg, selectorRegistry?: SelectorAliasMap, includesRegistry?: readonly IncludableSystem[], conditionRegistry?: ConditionAliasMap);
60
- addSelectors<S extends Record<`_${string}`, string>>(selectors: S): SystemBuilder<PropReg, GroupReg, Conds, Sels | Extract<keyof S, string>>;
123
+ readonly [STAGE_BRAND]?: Stage;
124
+ constructor(propRegistry?: PropReg, groupRegistry?: GroupReg, selectorRegistry?: SelectorAliasMap, includesRegistry?: readonly IncludableSystem[], conditionRegistry?: ConditionAliasMap, extendProvenance?: ReadonlyMap<string, number>, extendCount?: number);
125
+ /**
126
+ * Declare inheritance from a consumed library: the source's TYPE surface is
127
+ * admitted (prop/component types for compose/extend interop) and the source
128
+ * joins extraction discovery membership. NO registry merge — consumer
129
+ * configuration remains the singular authority, so props, groups,
130
+ * selectors, and conditions the source registered do not enter this
131
+ * builder's runtime registries. Chainable and repeatable, but only before
132
+ * extension calls ("inherit first, then extend" — enforced by the phantom
133
+ * builder stage). Accepts a built system instance or a library bundle
134
+ * (`{ system, tokens }`), taking the system half and ignoring the rest.
135
+ *
136
+ * @deprecated Use `extend(source)` — the single extension verb on both
137
+ * builders, whose type admission is backed by a real registry merge.
138
+ * `from()` keeps these frozen semantics (type admission + discovery
139
+ * membership, no merge) for at least one minor release.
140
+ */
141
+ from<SrcProps extends Record<string, Prop>, SrcGroups extends Record<string, (keyof SrcProps)[]>, SrcConds extends string = never, SrcSels extends string = never>(this: SystemBuilder<PropReg, GroupReg, Conds, Sels, 'inherit'>, source: SystemInstance<SrcProps, SrcGroups, SrcConds, SrcSels> | {
142
+ system: SystemInstance<SrcProps, SrcGroups, SrcConds, SrcSels>;
143
+ theme?: unknown;
144
+ tokens?: unknown;
145
+ }): SystemBuilder<PropReg & SrcProps, GroupReg & SrcGroups, Conds | SrcConds, Sels | SrcSels, 'inherit'>;
146
+ /**
147
+ * A value annotated as the exported {@link LibraryBundle} interface has
148
+ * already erased its system half's generics (`system: IncludableSystem`),
149
+ * so there is no type surface to admit — discovery and runtime semantics
150
+ * are identical, and the builder's own type state passes through unchanged.
151
+ *
152
+ * @deprecated Use `extend(source)` — the single extension verb on both
153
+ * builders, whose type admission is backed by a real registry merge.
154
+ * `from()` keeps these frozen semantics (type admission + discovery
155
+ * membership, no merge) for at least one minor release.
156
+ */
157
+ from(this: SystemBuilder<PropReg, GroupReg, Conds, Sels, 'inherit'>, source: LibraryBundle): SystemBuilder<PropReg, GroupReg, Conds, Sels, 'inherit'>;
158
+ /**
159
+ * Extend this system from a consumed library: the source's prop, group,
160
+ * selector, and condition registries MERGE into the builder (design D1), so
161
+ * the built system's type surface, `toConfig()` output, and extraction
162
+ * reachability describe the same configuration. Identical definitions
163
+ * coalesce; divergent definitions fail loud naming the entry and both
164
+ * origins (design D3), including a post-extend attempt to redefine an
165
+ * inherited prop. Local calls may add new entries and may replace inherited
166
+ * group membership, selectors, or conditions; prop definitions never rebind
167
+ * silently. Chainable and repeatable, but only before extension calls ("inherit first, then
168
+ * extend" — enforced by the phantom builder stage). Accepts a built system
169
+ * instance or a library bundle (`{ system, theme }`), taking the system
170
+ * half and ignoring the rest. The merge consumes the source's registry
171
+ * snapshot captured at its `build()` (design D7), never a serialized
172
+ * round-trip.
173
+ */
174
+ extend<SrcProps extends Record<string, Prop>, SrcGroups extends Record<string, (keyof SrcProps)[]>, SrcConds extends string = never, SrcSels extends string = never>(this: SystemBuilder<PropReg, GroupReg, Conds, Sels, 'inherit'>, source: SystemInstance<SrcProps, SrcGroups, SrcConds, SrcSels> | {
175
+ system: SystemInstance<SrcProps, SrcGroups, SrcConds, SrcSels>;
176
+ theme?: unknown;
177
+ tokens?: unknown;
178
+ }): SystemBuilder<PropReg & SrcProps, GroupReg & SrcGroups, Conds | SrcConds, Sels | SrcSels, 'inherit'>;
179
+ /**
180
+ * A value annotated as the exported {@link LibraryBundle} interface has
181
+ * already erased its system half's generics (`system: IncludableSystem`),
182
+ * so no source types are admitted — the runtime merge is identical, and
183
+ * the builder's own type state passes through unchanged.
184
+ */
185
+ extend(this: SystemBuilder<PropReg, GroupReg, Conds, Sels, 'inherit'>, source: LibraryBundle): SystemBuilder<PropReg, GroupReg, Conds, Sels, 'inherit'>;
186
+ /**
187
+ * Register custom selector aliases (`_hoverChild`, …) → `&`-relative selector
188
+ * strings. Overriding a built-in SELECTOR alias is legal; a name owned by the
189
+ * CONDITION registry (built-in or registered earlier in this chain) maps to
190
+ * the branded `ReservedByConditionRegistry` instead of its selector string —
191
+ * the compile-time complement of the cross-registry throw below. The clash is
192
+ * checked in VALUE position so `S` stays a naked inference site; subtracting
193
+ * the reserved names from the KEY position is impossible — `Exclude` is a
194
+ * silent no-op against a template-literal pattern. `NarrowedAliases` keeps a
195
+ * widened `Conds` from swallowing the whole `_` namespace.
196
+ *
197
+ * It wraps the ACCUMULATION too: a widened registration contributes nothing
198
+ * to `Sels` rather than widening it, so the pattern can never reach the
199
+ * published `RegistryBrand` — see `addConditions` for the full argument.
200
+ */
201
+ addSelectors<S extends Record<`_${string}`, string>>(selectors: S & {
202
+ [K in keyof S]: K extends BuiltInConditionAlias | NarrowedAliases<Conds> ? ReservedByConditionRegistry<K & string> : S[K];
203
+ }): SystemBuilder<PropReg, GroupReg, Conds, Sels | NarrowedAliases<Extract<keyof S, string>>, 'extend'>;
61
204
  /**
62
205
  * Register condition aliases (`_motionReduce`, `_cardSm`, …) → at-rule
63
206
  * condition strings (`@media …` / `@container …` / `@supports …`).
@@ -67,10 +210,28 @@ export declare class SystemBuilder<PropReg extends Record<string, Prop> = {}, Gr
67
210
  * with an at-rule name is a compile-time type error (design D9; the runtime
68
211
  * `inferConditionKind` throw is defense-in-depth). The registered keys are
69
212
  * accumulated into the phantom `Conds` union and surfaced on `build()`.
213
+ *
214
+ * A key owned by the SELECTOR registry (built-in or registered earlier in
215
+ * this chain) maps to the branded `ReservedBySelectorRegistry` — see
216
+ * `addSelectors` for why the clash is checked in value position. Overriding a
217
+ * built-in CONDITION alias stays legal (design D3); only the OPPOSITE
218
+ * registry is subtracted.
219
+ *
220
+ * `NarrowedAliases` wraps the ACCUMULATION, not just the gate: a widened
221
+ * registration (`Record<`_${string}`, …>`) contributes nothing to `Conds`.
222
+ * Accumulating the pattern instead would carry it out through `build()`'s
223
+ * `RegistryBrand`, and a consumer publishing `ConditionsOf` into the
224
+ * augmentable `Conditions` interface would then have every `_` key type as
225
+ * registered — `UnknownConditionAlias` would never fire again, anywhere in
226
+ * that project. The gate keeps its own `NarrowedAliases` regardless:
227
+ * `extend()`-sourced unions can still arrive widened from a system built
228
+ * before this narrowing.
70
229
  */
71
- addConditions<C extends Record<`_${string}`, `@media${string}` | `@container${string}` | `@supports${string}`>>(conditions: C): SystemBuilder<PropReg, GroupReg, Conds | Extract<keyof C, string>, Sels>;
72
- addGroup<Name extends string, Conf extends Record<string, Prop>>(name: Name extends keyof PropReg ? never : Name, config: Conf): SystemBuilder<PropReg & Conf, GroupReg & Record<Name, (keyof Conf)[]>, Conds, Sels>;
73
- addProps<Conf extends Record<string, Prop> & Partial<Record<Extract<keyof GroupReg, string>, never>>>(config: Conf): SystemBuilder<PropReg & Conf, GroupReg, Conds, Sels>;
230
+ addConditions<C extends Record<`_${string}`, AtRuleValue>>(conditions: C & {
231
+ [K in keyof C]: K extends BuiltInSelectorAlias | NarrowedAliases<Sels> ? ReservedBySelectorRegistry<K & string> : C[K];
232
+ }): SystemBuilder<PropReg, GroupReg, Conds | NarrowedAliases<Extract<keyof C, string>>, Sels, 'extend'>;
233
+ addGroup<Name extends string, Conf extends Record<string, Prop>>(name: Name extends keyof PropReg ? never : Name, config: Conf): SystemBuilder<PropReg & Conf, GroupReg & Record<Name, (keyof Conf)[]>, Conds, Sels, 'extend'>;
234
+ addProps<Conf extends Record<string, Prop> & Partial<Record<Extract<keyof GroupReg, string>, never>>>(config: Conf): SystemBuilder<PropReg & Conf, GroupReg, Conds, Sels, 'extend'>;
74
235
  build(): {
75
236
  system: SystemInstance<PropReg, GroupReg, Conds, Sels>;
76
237
  createGlobalStyles: GlobalStylesFactory<PropReg>;
@@ -79,6 +240,14 @@ export declare class SystemBuilder<PropReg extends Record<string, Prop> = {}, Gr
79
240
  }
80
241
  export type SystemInstance<PropReg extends Record<string, Prop>, GroupReg extends Record<string, (keyof PropReg)[]>, Conds extends string = never, Sels extends string = never> = Animus<PropReg, GroupReg> & {
81
242
  toConfig(): SerializedConfig;
243
+ /**
244
+ * Frozen registry state captured at `build()` (design D7) — what
245
+ * `extend()` merges from. Always present on instances built by this
246
+ * version; optional in the type so systems built by an older
247
+ * @animus-ui/system stay structurally acceptable to `from()` during the
248
+ * deprecation window.
249
+ */
250
+ getRegistrySnapshot?(): RegistrySnapshot;
82
251
  } & RegistryBrand<Conds, Sels>;
83
252
  export interface SerializedConfig {
84
253
  propConfig: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SystemBuilder.d.ts","sourceRoot":"","sources":["../src/SystemBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SystemBuilder.d.ts","sourceRoot":"","sources":["../src/SystemBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ //#region src/runtime/assert-root-slot.ts
2
+ /**
3
+ * The Root-slot precondition shared by every composition entry point — the two
4
+ * source forms (`compose`, `composeWithContext`) and the two extracted forms
5
+ * the transform emitter writes in their place (`createComposedFamily`,
6
+ * `createComposedFamilyWithContext`).
7
+ *
8
+ * A family without a Root slot has no cascade source: the composed variant
9
+ * rules emitted for its children inherit nothing, and the context transport
10
+ * renders them against the empty default — the silent-drop failure mode this
11
+ * runtime guards against. Source form and extracted form must agree on the
12
+ * contract, so the check and its message live here once.
13
+ *
14
+ * React-free by design: the extracted forms import it from the same module the
15
+ * source forms do, with no cycle through the component runtime.
16
+ */
17
+ function assertRootSlot(slots, fnName) {
18
+ if (!Object.prototype.propertyIsEnumerable.call(slots, "Root")) throw new Error(`${fnName}(): No "Root" slot found. The root slot key must be exactly "Root" (PascalCase).`);
19
+ }
20
+ //#endregion
21
+ export { assertRootSlot as t };
@@ -0,0 +1,25 @@
1
+ declare const ASSET_REF_BRAND: unique symbol;
2
+ /**
3
+ * A branded package-asset reference for `fontFaces[].src[].url`
4
+ * (global-styles-system). The VALUE is the deterministic placeholder
5
+ * `animus-asset:<specifier>` — a plain string, so it survives the QuickJS
6
+ * sandbox's JSON serialization and the extraction emitter's byte-exact url
7
+ * pass-through untouched. The HOST plugin substitutes the placeholder with
8
+ * the bundler-resolved asset URL after extraction; the sandbox never
9
+ * resolves anything.
10
+ */
11
+ export type AssetRef = string & {
12
+ readonly [ASSET_REF_BRAND]: true;
13
+ };
14
+ /** The reserved scheme marking an unsubstituted asset reference. */
15
+ export declare const ASSET_PLACEHOLDER_PREFIX = "animus-asset:";
16
+ /**
17
+ * Reference a package-owned asset (e.g. a font file) by module specifier:
18
+ * `asset('@acme/tokens/fonts/inter.woff2')`. Resolution — aliases, exports
19
+ * maps, `base`, content hashing — belongs to the host bundler; this function
20
+ * only brands the specifier into its placeholder form. A literal URL string
21
+ * (`'/fonts/inter.woff2'`) remains the pass-through alternative.
22
+ */
23
+ export declare function asset(specifier: string): AssetRef;
24
+ export {};
25
+ //# sourceMappingURL=asset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../src/asset.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,eAAe,EAAE,OAAO,MAAM,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAErE,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAEjD"}
package/dist/compose.d.ts CHANGED
@@ -17,7 +17,9 @@ import type { AnyBrandedComponent, ComposedFamily, SharedConfig } from './types/
17
17
  * For React context propagation (portal-crossing), use
18
18
  * `composeWithContext` from `@animus-ui/system/compose-with-context`.
19
19
  */
20
- export declare function compose<Slots extends Record<string, AnyBrandedComponent>, const Shared extends SharedConfig<Slots>>(slots: Slots, options: {
20
+ export declare function compose<Slots extends {
21
+ Root: AnyBrandedComponent;
22
+ } & Record<string, AnyBrandedComponent>, const Shared extends SharedConfig<Slots>>(slots: Slots, options: {
21
23
  shared: Shared;
22
24
  name?: string;
23
25
  }): ComposedFamily<Slots>;
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CACrB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACjD,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,KAAK,CAAC,EAExC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,cAAc,CAAC,KAAK,CAAC,CAyBvB"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,OAAO,CACrB,KAAK,SAAS;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAAG,MAAM,CAClD,MAAM,EACN,mBAAmB,CACpB,EACD,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,KAAK,CAAC,EAExC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,cAAc,CAAC,KAAK,CAAC,CAoBvB"}
package/dist/compose.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { t as assertRootSlot } from "./assert-root-slot-B83scqPh.js";
1
2
  import { createElement, forwardRef } from "react";
2
3
  //#region src/compose.ts
3
4
  /**
@@ -19,6 +20,7 @@ import { createElement, forwardRef } from "react";
19
20
  * `composeWithContext` from `@animus-ui/system/compose-with-context`.
20
21
  */
21
22
  function compose(slots, options) {
23
+ assertRootSlot(slots, "compose");
22
24
  const familyName = options.name ?? "Composed";
23
25
  const result = {};
24
26
  for (const [name, SourceComponent] of Object.entries(slots)) {
@@ -29,7 +31,6 @@ function compose(slots, options) {
29
31
  Wrapper.displayName = `${familyName}.${name}`;
30
32
  result[name] = Wrapper;
31
33
  }
32
- if (!("Root" in result)) throw new Error("compose(): No \"Root\" slot found. The root slot key must be exactly \"Root\" (PascalCase).");
33
34
  return result;
34
35
  }
35
36
  //#endregion
@@ -10,7 +10,9 @@ import type { AnyBrandedComponent, ComposedFamily, SharedConfig } from './types/
10
10
  * For CSS-only propagation (RSC-safe), use `compose` from the barrel or
11
11
  * `@animus-ui/system/compose`.
12
12
  */
13
- export declare function composeWithContext<Slots extends Record<string, AnyBrandedComponent>, const Shared extends SharedConfig<Slots>>(slots: Slots, options: {
13
+ export declare function composeWithContext<Slots extends {
14
+ Root: AnyBrandedComponent;
15
+ } & Record<string, AnyBrandedComponent>, const Shared extends SharedConfig<Slots>>(slots: Slots, options: {
14
16
  shared: Shared;
15
17
  name?: string;
16
18
  }): ComposedFamily<Slots>;
@@ -1 +1 @@
1
- {"version":3,"file":"composeWithContext.d.ts","sourceRoot":"","sources":["../src/composeWithContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,yBAAyB,EAI/B,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACjD,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,KAAK,CAAC,EAExC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,cAAc,CAAC,KAAK,CAAC,CAmEvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,EACrD,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7C,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,CA+DhD"}
1
+ {"version":3,"file":"composeWithContext.d.ts","sourceRoot":"","sources":["../src/composeWithContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,yBAAyB,EAI/B,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,SAAS;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAAG,MAAM,CAClD,MAAM,EACN,mBAAmB,CACpB,EACD,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,KAAK,CAAC,EAExC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,cAAc,CAAC,KAAK,CAAC,CA8DvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,EACrD,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7C,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAuDhD"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ import { t as assertRootSlot } from "./assert-root-slot-B83scqPh.js";
2
3
  import { createContext, createElement, forwardRef, useContext } from "react";
3
4
  //#region src/composeWithContext.ts
4
5
  /**
@@ -12,6 +13,7 @@ import { createContext, createElement, forwardRef, useContext } from "react";
12
13
  * `@animus-ui/system/compose`.
13
14
  */
14
15
  function composeWithContext(slots, options) {
16
+ assertRootSlot(slots, "composeWithContext");
15
17
  const familyName = options.name ?? "Composed";
16
18
  const sharedKeySet = new Set(Object.keys(options.shared));
17
19
  const FamilyCtx = createContext({});
@@ -46,7 +48,6 @@ function composeWithContext(slots, options) {
46
48
  Wrapper.displayName = `${familyName}.${name}`;
47
49
  result[name] = Wrapper;
48
50
  }
49
- if (!("Root" in result)) throw new Error("composeWithContext(): No \"Root\" slot found. The root slot key must be exactly \"Root\" (PascalCase).");
50
51
  return result;
51
52
  }
52
53
  /**
@@ -59,6 +60,7 @@ function composeWithContext(slots, options) {
59
60
  * receive a 'use client' directive from the transform emitter.
60
61
  */
61
62
  function createComposedFamilyWithContext(slots, config) {
63
+ assertRootSlot(slots, "createComposedFamilyWithContext");
62
64
  const { name, sharedKeys } = config;
63
65
  const Ctx = createContext({});
64
66
  const keySet = new Set(sharedKeys);
@@ -93,7 +95,6 @@ function createComposedFamilyWithContext(slots, config) {
93
95
  Wrapper.displayName = `${name}.${slotName}`;
94
96
  result[slotName] = Wrapper;
95
97
  }
96
- if (!("Root" in result)) throw new Error("createComposedFamilyWithContext(): No \"Root\" slot found. The root slot key must be exactly \"Root\" (PascalCase).");
97
98
  return result;
98
99
  }
99
100
  //#endregion