@astryxdesign/core 0.3.0-canary.ba306ff → 0.3.0-canary.bbc3612

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 (91) hide show
  1. package/dist/AppShell/AppShell.d.ts +2 -2
  2. package/dist/AppShell/AppShell.d.ts.map +1 -1
  3. package/dist/AppShell/AppShell.js +40 -9
  4. package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
  5. package/dist/Chat/useTriggerMenu.js +2 -6
  6. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  7. package/dist/CodeBlock/CodeBlock.js +11 -4
  8. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  9. package/dist/ComplexSelector/ComplexSelector.js +1 -2
  10. package/dist/DropdownMenu/DropdownMenu.d.ts +10 -3
  11. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  12. package/dist/DropdownMenu/DropdownMenu.js +2 -13
  13. package/dist/DropdownMenu/DropdownMenuItem.d.ts +9 -1
  14. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  15. package/dist/DropdownMenu/DropdownMenuItem.js +7 -4
  16. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  17. package/dist/DropdownMenu/DropdownMenuSubMenu.js +2 -8
  18. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  19. package/dist/DropdownMenu/renderDropdownItems.js +17 -9
  20. package/dist/EmptyState/EmptyState.d.ts.map +1 -1
  21. package/dist/EmptyState/EmptyState.js +8 -4
  22. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  23. package/dist/HoverCard/useHoverCard.js +3 -19
  24. package/dist/Layer/useLayer.d.ts +14 -0
  25. package/dist/Layer/useLayer.d.ts.map +1 -1
  26. package/dist/Layer/useLayer.js +25 -2
  27. package/dist/MoreMenu/MoreMenu.d.ts +14 -1
  28. package/dist/MoreMenu/MoreMenu.d.ts.map +1 -1
  29. package/dist/MoreMenu/MoreMenu.js +4 -0
  30. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  31. package/dist/MultiSelector/MultiSelector.js +1 -1
  32. package/dist/Popover/Popover.d.ts.map +1 -1
  33. package/dist/Popover/Popover.js +6 -8
  34. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  35. package/dist/PowerSearch/PowerSearch.js +1 -1
  36. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  37. package/dist/Tooltip/useTooltip.js +3 -19
  38. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  39. package/dist/TopNav/TopNavMenu.js +2 -7
  40. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  41. package/dist/Typeahead/BaseTypeahead.js +2 -6
  42. package/dist/astryx.css +29 -49
  43. package/dist/astryx.umd.js +48 -48
  44. package/dist/astryx.umd.js.map +4 -4
  45. package/dist/hooks/containerReveal.stylex.d.ts +61 -0
  46. package/dist/hooks/containerReveal.stylex.d.ts.map +1 -0
  47. package/dist/hooks/containerReveal.stylex.js +63 -0
  48. package/dist/hooks/useContainerReveal.d.ts +14 -8
  49. package/dist/hooks/useContainerReveal.d.ts.map +1 -1
  50. package/dist/hooks/useContainerReveal.js +28 -69
  51. package/package.json +2 -2
  52. package/src/AppShell/AppShell.doc.mjs +11 -0
  53. package/src/AppShell/AppShell.test.tsx +139 -0
  54. package/src/AppShell/AppShell.tsx +32 -22
  55. package/src/Chat/useTriggerMenu.tsx +2 -5
  56. package/src/CodeBlock/CodeBlock.doc.mjs +2 -0
  57. package/src/CodeBlock/CodeBlock.test.tsx +67 -0
  58. package/src/CodeBlock/CodeBlock.tsx +11 -4
  59. package/src/ComplexSelector/ComplexSelector.test.tsx +8 -12
  60. package/src/ComplexSelector/ComplexSelector.tsx +1 -8
  61. package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
  62. package/src/DropdownMenu/DropdownMenu.test.tsx +163 -0
  63. package/src/DropdownMenu/DropdownMenu.tsx +12 -17
  64. package/src/DropdownMenu/DropdownMenuItem.doc.mjs +15 -0
  65. package/src/DropdownMenu/DropdownMenuItem.tsx +15 -4
  66. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +1 -5
  67. package/src/DropdownMenu/renderDropdownItems.tsx +20 -10
  68. package/src/EmptyState/EmptyState.doc.mjs +4 -0
  69. package/src/EmptyState/EmptyState.test.tsx +62 -0
  70. package/src/EmptyState/EmptyState.tsx +14 -4
  71. package/src/HoverCard/useHoverCard.tsx +2 -23
  72. package/src/Layer/useLayer.doc.mjs +2 -2
  73. package/src/Layer/useLayer.test.tsx +85 -0
  74. package/src/Layer/useLayer.tsx +39 -1
  75. package/src/MoreMenu/MoreMenu.doc.mjs +31 -0
  76. package/src/MoreMenu/MoreMenu.test.tsx +40 -0
  77. package/src/MoreMenu/MoreMenu.tsx +19 -0
  78. package/src/MultiSelector/MultiSelector.tsx +1 -1
  79. package/src/Popover/Popover.tsx +6 -7
  80. package/src/PowerSearch/PowerSearch.tsx +1 -1
  81. package/src/Tooltip/useTooltip.tsx +2 -23
  82. package/src/TopNav/TopNavMenu.tsx +1 -5
  83. package/src/Typeahead/BaseTypeahead.tsx +2 -5
  84. package/src/hooks/containerReveal.stylex.ts +102 -0
  85. package/src/hooks/useContainerReveal.doc.mjs +7 -7
  86. package/src/hooks/useContainerReveal.test.tsx +42 -62
  87. package/src/hooks/useContainerReveal.ts +36 -91
  88. package/dist/hooks/containerReveal.pool.stylex.d.ts +0 -303
  89. package/dist/hooks/containerReveal.pool.stylex.d.ts.map +0 -1
  90. package/dist/hooks/containerReveal.pool.stylex.js +0 -292
  91. package/src/hooks/containerReveal.pool.stylex.ts +0 -571
@@ -136,7 +136,7 @@ export interface AppShellProps extends BaseProps<HTMLDivElement> {
136
136
  * <AppShell mobileNav={{ hasToggle: false }}>
137
137
  * <MobileNavToggle />
138
138
  * </AppShell>
139
- * <AppShell mobileNav={<MobileNav title="Menu">...</MobileNav>} />
139
+ * <AppShell mobileNav={<MobileNav header="Menu">...</MobileNav>} />
140
140
  * <AppShell mobileNav={false} />
141
141
  * ```
142
142
  */
@@ -188,7 +188,7 @@ export interface AppShellProps extends BaseProps<HTMLDivElement> {
188
188
  * topNav={<TopNav label="Navigation" heading={<TopNavHeading heading="My App" />} />}
189
189
  * sideNav={<SideNav>{navSections}</SideNav>}
190
190
  * mobileNav={
191
- * <MobileNav isOpen={mobileOpen} onOpenChange={(open) => setMobileOpen(open)} title="My App">
191
+ * <MobileNav isOpen={mobileOpen} onOpenChange={(open) => setMobileOpen(open)} header="My App">
192
192
  * {navSections}
193
193
  * </MobileNav>
194
194
  * }>
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/AppShell/AppShell.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAmBf,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAM5C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AA8BhD;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE7D;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC9D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AA2KD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAoB,EACpB,MAAM,EACN,QAAQ,EACR,cAAc,EACd,aAAa,EAAE,UAAU,EACzB,MAAe,EACf,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,aAAa,qBAoYf;yBAnZe,QAAQ"}
1
+ {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/AppShell/AppShell.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAmBf,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAO5C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AA8BhD;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE7D;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC9D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AA2KD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAoB,EACpB,MAAM,EACN,QAAQ,EACR,cAAc,EACd,aAAa,EAAE,UAAU,EACzB,MAAe,EACf,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,aAAa,qBA6Yf;yBA5Ze,QAAQ"}
@@ -34,6 +34,7 @@ import { TopNavRenderContext } from "../TopNav/TopNavRenderContext.js";
34
34
  import { TopNavMobileContentContext } from "../TopNav/TopNavMobileContentContext.js";
35
35
  import { AppShellMobileContext } from "./AppShellMobileContext.js";
36
36
  import { mergeProps, mergeRefs, isRenderable } from "../utils/index.js";
37
+ import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
37
38
  import { useMediaQuery } from "../hooks/useMediaQuery.js";
38
39
  import { observeResize, unobserveResize } from "../utils/sharedResizeObserver.js";
39
40
  import { themeProps } from "../utils/themeProps.js";
@@ -129,6 +130,27 @@ const styles = {
129
130
  kAzted: "x1ov3xa9",
130
131
  $$css: true
131
132
  },
133
+ skipLink: {
134
+ kVAEAm: "x10l6tqk x1xrnuwo",
135
+ kzqmXN: "x1i1rx1s x1jqxupm",
136
+ kZKoxP: "xjm9jq1 x15cytp8",
137
+ k8WAf4: "xt970qd xh2mrf5",
138
+ kg3NbH: "xnjsko4 x1cf3d6k",
139
+ kogj98: "xkdpibf x1y5lnwp",
140
+ kVQacm: "xb3r6kr xomzh7y",
141
+ kz4h6p: "x1hyvwdk x1rsz1da",
142
+ khDVqt: "xuxw1ft x1hbpcn8",
143
+ kMzoRj: "xc342km",
144
+ k87sOh: "x13vifvy x1rw3289",
145
+ kLqNvP: "x1o0tod xodanix",
146
+ kWkggS: "x10xzikg",
147
+ kMwMTN: "xjse4m1",
148
+ kY2c9j: "x1q2oy4v",
149
+ kybGjl: "x1hl2dhg",
150
+ k63SB2: "x2mo6ok",
151
+ kGuDYH: "xjm74w1",
152
+ $$css: true
153
+ },
132
154
  mainFocusTarget: {
133
155
  kI3sdo: "x1uvtmcs",
134
156
  $$css: true
@@ -189,7 +211,7 @@ const styles = {
189
211
  * topNav={<TopNav label="Navigation" heading={<TopNavHeading heading="My App" />} />}
190
212
  * sideNav={<SideNav>{navSections}</SideNav>}
191
213
  * mobileNav={
192
- * <MobileNav isOpen={mobileOpen} onOpenChange={(open) => setMobileOpen(open)} title="My App">
214
+ * <MobileNav isOpen={mobileOpen} onOpenChange={(open) => setMobileOpen(open)} header="My App">
193
215
  * {navSections}
194
216
  * </MobileNav>
195
217
  * }>
@@ -240,12 +262,18 @@ export function AppShell({
240
262
  const isBelowBreakpoint = useMediaQuery(breakpointQuery, mobileNavConfig?.defaultIsMobile);
241
263
  const [uncontrolledMobileOpen, setUncontrolledMobileOpen] = useState(false);
242
264
  const isMobileNavOpen = mobileNavConfig?.isOpen ?? uncontrolledMobileOpen;
265
+ const mobileNavOnOpenChange = mobileNavConfig?.onOpenChange;
243
266
  const setMobileNavOpen = useCallback(open => {
244
267
  if (!mobileNavIsControlled) {
245
268
  setUncontrolledMobileOpen(open);
246
269
  }
247
- mobileNavConfig?.onOpenChange?.(open);
248
- }, [mobileNavIsControlled, mobileNavConfig]);
270
+ mobileNavOnOpenChange?.(open);
271
+ },
272
+ // Depend on the callback itself, not on the config object: the documented
273
+ // usage is an inline `mobileNav={{isOpen, onOpenChange}}` literal, which is
274
+ // a new object every render and would otherwise churn this callback and the
275
+ // context value memo built from it on every render of the shell.
276
+ [mobileNavIsControlled, mobileNavOnOpenChange]);
249
277
 
250
278
  // Move focus to the main content container when the skip link is activated.
251
279
  // Hash navigation alone doesn't reliably move focus in every browser, so
@@ -285,7 +313,7 @@ export function AppShell({
285
313
  const shellEl = shellRef.current;
286
314
  const updateHeight = () => {
287
315
  const height = headerEl.getBoundingClientRect().height;
288
- shellEl.style.setProperty('--appshell-header-height', `${height}px`);
316
+ shellEl.style.setProperty('--_app-shell-header-height', `${height}px`);
289
317
  };
290
318
  observeResize(headerEl, () => updateHeight());
291
319
  return () => unobserveResize(headerEl);
@@ -358,7 +386,7 @@ export function AppShell({
358
386
  children: banner
359
387
  }), hasTopNav && topNavContent]
360
388
  }) : undefined;
361
- const headerContent = headerInner != null ? /*#__PURE__*/_jsx("div", {
389
+ const headerContent = isRenderable(headerInner) ? /*#__PURE__*/_jsx("div", {
362
390
  ref: headerRef
363
391
  // Top-level banner landmark for the header region (topNav + banner).
364
392
  // Safe here: the wrapper is never nested inside main/nav/other landmarks.
@@ -390,7 +418,7 @@ export function AppShell({
390
418
  }) : undefined;
391
419
  const sideNavContent = sideNavPanel != null && isAuto ? /*#__PURE__*/_jsx("div", {
392
420
  ...{
393
- className: "x2lah0s x7giv3 x7wzq59 xepuwc7 x16zugyo x78zum5 xdt5ytf"
421
+ className: "x2lah0s x7giv3 x7wzq59 xht72ud xpa73km x78zum5 xdt5ytf"
394
422
  },
395
423
  children: sideNavPanel
396
424
  }) : sideNavPanel;
@@ -437,6 +465,11 @@ export function AppShell({
437
465
  // For sidenav-only layouts with no TopNav, render the sideNav in topbar
438
466
  // mode — it shows heading + footer icons horizontally, with the hamburger
439
467
  const autoMobileTopBar = shouldShowAutoToggle && !hasTopNav && hasSideNav ? /*#__PURE__*/_jsx("div", {
468
+ // Banner landmark for the mobile top bar, so the sidenav-only layout
469
+ // exposes the same landmark structure as the topNav one. Only when
470
+ // there is no headerContent: a banner slot with no topNav renders both,
471
+ // and two sibling banner regions is worse than the one this restores.
472
+ role: headerContent == null ? 'banner' : undefined,
440
473
  ...mergeProps(themeProps('app-shell-header', {
441
474
  variant
442
475
  }), stylex.props(navAreaStyle, isAuto && styles.headerSticky)),
@@ -468,9 +501,7 @@ export function AppShell({
468
501
  children: [/*#__PURE__*/_jsx("a", {
469
502
  href: `#${MAIN_CONTENT_ID}`,
470
503
  onClick: handleSkipLinkClick,
471
- ...{
472
- className: "x10l6tqk x1xrnuwo x1i1rx1s x1jqxupm xjm9jq1 x15cytp8 xt970qd xh2mrf5 xnjsko4 x1cf3d6k xkdpibf x1y5lnwp xb3r6kr xomzh7y x1hyvwdk x1rsz1da xuxw1ft x1hbpcn8 xc342km x13vifvy x1rw3289 x1o0tod xodanix x10xzikg xjse4m1 x1q2oy4v x1hl2dhg x2mo6ok xjm74w1"
473
- },
504
+ ...focusOutlineProps.focusVisible(styles.skipLink),
474
505
  "data-testid": "skip-to-content",
475
506
  children: t('@astryx.appShell.skipToContent')
476
507
  }), /*#__PURE__*/_jsx(Layout, {
@@ -1 +1 @@
1
- {"version":3,"file":"useTriggerMenu.d.ts","sourceRoot":"","sources":["../../src/Chat/useTriggerMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGvD,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAMhF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpD,aAAa,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAClD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,gBAAgB,CAAC;IACxB,gEAAgE;IAChE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,oEAAoE;IACpE,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC;IACnD,sCAAsC;IACtC,UAAU,EAAE,MAAM,SAAS,CAAC;IAC5B,mCAAmC;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB;;;;;;OAMG;IACH,SAAS,EAAE;QACT,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;QAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,eAAe,CAAC,EAAE,SAAS,CAAC;KAC7B,CAAC;CACH;AA+JD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CAsdtB"}
1
+ {"version":3,"file":"useTriggerMenu.d.ts","sourceRoot":"","sources":["../../src/Chat/useTriggerMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAGvD,OAAO,KAAK,EAAC,mBAAmB,EAAE,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AAMhF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpD,aAAa,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAClD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,gBAAgB,CAAC;IACxB,gEAAgE;IAChE,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,oEAAoE;IACpE,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC;IACnD,sCAAsC;IACtC,UAAU,EAAE,MAAM,SAAS,CAAC;IAC5B,mCAAmC;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB;;;;;;OAMG;IACH,SAAS,EAAE;QACT,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;QAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,eAAe,CAAC,EAAE,SAAS,CAAC;KAC7B,CAAC;CACH;AA2JD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CAudtB"}
@@ -40,11 +40,6 @@ const styles = {
40
40
  popoverSurface: {
41
41
  k7Eaqz: "xfb3i0g",
42
42
  $$css: true
43
- },
44
- popoverGap: {
45
- keoZOQ: "xcsaf9d",
46
- k1K539: "x14cgwvg",
47
- $$css: true
48
43
  }
49
44
  };
50
45
 
@@ -507,7 +502,8 @@ export function useTriggerMenu(options) {
507
502
  }), {
508
503
  placement: 'above',
509
504
  alignment: 'start',
510
- xstyle: [styles.popoverSurface, styles.popoverGap]
505
+ offset: spacingVars['--spacing-1'],
506
+ xstyle: styles.popoverSurface
511
507
  });
512
508
  }, [popover, listboxId, state, selectItem, getItemId, t]);
513
509
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA6B5C,OAAO,EAAc,KAAK,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAwWxE,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAqPD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAsB,EACtB,KAAK,EACL,gBAAuB,EACvB,cAAsB,EACtB,cAAc,EACd,aAAoB,EACpB,MAAM,EACN,SAAiB,EACjB,SAAS,EACT,aAAqB,EACrB,oBAAyB,EACzB,IAAW,EACX,KAAK,EAAE,SAAyB,EAChC,SAAkB,EAClB,SAAS,EAAE,eAAe,EAC1B,aAAsB,EACtB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,qBAsNhB;yBA9Oe,SAAS"}
1
+ {"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../src/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA6B5C,OAAO,EAAc,KAAK,qBAAqB,EAAC,MAAM,iBAAiB,CAAC;AAwWxE,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC/D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,KACb;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAqPD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAsB,EACtB,KAAK,EACL,gBAAuB,EACvB,cAAsB,EACtB,cAAc,EACd,aAAoB,EACpB,MAAM,EACN,SAAiB,EACjB,SAAS,EACT,aAAqB,EACrB,oBAAyB,EACzB,IAAW,EACX,KAAK,EAAE,SAAyB,EAChC,SAAkB,EAClB,SAAS,EAAE,eAAe,EAC1B,aAAsB,EACtB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,qBA6NhB;yBArPe,SAAS"}
@@ -513,14 +513,18 @@ export function CodeBlock({
513
513
  ...themeProps('codeblock-copy-button')
514
514
  }) : null;
515
515
  const headerEl = showHeader ? /*#__PURE__*/_jsxs("div", {
516
- ...{
516
+ ...mergeProps(themeProps('codeblock-header', {
517
+ size,
518
+ language,
519
+ container
520
+ }), {
517
521
  0: {
518
522
  className: "x78zum5 x6s0dn4 x1qughib x1pzlopt xzyc27v x7wzq59 x13vifvy x1vjfegm xce4md1"
519
523
  },
520
524
  1: {
521
525
  className: "x78zum5 x6s0dn4 x1qughib x1pzlopt xzyc27v x7wzq59 x13vifvy x1vjfegm xce4md1 x92x3c3 x1q0q8m5 xw8gpjh"
522
526
  }
523
- }[!!hasLineNumbers << 0],
527
+ }[!!hasLineNumbers << 0]),
524
528
  children: [/*#__PURE__*/_jsx("div", {
525
529
  role: canCollapse ? 'button' : undefined,
526
530
  tabIndex: canCollapse ? 0 : undefined,
@@ -535,9 +539,12 @@ export function CodeBlock({
535
539
  } : undefined,
536
540
  ...focusOutlineProps.focusVisible(styles.header, canCollapse && styles.headerCollapsible),
537
541
  children: /*#__PURE__*/_jsxs("span", {
538
- ...{
542
+ ...mergeProps(themeProps('codeblock-title', {
543
+ size,
544
+ language
545
+ }), {
539
546
  className: "x78zum5 x6s0dn4 x141an7d x9m5x89 x1e4wzip x1mjzq1q x1ghz6dp x1ltkj2j"
540
- },
547
+ }),
541
548
  children: [canCollapse && /*#__PURE__*/_jsx("span", {
542
549
  ...{
543
550
  className: "x3nfvp2 x6s0dn4 xl56j7k x2lah0s x6jxa94 x1v9usgg xnur1sd xb3r6kr x1mjzq1q x1gbn2au x1aquc0h x12wqnr7 x128ha8g"
@@ -1 +1 @@
1
- {"version":3,"file":"ComplexSelector.d.ts","sourceRoot":"","sources":["../../src/ComplexSelector/ComplexSelector.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComplexSelector.d.ts","sourceRoot":"","sources":["../../src/ComplexSelector/ComplexSelector.tsx"],"names":[],"mappings":"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"}
@@ -99,8 +99,6 @@ const styles = {
99
99
  },
100
100
  popover: {
101
101
  k7Eaqz: "xrzjruh",
102
- keoZOQ: "xcsaf9d",
103
- k1K539: "x14cgwvg",
104
102
  $$css: true
105
103
  },
106
104
  content: {
@@ -286,6 +284,7 @@ export function ComplexSelector({
286
284
  }), popover.render(content, {
287
285
  placement,
288
286
  alignment: 'start',
287
+ offset: spacingVars['--spacing-1'],
289
288
  xstyle: [styles.popover, layerAnimations[placement]]
290
289
  })]
291
290
  });
@@ -35,11 +35,16 @@ import type { BaseProps } from '../BaseProps';
35
35
  * not drift. Only the fields listed here are part of the data API; add a key to
36
36
  * the `Pick` to expose more of the item's props to `items`.
37
37
  */
38
- export interface DropdownMenuItemData extends Pick<DropdownMenuItemProps, 'icon' | 'onClick' | 'isDisabled' | 'variant'> {
38
+ export interface DropdownMenuItemData extends Pick<DropdownMenuItemProps, 'icon' | 'onClick' | 'isDisabled' | 'variant' | 'hasCloseOnSelect'> {
39
39
  /**
40
- * Primary label text. Narrowed to `string` from the item's `ReactNode`:
41
- * data mode derives each row's React key from the label.
40
+ * Stable identity for the row, used as its React key (as on
41
+ * `TreeListItemData`). Omit it and the row is keyed by position, which is
42
+ * correct for a fixed menu; set it when `items` can reorder, filter, or grow,
43
+ * so a row keeps its DOM node — and therefore keyboard focus — as the array
44
+ * changes around it.
42
45
  */
46
+ id?: string;
47
+ /** Primary label text. */
43
48
  label: string;
44
49
  /**
45
50
  * Nested submenu entries. When present, this row becomes a submenu (a
@@ -53,6 +58,8 @@ export interface DropdownMenuDivider {
53
58
  }
54
59
  export interface DropdownMenuSection {
55
60
  type: 'section';
61
+ /** Stable identity for the group; see {@link DropdownMenuItemData.id}. */
62
+ id?: string;
56
63
  title?: string;
57
64
  items: DropdownMenuItemData[];
58
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,EAAS,KAAK,WAAW,EAAC,MAAM,WAAW,CAAC;AAInD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAa9D,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAQtE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAyC5C;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,qBAAqB,EACrB,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAC9C;IACC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,kBAAkB,GAC5B,oBAAoB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAMnE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAEnE,UAAU,qBAAsB,SAAQ,SAAS;IAC/C,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,qBAAsB,SAAQ,qBAAqB;IAC3D,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,UAAU,yBAA0B,SAAQ,qBAAqB;IAC/D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAC3B,qBAAqB,GAAG,yBAAyB,CAAC;AA+BpD,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,gBAAgB,EAC5B,YAAY,EACZ,SAAS,EACT,OAAO,EACP,UAAiB,EACjB,SAAmB,EACnB,SAAmB,EACnB,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EAAE,MAAM,EACrB,GAAG,KAAK,EACT,EAAE,iBAAiB,qBA+TnB;yBA7Ue,YAAY"}
1
+ {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,EAAS,KAAK,WAAW,EAAC,MAAM,WAAW,CAAC;AAInD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAC;AAa9D,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAQtE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAiC5C;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,qBAAqB,EACrB,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,kBAAkB,CACnE;IACC;;;;;;OAMG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,0EAA0E;IAC1E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,kBAAkB,GAC5B,oBAAoB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAMnE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAEnE,UAAU,qBAAsB,SAAQ,SAAS;IAC/C,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,qBAAsB,SAAQ,qBAAqB;IAC3D,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,UAAU,yBAA0B,SAAQ,qBAAqB;IAC/D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAC3B,qBAAqB,GAAG,yBAAyB,CAAC;AA+BpD,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,gBAAgB,EAC5B,YAAY,EACZ,SAAS,EACT,OAAO,EACP,UAAiB,EACjB,SAAmB,EACnB,SAAmB,EACnB,SAAS,EACT,KAAK,EACL,MAAM,EACN,aAAa,EAAE,MAAM,EACrB,GAAG,KAAK,EACT,EAAE,iBAAiB,qBA2TnB;yBAzUe,YAAY"}
@@ -65,16 +65,6 @@ const styles = {
65
65
  k7Eaqz: "xrzjruh",
66
66
  $$css: true
67
67
  },
68
- popoverBlockGap: {
69
- keoZOQ: "xcsaf9d",
70
- k1K539: "x14cgwvg",
71
- $$css: true
72
- },
73
- popoverInlineGap: {
74
- keTefX: "x11g1kdw",
75
- k71WvV: "xnur1sd",
76
- $$css: true
77
- },
78
68
  popoverCustomWidth: width => [{
79
69
  k7Eaqz: (typeof width === 'number' ? `${width}px` : width) != null ? "xkj4a21" : typeof width === 'number' ? `${width}px` : width,
80
70
  $$css: true
@@ -351,8 +341,6 @@ export function DropdownMenu({
351
341
  color: "inherit"
352
342
  }) : undefined);
353
343
  const popoverXstyle = menuWidth ? styles.popoverCustomWidth(menuWidth) : styles.popover;
354
- const popoverGapStyle = placement === 'above' || placement === 'below' ? styles.popoverBlockGap : styles.popoverInlineGap;
355
-
356
344
  // Context for compound items
357
345
  const contextValue = useMemo(() => ({
358
346
  closeMenu,
@@ -409,7 +397,8 @@ export function DropdownMenu({
409
397
  }), {
410
398
  placement,
411
399
  alignment,
412
- xstyle: [popoverXstyle, popoverGapStyle, layerAnimations[placement]]
400
+ offset: spacingVars['--spacing-1'],
401
+ xstyle: [popoverXstyle, layerAnimations[placement]]
413
402
  })]
414
403
  });
415
404
  }
@@ -34,6 +34,14 @@ export interface DropdownMenuItemProps extends Pick<BaseProps, 'xstyle' | 'class
34
34
  isDisabled?: boolean;
35
35
  /** Additional content to render after the label/description. */
36
36
  endContent?: ReactNode;
37
+ /**
38
+ * Whether activating the item closes the menu. Set `false` for an action
39
+ * that reports its result on the item itself (a copy row swapping to
40
+ * "Copied"), matching the checkbox and radio items, which already decide
41
+ * this for themselves.
42
+ * @default true
43
+ */
44
+ hasCloseOnSelect?: boolean;
37
45
  /**
38
46
  * Visual variant. `'destructive'` renders the label, description, and icon in
39
47
  * the error color for dangerous actions (e.g. Delete). @default 'default'
@@ -54,7 +62,7 @@ export interface DropdownMenuItemProps extends Pick<BaseProps, 'xstyle' | 'class
54
62
  * </DropdownMenu>
55
63
  * ```
56
64
  */
57
- export declare function DropdownMenuItem({ icon, label, description, onClick, isDisabled, endContent, variant, xstyle, className, style, }: DropdownMenuItemProps): import("react").JSX.Element;
65
+ export declare function DropdownMenuItem({ icon, label, description, onClick, isDisabled, endContent, hasCloseOnSelect, variant, xstyle, className, style, }: DropdownMenuItemProps): import("react").JSX.Element;
58
66
  export declare namespace DropdownMenuItem {
59
67
  var displayName: string;
60
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenuItem.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenuItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAiC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAErE,OAAO,EAAiB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAStD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAkD5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,EACT,QAAQ,GAAG,WAAW,GAAG,OAAO,CACjC;IACC,wCAAwC;IACxC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,0BAA0B;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mDAAmD;IACnD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gEAAgE;IAChE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,KAAK,EACL,WAAW,EACX,OAAO,EACP,UAAkB,EAClB,UAAU,EACV,OAAmB,EACnB,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,qBAAqB,+BAwDvB;yBAnEe,gBAAgB"}
1
+ {"version":3,"file":"DropdownMenuItem.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenuItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAiC,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAErE,OAAO,EAAiB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAStD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAkD5C,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CACjD,SAAS,EACT,QAAQ,GAAG,WAAW,GAAG,OAAO,CACjC;IACC,wCAAwC;IACxC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,0BAA0B;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mDAAmD;IACnD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gEAAgE;IAChE,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,KAAK,EACL,WAAW,EACX,OAAO,EACP,UAAkB,EAClB,UAAU,EACV,gBAAuB,EACvB,OAAmB,EACnB,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,qBAAqB,+BA0DvB;yBAtEe,gBAAgB"}
@@ -96,6 +96,7 @@ export function DropdownMenuItem({
96
96
  onClick,
97
97
  isDisabled = false,
98
98
  endContent,
99
+ hasCloseOnSelect = true,
99
100
  variant = 'default',
100
101
  xstyle,
101
102
  className,
@@ -104,12 +105,14 @@ export function DropdownMenuItem({
104
105
  const ctx = useDropdownMenuContext();
105
106
  const menuSize = ctx?.menuSize ?? 'md';
106
107
  const handleClick = useCallback(() => {
107
- if (isDisabled || !onClick) {
108
+ if (isDisabled) {
108
109
  return;
109
110
  }
110
- onClick();
111
- ctx?.closeMenu();
112
- }, [isDisabled, onClick, ctx]);
111
+ onClick?.();
112
+ if (hasCloseOnSelect) {
113
+ ctx?.closeMenu();
114
+ }
115
+ }, [isDisabled, onClick, hasCloseOnSelect, ctx]);
113
116
  const handlePointerMove = useCallback(e => focusMenuItemOnHover(e, isDisabled), [isDisabled]);
114
117
  const isDestructive = variant === 'destructive';
115
118
  return /*#__PURE__*/_jsx(Item, {
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenuSubMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenuSubMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAc,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAuB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAoB5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA0F5C,UAAU,4BAA6B,SAAQ,IAAI,CACjD,SAAS,EACT,QAAQ,GAAG,WAAW,GAAG,OAAO,CACjC;IACC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAyB,SAAQ,4BAA4B;IAC5E;;;;;;;;OAQG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,SAAS,CAmVX;yBArVe,mBAAmB"}
1
+ {"version":3,"file":"DropdownMenuSubMenu.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/DropdownMenuSubMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAc,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAuB,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAoB5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAqF5C,UAAU,4BAA6B,SAAQ,IAAI,CACjD,SAAS,EACT,QAAQ,GAAG,WAAW,GAAG,OAAO,CACjC;IACC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,SAAS,CAAC;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,wBAAyB,SAAQ,4BAA4B;IAC5E;;;;;;;;OAQG;IACH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,SAAS,CAoVX;yBAtVe,mBAAmB"}
@@ -95,19 +95,12 @@ const triggerSizeStyles = {
95
95
  $$css: true
96
96
  }
97
97
  };
98
- const _temp = {
99
- keTefX: "x11g1kdw",
100
- k71WvV: "xnur1sd",
101
- "$$css": true
102
- };
103
98
  const flyoutStyles = {
104
99
  popover: {
105
100
  k7Eaqz: "x5w4yej",
106
- keTefX: "x11g1kdw",
107
- k71WvV: "xnur1sd",
108
101
  $$css: true
109
102
  },
110
- popoverCustomWidth: width => [_temp, {
103
+ popoverCustomWidth: width => [{
111
104
  k7Eaqz: (typeof width === 'number' ? `${width}px` : width) != null ? "xkj4a21" : typeof width === 'number' ? `${width}px` : width,
112
105
  $$css: true
113
106
  }, {
@@ -428,6 +421,7 @@ export function DropdownMenuSubMenu(props) {
428
421
  }), {
429
422
  placement: 'end',
430
423
  alignment: 'start',
424
+ offset: spacingVars['--spacing-1'],
431
425
  xstyle: [popoverXstyle, layerAnimations.end]
432
426
  })]
433
427
  });
@@ -1 +1 @@
1
- {"version":3,"file":"renderDropdownItems.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/renderDropdownItems.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAe,SAAS,EAAC,MAAM,OAAO,CAAC;AAYnD,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,gBAAgB,CAAC;AAuCxB;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAwD1E"}
1
+ {"version":3,"file":"renderDropdownItems.d.ts","sourceRoot":"","sources":["../../src/DropdownMenu/renderDropdownItems.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAe,SAAS,EAAC,MAAM,OAAO,CAAC;AAYnD,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,gBAAgB,CAAC;AAiDxB;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAwD1E"}
@@ -20,30 +20,38 @@ const styles = {
20
20
  $$css: true
21
21
  }
22
22
  };
23
- function getItemKey(item) {
24
- return `item-${item.label}`;
23
+ function getItemKey(item, index) {
24
+ return `item-${item.id ?? index}`;
25
25
  }
26
26
  function getSectionKey(section, index) {
27
- return `section-${section.title ?? index}`;
27
+ return `section-${section.id ?? index}`;
28
28
  }
29
29
 
30
30
  /**
31
31
  * Renders one leaf row as a `DropdownMenuItem`.
32
32
  *
33
- * `items` is stripped because it selects the submenu shape rather than being an
34
- * item prop; every other field of `DropdownMenuItemData` is a
33
+ * Keyed by `item.id` when the caller supplies one, else by position. NOT by
34
+ * label: an item that reports its own result (a copy row swapping to "Copied")
35
+ * would change key mid-interaction, remounting the row and dropping keyboard
36
+ * focus. Position is the safe default because a menu's rows are usually fixed;
37
+ * a menu whose items reorder or filter needs `id` for the same reason.
38
+ *
39
+ * `items` selects the submenu shape rather than being an item prop, and `id` is
40
+ * identity for React rather than something `DropdownMenuItem` renders, so both
41
+ * are stripped. Every remaining field of `DropdownMenuItemData` is a
35
42
  * `DropdownMenuItem` prop by construction (the type is `Pick`ed from
36
43
  * `DropdownMenuItemProps`), so the data path forwards them wholesale and can't
37
44
  * silently drop a field the data API advertises.
38
45
  */
39
- function renderLeafItem(item) {
46
+ function renderLeafItem(item, index) {
40
47
  const {
41
48
  items: _submenuItems,
49
+ id: _id,
42
50
  ...itemProps
43
51
  } = item;
44
52
  return /*#__PURE__*/_jsx(DropdownMenuItem, {
45
53
  ...itemProps
46
- }, getItemKey(item));
54
+ }, getItemKey(item, index));
47
55
  }
48
56
 
49
57
  /**
@@ -83,9 +91,9 @@ export function renderDropdownItems(items) {
83
91
  label: option.label,
84
92
  isDisabled: option.isDisabled,
85
93
  children: renderDropdownItems(option.items)
86
- }, getItemKey(option)));
94
+ }, getItemKey(option, i)));
87
95
  } else {
88
- elements.push(renderLeafItem(option));
96
+ elements.push(renderLeafItem(option, i));
89
97
  }
90
98
  }
91
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAgB,MAAM,OAAO,CAAC;AAQpD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA4D5C,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,YAAgB,EAChB,SAAiB,EACjB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,+BA8CjB;yBA1De,UAAU"}
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/EmptyState/EmptyState.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAgB,MAAM,OAAO,CAAC;AAQpD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AA4D5C,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,YAAgB,EAChB,SAAiB,EACjB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,+BAwDjB;yBApEe,UAAU"}
@@ -89,28 +89,32 @@ export function EmptyState({
89
89
  ...{
90
90
  className: "x78zum5 xdt5ytf x6s0dn4 xxc7z9f"
91
91
  },
92
- children: [/*#__PURE__*/createElement(HeadingTag, {
92
+ children: [/*#__PURE__*/createElement(HeadingTag, mergeProps(themeProps('empty-state-title', {
93
+ variant: isCompact ? 'compact' : null
94
+ }), {
93
95
  0: {
94
96
  className: "x1ghz6dp xjb2p0i x18juvz8 x2mo6ok xf74fhv x1tgivj0"
95
97
  },
96
98
  1: {
97
99
  className: "x1ghz6dp xjb2p0i x2mo6ok xf74fhv x1tgivj0 xcr08ib"
98
100
  }
99
- }[!!isCompact << 0], title), description != null &&
101
+ }[!!isCompact << 0]), title), description != null &&
100
102
  /*#__PURE__*/
101
103
  // Rendered as <div> (not <p>): description accepts ReactNode and a
102
104
  // <p> cannot legally contain block children, which causes hydration
103
105
  // mismatches. The StyleX style sets margin: 0, so appearance is
104
106
  // unchanged.
105
107
  _jsx("div", {
106
- ...{
108
+ ...mergeProps(themeProps('empty-state-description', {
109
+ variant: isCompact ? 'compact' : null
110
+ }), {
107
111
  0: {
108
112
  className: "x1ghz6dp xjb2p0i xjm74w1 x1sodnla xw6l6zx xv1l7n4"
109
113
  },
110
114
  1: {
111
115
  className: "x1ghz6dp xjb2p0i x1sodnla xw6l6zx xv1l7n4 x141an7d"
112
116
  }
113
- }[!!isCompact << 0],
117
+ }[!!isCompact << 0]),
114
118
  children: description
115
119
  })]
116
120
  }), actions != null && /*#__PURE__*/_jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"useHoverCard.d.ts","sourceRoot":"","sources":["../../src/HoverCard/useHoverCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AA4C3B;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC;IAErC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE9B;;;OAGG;IACH,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEtC;;;;OAIG;IACH,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEzC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,EAAE,CACf,QAAQ,EAAE,SAAS,EACnB,KAAK,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,KAC5C,SAAS,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAyBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAyT5E"}
1
+ {"version":3,"file":"useHoverCard.d.ts","sourceRoot":"","sources":["../../src/HoverCard/useHoverCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAgC3B;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,qBAAqB,CAAC;IAErC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE9B;;;OAGG;IACH,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEtC;;;;OAIG;IACH,cAAc,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEzC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,EAAE,CACf,QAAQ,EAAE,SAAS,EACnB,KAAK,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,KAC5C,SAAS,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAyBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAiT5E"}
@@ -11,7 +11,7 @@
11
11
  * SYNC: When modified, update:
12
12
  * - /packages/core/src/HoverCard/index.ts
13
13
  */
14
- import { useCallback, useEffect, useMemo, useRef } from 'react';
14
+ import { useCallback, useEffect, useRef } from 'react';
15
15
  import * as stylex from '@stylexjs/stylex';
16
16
  import { useLayer } from "../Layer/useLayer.js";
17
17
  import { layerAnimations } from "../Layer/layerAnimations.stylex.js";
@@ -26,20 +26,6 @@ const styles = {
26
26
  kaIpWk: "x7a53xk",
27
27
  kGVxlE: "x14hfi27",
28
28
  $$css: true
29
- },
30
- marginBlock: {
31
- keoZOQ: "xcsaf9d",
32
- k1K539: "x14cgwvg",
33
- keTefX: "x1lziwak",
34
- k71WvV: "x14z9mp",
35
- $$css: true
36
- },
37
- marginInline: {
38
- keoZOQ: "xdj266r",
39
- k1K539: "xat24cr",
40
- keTefX: "x11g1kdw",
41
- k71WvV: "xnur1sd",
42
- $$css: true
43
29
  }
44
30
  };
45
31
 
@@ -100,15 +86,12 @@ export function useHoverCard(options = {}) {
100
86
  onShow,
101
87
  onHide
102
88
  } = options;
103
-
104
- // Select margin style based on placement axis
105
- const marginStyle = placement === 'above' || placement === 'below' ? styles.marginBlock : styles.marginInline;
106
89
  const layer = useLayer({
107
90
  mode: 'context',
108
91
  onShow,
109
92
  onHide
110
93
  });
111
- const popoverXstyle = useMemo(() => [styles.container, marginStyle], [marginStyle]);
94
+ const popoverXstyle = styles.container;
112
95
  const showTimeoutRef = useRef(null);
113
96
  const hideTimeoutRef = useRef(null);
114
97
  const triggerRef = useRef(null);
@@ -262,6 +245,7 @@ export function useHoverCard(options = {}) {
262
245
  const renderProps = {
263
246
  placement: renderPlacement,
264
247
  alignment: props?.alignment ?? alignment,
248
+ offset: spacingVars['--spacing-1'],
265
249
  // A named dialog when a label is provided; otherwise a group. A group
266
250
  // may validly be unnamed, an unnamed dialog may not — and hover cards
267
251
  // are non-modal, so group is honest semantics without a name.
@@ -51,6 +51,20 @@ export interface ContextRenderProps {
51
51
  * is `'custom'`.
52
52
  */
53
53
  alignment?: LayerAlignment;
54
+ /**
55
+ * Clearance between the layer and its anchor, as a CSS length (a number is
56
+ * treated as `px`). Applied along the placement axis and flip-safe, so the
57
+ * gap survives a `position-try-fallbacks` flip to the opposite side.
58
+ *
59
+ * Layers sit flush by default: the hook zeroes the UA margins so anchor
60
+ * positioning has a clean box, and clearance is a deliberate choice per
61
+ * surface. `var(--spacing-1)` is the system's standard clearance.
62
+ *
63
+ * Ignored when `positioning` is `'custom'` — that mode owns its own insets.
64
+ *
65
+ * @default 0
66
+ */
67
+ offset?: number | string;
54
68
  /**
55
69
  * ARIA role applied to the popover container (e.g. `'tooltip'`). Lets
56
70
  * consumers complete the ARIA pattern and gives test tooling a stable,