@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
@@ -7,9 +7,9 @@ require('../__chunks/DASOL6J2.cjs');
7
7
  require('../__chunks/3FTPSHLH.cjs');
8
8
  require('../__chunks/ZQAFJQIS.cjs');
9
9
  require('../__chunks/KLZID3QO.cjs');
10
+ require('../__chunks/NVMBKFRB.cjs');
10
11
  require('../__chunks/NVBNDB5B.cjs');
11
12
  require('../__chunks/LHHW5ZQP.cjs');
12
- require('../__chunks/NVMBKFRB.cjs');
13
13
  require('../__chunks/7NAIPZYN.cjs');
14
14
  require('../__chunks/F7HVNVHQ.cjs');
15
15
  require('../__chunks/NREUHWTU.cjs');
@@ -3,11 +3,11 @@
3
3
  var _56QOFCPOcjs = require('../__chunks/56QOFCPO.cjs');
4
4
 
5
5
 
6
- var _5I6IQHKQcjs = require('../__chunks/5I6IQHKQ.cjs');
6
+ var _BIPONQXEcjs = require('../__chunks/BIPONQXE.cjs');
7
7
  require('../__chunks/KLZID3QO.cjs');
8
+ require('../__chunks/NVMBKFRB.cjs');
8
9
  require('../__chunks/NVBNDB5B.cjs');
9
10
  require('../__chunks/LHHW5ZQP.cjs');
10
- require('../__chunks/NVMBKFRB.cjs');
11
11
 
12
12
 
13
13
 
@@ -38,7 +38,7 @@ var useToolbar = _7NAIPZYNcjs.createHook.call(void 0, (_a) => {
38
38
  role: "toolbar",
39
39
  "aria-orientation": orientation
40
40
  }, props);
41
- props = _5I6IQHKQcjs.useComposite.call(void 0, _6455U47Tcjs.__spreadValues.call(void 0, { store }, props));
41
+ props = _BIPONQXEcjs.useComposite.call(void 0, _6455U47Tcjs.__spreadValues.call(void 0, { store }, props));
42
42
  return props;
43
43
  });
44
44
  var Toolbar = _7NAIPZYNcjs.createComponent.call(void 0, (props) => {
@@ -1,6 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _CCVWD45Ycjs = require('../__chunks/CCVWD45Y.cjs');
3
+ var _5C3EJRAKcjs = require('../__chunks/5C3EJRAK.cjs');
4
+ require('../__chunks/NVBNDB5B.cjs');
5
+ require('../__chunks/LHHW5ZQP.cjs');
4
6
 
5
7
 
6
8
 
@@ -17,12 +19,39 @@ require('../__chunks/2X5K3J7Y.cjs');
17
19
  var _6455U47Tcjs = require('../__chunks/6455U47T.cjs');
18
20
 
19
21
  // src/tooltip/tooltip-anchor.ts
22
+ var _react = require('react');
23
+ var _misc = require('@ariakit/core/utils/misc');
24
+ var _store = require('@ariakit/core/utils/store');
25
+ var globalStore = _store.createStore.call(void 0, {
26
+ activeStore: null
27
+ });
20
28
  var useTooltipAnchor = _7NAIPZYNcjs.createHook.call(void 0,
21
29
  (_a) => {
22
- var _b = _a, { store, described } = _b, props = _6455U47Tcjs.__objRest.call(void 0, _b, ["store", "described"]);
23
- const onFocusProp = props.onFocus;
24
- const onFocus = _NREUHWTUcjs.useEvent.call(void 0, (event) => {
25
- onFocusProp == null ? void 0 : onFocusProp(event);
30
+ var _b = _a, { store, showOnHover = true } = _b, props = _6455U47Tcjs.__objRest.call(void 0, _b, ["store", "showOnHover"]);
31
+ _react.useEffect.call(void 0, () => {
32
+ return store.sync(
33
+ (state) => {
34
+ if (state.mounted) {
35
+ const { activeStore } = globalStore.getState();
36
+ if (activeStore !== store) {
37
+ activeStore == null ? void 0 : activeStore.hide();
38
+ }
39
+ return globalStore.setState("activeStore", store);
40
+ }
41
+ const id = setTimeout(() => {
42
+ const { activeStore } = globalStore.getState();
43
+ if (activeStore !== store)
44
+ return;
45
+ globalStore.setState("activeStore", null);
46
+ }, state.skipTimeout);
47
+ return () => clearTimeout(id);
48
+ },
49
+ ["mounted", "skipTimeout"]
50
+ );
51
+ }, [store]);
52
+ const onFocusVisibleProp = props.onFocusVisible;
53
+ const onFocusVisible = _NREUHWTUcjs.useEvent.call(void 0, (event) => {
54
+ onFocusVisibleProp == null ? void 0 : onFocusVisibleProp(event);
26
55
  if (event.defaultPrevented)
27
56
  return;
28
57
  store.setAnchorElement(event.currentTarget);
@@ -33,35 +62,36 @@ var useTooltipAnchor = _7NAIPZYNcjs.createHook.call(void 0,
33
62
  onBlurProp == null ? void 0 : onBlurProp(event);
34
63
  if (event.defaultPrevented)
35
64
  return;
36
- store.hide();
37
- });
38
- const onMouseEnterProp = props.onMouseEnter;
39
- const onMouseEnter = _NREUHWTUcjs.useEvent.call(void 0, (event) => {
40
- onMouseEnterProp == null ? void 0 : onMouseEnterProp(event);
41
- if (event.defaultPrevented)
42
- return;
43
- store.setAnchorElement(event.currentTarget);
44
- store.show();
65
+ const { activeStore } = globalStore.getState();
66
+ if (activeStore === store) {
67
+ globalStore.setState("activeStore", null);
68
+ }
45
69
  });
46
- const onMouseLeaveProp = props.onMouseLeave;
47
- const onMouseLeave = _NREUHWTUcjs.useEvent.call(void 0, (event) => {
48
- onMouseLeaveProp == null ? void 0 : onMouseLeaveProp(event);
49
- if (event.defaultPrevented)
50
- return;
51
- store.hide();
70
+ const type = store.useState("type");
71
+ const contentId = store.useState((state) => {
72
+ var _a2;
73
+ return (_a2 = state.contentElement) == null ? void 0 : _a2.id;
52
74
  });
53
- const contentElement = store.useState("contentElement");
54
75
  props = _6455U47Tcjs.__spreadProps.call(void 0, _6455U47Tcjs.__spreadValues.call(void 0, {
55
76
  tabIndex: 0,
56
- "aria-labelledby": !described ? contentElement == null ? void 0 : contentElement.id : void 0,
57
- "aria-describedby": described ? contentElement == null ? void 0 : contentElement.id : void 0
77
+ "aria-labelledby": type === "label" ? contentId : void 0,
78
+ "aria-describedby": type === "description" ? contentId : void 0
58
79
  }, props), {
59
- onFocus,
60
- onBlur,
61
- onMouseEnter,
62
- onMouseLeave
80
+ onFocusVisible,
81
+ onBlur
63
82
  });
64
- props = _CCVWD45Ycjs.usePopoverAnchor.call(void 0, _6455U47Tcjs.__spreadValues.call(void 0, { store }, props));
83
+ props = _5C3EJRAKcjs.useHovercardAnchor.call(void 0, _6455U47Tcjs.__spreadValues.call(void 0, {
84
+ store,
85
+ showOnHover: (event) => {
86
+ if (_misc.isFalsyBooleanCallback.call(void 0, showOnHover, event))
87
+ return false;
88
+ const { activeStore } = globalStore.getState();
89
+ if (!activeStore)
90
+ return true;
91
+ store.show();
92
+ return false;
93
+ }
94
+ }, props));
65
95
  return props;
66
96
  }
67
97
  );
@@ -1,4 +1,4 @@
1
- import type { PopoverAnchorOptions } from "../popover/popover-anchor.js";
1
+ import type { HovercardAnchorOptions } from "../hovercard/hovercard-anchor.js";
2
2
  import type { As, Props } from "../utils/types.js";
3
3
  import type { TooltipStore } from "./tooltip-store.js";
4
4
  /**
@@ -26,26 +26,10 @@ export declare const useTooltipAnchor: import("../utils/types.js").Hook<TooltipA
26
26
  * ```
27
27
  */
28
28
  export declare const TooltipAnchor: import("../utils/types.js").Component<TooltipAnchorOptions<"div">>;
29
- export interface TooltipAnchorOptions<T extends As = "div"> extends PopoverAnchorOptions<T> {
29
+ export interface TooltipAnchorOptions<T extends As = "div"> extends HovercardAnchorOptions<T> {
30
30
  /**
31
31
  * Object returned by the `useTooltipStore` hook.
32
32
  */
33
33
  store: TooltipStore;
34
- /**
35
- * Determines wether the tooltip anchor is described or labelled by the
36
- * tooltip. If `true`, the tooltip id will be set as the `aria-describedby`
37
- * attribute on the anchor element, and not as the `aria-labelledby`
38
- * attribute.
39
- * @default false
40
- * @example
41
- * ```jsx
42
- * const tooltip = useTooltipStore();
43
- * <TooltipAnchor store={tooltip} described>
44
- * This is an element with a visible label.
45
- * </TooltipAnchor>
46
- * <Tooltip store={tooltip}>Description</Tooltip>
47
- * ```
48
- */
49
- described?: boolean;
50
34
  }
51
35
  export type TooltipAnchorProps<T extends As = "div"> = Props<TooltipAnchorOptions<T>>;
@@ -1,7 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
2
2
 
3
3
 
4
- var _AUDANYMJcjs = require('../__chunks/AUDANYMJ.cjs');
4
+ var _27JG67F3cjs = require('../__chunks/27JG67F3.cjs');
5
+ require('../__chunks/W2XKIB23.cjs');
5
6
  require('../__chunks/RD47UJK7.cjs');
6
7
  require('../__chunks/P7TWEJ6I.cjs');
7
8
 
@@ -16,10 +17,10 @@ var _6455U47Tcjs = require('../__chunks/6455U47T.cjs');
16
17
  // src/tooltip/tooltip-store.ts
17
18
  var _tooltipstore = require('@ariakit/core/tooltip/tooltip-store'); var Core = _interopRequireWildcard(_tooltipstore);
18
19
  function useTooltipStoreOptions(props) {
19
- return _AUDANYMJcjs.usePopoverStoreOptions.call(void 0, props);
20
+ return _27JG67F3cjs.useHovercardStoreOptions.call(void 0, props);
20
21
  }
21
22
  function useTooltipStoreProps(store, props) {
22
- return _AUDANYMJcjs.usePopoverStoreProps.call(void 0, store, props);
23
+ return _27JG67F3cjs.useHovercardStoreProps.call(void 0, store, props);
23
24
  }
24
25
  function useTooltipStore(props = {}) {
25
26
  const options = useTooltipStoreOptions(props);
@@ -1,19 +1,7 @@
1
1
  import * as Core from "@ariakit/core/tooltip/tooltip-store";
2
- import type { PopoverStoreFunctions, PopoverStoreOptions, PopoverStoreState } from "../popover/popover-store.js";
2
+ import type { HovercardStoreFunctions, HovercardStoreOptions, HovercardStoreState } from "../hovercard/hovercard-store.js";
3
3
  import type { Store } from "../utils/store.js";
4
- export declare function useTooltipStoreOptions(props: TooltipStoreProps): {
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 useTooltipStoreOptions(props: TooltipStoreProps): Partial<import("../disclosure/disclosure-store.js").DisclosureStoreOptions>;
17
5
  export declare function useTooltipStoreProps<T extends TooltipStore>(store: T, props: TooltipStoreProps): T;
18
6
  /**
19
7
  * Creates a tooltip store.
@@ -26,11 +14,11 @@ export declare function useTooltipStoreProps<T extends TooltipStore>(store: T, p
26
14
  * ```
27
15
  */
28
16
  export declare function useTooltipStore(props?: TooltipStoreProps): TooltipStore;
29
- export interface TooltipStoreState extends Core.TooltipStoreState, PopoverStoreState {
17
+ export interface TooltipStoreState extends Core.TooltipStoreState, HovercardStoreState {
30
18
  }
31
- export interface TooltipStoreFunctions extends Core.TooltipStoreFunctions, PopoverStoreFunctions {
19
+ export interface TooltipStoreFunctions extends Core.TooltipStoreFunctions, HovercardStoreFunctions {
32
20
  }
33
- export interface TooltipStoreOptions extends Core.TooltipStoreOptions, PopoverStoreOptions {
21
+ export interface TooltipStoreOptions extends Core.TooltipStoreOptions, HovercardStoreOptions {
34
22
  }
35
23
  export type TooltipStoreProps = TooltipStoreOptions & Core.TooltipStoreProps;
36
24
  export type TooltipStore = TooltipStoreFunctions & Store<Core.TooltipStore>;
@@ -1,14 +1,36 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _PFD4TS6Bcjs = require('../__chunks/PFD4TS6B.cjs');
3
+ var _A6ZSQXNQcjs = require('../__chunks/A6ZSQXNQ.cjs');
4
+ require('../__chunks/OLGMV24U.cjs');
5
+ require('../__chunks/MHL3EECX.cjs');
6
+ require('../__chunks/GOXUG4RX.cjs');
7
+ require('../__chunks/D3EUPD6P.cjs');
8
+ require('../__chunks/O45IXGJW.cjs');
9
+ require('../__chunks/TVZPJJTX.cjs');
10
+ require('../__chunks/QRAQT522.cjs');
11
+ require('../__chunks/NZYGNCZL.cjs');
12
+ require('../__chunks/E5VOJWDR.cjs');
13
+ require('../__chunks/56NPFF7P.cjs');
14
+ require('../__chunks/W32FX7DM.cjs');
15
+ require('../__chunks/CARNFZQT.cjs');
16
+ require('../__chunks/NR3SJH64.cjs');
17
+ require('../__chunks/GHWBKA6H.cjs');
18
+ require('../__chunks/EE6OIU6X.cjs');
19
+ require('../__chunks/X2GXTE3P.cjs');
20
+ require('../__chunks/SOPRUU56.cjs');
21
+ require('../__chunks/WWDX5YPG.cjs');
4
22
  require('../__chunks/C7Y26CUV.cjs');
5
23
  require('../__chunks/NS56XHXG.cjs');
6
-
7
-
8
- var _EM2PMFEWcjs = require('../__chunks/EM2PMFEW.cjs');
24
+ require('../__chunks/CQSUIL2D.cjs');
25
+ require('../__chunks/N2VCZZLP.cjs');
26
+ require('../__chunks/5P6HRGY6.cjs');
27
+ require('../__chunks/EM2PMFEW.cjs');
28
+ require('../__chunks/W5PBA4D6.cjs');
9
29
 
10
30
 
11
31
  var _ESS3KXVEcjs = require('../__chunks/ESS3KXVE.cjs');
32
+ require('../__chunks/NVBNDB5B.cjs');
33
+ require('../__chunks/LHHW5ZQP.cjs');
12
34
  require('../__chunks/QTPUX3NM.cjs');
13
35
 
14
36
 
@@ -17,8 +39,6 @@ require('../__chunks/QTPUX3NM.cjs');
17
39
  var _7NAIPZYNcjs = require('../__chunks/7NAIPZYN.cjs');
18
40
 
19
41
 
20
-
21
-
22
42
  var _NREUHWTUcjs = require('../__chunks/NREUHWTU.cjs');
23
43
  require('../__chunks/2X5K3J7Y.cjs');
24
44
 
@@ -28,82 +48,61 @@ require('../__chunks/2X5K3J7Y.cjs');
28
48
  var _6455U47Tcjs = require('../__chunks/6455U47T.cjs');
29
49
 
30
50
  // src/tooltip/tooltip.tsx
31
- var _react = require('react');
32
- var _events = require('@ariakit/core/utils/events');
51
+ var _dom = require('@ariakit/core/utils/dom');
52
+ var _misc = require('@ariakit/core/utils/misc');
33
53
  var _jsxruntime = require('react/jsx-runtime');
34
54
  var useTooltip = _7NAIPZYNcjs.createHook.call(void 0,
35
55
  (_a) => {
36
56
  var _b = _a, {
37
57
  store,
38
58
  portal = true,
39
- hideOnEscape = true,
40
- hideOnControl = false,
41
- wrapperProps
59
+ gutter = 8,
60
+ preserveTabOrder = false,
61
+ hideOnHoverOutside = true,
62
+ hideOnInteractOutside = true
42
63
  } = _b, props = _6455U47Tcjs.__objRest.call(void 0, _b, [
43
64
  "store",
44
65
  "portal",
45
- "hideOnEscape",
46
- "hideOnControl",
47
- "wrapperProps"
66
+ "gutter",
67
+ "preserveTabOrder",
68
+ "hideOnHoverOutside",
69
+ "hideOnInteractOutside"
48
70
  ]);
49
- const popoverElement = store.useState("popoverElement");
50
- const contentElement = store.useState("contentElement");
51
- _NREUHWTUcjs.useSafeLayoutEffect.call(void 0, () => {
52
- const wrapper = popoverElement;
53
- const popover = contentElement;
54
- if (!wrapper)
55
- return;
56
- if (!popover)
57
- return;
58
- wrapper.style.zIndex = getComputedStyle(popover).zIndex;
59
- }, [popoverElement, contentElement]);
60
- const hideOnEscapeProp = _NREUHWTUcjs.useBooleanEvent.call(void 0, hideOnEscape);
61
- const hideOnControlProp = _NREUHWTUcjs.useBooleanEvent.call(void 0, hideOnControl);
62
- const open = store.useState("open");
63
- _react.useEffect.call(void 0, () => {
64
- if (!open)
65
- return;
66
- return _events.addGlobalEventListener.call(void 0, "keydown", (event) => {
67
- if (event.defaultPrevented)
68
- return;
69
- const isEscape = event.key === "Escape" && hideOnEscapeProp(event);
70
- const isControl = event.key === "Control" && hideOnControlProp(event);
71
- if (isEscape || isControl) {
72
- store.hide();
73
- }
74
- });
75
- }, [store, open, hideOnEscapeProp, hideOnControlProp]);
76
- const position = store.useState(
77
- (state) => state.fixed ? "fixed" : "absolute"
78
- );
79
- props = _NREUHWTUcjs.useWrapElement.call(void 0,
80
- props,
81
- (element) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
82
- "div",
83
- _6455U47Tcjs.__spreadProps.call(void 0, _6455U47Tcjs.__spreadValues.call(void 0, {
84
- role: "presentation"
85
- }, wrapperProps), {
86
- style: _6455U47Tcjs.__spreadValues.call(void 0, {
87
- position,
88
- top: 0,
89
- left: 0
90
- }, wrapperProps == null ? void 0 : wrapperProps.style),
91
- ref: store.setPopoverElement,
92
- children: element
93
- })
94
- ),
95
- [store, position, wrapperProps]
96
- );
97
71
  props = _NREUHWTUcjs.useWrapElement.call(void 0,
98
72
  props,
99
73
  (element) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _ESS3KXVEcjs.TooltipContext.Provider, { value: store, children: element }),
100
74
  [store]
101
75
  );
102
- props = _6455U47Tcjs.__spreadValues.call(void 0, {
103
- role: "tooltip"
104
- }, props);
105
- props = _EM2PMFEWcjs.useDisclosureContent.call(void 0, _6455U47Tcjs.__spreadValues.call(void 0, { store }, props));
106
- props = _PFD4TS6Bcjs.usePortal.call(void 0, _6455U47Tcjs.__spreadProps.call(void 0, _6455U47Tcjs.__spreadValues.call(void 0, { portal }, props), { preserveTabOrder: false }));
76
+ const role = store.useState(
77
+ (state) => state.type === "description" ? "tooltip" : "none"
78
+ );
79
+ props = _6455U47Tcjs.__spreadValues.call(void 0, { role }, props);
80
+ props = _A6ZSQXNQcjs.useHovercard.call(void 0, _6455U47Tcjs.__spreadProps.call(void 0, _6455U47Tcjs.__spreadValues.call(void 0, {}, props), {
81
+ store,
82
+ portal,
83
+ gutter,
84
+ preserveTabOrder,
85
+ hideOnHoverOutside: (event) => {
86
+ if (_misc.isFalsyBooleanCallback.call(void 0, hideOnHoverOutside, event))
87
+ return false;
88
+ const { anchorElement } = store.getState();
89
+ if (!anchorElement)
90
+ return true;
91
+ if ("focusVisible" in anchorElement.dataset)
92
+ return false;
93
+ return true;
94
+ },
95
+ hideOnInteractOutside: (event) => {
96
+ if (_misc.isFalsyBooleanCallback.call(void 0, hideOnInteractOutside, event))
97
+ return false;
98
+ const { anchorElement } = store.getState();
99
+ if (!anchorElement)
100
+ return true;
101
+ if (_dom.contains.call(void 0, anchorElement, event.target))
102
+ return false;
103
+ return true;
104
+ }
105
+ }));
107
106
  return props;
108
107
  }
109
108
  );
@@ -1,7 +1,4 @@
1
- import type { HTMLAttributes } from "react";
2
- import type { BooleanOrCallback } from "@ariakit/core/utils/types";
3
- import type { DisclosureContentOptions } from "../disclosure/disclosure-content.js";
4
- import type { PortalOptions } from "../portal/portal.js";
1
+ import type { HovercardOptions } from "../hovercard/hovercard.js";
5
2
  import type { As, Props } from "../utils/types.js";
6
3
  import type { TooltipStore } from "./tooltip-store.js";
7
4
  /**
@@ -27,30 +24,14 @@ export declare const useTooltip: import("../utils/types.js").Hook<TooltipOptions
27
24
  * ```
28
25
  */
29
26
  export declare const Tooltip: import("../utils/types.js").Component<TooltipOptions<"div">>;
30
- export interface TooltipOptions<T extends As = "div"> extends DisclosureContentOptions<T>, Omit<PortalOptions<T>, "preserveTabOrder"> {
27
+ export interface TooltipOptions<T extends As = "div"> extends HovercardOptions<T> {
31
28
  /**
32
29
  * Object returned by the `useTooltipStore` hook.
33
30
  */
34
31
  store: TooltipStore;
35
- /**
36
- * Determines whether the tooltip will be hidden when the user presses the
37
- * Escape key.
38
- * @default true
39
- */
40
- hideOnEscape?: BooleanOrCallback<KeyboardEvent>;
41
- /**
42
- * Determines whether the tooltip will be hidden when the user presses the
43
- * Control key. This has been proposed as an alternative to the Escape key,
44
- * which may introduce some issues, especially when tooltips are used within
45
- * dialogs that also hide on Escape. See
46
- * https://github.com/w3c/aria-practices/issues/1506
47
- * @default false
48
- */
49
- hideOnControl?: BooleanOrCallback<KeyboardEvent>;
50
- /**
51
- * Props that will be passed to the popover wrapper element. This element
52
- * will be used to position the popover.
53
- */
54
- wrapperProps?: HTMLAttributes<HTMLDivElement>;
32
+ /** @default true */
33
+ portal?: HovercardOptions<T>["portal"];
34
+ /** @default 8 */
35
+ gutter?: HovercardOptions<T>["gutter"];
55
36
  }
56
37
  export type TooltipProps<T extends As = "div"> = Props<TooltipOptions<T>>;