@ariakit/react-core 0.2.1 → 0.2.2

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 (74) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/cjs/__chunks/{TUFFT567.cjs → 3PYHURJV.cjs} +14 -13
  3. package/cjs/__chunks/{O4HKL5U2.cjs → 6ZHI7XFH.cjs} +11 -5
  4. package/cjs/__chunks/{XUWGEELZ.cjs → HRJZKMQQ.cjs} +6 -4
  5. package/cjs/__chunks/{BICG74YF.cjs → JPNLVNZZ.cjs} +9 -7
  6. package/cjs/__chunks/{GF4T7RQS.cjs → KEDMIM4S.cjs} +2 -2
  7. package/cjs/__chunks/{YEPQHTB5.cjs → MEVO6SEA.cjs} +7 -3
  8. package/cjs/__chunks/{VGBJOLSN.cjs → MXZHML62.cjs} +2 -2
  9. package/cjs/__chunks/{27JG67F3.cjs → PX5ZR4IF.cjs} +6 -1
  10. package/cjs/__chunks/{6TNK3LOZ.cjs → SW4NPZER.cjs} +7 -3
  11. package/cjs/__chunks/{CKE57WQN.cjs → YTRQSQYO.cjs} +5 -5
  12. package/cjs/combobox/combobox-list.cjs +3 -2
  13. package/cjs/combobox/combobox-list.d.ts +2 -1
  14. package/cjs/combobox/combobox-popover.cjs +19 -8
  15. package/cjs/composite/composite-overflow.cjs +5 -5
  16. package/cjs/dialog/dialog-backdrop.cjs +3 -3
  17. package/cjs/dialog/dialog-backdrop.d.ts +2 -2
  18. package/cjs/dialog/dialog.cjs +4 -4
  19. package/cjs/disclosure/disclosure-content.cjs +4 -2
  20. package/cjs/disclosure/disclosure-content.d.ts +23 -0
  21. package/cjs/hovercard/hovercard-anchor.cjs +2 -2
  22. package/cjs/hovercard/hovercard-store.cjs +2 -2
  23. package/cjs/hovercard/hovercard.cjs +6 -6
  24. package/cjs/menu/menu-button.cjs +2 -2
  25. package/cjs/menu/menu-list.cjs +3 -2
  26. package/cjs/menu/menu-list.d.ts +2 -1
  27. package/cjs/menu/menu-store.cjs +3 -3
  28. package/cjs/menu/menu.cjs +14 -11
  29. package/cjs/popover/popover.cjs +5 -5
  30. package/cjs/select/select-list.cjs +3 -2
  31. package/cjs/select/select-list.d.ts +2 -1
  32. package/cjs/select/select-popover.cjs +8 -8
  33. package/cjs/tab/tab-panel.cjs +2 -2
  34. package/cjs/tooltip/tooltip-anchor.cjs +2 -3
  35. package/cjs/tooltip/tooltip-store.cjs +7 -3
  36. package/cjs/tooltip/tooltip.cjs +6 -6
  37. package/cjs/tsconfig.build.tsbuildinfo +1 -1
  38. package/esm/__chunks/{BRUBRRXY.js → 5SUMII6J.js} +11 -5
  39. package/esm/__chunks/{VWIWDDTJ.js → BMIMIX2N.js} +4 -4
  40. package/esm/__chunks/{44D6W47E.js → EC5UVTWD.js} +5 -3
  41. package/esm/__chunks/{4GZHHNFX.js → K35D42HN.js} +7 -3
  42. package/esm/__chunks/{UJIZKMKY.js → K4BVBSSF.js} +1 -1
  43. package/esm/__chunks/{HJ244IIK.js → NC4VIH2L.js} +2 -2
  44. package/esm/__chunks/{WYKPGIVG.js → NRBO7PPT.js} +8 -6
  45. package/esm/__chunks/{VQ223ROI.js → Q4774GYW.js} +12 -11
  46. package/esm/__chunks/{K5R24MFH.js → QRJCFBOI.js} +7 -2
  47. package/esm/__chunks/{6JQLJMUQ.js → U5AZX35N.js} +7 -3
  48. package/esm/combobox/combobox-list.d.ts +2 -1
  49. package/esm/combobox/combobox-list.js +2 -1
  50. package/esm/combobox/combobox-popover.js +18 -7
  51. package/esm/composite/composite-overflow.js +4 -4
  52. package/esm/dialog/dialog-backdrop.d.ts +2 -2
  53. package/esm/dialog/dialog-backdrop.js +2 -2
  54. package/esm/dialog/dialog.js +3 -3
  55. package/esm/disclosure/disclosure-content.d.ts +23 -0
  56. package/esm/disclosure/disclosure-content.js +3 -1
  57. package/esm/hovercard/hovercard-anchor.js +1 -1
  58. package/esm/hovercard/hovercard-store.js +1 -1
  59. package/esm/hovercard/hovercard.js +5 -5
  60. package/esm/menu/menu-button.js +1 -1
  61. package/esm/menu/menu-list.d.ts +2 -1
  62. package/esm/menu/menu-list.js +2 -1
  63. package/esm/menu/menu-store.js +1 -1
  64. package/esm/menu/menu.js +12 -9
  65. package/esm/popover/popover.js +4 -4
  66. package/esm/select/select-list.d.ts +2 -1
  67. package/esm/select/select-list.js +2 -1
  68. package/esm/select/select-popover.js +8 -8
  69. package/esm/tab/tab-panel.js +1 -1
  70. package/esm/tooltip/tooltip-anchor.js +1 -2
  71. package/esm/tooltip/tooltip-store.js +7 -3
  72. package/esm/tooltip/tooltip.js +5 -5
  73. package/esm/tsconfig.build.tsbuildinfo +1 -1
  74. package/package.json +2 -2
@@ -7,6 +7,9 @@ import {
7
7
  import {
8
8
  useComposite
9
9
  } from "./JM74EEHT.js";
10
+ import {
11
+ isHidden
12
+ } from "./NRBO7PPT.js";
10
13
  import {
11
14
  createComponent,
12
15
  createElement,
@@ -36,13 +39,15 @@ var useSelectList = createHook(
36
39
  resetOnEscape = true,
37
40
  hideOnEnter = true,
38
41
  focusOnMove = true,
39
- composite = true
42
+ composite = true,
43
+ alwaysVisible
40
44
  } = _b, props = __objRest(_b, [
41
45
  "store",
42
46
  "resetOnEscape",
43
47
  "hideOnEnter",
44
48
  "focusOnMove",
45
- "composite"
49
+ "composite",
50
+ "alwaysVisible"
46
51
  ]);
47
52
  const ref = useRef(null);
48
53
  const id = useId(props.id);
@@ -82,7 +87,8 @@ var useSelectList = createHook(
82
87
  var _a2;
83
88
  return (_a2 = state.labelElement) == null ? void 0 : _a2.id;
84
89
  });
85
- const style = mounted ? props.style : __spreadProps(__spreadValues({}, props.style), { display: "none" });
90
+ const hidden = isHidden(mounted, props.hidden, alwaysVisible);
91
+ const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: "none" }) : props.style;
86
92
  if (composite) {
87
93
  props = __spreadValues({
88
94
  role: "listbox",
@@ -91,8 +97,8 @@ var useSelectList = createHook(
91
97
  }
92
98
  props = __spreadProps(__spreadValues({
93
99
  id,
94
- hidden: !mounted,
95
- "aria-labelledby": labelId
100
+ "aria-labelledby": labelId,
101
+ hidden
96
102
  }, props), {
97
103
  ref: useForkRef(id ? store.setContentElement : null, ref, props.ref),
98
104
  style,
@@ -5,7 +5,7 @@ import {
5
5
  } from "./X7FKJQME.js";
6
6
  import {
7
7
  usePopover
8
- } from "./UJIZKMKY.js";
8
+ } from "./K4BVBSSF.js";
9
9
  import {
10
10
  createComponent,
11
11
  createElement,
@@ -147,7 +147,7 @@ var useHovercard = createHook(
147
147
  const isEscape = event.key === "Escape" && hideOnEscapeProp(event);
148
148
  const isControl = event.key === "Control" && hideOnControlProp(event);
149
149
  if (isEscape || isControl) {
150
- store.hide();
150
+ requestAnimationFrame(store.hide);
151
151
  }
152
152
  });
153
153
  }, [store, open, hideOnEscapeProp, hideOnControlProp]);
@@ -169,7 +169,7 @@ var useHovercard = createHook(
169
169
  if (!element)
170
170
  return;
171
171
  const onMouseMove = (event) => {
172
- const { anchorElement, hideTimeout } = store.getState();
172
+ const { anchorElement, hideTimeout, timeout } = store.getState();
173
173
  const enterPoint = enterPointRef.current;
174
174
  const target = event.target;
175
175
  const anchor = anchorElement;
@@ -198,7 +198,7 @@ var useHovercard = createHook(
198
198
  hideTimeoutRef.current = window.setTimeout(() => {
199
199
  hideTimeoutRef.current = 0;
200
200
  store.hide();
201
- }, hideTimeout);
201
+ }, hideTimeout != null ? hideTimeout : timeout);
202
202
  };
203
203
  return chain(
204
204
  addGlobalEventListener("mousemove", onMouseMove, true),
@@ -6,7 +6,7 @@ import {
6
6
  } from "./R35SLIEE.js";
7
7
  import {
8
8
  useDisclosureContent
9
- } from "./WYKPGIVG.js";
9
+ } from "./NRBO7PPT.js";
10
10
  import {
11
11
  useForkRef,
12
12
  useSafeLayoutEffect
@@ -24,6 +24,7 @@ function DialogBackdrop({
24
24
  store,
25
25
  backdrop,
26
26
  backdropProps,
27
+ alwaysVisible,
27
28
  hidden
28
29
  }) {
29
30
  const ref = useRef(null);
@@ -61,8 +62,9 @@ function DialogBackdrop({
61
62
  store,
62
63
  id: void 0,
63
64
  role: "presentation",
64
- hidden,
65
- "data-backdrop": (contentElement == null ? void 0 : contentElement.id) || ""
65
+ "data-backdrop": (contentElement == null ? void 0 : contentElement.id) || "",
66
+ alwaysVisible,
67
+ hidden
66
68
  }, backdropProps), {
67
69
  ref: useForkRef(backdropProps == null ? void 0 : backdropProps.ref, ref),
68
70
  style: __spreadValues({
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  ComboboxContext
3
3
  } from "./5VGBBGF5.js";
4
+ import {
5
+ isHidden
6
+ } from "./NRBO7PPT.js";
4
7
  import {
5
8
  createComponent,
6
9
  createElement,
@@ -23,7 +26,7 @@ import { useRef } from "react";
23
26
  import { jsx } from "react/jsx-runtime";
24
27
  var useComboboxList = createHook(
25
28
  (_a) => {
26
- var _b = _a, { store } = _b, props = __objRest(_b, ["store"]);
29
+ var _b = _a, { store, alwaysVisible } = _b, props = __objRest(_b, ["store", "alwaysVisible"]);
27
30
  const ref = useRef(null);
28
31
  const id = useId(props.id);
29
32
  const onKeyDownProp = props.onKeyDown;
@@ -41,11 +44,12 @@ var useComboboxList = createHook(
41
44
  [store]
42
45
  );
43
46
  const mounted = store.useState("mounted");
44
- const style = mounted ? props.style : __spreadProps(__spreadValues({}, props.style), { display: "none" });
47
+ const hidden = isHidden(mounted, props.hidden, alwaysVisible);
48
+ const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: "none" }) : props.style;
45
49
  props = __spreadProps(__spreadValues({
46
50
  id,
47
51
  role: "listbox",
48
- hidden: !mounted
52
+ hidden
49
53
  }, props), {
50
54
  ref: useForkRef(id ? store.setContentElement : null, ref, props.ref),
51
55
  style,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useDialog
3
- } from "./VQ223ROI.js";
3
+ } from "./Q4774GYW.js";
4
4
  import {
5
5
  PopoverContext
6
6
  } from "./6GS36SYX.js";
@@ -56,13 +56,13 @@ var useHovercardAnchor = createHook(
56
56
  return;
57
57
  if (!showOnHoverProp(event))
58
58
  return;
59
- const { showTimeout } = store.getState();
59
+ const { showTimeout, timeout } = store.getState();
60
60
  showTimeoutRef.current = window.setTimeout(() => {
61
61
  showTimeoutRef.current = 0;
62
62
  if (!isMouseMoving())
63
63
  return;
64
64
  store.show();
65
- }, showTimeout);
65
+ }, showTimeout != null ? showTimeout : timeout);
66
66
  }
67
67
  );
68
68
  props = __spreadProps(__spreadValues({}, props), {
@@ -34,9 +34,12 @@ function parseCSSTime(...times) {
34
34
  return longestTime;
35
35
  }, 0);
36
36
  }
37
+ function isHidden(mounted, hidden, alwaysVisible) {
38
+ return !alwaysVisible && hidden !== false && (!mounted || !!hidden);
39
+ }
37
40
  var useDisclosureContent = createHook(
38
41
  (_a) => {
39
- var _b = _a, { store } = _b, props = __objRest(_b, ["store"]);
42
+ var _b = _a, { store, alwaysVisible } = _b, props = __objRest(_b, ["store", "alwaysVisible"]);
40
43
  const id = useId(props.id);
41
44
  const [transition, setTransition] = useState(null);
42
45
  const open = store.useState("open");
@@ -82,15 +85,13 @@ var useDisclosureContent = createHook(
82
85
  return;
83
86
  return afterTimeout(timeoutMs, store.stopAnimation);
84
87
  }, [animated, contentElement, open, transition]);
85
- const style = (
86
- // TODO: props.hidden !== true see combobox-textarea example
87
- mounted && props.hidden !== true || props.hidden === false ? props.style : __spreadProps(__spreadValues({}, props.style), { display: "none" })
88
- );
88
+ const hidden = isHidden(mounted, props.hidden, alwaysVisible);
89
+ const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: "none" }) : props.style;
89
90
  props = __spreadProps(__spreadValues({
90
91
  id,
91
92
  "data-enter": transition === "enter" ? "" : void 0,
92
93
  "data-leave": transition === "leave" ? "" : void 0,
93
- hidden: !mounted
94
+ hidden
94
95
  }, props), {
95
96
  ref: useForkRef(id ? store.setContentElement : null, props.ref),
96
97
  style
@@ -109,6 +110,7 @@ if (process.env.NODE_ENV !== "production") {
109
110
  }
110
111
 
111
112
  export {
113
+ isHidden,
112
114
  useDisclosureContent,
113
115
  DisclosureContent
114
116
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DialogBackdrop
3
- } from "./44D6W47E.js";
3
+ } from "./EC5UVTWD.js";
4
4
  import {
5
5
  disableTreeOutside
6
6
  } from "./4H6H5RRM.js";
@@ -37,8 +37,9 @@ import {
37
37
  DialogHeadingContext
38
38
  } from "./LNHZLQEK.js";
39
39
  import {
40
+ isHidden,
40
41
  useDisclosureContent
41
- } from "./WYKPGIVG.js";
42
+ } from "./NRBO7PPT.js";
42
43
  import {
43
44
  useFocusable
44
45
  } from "./K4QQOEEY.js";
@@ -152,11 +153,8 @@ var useDialog = createHook(
152
153
  const open = store.useState("open");
153
154
  const mounted = store.useState("mounted");
154
155
  const contentElement = store.useState("contentElement");
155
- const hiddenProp = props.hidden;
156
- usePreventBodyScroll(
157
- store,
158
- (mounted || hiddenProp === false) && preventBodyScroll
159
- );
156
+ const hidden = isHidden(mounted, props.hidden, props.alwaysVisible);
157
+ usePreventBodyScroll(store, preventBodyScroll && !hidden);
160
158
  useHideOnInteractOutside(store, hideOnInteractOutside);
161
159
  const { wrapElement, nestedDialogs } = useNestedDialogs(store);
162
160
  props = useWrapElement(props, wrapElement, [wrapElement]);
@@ -285,7 +283,7 @@ var useDialog = createHook(
285
283
  if (!autoFocusOnShowProp(isElementFocusable ? element : null))
286
284
  return;
287
285
  setAutoFocusEnabled(true);
288
- element.focus();
286
+ queueMicrotask(() => element.focus());
289
287
  }, [
290
288
  open,
291
289
  mayAutoFocusOnShow,
@@ -346,7 +344,7 @@ var useDialog = createHook(
346
344
  return;
347
345
  if (!isElementFocusable)
348
346
  return;
349
- element == null ? void 0 : element.focus();
347
+ queueMicrotask(() => element == null ? void 0 : element.focus());
350
348
  };
351
349
  if (!open) {
352
350
  return focusOnHide();
@@ -396,6 +394,8 @@ var useDialog = createHook(
396
394
  (element) => /* @__PURE__ */ jsx(HeadingLevel, { level: modal ? 1 : void 0, children: element }),
397
395
  [modal]
398
396
  );
397
+ const hiddenProp = props.hidden;
398
+ const alwaysVisible = props.alwaysVisible;
399
399
  props = useWrapElement(
400
400
  props,
401
401
  (element) => {
@@ -407,7 +407,8 @@ var useDialog = createHook(
407
407
  store,
408
408
  backdrop,
409
409
  backdropProps,
410
- hidden: hiddenProp
410
+ hidden: hiddenProp,
411
+ alwaysVisible
411
412
  }
412
413
  ),
413
414
  element
@@ -415,7 +416,7 @@ var useDialog = createHook(
415
416
  }
416
417
  return element;
417
418
  },
418
- [store, backdrop, backdropProps, hiddenProp]
419
+ [store, backdrop, backdropProps, hiddenProp, alwaysVisible]
419
420
  );
420
421
  const [headingId, setHeadingId] = useState();
421
422
  const [descriptionId, setDescriptionId] = useState();
@@ -3,7 +3,8 @@ import {
3
3
  usePopoverStoreProps
4
4
  } from "./5PIH3SMS.js";
5
5
  import {
6
- useStore
6
+ useStore,
7
+ useStoreProps
7
8
  } from "./AV5WE37O.js";
8
9
  import {
9
10
  __spreadValues
@@ -15,7 +16,11 @@ function useHovercardStoreOptions(props) {
15
16
  return usePopoverStoreOptions(props);
16
17
  }
17
18
  function useHovercardStoreProps(store, props) {
18
- return usePopoverStoreProps(store, props);
19
+ store = usePopoverStoreProps(store, props);
20
+ useStoreProps(store, props, "timeout");
21
+ useStoreProps(store, props, "showTimeout");
22
+ useStoreProps(store, props, "hideTimeout");
23
+ return store;
19
24
  }
20
25
  function useHovercardStore(props = {}) {
21
26
  const options = useHovercardStoreOptions(props);
@@ -8,6 +8,9 @@ import {
8
8
  import {
9
9
  useComposite
10
10
  } from "./JM74EEHT.js";
11
+ import {
12
+ isHidden
13
+ } from "./NRBO7PPT.js";
11
14
  import {
12
15
  createComponent,
13
16
  createElement,
@@ -55,7 +58,7 @@ function useAriaLabelledBy(_a) {
55
58
  }
56
59
  var useMenuList = createHook(
57
60
  (_a) => {
58
- var _b = _a, { store, composite = true } = _b, props = __objRest(_b, ["store", "composite"]);
61
+ var _b = _a, { store, alwaysVisible, composite = true } = _b, props = __objRest(_b, ["store", "alwaysVisible", "composite"]);
59
62
  const parentMenu = useContext(MenuContext);
60
63
  const parentMenuBar = useContext(MenuBarContext);
61
64
  const hasParentMenu = !!parentMenu;
@@ -129,11 +132,12 @@ var useMenuList = createHook(
129
132
  );
130
133
  const ariaLabelledBy = useAriaLabelledBy(__spreadValues({ store }, props));
131
134
  const mounted = store.useState("mounted");
132
- const style = mounted && props.hidden !== true || props.hidden === false ? props.style : __spreadProps(__spreadValues({}, props.style), { display: "none" });
135
+ const hidden = isHidden(mounted, props.hidden, alwaysVisible);
136
+ const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: "none" }) : props.style;
133
137
  props = __spreadProps(__spreadValues({
134
138
  id,
135
139
  "aria-labelledby": ariaLabelledBy,
136
- hidden: !mounted
140
+ hidden
137
141
  }, props), {
138
142
  ref: useForkRef(id ? store.setContentElement : null, props.ref),
139
143
  style,
@@ -1,3 +1,4 @@
1
+ import type { DisclosureContentOptions } from "../disclosure/disclosure-content.js";
1
2
  import type { As, Options, Props } from "../utils/types.js";
2
3
  import type { ComboboxStore } from "./combobox-store.js";
3
4
  /**
@@ -33,7 +34,7 @@ export declare const useComboboxList: import("../utils/types.js").Hook<ComboboxL
33
34
  * ```
34
35
  */
35
36
  export declare const ComboboxList: import("../utils/types.js").Component<ComboboxListOptions<"div">>;
36
- export interface ComboboxListOptions<T extends As = "div"> extends Options<T> {
37
+ export interface ComboboxListOptions<T extends As = "div"> extends Options<T>, Pick<DisclosureContentOptions, "alwaysVisible"> {
37
38
  /**
38
39
  * Object returned by the `useComboboxStore` hook.
39
40
  */
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  ComboboxList,
3
3
  useComboboxList
4
- } from "../__chunks/4GZHHNFX.js";
4
+ } from "../__chunks/K35D42HN.js";
5
5
  import "../__chunks/5VGBBGF5.js";
6
+ import "../__chunks/NRBO7PPT.js";
6
7
  import "../__chunks/U2LXZPCY.js";
7
8
  import "../__chunks/ASYR66PQ.js";
8
9
  import "../__chunks/SXC6BPOF.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  useComboboxList
3
- } from "../__chunks/4GZHHNFX.js";
3
+ } from "../__chunks/K35D42HN.js";
4
4
  import "../__chunks/5VGBBGF5.js";
5
5
  import {
6
6
  usePopover
7
- } from "../__chunks/UJIZKMKY.js";
8
- import "../__chunks/VQ223ROI.js";
9
- import "../__chunks/44D6W47E.js";
7
+ } from "../__chunks/K4BVBSSF.js";
8
+ import "../__chunks/Q4774GYW.js";
9
+ import "../__chunks/EC5UVTWD.js";
10
10
  import "../__chunks/4H6H5RRM.js";
11
11
  import "../__chunks/7A3SODQV.js";
12
12
  import "../__chunks/RBUEJWRA.js";
@@ -26,7 +26,7 @@ import "../__chunks/LDDPB3PY.js";
26
26
  import "../__chunks/COQHFAEN.js";
27
27
  import "../__chunks/LNHZLQEK.js";
28
28
  import "../__chunks/R35SLIEE.js";
29
- import "../__chunks/WYKPGIVG.js";
29
+ import "../__chunks/NRBO7PPT.js";
30
30
  import "../__chunks/6GS36SYX.js";
31
31
  import "../__chunks/K4QQOEEY.js";
32
32
  import "../__chunks/BMLNRUFQ.js";
@@ -59,11 +59,22 @@ function isController(target, ...ids) {
59
59
  }
60
60
  var useComboboxPopover = createHook(
61
61
  (_a) => {
62
- var _b = _a, { store, tabIndex, hideOnInteractOutside = true } = _b, props = __objRest(_b, ["store", "tabIndex", "hideOnInteractOutside"]);
62
+ var _b = _a, {
63
+ store,
64
+ tabIndex,
65
+ alwaysVisible,
66
+ hideOnInteractOutside = true
67
+ } = _b, props = __objRest(_b, [
68
+ "store",
69
+ "tabIndex",
70
+ "alwaysVisible",
71
+ "hideOnInteractOutside"
72
+ ]);
63
73
  const baseElement = store.useState("baseElement");
64
- props = useComboboxList(__spreadValues({ store }, props));
74
+ props = useComboboxList(__spreadValues({ store, alwaysVisible }, props));
65
75
  props = usePopover(__spreadProps(__spreadValues({
66
76
  store,
77
+ alwaysVisible,
67
78
  autoFocusOnShow: false,
68
79
  autoFocusOnHide: false,
69
80
  finalFocus: baseElement
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  usePopover
3
- } from "../__chunks/UJIZKMKY.js";
4
- import "../__chunks/VQ223ROI.js";
5
- import "../__chunks/44D6W47E.js";
3
+ } from "../__chunks/K4BVBSSF.js";
4
+ import "../__chunks/Q4774GYW.js";
5
+ import "../__chunks/EC5UVTWD.js";
6
6
  import "../__chunks/4H6H5RRM.js";
7
7
  import "../__chunks/7A3SODQV.js";
8
8
  import "../__chunks/RBUEJWRA.js";
@@ -22,7 +22,7 @@ import "../__chunks/LDDPB3PY.js";
22
22
  import "../__chunks/COQHFAEN.js";
23
23
  import "../__chunks/LNHZLQEK.js";
24
24
  import "../__chunks/R35SLIEE.js";
25
- import "../__chunks/WYKPGIVG.js";
25
+ import "../__chunks/NRBO7PPT.js";
26
26
  import "../__chunks/6GS36SYX.js";
27
27
  import "../__chunks/K4QQOEEY.js";
28
28
  import "../__chunks/BMLNRUFQ.js";
@@ -1,4 +1,4 @@
1
1
  import type { DialogProps } from "./dialog.js";
2
- type DialogBackdropProps = Pick<DialogProps, "store" | "backdrop" | "backdropProps" | "hidden">;
3
- export declare function DialogBackdrop({ store, backdrop, backdropProps, hidden, }: DialogBackdropProps): import("react/jsx-runtime").JSX.Element | null;
2
+ type DialogBackdropProps = Pick<DialogProps, "store" | "backdrop" | "backdropProps" | "alwaysVisible" | "hidden">;
3
+ export declare function DialogBackdrop({ store, backdrop, backdropProps, alwaysVisible, hidden, }: DialogBackdropProps): import("react/jsx-runtime").JSX.Element | null;
4
4
  export {};
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  DialogBackdrop
3
- } from "../__chunks/44D6W47E.js";
3
+ } from "../__chunks/EC5UVTWD.js";
4
4
  import "../__chunks/BH4YAZB2.js";
5
5
  import "../__chunks/DJESYNLE.js";
6
6
  import "../__chunks/ISPCL6N4.js";
7
7
  import "../__chunks/R35SLIEE.js";
8
- import "../__chunks/WYKPGIVG.js";
8
+ import "../__chunks/NRBO7PPT.js";
9
9
  import "../__chunks/U2LXZPCY.js";
10
10
  import "../__chunks/ASYR66PQ.js";
11
11
  import "../__chunks/SXC6BPOF.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  Dialog,
3
3
  useDialog
4
- } from "../__chunks/VQ223ROI.js";
5
- import "../__chunks/44D6W47E.js";
4
+ } from "../__chunks/Q4774GYW.js";
5
+ import "../__chunks/EC5UVTWD.js";
6
6
  import "../__chunks/4H6H5RRM.js";
7
7
  import "../__chunks/7A3SODQV.js";
8
8
  import "../__chunks/RBUEJWRA.js";
@@ -22,7 +22,7 @@ import "../__chunks/LDDPB3PY.js";
22
22
  import "../__chunks/COQHFAEN.js";
23
23
  import "../__chunks/LNHZLQEK.js";
24
24
  import "../__chunks/R35SLIEE.js";
25
- import "../__chunks/WYKPGIVG.js";
25
+ import "../__chunks/NRBO7PPT.js";
26
26
  import "../__chunks/K4QQOEEY.js";
27
27
  import "../__chunks/BMLNRUFQ.js";
28
28
  import "../__chunks/KMIAQUPF.js";
@@ -1,5 +1,6 @@
1
1
  import type { As, Options, Props } from "../utils/types.js";
2
2
  import type { DisclosureStore } from "./disclosure-store.js";
3
+ export declare function isHidden(mounted: boolean, hidden?: boolean | null, alwaysVisible?: boolean | null): boolean;
3
4
  /**
4
5
  * Returns props to create a `DislosureContent` component.
5
6
  * @see https://ariakit.org/components/disclosure
@@ -28,5 +29,27 @@ export interface DisclosureContentOptions<T extends As = "div"> extends Options<
28
29
  * Object returned by the `useDisclosureStore` hook.
29
30
  */
30
31
  store: DisclosureStore;
32
+ /**
33
+ * Determines whether the content element should remain visible even when the
34
+ * `open` state is `false`. If this prop is set to `true`, the `hidden` prop
35
+ * and the `display: none` style will not be applied, unless explicitly set
36
+ * otherwise.
37
+ *
38
+ * This prop is particularly useful when using third-party animation libraries
39
+ * such as Framer Motion or React Spring, where the element needs to be
40
+ * visible for exit animations to work.
41
+ *
42
+ * Live examples:
43
+ * - [Dialog with Framer
44
+ * Motion](https://ariakit.org/examples/dialog-framer-motion)
45
+ * - [Menu with Framer
46
+ * Motion](https://ariakit.org/examples/menu-framer-motion)
47
+ * - [Tooltip with Framer
48
+ * Motion](https://ariakit.org/examples/tooltip-framer-motion)
49
+ * - [Dialog with details &
50
+ * summary](https://ariakit.org/examples/dialog-details)
51
+ * @default false
52
+ */
53
+ alwaysVisible?: boolean;
31
54
  }
32
55
  export type DisclosureContentProps<T extends As = "div"> = Props<DisclosureContentOptions<T>>;
@@ -1,12 +1,14 @@
1
1
  import {
2
2
  DisclosureContent,
3
+ isHidden,
3
4
  useDisclosureContent
4
- } from "../__chunks/WYKPGIVG.js";
5
+ } from "../__chunks/NRBO7PPT.js";
5
6
  import "../__chunks/U2LXZPCY.js";
6
7
  import "../__chunks/ASYR66PQ.js";
7
8
  import "../__chunks/SXC6BPOF.js";
8
9
  import "../__chunks/4BKCJXBM.js";
9
10
  export {
10
11
  DisclosureContent,
12
+ isHidden,
11
13
  useDisclosureContent
12
14
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HovercardAnchor,
3
3
  useHovercardAnchor
4
- } from "../__chunks/HJ244IIK.js";
4
+ } from "../__chunks/NC4VIH2L.js";
5
5
  import "../__chunks/K4QQOEEY.js";
6
6
  import "../__chunks/BMLNRUFQ.js";
7
7
  import "../__chunks/U2LXZPCY.js";
@@ -2,7 +2,7 @@ import {
2
2
  useHovercardStore,
3
3
  useHovercardStoreOptions,
4
4
  useHovercardStoreProps
5
- } from "../__chunks/K5R24MFH.js";
5
+ } from "../__chunks/QRJCFBOI.js";
6
6
  import "../__chunks/5PIH3SMS.js";
7
7
  import "../__chunks/OBNQHP6V.js";
8
8
  import "../__chunks/HN4VMOUI.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  Hovercard,
3
3
  useHovercard
4
- } from "../__chunks/VWIWDDTJ.js";
4
+ } from "../__chunks/BMIMIX2N.js";
5
5
  import "../__chunks/X7FKJQME.js";
6
- import "../__chunks/UJIZKMKY.js";
7
- import "../__chunks/VQ223ROI.js";
8
- import "../__chunks/44D6W47E.js";
6
+ import "../__chunks/K4BVBSSF.js";
7
+ import "../__chunks/Q4774GYW.js";
8
+ import "../__chunks/EC5UVTWD.js";
9
9
  import "../__chunks/4H6H5RRM.js";
10
10
  import "../__chunks/7A3SODQV.js";
11
11
  import "../__chunks/RBUEJWRA.js";
@@ -25,7 +25,7 @@ import "../__chunks/LDDPB3PY.js";
25
25
  import "../__chunks/COQHFAEN.js";
26
26
  import "../__chunks/LNHZLQEK.js";
27
27
  import "../__chunks/R35SLIEE.js";
28
- import "../__chunks/WYKPGIVG.js";
28
+ import "../__chunks/NRBO7PPT.js";
29
29
  import "../__chunks/6GS36SYX.js";
30
30
  import "../__chunks/K4QQOEEY.js";
31
31
  import "../__chunks/BMLNRUFQ.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "../__chunks/GRNO2YNE.js";
18
18
  import {
19
19
  useHovercardAnchor
20
- } from "../__chunks/HJ244IIK.js";
20
+ } from "../__chunks/NC4VIH2L.js";
21
21
  import "../__chunks/5KLYDORO.js";
22
22
  import "../__chunks/OXPV2NBK.js";
23
23
  import "../__chunks/Z3X3QN6P.js";
@@ -1,5 +1,6 @@
1
1
  import type { CompositeTypeaheadOptions } from "../composite/composite-typeahead.js";
2
2
  import type { CompositeOptions } from "../composite/composite.js";
3
+ import type { DisclosureContentOptions } from "../disclosure/disclosure-content.js";
3
4
  import type { As, Props } from "../utils/types.js";
4
5
  import type { MenuStore } from "./menu-store.js";
5
6
  /**
@@ -31,7 +32,7 @@ export declare const useMenuList: import("../utils/types.js").Hook<MenuListOptio
31
32
  * ```
32
33
  */
33
34
  export declare const MenuList: import("../utils/types.js").Component<MenuListOptions<"div">>;
34
- export interface MenuListOptions<T extends As = "div"> extends CompositeOptions<T>, CompositeTypeaheadOptions<T> {
35
+ export interface MenuListOptions<T extends As = "div"> extends CompositeOptions<T>, CompositeTypeaheadOptions<T>, Pick<DisclosureContentOptions, "alwaysVisible"> {
35
36
  /**
36
37
  * Object returned by the `useMenuStore` hook.
37
38
  */
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  MenuList,
3
3
  useMenuList
4
- } from "../__chunks/6JQLJMUQ.js";
4
+ } from "../__chunks/U5AZX35N.js";
5
5
  import "../__chunks/HVBRRKV4.js";
6
6
  import "../__chunks/GRNO2YNE.js";
7
7
  import "../__chunks/JM74EEHT.js";
8
8
  import "../__chunks/OXPV2NBK.js";
9
9
  import "../__chunks/Z3X3QN6P.js";
10
+ import "../__chunks/NRBO7PPT.js";
10
11
  import "../__chunks/K4QQOEEY.js";
11
12
  import "../__chunks/BMLNRUFQ.js";
12
13
  import "../__chunks/U2LXZPCY.js";
@@ -10,7 +10,7 @@ import "../__chunks/MEYEPL2D.js";
10
10
  import {
11
11
  useHovercardStoreOptions,
12
12
  useHovercardStoreProps
13
- } from "../__chunks/K5R24MFH.js";
13
+ } from "../__chunks/QRJCFBOI.js";
14
14
  import "../__chunks/5PIH3SMS.js";
15
15
  import "../__chunks/OBNQHP6V.js";
16
16
  import "../__chunks/HN4VMOUI.js";