@animus-ui/system 0.1.0-next.38 → 0.1.0-next.40

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.
package/README.md ADDED
@@ -0,0 +1,127 @@
1
+ # @animus-ui/system
2
+
3
+ Design system builder for React. Type-driven CSS-in-JS with zero runtime — styles extract to static CSS at build time.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @animus-ui/system
9
+ ```
10
+
11
+ Pair with a bundler plugin for extraction:
12
+ - [`@animus-ui/vite-plugin`](https://github.com/codecaaron/animus/tree/main/packages/vite-plugin) for Vite
13
+ - [`@animus-ui/next-plugin`](https://github.com/codecaaron/animus/tree/main/packages/next-plugin) for Next.js
14
+
15
+ ## Quick Start
16
+
17
+ ### 1. Define tokens
18
+
19
+ ```tsx
20
+ import { createTheme } from '@animus-ui/system';
21
+
22
+ const tokens = createTheme()
23
+ .addBreakpoints({ sm: 480, md: 768, lg: 1024 })
24
+ .addColors({
25
+ gray: { 100: '#f0f0f0', 800: '#1a1a1a' },
26
+ blue: { 400: '#3d94ff', 700: '#003d99' },
27
+ })
28
+ .addColorModes('dark', {
29
+ dark: { primary: 'blue.400', bg: 'gray.800', text: 'gray.100' },
30
+ light: { primary: 'blue.700', bg: 'gray.100', text: 'gray.800' },
31
+ })
32
+ .addScale({ name: 'space', values: { sm: '0.5rem', md: '1rem', lg: '1.5rem' } })
33
+ .build();
34
+
35
+ declare module '@animus-ui/system' {
36
+ interface Theme extends typeof tokens {}
37
+ }
38
+ ```
39
+
40
+ ### 2. Create system with prop groups
41
+
42
+ Pre-built groups ship with the package. Compose them into your own semantic groups:
43
+
44
+ ```tsx
45
+ import { createSystem } from '@animus-ui/system';
46
+ import { space, color, typography, border, shadows, background, flex, layout } from '@animus-ui/system/groups';
47
+
48
+ export const { system: ds, createGlobalStyles } = createSystem()
49
+ .addGroup('surface', { ...color, ...border, ...shadows, ...background })
50
+ .addGroup('space', space)
51
+ .addGroup('text', typography)
52
+ .addGroup('arrange', { ...flex, ...layout })
53
+ .build();
54
+ ```
55
+
56
+ Each group becomes an opt-in set of props that components can enable via `.system()`:
57
+
58
+ ```tsx
59
+ const Box = ds.styles({}).system({ surface: true, space: true }).asElement('div');
60
+
61
+ // Box now accepts: color, bg, border, shadow, p, m, gap, etc.
62
+ <Box bg="surface" p="md" borderBottom="1" />
63
+ ```
64
+
65
+ ### 3. Build components
66
+
67
+ ```tsx
68
+ const Button = ds
69
+ .styles({
70
+ display: 'inline-flex',
71
+ alignItems: 'center',
72
+ cursor: 'pointer',
73
+ border: 'none',
74
+ borderRadius: 4,
75
+ fontFamily: '{fonts.body}',
76
+ })
77
+ .variant({
78
+ size: {
79
+ prop: 'size',
80
+ variants: {
81
+ small: { fontSize: 14, padding: '{space.sm}' },
82
+ large: { fontSize: 18, padding: '{space.md} {space.lg}' },
83
+ },
84
+ },
85
+ intent: {
86
+ prop: 'intent',
87
+ variants: {
88
+ primary: { backgroundColor: '{colors.primary}', color: 'white' },
89
+ ghost: { backgroundColor: 'transparent', color: '{colors.primary}' },
90
+ },
91
+ },
92
+ })
93
+ .states({
94
+ disabled: { opacity: 0.5, pointerEvents: 'none' },
95
+ })
96
+ .system({ space: true })
97
+ .asElement('button');
98
+
99
+ <Button size="large" intent="primary" m={8} disabled />;
100
+ ```
101
+
102
+ ## Builder Chain
103
+
104
+ The chain enforces cascade ordering — each method maps to a CSS `@layer`:
105
+
106
+ ```
107
+ ds.styles() → @layer base
108
+ .variant() → @layer variants
109
+ .compound() → @layer compounds
110
+ .states() → @layer states
111
+ .system() → @layer system
112
+ .props() → @layer custom
113
+ .asElement() → typed React component
114
+ ```
115
+
116
+ The type system prevents calling methods out of order. `.variant()` after `.states()` is a type error.
117
+
118
+ ## Exports
119
+
120
+ | Path | What's in it |
121
+ |------|-------------|
122
+ | `@animus-ui/system` | Full API — builder, theme, runtime, types |
123
+ | `@animus-ui/system/groups` | Pre-built prop groups: `space`, `color`, `typography`, `layout`, `flex`, `grid`, `border`, `shadows`, `background`, `positioning`, `transitions` |
124
+
125
+ ## License
126
+
127
+ MIT
@@ -1,4 +1,5 @@
1
1
  import { Animus } from './Animus';
2
+ import { type SelectorAliasMap } from './selectors';
2
3
  import { NamedTransform } from './transforms/createTransform';
3
4
  import { Prop } from './types/config';
4
5
  export type GlobalStyleMap = Record<string, Record<string, any>>;
@@ -10,7 +11,8 @@ export interface GlobalStyleBlock {
10
11
  export type GlobalStylesFactory = (styles: GlobalStyleMap) => GlobalStyleBlock;
11
12
  export declare class SystemBuilder<PropReg extends Record<string, Prop> = {}, GroupReg extends Record<string, (keyof PropReg)[]> = {}> {
12
13
  #private;
13
- constructor(propRegistry?: PropReg, groupRegistry?: GroupReg);
14
+ constructor(propRegistry?: PropReg, groupRegistry?: GroupReg, selectorRegistry?: SelectorAliasMap);
15
+ addSelectors(selectors: Record<string, string>): SystemBuilder<PropReg, GroupReg>;
14
16
  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)[]>>;
15
17
  addProps<Conf extends Record<string, Prop> & Partial<Record<Extract<keyof GroupReg, string>, never>>>(config: Conf): SystemBuilder<PropReg & Conf, GroupReg>;
16
18
  includes(_systems: readonly {
@@ -28,6 +30,8 @@ export interface SerializedConfig {
28
30
  propConfig: string;
29
31
  groupRegistry: string;
30
32
  transforms: Record<string, NamedTransform>;
33
+ selectorAliases: string;
34
+ selectorOrder: string;
31
35
  }
32
36
  export declare function createSystem(): SystemBuilder<{}, {}>;
33
37
  //# sourceMappingURL=SystemBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SystemBuilder.d.ts","sourceRoot":"","sources":["../src/SystemBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAWtC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CACP,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACzC,cAAc,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,gBAAgB,CAAC;AAE/E,qBAAa,aAAa,CACxB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EACzC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;;gBAK3C,YAAY,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,QAAQ;IAK5D,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC7D,IAAI,EAAE,IAAI,SAAS,MAAM,OAAO,GAAG,KAAK,GAAG,IAAI,EAC/C,MAAM,EAAE,IAAI,GACX,aAAa,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IAsCzE,QAAQ,CACN,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,EACzD,MAAM,EAAE,IAAI,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC;IAiCxD,QAAQ,CACN,QAAQ,EAAE,SAAS;QAAE,QAAQ,IAAI,gBAAgB,CAAA;KAAE,EAAE,GACpD,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC;IAInC,KAAK,IAAI;QACP,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1C,kBAAkB,EAAE,mBAAmB,CAAC;KACzC;CAgCF;AAED,MAAM,MAAM,cAAc,CACxB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EACpC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,IAChD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG;IAC9B,QAAQ,IAAI,gBAAgB,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAkDD,wBAAgB,YAAY,0BAE3B"}
1
+ {"version":3,"file":"SystemBuilder.d.ts","sourceRoot":"","sources":["../src/SystemBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAWtC,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CACP,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACzC,cAAc,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,gBAAgB,CAAC;AAE/E,qBAAa,aAAa,CACxB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EACzC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;;gBAOrD,YAAY,CAAC,EAAE,OAAO,EACtB,aAAa,CAAC,EAAE,QAAQ,EACxB,gBAAgB,CAAC,EAAE,gBAAgB;IAOrC,YAAY,CACV,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC;IAKnC,QAAQ,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAC7D,IAAI,EAAE,IAAI,SAAS,MAAM,OAAO,GAAG,KAAK,GAAG,IAAI,EAC/C,MAAM,EAAE,IAAI,GACX,aAAa,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;IAsCzE,QAAQ,CACN,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,EACzD,MAAM,EAAE,IAAI,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC;IAqCxD,QAAQ,CACN,QAAQ,EAAE,SAAS;QAAE,QAAQ,IAAI,gBAAgB,CAAA;KAAE,EAAE,GACpD,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC;IAQnC,KAAK,IAAI;QACP,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1C,kBAAkB,EAAE,mBAAmB,CAAC;KACzC;CAiCF;AAED,MAAM,MAAM,cAAc,CACxB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EACpC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,IAChD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG;IAC9B,QAAQ,IAAI,gBAAgB,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AA0DD,wBAAgB,YAAY,0BAE3B"}
package/dist/compose.d.ts CHANGED
@@ -2,13 +2,17 @@ import type { AnyBrandedComponent, ComposedFamily, SharedConfig } from './types/
2
2
  /**
3
3
  * Compose independently-authored Animus components into a sealed,
4
4
  * namespaced component family with shared variant propagation via
5
- * React context.
5
+ * CSS cascade.
6
6
  *
7
7
  * - **Enforce**: TypeScript ensures shared keys exist on Root (the
8
- * provider). Non-Root slots that have the key consume it from
9
- * context; slots without the key are unaffected.
10
- * - **Wire**: Root provides shared variant values via context.
11
- * Child slots consume from context. Direct props override context.
8
+ * cascade source). Non-Root slots that have the key consume it from
9
+ * CSS inheritance; slots without the key are unaffected.
10
+ * - **Wire**: The extraction pipeline emits composed variant CSS
11
+ * rules two per shared variant option per child (inheritance +
12
+ * override) within @layer variants.
13
+ * - **Context**: When `context: true`, shared variant prop values
14
+ * are also propagated via React context for portal-mounted children
15
+ * that CSS descendant selectors cannot reach.
12
16
  * - **Seal**: Output components are plain ForwardRefExoticComponent —
13
17
  * no `.extend()`, no builder methods. One-way door from builder-land
14
18
  * to component-land.
@@ -16,5 +20,6 @@ import type { AnyBrandedComponent, ComposedFamily, SharedConfig } from './types/
16
20
  export declare function compose<Slots extends Record<string, AnyBrandedComponent>, const Shared extends SharedConfig<Slots>>(slots: Slots, options: {
17
21
  shared: Shared;
18
22
  name?: string;
23
+ context?: boolean;
19
24
  }): ComposedFamily<Slots>;
20
25
  //# sourceMappingURL=compose.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,YAAY,EACb,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;GAaG;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,CAqEvB"}
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,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACjD,KAAK,CAAC,MAAM,SAAS,YAAY,CAAC,KAAK,CAAC,EAExC,KAAK,EAAE,KAAK,EAKZ,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5D,cAAc,CAAC,KAAK,CAAC,CA0DvB"}
@@ -1,4 +1,4 @@
1
- import { createElement, forwardRef } from "react";
1
+ import { Children, cloneElement, createElement, forwardRef, isValidElement } from "react";
2
2
  import { UNITLESS_PROPERTIES } from "@animus-ui/properties";
3
3
  //#region src/runtime/resolveClasses.ts
4
4
  /**
@@ -106,6 +106,17 @@ function resolveClasses(baseClassName, props, config, systemPropMap, dynamicProp
106
106
  //#endregion
107
107
  //#region src/runtime/index.ts
108
108
  /**
109
+ * Merge multiple refs (callback or object) into a single callback ref.
110
+ * Creates a new callback on each call — no memoization possible in a
111
+ * hook-free runtime (RSC compatibility). Matches @radix-ui/react-compose-refs.
112
+ */
113
+ function composeRefs(...refs) {
114
+ return (node) => {
115
+ for (const ref of refs) if (typeof ref === "function") ref(node);
116
+ else if (ref) ref.current = node;
117
+ };
118
+ }
119
+ /**
109
120
  * Create a lightweight component that applies extracted CSS class names.
110
121
  * Replaces Emotion's styled() for extracted components.
111
122
  *
@@ -126,6 +137,7 @@ function createComponent(element, className, config, systemPropMap, dynamicPropC
126
137
  const systemPropNames = config.systemPropNames || [];
127
138
  const filterProps = new Set([
128
139
  "as",
140
+ "asChild",
129
141
  ...variantProps,
130
142
  ...stateProps,
131
143
  ...systemPropNames
@@ -133,10 +145,33 @@ function createComponent(element, className, config, systemPropMap, dynamicPropC
133
145
  let prevDynKey = "";
134
146
  let prevDynStyle = null;
135
147
  const Component = forwardRef((props, ref) => {
136
- const renderElement = props.as || element;
137
- const isComponentElement = typeof renderElement !== "string";
138
148
  const { classes, dynamicStyle } = resolveClasses(className, props, config, systemPropMap, dynamicPropConfig);
139
149
  if (props.className) classes.push(props.className);
150
+ if (dynamicStyle) {
151
+ const dynKey = Object.entries(dynamicStyle).map(([k, v]) => `${k}:${v}`).join("|");
152
+ if (dynKey !== prevDynKey) {
153
+ prevDynKey = dynKey;
154
+ prevDynStyle = dynamicStyle;
155
+ }
156
+ }
157
+ if (props.asChild) {
158
+ const child = Children.only(props.children);
159
+ if (!isValidElement(child)) throw new Error(`${className}: asChild requires a single React element as children`);
160
+ const childRef = child.ref;
161
+ const mergedClassName = [classes.join(" "), child.props.className].filter(Boolean).join(" ");
162
+ const mergedStyle = prevDynStyle || props.style || child.props.style ? {
163
+ ...props.style,
164
+ ...child.props.style,
165
+ ...prevDynStyle
166
+ } : void 0;
167
+ return cloneElement(child, {
168
+ ref: composeRefs(ref, childRef),
169
+ className: mergedClassName,
170
+ ...mergedStyle ? { style: mergedStyle } : {}
171
+ });
172
+ }
173
+ const renderElement = props.as || element;
174
+ const isComponentElement = typeof renderElement !== "string";
140
175
  const domProps = {
141
176
  ref,
142
177
  className: classes.join(" ")
@@ -147,21 +182,13 @@ function createComponent(element, className, config, systemPropMap, dynamicPropC
147
182
  if (!isComponentElement) {}
148
183
  domProps[key] = value;
149
184
  }
150
- if (dynamicStyle) {
151
- const dynKey = Object.entries(dynamicStyle).map(([k, v]) => `${k}:${v}`).join("|");
152
- if (dynKey !== prevDynKey) {
153
- prevDynKey = dynKey;
154
- prevDynStyle = dynamicStyle;
155
- }
156
- domProps.style = props.style ? {
157
- ...props.style,
158
- ...prevDynStyle
159
- } : prevDynStyle;
160
- }
185
+ if (prevDynStyle && dynamicStyle) domProps.style = props.style ? {
186
+ ...props.style,
187
+ ...prevDynStyle
188
+ } : prevDynStyle;
161
189
  return createElement(renderElement, domProps);
162
190
  });
163
191
  Component.displayName = className;
164
- Component.__variantKeys = new Set(variantProps);
165
192
  return Object.assign(Component, { extend: () => {
166
193
  throw new Error(`Cannot extend extracted component "${className}" at runtime. Extensions must be authored in source code using the builder API (e.g. import the original component and call .extend() there) so the extraction pipeline can resolve them at build time.`);
167
194
  } });
@@ -55,122 +55,146 @@ export declare const border: {
55
55
  readonly border: {
56
56
  readonly property: "border";
57
57
  readonly scale: "borders";
58
+ readonly strict: false;
58
59
  readonly transform: import("../transforms").NamedTransform;
59
60
  };
60
61
  readonly borderX: {
61
62
  readonly property: "border";
62
63
  readonly properties: readonly ["borderLeft", "borderRight"];
63
64
  readonly scale: "borders";
65
+ readonly strict: false;
64
66
  readonly transform: import("../transforms").NamedTransform;
65
67
  };
66
68
  readonly borderY: {
67
69
  readonly property: "border";
68
70
  readonly properties: readonly ["borderTop", "borderBottom"];
69
71
  readonly scale: "borders";
72
+ readonly strict: false;
70
73
  readonly transform: import("../transforms").NamedTransform;
71
74
  };
72
75
  readonly borderTop: {
73
76
  readonly property: "borderTop";
74
77
  readonly scale: "borders";
78
+ readonly strict: false;
75
79
  readonly transform: import("../transforms").NamedTransform;
76
80
  };
77
81
  readonly borderRight: {
78
82
  readonly property: "borderRight";
79
83
  readonly scale: "borders";
84
+ readonly strict: false;
80
85
  readonly transform: import("../transforms").NamedTransform;
81
86
  };
82
87
  readonly borderBottom: {
83
88
  readonly property: "borderBottom";
84
89
  readonly scale: "borders";
90
+ readonly strict: false;
85
91
  readonly transform: import("../transforms").NamedTransform;
86
92
  };
87
93
  readonly borderLeft: {
88
94
  readonly property: "borderLeft";
89
95
  readonly scale: "borders";
96
+ readonly strict: false;
90
97
  readonly transform: import("../transforms").NamedTransform;
91
98
  };
92
99
  readonly borderWidth: {
93
100
  readonly property: "borderWidth";
94
101
  readonly scale: "borderWidths";
102
+ readonly strict: false;
95
103
  };
96
104
  readonly borderXWidth: {
97
105
  readonly property: "borderWidth";
98
106
  readonly properties: readonly ["borderLeftWidth", "borderRightWidth"];
99
107
  readonly scale: "borderWidths";
108
+ readonly strict: false;
100
109
  };
101
110
  readonly borderYWidth: {
102
111
  readonly property: "borderWidth";
103
112
  readonly properties: readonly ["borderTopWidth", "borderBottomWidth"];
104
113
  readonly scale: "borderWidths";
114
+ readonly strict: false;
105
115
  };
106
116
  readonly borderLeftWidth: {
107
117
  readonly property: "borderLeftWidth";
108
118
  readonly scale: "borderWidths";
119
+ readonly strict: false;
109
120
  };
110
121
  readonly borderRightWidth: {
111
122
  readonly property: "borderRightWidth";
112
123
  readonly scale: "borderWidths";
124
+ readonly strict: false;
113
125
  };
114
126
  readonly borderTopWidth: {
115
127
  readonly property: "borderTopWidth";
116
128
  readonly scale: "borderWidths";
129
+ readonly strict: false;
117
130
  };
118
131
  readonly borderBottomWidth: {
119
132
  readonly property: "borderBottomWidth";
120
133
  readonly scale: "borderWidths";
134
+ readonly strict: false;
121
135
  };
122
136
  readonly borderRadius: {
123
137
  readonly property: "borderRadius";
124
138
  readonly scale: "radii";
139
+ readonly strict: false;
125
140
  readonly transform: import("../transforms").NamedTransform;
126
141
  };
127
142
  readonly rounded: {
128
143
  readonly property: "borderRadius";
129
144
  readonly scale: "radii";
145
+ readonly strict: false;
130
146
  readonly transform: import("../transforms").NamedTransform;
131
147
  };
132
148
  readonly borderLeftRadius: {
133
149
  readonly property: "borderRadius";
134
150
  readonly properties: readonly ["borderTopLeftRadius", "borderBottomLeftRadius"];
135
151
  readonly scale: "radii";
152
+ readonly strict: false;
136
153
  readonly transform: import("../transforms").NamedTransform;
137
154
  };
138
155
  readonly borderTopRadius: {
139
156
  readonly property: "borderRadius";
140
157
  readonly properties: readonly ["borderTopLeftRadius", "borderTopRightRadius"];
141
158
  readonly scale: "radii";
159
+ readonly strict: false;
142
160
  readonly transform: import("../transforms").NamedTransform;
143
161
  };
144
162
  readonly borderBottomRadius: {
145
163
  readonly property: "borderRadius";
146
164
  readonly properties: readonly ["borderBottomLeftRadius", "borderBottomRightRadius"];
147
165
  readonly scale: "radii";
166
+ readonly strict: false;
148
167
  readonly transform: import("../transforms").NamedTransform;
149
168
  };
150
169
  readonly borderRightRadius: {
151
170
  readonly property: "borderRadius";
152
171
  readonly properties: readonly ["borderTopRightRadius", "borderBottomRightRadius"];
153
172
  readonly scale: "radii";
173
+ readonly strict: false;
154
174
  readonly transform: import("../transforms").NamedTransform;
155
175
  };
156
176
  readonly borderTopLeftRadius: {
157
177
  readonly property: "borderTopLeftRadius";
158
178
  readonly scale: "radii";
179
+ readonly strict: false;
159
180
  readonly transform: import("../transforms").NamedTransform;
160
181
  };
161
182
  readonly borderTopRightRadius: {
162
183
  readonly property: "borderTopRightRadius";
163
184
  readonly scale: "radii";
185
+ readonly strict: false;
164
186
  readonly transform: import("../transforms").NamedTransform;
165
187
  };
166
188
  readonly borderBottomRightRadius: {
167
189
  readonly property: "borderBottomRightRadius";
168
190
  readonly scale: "radii";
191
+ readonly strict: false;
169
192
  readonly transform: import("../transforms").NamedTransform;
170
193
  };
171
194
  readonly borderBottomLeftRadius: {
172
195
  readonly property: "borderBottomLeftRadius";
173
196
  readonly scale: "radii";
197
+ readonly strict: false;
174
198
  readonly transform: import("../transforms").NamedTransform;
175
199
  };
176
200
  readonly borderStyle: {
@@ -430,24 +454,29 @@ export declare const positioning: {
430
454
  readonly zIndex: {
431
455
  readonly property: "zIndex";
432
456
  readonly scale: "zIndices";
457
+ readonly strict: false;
433
458
  };
434
459
  readonly opacity: {
435
460
  readonly property: "opacity";
436
461
  readonly scale: "opacities";
462
+ readonly strict: false;
437
463
  };
438
464
  };
439
465
  export declare const shadows: {
440
466
  readonly boxShadow: {
441
467
  readonly property: "boxShadow";
442
468
  readonly scale: "shadows";
469
+ readonly strict: false;
443
470
  };
444
471
  readonly shadow: {
445
472
  readonly property: "boxShadow";
446
473
  readonly scale: "shadows";
474
+ readonly strict: false;
447
475
  };
448
476
  readonly textShadow: {
449
477
  readonly property: "textShadow";
450
478
  readonly scale: "shadows";
479
+ readonly strict: false;
451
480
  };
452
481
  };
453
482
  export declare const layout: {
@@ -570,10 +599,12 @@ export declare const typography: {
570
599
  readonly fontWeight: {
571
600
  readonly property: "fontWeight";
572
601
  readonly scale: "fontWeights";
602
+ readonly strict: false;
573
603
  };
574
604
  readonly lineHeight: {
575
605
  readonly property: "lineHeight";
576
606
  readonly scale: "lineHeights";
607
+ readonly strict: false;
577
608
  };
578
609
  readonly fontSize: {
579
610
  readonly property: "fontSize";
@@ -582,6 +613,7 @@ export declare const typography: {
582
613
  readonly letterSpacing: {
583
614
  readonly property: "letterSpacing";
584
615
  readonly scale: "letterSpacings";
616
+ readonly strict: false;
585
617
  };
586
618
  readonly textAlign: {
587
619
  readonly property: "textAlign";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/groups/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBR,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwHT,CAAC;AA8BX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQP,CAAC;AAWX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCP,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUb,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAed,CAAC;AAEX,eAAO,MAAM,OAAO;;;;;;;;;;;;;CAIV,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CT,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBb,CAAC;AAwCX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGR,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;CAWd,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;CAEP,CAAC;AAEX,eAAO,MAAM,IAAI;;;;CAEP,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/groups/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyBR,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2IT,CAAC;AA8BX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQP,CAAC;AAWX,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCP,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUb,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAed,CAAC;AAEX,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;CAIV,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CT,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsBb,CAAC;AAwCX,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGR,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;CAWd,CAAC;AAEX,eAAO,MAAM,IAAI;;;;;CAEP,CAAC;AAEX,eAAO,MAAM,IAAI;;;;CAEP,CAAC"}