@astryxdesign/core 0.1.7-canary.d91c851 → 0.1.7-canary.e24b070

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 (58) hide show
  1. package/README.md +4 -6
  2. package/dist/Avatar/Avatar.d.ts +5 -10
  3. package/dist/Avatar/Avatar.d.ts.map +1 -1
  4. package/dist/Avatar/Avatar.js +8 -12
  5. package/dist/Avatar/AvatarSizeContext.d.ts +1 -1
  6. package/dist/Avatar/AvatarSizeContext.js +1 -1
  7. package/dist/Avatar/AvatarStatusDot.d.ts +2 -2
  8. package/dist/Avatar/AvatarStatusDot.js +2 -2
  9. package/dist/AvatarGroup/AvatarGroup.d.ts +2 -2
  10. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  11. package/dist/AvatarGroup/AvatarGroup.js +2 -2
  12. package/dist/AvatarGroup/AvatarGroupOverflow.d.ts +1 -1
  13. package/dist/AvatarGroup/AvatarGroupOverflow.js +1 -1
  14. package/dist/Carousel/Carousel.d.ts +2 -3
  15. package/dist/Carousel/Carousel.d.ts.map +1 -1
  16. package/dist/Carousel/Carousel.js +2 -32
  17. package/dist/Chat/ChatMessage.d.ts +1 -1
  18. package/dist/Chat/ChatMessage.d.ts.map +1 -1
  19. package/dist/Chat/ChatMessage.js +1 -1
  20. package/dist/Icon/Icon.d.ts +1 -26
  21. package/dist/Icon/Icon.d.ts.map +1 -1
  22. package/dist/Icon/Icon.js +7 -34
  23. package/dist/Table/Table.d.ts +1 -1
  24. package/dist/Table/Table.js +1 -1
  25. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  26. package/dist/TreeList/TreeListItem.js +14 -5
  27. package/dist/TreeList/treeListItem.markers.stylex.d.ts +16 -0
  28. package/dist/TreeList/treeListItem.markers.stylex.d.ts.map +1 -0
  29. package/dist/TreeList/treeListItem.markers.stylex.js +22 -0
  30. package/dist/astryx.css +2 -6
  31. package/dist/astryx.umd.js +44 -44
  32. package/dist/astryx.umd.js.map +4 -4
  33. package/docs.mjs +461 -32
  34. package/locales/en.json +172 -172
  35. package/package.json +1 -1
  36. package/src/Avatar/Avatar.doc.mjs +6 -6
  37. package/src/Avatar/Avatar.tsx +11 -16
  38. package/src/Avatar/AvatarSizeContext.ts +1 -1
  39. package/src/Avatar/AvatarStatusDot.tsx +2 -2
  40. package/src/AvatarGroup/AvatarGroup.doc.mjs +1 -1
  41. package/src/AvatarGroup/AvatarGroup.test.tsx +3 -3
  42. package/src/AvatarGroup/AvatarGroup.tsx +3 -3
  43. package/src/AvatarGroup/AvatarGroupOverflow.doc.mjs +2 -2
  44. package/src/AvatarGroup/AvatarGroupOverflow.tsx +1 -1
  45. package/src/Carousel/Carousel.doc.mjs +0 -1
  46. package/src/Carousel/Carousel.test.tsx +1 -96
  47. package/src/Carousel/Carousel.tsx +2 -29
  48. package/src/Chat/Chat.doc.mjs +1 -1
  49. package/src/Chat/ChatMessage.tsx +2 -4
  50. package/src/Icon/Icon.doc.mjs +0 -12
  51. package/src/Icon/Icon.test.tsx +0 -96
  52. package/src/Icon/Icon.tsx +6 -61
  53. package/src/Item/Item.doc.mjs +1 -1
  54. package/src/Table/Table.tsx +1 -1
  55. package/src/TreeList/TreeList.test.tsx +1 -32
  56. package/src/TreeList/TreeListItem.tsx +10 -19
  57. package/src/TreeList/treeListItem.markers.stylex.ts +20 -0
  58. package/src/docs-script.test.mjs +13 -18
package/README.md CHANGED
@@ -13,16 +13,14 @@ Core UI components, theme system, and utilities for the Astryx design system. Fo
13
13
 
14
14
  ## Component Docs
15
15
 
16
- Look up any component's full API (props, variants, examples, best practices, and theming) via the Astryx CLI:
16
+ Look up any component's full API (props, types, best practices, and theming):
17
17
 
18
18
  ```bash
19
- npx @astryxdesign/cli init # one-time: writes the component guide into AGENTS.md / CLAUDE.md
20
- npx @astryxdesign/cli component Button # full docs for a component
21
- npx @astryxdesign/cli component --list # list all components
19
+ node node_modules/@astryxdesign/core/docs.mjs Button # full docs for a component
20
+ node node_modules/@astryxdesign/core/docs.mjs --list # list all components
21
+ node node_modules/@astryxdesign/core/docs.mjs --list --brief # brief summaries
22
22
  ```
23
23
 
24
- > Use the scoped `@astryxdesign/cli` to run without installing; bare `npx astryx` only resolves once the CLI is a dependency.
25
-
26
24
  ## Page Layouts
27
25
 
28
26
  Building a full page? Start with a template rather than composing from scratch.
@@ -13,13 +13,9 @@
13
13
  import { type ReactNode } from 'react';
14
14
  import type { BaseProps } from '../BaseProps';
15
15
  /**
16
- * Named size options.
17
- *
18
- * Avatar uses the same abbreviated scale as Icon (`xsm`/`sm`/`md`/`lg`/`xl`),
19
- * but the values are larger because avatars align with media rather than
20
- * glyphs. The tiers match EPS's avatar sizes.
16
+ * Named size options
21
17
  */
22
- type AvatarNamedSize = 'xsm' | 'sm' | 'md' | 'lg' | 'xl';
18
+ type AvatarNamedSize = 'tiny' | 'xsmall' | 'small' | 'medium' | 'large';
23
19
  /**
24
20
  * Numeric size options (in pixels)
25
21
  */
@@ -56,9 +52,8 @@ export interface AvatarProps extends BaseProps<HTMLDivElement> {
56
52
  */
57
53
  name?: string;
58
54
  /**
59
- * The size of the avatar. A named size (`xsm` 20px, `sm` 24px, `md` 36px,
60
- * `lg` 48px, `xl` 128px) or a specific pixel value.
61
- * @default 'md'
55
+ * The size of the avatar.
56
+ * @default 'small'
62
57
  */
63
58
  size?: AvatarSize;
64
59
  /**
@@ -80,7 +75,7 @@ export interface AvatarProps extends BaseProps<HTMLDivElement> {
80
75
  * @example
81
76
  * ```
82
77
  * <Avatar src="/user.jpg" name="John Doe" />
83
- * <Avatar name="Jane Smith" size="xl" />
78
+ * <Avatar name="Jane Smith" size="large" />
84
79
  * <Avatar src="/user.jpg" status={<OnlineIndicator />} />
85
80
  * ```
86
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../src/Avatar/Avatar.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAoB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AACxD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAsC5C;;;;;;GAMG;AACH,KAAK,eAAe,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzD;;GAEG;AACH,KAAK,iBAAiB,GACpB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAgBpD;AAqFD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAsCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,EACrB,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,WAAW,EACX,IAAI,EACJ,IAAW,EACX,GAAG,EACH,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,+BAwFb;yBArGe,MAAM"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../src/Avatar/Avatar.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAoB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AACxD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAsC5C;;GAEG;AACH,KAAK,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExE;;GAEG;AACH,KAAK,iBAAiB,GACpB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAgBpD;AAqFD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAsCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,EACrB,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,WAAW,EACX,IAAI,EACJ,IAAc,EACd,GAAG,EACH,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,WAAW,+BAwFb;yBArGe,MAAM"}
@@ -50,11 +50,7 @@ const CIRCLE_EDGE_OFFSET_RATIO = (1 - 1 / Math.SQRT2) / 2;
50
50
  const INITIALS_FONT_SIZE_RATIO = 0.4;
51
51
 
52
52
  /**
53
- * Named size options.
54
- *
55
- * Avatar uses the same abbreviated scale as Icon (`xsm`/`sm`/`md`/`lg`/`xl`),
56
- * but the values are larger because avatars align with media rather than
57
- * glyphs. The tiers match EPS's avatar sizes.
53
+ * Named size options
58
54
  */
59
55
 
60
56
  /**
@@ -73,15 +69,15 @@ export function resolveSize(size) {
73
69
  return size;
74
70
  }
75
71
  switch (size) {
76
- case 'xsm':
72
+ case 'tiny':
77
73
  return 20;
78
- case 'sm':
74
+ case 'xsmall':
79
75
  return 24;
80
- case 'md':
76
+ case 'small':
81
77
  return 36;
82
- case 'lg':
78
+ case 'medium':
83
79
  return 48;
84
- case 'xl':
80
+ case 'large':
85
81
  return 128;
86
82
  }
87
83
  }
@@ -227,7 +223,7 @@ function DefaultIcon({
227
223
  * @example
228
224
  * ```
229
225
  * <Avatar src="/user.jpg" name="John Doe" />
230
- * <Avatar name="Jane Smith" size="xl" />
226
+ * <Avatar name="Jane Smith" size="large" />
231
227
  * <Avatar src="/user.jpg" status={<OnlineIndicator />} />
232
228
  * ```
233
229
  */
@@ -236,7 +232,7 @@ export function Avatar({
236
232
  'data-testid': testId,
237
233
  fallbackSrc,
238
234
  name,
239
- size = 'md',
235
+ size = 'small',
240
236
  src,
241
237
  status,
242
238
  xstyle,
@@ -2,7 +2,7 @@
2
2
  * Context that provides the resolved numeric avatar size (in pixels)
3
3
  * to child components like AvatarStatusDot.
4
4
  *
5
- * Default value of 36 matches the default 'md' avatar size.
5
+ * Default value of 36 matches the default 'small' avatar size.
6
6
  */
7
7
  export declare const AvatarSizeContext: import("react").Context<number>;
8
8
  //# sourceMappingURL=AvatarSizeContext.d.ts.map
@@ -17,7 +17,7 @@ import { createContext } from 'react';
17
17
  * Context that provides the resolved numeric avatar size (in pixels)
18
18
  * to child components like AvatarStatusDot.
19
19
  *
20
- * Default value of 36 matches the default 'md' avatar size.
20
+ * Default value of 36 matches the default 'small' avatar size.
21
21
  */
22
22
  export const AvatarSizeContext = /*#__PURE__*/createContext(36);
23
23
  AvatarSizeContext.displayName = 'AvatarSizeContext';
@@ -76,12 +76,12 @@ export interface AvatarStatusDotProps extends BaseProps<HTMLDivElement> {
76
76
  * ```
77
77
  * <Avatar
78
78
  * name="John Doe"
79
- * size="lg"
79
+ * size="medium"
80
80
  * status={<AvatarStatusDot variant="success" label="Online" />}
81
81
  * />
82
82
  * <Avatar
83
83
  * name="Jane Smith"
84
- * size="xl"
84
+ * size="large"
85
85
  * status={<AvatarStatusDot variant="success" label="Verified" icon={<CheckIcon />} />}
86
86
  * />
87
87
  * ```
@@ -148,12 +148,12 @@ const variantStyleMap = {
148
148
  * ```
149
149
  * <Avatar
150
150
  * name="John Doe"
151
- * size="lg"
151
+ * size="medium"
152
152
  * status={<AvatarStatusDot variant="success" label="Online" />}
153
153
  * />
154
154
  * <Avatar
155
155
  * name="Jane Smith"
156
- * size="xl"
156
+ * size="large"
157
157
  * status={<AvatarStatusDot variant="success" label="Verified" icon={<CheckIcon />} />}
158
158
  * />
159
159
  * ```
@@ -27,7 +27,7 @@ export interface AvatarGroupProps extends BaseProps<HTMLDivElement> {
27
27
  children: ReactNode;
28
28
  /**
29
29
  * Size applied to all avatars via context.
30
- * @default 'md'
30
+ * @default 'small'
31
31
  */
32
32
  size?: AvatarSize;
33
33
  /**
@@ -45,7 +45,7 @@ export interface AvatarGroupProps extends BaseProps<HTMLDivElement> {
45
45
  *
46
46
  * @example
47
47
  * ```
48
- * <AvatarGroup size="lg">
48
+ * <AvatarGroup size="medium">
49
49
  * {users.slice(0, 3).map(u => (
50
50
  * <Avatar key={u.id} src={u.src} name={u.name} />
51
51
  * ))}
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarGroup.d.ts","sourceRoot":"","sources":["../../src/AvatarGroup/AvatarGroup.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAU,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAc,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AASvD,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,IAAW,EACX,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,kBAAkB,EAChC,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,GAAG,SAAS,CA6B9B;yBAvCe,WAAW"}
1
+ {"version":3,"file":"AvatarGroup.d.ts","sourceRoot":"","sources":["../../src/AvatarGroup/AvatarGroup.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAU,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAc,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AASvD,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,IAAc,EACd,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,kBAAkB,EAChC,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,GAAG,SAAS,CA6B9B;yBAvCe,WAAW"}
@@ -44,7 +44,7 @@ const styles = {
44
44
  *
45
45
  * @example
46
46
  * ```
47
- * <AvatarGroup size="lg">
47
+ * <AvatarGroup size="medium">
48
48
  * {users.slice(0, 3).map(u => (
49
49
  * <Avatar key={u.id} src={u.src} name={u.name} />
50
50
  * ))}
@@ -54,7 +54,7 @@ const styles = {
54
54
  */
55
55
  export function AvatarGroup({
56
56
  children,
57
- size = 'md',
57
+ size = 'small',
58
58
  'data-testid': testId,
59
59
  'aria-label': ariaLabelFromProps,
60
60
  xstyle,
@@ -33,7 +33,7 @@ export interface AvatarGroupOverflowProps extends Omit<BaseProps<HTMLElement>, '
33
33
  *
34
34
  * @example
35
35
  * ```
36
- * <AvatarGroup size="lg">
36
+ * <AvatarGroup size="medium">
37
37
  * {users.slice(0, 3).map(u => (
38
38
  * <Avatar key={u.id} src={u.src} name={u.name} />
39
39
  * ))}
@@ -85,7 +85,7 @@ const dynamicStyles = {
85
85
  *
86
86
  * @example
87
87
  * ```
88
- * <AvatarGroup size="lg">
88
+ * <AvatarGroup size="medium">
89
89
  * {users.slice(0, 3).map(u => (
90
90
  * <Avatar key={u.id} src={u.src} name={u.name} />
91
91
  * ))}
@@ -3,9 +3,8 @@
3
3
  * @input Uses React, StyleX, useScrollOverflow, useLayer, Button, Icon, theme tokens
4
4
  * @output Exports Carousel component
5
5
  * @position Horizontal scroll container with fade-edge overflow indication,
6
- * optional prev/next buttons on the top layer, scroll-snap, a 1px
7
- * visual bleed allowance for child selection indicators, and Shift + wheel
8
- * mapping so mouse users can scroll horizontally.
6
+ * optional prev/next buttons on the top layer, scroll-snap, and a 1px
7
+ * visual bleed allowance for child selection indicators.
9
8
  *
10
9
  * SYNC: When modified, update:
11
10
  * - /packages/core/src/Carousel/index.ts (exports)
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../src/Carousel/Carousel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAC,KAAK,SAAS,EAA2C,MAAM,OAAO,CAAC;AAc/E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAIhD,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC9D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,kEAAkE;IAClE,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAyJD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,GAAG,EACH,QAAQ,EACR,GAAO,EACP,UAAiB,EACjB,WAAkB,EAClB,OAAe,EACf,OAAO,EACP,YAAY,EAAE,kBAAkB,EAChC,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,SAAS,EACb,EAAE,aAAa,+BA6Kf;yBA3Le,QAAQ"}
1
+ {"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../src/Carousel/Carousel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,KAAK,SAAS,EAA2C,MAAM,OAAO,CAAC;AAc/E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAIhD,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC9D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,kEAAkE;IAClE,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAyJD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,GAAG,EACH,QAAQ,EACR,GAAO,EACP,UAAiB,EACjB,WAAkB,EAClB,OAAe,EACf,OAAO,EACP,YAAY,EAAE,kBAAkB,EAChC,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,SAAS,EACb,EAAE,aAAa,+BAmJf;yBAjKe,QAAQ"}
@@ -7,9 +7,8 @@
7
7
  * @input Uses React, StyleX, useScrollOverflow, useLayer, Button, Icon, theme tokens
8
8
  * @output Exports Carousel component
9
9
  * @position Horizontal scroll container with fade-edge overflow indication,
10
- * optional prev/next buttons on the top layer, scroll-snap, a 1px
11
- * visual bleed allowance for child selection indicators, and Shift + wheel
12
- * mapping so mouse users can scroll horizontally.
10
+ * optional prev/next buttons on the top layer, scroll-snap, and a 1px
11
+ * visual bleed allowance for child selection indicators.
13
12
  *
14
13
  * SYNC: When modified, update:
15
14
  * - /packages/core/src/Carousel/index.ts (exports)
@@ -235,34 +234,6 @@ export function Carousel({
235
234
  scrollElRef.current = el;
236
235
  scrollRef(el);
237
236
  }, [scrollRef]);
238
-
239
- // Map Shift + vertical wheel to horizontal scroll. Trackpads emit
240
- // horizontal deltas natively, but a standard mouse only produces deltaY —
241
- // so mouse users can't wheel-scroll a horizontal container. Shift + wheel
242
- // is the long-established convention for horizontal scroll containers; we
243
- // honor it by translating the vertical delta into a horizontal scroll.
244
- //
245
- // Only kicks in when Shift is held and the wheel is purely vertical
246
- // (deltaX === 0), so native trackpad horizontal scrolling is untouched.
247
- const handleWheel = useCallback(event => {
248
- if (!event.shiftKey || event.deltaY === 0 || event.deltaX !== 0) {
249
- return;
250
- }
251
- const el = scrollElRef.current;
252
- if (!el) {
253
- return;
254
- }
255
- // Nothing to scroll horizontally — let the event fall through so the page
256
- // can scroll as it normally would.
257
- if (el.scrollWidth <= el.clientWidth) {
258
- return;
259
- }
260
- event.preventDefault();
261
- el.scrollBy({
262
- left: event.deltaY,
263
- behavior: 'auto'
264
- });
265
- }, []);
266
237
  const scrollBy = useCallback(direction => {
267
238
  const el = scrollElRef.current;
268
239
  if (!el) {
@@ -300,7 +271,6 @@ export function Carousel({
300
271
  children: [/*#__PURE__*/_jsx("div", {
301
272
  ref: composedRef,
302
273
  tabIndex: 0,
303
- onWheel: handleWheel,
304
274
  ...stylex.props(styles.scroller, gapStyles[gap], padding != null && paddingStyles[padding], hasSnap && styles.snap, fadeStyle),
305
275
  children: Children.map(children, child => /*#__PURE__*/_jsx("div", {
306
276
  ...{
@@ -46,7 +46,7 @@ export interface ChatMessageProps extends BaseProps<HTMLElement> {
46
46
  *
47
47
  * @example
48
48
  * ```
49
- * <ChatMessage sender="assistant" name="Navi" avatar={<Avatar name="Navi" size="md" />}>
49
+ * <ChatMessage sender="assistant" name="Navi" avatar={<Avatar name="Navi" size="small" />}>
50
50
  * <ChatMessageBubble>Hello!</ChatMessageBubble>
51
51
  * <ChatMessageMetadata timestamp="2:30 PM" />
52
52
  * </ChatMessage>
@@ -1 +1 @@
1
- {"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatMessage.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAiB,MAAM,OAAO,CAAC;AAQrD,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAI5C,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,WAAW,CAAC;IAC9D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAoFD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,OAAO,EAAE,WAAW,EACpB,MAAM,EACN,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,gBAAgB,+BA2FlB;yBAxGe,WAAW"}
1
+ {"version":3,"file":"ChatMessage.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatMessage.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAiB,MAAM,OAAO,CAAC;AAQrD,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAI5C,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,WAAW,CAAC;IAC9D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAoFD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,OAAO,EAAE,WAAW,EACpB,MAAM,EACN,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,gBAAgB,+BAyFlB;yBAtGe,WAAW"}
@@ -122,7 +122,7 @@ const styles = {
122
122
  *
123
123
  * @example
124
124
  * ```
125
- * <ChatMessage sender="assistant" name="Navi" avatar={<Avatar name="Navi" size="md" />}>
125
+ * <ChatMessage sender="assistant" name="Navi" avatar={<Avatar name="Navi" size="small" />}>
126
126
  * <ChatMessageBubble>Hello!</ChatMessageBubble>
127
127
  * <ChatMessageMetadata timestamp="2:30 PM" />
128
128
  * </ChatMessage>
@@ -140,31 +140,6 @@ export interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'ref' | 'color'
140
140
  * @default 'md'
141
141
  */
142
142
  size?: IconSize;
143
- /**
144
- * Accessible name for the icon. Set this only when the icon is MEANINGFUL on
145
- * its own — a standalone status glyph or an icon-only indicator with no
146
- * adjacent text conveying the same information. Providing it exposes the icon
147
- * to assistive tech as `role="img"` with this string as the accessible name
148
- * (via `aria-label`) and drops the default `aria-hidden="true"`.
149
- *
150
- * Omit it (the default) for decorative icons — the common case, e.g. an icon
151
- * beside a text label — and the icon stays hidden from assistive tech
152
- * (`aria-hidden="true"`). An empty string (`''`) is treated the same as
153
- * omitting it (decorative), since an empty accessible name is meaningless.
154
- *
155
- * Don't set `label` when an interactive parent (Button, IconButton, link)
156
- * already names the control — that produces a duplicate announcement.
157
- *
158
- * @example
159
- * ```
160
- * // Meaningful, standalone icon
161
- * <Icon icon="success" label="Completed" />
162
- *
163
- * // Decorative icon (default) — omit label
164
- * <Icon icon="search" />
165
- * ```
166
- */
167
- label?: string;
168
143
  }
169
144
  /**
170
145
  * Renders an icon from the icon registry or a custom SVG component.
@@ -174,7 +149,7 @@ export interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'ref' | 'color'
174
149
  * <Icon icon="close" size="md" color="primary" />
175
150
  * ```
176
151
  */
177
- export declare function Icon({ icon, color, size, label, ref, ...props }: IconProps): React.JSX.Element;
152
+ export declare function Icon({ icon, color, size, ref, ...props }: IconProps): React.JSX.Element;
178
153
  export declare namespace Icon {
179
154
  var displayName: string;
180
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/Icon/Icon.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,EAAC,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAG3C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAqBnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Df,CAAC;AAEH;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;EAiBd,CAAC;AAyCH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AAE/C;;;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;;;;OAIG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyBD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,KAAiB,EACjB,IAAW,EACX,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,qBAkCX;yBAzCe,IAAI;;;AA4FpB;;;;;;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;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,EAAC,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAG3C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAqBnD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Df,CAAC;AAEH;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;EAiBd,CAAC;AAyCH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AAE/C;;;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;;;;OAIG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAMD;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,KAAiB,EACjB,IAAW,EACX,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,qBA0BX;yBAhCe,IAAI;;;AAiFpB;;;;;;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
@@ -205,26 +205,6 @@ const spanSizeStyles = {
205
205
  * Extends SVGProps to allow passing additional SVG attributes (used when icon is a component).
206
206
  */
207
207
 
208
- /**
209
- * Derives the ARIA attributes for an icon from its `label` prop.
210
- *
211
- * - Non-empty `label` → meaningful image: `role="img"` + `aria-label`, and no
212
- * `aria-hidden` (an `aria-hidden` element is removed from the accessibility
213
- * tree, so its accessible name would be ignored).
214
- * - Omitted or empty `label` → decorative default: `aria-hidden="true"`.
215
- *
216
- * The result is spread BEFORE `{...props}` in both render modes so an explicit
217
- * `aria-hidden` / `role` / `aria-label` from the consumer always wins.
218
- */
219
- function getIconA11yProps(label) {
220
- return label != null && label !== '' ? {
221
- role: 'img',
222
- 'aria-label': label
223
- } : {
224
- 'aria-hidden': 'true'
225
- };
226
- }
227
-
228
208
  // =============================================================================
229
209
  // Component
230
210
  // =============================================================================
@@ -241,21 +221,15 @@ export function Icon({
241
221
  icon,
242
222
  color = 'inherit',
243
223
  size = 'md',
244
- label,
245
224
  ref,
246
225
  ...props
247
226
  }) {
248
- // Derive ARIA from `label`: decorative (aria-hidden) by default, or a
249
- // meaningful image (role="img" + aria-label) when `label` is non-empty.
250
- const a11yProps = getIconA11yProps(label);
251
-
252
227
  // String mode: resolve from icon registry, wrap in styled span
253
228
  if (typeof icon === 'string') {
254
229
  return /*#__PURE__*/_jsx(IconFromRegistry, {
255
230
  name: icon,
256
231
  color: color,
257
232
  size: size,
258
- a11yProps: a11yProps,
259
233
  spanProps: props
260
234
  });
261
235
  }
@@ -263,12 +237,8 @@ export function Icon({
263
237
  // Component mode: render SVG component directly with ref forwarding
264
238
  const IconComponent = icon;
265
239
  return /*#__PURE__*/_jsx(IconComponent, {
266
- ref: ref
267
- // Derived a11y (decorative default or meaningful `label`) is spread
268
- // BEFORE {...props} so an explicit aria-hidden/role/aria-label from the
269
- // consumer still wins as an escape hatch.
270
- ,
271
- ...a11yProps,
240
+ ref: ref,
241
+ "aria-hidden": "true",
272
242
  ...mergeProps(themeProps('icon', {
273
243
  size,
274
244
  color
@@ -293,7 +263,6 @@ function IconFromRegistry({
293
263
  name,
294
264
  color,
295
265
  size,
296
- a11yProps,
297
266
  spanProps
298
267
  }) {
299
268
  const resolvedIcon = getIcon(name);
@@ -301,7 +270,11 @@ function IconFromRegistry({
301
270
  return null;
302
271
  }
303
272
  return /*#__PURE__*/_jsx("span", {
304
- ...a11yProps,
273
+ // Decorative by default, but placed BEFORE the prop spread so consumers
274
+ // can override it (e.g. `aria-hidden={false}` + `role="img"` +
275
+ // `aria-label`) to expose a meaningful standalone icon. This matches
276
+ // component-mode Icon, which already sets aria-hidden before its spread.
277
+ "aria-hidden": "true",
305
278
  ...spanProps,
306
279
  ...mergeProps(themeProps('icon', {
307
280
  size,
@@ -88,7 +88,7 @@ export interface TableProps<T extends Record<string, unknown>> extends Omit<Base
88
88
  * columns={[
89
89
  * { key: 'name', header: 'Name', width: proportional(1), renderCell: (u) => (
90
90
  * <HStack gap={2} align="center">
91
- * <Avatar name={u.name} size="md" />
91
+ * <Avatar name={u.name} size="small" />
92
92
  * <Text weight="semibold">{u.name}</Text>
93
93
  * </HStack>
94
94
  * )},
@@ -186,7 +186,7 @@ function TableInner({
186
186
  * columns={[
187
187
  * { key: 'name', header: 'Name', width: proportional(1), renderCell: (u) => (
188
188
  * <HStack gap={2} align="center">
189
- * <Avatar name={u.name} size="md" />
189
+ * <Avatar name={u.name} size="small" />
190
190
  * <Text weight="semibold">{u.name}</Text>
191
191
  * </HStack>
192
192
  * )},
@@ -1 +1 @@
1
- {"version":3,"file":"TreeListItem.d.ts","sourceRoot":"","sources":["../../src/TreeList/TreeListItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAcrD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AA8NrD,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,eAAe,CAAC;IACzB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAMD,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,OAAO,EACP,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,UAAkB,EAClB,WAAW,EACX,WAAW,EACX,MAAM,EACN,eAAe,EACf,UAAU,EACV,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,yBAAyB,+BA+L3B;yBArNe,YAAY"}
1
+ {"version":3,"file":"TreeListItem.d.ts","sourceRoot":"","sources":["../../src/TreeList/TreeListItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAcrD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAqNrD,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,EAAE,eAAe,CAAC;IACzB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAMD,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,OAAO,EACP,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,UAAkB,EAClB,WAAW,EACX,WAAW,EACX,MAAM,EACN,eAAe,EACf,UAAU,EACV,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,yBAAyB,+BA+L3B;yBArNe,YAAY"}
@@ -21,6 +21,8 @@ import { getIcon } from "../Icon/globalIconRegistry.js";
21
21
  import { mergeProps } from "../utils/index.js";
22
22
  import { useLinkComponent } from "../Link/useLinkComponent.js";
23
23
  import { TreeListBranches } from "./TreeListBranches.js";
24
+ import "./treeListItem.markers.stylex.js";
25
+ import { treeItemScope } from "./treeListItem.markers.stylex.js";
24
26
  import { themeProps } from "../utils/themeProps.js";
25
27
  import { useTranslator } from "../i18n/index.js";
26
28
 
@@ -29,6 +31,15 @@ import { useTranslator } from "../i18n/index.js";
29
31
  // =============================================================================
30
32
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
31
33
  const styles = {
34
+ wrapper: {
35
+ kH6xsr: "x3ct3a4",
36
+ kogj98: "x1ghz6dp",
37
+ kmVPX3: "x1717udv",
38
+ kVAEAm: "x1n2onr6",
39
+ kzqmXN: "xh8yej3",
40
+ kI3sdo: "x1a2a7pz",
41
+ $$css: true
42
+ },
32
43
  contentWrapper: {
33
44
  kaIpWk: "xh6dtrn",
34
45
  k1xSpc: "x78zum5",
@@ -51,8 +62,8 @@ const styles = {
51
62
  $$css: true
52
63
  },
53
64
  focusVisibleOutline: {
54
- kI3sdo: "x11h0toi x1irc7jg",
55
- kInvED: "x1g710d4 xdjuwb3",
65
+ kI3sdo: "x1a2a7pz xr21g96 x1irc7jg",
66
+ kInvED: "x1wfwxd8 xs4y3kv xdjuwb3",
56
67
  $$css: true
57
68
  },
58
69
  disabled: {
@@ -288,9 +299,7 @@ export function TreeListItem({
288
299
  "data-tree-id": id,
289
300
  "data-tree-level": nestedLevel + 1,
290
301
  "data-tree-disabled": isDisabled || undefined,
291
- ...{
292
- className: "x3ct3a4 x1ghz6dp x1717udv x1n2onr6 xh8yej3 x1a2a7pz x1hb5tod xtoutpx x1f8er9e x1aefuf3"
293
- },
302
+ ...stylex.props(styles.wrapper, treeItemScope),
294
303
  children: [/*#__PURE__*/_jsx("div", {
295
304
  ...{
296
305
  className: "x12gdq22"
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @file treeListItem.markers.stylex.ts
3
+ * @input Uses StyleX defineMarker
4
+ * @output Exports treeItemScope marker
5
+ * @position Scoped marker; consumed by TreeListItem.tsx
6
+ *
7
+ * SYNC: When modified, update /packages/core/src/TreeList/TreeListItem.tsx
8
+ */
9
+ import * as stylex from '@stylexjs/stylex';
10
+ /**
11
+ * Scoped marker placed on each treeitem row (`<li role="treeitem">`).
12
+ * Binds the row's `:focus-visible` outline to its OWN treeitem, so focusing
13
+ * a parent treeitem does not leak the focus ring onto descendant rows.
14
+ */
15
+ export declare const treeItemScope: ReturnType<typeof stylex.defineMarker>;
16
+ //# sourceMappingURL=treeListItem.markers.stylex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeListItem.markers.stylex.d.ts","sourceRoot":"","sources":["../../src/TreeList/treeListItem.markers.stylex.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,YAAY,CAC1C,CAAC"}
@@ -0,0 +1,22 @@
1
+ // Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ /**
4
+ * @file treeListItem.markers.stylex.ts
5
+ * @input Uses StyleX defineMarker
6
+ * @output Exports treeItemScope marker
7
+ * @position Scoped marker; consumed by TreeListItem.tsx
8
+ *
9
+ * SYNC: When modified, update /packages/core/src/TreeList/TreeListItem.tsx
10
+ */
11
+
12
+ import * as stylex from '@stylexjs/stylex';
13
+
14
+ /**
15
+ * Scoped marker placed on each treeitem row (`<li role="treeitem">`).
16
+ * Binds the row's `:focus-visible` outline to its OWN treeitem, so focusing
17
+ * a parent treeitem does not leak the focus ring onto descendant rows.
18
+ */
19
+ export const treeItemScope = {
20
+ x1g2q90y: "x1g2q90y",
21
+ $$css: true
22
+ };