@animus-ui/system 0.1.0-next.21 → 0.1.0-next.30

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 (41) hide show
  1. package/dist/Animus.d.ts +2 -7
  2. package/dist/Animus.d.ts.map +1 -1
  3. package/dist/AnimusExtended.d.ts +2 -7
  4. package/dist/AnimusExtended.d.ts.map +1 -1
  5. package/dist/SystemBuilder.d.ts +16 -13
  6. package/dist/SystemBuilder.d.ts.map +1 -1
  7. package/dist/compose.d.ts +2 -4
  8. package/dist/compose.d.ts.map +1 -1
  9. package/dist/createClassResolver-Dny76K15.js +227 -0
  10. package/dist/groups/index.d.ts +1 -0
  11. package/dist/groups/index.d.ts.map +1 -1
  12. package/dist/groups/index.js +3 -2
  13. package/dist/index.d.ts +5 -6
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +339 -527
  16. package/dist/runtime/index.d.ts.map +1 -1
  17. package/dist/runtime-entry.d.ts +9 -0
  18. package/dist/runtime-entry.d.ts.map +1 -0
  19. package/dist/runtime-entry.js +2 -0
  20. package/dist/theme/createTheme.d.ts +46 -53
  21. package/dist/theme/createTheme.d.ts.map +1 -1
  22. package/dist/theme/index.d.ts +0 -2
  23. package/dist/theme/index.d.ts.map +1 -1
  24. package/dist/theme/serializeTokens.d.ts +2 -2
  25. package/dist/theme/serializeTokens.d.ts.map +1 -1
  26. package/dist/theme/utils.d.ts +20 -0
  27. package/dist/theme/utils.d.ts.map +1 -1
  28. package/dist/types/component.d.ts +45 -26
  29. package/dist/types/component.d.ts.map +1 -1
  30. package/dist/types/config.d.ts +11 -2
  31. package/dist/types/config.d.ts.map +1 -1
  32. package/dist/types/props.d.ts +13 -25
  33. package/dist/types/props.d.ts.map +1 -1
  34. package/dist/types/theme.d.ts +38 -19
  35. package/dist/types/theme.d.ts.map +1 -1
  36. package/dist/utils/deepMerge.d.ts +5 -0
  37. package/dist/utils/deepMerge.d.ts.map +1 -0
  38. package/package.json +6 -1
  39. package/dist/PropertyBuilder.d.ts +0 -11
  40. package/dist/PropertyBuilder.d.ts.map +0 -1
  41. /package/dist/{size-Dge_rsuz.js → size-BjymBo7z.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,UAAU,EAAU,MAAM,OAAO,CAAC;AAE1D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAE1B,UAAU,eAAgB,SAAQ,mBAAmB;CAAG;AAIxD,KAAK,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAErD,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG;IACrD,MAAM,EAAE,MAAM,KAAK,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,EACvB,aAAa,CAAC,EAAE,aAAa,EAC7B,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,eAAe,CAoFjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEtB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAE1B,UAAU,eAAgB,SAAQ,mBAAmB;CAAG;AAIxD,KAAK,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAErD,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG;IACrD,MAAM,EAAE,MAAM,KAAK,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,eAAe,EACvB,aAAa,CAAC,EAAE,aAAa,EAC7B,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,eAAe,CAsFjB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Hook-free runtime entry — safe for React Server Components.
3
+ *
4
+ * Extracted components import from this subpath instead of the barrel
5
+ * so they don't pull in compose() (which uses createContext/useContext).
6
+ */
7
+ export { createComponent } from './runtime';
8
+ export { createClassResolver } from './runtime/createClassResolver';
9
+ //# sourceMappingURL=runtime-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-entry.d.ts","sourceRoot":"","sources":["../src/runtime-entry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { n as createComponent, t as createClassResolver } from "./createClassResolver-Dny76K15.js";
2
+ export { createClassResolver, createComponent };
@@ -1,63 +1,56 @@
1
- import { AbstractTheme, CSSColorValue } from '../types/theme';
1
+ import { CSSColorValue, SerializedTheme, ThemeManifest } from '../types/theme';
2
2
  import { LiteralPaths } from './flattenScale';
3
- import { KeyAsVariable } from './serializeTokens';
4
- import { ColorModeConfig, Merge, MergeTheme, PrivateThemeKeys } from './types';
3
+ /** Flatten a type to prevent MergeTheme depth accumulation (TS2589). Exported for use in consumer themes. */
4
+ export type Flatten<T> = {
5
+ [K in keyof T]: T[K];
6
+ };
7
+ /** The built theme: nested raw data + non-enumerable boundary methods */
8
+ type BuiltTheme<T, _Emitted extends string> = {
9
+ [K in keyof T]: T[K];
10
+ } & {
11
+ manifest: ThemeManifest;
12
+ serialize(): SerializedTheme;
13
+ varRef(tokenPath: string): string | undefined;
14
+ };
15
+ /** Shared runtime state passed between builder phases. */
16
+ interface BuilderState {
17
+ theme: Record<string, unknown>;
18
+ emittedScales: Set<string>;
19
+ contextualVars: Map<string, string[]>;
20
+ }
5
21
  /**
6
- * Validate token refs in scale values at the type level.
7
- * Accepts `{scale.key}` for any emitted scale, plus `{colors.key/${number}}` opacity syntax.
22
+ * ThemeScales the final phase. Has addScale, extendScale, declareContextualVars, build.
23
+ * Also allows addColors and addColorModes for augmentation.
8
24
  */
9
- type ValidateScaleRef<V, ValidPaths extends string> = V extends string ? V extends `${string}{${infer Path}}${string}` ? Path extends ValidPaths ? V : Path extends `${infer Base}/${number}` ? Base extends ValidPaths & `colors.${string}` ? V : `{${Path}} is not a valid token ref` : `{${Path}} is not a valid token ref` : V : V;
10
- /** Walk a values record and validate each value's token refs. */
11
- type ValidateScaleValues<V extends Record<string | number, unknown>, ValidPaths extends string> = {
12
- [K in keyof V]: V[K] extends Record<string, unknown> ? ValidateScaleValues<V[K], ValidPaths> : ValidateScaleRef<V[K], ValidPaths>;
13
- };
14
- export declare class ThemeBuilder<T extends AbstractTheme, Emitted extends string = never> {
15
- #private;
16
- constructor(baseTheme: T);
17
- /**
18
- * @param colors A map of color tokens. Immediately converted to CSS variables `--color-${key}`.
19
- * @example .addColors({ navy: 'navy', hyper: 'purple' })
20
- */
21
- addColors<Colors extends Record<string, CSSColorValue | Record<string, CSSColorValue>>, NextColors extends LiteralPaths<Colors, '-'>>(colors: Colors): ThemeBuilder<MergeTheme<T & PrivateThemeKeys, Record<"colors", KeyAsVariable<NextColors, "color">>>, "colors" | Emitted>;
22
- /**
23
- * @param initialMode Default color mode key.
24
- * @param modeConfig Map of color modes with semantic aliases pointing to palette keys.
25
- * @example .addColorModes('dark', { dark: { primary: 'ember' }, light: { primary: 'void' } })
26
- */
27
- addColorModes<Modes extends string, InitialMode extends keyof Config, Colors extends keyof T['colors'], ModeColors extends ColorModeConfig<Colors>, Config extends Record<Modes, ModeColors>, ColorAliases extends {
28
- [K in keyof Config]: LiteralPaths<Config[K], '-', '_'>;
29
- }>(initialMode: InitialMode, modeConfig: Config): ThemeBuilder<MergeTheme<T & PrivateThemeKeys, {
30
- colors: KeyAsVariable<LiteralPaths<Config[keyof Config], "-", "_">, "colors"> & T["colors"];
31
- modes: Merge<T["modes"], ColorAliases>;
32
- mode: keyof Config;
33
- _getColorValue: (color: keyof T["colors"]) => string;
34
- }>, Emitted>;
35
- /**
36
- * Add a named scale to the theme.
37
- *
38
- * @param config.name - Scale name (e.g. 'space', 'sizes')
39
- * @param config.values - Scale value map
40
- * @param config.emit - When true, generates CSS variables (default: false)
41
- *
42
- * @example
43
- * .addScale({ name: 'space', values: { 0: '0', 8: '0.5rem', 16: '1rem' } })
44
- * .addScale({ name: 'sizes', emit: true, values: { navHeight: '48px' } })
45
- */
46
- addScale<Key extends string, const Values extends Record<string | number, string | number | Record<string, string | number>>, Emit extends boolean = false, NewScale extends LiteralPaths<Values, '-'> = LiteralPaths<Values, '-'>, ValidPaths extends string = keyof LiteralPaths<Pick<T, Extract<Emitted | 'colors', keyof T>>, '.'> & string>(config: {
25
+ export declare class ThemeBuilder<T extends Record<string, unknown> = Record<string, unknown>, Emitted extends string = never> {
26
+ /** @internal */ _state: BuilderState;
27
+ constructor(state: BuilderState);
28
+ addBreakpoints<BP extends Record<string, number>>(breakpoints: BP): ThemeBuilder<T & Record<"breakpoints", { [K in keyof BP]: BP[K]; }>, Emitted>;
29
+ from<Source extends Record<string, unknown>>(builtTheme: Source): ThemeBuilder<T & Source, Emitted>;
30
+ 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>;
31
+ addColorModes<Config extends Record<string, Record<string, unknown>>, AliasKeys extends LiteralPaths<Config[keyof Config], '.', '_'> = LiteralPaths<Config[keyof Config], '.', '_'>>(initialMode: string, modeConfig: Config): ThemeBuilder<{ [K in keyof (Omit<T, "colors"> & Record<"colors", (T extends {
32
+ colors: infer C;
33
+ } ? C : unknown) & AliasKeys>)]: (Omit<T, "colors"> & Record<"colors", (T extends {
34
+ colors: infer C;
35
+ } ? C : unknown) & AliasKeys>)[K]; }, Emitted>;
36
+ 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: {
47
37
  name: Key;
48
- values: Values & ValidateScaleValues<Values, ValidPaths>;
38
+ values: Values;
49
39
  emit?: Emit;
50
- }): ThemeBuilder<{ [K in keyof MergeTheme<T, Record<Key, Emit extends true ? KeyAsVariable<NewScale, Key> : NewScale>>]: MergeTheme<T, Record<Key, Emit extends true ? KeyAsVariable<NewScale, Key> : NewScale>>[K]; }, Emit extends true ? Emitted | Key : Emitted>;
40
+ }): ThemeBuilder<{ [K in keyof (T & Record<Key, NewScale>)]: (T & Record<Key, NewScale>)[K]; }, Emit extends true ? Emitted | Key : Emitted>;
41
+ declareContextualVars<const Vars extends Partial<{
42
+ [K in keyof T & string]: readonly string[];
43
+ }>>(vars: Vars): 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>;
44
+ 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>;
51
45
  /**
52
- * @param key A current key of theme to update with computed values.
53
- * @example .updateScale('fonts', ({ basic }) => ({ basicFallback: `${basic}, Montserrat` }))
46
+ * Finalize the theme build.
47
+ * Flattens nested data at the boundary produces manifest and serialize().
54
48
  */
55
- updateScale<Key extends keyof T, Fn extends (tokens: T[Key]) => Record<string | number, unknown>>(key: Key, updateFn: Fn): ThemeBuilder<T & Record<Key, T[Key] & ReturnType<Fn>>, Emitted>;
56
- /** Finalize the theme build. Returns the theme with a non-enumerable `.manifest` property. */
57
- build(): {
58
- [K in keyof (T & PrivateThemeKeys)]: (T & PrivateThemeKeys)[K];
59
- };
49
+ build(): BuiltTheme<T, Emitted>;
60
50
  }
61
- export declare function createTheme<T extends AbstractTheme>(base: T): ThemeBuilder<T, never>;
51
+ type EmptyTheme = {
52
+ breakpoints: Record<string, number>;
53
+ };
54
+ export declare function createTheme(): ThemeBuilder<EmptyTheme, never>;
62
55
  export {};
63
56
  //# 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,7 +1,5 @@
1
1
  export { createTheme, ThemeBuilder } from './createTheme';
2
2
  export type { FindPath, LiteralPaths, Path, PathToLiteral, PathValue, } from './flattenScale';
3
- export { flattenScale } from './flattenScale';
4
3
  export type { KeyAsVariable, SanitizeKey } from './serializeTokens';
5
- export { serializeTokens } from './serializeTokens';
6
4
  export type { Assign, AssignValueIfUnmergable, ColorModeConfig, Mergable, Merge, MergeTheme, PrivateThemeKeys, } from './types';
7
5
  //# sourceMappingURL=index.d.ts.map
@@ -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,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,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,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,4 +1,4 @@
1
- import { BaseTheme, CSSObject } from '../types/theme';
1
+ import { CSSObject } from '../types/theme';
2
2
  /**
3
3
  * Returns an type of any object with { key: 'var(--key) }
4
4
  */
@@ -6,7 +6,7 @@ export type KeyAsVariable<T extends Record<string, any>, Prefix extends string>
6
6
  [V in keyof T]: `var(--${Prefix}-${SanitizeKey<Extract<V, string>>})`;
7
7
  };
8
8
  export type SanitizeKey<T extends string> = T extends `${'$'}${infer Y}` ? Y : T;
9
- type ThemeWithBreakpoints = BaseTheme | {
9
+ type ThemeWithBreakpoints = {
10
10
  breakpoints: Record<string, string | number>;
11
11
  };
12
12
  type SerializedTokensInput = Record<string, string | number | CSSObject | SerializedTokensInputRecursive>;
@@ -1 +1 @@
1
- {"version":3,"file":"serializeTokens.d.ts","sourceRoot":"","sources":["../../src/theme/serializeTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGtD;;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;AAEN,KAAK,oBAAoB,GACrB,SAAS,GACT;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CAAE,CAAC;AA6BrD,KAAK,qBAAqB,GAAG,MAAM,CACjC,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,8BAA8B,CAC7D,CAAC;AAEF,UAAU,8BAA8B;IACtC,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC;IACnC,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC;CACpC;AAED,eAAO,MAAM,eAAe,GAC1B,CAAC,SAAS,qBAAqB,EAC/B,MAAM,SAAS,MAAM,EAErB,QAAQ,CAAC,EACT,QAAQ,MAAM,EACd,OAAO,oBAAoB,GAAG,SAAS,KACtC;IACD,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;CAgBtB,CAAC"}
1
+ {"version":3,"file":"serializeTokens.d.ts","sourceRoot":"","sources":["../../src/theme/serializeTokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C;;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;AAEN,KAAK,oBAAoB,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CAAE,CAAC;AA6B7E,KAAK,qBAAqB,GAAG,MAAM,CACjC,MAAM,EACN,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,8BAA8B,CAC7D,CAAC;AAEF,UAAU,8BAA8B;IACtC,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC;IACnC,CAAC,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC;CACpC;AAED,eAAO,MAAM,eAAe,GAC1B,CAAC,SAAS,qBAAqB,EAC/B,MAAM,SAAS,MAAM,EAErB,QAAQ,CAAC,EACT,QAAQ,MAAM,EACd,OAAO,oBAAoB,GAAG,SAAS,KACtC;IACD,MAAM,EAAE,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;CAgBtB,CAAC"}
@@ -4,6 +4,26 @@ export declare function isObject(value: unknown): value is object;
4
4
  export declare function merge<A, B>(target: A, source: B): A & B;
5
5
  export declare function merge<A, B, C>(target: A, s1: B, s2: C): A & B & C;
6
6
  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
+ export declare function walkDotPath(obj: Record<string, unknown>, path: string): unknown;
13
+ /**
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).
19
+ */
20
+ 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
+ export declare function dotToDash(dotPath: string): string;
7
27
  /** Map over object values — matches lodash.mapValues overload signatures */
8
28
  export declare function mapValues<T extends object, TResult>(obj: T, fn: (value: T[keyof T], key: string, collection: T) => TResult): {
9
29
  [P in keyof T]: TResult;
@@ -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,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EACjD,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,KAAK,OAAO,GAC7D;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CAAE,CAAC;AAC/B,wBAAgB,SAAS,CAAC,OAAO,EAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
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;AAC5E,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EACjD,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,KAAK,OAAO,GAC7D;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CAAE,CAAC;AAC/B,wBAAgB,SAAS,CAAC,OAAO,EAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxB,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
@@ -2,6 +2,20 @@ import type { ComponentPropsWithRef, ComponentType, ForwardRefExoticComponent, R
2
2
  import type { AnimusExtended } from '../AnimusExtended';
3
3
  import type { AbstractParser, CSSPropMap, CSSProps, Prop, SystemProps, ThemedScale, VariantConfig } from './config';
4
4
  import type { AbstractProps } from './props';
5
+ export declare const ConsumerProps: unique symbol;
6
+ export declare const VariantConfigBrand: unique symbol;
7
+ /**
8
+ * Minimal structural constraint for compose() slots.
9
+ * Extends ForwardRefExoticComponent<any> for createElement compat,
10
+ * plus the phantom brands. Using `any` as P avoids expanding the
11
+ * full 8-generic AnimusComponent intersection, preventing TS2590
12
+ * "union type too complex" when the property registry is large.
13
+ */
14
+ export type AnyBrandedComponent = ForwardRefExoticComponent<any> & {
15
+ readonly [ConsumerProps]: unknown;
16
+ readonly [VariantConfigBrand]: unknown;
17
+ extend: () => unknown;
18
+ };
5
19
  type ExtendFn<PR extends Record<string, Prop>, GR extends Record<string, (keyof PR)[]>, BS, V, S, AG, CP> = {
6
20
  extend: () => AnimusExtended<PR, GR, BS & CSSProps<AbstractProps, SystemProps<AbstractParser>>, V & Record<string, VariantConfig>, S & CSSPropMap<AbstractProps, SystemProps<AbstractParser>>, AG & Record<string, true>, CP & Record<string, Prop>>;
7
21
  };
@@ -10,7 +24,7 @@ type ExtendFn<PR extends Record<string, Prop>, GR extends Record<string, (keyof
10
24
  * GR maps group names to prop name arrays, AG records which groups are active.
11
25
  * The result is the union of prop names from all active groups.
12
26
  */
13
- type ActiveGroupPropNames<PR extends Record<string, Prop>, GR extends Record<string, (keyof PR)[]>, AG> = GR[Extract<keyof AG, keyof GR>][number];
27
+ type ActiveGroupPropNames<PR extends Record<string, Prop>, GR extends Record<string, (keyof PR)[]>, AG> = GR[Extract<keyof AG, keyof GR>][number] | Extract<keyof AG, keyof PR>;
14
28
  /**
15
29
  * Compute the group system props — each active group prop accepts its scale-resolved type.
16
30
  * Uses the augmented Theme interface via ThemedScale (no generic T needed).
@@ -50,14 +64,23 @@ type StateProps<S> = string extends keyof S ? {} : {
50
64
  * avoid TS2590 "union type too complex" during declaration emit.
51
65
  */
52
66
  type AnimusManagedKeys<PR extends Record<string, Prop>, GR extends Record<string, (keyof PR)[]>, V, S, AG, CP extends Record<string, Prop>> = ActiveGroupPropNames<PR, GR, AG> | keyof VariantProps<V> | keyof StateProps<S> | keyof CP | 'as' | 'className' | 'children';
53
- /** Component type for .asElement() — HTML element tag with full Animus props. */
54
- export type AnimusComponent<El extends keyof JSX.IntrinsicElements, PR extends Record<string, Prop>, GR extends Record<string, (keyof PR)[]>, BS, V, S, AG, CP extends Record<string, Prop>> = ForwardRefExoticComponent<Omit<ComponentPropsWithRef<El>, AnimusManagedKeys<PR, GR, V, S, AG, CP>> & GroupProps<PR, GR, AG> & VariantProps<V> & StateProps<S> & CustomPropValues<CP> & {
67
+ /**
68
+ * The consumer-facing props for an AnimusComponent, computed once at
69
+ * definition time. Used both as ForwardRefExoticComponent's P parameter
70
+ * and carried on the ConsumerProps brand for zero-inference access.
71
+ */
72
+ type AnimusConsumerProps<El extends keyof JSX.IntrinsicElements, PR extends Record<string, Prop>, GR extends Record<string, (keyof PR)[]>, V, S, AG, CP extends Record<string, Prop>> = Omit<ComponentPropsWithRef<El>, AnimusManagedKeys<PR, GR, V, S, AG, CP>> & GroupProps<PR, GR, AG> & VariantProps<V> & StateProps<S> & CustomPropValues<CP> & {
55
73
  as?: keyof JSX.IntrinsicElements | ComponentType<{
56
74
  className?: string;
57
75
  }>;
58
76
  className?: string;
59
77
  children?: ReactNode;
60
- }> & ExtendFn<PR, GR, BS, V, S, AG, CP>;
78
+ };
79
+ /** Component type for .asElement() — HTML element tag with full Animus props. */
80
+ export type AnimusComponent<El extends keyof JSX.IntrinsicElements, PR extends Record<string, Prop>, GR extends Record<string, (keyof PR)[]>, BS, V, S, AG, CP extends Record<string, Prop>> = ForwardRefExoticComponent<AnimusConsumerProps<El, PR, GR, V, S, AG, CP>> & ExtendFn<PR, GR, BS, V, S, AG, CP> & {
81
+ readonly [ConsumerProps]: AnimusConsumerProps<El, PR, GR, V, S, AG, CP>;
82
+ readonly [VariantConfigBrand]: V;
83
+ };
61
84
  /** Component type for .asComponent() — wraps an existing React component. */
62
85
  export type AnimusWrappedComponent<PR extends Record<string, Prop>, GR extends Record<string, (keyof PR)[]>, BS, V, S, AG, CP> = ForwardRefExoticComponent<Record<string, any> & GroupProps<PR, GR, {}> & VariantProps<V> & StateProps<S> & {
63
86
  as?: keyof JSX.IntrinsicElements | ComponentType<{
@@ -76,10 +99,12 @@ type StripStringIndex<T> = {
76
99
  };
77
100
  /**
78
101
  * Extract the raw variant config (V generic) from an AnimusComponent.
79
- * Routes through extend()'s return type .variants field, then
80
- * strips the string index signature added by ExtendFn's intersection.
102
+ * Prefers the VariantConfigBrand (direct indexed access, no conditional
103
+ * inference). Falls back to extend() inference for non-branded components.
81
104
  */
82
105
  export type ExtractVariantsConfig<C> = C extends {
106
+ readonly [VariantConfigBrand]: infer V;
107
+ } ? StripStringIndex<V> : C extends {
83
108
  extend: () => {
84
109
  variants: infer V;
85
110
  };
@@ -127,35 +152,29 @@ export type SharedVariantKeys<Slots extends Record<string, unknown>> = {
127
152
  [K in AllVariantKeys<Slots> & string]: keyof Slots extends infer S ? S extends keyof Slots ? K extends keyof VariantPropsOf<Slots[S]> ? true : false : never : never extends false ? never : K;
128
153
  }[AllVariantKeys<Slots> & string];
129
154
  /**
130
- * Extract the component props from a ForwardRefExoticComponent,
131
- * including AnimusComponent (which extends it).
132
- */
133
- type PropsOf<C> = C extends ForwardRefExoticComponent<infer P> ? P : never;
134
- /**
135
- * Sealed child slot — accepts source component's own props.
136
- * Shared variant values come from context as defaults;
137
- * direct props override context. Slots that don't have a
138
- * shared variant key simply ignore it.
155
+ * Seal a component's props for compose output.
156
+ * Prefers the ConsumerProps brand (direct indexed access — zero conditional
157
+ * inference) over PropsOf (which must structurally match and infer through
158
+ * ForwardRefExoticComponent). This eliminates the depth explosion that
159
+ * occurs in Next.js environments where the TS plugin adds overhead.
139
160
  */
140
- export type ComposedSlot<C> = ForwardRefExoticComponent<Omit<PropsOf<C>, 'extend'> & {
161
+ type SealedProps<C> = C extends {
162
+ readonly [ConsumerProps]: infer P;
163
+ } ? Omit<P, 'extend'> & {
141
164
  className?: string;
142
165
  children?: ReactNode;
143
- }>;
144
- /**
145
- * Sealed Root slot — KEEPS shared variant props (it's the provider).
146
- * Also accepts children for the Provider wrapper.
147
- */
148
- export type ComposedRoot<C> = ForwardRefExoticComponent<Omit<PropsOf<C>, 'extend'> & {
166
+ } : C extends ForwardRefExoticComponent<infer P> ? Omit<P, 'extend'> & {
149
167
  className?: string;
150
168
  children?: ReactNode;
151
- }>;
169
+ } : never;
152
170
  /**
153
171
  * The output of compose() — a record of capitalized slot names mapped
154
- * to sealed React components. Root gets ComposedRoot (keeps shared props),
155
- * all other slots get ComposedSlot (own props, context defaults).
172
+ * to sealed React components. Props are pre-resolved per-slot via SealedProps
173
+ * to avoid depth explosion when this type appears inside Next.js generated
174
+ * `typeof import()` contexts.
156
175
  */
157
176
  export type ComposedFamily<Slots extends Record<string, unknown>> = {
158
- [K in keyof Slots as Capitalize<K & string>]: Lowercase<K & string> extends 'root' ? ComposedRoot<Slots[K]> : ComposedSlot<Slots[K]>;
177
+ [K in keyof Slots as Capitalize<K & string>]: ForwardRefExoticComponent<SealedProps<Slots[K]>>;
159
178
  };
160
179
  export {};
161
180
  //# sourceMappingURL=component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/types/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/types/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,aAAa,EACb,yBAAyB,EACzB,SAAS,EACV,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAU7C,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAClD,MAAM,CAAC,OAAO,CAAC,MAAM,kBAAkB,EAAE,OAAO,MAAM,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG;IACjE,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACvC,MAAM,EAAE,MAAM,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,QAAQ,CACX,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC/B,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EACvC,EAAE,EACF,CAAC,EACD,CAAC,EACD,EAAE,EACF,EAAE,IACA;IACF,MAAM,EAAE,MAAM,cAAc,CAC1B,EAAE,EACF,EAAE,EACF,EAAE,GAAG,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,EACzD,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACjC,CAAC,GAAG,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,EAC1D,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EACzB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAC1B,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,KAAK,oBAAoB,CACvB,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC/B,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EACvC,EAAE,IACA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAE1E;;;GAGG;AACH,KAAK,UAAU,CACb,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC/B,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EACvC,EAAE,IACA;KACD,CAAC,IAAI,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,MAAM,GACtD,CAAC,GACD,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,KAAK,gBAAgB,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI;KACtD,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,KAAK,YAAY,CAAC,CAAC,IAAI,MAAM,SAAS,MAAM,CAAC,GACzC,EAAE,GACF;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GACvC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GACtB,MAAM;CACX,CAAC;AAEN;;;GAGG;AACH,KAAK,UAAU,CAAC,CAAC,IAAI,MAAM,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,CAAC;AAEhF;;;;;;;;GAQG;AACH,KAAK,iBAAiB,CACpB,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC/B,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EACvC,CAAC,EACD,CAAC,EACD,EAAE,EACF,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAE7B,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAChC,MAAM,YAAY,CAAC,CAAC,CAAC,GACrB,MAAM,UAAU,CAAC,CAAC,CAAC,GACnB,MAAM,EAAE,GACR,IAAI,GACJ,WAAW,GACX,UAAU,CAAC;AAEf;;;;GAIG;AACH,KAAK,mBAAmB,CACtB,EAAE,SAAS,MAAM,GAAG,CAAC,iBAAiB,EACtC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC/B,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EACvC,CAAC,EACD,CAAC,EACD,EAAE,EACF,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAC7B,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAC1E,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GACtB,YAAY,CAAC,CAAC,CAAC,GACf,UAAU,CAAC,CAAC,CAAC,GACb,gBAAgB,CAAC,EAAE,CAAC,GAAG;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,iBAAiB,GAAG,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEJ,iFAAiF;AACjF,MAAM,MAAM,eAAe,CACzB,EAAE,SAAS,MAAM,GAAG,CAAC,iBAAiB,EACtC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC/B,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EACvC,EAAE,EACF,CAAC,EACD,CAAC,EACD,EAAE,EACF,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAC7B,yBAAyB,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAC1E,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG;IACnC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxE,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;CAClC,CAAC;AAEJ,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,CAChC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC/B,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EACvC,EAAE,EACF,CAAC,EACD,CAAC,EACD,EAAE,EACF,EAAE,IACA,yBAAyB,CAC3B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACjB,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GACtB,YAAY,CAAC,CAAC,CAAC,GACf,UAAU,CAAC,CAAC,CAAC,GAAG;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,iBAAiB,GAAG,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CACJ,GACC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAIrC;;;;GAIG;AACH,KAAK,gBAAgB,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS;IAC/C,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC;CACxC,GACG,gBAAgB,CAAC,CAAC,CAAC,GACnB,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM;QAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAC/C,gBAAgB,CAAC,CAAC,CAAC,GACnB,EAAE,CAAC;AAET;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvE;;GAEG;AACH,KAAK,cAAc,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACvD,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAE3C;;;GAGG;AACH,KAAK,QAAQ,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KACpD,CAAC,IAAI,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;CAC5E,CAAC,MAAM,KAAK,CAAC,CAAC;AAEf;;;;GAIG;AACH,KAAK,eAAe,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACxD,MAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KAC/D,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI;CACrC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KACpE,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,KAAK,SAAS,MAAM,CAAC,GAC9D,CAAC,SAAS,MAAM,KAAK,GACnB,CAAC,SAAS,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,IAAI,GACJ,KAAK,GACP,KAAK,GACP,KAAK,SAAS,KAAK,GACjB,KAAK,GACL,CAAC;CACR,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;AAElC;;;;;;GAMG;AACH,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;IAC9B,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;CACnC,GACG,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAChE,CAAC,SAAS,yBAAyB,CAAC,MAAM,CAAC,CAAC,GAC1C,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAChE,KAAK,CAAC;AAEZ;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;KACjE,CAAC,IAAI,MAAM,KAAK,IAAI,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,yBAAyB,CACrE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB;CACF,CAAC"}
@@ -12,6 +12,9 @@ export interface Prop extends BaseProperty {
12
12
  scale?: string | MapScale | ArrayScale;
13
13
  variable?: string;
14
14
  negative?: boolean;
15
+ /** When false, scale-bound props accept arbitrary strings alongside scale keys via (string & {}). Default: true (strict). */
16
+ strict?: boolean;
17
+ currentVar?: string;
15
18
  transform?: (val: string | number, prop?: string, props?: AbstractProps) => string | number | CSSObject;
16
19
  }
17
20
  export interface AbstractParser {
@@ -20,6 +23,12 @@ export interface AbstractParser {
20
23
  config: Record<string, Prop>;
21
24
  }
22
25
  type IsEmpty<T> = [] extends T ? true : false | {} extends T ? true : false;
26
+ /**
27
+ * When `strict: false`, always include globals ((string & {}) | 0) for typeahead
28
+ * with escape hatch, regardless of whether the scale has values.
29
+ * When strict is omitted or true, fall back to IsEmpty (current behavior).
30
+ */
31
+ type StrictOrEmpty<Config extends Prop, Scale> = Config['strict'] extends false ? true : IsEmpty<Scale>;
23
32
  /**
24
33
  * Negate numeric literal types.
25
34
  * `NegateKeys<4 | 8 | 16>` → `-4 | -8 | -16`
@@ -37,7 +46,7 @@ export type PropertyValues<Property extends Prop, IncludeGlobals = false> = Excl
37
46
  * 4. Otherwise → raw CSS property values
38
47
  */
39
48
  type NegativeOf<Config extends Prop, Keys> = Config['negative'] extends true ? NegateKeys<Extract<Keys, number>> : never;
40
- export type ScaleValue<Config extends Prop, T extends BaseTheme> = Config['scale'] extends keyof TokenScales<T> ? keyof TokenScales<T>[Config['scale']] | NegativeOf<Config, keyof TokenScales<T>[Config['scale']]> | PropertyValues<Config, IsEmpty<TokenScales<T>[Config['scale']]>> : Config['scale'] extends MapScale ? keyof Config['scale'] | NegativeOf<Config, keyof Config['scale']> | PropertyValues<Config, IsEmpty<Config['scale']>> : Config['scale'] extends ArrayScale ? Config['scale'][number] | PropertyValues<Config, IsEmpty<Config['scale']>> : PropertyValues<Config, true>;
49
+ export type ScaleValue<Config extends Prop, T extends BaseTheme> = Config['scale'] extends keyof TokenScales<T> ? keyof TokenScales<T>[Config['scale']] | NegativeOf<Config, keyof TokenScales<T>[Config['scale']]> | PropertyValues<Config, StrictOrEmpty<Config, TokenScales<T>[Config['scale']]>> : Config['scale'] extends MapScale ? keyof Config['scale'] | NegativeOf<Config, keyof Config['scale']> | PropertyValues<Config, StrictOrEmpty<Config, Config['scale']>> : Config['scale'] extends ArrayScale ? Config['scale'][number] | PropertyValues<Config, StrictOrEmpty<Config, Config['scale']>> : PropertyValues<Config, true>;
41
50
  export type Scale<Config extends Prop, T extends BaseTheme> = ResponsiveProp<ScaleValue<Config, T>>;
42
51
  export type ParserProps<Config extends Record<string, Prop>, T extends BaseTheme> = ThemeProps<{
43
52
  [P in keyof Config]?: Scale<Config[P], T>;
@@ -57,7 +66,7 @@ export type SystemProps<P extends AbstractParser, SafeProps = Omit<Arg<P>, 'them
57
66
  */
58
67
  /** Colors-only: accept `{colors.key/number}` opacity syntax in component styles. */
59
68
  type ColorOpacityRef<Config extends Prop> = Config['scale'] extends 'colors' ? 'colors' extends keyof TokenScales<Theme> ? `{colors.${keyof TokenScales<Theme>[Config['scale'] & keyof TokenScales<Theme>] & string}/${number}}` : never : never;
60
- export type ThemedScaleValue<Config extends Prop> = Config['scale'] extends keyof TokenScales<Theme> ? keyof TokenScales<Theme>[Config['scale']] | NegativeOf<Config, keyof TokenScales<Theme>[Config['scale']]> | PropertyValues<Config, IsEmpty<TokenScales<Theme>[Config['scale']]>> | ColorOpacityRef<Config> : Config['scale'] extends MapScale ? keyof Config['scale'] | NegativeOf<Config, keyof Config['scale']> | PropertyValues<Config, IsEmpty<Config['scale']>> : Config['scale'] extends ArrayScale ? Config['scale'][number] | PropertyValues<Config, IsEmpty<Config['scale']>> : PropertyValues<Config, true>;
69
+ export type ThemedScaleValue<Config extends Prop> = Config['scale'] extends keyof TokenScales<Theme> ? keyof TokenScales<Theme>[Config['scale']] | NegativeOf<Config, keyof TokenScales<Theme>[Config['scale']]> | PropertyValues<Config, StrictOrEmpty<Config, TokenScales<Theme>[Config['scale']]>> | ColorOpacityRef<Config> : Config['scale'] extends MapScale ? keyof Config['scale'] | NegativeOf<Config, keyof Config['scale']> | PropertyValues<Config, StrictOrEmpty<Config, Config['scale']>> : Config['scale'] extends ArrayScale ? Config['scale'][number] | PropertyValues<Config, StrictOrEmpty<Config, Config['scale']>> : PropertyValues<Config, true>;
61
70
  export type ThemedScale<Config extends Prop> = ResponsiveProp<ThemedScaleValue<Config>>;
62
71
  /**
63
72
  * Theme-aware CSS props — uses the augmentable Theme interface
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,23 @@
1
- import { BaseTheme } from './theme';
1
+ import { BaseTheme, Theme } from './theme';
2
2
  export type AbstractProps = ThemeProps<Record<string, unknown>, BaseTheme>;
3
- interface MediaQueryByKey<T = string> {
4
- xs: T;
5
- sm: T;
6
- md: T;
7
- lg: T;
8
- xl: T;
9
- }
10
3
  export interface MediaQueryCache {
11
- map: MediaQueryByKey;
4
+ map: Record<string, string>;
12
5
  array: string[];
13
6
  }
14
7
  export type ThemeProps<Props = {}, T extends BaseTheme = BaseTheme> = Props & {
15
8
  theme?: T;
16
9
  };
17
- export interface MediaQueryArray<T> {
18
- 0?: T;
19
- 1?: T;
20
- 2?: T;
21
- 3?: T;
22
- 4?: T;
23
- 5?: T;
24
- }
25
- export interface MediaQueryMap<T> {
10
+ type ThemeBreakpoints = Theme extends {
11
+ breakpoints: infer B;
12
+ } ? B : Record<string, number>;
13
+ type BreakpointKeys = keyof ThemeBreakpoints;
14
+ export type MediaQueryMap<T> = {
26
15
  _?: T;
27
- xs?: T;
28
- sm?: T;
29
- md?: T;
30
- lg?: T;
31
- xl?: T;
32
- }
33
- export type ResponsiveProp<T> = T | MediaQueryMap<T> | MediaQueryArray<T>;
16
+ } & (string extends BreakpointKeys ? {
17
+ [key: string]: T | undefined;
18
+ } : {
19
+ [K in BreakpointKeys]?: T;
20
+ });
21
+ export type ResponsiveProp<T> = T | MediaQueryMap<T>;
34
22
  export {};
35
23
  //# sourceMappingURL=props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../src/types/props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AAE3E,UAAU,eAAe,CAAC,CAAC,GAAG,MAAM;IAClC,EAAE,EAAE,CAAC,CAAC;IACN,EAAE,EAAE,CAAC,CAAC;IACN,EAAE,EAAE,CAAC,CAAC;IACN,EAAE,EAAE,CAAC,CAAC;IACN,EAAE,EAAE,CAAC,CAAC;CACP;AACD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,eAAe,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,KAAK,GAAG;IAC5E,KAAK,CAAC,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,CAAC,EAAE,CAAC,CAAC;CACP;AACD,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,EAAE,CAAC,EAAE,CAAC,CAAC;CACR;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../src/types/props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AAE3E,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,KAAK,GAAG;IAC5E,KAAK,CAAC,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,KAAK,gBAAgB,GAAG,KAAK,SAAS;IAAE,WAAW,EAAE,MAAM,CAAC,CAAA;CAAE,GAC1D,CAAC,GACD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC3B,KAAK,cAAc,GAAG,MAAM,gBAAgB,CAAC;AAE7C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAAE,CAAC,CAAC,EAAE,CAAC,CAAA;CAAE,GAAG,CAAC,MAAM,SAAS,cAAc,GACrE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAA;CAAE,GAChC;KAAG,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC;CAAE,CAAC,CAAC;AAEnC,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC"}