@astryxdesign/core 0.7.5-canary.05ead02 → 0.7.5-canary.07030cb

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 (48) hide show
  1. package/dist/Banner/Banner.d.ts +1 -0
  2. package/dist/Banner/Banner.d.ts.map +1 -1
  3. package/dist/Banner/Banner.js +2 -0
  4. package/dist/Icon/Icon.d.ts +8 -0
  5. package/dist/Icon/Icon.d.ts.map +1 -1
  6. package/dist/Icon/Icon.js +41 -2
  7. package/dist/Icon/IconSize.stylex.d.ts +16 -11
  8. package/dist/Icon/IconSize.stylex.d.ts.map +1 -1
  9. package/dist/Icon/IconSize.stylex.js +27 -11
  10. package/dist/Icon/globalIconRegistry.d.ts +9 -6
  11. package/dist/Icon/globalIconRegistry.d.ts.map +1 -1
  12. package/dist/Icon/globalIconRegistry.js +9 -2
  13. package/dist/Icon/index.d.ts +24 -1
  14. package/dist/Icon/index.d.ts.map +1 -1
  15. package/dist/Icon/index.js +23 -1
  16. package/dist/astryx.css +12 -0
  17. package/dist/motion/animatedLayout.d.ts.map +1 -1
  18. package/dist/motion/animatedLayout.js +258 -31
  19. package/dist/theme/defineTheme.d.ts +71 -10
  20. package/dist/theme/defineTheme.d.ts.map +1 -1
  21. package/dist/theme/defineTheme.js +36 -3
  22. package/dist/theme/derivedVarRegistry.d.ts.map +1 -1
  23. package/dist/theme/derivedVarRegistry.js +9 -0
  24. package/package.json +3 -3
  25. package/src/Banner/Banner.test.tsx +36 -17
  26. package/src/Banner/Banner.tsx +5 -0
  27. package/src/Card/Card.spec.md +205 -0
  28. package/src/CheckboxList/CheckboxList.spec.md +92 -78
  29. package/src/CheckboxList/CheckboxListItem.spec.md +86 -60
  30. package/src/ClickableCard/ClickableCard.spec.md +124 -128
  31. package/src/Icon/Icon.doc.mjs +41 -3
  32. package/src/Icon/Icon.test.tsx +120 -8
  33. package/src/Icon/Icon.tsx +40 -6
  34. package/src/Icon/IconSize.stylex.ts +27 -11
  35. package/src/Icon/globalIconRegistry.test.tsx +52 -1
  36. package/src/Icon/globalIconRegistry.tsx +24 -11
  37. package/src/Icon/index.ts +26 -1
  38. package/src/IconButton/IconButton.test.tsx +5 -2
  39. package/src/List/List.spec.md +2 -2
  40. package/src/__tests__/unthemedLength.ts +34 -0
  41. package/src/motion/__tests__/animatedLayout.interaction.browser.spec.ts +466 -0
  42. package/src/motion/animatedLayout.boundary.test.ts +16 -10
  43. package/src/motion/animatedLayout.test.ts +251 -0
  44. package/src/motion/animatedLayout.ts +339 -32
  45. package/src/theme/defineTheme.test.ts +180 -2
  46. package/src/theme/defineTheme.ts +110 -15
  47. package/src/theme/derivedVarRegistry.test.ts +15 -0
  48. package/src/theme/derivedVarRegistry.ts +4 -0
@@ -8,6 +8,7 @@
8
8
  * - Banner frame (themeProps 'banner-frame'): owns the resting elevation and,
9
9
  * for elevated card banners, the outer radius that shapes that shadow
10
10
  * - Header area (themeProps 'banner'): colored status background with icon, title, description, actions, dismiss
11
+ * - End area restores the ordinary text context for consumer `endContent`; built-in controls opt back into the status foreground
11
12
  * - Content area (themeProps 'banner-content'): card background for additional content (children)
12
13
  * - Status icon (themeProps 'banner-icon'): the target rides on the default
13
14
  * <Icon> itself — the element that paints — so 'status:X' overrides reach
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../src/Banner/Banner.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,EAA0B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAgB5C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAI9C,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAMjE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAwQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,aAAqB,EACrB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAkB,EAClB,SAAkB,EAClB,WAAkB,EAClB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,cAAc,EACd,oBAAoB,EACpB,GAAG,IAAI,EACR,EAAE,WAAW,sCAqQb;yBAzRe,MAAM"}
1
+ {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../src/Banner/Banner.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,EAA0B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAgB5C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAI9C,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAMjE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA4QD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,aAAqB,EACrB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAkB,EAClB,SAAkB,EAClB,WAAkB,EAClB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,cAAc,EACd,oBAAoB,EACpB,GAAG,IAAI,EACR,EAAE,WAAW,sCAqQb;yBAzRe,MAAM"}
@@ -12,6 +12,7 @@
12
12
  * - Banner frame (themeProps 'banner-frame'): owns the resting elevation and,
13
13
  * for elevated card banners, the outer radius that shapes that shadow
14
14
  * - Header area (themeProps 'banner'): colored status background with icon, title, description, actions, dismiss
15
+ * - End area restores the ordinary text context for consumer `endContent`; built-in controls opt back into the status foreground
15
16
  * - Content area (themeProps 'banner-content'): card background for additional content (children)
16
17
  * - Status icon (themeProps 'banner-icon'): the target rides on the default
17
18
  * <Icon> itself — the element that paints — so 'status:X' overrides reach
@@ -148,6 +149,7 @@ const styles = {
148
149
  kjj79g: "x13a6bvl",
149
150
  kOIVth: "x1txdalj",
150
151
  kmuXW: "x2lah0s",
152
+ kMwMTN: "x1tgivj0",
151
153
  ks0D6T: "x193iq5w",
152
154
  keTefX: "xvc5jky",
153
155
  kqGvvJ: "x81ka23",
@@ -11,6 +11,11 @@
11
11
  * theme's icon registry (or built-in fallback SVGs) and wrapped in a styled span.
12
12
  * A function registry entry receives `{size}`, the size resolved by ORD1.
13
13
  *
14
+ * Both modes size the glyph from the `icon` target's private size vars
15
+ * (`iconSizeStyles` in IconSize.stylex.ts, `registrySizeStyles` below), so a
16
+ * theme's `width` and `height` on that target's size selector set the size's
17
+ * glyph dimension, including the font size 1em-based registry artwork follows.
18
+ *
14
19
  * SYNC: When modified, update these files to stay in sync:
15
20
  * - /packages/core/src/Icon/Icon.doc.mjs (props table, features, implementation notes)
16
21
  * - /packages/core/src/Icon/Icon.test.tsx (tests for new/changed behavior)
@@ -119,6 +124,9 @@ export interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'ref' | 'color'
119
124
  * - 'md': 1.25rem (20px at a 16px root)
120
125
  * - 'lg': 1.5rem (24px at a 16px root)
121
126
  *
127
+ * A theme sets a size's glyph dimension with `width` and `height`, in `px`
128
+ * or `rem`, on `components.icon['size:sm']` (and the other sizes).
129
+ *
122
130
  * An explicit value wins. When omitted, Icon uses the nearest default supplied
123
131
  * by an owning Astryx component for its icon slot, then falls back to 'md'.
124
132
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/Icon/Icon.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,EAAC,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAInD,OAAO,KAAK,EAAC,QAAQ,EAAE,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAIvE,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAmBhD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8Df,CAAC;AAMH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,QAAQ,CAAC,aAAa,CAAC,EACvB,KAAK,GAAG,OAAO,CAChB;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;;;OAMG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,kBAAkB,CAAC;IAC/C;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAyBD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,KAAiB,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EACL,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,KAAK,EACT,EAAE,SAAS,qBAkDX;yBA5De,IAAI;;;AAqIpB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,EAChC,KAAK,CAAC,EAAE;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAC,GAC3C,KAAK,CAAC,SAAS,CAYjB"}
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/Icon/Icon.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,EAAC,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAInD,OAAO,KAAK,EAAC,QAAQ,EAAE,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAIvE,OAAO,EAAiB,KAAK,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAEhE,YAAY,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAiDhD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8Df,CAAC;AAMH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,QAAQ,CAAC,aAAa,CAAC,EACvB,KAAK,GAAG,OAAO,CAChB;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;;;OAMG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,kBAAkB,CAAC;IAC/C;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAyBD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,KAAiB,EACjB,IAAI,EAAE,QAAQ,EACd,KAAK,EACL,GAAG,EACH,SAAS,EACT,KAAK,EACL,MAAM,EACN,GAAG,KAAK,EACT,EAAE,SAAS,qBAkDX;yBA5De,IAAI;;;AAqIpB;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,QAAQ,EAChC,KAAK,CAAC,EAAE;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAC,GAC3C,KAAK,CAAC,SAAS,CAYjB"}
package/dist/Icon/Icon.js CHANGED
@@ -15,6 +15,11 @@
15
15
  * theme's icon registry (or built-in fallback SVGs) and wrapped in a styled span.
16
16
  * A function registry entry receives `{size}`, the size resolved by ORD1.
17
17
  *
18
+ * Both modes size the glyph from the `icon` target's private size vars
19
+ * (`iconSizeStyles` in IconSize.stylex.ts, `registrySizeStyles` below), so a
20
+ * theme's `width` and `height` on that target's size selector set the size's
21
+ * glyph dimension, including the font size 1em-based registry artwork follows.
22
+ *
18
23
  * SYNC: When modified, update these files to stay in sync:
19
24
  * - /packages/core/src/Icon/Icon.doc.mjs (props table, features, implementation notes)
20
25
  * - /packages/core/src/Icon/Icon.test.tsx (tests for new/changed behavior)
@@ -31,7 +36,7 @@ import { resolveIcon } from "./globalIconRegistry.js";
31
36
  import { mergeProps } from "../utils/index.js";
32
37
  import { themeProps } from "../utils/themeProps.js";
33
38
  import { useIconSize } from "./IconDefaultSizeContext.js";
34
- import { iconBoxSizeStyles, iconSizeStyles } from "./IconSize.stylex.js";
39
+ import { iconSizeStyles } from "./IconSize.stylex.js";
35
40
  import { jsx as _jsx } from "react/jsx-runtime";
36
41
  // =============================================================================
37
42
  // Styles
@@ -50,6 +55,40 @@ const styles = {
50
55
  $$css: true
51
56
  }
52
57
  };
58
+
59
+ /**
60
+ * Size styles for string-based registry icons: the glyph dimensions
61
+ * `iconSizeStyles` reads from the `icon` target's private vars, plus a
62
+ * `fontSize`, because registry artwork is 1em-based. `fontSize` is the smaller
63
+ * side, which fits square artwork into a non-square box the way an SVG viewBox
64
+ * does.
65
+ */
66
+ const registrySizeStyles = {
67
+ xsm: {
68
+ kzqmXN: "x13u0t82",
69
+ kZKoxP: "x89eeu2",
70
+ kGuDYH: "x1uq1jy3",
71
+ $$css: true
72
+ },
73
+ sm: {
74
+ kzqmXN: "xomy6nw",
75
+ kZKoxP: "x14eyxzr",
76
+ kGuDYH: "x1qzu985",
77
+ $$css: true
78
+ },
79
+ md: {
80
+ kzqmXN: "x1vvatio",
81
+ kZKoxP: "x1jxzzob",
82
+ kGuDYH: "xhhwgqx",
83
+ $$css: true
84
+ },
85
+ lg: {
86
+ kzqmXN: "x1gbskz6",
87
+ kZKoxP: "xol4r8t",
88
+ kGuDYH: "x14nqahd",
89
+ $$css: true
90
+ }
91
+ };
53
92
  const colorStyles = {
54
93
  primary: {
55
94
  kMwMTN: "xtbr613",
@@ -268,7 +307,7 @@ function IconFromRegistry({
268
307
  ...mergeProps(themeProps('icon', {
269
308
  size,
270
309
  color
271
- }), stylex.props(styles.span, colorStyles[color], iconBoxSizeStyles[size], xstyle), className ?? undefined, style),
310
+ }), stylex.props(styles.span, colorStyles[color], registrySizeStyles[size], xstyle), className ?? undefined, style),
272
311
  children: resolvedIcon
273
312
  });
274
313
  }
@@ -1,8 +1,13 @@
1
1
  /**
2
2
  * @file IconSize.stylex.ts
3
- * @input Defines the Icon size scale
3
+ * @input Defines the Icon size scale and reads the `icon` target's private
4
+ * `--_icon-width` / `--_icon-height` vars
4
5
  * @output Exports shared Icon size types and StyleX styles
5
6
  * @position Internal Icon sizing source; consumed by Icon and icon-slot owners
7
+ *
8
+ * SYNC: When the private vars change, update Icon.tsx (registrySizeStyles),
9
+ * derivedVarRegistry.ts, and the `theming.vars` / `theming.derived` entries in
10
+ * Icon.doc.mjs.
6
11
  */
7
12
  import * as stylex from '@stylexjs/stylex';
8
13
  /**
@@ -19,25 +24,25 @@ export type IconSize = keyof typeof iconSizeValues;
19
24
  /** Size styles for direct SVG icon components. */
20
25
  export declare const iconSizeStyles: Readonly<{
21
26
  readonly xsm: Readonly<{
22
- readonly width: stylex.StyleXClassNameFor<"width", "0.75rem">;
23
- readonly height: stylex.StyleXClassNameFor<"height", "0.75rem">;
27
+ readonly width: stylex.StyleXClassNameFor<"width", "var(--_icon-width, 0.75rem)">;
28
+ readonly height: stylex.StyleXClassNameFor<"height", "var(--_icon-height, 0.75rem)">;
24
29
  }>;
25
30
  readonly sm: Readonly<{
26
- readonly width: stylex.StyleXClassNameFor<"width", "1rem">;
27
- readonly height: stylex.StyleXClassNameFor<"height", "1rem">;
31
+ readonly width: stylex.StyleXClassNameFor<"width", "var(--_icon-width, 1rem)">;
32
+ readonly height: stylex.StyleXClassNameFor<"height", "var(--_icon-height, 1rem)">;
28
33
  }>;
29
34
  readonly md: Readonly<{
30
- readonly width: stylex.StyleXClassNameFor<"width", "1.25rem">;
31
- readonly height: stylex.StyleXClassNameFor<"height", "1.25rem">;
35
+ readonly width: stylex.StyleXClassNameFor<"width", "var(--_icon-width, 1.25rem)">;
36
+ readonly height: stylex.StyleXClassNameFor<"height", "var(--_icon-height, 1.25rem)">;
32
37
  }>;
33
38
  readonly lg: Readonly<{
34
- readonly width: stylex.StyleXClassNameFor<"width", "1.5rem">;
35
- readonly height: stylex.StyleXClassNameFor<"height", "1.5rem">;
39
+ readonly width: stylex.StyleXClassNameFor<"width", "var(--_icon-width, 1.5rem)">;
40
+ readonly height: stylex.StyleXClassNameFor<"height", "var(--_icon-height, 1.5rem)">;
36
41
  }>;
37
42
  }>;
38
43
  /**
39
- * Size styles for icon boxes and string-based registry icons. `fontSize`
40
- * keeps 1em-based icons in step with the box.
44
+ * Size styles for component-owned icon boxes. `fontSize` keeps 1em-based icons
45
+ * in step with the box.
41
46
  */
42
47
  export declare const iconBoxSizeStyles: Readonly<{
43
48
  readonly xsm: Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"IconSize.stylex.d.ts","sourceRoot":"","sources":["../../src/Icon/IconSize.stylex.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C;;;GAGG;AACH,QAAA,MAAM,cAAc;;;;;CAKV,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,cAAc,CAAC;AAEnD,kDAAkD;AAClD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;EAiBzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAqB5B,CAAC"}
1
+ {"version":3,"file":"IconSize.stylex.d.ts","sourceRoot":"","sources":["../../src/Icon/IconSize.stylex.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C;;;GAGG;AACH,QAAA,MAAM,cAAc;;;;;CAKV,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,cAAc,CAAC;AAanD,kDAAkD;AAClD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;EAiBzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAqB5B,CAAC"}
@@ -2,9 +2,14 @@
2
2
 
3
3
  /**
4
4
  * @file IconSize.stylex.ts
5
- * @input Defines the Icon size scale
5
+ * @input Defines the Icon size scale and reads the `icon` target's private
6
+ * `--_icon-width` / `--_icon-height` vars
6
7
  * @output Exports shared Icon size types and StyleX styles
7
8
  * @position Internal Icon sizing source; consumed by Icon and icon-slot owners
9
+ *
10
+ * SYNC: When the private vars change, update Icon.tsx (registrySizeStyles),
11
+ * derivedVarRegistry.ts, and the `theming.vars` / `theming.derived` entries in
12
+ * Icon.doc.mjs.
8
13
  */
9
14
 
10
15
  import * as stylex from '@stylexjs/stylex';
@@ -19,33 +24,44 @@ const iconSizeValues = {
19
24
  md: '1.25rem',
20
25
  lg: '1.5rem'
21
26
  };
27
+ /*
28
+ * Icon's own glyph dimensions (these and the registry size styles in Icon.tsx)
29
+ * read private vars rather than being plain declarations. A theme writes
30
+ * `width`/`height` on the `icon` target's size selector
31
+ * (`components.icon['size:sm']`), and the derived-var registry emits them as
32
+ * `--_icon-width` / `--_icon-height` instead of as competing properties.
33
+ * Nothing else declares the dimensions, so the theme value lands however the
34
+ * consumer layers StyleX; with no theme value, each size falls back to its own
35
+ * rem value.
36
+ */
37
+
22
38
  /** Size styles for direct SVG icon components. */
23
39
  export const iconSizeStyles = {
24
40
  xsm: {
25
- kzqmXN: "x1jw3ynk",
26
- kZKoxP: "xvle69y",
41
+ kzqmXN: "x13u0t82",
42
+ kZKoxP: "x89eeu2",
27
43
  $$css: true
28
44
  },
29
45
  sm: {
30
- kzqmXN: "xcdlrvm",
31
- kZKoxP: "x1l36t39",
46
+ kzqmXN: "xomy6nw",
47
+ kZKoxP: "x14eyxzr",
32
48
  $$css: true
33
49
  },
34
50
  md: {
35
- kzqmXN: "xwqq7k2",
36
- kZKoxP: "xmll18r",
51
+ kzqmXN: "x1vvatio",
52
+ kZKoxP: "x1jxzzob",
37
53
  $$css: true
38
54
  },
39
55
  lg: {
40
- kzqmXN: "xp8d6y2",
41
- kZKoxP: "xam5rvr",
56
+ kzqmXN: "x1gbskz6",
57
+ kZKoxP: "xol4r8t",
42
58
  $$css: true
43
59
  }
44
60
  };
45
61
 
46
62
  /**
47
- * Size styles for icon boxes and string-based registry icons. `fontSize`
48
- * keeps 1em-based icons in step with the box.
63
+ * Size styles for component-owned icon boxes. `fontSize` keeps 1em-based icons
64
+ * in step with the box.
49
65
  */
50
66
  export const iconBoxSizeStyles = {
51
67
  xsm: {
@@ -18,6 +18,7 @@
18
18
  */
19
19
  import type { ReactNode } from 'react';
20
20
  import type { IconSize } from './IconSize.stylex.js';
21
+ import type { IconVariant } from './index.js';
21
22
  import type { DefinedTheme } from '../theme/defineTheme.js';
22
23
  /**
23
24
  * Semantic icon names used internally by Astryx components.
@@ -55,13 +56,15 @@ export type ExtendedIconName = IconName | (string & {});
55
56
  export type IconRegistry = Record<IconName, ReactNode>;
56
57
  /**
57
58
  * What `Icon` asks a function icon entry for: the final Icon size, resolved
58
- * explicit `size` → owning component's default → `'md'`.
59
+ * explicit `size` → owning component's default → `'md'`, and a variant name
60
+ * or `undefined`.
59
61
  *
60
- * `variant` is always `undefined` here.
62
+ * Inside `defineTheme`, `Variant` is the theme's listed `iconVariants`; a
63
+ * process-wide registration receives {@link IconVariant}.
61
64
  */
62
- export type IconRequest = Readonly<{
65
+ export type IconRequest<Variant extends string = IconVariant> = Readonly<{
63
66
  size: IconSize;
64
- variant?: undefined;
67
+ variant?: Variant;
65
68
  }>;
66
69
  /**
67
70
  * A theme or process-wide icon entry: a React node, or a pure synchronous
@@ -82,14 +85,14 @@ export type IconRequest = Readonly<{
82
85
  * });
83
86
  * ```
84
87
  */
85
- export type IconEntry = ReactNode | ((request: IconRequest) => ReactNode);
88
+ export type IconEntry<Variant extends string = IconVariant> = ReactNode | ((request: IconRequest<Variant>) => ReactNode);
86
89
  export type IconRegistrySource = DefinedTheme | string | null | undefined;
87
90
  /**
88
91
  * Resolve a key for an Icon request. `Icon` is the caller: it passes the size
89
92
  * it resolved. Public reads use {@link getIcon} instead.
90
93
  * @internal
91
94
  */
92
- export declare function resolveIcon(name: ExtendedIconName, source: IconRegistrySource, request: IconRequest): ReactNode;
95
+ export declare function resolveIcon(name: ExtendedIconName, source: IconRegistrySource, request: IconRequest<never>): ReactNode;
93
96
  /**
94
97
  * Register icons at the module level. Works in both server and client
95
98
  * environments. Call once at app initialization (e.g. root layout).
@@ -1 +1 @@
1
- {"version":3,"file":"globalIconRegistry.d.ts","sourceRoot":"","sources":["../../src/Icon/globalIconRegistry.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAErC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAQvD;;;;;GAKG;AAEH,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,aAAa,GACb,aAAa,GACb,cAAc,GACd,cAAc,GACd,eAAe,GACf,OAAO,GACP,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,UAAU,GACV,OAAO,GACP,cAAc,GACd,MAAM,GACN,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,WAAW,GACX,cAAc,GACd,QAAQ,GACR,UAAU,GACV,aAAa,GACb,MAAM,GACN,aAAa,GACb,QAAQ,GACR,MAAM,GACN,YAAY,CAAC;AAEjB;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC;AAE1E,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AA6D1E;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,WAAW,GACnB,SAAS,CAEX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,GAClD,IAAI,CAON;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAsBvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,gBAAgB,EACtB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,SAAS,CAEX;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EACtB,QAAQ,CAAC,EAAE,SAAS,EACpB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,SAAS,CAKX;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
1
+ {"version":3,"file":"globalIconRegistry.d.ts","sourceRoot":"","sources":["../../src/Icon/globalIconRegistry.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAErC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAQvD;;;;;GAKG;AAEH,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,aAAa,GACb,aAAa,GACb,cAAc,GACd,cAAc,GACd,eAAe,GACf,OAAO,GACP,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,UAAU,GACV,OAAO,GACP,cAAc,GACd,MAAM,GACN,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,WAAW,GACX,cAAc,GACd,QAAQ,GACR,UAAU,GACV,aAAa,GACb,MAAM,GACN,aAAa,GACb,QAAQ,GACR,MAAM,GACN,YAAY,CAAC;AAEjB;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,CAAC,OAAO,SAAS,MAAM,GAAG,WAAW,IAAI,QAAQ,CAAC;IACvE,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,MAAM,GAAG,WAAW,IACxD,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC;AAQ7D,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAgE1E;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GAC1B,SAAS,CAEX;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,GAClD,IAAI,CAON;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,kBAAkB,GAC1B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAsBvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,gBAAgB,EACtB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,SAAS,CAEX;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EACtB,QAAQ,CAAC,EAAE,SAAS,EACpB,MAAM,CAAC,EAAE,kBAAkB,GAC1B,SAAS,CAKX;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC"}
@@ -64,9 +64,11 @@ import { warnOnce } from "../utils/devWarning.js";
64
64
 
65
65
  /**
66
66
  * What `Icon` asks a function icon entry for: the final Icon size, resolved
67
- * explicit `size` → owning component's default → `'md'`.
67
+ * explicit `size` → owning component's default → `'md'`, and a variant name
68
+ * or `undefined`.
68
69
  *
69
- * `variant` is always `undefined` here.
70
+ * Inside `defineTheme`, `Variant` is the theme's listed `iconVariants`; a
71
+ * process-wide registration receives {@link IconVariant}.
70
72
  */
71
73
 
72
74
  /**
@@ -89,6 +91,11 @@ import { warnOnce } from "../utils/devWarning.js";
89
91
  * ```
90
92
  */
91
93
 
94
+ /**
95
+ * How resolution holds any entry: an entry typed for some variant names
96
+ * accepts a request with none of them.
97
+ */
98
+
92
99
  /** The request every public, one-argument read uses. */
93
100
  const PUBLIC_READ_REQUEST = {
94
101
  size: 'md'
@@ -2,11 +2,34 @@
2
2
  * @file index.ts
3
3
  * @input Imports Icon component/types, icon registry, and global registration
4
4
  * @output Exports Icon, icon registry helpers, registerIcons, getIconRegistry, getIcon,
5
- * and the IconEntry/IconRequest types for theme and registered entries
5
+ * the IconEntry/IconRequest types for theme and registered entries, and the
6
+ * augmentable IconVariantMap with its IconVariant names
6
7
  * @position Component entry point; re-exported by /packages/core/src/index.ts
7
8
  *
8
9
  * SYNC: When modified, update this header and /packages/core/src/Icon/Icon.doc.mjs
9
10
  */
11
+ /**
12
+ * Icon variant names an application uses. Astryx defines none: a theme lists
13
+ * the names it supports in `defineTheme({iconVariants})`, and an application
14
+ * augments this map with the names it requests.
15
+ *
16
+ * A theme icon entry receives a requested variant only when the active theme
17
+ * lists it; any other request renders the entry's normal artwork.
18
+ *
19
+ * @example
20
+ * ```
21
+ * declare module '@astryxdesign/core/Icon' {
22
+ * interface IconVariantMap {
23
+ * outline: true;
24
+ * filled: true;
25
+ * }
26
+ * }
27
+ * ```
28
+ */
29
+ export interface IconVariantMap {
30
+ }
31
+ /** A variant name from the augmentable {@link IconVariantMap}. */
32
+ export type IconVariant = keyof IconVariantMap & string;
10
33
  export { Icon, renderIconSlot } from './Icon.js';
11
34
  export { useIcon } from './useIcon.js';
12
35
  export type { IconProps, IconColor, IconSize, IconType } from './Icon.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Icon/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAAC,IAAI,EAAE,cAAc,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,YAAY,EAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAGrE,OAAO,EACL,aAAa,EACb,eAAe,EACf,OAAO,EACP,eAAe,EACf,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,WAAW,GACZ,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Icon/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,cAAc;CAAG;AAElC,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,MAAM,cAAc,GAAG,MAAM,CAAC;AAExD,OAAO,EAAC,IAAI,EAAE,cAAc,EAAC,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,YAAY,EAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAGrE,OAAO,EACL,aAAa,EACb,eAAe,EACf,OAAO,EACP,eAAe,EACf,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,WAAW,GACZ,MAAM,sBAAsB,CAAC"}
@@ -6,11 +6,33 @@
6
6
  * @file index.ts
7
7
  * @input Imports Icon component/types, icon registry, and global registration
8
8
  * @output Exports Icon, icon registry helpers, registerIcons, getIconRegistry, getIcon,
9
- * and the IconEntry/IconRequest types for theme and registered entries
9
+ * the IconEntry/IconRequest types for theme and registered entries, and the
10
+ * augmentable IconVariantMap with its IconVariant names
10
11
  * @position Component entry point; re-exported by /packages/core/src/index.ts
11
12
  *
12
13
  * SYNC: When modified, update this header and /packages/core/src/Icon/Icon.doc.mjs
13
14
  */
15
+
16
+ /**
17
+ * Icon variant names an application uses. Astryx defines none: a theme lists
18
+ * the names it supports in `defineTheme({iconVariants})`, and an application
19
+ * augments this map with the names it requests.
20
+ *
21
+ * A theme icon entry receives a requested variant only when the active theme
22
+ * lists it; any other request renders the entry's normal artwork.
23
+ *
24
+ * @example
25
+ * ```
26
+ * declare module '@astryxdesign/core/Icon' {
27
+ * interface IconVariantMap {
28
+ * outline: true;
29
+ * filled: true;
30
+ * }
31
+ * }
32
+ * ```
33
+ */
34
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- augmentation point
35
+ /** A variant name from the augmentable {@link IconVariantMap}. */
14
36
  export { Icon, renderIconSlot } from "./Icon.js";
15
37
  export { useIcon } from "./useIcon.js";
16
38
  // Global registry (RSC-compatible, no 'use client')
package/dist/astryx.css CHANGED
@@ -1010,6 +1010,10 @@
1010
1010
  .xif65rj:not(#\#):not(#\#):not(#\#){font-size:14px}
1011
1011
  .x1jchvi3:not(#\#):not(#\#):not(#\#){font-size:1rem}
1012
1012
  .x1qlqyl8:not(#\#):not(#\#):not(#\#){font-size:inherit}
1013
+ .x1uq1jy3:not(#\#):not(#\#):not(#\#){font-size:min(var(--_icon-width,.75rem),var(--_icon-height,.75rem))}
1014
+ .xhhwgqx:not(#\#):not(#\#):not(#\#){font-size:min(var(--_icon-width,1.25rem),var(--_icon-height,1.25rem))}
1015
+ .x14nqahd:not(#\#):not(#\#):not(#\#){font-size:min(var(--_icon-width,1.5rem),var(--_icon-height,1.5rem))}
1016
+ .x1qzu985:not(#\#):not(#\#):not(#\#){font-size:min(var(--_icon-width,1rem),var(--_icon-height,1rem))}
1013
1017
  .xhs0kqb:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-2xl)}
1014
1018
  .x16a80zy:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-2xs)}
1015
1019
  .x10srzze:not(#\#):not(#\#):not(#\#){font-size:var(--font-size-3xl)}
@@ -1803,6 +1807,10 @@
1803
1807
  .xw1wawg:not(#\#):not(#\#):not(#\#):not(#\#){height:calc(44px - 8px)}
1804
1808
  .xg7h5cd:not(#\#):not(#\#):not(#\#):not(#\#){height:fit-content}
1805
1809
  .xsbjeu0:not(#\#):not(#\#):not(#\#):not(#\#){height:min(var(--spacing-6),40px)}
1810
+ .x89eeu2:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--_icon-height,.75rem)}
1811
+ .x1jxzzob:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--_icon-height,1.25rem)}
1812
+ .xol4r8t:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--_icon-height,1.5rem)}
1813
+ .x14eyxzr:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--_icon-height,1rem)}
1806
1814
  .xhovv34:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--_progressbar-mark-height,8px)}
1807
1815
  .x7yyq19:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--_spinner-box-size)}
1808
1816
  .xsyqizj:not(#\#):not(#\#):not(#\#):not(#\#){height:var(--border-width)}
@@ -2069,6 +2077,10 @@
2069
2077
  .x1qwjaml:not(#\#):not(#\#):not(#\#):not(#\#){width:max(0px,calc(-1 * calc(var(--_item-swipe-travel,0px) * var(--_item-swipe-dir,1))))}
2070
2078
  .x96shys:not(#\#):not(#\#):not(#\#):not(#\#){width:max(0px,calc(var(--_item-swipe-travel,0px) * var(--_item-swipe-dir,1)))}
2071
2079
  .x17cz0of:not(#\#):not(#\#):not(#\#):not(#\#){width:min(var(--spacing-6),40px)}
2080
+ .x13u0t82:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--_icon-width,.75rem)}
2081
+ .x1vvatio:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--_icon-width,1.25rem)}
2082
+ .x1gbskz6:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--_icon-width,1.5rem)}
2083
+ .xomy6nw:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--_icon-width,1rem)}
2072
2084
  .x63cpjl:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--_progressbar-mark-width,2px)}
2073
2085
  .x6v0vjy:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--_spinner-box-size)}
2074
2086
  .xjk4fl7:not(#\#):not(#\#):not(#\#):not(#\#){width:var(--border-width)}
@@ -1 +1 @@
1
- {"version":3,"file":"animatedLayout.d.ts","sourceRoot":"","sources":["../../src/motion/animatedLayout.ts"],"names":[],"mappings":"AAmEA,sDAAsD;AACtD,KAAK,YAAY,GACb;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;CAAC,GAC5D;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAC,CAAC;AAE/B,yEAAyE;AACzE,UAAU,cAAc;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAmLD,QAAA,MAAM,IAAI,eAAuC,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;CACvC;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,OAAO,GAAG,IAAI,GACzB,cAAc,CAKhB;AA6SD,KAAK,MAAM,GAAG;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;CAAC,GAAG,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC;AAM1E,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,aAAa,IAAI,IAAI,CAAC;IACtB;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,MAAM,GACb,YAAY,CAqCd;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,OAAO,GACf,IAAI,CA8BN;AA2JD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,IAAI,GACf,OAAO,CAoFT;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAkB5D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,GACvC,IAAI,CAwBN;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAE3D"}
1
+ {"version":3,"file":"animatedLayout.d.ts","sourceRoot":"","sources":["../../src/motion/animatedLayout.ts"],"names":[],"mappings":"AAyEA,sDAAsD;AACtD,KAAK,YAAY,GACb;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;CAAC,GAC5D;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAC,CAAC;AAE/B,yEAAyE;AACzE,UAAU,cAAc;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,gDAAgD;IAChD,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAmLD,QAAA,MAAM,IAAI,eAAuC,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;CACvC;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,OAAO,GAAG,IAAI,GACzB,cAAc,CAKhB;AAyjBD,KAAK,MAAM,GAAG;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;CAAC,GAAG,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC;AAM1E,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,aAAa,IAAI,IAAI,CAAC;IACtB;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,MAAM,GACb,YAAY,CAsEd;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,OAAO,GACf,IAAI,CA8BN;AA2JD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,IAAI,GACf,OAAO,CAoFT;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAkB5D;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACzC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,GACvC,IAAI,CAwBN;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAE3D"}