@ariakit/react-core 0.1.7 → 0.2.0

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 (158) hide show
  1. package/CHANGELOG.md +108 -0
  2. package/cjs/__chunks/{XFZ3MEQZ.cjs → 27JG67F3.cjs} +3 -3
  3. package/cjs/__chunks/{ASQZCUUA.cjs → 4SZYU2PD.cjs} +2 -2
  4. package/cjs/__chunks/5P6HRGY6.cjs +21 -0
  5. package/cjs/__chunks/{DCDTT7UY.cjs → A6ZSQXNQ.cjs} +2 -2
  6. package/cjs/__chunks/{QXXZLOZG.cjs → D3EUPD6P.cjs} +22 -41
  7. package/cjs/__chunks/{EEXWIKOB.cjs → GOXUG4RX.cjs} +41 -53
  8. package/cjs/__chunks/{RHO5OVPE.cjs → GRL5KGV3.cjs} +2 -2
  9. package/cjs/__chunks/MHL3EECX.cjs +363 -0
  10. package/cjs/__chunks/{AUDANYMJ.cjs → W2XKIB23.cjs} +1 -20
  11. package/cjs/__chunks/{PFD4TS6B.cjs → WWDX5YPG.cjs} +28 -15
  12. package/cjs/combobox/combobox-item.cjs +1 -1
  13. package/cjs/combobox/combobox-popover.cjs +12 -11
  14. package/cjs/combobox/combobox-store.cjs +3 -3
  15. package/cjs/combobox/combobox-store.d.ts +0 -7
  16. package/cjs/combobox/combobox.cjs +3 -3
  17. package/cjs/composite/composite-item.cjs +1 -1
  18. package/cjs/composite/composite-overflow-disclosure.cjs +5 -5
  19. package/cjs/composite/composite-overflow-store.cjs +3 -3
  20. package/cjs/composite/composite-overflow-store.d.ts +1 -13
  21. package/cjs/composite/composite-overflow.cjs +12 -11
  22. package/cjs/composite/composite.cjs +3 -3
  23. package/cjs/dialog/dialog-backdrop.cjs +6 -3
  24. package/cjs/dialog/dialog-backdrop.d.ts +2 -5
  25. package/cjs/dialog/dialog-dismiss.cjs +1 -1
  26. package/cjs/dialog/dialog.cjs +11 -10
  27. package/cjs/dialog/dialog.d.ts +21 -8
  28. package/cjs/dialog/utils/is-backdrop.cjs +21 -0
  29. package/cjs/dialog/utils/is-backdrop.d.ts +1 -0
  30. package/cjs/form/form-radio.cjs +1 -1
  31. package/cjs/heading/heading-level.d.ts +1 -1
  32. package/cjs/hovercard/hovercard-dismiss.cjs +1 -1
  33. package/cjs/hovercard/hovercard-store.cjs +3 -3
  34. package/cjs/hovercard/hovercard-store.d.ts +1 -13
  35. package/cjs/hovercard/hovercard.cjs +13 -12
  36. package/cjs/menu/menu-bar.cjs +3 -3
  37. package/cjs/menu/menu-button.cjs +8 -8
  38. package/cjs/menu/menu-dismiss.cjs +1 -1
  39. package/cjs/menu/menu-item-checkbox.cjs +1 -1
  40. package/cjs/menu/menu-item-radio.cjs +1 -1
  41. package/cjs/menu/menu-item.cjs +1 -1
  42. package/cjs/menu/menu-list.cjs +4 -4
  43. package/cjs/menu/menu-store.cjs +7 -7
  44. package/cjs/menu/menu-store.d.ts +0 -7
  45. package/cjs/menu/menu.cjs +21 -20
  46. package/cjs/popover/popover-disclosure.cjs +4 -4
  47. package/cjs/popover/popover-dismiss.cjs +1 -1
  48. package/cjs/popover/popover-store.cjs +2 -2
  49. package/cjs/popover/popover-store.d.ts +1 -13
  50. package/cjs/popover/popover.cjs +12 -11
  51. package/cjs/popover/popover.d.ts +96 -0
  52. package/cjs/portal/portal.cjs +2 -2
  53. package/cjs/radio/radio-group.cjs +3 -3
  54. package/cjs/radio/radio.cjs +1 -1
  55. package/cjs/role/role.cjs +3 -14
  56. package/cjs/select/select-item.cjs +1 -1
  57. package/cjs/select/select-list.cjs +4 -4
  58. package/cjs/select/select-popover.cjs +21 -20
  59. package/cjs/select/select-store.cjs +3 -3
  60. package/cjs/select/select-store.d.ts +0 -7
  61. package/cjs/select/select.cjs +5 -5
  62. package/cjs/tab/tab-list.cjs +3 -3
  63. package/cjs/tab/tab-panel.cjs +3 -3
  64. package/cjs/tab/tab.cjs +1 -1
  65. package/cjs/toolbar/toolbar-container.cjs +1 -1
  66. package/cjs/toolbar/toolbar-input.cjs +1 -1
  67. package/cjs/toolbar/toolbar-item.cjs +1 -1
  68. package/cjs/toolbar/toolbar.cjs +3 -3
  69. package/cjs/tooltip/tooltip-anchor.cjs +58 -28
  70. package/cjs/tooltip/tooltip-anchor.d.ts +2 -18
  71. package/cjs/tooltip/tooltip-store.cjs +4 -3
  72. package/cjs/tooltip/tooltip-store.d.ts +5 -17
  73. package/cjs/tooltip/tooltip.cjs +66 -67
  74. package/cjs/tooltip/tooltip.d.ts +6 -25
  75. package/cjs/tsconfig.build.tsbuildinfo +1 -1
  76. package/dialog/utils/is-backdrop/package.json +7 -0
  77. package/esm/__chunks/{USCWE5QL.js → 2CA5JWPW.js} +28 -15
  78. package/esm/__chunks/5PIH3SMS.js +35 -0
  79. package/esm/__chunks/{PZK3B6LX.js → 776K5FXB.js} +1 -1
  80. package/esm/__chunks/{DQSQP4IL.js → GDDVBILZ.js} +1 -1
  81. package/esm/__chunks/{3L2YBPR3.js → HJWYYQGA.js} +1 -1
  82. package/esm/__chunks/{3FKA4P4C.js → K5R24MFH.js} +1 -1
  83. package/esm/__chunks/MLEIJKSM.js +363 -0
  84. package/esm/__chunks/{JXNLCNWG.js → MR75RQGW.js} +25 -44
  85. package/esm/__chunks/{TCX5FQUL.js → NAG6UD2X.js} +43 -55
  86. package/esm/__chunks/XIACQCPS.js +21 -0
  87. package/esm/combobox/combobox-item.js +1 -1
  88. package/esm/combobox/combobox-popover.js +11 -10
  89. package/esm/combobox/combobox-store.d.ts +0 -7
  90. package/esm/combobox/combobox-store.js +1 -1
  91. package/esm/combobox/combobox.js +2 -2
  92. package/esm/composite/composite-item.js +1 -1
  93. package/esm/composite/composite-overflow-disclosure.js +4 -4
  94. package/esm/composite/composite-overflow-store.d.ts +1 -13
  95. package/esm/composite/composite-overflow-store.js +1 -1
  96. package/esm/composite/composite-overflow.js +11 -10
  97. package/esm/composite/composite.js +2 -2
  98. package/esm/dialog/dialog-backdrop.d.ts +2 -5
  99. package/esm/dialog/dialog-backdrop.js +5 -2
  100. package/esm/dialog/dialog-dismiss.js +1 -1
  101. package/esm/dialog/dialog.d.ts +21 -8
  102. package/esm/dialog/dialog.js +10 -9
  103. package/esm/dialog/utils/is-backdrop.d.ts +1 -0
  104. package/esm/dialog/utils/is-backdrop.js +21 -0
  105. package/esm/form/form-radio.js +1 -1
  106. package/esm/heading/heading-level.d.ts +1 -1
  107. package/esm/hovercard/hovercard-dismiss.js +1 -1
  108. package/esm/hovercard/hovercard-store.d.ts +1 -13
  109. package/esm/hovercard/hovercard-store.js +2 -2
  110. package/esm/hovercard/hovercard.js +12 -11
  111. package/esm/menu/menu-bar.js +2 -2
  112. package/esm/menu/menu-button.js +7 -7
  113. package/esm/menu/menu-dismiss.js +1 -1
  114. package/esm/menu/menu-item-checkbox.js +1 -1
  115. package/esm/menu/menu-item-radio.js +1 -1
  116. package/esm/menu/menu-item.js +1 -1
  117. package/esm/menu/menu-list.js +3 -3
  118. package/esm/menu/menu-store.d.ts +0 -7
  119. package/esm/menu/menu-store.js +5 -5
  120. package/esm/menu/menu.js +20 -19
  121. package/esm/popover/popover-disclosure.js +3 -3
  122. package/esm/popover/popover-dismiss.js +1 -1
  123. package/esm/popover/popover-store.d.ts +1 -13
  124. package/esm/popover/popover-store.js +1 -1
  125. package/esm/popover/popover.d.ts +96 -0
  126. package/esm/popover/popover.js +11 -10
  127. package/esm/portal/portal.js +1 -1
  128. package/esm/radio/radio-group.js +2 -2
  129. package/esm/radio/radio.js +1 -1
  130. package/esm/role/role.js +4 -15
  131. package/esm/select/select-item.js +1 -1
  132. package/esm/select/select-list.js +3 -3
  133. package/esm/select/select-popover.js +19 -18
  134. package/esm/select/select-store.d.ts +0 -7
  135. package/esm/select/select-store.js +1 -1
  136. package/esm/select/select.js +4 -4
  137. package/esm/tab/tab-list.js +2 -2
  138. package/esm/tab/tab-panel.js +3 -3
  139. package/esm/tab/tab.js +1 -1
  140. package/esm/toolbar/toolbar-container.js +1 -1
  141. package/esm/toolbar/toolbar-input.js +1 -1
  142. package/esm/toolbar/toolbar-item.js +1 -1
  143. package/esm/toolbar/toolbar.js +2 -2
  144. package/esm/tooltip/tooltip-anchor.d.ts +2 -18
  145. package/esm/tooltip/tooltip-anchor.js +59 -29
  146. package/esm/tooltip/tooltip-store.d.ts +5 -17
  147. package/esm/tooltip/tooltip-store.js +6 -5
  148. package/esm/tooltip/tooltip.d.ts +6 -25
  149. package/esm/tooltip/tooltip.js +67 -68
  150. package/esm/tsconfig.build.tsbuildinfo +1 -1
  151. package/package.json +7 -2
  152. package/cjs/__chunks/FU76FHC2.cjs +0 -125
  153. package/esm/__chunks/RVIGSXKO.js +0 -125
  154. package/esm/__chunks/SHGWT5HV.js +0 -54
  155. package/cjs/__chunks/{OV363CW6.cjs → BDJYHP43.cjs} +2 -2
  156. package/cjs/__chunks/{5I6IQHKQ.cjs → BIPONQXE.cjs} +2 -2
  157. package/esm/__chunks/{OY5YT7OV.js → RTOWJJVI.js} +3 -3
  158. package/esm/__chunks/{6O3TZMB4.js → U2KSDJ3W.js} +3 -3
@@ -1,6 +1,12 @@
1
1
  import {
2
2
  DialogBackdrop
3
- } from "./JXNLCNWG.js";
3
+ } from "./MR75RQGW.js";
4
+ import {
5
+ disableTreeOutside
6
+ } from "./4H6H5RRM.js";
7
+ import {
8
+ disableAccessibilityTreeOutside
9
+ } from "./7A3SODQV.js";
4
10
  import {
5
11
  usePreventBodyScroll
6
12
  } from "./RBUEJWRA.js";
@@ -16,32 +22,26 @@ import {
16
22
  import {
17
23
  markTreeOutside
18
24
  } from "./BH4YAZB2.js";
19
- import {
20
- disableTreeOutside
21
- } from "./4H6H5RRM.js";
22
- import {
23
- disableAccessibilityTreeOutside
24
- } from "./7A3SODQV.js";
25
25
  import {
26
26
  useFocusableContainer
27
27
  } from "./6WVG5KFF.js";
28
28
  import {
29
29
  HeadingLevel
30
30
  } from "./6OMX4H3W.js";
31
+ import {
32
+ usePortal
33
+ } from "./2CA5JWPW.js";
31
34
  import {
32
35
  DialogContext,
33
36
  DialogDescriptionContext,
34
37
  DialogHeadingContext
35
38
  } from "./LNHZLQEK.js";
36
- import {
37
- useFocusable
38
- } from "./AGWM73EZ.js";
39
- import {
40
- usePortal
41
- } from "./USCWE5QL.js";
42
39
  import {
43
40
  useDisclosureContent
44
41
  } from "./6AJCHLAV.js";
42
+ import {
43
+ useFocusable
44
+ } from "./AGWM73EZ.js";
45
45
  import {
46
46
  createComponent,
47
47
  createElement,
@@ -82,22 +82,14 @@ import {
82
82
  } from "@ariakit/core/utils/focus";
83
83
  import { chain } from "@ariakit/core/utils/misc";
84
84
  import { isSafari } from "@ariakit/core/utils/platform";
85
- import { jsx } from "react/jsx-runtime";
85
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
86
86
  var isSafariBrowser = isSafari();
87
- function isBackdrop(dialog, element) {
88
- const id = dialog.id;
89
- if (!id)
90
- return;
91
- return element.getAttribute("data-backdrop") === id;
92
- }
93
87
  function isAlreadyFocusingAnotherElement(dialog) {
94
88
  const activeElement = getActiveElement();
95
89
  if (!activeElement)
96
90
  return false;
97
91
  if (contains(dialog, activeElement))
98
92
  return false;
99
- if (isBackdrop(dialog, activeElement))
100
- return false;
101
93
  if (activeElement.hasAttribute("data-dialog"))
102
94
  return false;
103
95
  if (isFocusable(activeElement))
@@ -160,11 +152,15 @@ var useDialog = createHook(
160
152
  const open = store.useState("open");
161
153
  const mounted = store.useState("mounted");
162
154
  const contentElement = store.useState("contentElement");
163
- usePreventBodyScroll(store, mounted && preventBodyScroll);
155
+ const hiddenProp = props.hidden;
156
+ usePreventBodyScroll(
157
+ store,
158
+ (mounted || hiddenProp === false) && preventBodyScroll
159
+ );
164
160
  useHideOnInteractOutside(store, hideOnInteractOutside);
165
161
  const { wrapElement, nestedDialogs } = useNestedDialogs(store);
166
162
  props = useWrapElement(props, wrapElement, [wrapElement]);
167
- useEffect(() => {
163
+ useSafeLayoutEffect(() => {
168
164
  if (!open)
169
165
  return;
170
166
  const dialog = ref.current;
@@ -285,7 +281,8 @@ var useDialog = createHook(
285
281
  // receives focus.
286
282
  getFirstTabbableIn(contentElement, true, portal && preserveTabOrder) || // Finally, we fallback to the dialog element itself.
287
283
  contentElement;
288
- if (!autoFocusOnShowProp(element))
284
+ const isElementFocusable = isFocusable(element);
285
+ if (!autoFocusOnShowProp(isElementFocusable ? element : null))
289
286
  return;
290
287
  setAutoFocusEnabled(true);
291
288
  element.focus();
@@ -321,9 +318,7 @@ var useDialog = createHook(
321
318
  return;
322
319
  const { disclosureElement } = store.getState();
323
320
  let element = getElementFromProp(finalFocus) || disclosureElement;
324
- if (!element)
325
- return;
326
- if (element.id) {
321
+ if (element == null ? void 0 : element.id) {
327
322
  const doc = getDocument(element);
328
323
  const selector = `[aria-activedescendant="${element.id}"]`;
329
324
  const composite = doc.querySelector(selector);
@@ -331,7 +326,7 @@ var useDialog = createHook(
331
326
  element = composite;
332
327
  }
333
328
  }
334
- if (!isFocusable(element)) {
329
+ if (element && !isFocusable(element)) {
335
330
  const maybeParentDialog = closest(element, "[data-dialog]");
336
331
  if (maybeParentDialog && maybeParentDialog.id) {
337
332
  const doc = getDocument(maybeParentDialog);
@@ -342,15 +337,16 @@ var useDialog = createHook(
342
337
  }
343
338
  }
344
339
  }
345
- if (!isFocusable(element)) {
346
- if (!retry)
347
- return;
340
+ const isElementFocusable = element && isFocusable(element);
341
+ if (!isElementFocusable && retry) {
348
342
  requestAnimationFrame(() => focusOnHide(false));
349
343
  return;
350
344
  }
351
- if (!autoFocusOnHideProp(element))
345
+ if (!autoFocusOnHideProp(isElementFocusable ? element : null))
346
+ return;
347
+ if (!isElementFocusable)
352
348
  return;
353
- element.focus();
349
+ element == null ? void 0 : element.focus();
354
350
  };
355
351
  if (!open) {
356
352
  return focusOnHide();
@@ -400,34 +396,26 @@ var useDialog = createHook(
400
396
  (element) => /* @__PURE__ */ jsx(HeadingLevel, { level: modal ? 1 : void 0, children: element }),
401
397
  [modal]
402
398
  );
403
- const hiddenProp = props.hidden;
404
399
  props = useWrapElement(
405
400
  props,
406
401
  (element) => {
407
402
  if (backdrop) {
408
- return /* @__PURE__ */ jsx(
409
- DialogBackdrop,
410
- {
411
- store,
412
- backdrop,
413
- backdropProps,
414
- hideOnInteractOutside,
415
- hideOnEscape,
416
- hidden: hiddenProp,
417
- children: element
418
- }
419
- );
403
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
404
+ backdrop && /* @__PURE__ */ jsx(
405
+ DialogBackdrop,
406
+ {
407
+ store,
408
+ backdrop,
409
+ backdropProps,
410
+ hidden: hiddenProp
411
+ }
412
+ ),
413
+ element
414
+ ] });
420
415
  }
421
416
  return element;
422
417
  },
423
- [
424
- store,
425
- backdrop,
426
- backdropProps,
427
- hideOnInteractOutside,
428
- hideOnEscape,
429
- hiddenProp
430
- ]
418
+ [store, backdrop, backdropProps, hiddenProp]
431
419
  );
432
420
  const [headingId, setHeadingId] = useState();
433
421
  const [descriptionId, setDescriptionId] = useState();
@@ -0,0 +1,21 @@
1
+ import {
2
+ createComponent,
3
+ createElement,
4
+ createHook
5
+ } from "./5ETIGB6O.js";
6
+
7
+ // src/role/role.ts
8
+ var useRole = createHook((props) => {
9
+ return props;
10
+ });
11
+ var Role = createComponent((props) => {
12
+ return createElement("div", props);
13
+ });
14
+ if (process.env.NODE_ENV !== "production") {
15
+ Role.displayName = "Role";
16
+ }
17
+
18
+ export {
19
+ useRole,
20
+ Role
21
+ };
@@ -12,9 +12,9 @@ import "../__chunks/4QNHBDVS.js";
12
12
  import "../__chunks/X7UZWWYG.js";
13
13
  import "../__chunks/T3DJZG63.js";
14
14
  import "../__chunks/OXPV2NBK.js";
15
+ import "../__chunks/Z3X3QN6P.js";
15
16
  import "../__chunks/AGWM73EZ.js";
16
17
  import "../__chunks/BMLNRUFQ.js";
17
- import "../__chunks/Z3X3QN6P.js";
18
18
  import {
19
19
  createElement,
20
20
  createHook,
@@ -4,31 +4,32 @@ import {
4
4
  import "../__chunks/5VGBBGF5.js";
5
5
  import {
6
6
  usePopover
7
- } from "../__chunks/RVIGSXKO.js";
8
- import "../__chunks/TCX5FQUL.js";
9
- import "../__chunks/JXNLCNWG.js";
7
+ } from "../__chunks/MLEIJKSM.js";
8
+ import "../__chunks/NAG6UD2X.js";
9
+ import "../__chunks/MR75RQGW.js";
10
+ import "../__chunks/4H6H5RRM.js";
11
+ import "../__chunks/7A3SODQV.js";
10
12
  import "../__chunks/RBUEJWRA.js";
11
13
  import "../__chunks/T3WBUAHU.js";
12
14
  import "../__chunks/KUXENZYT.js";
15
+ import "../__chunks/KOVUJERF.js";
13
16
  import "../__chunks/62DFK33R.js";
14
17
  import "../__chunks/BH4YAZB2.js";
15
- import "../__chunks/4H6H5RRM.js";
16
- import "../__chunks/7A3SODQV.js";
17
- import "../__chunks/KOVUJERF.js";
18
18
  import "../__chunks/DJESYNLE.js";
19
19
  import "../__chunks/6WVG5KFF.js";
20
20
  import "../__chunks/ISPCL6N4.js";
21
21
  import "../__chunks/7JNF6I52.js";
22
22
  import "../__chunks/6OMX4H3W.js";
23
+ import "../__chunks/2CA5JWPW.js";
24
+ import "../__chunks/DIO64N2C.js";
25
+ import "../__chunks/LDDPB3PY.js";
23
26
  import "../__chunks/COQHFAEN.js";
24
27
  import "../__chunks/LNHZLQEK.js";
28
+ import "../__chunks/XIACQCPS.js";
29
+ import "../__chunks/6AJCHLAV.js";
25
30
  import "../__chunks/6GS36SYX.js";
26
31
  import "../__chunks/AGWM73EZ.js";
27
32
  import "../__chunks/BMLNRUFQ.js";
28
- import "../__chunks/USCWE5QL.js";
29
- import "../__chunks/DIO64N2C.js";
30
- import "../__chunks/LDDPB3PY.js";
31
- import "../__chunks/6AJCHLAV.js";
32
33
  import "../__chunks/JQEVJM46.js";
33
34
  import {
34
35
  createComponent,
@@ -3,13 +3,6 @@ import type { CompositeStoreFunctions, CompositeStoreOptions, CompositeStoreStat
3
3
  import type { PopoverStoreFunctions, PopoverStoreOptions, PopoverStoreState } from "../popover/popover-store.js";
4
4
  import type { Store } from "../utils/store.js";
5
5
  export declare function useComboboxStoreOptions(props: ComboboxStoreProps): {
6
- getAnchorRect: ((anchor: HTMLElement | null) => {
7
- x?: number | undefined;
8
- y?: number | undefined;
9
- width?: number | undefined;
10
- height?: number | undefined;
11
- } | null) | undefined;
12
- renderCallback: ((props: import("@ariakit/core/popover/popover-store").PopoverStoreRenderCallbackProps) => void | (() => void)) | undefined;
13
6
  setOpen?: ((open: boolean) => void) | undefined;
14
7
  defaultOpen?: boolean | undefined;
15
8
  open?: boolean | undefined;
@@ -6,7 +6,7 @@ import "../__chunks/MEYEPL2D.js";
6
6
  import {
7
7
  usePopoverStoreOptions,
8
8
  usePopoverStoreProps
9
- } from "../__chunks/SHGWT5HV.js";
9
+ } from "../__chunks/5PIH3SMS.js";
10
10
  import "../__chunks/OBNQHP6V.js";
11
11
  import "../__chunks/HN4VMOUI.js";
12
12
  import {
@@ -3,11 +3,11 @@ import {
3
3
  } from "../__chunks/D6NPK2DL.js";
4
4
  import {
5
5
  useComposite
6
- } from "../__chunks/OY5YT7OV.js";
6
+ } from "../__chunks/RTOWJJVI.js";
7
7
  import "../__chunks/OXPV2NBK.js";
8
+ import "../__chunks/Z3X3QN6P.js";
8
9
  import "../__chunks/AGWM73EZ.js";
9
10
  import "../__chunks/BMLNRUFQ.js";
10
- import "../__chunks/Z3X3QN6P.js";
11
11
  import {
12
12
  createComponent,
13
13
  createElement,
@@ -6,9 +6,9 @@ import "../__chunks/4QNHBDVS.js";
6
6
  import "../__chunks/X7UZWWYG.js";
7
7
  import "../__chunks/T3DJZG63.js";
8
8
  import "../__chunks/OXPV2NBK.js";
9
+ import "../__chunks/Z3X3QN6P.js";
9
10
  import "../__chunks/AGWM73EZ.js";
10
11
  import "../__chunks/BMLNRUFQ.js";
11
- import "../__chunks/Z3X3QN6P.js";
12
12
  import "../__chunks/5ETIGB6O.js";
13
13
  import "../__chunks/AV5WE37O.js";
14
14
  import "../__chunks/ASYR66PQ.js";
@@ -1,11 +1,10 @@
1
1
  import {
2
2
  usePopoverDisclosure
3
- } from "../__chunks/6O3TZMB4.js";
3
+ } from "../__chunks/U2KSDJ3W.js";
4
4
  import "../__chunks/LSTZ5Q72.js";
5
5
  import "../__chunks/24P2K6AU.js";
6
- import "../__chunks/OQUXG6FE.js";
7
- import "../__chunks/6GS36SYX.js";
8
6
  import "../__chunks/D6NPK2DL.js";
7
+ import "../__chunks/OQUXG6FE.js";
9
8
  import {
10
9
  useCompositeItem
11
10
  } from "../__chunks/M32DI6TL.js";
@@ -13,9 +12,10 @@ import "../__chunks/4QNHBDVS.js";
13
12
  import "../__chunks/X7UZWWYG.js";
14
13
  import "../__chunks/T3DJZG63.js";
15
14
  import "../__chunks/OXPV2NBK.js";
15
+ import "../__chunks/Z3X3QN6P.js";
16
+ import "../__chunks/6GS36SYX.js";
16
17
  import "../__chunks/AGWM73EZ.js";
17
18
  import "../__chunks/BMLNRUFQ.js";
18
- import "../__chunks/Z3X3QN6P.js";
19
19
  import {
20
20
  createComponent,
21
21
  createElement,
@@ -1,19 +1,7 @@
1
1
  import * as Core from "@ariakit/core/composite/composite-overflow-store";
2
2
  import type { PopoverStoreFunctions, PopoverStoreOptions, PopoverStoreState } from "../popover/popover-store.js";
3
3
  import type { Store } from "../utils/store.js";
4
- export declare function useCompositeOverflowStoreOptions(props: CompositeOverflowStoreProps): {
5
- getAnchorRect: ((anchor: HTMLElement | null) => {
6
- x?: number | undefined;
7
- y?: number | undefined;
8
- width?: number | undefined;
9
- height?: number | undefined;
10
- } | null) | undefined;
11
- renderCallback: ((props: import("@ariakit/core/popover/popover-store").PopoverStoreRenderCallbackProps) => void | (() => void)) | undefined;
12
- setOpen?: ((open: boolean) => void) | undefined;
13
- defaultOpen?: boolean | undefined;
14
- open?: boolean | undefined;
15
- animated?: number | boolean | undefined;
16
- };
4
+ export declare function useCompositeOverflowStoreOptions(props: CompositeOverflowStoreProps): Partial<import("../disclosure/disclosure-store.js").DisclosureStoreOptions>;
17
5
  export declare function useCompositeOverflowStoreProps<T extends CompositeOverflowStore>(store: T, props: CompositeOverflowStoreProps): T;
18
6
  /**
19
7
  * Creates a composite overflow store.
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  usePopoverStoreOptions,
3
3
  usePopoverStoreProps
4
- } from "../__chunks/SHGWT5HV.js";
4
+ } from "../__chunks/5PIH3SMS.js";
5
5
  import "../__chunks/OBNQHP6V.js";
6
6
  import "../__chunks/HN4VMOUI.js";
7
7
  import {
@@ -1,30 +1,31 @@
1
1
  import {
2
2
  usePopover
3
- } from "../__chunks/RVIGSXKO.js";
4
- import "../__chunks/TCX5FQUL.js";
5
- import "../__chunks/JXNLCNWG.js";
3
+ } from "../__chunks/MLEIJKSM.js";
4
+ import "../__chunks/NAG6UD2X.js";
5
+ import "../__chunks/MR75RQGW.js";
6
+ import "../__chunks/4H6H5RRM.js";
7
+ import "../__chunks/7A3SODQV.js";
6
8
  import "../__chunks/RBUEJWRA.js";
7
9
  import "../__chunks/T3WBUAHU.js";
8
10
  import "../__chunks/KUXENZYT.js";
11
+ import "../__chunks/KOVUJERF.js";
9
12
  import "../__chunks/62DFK33R.js";
10
13
  import "../__chunks/BH4YAZB2.js";
11
- import "../__chunks/4H6H5RRM.js";
12
- import "../__chunks/7A3SODQV.js";
13
- import "../__chunks/KOVUJERF.js";
14
14
  import "../__chunks/DJESYNLE.js";
15
15
  import "../__chunks/6WVG5KFF.js";
16
16
  import "../__chunks/ISPCL6N4.js";
17
17
  import "../__chunks/7JNF6I52.js";
18
18
  import "../__chunks/6OMX4H3W.js";
19
+ import "../__chunks/2CA5JWPW.js";
20
+ import "../__chunks/DIO64N2C.js";
21
+ import "../__chunks/LDDPB3PY.js";
19
22
  import "../__chunks/COQHFAEN.js";
20
23
  import "../__chunks/LNHZLQEK.js";
24
+ import "../__chunks/XIACQCPS.js";
25
+ import "../__chunks/6AJCHLAV.js";
21
26
  import "../__chunks/6GS36SYX.js";
22
27
  import "../__chunks/AGWM73EZ.js";
23
28
  import "../__chunks/BMLNRUFQ.js";
24
- import "../__chunks/USCWE5QL.js";
25
- import "../__chunks/DIO64N2C.js";
26
- import "../__chunks/LDDPB3PY.js";
27
- import "../__chunks/6AJCHLAV.js";
28
29
  import "../__chunks/JQEVJM46.js";
29
30
  import {
30
31
  createComponent,
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  Composite,
3
3
  useComposite
4
- } from "../__chunks/OY5YT7OV.js";
4
+ } from "../__chunks/RTOWJJVI.js";
5
5
  import "../__chunks/OXPV2NBK.js";
6
+ import "../__chunks/Z3X3QN6P.js";
6
7
  import "../__chunks/AGWM73EZ.js";
7
8
  import "../__chunks/BMLNRUFQ.js";
8
- import "../__chunks/Z3X3QN6P.js";
9
9
  import "../__chunks/5ETIGB6O.js";
10
10
  import "../__chunks/ASYR66PQ.js";
11
11
  import "../__chunks/SXC6BPOF.js";
@@ -1,7 +1,4 @@
1
- import type { ReactNode } from "react";
2
1
  import type { DialogProps } from "./dialog.js";
3
- type DialogBackdropProps = Pick<DialogProps, "store" | "backdrop" | "backdropProps" | "hideOnInteractOutside" | "hideOnEscape" | "hidden"> & {
4
- children?: ReactNode;
5
- };
6
- export declare function DialogBackdrop({ store, backdrop, backdropProps, hideOnInteractOutside, hideOnEscape, hidden, children, }: DialogBackdropProps): JSX.Element;
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;
7
4
  export {};
@@ -1,7 +1,10 @@
1
1
  import {
2
2
  DialogBackdrop
3
- } from "../__chunks/JXNLCNWG.js";
4
- import "../__chunks/7JNF6I52.js";
3
+ } from "../__chunks/MR75RQGW.js";
4
+ import "../__chunks/BH4YAZB2.js";
5
+ import "../__chunks/DJESYNLE.js";
6
+ import "../__chunks/ISPCL6N4.js";
7
+ import "../__chunks/XIACQCPS.js";
5
8
  import "../__chunks/6AJCHLAV.js";
6
9
  import "../__chunks/5ETIGB6O.js";
7
10
  import "../__chunks/ASYR66PQ.js";
@@ -3,8 +3,8 @@ import {
3
3
  useDialogDismiss
4
4
  } from "../__chunks/TSWOSEC5.js";
5
5
  import "../__chunks/OQUXG6FE.js";
6
- import "../__chunks/LNHZLQEK.js";
7
6
  import "../__chunks/4QNHBDVS.js";
7
+ import "../__chunks/LNHZLQEK.js";
8
8
  import "../__chunks/AGWM73EZ.js";
9
9
  import "../__chunks/BMLNRUFQ.js";
10
10
  import "../__chunks/5ETIGB6O.js";
@@ -1,6 +1,6 @@
1
- import type { ComponentProps, ElementType, KeyboardEvent as ReactKeyboardEvent, RefObject, SyntheticEvent } from "react";
1
+ import type { ComponentPropsWithRef, ElementType, ReactElement, KeyboardEvent as ReactKeyboardEvent, RefObject, SyntheticEvent } from "react";
2
2
  import type { BooleanOrCallback } from "@ariakit/core/utils/types";
3
- import type { DisclosureContentOptions, DisclosureContentProps } from "../disclosure/disclosure-content.js";
3
+ import type { DisclosureContentOptions } from "../disclosure/disclosure-content.js";
4
4
  import type { FocusableOptions } from "../focusable/focusable.js";
5
5
  import type { PortalOptions } from "../portal/portal.js";
6
6
  import type { As, Props } from "../utils/types.js";
@@ -49,17 +49,30 @@ export interface DialogOptions<T extends As = "div"> extends FocusableOptions<T>
49
49
  /**
50
50
  * Determines whether there will be a backdrop behind the dialog. On modal
51
51
  * dialogs, this is `true` by default. Besides a `boolean`, this prop can also
52
- * be a React component that will be rendered as the backdrop.
52
+ * be a React component or JSX element that will be rendered as the backdrop.
53
+ *
54
+ * **If a custom component is used, it must accept ref and spread all props to
55
+ * its underlying DOM element**, the same way a native element would.
56
+ *
57
+ * Live examples:
58
+ * - [Animated Dialog](https://ariakit.org/examples/dialog-animated)
59
+ * - [Dialog with Framer
60
+ * Motion](https://ariakit.org/examples/dialog-framer-motion)
61
+ * - [Dialog with Menu](https://ariakit.org/examples/dialog-menu)
62
+ * - [Nested Dialog](https://ariakit.org/examples/dialog-nested)
63
+ * - [Dialog with Next.js App
64
+ * Router](https://ariakit.org/examples/dialog-next-router)
53
65
  * @example
54
66
  * ```jsx
55
- * <Dialog backdrop={StyledBackdrop} />
67
+ * <Dialog backdrop={<div className="backdrop" />} />
56
68
  * ```
57
69
  */
58
- backdrop?: boolean | ElementType<ComponentProps<"div">>;
70
+ backdrop?: boolean | ReactElement<ComponentPropsWithRef<"div">> | ElementType<ComponentPropsWithRef<"div">>;
59
71
  /**
60
72
  * Props that will be passed to the backdrop element if `backdrop` is `true`.
73
+ * @deprecated Use the `backdrop` prop instead.
61
74
  */
62
- backdropProps?: Omit<DisclosureContentProps, "store">;
75
+ backdropProps?: ComponentPropsWithRef<"div">;
63
76
  /**
64
77
  * Determines whether the dialog will be hidden when the user presses the
65
78
  * Escape key.
@@ -96,7 +109,7 @@ export interface DialogOptions<T extends As = "div"> extends FocusableOptions<T>
96
109
  * a different element to receive focus.
97
110
  * @default true
98
111
  */
99
- autoFocusOnShow?: BooleanOrCallback<HTMLElement>;
112
+ autoFocusOnShow?: BooleanOrCallback<HTMLElement | null>;
100
113
  /**
101
114
  * Determines whether an element outside of the dialog will be focused when
102
115
  * the dialog is hidden if another element hasn't been focused in the action
@@ -106,7 +119,7 @@ export interface DialogOptions<T extends As = "div"> extends FocusableOptions<T>
106
119
  * element to be focused.
107
120
  * @default true
108
121
  */
109
- autoFocusOnHide?: BooleanOrCallback<HTMLElement>;
122
+ autoFocusOnHide?: BooleanOrCallback<HTMLElement | null>;
110
123
  /**
111
124
  * Specifies the element that will receive focus when the dialog is first
112
125
  * opened. It can be an `HTMLElement` or a `React.RefObject` with an
@@ -1,29 +1,30 @@
1
1
  import {
2
2
  Dialog,
3
3
  useDialog
4
- } from "../__chunks/TCX5FQUL.js";
5
- import "../__chunks/JXNLCNWG.js";
4
+ } from "../__chunks/NAG6UD2X.js";
5
+ import "../__chunks/MR75RQGW.js";
6
+ import "../__chunks/4H6H5RRM.js";
7
+ import "../__chunks/7A3SODQV.js";
6
8
  import "../__chunks/RBUEJWRA.js";
7
9
  import "../__chunks/T3WBUAHU.js";
8
10
  import "../__chunks/KUXENZYT.js";
11
+ import "../__chunks/KOVUJERF.js";
9
12
  import "../__chunks/62DFK33R.js";
10
13
  import "../__chunks/BH4YAZB2.js";
11
- import "../__chunks/4H6H5RRM.js";
12
- import "../__chunks/7A3SODQV.js";
13
- import "../__chunks/KOVUJERF.js";
14
14
  import "../__chunks/DJESYNLE.js";
15
15
  import "../__chunks/6WVG5KFF.js";
16
16
  import "../__chunks/ISPCL6N4.js";
17
17
  import "../__chunks/7JNF6I52.js";
18
18
  import "../__chunks/6OMX4H3W.js";
19
+ import "../__chunks/2CA5JWPW.js";
20
+ import "../__chunks/DIO64N2C.js";
21
+ import "../__chunks/LDDPB3PY.js";
19
22
  import "../__chunks/COQHFAEN.js";
20
23
  import "../__chunks/LNHZLQEK.js";
24
+ import "../__chunks/XIACQCPS.js";
25
+ import "../__chunks/6AJCHLAV.js";
21
26
  import "../__chunks/AGWM73EZ.js";
22
27
  import "../__chunks/BMLNRUFQ.js";
23
- import "../__chunks/USCWE5QL.js";
24
- import "../__chunks/DIO64N2C.js";
25
- import "../__chunks/LDDPB3PY.js";
26
- import "../__chunks/6AJCHLAV.js";
27
28
  import "../__chunks/JQEVJM46.js";
28
29
  import "../__chunks/5ETIGB6O.js";
29
30
  import "../__chunks/ASYR66PQ.js";
@@ -0,0 +1 @@
1
+ export declare function isBackdrop(element?: Element | null, dialog?: HTMLElement | null): boolean;
@@ -0,0 +1,21 @@
1
+ import "../../__chunks/4BKCJXBM.js";
2
+
3
+ // src/dialog/utils/is-backdrop.ts
4
+ function isBackdrop(element, dialog) {
5
+ if (!element)
6
+ return false;
7
+ const backdrop = element.getAttribute("data-backdrop");
8
+ if (backdrop == null)
9
+ return false;
10
+ if (backdrop === "")
11
+ return true;
12
+ if (backdrop === "true")
13
+ return true;
14
+ const id = dialog == null ? void 0 : dialog.id;
15
+ if (!id)
16
+ return false;
17
+ return backdrop === id;
18
+ }
19
+ export {
20
+ isBackdrop
21
+ };
@@ -13,9 +13,9 @@ import "../__chunks/4QNHBDVS.js";
13
13
  import "../__chunks/X7UZWWYG.js";
14
14
  import "../__chunks/T3DJZG63.js";
15
15
  import "../__chunks/OXPV2NBK.js";
16
+ import "../__chunks/Z3X3QN6P.js";
16
17
  import "../__chunks/AGWM73EZ.js";
17
18
  import "../__chunks/BMLNRUFQ.js";
18
- import "../__chunks/Z3X3QN6P.js";
19
19
  import {
20
20
  createElement,
21
21
  createHook,
@@ -14,7 +14,7 @@ import type { HeadingLevels } from "./utils.js";
14
14
  * </HeadingLevel>
15
15
  * ```
16
16
  */
17
- export declare function HeadingLevel({ level, children }: HeadingLevelProps): JSX.Element;
17
+ export declare function HeadingLevel({ level, children }: HeadingLevelProps): import("react/jsx-runtime").JSX.Element;
18
18
  export type HeadingLevelProps = {
19
19
  /**
20
20
  * The heading level. By default, it'll increase the level by 1 based on the
@@ -5,8 +5,8 @@ import {
5
5
  import "../__chunks/PIRVQZZN.js";
6
6
  import "../__chunks/TSWOSEC5.js";
7
7
  import "../__chunks/OQUXG6FE.js";
8
- import "../__chunks/LNHZLQEK.js";
9
8
  import "../__chunks/4QNHBDVS.js";
9
+ import "../__chunks/LNHZLQEK.js";
10
10
  import "../__chunks/AGWM73EZ.js";
11
11
  import "../__chunks/BMLNRUFQ.js";
12
12
  import "../__chunks/5ETIGB6O.js";
@@ -1,19 +1,7 @@
1
1
  import * as Core from "@ariakit/core/hovercard/hovercard-store";
2
2
  import type { PopoverStoreFunctions, PopoverStoreOptions, PopoverStoreState } from "../popover/popover-store.js";
3
3
  import type { Store } from "../utils/store.js";
4
- export declare function useHovercardStoreOptions(props: HovercardStoreProps): {
5
- getAnchorRect: ((anchor: HTMLElement | null) => {
6
- x?: number | undefined;
7
- y?: number | undefined;
8
- width?: number | undefined;
9
- height?: number | undefined;
10
- } | null) | undefined;
11
- renderCallback: ((props: import("@ariakit/core/popover/popover-store").PopoverStoreRenderCallbackProps) => void | (() => void)) | undefined;
12
- setOpen?: ((open: boolean) => void) | undefined;
13
- defaultOpen?: boolean | undefined;
14
- open?: boolean | undefined;
15
- animated?: number | boolean | undefined;
16
- };
4
+ export declare function useHovercardStoreOptions(props: HovercardStoreProps): Partial<import("../disclosure/disclosure-store.js").DisclosureStoreOptions>;
17
5
  export declare function useHovercardStoreProps<T extends HovercardStore>(store: T, props: HovercardStoreProps): T;
18
6
  /**
19
7
  * Creates a hovercard store.