@ariakit/react-core 0.3.6 → 0.3.8

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 (148) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/cjs/__chunks/{VEG6PRAG.cjs → 3WCBE6SU.cjs} +3 -1
  3. package/cjs/__chunks/{45RPYV4J.cjs → EQ4A5RPW.cjs} +2 -2
  4. package/cjs/__chunks/{CILQPSH2.cjs → FA25CV2I.cjs} +2 -2
  5. package/cjs/__chunks/{RRW7YVFR.cjs → IPYAEPOT.cjs} +17 -6
  6. package/cjs/__chunks/{AYDXWQBF.cjs → L3WS5HGI.cjs} +2 -0
  7. package/cjs/__chunks/{QU2266CJ.cjs → WH4I6OSN.cjs} +12 -4
  8. package/cjs/__chunks/{LVOI2KVN.cjs → XGKLTARH.cjs} +2 -2
  9. package/cjs/__chunks/{4GLXDOKG.cjs → YAPOM5RT.cjs} +2 -2
  10. package/cjs/checkbox/checkbox-provider.cjs +2 -2
  11. package/cjs/combobox/combobox-cancel.cjs +2 -2
  12. package/cjs/combobox/combobox-context.cjs +4 -2
  13. package/cjs/combobox/combobox-context.d.cts +6 -5
  14. package/cjs/combobox/combobox-context.d.ts +6 -5
  15. package/cjs/combobox/combobox-disclosure.cjs +2 -2
  16. package/cjs/combobox/combobox-item-check.cjs +50 -0
  17. package/cjs/combobox/combobox-item-check.d.cts +60 -0
  18. package/cjs/combobox/combobox-item-check.d.ts +60 -0
  19. package/cjs/combobox/combobox-item-value.cjs +3 -3
  20. package/cjs/combobox/combobox-item.cjs +47 -10
  21. package/cjs/combobox/combobox-item.d.cts +31 -13
  22. package/cjs/combobox/combobox-item.d.ts +31 -13
  23. package/cjs/combobox/combobox-label.cjs +55 -0
  24. package/cjs/combobox/combobox-label.d.cts +42 -0
  25. package/cjs/combobox/combobox-label.d.ts +42 -0
  26. package/cjs/combobox/combobox-list.cjs +3 -3
  27. package/cjs/combobox/combobox-popover.cjs +7 -7
  28. package/cjs/combobox/combobox-provider.cjs +4 -4
  29. package/cjs/combobox/combobox-provider.d.cts +8 -4
  30. package/cjs/combobox/combobox-provider.d.ts +8 -4
  31. package/cjs/combobox/combobox-row.cjs +2 -2
  32. package/cjs/combobox/combobox-separator.cjs +2 -2
  33. package/cjs/combobox/combobox-store.cjs +2 -2
  34. package/cjs/combobox/combobox-store.d.cts +28 -9
  35. package/cjs/combobox/combobox-store.d.ts +28 -9
  36. package/cjs/combobox/combobox.cjs +28 -14
  37. package/cjs/combobox/combobox.d.cts +2 -1
  38. package/cjs/combobox/combobox.d.ts +2 -1
  39. package/cjs/composite/composite-hover.cjs +2 -2
  40. package/cjs/composite/composite-hover.d.cts +9 -0
  41. package/cjs/composite/composite-hover.d.ts +9 -0
  42. package/cjs/composite/composite-item.d.cts +3 -0
  43. package/cjs/composite/composite-item.d.ts +3 -0
  44. package/cjs/composite/composite-overflow.cjs +2 -2
  45. package/cjs/disclosure/disclosure-content.d.cts +3 -1
  46. package/cjs/disclosure/disclosure-content.d.ts +3 -1
  47. package/cjs/disclosure/disclosure.d.cts +3 -0
  48. package/cjs/disclosure/disclosure.d.ts +3 -0
  49. package/cjs/focusable/focusable.d.cts +2 -1
  50. package/cjs/focusable/focusable.d.ts +2 -1
  51. package/cjs/form/form-checkbox.cjs +1 -1
  52. package/cjs/hovercard/hovercard-anchor.d.cts +3 -0
  53. package/cjs/hovercard/hovercard-anchor.d.ts +3 -0
  54. package/cjs/hovercard/hovercard.cjs +3 -3
  55. package/cjs/menu/menu-button.cjs +33 -21
  56. package/cjs/menu/menu-item-checkbox.cjs +4 -4
  57. package/cjs/menu/menu-item-radio.cjs +3 -3
  58. package/cjs/menu/menu-item.cjs +3 -3
  59. package/cjs/menu/menu-provider.cjs +3 -3
  60. package/cjs/menu/menu-store.cjs +3 -3
  61. package/cjs/menu/menu-store.d.cts +7 -55
  62. package/cjs/menu/menu-store.d.ts +7 -55
  63. package/cjs/menu/menu.cjs +3 -3
  64. package/cjs/popover/popover.cjs +2 -2
  65. package/cjs/popover/popover.d.cts +4 -0
  66. package/cjs/popover/popover.d.ts +4 -0
  67. package/cjs/portal/portal.d.cts +5 -1
  68. package/cjs/portal/portal.d.ts +5 -1
  69. package/cjs/select/select-item.cjs +5 -5
  70. package/cjs/select/select-label.cjs +1 -1
  71. package/cjs/select/select-popover.cjs +2 -2
  72. package/cjs/select/select-provider.cjs +3 -3
  73. package/cjs/select/select-store.cjs +3 -3
  74. package/cjs/select/select-store.d.cts +1 -7
  75. package/cjs/select/select-store.d.ts +1 -7
  76. package/cjs/tooltip/tooltip.cjs +3 -3
  77. package/combobox/combobox-item-check/package.json +8 -0
  78. package/combobox/combobox-label/package.json +8 -0
  79. package/esm/__chunks/{KFUKDUTY.js → 4AMOOZBQ.js} +10 -2
  80. package/esm/__chunks/{PHTJ3BCW.js → 7HYEBVZE.js} +1 -1
  81. package/esm/__chunks/{YGJUONJM.js → BONLQCKO.js} +1 -1
  82. package/esm/__chunks/{BRO2JF5P.js → G6ONQ5EH.js} +20 -9
  83. package/esm/__chunks/{W3TC4TID.js → JRUYDVPB.js} +1 -1
  84. package/esm/__chunks/{NE6JAKK6.js → P3UZS6BC.js} +1 -1
  85. package/esm/__chunks/{MTC2KUZZ.js → W76OTZCC.js} +3 -1
  86. package/esm/__chunks/{24AKC2LC.js → ZETMAOTK.js} +2 -0
  87. package/esm/checkbox/checkbox-provider.js +3 -3
  88. package/esm/combobox/combobox-cancel.js +1 -1
  89. package/esm/combobox/combobox-context.d.ts +6 -5
  90. package/esm/combobox/combobox-context.js +3 -1
  91. package/esm/combobox/combobox-disclosure.js +1 -1
  92. package/esm/combobox/combobox-item-check.d.ts +60 -0
  93. package/esm/combobox/combobox-item-check.js +50 -0
  94. package/esm/combobox/combobox-item-value.js +1 -1
  95. package/esm/combobox/combobox-item.d.ts +31 -13
  96. package/esm/combobox/combobox-item.js +45 -8
  97. package/esm/combobox/combobox-label.d.ts +42 -0
  98. package/esm/combobox/combobox-label.js +55 -0
  99. package/esm/combobox/combobox-list.js +2 -2
  100. package/esm/combobox/combobox-popover.js +3 -3
  101. package/esm/combobox/combobox-provider.d.ts +8 -4
  102. package/esm/combobox/combobox-provider.js +2 -2
  103. package/esm/combobox/combobox-row.js +1 -1
  104. package/esm/combobox/combobox-separator.js +1 -1
  105. package/esm/combobox/combobox-store.d.ts +28 -9
  106. package/esm/combobox/combobox-store.js +1 -1
  107. package/esm/combobox/combobox.d.ts +2 -1
  108. package/esm/combobox/combobox.js +28 -14
  109. package/esm/composite/composite-hover.d.ts +9 -0
  110. package/esm/composite/composite-hover.js +1 -1
  111. package/esm/composite/composite-item.d.ts +3 -0
  112. package/esm/composite/composite-overflow.js +1 -1
  113. package/esm/disclosure/disclosure-content.d.ts +3 -1
  114. package/esm/disclosure/disclosure.d.ts +3 -0
  115. package/esm/focusable/focusable.d.ts +2 -1
  116. package/esm/form/form-checkbox.js +1 -1
  117. package/esm/hovercard/hovercard-anchor.d.ts +3 -0
  118. package/esm/hovercard/hovercard.js +2 -2
  119. package/esm/menu/menu-button.js +33 -21
  120. package/esm/menu/menu-item-checkbox.js +3 -3
  121. package/esm/menu/menu-item-radio.js +2 -2
  122. package/esm/menu/menu-item.js +2 -2
  123. package/esm/menu/menu-provider.js +2 -2
  124. package/esm/menu/menu-store.d.ts +7 -55
  125. package/esm/menu/menu-store.js +2 -2
  126. package/esm/menu/menu.js +2 -2
  127. package/esm/popover/popover.d.ts +4 -0
  128. package/esm/popover/popover.js +1 -1
  129. package/esm/portal/portal.d.ts +5 -1
  130. package/esm/select/select-item.js +4 -4
  131. package/esm/select/select-label.js +2 -2
  132. package/esm/select/select-popover.js +1 -1
  133. package/esm/select/select-provider.js +2 -2
  134. package/esm/select/select-store.d.ts +1 -7
  135. package/esm/select/select-store.js +2 -2
  136. package/esm/tooltip/tooltip.js +2 -2
  137. package/package.json +16 -2
  138. package/cjs/collection/collection-context.d.cts +0 -34
  139. package/cjs/collection/collection-context.d.ts +0 -34
  140. package/cjs/composite/utils.d.cts +0 -69
  141. package/cjs/composite/utils.d.ts +0 -69
  142. package/cjs/tab/tab-store.d.cts +0 -74
  143. package/cjs/tab/tab-store.d.ts +0 -74
  144. package/esm/collection/collection-context.d.ts +0 -34
  145. package/esm/composite/utils.d.ts +0 -69
  146. package/esm/tab/tab-store.d.ts +0 -74
  147. package/cjs/__chunks/{ISGOCBDC.cjs → RIZYIKBE.cjs} +1 -1
  148. package/esm/__chunks/{KB2HXEVC.js → WBQC3LL4.js} +1 -1
@@ -7,71 +7,23 @@ import type { MenubarStore } from "../menubar/menubar-store.js";
7
7
  import type { Store } from "../utils/store.js";
8
8
  type Values = Core.MenuStoreValues;
9
9
  export declare function useMenuStoreProps<T extends Core.MenuStore>(store: T, update: () => void, props: MenuStoreProps): T & {
10
- combobox: (import("../combobox/combobox-store.js").ComboboxStoreFunctions & import("@ariakit/core/combobox/combobox-store").ComboboxStoreFunctions & import("@ariakit/core/utils/store").Store<import("@ariakit/core/combobox/combobox-store").ComboboxStoreState> & {
11
- useState: {
12
- (): import("@ariakit/core/combobox/combobox-store").ComboboxStoreState;
13
- <K extends keyof import("@ariakit/core/combobox/combobox-store").ComboboxStoreState>(key: K): import("@ariakit/core/combobox/combobox-store").ComboboxStoreState[K];
14
- <V>(selector: (state: import("@ariakit/core/combobox/combobox-store").ComboboxStoreState) => V): V;
15
- };
16
- }) | null | undefined;
10
+ combobox: (ComboboxStore<string | string[]> & import("@ariakit/core/combobox/combobox-store").ComboboxStore<string | string[]>) | null | undefined;
17
11
  parent: (MenuStoreFunctions<Core.MenuStoreValues> & Core.MenuStoreFunctions<Core.MenuStoreValues> & import("@ariakit/core/utils/store").Store<Core.MenuStoreState<Core.MenuStoreValues>> & {
18
12
  useState: {
19
13
  (): Core.MenuStoreState<Core.MenuStoreValues>;
20
- <K_1 extends keyof Core.MenuStoreState<Core.MenuStoreValues>>(key: K_1): Core.MenuStoreState<Core.MenuStoreValues>[K_1];
21
- <V_1>(selector: (state: Core.MenuStoreState<Core.MenuStoreValues>) => V_1): V_1;
14
+ <K extends keyof Core.MenuStoreState<Core.MenuStoreValues>>(key: K): Core.MenuStoreState<Core.MenuStoreValues>[K];
15
+ <V>(selector: (state: Core.MenuStoreState<Core.MenuStoreValues>) => V): V;
22
16
  };
23
17
  } & Core.MenuStoreFunctions<{
24
18
  [x: string]: string | number | boolean | (string | number)[];
25
19
  }> & import("@ariakit/core/utils/store").Store<Core.MenuStoreState<{
26
20
  [x: string]: string | number | boolean | (string | number)[];
27
21
  }>>) | null | undefined;
28
- menubar: (import("../menubar/menubar-store.js").MenubarStoreFunctions & import("@ariakit/core/composite/composite-store").CompositeStoreFunctions<{
29
- id: string;
30
- element?: HTMLElement | null | undefined;
31
- } & {
32
- rowId?: string | undefined;
33
- disabled?: boolean | undefined;
34
- children?: string | undefined;
35
- }> & import("@ariakit/core/utils/store").Store<import("@ariakit/core/composite/composite-store").CompositeStoreState<{
36
- id: string;
37
- element?: HTMLElement | null | undefined;
38
- } & {
39
- rowId?: string | undefined;
40
- disabled?: boolean | undefined;
41
- children?: string | undefined;
42
- }>> & {
22
+ menubar: (import("../menubar/menubar-store.js").MenubarStoreFunctions & import("@ariakit/core/menubar/menubar-store").MenubarStore & {
43
23
  useState: {
44
- (): import("@ariakit/core/composite/composite-store").CompositeStoreState<{
45
- id: string;
46
- element?: HTMLElement | null | undefined;
47
- } & {
48
- rowId?: string | undefined;
49
- disabled?: boolean | undefined;
50
- children?: string | undefined;
51
- }>;
52
- <K_2 extends keyof import("@ariakit/core/composite/composite-store").CompositeStoreState<{
53
- id: string;
54
- element?: HTMLElement | null | undefined;
55
- } & {
56
- rowId?: string | undefined;
57
- disabled?: boolean | undefined;
58
- children?: string | undefined;
59
- }>>(key: K_2): import("@ariakit/core/composite/composite-store").CompositeStoreState<{
60
- id: string;
61
- element?: HTMLElement | null | undefined;
62
- } & {
63
- rowId?: string | undefined;
64
- disabled?: boolean | undefined;
65
- children?: string | undefined;
66
- }>[K_2];
67
- <V_2>(selector: (state: import("@ariakit/core/composite/composite-store").CompositeStoreState<{
68
- id: string;
69
- element?: HTMLElement | null | undefined;
70
- } & {
71
- rowId?: string | undefined;
72
- disabled?: boolean | undefined;
73
- children?: string | undefined;
74
- }>) => V_2): V_2;
24
+ (): import("@ariakit/core/menubar/menubar-store").MenubarStoreState;
25
+ <K_1 extends keyof import("@ariakit/core/menubar/menubar-store").MenubarStoreState>(key: K_1): import("@ariakit/core/menubar/menubar-store").MenubarStoreState[K_1];
26
+ <V_1>(selector: (state: import("@ariakit/core/menubar/menubar-store").MenubarStoreState) => V_1): V_1;
75
27
  };
76
28
  }) | null | undefined;
77
29
  };
@@ -7,71 +7,23 @@ import type { MenubarStore } from "../menubar/menubar-store.js";
7
7
  import type { Store } from "../utils/store.js";
8
8
  type Values = Core.MenuStoreValues;
9
9
  export declare function useMenuStoreProps<T extends Core.MenuStore>(store: T, update: () => void, props: MenuStoreProps): T & {
10
- combobox: (import("../combobox/combobox-store.js").ComboboxStoreFunctions & import("@ariakit/core/combobox/combobox-store").ComboboxStoreFunctions & import("@ariakit/core/utils/store").Store<import("@ariakit/core/combobox/combobox-store").ComboboxStoreState> & {
11
- useState: {
12
- (): import("@ariakit/core/combobox/combobox-store").ComboboxStoreState;
13
- <K extends keyof import("@ariakit/core/combobox/combobox-store").ComboboxStoreState>(key: K): import("@ariakit/core/combobox/combobox-store").ComboboxStoreState[K];
14
- <V>(selector: (state: import("@ariakit/core/combobox/combobox-store").ComboboxStoreState) => V): V;
15
- };
16
- }) | null | undefined;
10
+ combobox: (ComboboxStore<string | string[]> & import("@ariakit/core/combobox/combobox-store").ComboboxStore<string | string[]>) | null | undefined;
17
11
  parent: (MenuStoreFunctions<Core.MenuStoreValues> & Core.MenuStoreFunctions<Core.MenuStoreValues> & import("@ariakit/core/utils/store").Store<Core.MenuStoreState<Core.MenuStoreValues>> & {
18
12
  useState: {
19
13
  (): Core.MenuStoreState<Core.MenuStoreValues>;
20
- <K_1 extends keyof Core.MenuStoreState<Core.MenuStoreValues>>(key: K_1): Core.MenuStoreState<Core.MenuStoreValues>[K_1];
21
- <V_1>(selector: (state: Core.MenuStoreState<Core.MenuStoreValues>) => V_1): V_1;
14
+ <K extends keyof Core.MenuStoreState<Core.MenuStoreValues>>(key: K): Core.MenuStoreState<Core.MenuStoreValues>[K];
15
+ <V>(selector: (state: Core.MenuStoreState<Core.MenuStoreValues>) => V): V;
22
16
  };
23
17
  } & Core.MenuStoreFunctions<{
24
18
  [x: string]: string | number | boolean | (string | number)[];
25
19
  }> & import("@ariakit/core/utils/store").Store<Core.MenuStoreState<{
26
20
  [x: string]: string | number | boolean | (string | number)[];
27
21
  }>>) | null | undefined;
28
- menubar: (import("../menubar/menubar-store.js").MenubarStoreFunctions & import("@ariakit/core/composite/composite-store").CompositeStoreFunctions<{
29
- id: string;
30
- element?: HTMLElement | null | undefined;
31
- } & {
32
- rowId?: string | undefined;
33
- disabled?: boolean | undefined;
34
- children?: string | undefined;
35
- }> & import("@ariakit/core/utils/store").Store<import("@ariakit/core/composite/composite-store").CompositeStoreState<{
36
- id: string;
37
- element?: HTMLElement | null | undefined;
38
- } & {
39
- rowId?: string | undefined;
40
- disabled?: boolean | undefined;
41
- children?: string | undefined;
42
- }>> & {
22
+ menubar: (import("../menubar/menubar-store.js").MenubarStoreFunctions & import("@ariakit/core/menubar/menubar-store").MenubarStore & {
43
23
  useState: {
44
- (): import("@ariakit/core/composite/composite-store").CompositeStoreState<{
45
- id: string;
46
- element?: HTMLElement | null | undefined;
47
- } & {
48
- rowId?: string | undefined;
49
- disabled?: boolean | undefined;
50
- children?: string | undefined;
51
- }>;
52
- <K_2 extends keyof import("@ariakit/core/composite/composite-store").CompositeStoreState<{
53
- id: string;
54
- element?: HTMLElement | null | undefined;
55
- } & {
56
- rowId?: string | undefined;
57
- disabled?: boolean | undefined;
58
- children?: string | undefined;
59
- }>>(key: K_2): import("@ariakit/core/composite/composite-store").CompositeStoreState<{
60
- id: string;
61
- element?: HTMLElement | null | undefined;
62
- } & {
63
- rowId?: string | undefined;
64
- disabled?: boolean | undefined;
65
- children?: string | undefined;
66
- }>[K_2];
67
- <V_2>(selector: (state: import("@ariakit/core/composite/composite-store").CompositeStoreState<{
68
- id: string;
69
- element?: HTMLElement | null | undefined;
70
- } & {
71
- rowId?: string | undefined;
72
- disabled?: boolean | undefined;
73
- children?: string | undefined;
74
- }>) => V_2): V_2;
24
+ (): import("@ariakit/core/menubar/menubar-store").MenubarStoreState;
25
+ <K_1 extends keyof import("@ariakit/core/menubar/menubar-store").MenubarStoreState>(key: K_1): import("@ariakit/core/menubar/menubar-store").MenubarStoreState[K_1];
26
+ <V_1>(selector: (state: import("@ariakit/core/menubar/menubar-store").MenubarStoreState) => V_1): V_1;
75
27
  };
76
28
  }) | null | undefined;
77
29
  };
package/cjs/menu/menu.cjs CHANGED
@@ -13,9 +13,9 @@ require('../__chunks/UZNYSPKP.cjs');
13
13
  require('../__chunks/BZTDJIVT.cjs');
14
14
 
15
15
 
16
- var _45RPYV4Jcjs = require('../__chunks/45RPYV4J.cjs');
16
+ var _EQ4A5RPWcjs = require('../__chunks/EQ4A5RPW.cjs');
17
17
  require('../__chunks/KXQOQQ5B.cjs');
18
- require('../__chunks/ISGOCBDC.cjs');
18
+ require('../__chunks/RIZYIKBE.cjs');
19
19
 
20
20
 
21
21
  var _XFPRAS3Jcjs = require('../__chunks/XFPRAS3J.cjs');
@@ -144,7 +144,7 @@ var useMenu = _RNZNGEL4cjs.createHook.call(void 0,
144
144
  const modal = hasParentMenu ? false : modalProp;
145
145
  const mayAutoFocusOnShow = !!autoFocusOnShow;
146
146
  const canAutoFocusOnShow = !!initialFocusRef || !!props.initialFocus || !!modal;
147
- props = _45RPYV4Jcjs.useHovercard.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
147
+ props = _EQ4A5RPWcjs.useHovercard.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
148
148
  store,
149
149
  alwaysVisible,
150
150
  initialFocus: initialFocusRef,
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _ISGOCBDCcjs = require('../__chunks/ISGOCBDC.cjs');
5
+ var _RIZYIKBEcjs = require('../__chunks/RIZYIKBE.cjs');
6
6
  require('../__chunks/XFPRAS3J.cjs');
7
7
  require('../__chunks/SHOS7XOU.cjs');
8
8
  require('../__chunks/NKR65BKC.cjs');
@@ -42,4 +42,4 @@ require('../__chunks/AV6KTKLE.cjs');
42
42
 
43
43
 
44
44
 
45
- exports.Popover = _ISGOCBDCcjs.Popover; exports.usePopover = _ISGOCBDCcjs.usePopover;
45
+ exports.Popover = _RIZYIKBEcjs.Popover; exports.usePopover = _RIZYIKBEcjs.usePopover;
@@ -43,6 +43,9 @@ export interface PopoverOptions<T extends As = "div"> extends DialogOptions<T> {
43
43
  /**
44
44
  * Props that will be passed to the popover wrapper element. This element will
45
45
  * be used to position the popover.
46
+ *
47
+ * Live examples:
48
+ * - [Navigation Menubar](https://ariakit.org/examples/menubar-navigation)
46
49
  */
47
50
  wrapperProps?: HTMLAttributes<HTMLDivElement>;
48
51
  /**
@@ -68,6 +71,7 @@ export interface PopoverOptions<T extends As = "div"> extends DialogOptions<T> {
68
71
  * negative values to make the popover shift to the opposite side.
69
72
  *
70
73
  * Live examples:
74
+ * - [Navigation Menubar](https://ariakit.org/examples/menubar-navigation)
71
75
  * - [Submenu](https://ariakit.org/examples/menu-nested)
72
76
  * - [Menubar](https://ariakit.org/components/menubar)
73
77
  * @default 0
@@ -43,6 +43,9 @@ export interface PopoverOptions<T extends As = "div"> extends DialogOptions<T> {
43
43
  /**
44
44
  * Props that will be passed to the popover wrapper element. This element will
45
45
  * be used to position the popover.
46
+ *
47
+ * Live examples:
48
+ * - [Navigation Menubar](https://ariakit.org/examples/menubar-navigation)
46
49
  */
47
50
  wrapperProps?: HTMLAttributes<HTMLDivElement>;
48
51
  /**
@@ -68,6 +71,7 @@ export interface PopoverOptions<T extends As = "div"> extends DialogOptions<T> {
68
71
  * negative values to make the popover shift to the opposite side.
69
72
  *
70
73
  * Live examples:
74
+ * - [Navigation Menubar](https://ariakit.org/examples/menubar-navigation)
71
75
  * - [Submenu](https://ariakit.org/examples/menu-nested)
72
76
  * - [Menubar](https://ariakit.org/components/menubar)
73
77
  * @default 0
@@ -83,7 +83,8 @@ export interface PortalOptions<T extends As = "div"> extends Options<T> {
83
83
  * Determines whether the element should be rendered as a React Portal.
84
84
  *
85
85
  * Live examples:
86
- * - [ComboboxGroup](https://ariakit.org/examples/combobox-group)
86
+ * - [Combobox with integrated
87
+ * filter](https://ariakit.org/examples/combobox-filtering-integrated)
87
88
  * - [Dialog with Menu](https://ariakit.org/examples/dialog-menu)
88
89
  * - [Hovercard with keyboard
89
90
  * support](https://ariakit.org/examples/hovercard-disclosure)
@@ -97,6 +98,9 @@ export interface PortalOptions<T extends As = "div"> extends Options<T> {
97
98
  * An HTML element or a memoized callback function that returns an HTML
98
99
  * element to be used as the portal element. By default, the portal element
99
100
  * will be a `div` element appended to the `document.body`.
101
+ *
102
+ * Live examples:
103
+ * - [Navigation Menubar](https://ariakit.org/examples/menubar-navigation)
100
104
  * @example
101
105
  * ```jsx
102
106
  * const [portal, setPortal] = useState(null);
@@ -83,7 +83,8 @@ export interface PortalOptions<T extends As = "div"> extends Options<T> {
83
83
  * Determines whether the element should be rendered as a React Portal.
84
84
  *
85
85
  * Live examples:
86
- * - [ComboboxGroup](https://ariakit.org/examples/combobox-group)
86
+ * - [Combobox with integrated
87
+ * filter](https://ariakit.org/examples/combobox-filtering-integrated)
87
88
  * - [Dialog with Menu](https://ariakit.org/examples/dialog-menu)
88
89
  * - [Hovercard with keyboard
89
90
  * support](https://ariakit.org/examples/hovercard-disclosure)
@@ -97,6 +98,9 @@ export interface PortalOptions<T extends As = "div"> extends Options<T> {
97
98
  * An HTML element or a memoized callback function that returns an HTML
98
99
  * element to be used as the portal element. By default, the portal element
99
100
  * will be a `div` element appended to the `document.body`.
101
+ *
102
+ * Live examples:
103
+ * - [Navigation Menubar](https://ariakit.org/examples/menubar-navigation)
100
104
  * @example
101
105
  * ```jsx
102
106
  * const [portal, setPortal] = useState(null);
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _RRW7YVFRcjs = require('../__chunks/RRW7YVFR.cjs');
4
+ var _IPYAEPOTcjs = require('../__chunks/IPYAEPOT.cjs');
5
5
 
6
6
 
7
7
 
@@ -45,9 +45,9 @@ var _events = require('@ariakit/core/utils/events');
45
45
  var _misc = require('@ariakit/core/utils/misc');
46
46
  var _jsxruntime = require('react/jsx-runtime');
47
47
  function isSelected(storeValue, itemValue) {
48
- if (storeValue == null)
49
- return false;
50
48
  if (itemValue == null)
49
+ return;
50
+ if (storeValue == null)
51
51
  return false;
52
52
  if (Array.isArray(storeValue)) {
53
53
  return storeValue.includes(itemValue);
@@ -127,7 +127,7 @@ var useSelectItem = _RNZNGEL4cjs.createHook.call(void 0,
127
127
  const selected = store.useState((state) => isSelected(state.value, value));
128
128
  props = _EO6LS72Hcjs.useWrapElement.call(void 0,
129
129
  props,
130
- (element) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _2WCJJQSKcjs.SelectItemCheckedContext.Provider, { value: selected, children: element }),
130
+ (element) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _2WCJJQSKcjs.SelectItemCheckedContext.Provider, { value: selected != null ? selected : false, children: element }),
131
131
  [selected]
132
132
  );
133
133
  const contentElement = store.useState("contentElement");
@@ -158,7 +158,7 @@ var useSelectItem = _RNZNGEL4cjs.createHook.call(void 0,
158
158
  preventScrollOnKeyDown
159
159
  }, props));
160
160
  const focusOnHoverProp = _EO6LS72Hcjs.useBooleanEvent.call(void 0, focusOnHover);
161
- props = _RRW7YVFRcjs.useCompositeHover.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
161
+ props = _IPYAEPOTcjs.useCompositeHover.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
162
162
  store
163
163
  }, props), {
164
164
  // We have to disable focusOnHover when the popup is closed, otherwise
@@ -29,7 +29,7 @@ var _misc = require('@ariakit/core/utils/misc');
29
29
  var useSelectLabel = _RNZNGEL4cjs.createHook.call(void 0,
30
30
  (_a) => {
31
31
  var _b = _a, { store } = _b, props = _AV6KTKLEcjs.__objRest.call(void 0, _b, ["store"]);
32
- const context = _2WCJJQSKcjs.useSelectScopedContext.call(void 0, );
32
+ const context = _2WCJJQSKcjs.useSelectProviderContext.call(void 0, );
33
33
  store = store || context;
34
34
  _misc.invariant.call(void 0,
35
35
  store,
@@ -12,7 +12,7 @@ require('../__chunks/UZNYSPKP.cjs');
12
12
  require('../__chunks/BZTDJIVT.cjs');
13
13
 
14
14
 
15
- var _ISGOCBDCcjs = require('../__chunks/ISGOCBDC.cjs');
15
+ var _RIZYIKBEcjs = require('../__chunks/RIZYIKBE.cjs');
16
16
 
17
17
 
18
18
  var _XFPRAS3Jcjs = require('../__chunks/XFPRAS3J.cjs');
@@ -66,7 +66,7 @@ var useSelectPopover = _RNZNGEL4cjs.createHook.call(void 0,
66
66
  const context = _2WCJJQSKcjs.useSelectProviderContext.call(void 0, );
67
67
  store = store || context;
68
68
  props = _F24A3PBWcjs.useSelectList.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store, alwaysVisible }, props));
69
- props = _ISGOCBDCcjs.usePopover.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store, alwaysVisible }, props));
69
+ props = _RIZYIKBEcjs.usePopover.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store, alwaysVisible }, props));
70
70
  return props;
71
71
  }
72
72
  );
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _CILQPSH2cjs = require('../__chunks/CILQPSH2.cjs');
5
- require('../__chunks/VEG6PRAG.cjs');
4
+ var _FA25CV2Icjs = require('../__chunks/FA25CV2I.cjs');
5
+ require('../__chunks/3WCBE6SU.cjs');
6
6
 
7
7
 
8
8
  var _2WCJJQSKcjs = require('../__chunks/2WCJJQSK.cjs');
@@ -25,7 +25,7 @@ require('../__chunks/AV6KTKLE.cjs');
25
25
  // src/select/select-provider.tsx
26
26
  var _jsxruntime = require('react/jsx-runtime');
27
27
  function SelectProvider(props = {}) {
28
- const store = _CILQPSH2cjs.useSelectStore.call(void 0, props);
28
+ const store = _FA25CV2Icjs.useSelectStore.call(void 0, props);
29
29
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _2WCJJQSKcjs.SelectContextProvider, { value: store, children: props.children });
30
30
  }
31
31
 
@@ -2,8 +2,8 @@
2
2
 
3
3
 
4
4
 
5
- var _CILQPSH2cjs = require('../__chunks/CILQPSH2.cjs');
6
- require('../__chunks/VEG6PRAG.cjs');
5
+ var _FA25CV2Icjs = require('../__chunks/FA25CV2I.cjs');
6
+ require('../__chunks/3WCBE6SU.cjs');
7
7
  require('../__chunks/A5RWZSX7.cjs');
8
8
  require('../__chunks/TUVU5ERH.cjs');
9
9
  require('../__chunks/UZNYSPKP.cjs');
@@ -22,4 +22,4 @@ require('../__chunks/AV6KTKLE.cjs');
22
22
 
23
23
 
24
24
 
25
- exports.useSelectStore = _CILQPSH2cjs.useSelectStore; exports.useSelectStoreProps = _CILQPSH2cjs.useSelectStoreProps;
25
+ exports.useSelectStore = _FA25CV2Icjs.useSelectStore; exports.useSelectStoreProps = _FA25CV2Icjs.useSelectStoreProps;
@@ -7,13 +7,7 @@ import type { Store } from "../utils/store.js";
7
7
  type Item = Core.SelectStoreItem;
8
8
  type Value = Core.SelectStoreValue;
9
9
  export declare function useSelectStoreProps<T extends Core.SelectStore>(store: T, update: () => void, props: SelectStoreProps): T & {
10
- combobox: (import("../combobox/combobox-store.js").ComboboxStoreFunctions & import("@ariakit/core/combobox/combobox-store").ComboboxStoreFunctions & import("@ariakit/core/utils/store").Store<import("@ariakit/core/combobox/combobox-store").ComboboxStoreState> & {
11
- useState: {
12
- (): import("@ariakit/core/combobox/combobox-store").ComboboxStoreState;
13
- <K extends keyof import("@ariakit/core/combobox/combobox-store").ComboboxStoreState>(key: K): import("@ariakit/core/combobox/combobox-store").ComboboxStoreState[K];
14
- <V>(selector: (state: import("@ariakit/core/combobox/combobox-store").ComboboxStoreState) => V): V;
15
- };
16
- }) | null | undefined;
10
+ combobox: (ComboboxStore<string | string[]> & import("@ariakit/core/combobox/combobox-store").ComboboxStore<string | string[]>) | null | undefined;
17
11
  };
18
12
  /**
19
13
  * Creates a select store.
@@ -7,13 +7,7 @@ import type { Store } from "../utils/store.js";
7
7
  type Item = Core.SelectStoreItem;
8
8
  type Value = Core.SelectStoreValue;
9
9
  export declare function useSelectStoreProps<T extends Core.SelectStore>(store: T, update: () => void, props: SelectStoreProps): T & {
10
- combobox: (import("../combobox/combobox-store.js").ComboboxStoreFunctions & import("@ariakit/core/combobox/combobox-store").ComboboxStoreFunctions & import("@ariakit/core/utils/store").Store<import("@ariakit/core/combobox/combobox-store").ComboboxStoreState> & {
11
- useState: {
12
- (): import("@ariakit/core/combobox/combobox-store").ComboboxStoreState;
13
- <K extends keyof import("@ariakit/core/combobox/combobox-store").ComboboxStoreState>(key: K): import("@ariakit/core/combobox/combobox-store").ComboboxStoreState[K];
14
- <V>(selector: (state: import("@ariakit/core/combobox/combobox-store").ComboboxStoreState) => V): V;
15
- };
16
- }) | null | undefined;
10
+ combobox: (ComboboxStore<string | string[]> & import("@ariakit/core/combobox/combobox-store").ComboboxStore<string | string[]>) | null | undefined;
17
11
  };
18
12
  /**
19
13
  * Creates a select store.
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _45RPYV4Jcjs = require('../__chunks/45RPYV4J.cjs');
4
+ var _EQ4A5RPWcjs = require('../__chunks/EQ4A5RPW.cjs');
5
5
  require('../__chunks/KXQOQQ5B.cjs');
6
- require('../__chunks/ISGOCBDC.cjs');
6
+ require('../__chunks/RIZYIKBE.cjs');
7
7
 
8
8
 
9
9
  var _XFPRAS3Jcjs = require('../__chunks/XFPRAS3J.cjs');
@@ -94,7 +94,7 @@ var useTooltip = _RNZNGEL4cjs.createHook.call(void 0,
94
94
  (state) => state.type === "description" ? "tooltip" : "none"
95
95
  );
96
96
  props = _AV6KTKLEcjs.__spreadValues.call(void 0, { role }, props);
97
- props = _45RPYV4Jcjs.useHovercard.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {}, props), {
97
+ props = _EQ4A5RPWcjs.useHovercard.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {}, props), {
98
98
  store,
99
99
  portal,
100
100
  gutter,
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@ariakit/react-core/combobox/combobox-item-check",
3
+ "private": true,
4
+ "sideEffects": false,
5
+ "main": "../../cjs/combobox/combobox-item-check.cjs",
6
+ "module": "../../esm/combobox/combobox-item-check.js",
7
+ "types": "../../cjs/combobox/combobox-item-check.d.ts"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@ariakit/react-core/combobox/combobox-label",
3
+ "private": true,
4
+ "sideEffects": false,
5
+ "main": "../../cjs/combobox/combobox-label.cjs",
6
+ "module": "../../esm/combobox/combobox-label.js",
7
+ "types": "../../cjs/combobox/combobox-label.d.ts"
8
+ }
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  ComboboxScopedContextProvider,
4
4
  useComboboxProviderContext
5
- } from "./MTC2KUZZ.js";
5
+ } from "./W76OTZCC.js";
6
6
  import {
7
7
  isHidden
8
8
  } from "./A7CE3X6M.js";
@@ -15,6 +15,7 @@ import {
15
15
  createHook
16
16
  } from "./3ORBWXWF.js";
17
17
  import {
18
+ useAttribute,
18
19
  useEvent,
19
20
  useId,
20
21
  useMergeRefs,
@@ -90,11 +91,18 @@ var useComboboxList = createHook(
90
91
  const mounted = store.useState("mounted");
91
92
  const hidden = isHidden(mounted, props.hidden, alwaysVisible);
92
93
  const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: "none" }) : props.style;
94
+ const multiSelectable = store.useState(
95
+ (state) => Array.isArray(state.selectedValue)
96
+ );
97
+ const role = useAttribute(ref, "role", props.role);
98
+ const isCompositeRole = role === "listbox" || role === "tree" || role === "grid";
99
+ const ariaMultiSelectable = isCompositeRole ? multiSelectable || void 0 : void 0;
93
100
  props = __spreadProps(__spreadValues({
94
101
  id,
95
102
  hidden,
96
103
  role: "listbox",
97
- tabIndex: focusable ? -1 : void 0
104
+ tabIndex: focusable ? -1 : void 0,
105
+ "aria-multiselectable": ariaMultiSelectable
98
106
  }, props), {
99
107
  ref: useMergeRefs(id ? store.setContentElement : null, ref, props.ref),
100
108
  style,
@@ -7,7 +7,7 @@ import {
7
7
  } from "./KA4GX64Z.js";
8
8
  import {
9
9
  useComboboxProviderContext
10
- } from "./MTC2KUZZ.js";
10
+ } from "./W76OTZCC.js";
11
11
  import {
12
12
  useCompositeStoreProps
13
13
  } from "./ELWRSPQ7.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./YMV43K4F.js";
7
7
  import {
8
8
  usePopover
9
- } from "./KB2HXEVC.js";
9
+ } from "./WBQC3LL4.js";
10
10
  import {
11
11
  createDialogComponent
12
12
  } from "./U7WGY7YX.js";
@@ -10,7 +10,8 @@ import {
10
10
  import {
11
11
  useBooleanEvent,
12
12
  useEvent,
13
- useIsMouseMoving
13
+ useIsMouseMoving,
14
+ useMergeRefs
14
15
  } from "./6O5OEQGF.js";
15
16
  import {
16
17
  __objRest,
@@ -19,9 +20,10 @@ import {
19
20
  } from "./4R3V3JGP.js";
20
21
 
21
22
  // src/composite/composite-hover.ts
22
- import { closest, contains } from "@ariakit/core/utils/dom";
23
+ import { useCallback } from "react";
24
+ import { contains } from "@ariakit/core/utils/dom";
23
25
  import { hasFocus, hasFocusWithin } from "@ariakit/core/utils/focus";
24
- import { invariant } from "@ariakit/core/utils/misc";
26
+ import { hasOwnProperty, invariant } from "@ariakit/core/utils/misc";
25
27
  function getMouseDestination(event) {
26
28
  const relatedTarget = event.relatedTarget;
27
29
  if ((relatedTarget == null ? void 0 : relatedTarget.nodeType) === Node.ELEMENT_NODE) {
@@ -35,12 +37,17 @@ function hoveringInside(event) {
35
37
  return false;
36
38
  return contains(event.currentTarget, nextElement);
37
39
  }
40
+ var symbol = Symbol("composite-hover");
38
41
  function movingToAnotherItem(event) {
39
- const dest = getMouseDestination(event);
42
+ let dest = getMouseDestination(event);
40
43
  if (!dest)
41
44
  return false;
42
- const item = closest(dest, "[data-composite-hover]");
43
- return !!item;
45
+ do {
46
+ if (hasOwnProperty(dest, symbol) && dest[symbol])
47
+ return true;
48
+ dest = dest.parentElement;
49
+ } while (dest);
50
+ return false;
44
51
  }
45
52
  var useCompositeHover = createHook(
46
53
  (_a) => {
@@ -98,9 +105,13 @@ var useCompositeHover = createHook(
98
105
  store == null ? void 0 : store.setActiveId(null);
99
106
  (_a2 = store == null ? void 0 : store.getState().baseElement) == null ? void 0 : _a2.focus();
100
107
  });
101
- props = __spreadProps(__spreadValues({
102
- "data-composite-hover": ""
103
- }, props), {
108
+ const ref = useCallback((element) => {
109
+ if (!element)
110
+ return;
111
+ element[symbol] = true;
112
+ }, []);
113
+ props = __spreadProps(__spreadValues({}, props), {
114
+ ref: useMergeRefs(ref, props.ref),
104
115
  onMouseMove,
105
116
  onMouseLeave
106
117
  });
@@ -7,7 +7,7 @@ import {
7
7
  } from "./KA4GX64Z.js";
8
8
  import {
9
9
  useCompositeHover
10
- } from "./BRO2JF5P.js";
10
+ } from "./G6ONQ5EH.js";
11
11
  import {
12
12
  useCompositeItem
13
13
  } from "./5PEPOQU7.js";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  useComboboxProviderContext
4
- } from "./MTC2KUZZ.js";
4
+ } from "./W76OTZCC.js";
5
5
  import {
6
6
  useCompositeStoreProps
7
7
  } from "./ELWRSPQ7.js";
@@ -25,6 +25,7 @@ var ComboboxScopedContextProvider = ctx.ScopedContextProvider;
25
25
  var ComboboxItemValueContext = createContext(
26
26
  void 0
27
27
  );
28
+ var ComboboxItemCheckedContext = createContext(false);
28
29
 
29
30
  export {
30
31
  useComboboxContext,
@@ -32,5 +33,6 @@ export {
32
33
  useComboboxProviderContext,
33
34
  ComboboxContextProvider,
34
35
  ComboboxScopedContextProvider,
35
- ComboboxItemValueContext
36
+ ComboboxItemValueContext,
37
+ ComboboxItemCheckedContext
36
38
  };
@@ -16,7 +16,9 @@ function useComboboxStoreProps(store, update, props) {
16
16
  store = usePopoverStoreProps(store, update, props);
17
17
  store = useCompositeStoreProps(store, update, props);
18
18
  useStoreProps(store, props, "value", "setValue");
19
+ useStoreProps(store, props, "selectedValue", "setSelectedValue");
19
20
  useStoreProps(store, props, "resetValueOnHide");
21
+ useStoreProps(store, props, "resetValueOnSelect");
20
22
  return store;
21
23
  }
22
24
  function useComboboxStore(props = {}) {
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import {
3
- useCheckboxStore
4
- } from "../__chunks/BI7ZXWGY.js";
5
2
  import {
6
3
  CheckboxContextProvider
7
4
  } from "../__chunks/VPR2WHQV.js";
5
+ import {
6
+ useCheckboxStore
7
+ } from "../__chunks/BI7ZXWGY.js";
8
8
  import "../__chunks/3ORBWXWF.js";
9
9
  import "../__chunks/XF5ITC6P.js";
10
10
  import "../__chunks/6O5OEQGF.js";