@ariakit/react-core 0.4.4 → 0.4.5

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 (180) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/cjs/__chunks/{QUHFOHHT.cjs → 3HMQOCLF.cjs} +10 -27
  3. package/cjs/__chunks/{YO7LLGVA.cjs → AY5J25V7.cjs} +2 -2
  4. package/cjs/__chunks/{4XVTH6OR.cjs → DFXPO2ED.cjs} +2 -2
  5. package/cjs/__chunks/{HPNCFYQJ.cjs → GZ2NNSLV.cjs} +4 -4
  6. package/cjs/__chunks/ISJGSS4S.cjs +16 -0
  7. package/cjs/__chunks/{COWKMNMZ.cjs → N43E53E6.cjs} +3 -3
  8. package/cjs/__chunks/{54YZYOPA.cjs → NRPEUNJB.cjs} +2 -2
  9. package/cjs/__chunks/PVLZGFP6.cjs +34 -0
  10. package/cjs/__chunks/{ZTAE5B6W.cjs → QJDA4LG6.cjs} +19 -16
  11. package/cjs/__chunks/{NDVZ37O3.cjs → RG6U7KAS.cjs} +22 -4
  12. package/cjs/__chunks/YWAHOWYE.cjs +25 -0
  13. package/cjs/combobox/combobox-cancel.cjs +3 -3
  14. package/cjs/combobox/combobox-disclosure.cjs +3 -3
  15. package/cjs/combobox/combobox-item.cjs +19 -9
  16. package/cjs/combobox/combobox-item.d.cts +22 -12
  17. package/cjs/combobox/combobox-item.d.ts +22 -12
  18. package/cjs/combobox/combobox-popover.cjs +22 -15
  19. package/cjs/combobox/combobox-provider.cjs +3 -2
  20. package/cjs/combobox/combobox-store.cjs +6 -2
  21. package/cjs/combobox/combobox-store.d.cts +12 -4
  22. package/cjs/combobox/combobox-store.d.ts +12 -4
  23. package/cjs/combobox/combobox-value.cjs +32 -0
  24. package/cjs/combobox/combobox-value.d.cts +41 -0
  25. package/cjs/combobox/combobox-value.d.ts +41 -0
  26. package/cjs/combobox/combobox.cjs +66 -22
  27. package/cjs/composite/composite-item.cjs +3 -3
  28. package/cjs/composite/composite-overflow-disclosure.cjs +3 -3
  29. package/cjs/composite/composite-overflow.cjs +12 -12
  30. package/cjs/dialog/dialog-backdrop.cjs +3 -3
  31. package/cjs/dialog/dialog.cjs +11 -11
  32. package/cjs/dialog/dialog.d.cts +4 -0
  33. package/cjs/dialog/dialog.d.ts +4 -0
  34. package/cjs/dialog/utils/disable-tree.cjs +3 -3
  35. package/cjs/dialog/utils/use-prevent-body-scroll.cjs +3 -3
  36. package/cjs/form/form-checkbox.cjs +1 -1
  37. package/cjs/form/form-push.cjs +1 -1
  38. package/cjs/form/form-radio.cjs +4 -4
  39. package/cjs/hovercard/hovercard.cjs +13 -13
  40. package/cjs/menu/menu-item-checkbox.cjs +4 -4
  41. package/cjs/menu/menu-item-radio.cjs +7 -7
  42. package/cjs/menu/menu-item.cjs +4 -4
  43. package/cjs/menu/menu.cjs +14 -14
  44. package/cjs/popover/popover.cjs +12 -12
  45. package/cjs/radio/radio.cjs +4 -4
  46. package/cjs/select/select-item.cjs +4 -4
  47. package/cjs/select/select-popover.cjs +13 -13
  48. package/cjs/select/select-value.d.cts +8 -7
  49. package/cjs/select/select-value.d.ts +8 -7
  50. package/cjs/select/select.cjs +1 -1
  51. package/cjs/tab/tab-panel.cjs +2 -2
  52. package/cjs/tab/tab.cjs +7 -7
  53. package/cjs/tag/tag-context.cjs +25 -0
  54. package/cjs/tag/tag-context.d.cts +21 -0
  55. package/cjs/tag/tag-context.d.ts +21 -0
  56. package/cjs/tag/tag-input.cjs +191 -0
  57. package/cjs/tag/tag-input.d.cts +122 -0
  58. package/cjs/tag/tag-input.d.ts +122 -0
  59. package/cjs/tag/tag-list-label.cjs +56 -0
  60. package/cjs/tag/tag-list-label.d.cts +55 -0
  61. package/cjs/tag/tag-list-label.d.ts +55 -0
  62. package/cjs/tag/tag-list.cjs +141 -0
  63. package/cjs/tag/tag-list.d.cts +58 -0
  64. package/cjs/tag/tag-list.d.ts +58 -0
  65. package/cjs/tag/tag-provider.cjs +26 -0
  66. package/cjs/tag/tag-provider.d.cts +29 -0
  67. package/cjs/tag/tag-provider.d.ts +29 -0
  68. package/cjs/tag/tag-remove.cjs +119 -0
  69. package/cjs/tag/tag-remove.d.cts +67 -0
  70. package/cjs/tag/tag-remove.d.ts +67 -0
  71. package/cjs/tag/tag-store.cjs +15 -0
  72. package/cjs/tag/tag-store.d.cts +49 -0
  73. package/cjs/tag/tag-store.d.ts +49 -0
  74. package/cjs/tag/tag-value.cjs +29 -0
  75. package/cjs/tag/tag-value.d.cts +41 -0
  76. package/cjs/tag/tag-value.d.ts +41 -0
  77. package/cjs/tag/tag-values.cjs +29 -0
  78. package/cjs/tag/tag-values.d.cts +52 -0
  79. package/cjs/tag/tag-values.d.ts +52 -0
  80. package/cjs/tag/tag.cjs +130 -0
  81. package/cjs/tag/tag.d.cts +74 -0
  82. package/cjs/tag/tag.d.ts +74 -0
  83. package/cjs/tag/utils.cjs +8 -0
  84. package/cjs/tag/utils.d.cts +1 -0
  85. package/cjs/tag/utils.d.ts +1 -0
  86. package/cjs/toolbar/toolbar-container.cjs +4 -4
  87. package/cjs/toolbar/toolbar-input.cjs +4 -4
  88. package/cjs/toolbar/toolbar-item.cjs +4 -4
  89. package/cjs/tooltip/tooltip.cjs +14 -14
  90. package/combobox/combobox-value/package.json +8 -0
  91. package/esm/__chunks/{XEJ23EM6.js → 65LF6MEO.js} +2 -2
  92. package/esm/__chunks/{LTYEFENI.js → 6YVAEELE.js} +1 -1
  93. package/esm/__chunks/{ZFEEEZVE.js → DLLQM6DZ.js} +22 -4
  94. package/esm/__chunks/{IOUGWXY5.js → FGHVVLPU.js} +20 -17
  95. package/esm/__chunks/L7IM35RU.js +16 -0
  96. package/esm/__chunks/{NFPDVAAW.js → M354SEUF.js} +1 -1
  97. package/esm/__chunks/QNNHZL3W.js +25 -0
  98. package/esm/__chunks/{DSUHLHLE.js → QZJOXZKA.js} +1 -1
  99. package/esm/__chunks/{NHVUMSP7.js → UKDZLPKH.js} +1 -1
  100. package/esm/__chunks/{R33ISPJY.js → VGORKDMQ.js} +11 -28
  101. package/esm/__chunks/WYDDZRWN.js +34 -0
  102. package/esm/combobox/combobox-cancel.js +3 -3
  103. package/esm/combobox/combobox-disclosure.js +3 -3
  104. package/esm/combobox/combobox-item.d.ts +22 -12
  105. package/esm/combobox/combobox-item.js +19 -9
  106. package/esm/combobox/combobox-popover.js +20 -13
  107. package/esm/combobox/combobox-provider.js +2 -1
  108. package/esm/combobox/combobox-store.d.ts +12 -4
  109. package/esm/combobox/combobox-store.js +5 -1
  110. package/esm/combobox/combobox-value.d.ts +41 -0
  111. package/esm/combobox/combobox-value.js +32 -0
  112. package/esm/combobox/combobox.js +67 -23
  113. package/esm/composite/composite-item.js +2 -2
  114. package/esm/composite/composite-overflow-disclosure.js +2 -2
  115. package/esm/composite/composite-overflow.js +11 -11
  116. package/esm/dialog/dialog-backdrop.js +2 -2
  117. package/esm/dialog/dialog.d.ts +4 -0
  118. package/esm/dialog/dialog.js +10 -10
  119. package/esm/dialog/utils/disable-tree.js +2 -2
  120. package/esm/dialog/utils/use-prevent-body-scroll.js +2 -2
  121. package/esm/form/form-checkbox.js +1 -1
  122. package/esm/form/form-push.js +1 -1
  123. package/esm/form/form-radio.js +3 -3
  124. package/esm/hovercard/hovercard.js +12 -12
  125. package/esm/menu/menu-item-checkbox.js +3 -3
  126. package/esm/menu/menu-item-radio.js +5 -5
  127. package/esm/menu/menu-item.js +3 -3
  128. package/esm/menu/menu.js +12 -12
  129. package/esm/popover/popover.js +11 -11
  130. package/esm/radio/radio.js +3 -3
  131. package/esm/select/select-item.js +4 -4
  132. package/esm/select/select-popover.js +11 -11
  133. package/esm/select/select-value.d.ts +8 -7
  134. package/esm/select/select.js +1 -1
  135. package/esm/tab/tab-panel.js +3 -3
  136. package/esm/tab/tab.js +5 -5
  137. package/esm/tag/tag-context.d.ts +21 -0
  138. package/esm/tag/tag-context.js +25 -0
  139. package/esm/tag/tag-input.d.ts +122 -0
  140. package/esm/tag/tag-input.js +191 -0
  141. package/esm/tag/tag-list-label.d.ts +55 -0
  142. package/esm/tag/tag-list-label.js +56 -0
  143. package/esm/tag/tag-list.d.ts +58 -0
  144. package/esm/tag/tag-list.js +141 -0
  145. package/esm/tag/tag-provider.d.ts +29 -0
  146. package/esm/tag/tag-provider.js +26 -0
  147. package/esm/tag/tag-remove.d.ts +67 -0
  148. package/esm/tag/tag-remove.js +119 -0
  149. package/esm/tag/tag-store.d.ts +49 -0
  150. package/esm/tag/tag-store.js +15 -0
  151. package/esm/tag/tag-value.d.ts +41 -0
  152. package/esm/tag/tag-value.js +29 -0
  153. package/esm/tag/tag-values.d.ts +52 -0
  154. package/esm/tag/tag-values.js +29 -0
  155. package/esm/tag/tag.d.ts +74 -0
  156. package/esm/tag/tag.js +130 -0
  157. package/esm/tag/utils.d.ts +1 -0
  158. package/esm/tag/utils.js +8 -0
  159. package/esm/toolbar/toolbar-container.js +3 -3
  160. package/esm/toolbar/toolbar-input.js +3 -3
  161. package/esm/toolbar/toolbar-item.js +3 -3
  162. package/esm/tooltip/tooltip.js +12 -12
  163. package/package.json +86 -2
  164. package/tag/tag/package.json +8 -0
  165. package/tag/tag-context/package.json +8 -0
  166. package/tag/tag-input/package.json +8 -0
  167. package/tag/tag-list/package.json +8 -0
  168. package/tag/tag-list-label/package.json +8 -0
  169. package/tag/tag-provider/package.json +8 -0
  170. package/tag/tag-remove/package.json +8 -0
  171. package/tag/tag-store/package.json +8 -0
  172. package/tag/tag-value/package.json +8 -0
  173. package/tag/tag-values/package.json +8 -0
  174. package/tag/utils/package.json +8 -0
  175. package/cjs/__chunks/{37BRXQN7.cjs → BX2QEIBH.cjs} +3 -3
  176. package/cjs/__chunks/{PVYTX5U5.cjs → SL55T4ZB.cjs} +2 -2
  177. package/cjs/__chunks/{TSEXNK3K.cjs → VR6GCLOV.cjs} +2 -2
  178. package/esm/__chunks/{PTPUIM7N.js → 3TEK3C5Q.js} +3 -3
  179. package/esm/__chunks/{U2L67A6K.js → BC72XE6E.js} +3 -3
  180. package/esm/__chunks/{GOXKZAQI.js → CMFBAHKI.js} +3 -3
@@ -0,0 +1,74 @@
1
+ import type { ElementType, KeyboardEvent } from "react";
2
+ import type { BooleanOrCallback } from "@ariakit/core/utils/types";
3
+ import type { CompositeItemOptions } from "../composite/composite-item.js";
4
+ import type { Props } from "../utils/types.js";
5
+ import type { TagStore } from "./tag-store.js";
6
+ declare const TagName = "div";
7
+ type TagName = typeof TagName;
8
+ type HTMLType = HTMLElementTagNameMap[TagName];
9
+ /**
10
+ * Returns props to create a `Tag` component.
11
+ * @see https://ariakit.org/components/tag
12
+ * @example
13
+ * ```jsx
14
+ * const props = useTag();
15
+ * <Role.div {...props} />
16
+ * ```
17
+ */
18
+ export declare const useTag: import("../utils/types.js").Hook<"div", TagOptions<"div">>;
19
+ /**
20
+ * Renders a tag element inside a
21
+ * [`TagList`](https://ariakit.org/reference/tag-list) wrapper.
22
+ *
23
+ * The user can remove the tag by pressing `Backspace` or `Delete` keys when the
24
+ * tag is focused. The
25
+ * [`removeOnKeyPress`](https://ariakit.org/reference/tag#removeonkeypress) prop
26
+ * can be used to disable this behavior.
27
+ *
28
+ * When a printable key is pressed, the focus is automatically moved to the
29
+ * input element.
30
+ * @see https://ariakit.org/components/tag
31
+ * @example
32
+ * ```jsx {7-10}
33
+ * <TagProvider>
34
+ * <TagListLabel>Invitees</TagListLabel>
35
+ * <TagList>
36
+ * <TagValues>
37
+ * {(values) =>
38
+ * values.map((value) => (
39
+ * <Tag key={value} value={value}>
40
+ * {value}
41
+ * <TagRemove />
42
+ * </Tag>
43
+ * ))
44
+ * }
45
+ * </TagValues>
46
+ * <TagInput />
47
+ * </TagList>
48
+ * </TagProvider>
49
+ * ```
50
+ */
51
+ export declare const Tag: (props: TagProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
52
+ export interface TagOptions<T extends ElementType = TagName> extends CompositeItemOptions<T> {
53
+ /**
54
+ * Object returned by the
55
+ * [`useTagStore`](https://ariakit.org/reference/use-tag-store) hook. If not
56
+ * provided, the closest [`TagList`](https://ariakit.org/reference/tag-list)
57
+ * component's context will be used.
58
+ */
59
+ store?: TagStore;
60
+ /**
61
+ * The unique value of the tag. This is automatically rendered as the tag's
62
+ * content if no children are provided.
63
+ */
64
+ value: string;
65
+ /**
66
+ * Defines the behavior of the `Backspace` and `Delete` keys when the tag is
67
+ * focused. If `true`, the tag is removed. If it's a function, it's invoked
68
+ * with the key event and should return a boolean.
69
+ * @default true
70
+ */
71
+ removeOnKeyPress?: BooleanOrCallback<KeyboardEvent<HTMLType>>;
72
+ }
73
+ export type TagProps<T extends ElementType = TagName> = Props<T, TagOptions<T>>;
74
+ export {};
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+ var _ISJGSS4Scjs = require('../__chunks/ISJGSS4S.cjs');
5
+ require('../__chunks/AV6KTKLE.cjs');
6
+
7
+
8
+ exports.useTouchDevice = _ISJGSS4Scjs.useTouchDevice;
@@ -0,0 +1 @@
1
+ export declare function useTouchDevice(): boolean;
@@ -0,0 +1 @@
1
+ export declare function useTouchDevice(): boolean;
@@ -4,10 +4,10 @@
4
4
  var _MJP4XPFZcjs = require('../__chunks/MJP4XPFZ.cjs');
5
5
 
6
6
 
7
- var _YO7LLGVAcjs = require('../__chunks/YO7LLGVA.cjs');
8
- require('../__chunks/QUHFOHHT.cjs');
9
- require('../__chunks/U4NXCMZ3.cjs');
7
+ var _AY5J25V7cjs = require('../__chunks/AY5J25V7.cjs');
8
+ require('../__chunks/3HMQOCLF.cjs');
10
9
  require('../__chunks/HD5AHCRI.cjs');
10
+ require('../__chunks/U4NXCMZ3.cjs');
11
11
  require('../__chunks/6ZZYUFPW.cjs');
12
12
 
13
13
 
@@ -38,7 +38,7 @@ var useToolbarContainer = _NGD3IQDBcjs.createHook.call(void 0,
38
38
  const context = _MVDQWSSVcjs.useToolbarContext.call(void 0, );
39
39
  store = store || context;
40
40
  props = _MJP4XPFZcjs.useCompositeContainer.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store }, props));
41
- props = _YO7LLGVAcjs.useToolbarItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store }, props));
41
+ props = _AY5J25V7cjs.useToolbarItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store }, props));
42
42
  return props;
43
43
  }
44
44
  );
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _YO7LLGVAcjs = require('../__chunks/YO7LLGVA.cjs');
5
- require('../__chunks/QUHFOHHT.cjs');
6
- require('../__chunks/U4NXCMZ3.cjs');
4
+ var _AY5J25V7cjs = require('../__chunks/AY5J25V7.cjs');
5
+ require('../__chunks/3HMQOCLF.cjs');
7
6
  require('../__chunks/HD5AHCRI.cjs');
7
+ require('../__chunks/U4NXCMZ3.cjs');
8
8
  require('../__chunks/6ZZYUFPW.cjs');
9
9
 
10
10
 
@@ -34,7 +34,7 @@ var useToolbarInput = _NGD3IQDBcjs.createHook.call(void 0,
34
34
  var _b = _a, { store } = _b, props = _AV6KTKLEcjs.__objRest.call(void 0, _b, ["store"]);
35
35
  const context = _MVDQWSSVcjs.useToolbarContext.call(void 0, );
36
36
  store = store || context;
37
- props = _YO7LLGVAcjs.useToolbarItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store }, props));
37
+ props = _AY5J25V7cjs.useToolbarItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store }, props));
38
38
  return props;
39
39
  }
40
40
  );
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _YO7LLGVAcjs = require('../__chunks/YO7LLGVA.cjs');
6
- require('../__chunks/QUHFOHHT.cjs');
7
- require('../__chunks/U4NXCMZ3.cjs');
5
+ var _AY5J25V7cjs = require('../__chunks/AY5J25V7.cjs');
6
+ require('../__chunks/3HMQOCLF.cjs');
8
7
  require('../__chunks/HD5AHCRI.cjs');
8
+ require('../__chunks/U4NXCMZ3.cjs');
9
9
  require('../__chunks/6ZZYUFPW.cjs');
10
10
  require('../__chunks/MVDQWSSV.cjs');
11
11
  require('../__chunks/VPI3EKVY.cjs');
@@ -20,4 +20,4 @@ require('../__chunks/AV6KTKLE.cjs');
20
20
 
21
21
 
22
22
 
23
- exports.ToolbarItem = _YO7LLGVAcjs.ToolbarItem; exports.useToolbarItem = _YO7LLGVAcjs.useToolbarItem;
23
+ exports.ToolbarItem = _AY5J25V7cjs.ToolbarItem; exports.useToolbarItem = _AY5J25V7cjs.useToolbarItem;
@@ -1,34 +1,34 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _HPNCFYQJcjs = require('../__chunks/HPNCFYQJ.cjs');
4
+ var _GZ2NNSLVcjs = require('../__chunks/GZ2NNSLV.cjs');
5
5
  require('../__chunks/KXQOQQ5B.cjs');
6
- require('../__chunks/COWKMNMZ.cjs');
6
+ require('../__chunks/N43E53E6.cjs');
7
7
 
8
8
 
9
- var _ZTAE5B6Wcjs = require('../__chunks/ZTAE5B6W.cjs');
10
- require('../__chunks/TSEXNK3K.cjs');
11
- require('../__chunks/JF225FQ5.cjs');
12
- require('../__chunks/37BRXQN7.cjs');
13
- require('../__chunks/MU7F4QWJ.cjs');
14
- require('../__chunks/PVYTX5U5.cjs');
15
- require('../__chunks/DLIQLPX4.cjs');
9
+ var _QJDA4LG6cjs = require('../__chunks/QJDA4LG6.cjs');
10
+ require('../__chunks/VR6GCLOV.cjs');
16
11
  require('../__chunks/UUJ5Q6IA.cjs');
17
12
  require('../__chunks/4H7FYXWQ.cjs');
13
+ require('../__chunks/JF225FQ5.cjs');
18
14
  require('../__chunks/JKERATCG.cjs');
15
+ require('../__chunks/BX2QEIBH.cjs');
16
+ require('../__chunks/MU7F4QWJ.cjs');
17
+ require('../__chunks/6IUEXB4L.cjs');
19
18
  require('../__chunks/7YLCVXZ7.cjs');
20
19
  require('../__chunks/CXZMA435.cjs');
21
20
  require('../__chunks/7TN63K2T.cjs');
21
+ require('../__chunks/SL55T4ZB.cjs');
22
22
  require('../__chunks/3ND7K6FF.cjs');
23
- require('../__chunks/6IUEXB4L.cjs');
23
+ require('../__chunks/DLIQLPX4.cjs');
24
24
  require('../__chunks/AFPGTIIH.cjs');
25
25
  require('../__chunks/J3OG6T3B.cjs');
26
+ require('../__chunks/2BIO7R5N.cjs');
26
27
  require('../__chunks/PE3KUHN6.cjs');
27
28
  require('../__chunks/AXNMZ6L6.cjs');
28
29
  require('../__chunks/CVD2AZE2.cjs');
29
- require('../__chunks/2BIO7R5N.cjs');
30
- require('../__chunks/R6M66EKZ.cjs');
31
30
  require('../__chunks/7CYY7U2A.cjs');
31
+ require('../__chunks/R6M66EKZ.cjs');
32
32
 
33
33
 
34
34
 
@@ -95,7 +95,7 @@ var useTooltip = _NGD3IQDBcjs.createHook.call(void 0,
95
95
  (state) => state.type === "description" ? "tooltip" : "none"
96
96
  );
97
97
  props = _AV6KTKLEcjs.__spreadValues.call(void 0, { role }, props);
98
- props = _HPNCFYQJcjs.useHovercard.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {}, props), {
98
+ props = _GZ2NNSLVcjs.useHovercard.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {}, props), {
99
99
  store,
100
100
  portal,
101
101
  gutter,
@@ -124,7 +124,7 @@ var useTooltip = _NGD3IQDBcjs.createHook.call(void 0,
124
124
  return props;
125
125
  }
126
126
  );
127
- var Tooltip = _ZTAE5B6Wcjs.createDialogComponent.call(void 0,
127
+ var Tooltip = _QJDA4LG6cjs.createDialogComponent.call(void 0,
128
128
  _NGD3IQDBcjs.forwardRef.call(void 0, function Tooltip2(props) {
129
129
  const htmlProps = useTooltip(props);
130
130
  return _NGD3IQDBcjs.createElement.call(void 0, TagName, htmlProps);
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "@ariakit/react-core/combobox/combobox-value",
3
+ "private": true,
4
+ "sideEffects": false,
5
+ "main": "../../cjs/combobox/combobox-value.cjs",
6
+ "module": "../../esm/combobox/combobox-value.js",
7
+ "types": "../../cjs/combobox/combobox-value.d.ts"
8
+ }
@@ -6,10 +6,10 @@ import {
6
6
  } from "./YMV43K4F.js";
7
7
  import {
8
8
  usePopover
9
- } from "./LTYEFENI.js";
9
+ } from "./6YVAEELE.js";
10
10
  import {
11
11
  createDialogComponent
12
- } from "./IOUGWXY5.js";
12
+ } from "./FGHVVLPU.js";
13
13
  import {
14
14
  HovercardScopedContextProvider,
15
15
  useHovercardProviderContext
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  createDialogComponent,
4
4
  useDialog
5
- } from "./IOUGWXY5.js";
5
+ } from "./FGHVVLPU.js";
6
6
  import {
7
7
  PopoverScopedContextProvider,
8
8
  usePopoverProviderContext
@@ -1,4 +1,7 @@
1
1
  "use client";
2
+ import {
3
+ useTagContext
4
+ } from "./WYDDZRWN.js";
2
5
  import {
3
6
  useCompositeStoreProps
4
7
  } from "./ZR5N62ZV.js";
@@ -9,21 +12,36 @@ import {
9
12
  useStore,
10
13
  useStoreProps
11
14
  } from "./PWUXK5IM.js";
15
+ import {
16
+ useUpdateEffect
17
+ } from "./WOWUAP42.js";
18
+ import {
19
+ __spreadProps,
20
+ __spreadValues
21
+ } from "./4R3V3JGP.js";
12
22
 
13
23
  // src/combobox/combobox-store.ts
14
24
  import * as Core from "@ariakit/core/combobox/combobox-store";
15
25
  function useComboboxStoreProps(store, update, props) {
26
+ useUpdateEffect(update, [props.tag]);
16
27
  useStoreProps(store, props, "value", "setValue");
17
28
  useStoreProps(store, props, "selectedValue", "setSelectedValue");
18
29
  useStoreProps(store, props, "resetValueOnHide");
19
30
  useStoreProps(store, props, "resetValueOnSelect");
20
- return useCompositeStoreProps(
21
- usePopoverStoreProps(store, update, props),
22
- update,
23
- props
31
+ return Object.assign(
32
+ useCompositeStoreProps(
33
+ usePopoverStoreProps(store, update, props),
34
+ update,
35
+ props
36
+ ),
37
+ { tag: props.tag }
24
38
  );
25
39
  }
26
40
  function useComboboxStore(props = {}) {
41
+ const tag = useTagContext();
42
+ props = __spreadProps(__spreadValues({}, props), {
43
+ tag: props.tag !== void 0 ? props.tag : tag
44
+ });
27
45
  const [store, update] = useStore(Core.createComboboxStore, props);
28
46
  return useComboboxStoreProps(store, update, props);
29
47
  }
@@ -1,33 +1,33 @@
1
1
  "use client";
2
2
  import {
3
3
  DialogBackdrop
4
- } from "./GOXKZAQI.js";
5
- import {
6
- prependHiddenDismiss
7
- } from "./6GXEOXGT.js";
8
- import {
9
- disableTree,
10
- disableTreeOutside
11
- } from "./PTPUIM7N.js";
12
- import {
13
- usePreventBodyScroll
14
- } from "./U2L67A6K.js";
4
+ } from "./CMFBAHKI.js";
15
5
  import {
16
6
  useNestedDialogs
17
7
  } from "./HSFE2URL.js";
18
8
  import {
19
9
  useHideOnInteractOutside
20
10
  } from "./H2NVVTJB.js";
11
+ import {
12
+ prependHiddenDismiss
13
+ } from "./6GXEOXGT.js";
21
14
  import {
22
15
  isElementMarked,
23
16
  markTreeOutside
24
17
  } from "./YNKDLCEK.js";
25
18
  import {
26
- createWalkTreeSnapshot
27
- } from "./5QL6BP6J.js";
19
+ disableTree,
20
+ disableTreeOutside
21
+ } from "./3TEK3C5Q.js";
28
22
  import {
29
23
  supportsInert
30
24
  } from "./677M2CI3.js";
25
+ import {
26
+ createWalkTreeSnapshot
27
+ } from "./5QL6BP6J.js";
28
+ import {
29
+ usePreventBodyScroll
30
+ } from "./BC72XE6E.js";
31
31
  import {
32
32
  useFocusableContainer
33
33
  } from "./UHSH3H5I.js";
@@ -136,7 +136,8 @@ var useDialog = createHook(function useDialog2(_a) {
136
136
  autoFocusOnHide = true,
137
137
  initialFocus,
138
138
  finalFocus,
139
- unmountOnHide
139
+ unmountOnHide,
140
+ unstable_treeSnapshotKey
140
141
  } = _b, props = __objRest(_b, [
141
142
  "store",
142
143
  "open",
@@ -153,7 +154,8 @@ var useDialog = createHook(function useDialog2(_a) {
153
154
  "autoFocusOnHide",
154
155
  "initialFocus",
155
156
  "finalFocus",
156
- "unmountOnHide"
157
+ "unmountOnHide",
158
+ "unstable_treeSnapshotKey"
157
159
  ]);
158
160
  const context = useDialogProviderContext();
159
161
  const ref = useRef(null);
@@ -269,7 +271,7 @@ var useDialog = createHook(function useDialog2(_a) {
269
271
  return;
270
272
  const dialog = ref.current;
271
273
  return createWalkTreeSnapshot(id, [dialog]);
272
- }, [id, canTakeTreeSnapshot]);
274
+ }, [id, canTakeTreeSnapshot, unstable_treeSnapshotKey]);
273
275
  const getPersistentElementsProp = useEvent(getPersistentElements);
274
276
  useSafeLayoutEffect(() => {
275
277
  if (!id)
@@ -297,7 +299,8 @@ var useDialog = createHook(function useDialog2(_a) {
297
299
  canTakeTreeSnapshot,
298
300
  getPersistentElementsProp,
299
301
  nestedDialogs,
300
- modal
302
+ modal,
303
+ unstable_treeSnapshotKey
301
304
  ]);
302
305
  const mayAutoFocusOnShow = !!autoFocusOnShow;
303
306
  const autoFocusOnShowProp = useBooleanEvent(autoFocusOnShow);
@@ -0,0 +1,16 @@
1
+ "use client";
2
+
3
+ // src/tag/utils.ts
4
+ import { useEffect, useState } from "react";
5
+ import { isTouchDevice } from "@ariakit/core/utils/platform";
6
+ function useTouchDevice() {
7
+ const [touchDevice, setTouchDevice] = useState(false);
8
+ useEffect(() => {
9
+ setTouchDevice(isTouchDevice());
10
+ }, []);
11
+ return touchDevice;
12
+ }
13
+
14
+ export {
15
+ useTouchDevice
16
+ };
@@ -10,7 +10,7 @@ import {
10
10
  } from "./VXKKJNIF.js";
11
11
  import {
12
12
  useCompositeItem
13
- } from "./R33ISPJY.js";
13
+ } from "./VGORKDMQ.js";
14
14
  import {
15
15
  createElement,
16
16
  createHook,
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ import {
3
+ useCompositeStoreProps
4
+ } from "./ZR5N62ZV.js";
5
+ import {
6
+ useStore,
7
+ useStoreProps
8
+ } from "./PWUXK5IM.js";
9
+
10
+ // src/tag/tag-store.ts
11
+ import * as Core from "@ariakit/core/tag/tag-store";
12
+ function useTagStoreProps(store, update, props) {
13
+ useStoreProps(store, props, "value", "setValue");
14
+ useStoreProps(store, props, "values", "setValues");
15
+ return useCompositeStoreProps(store, update, props);
16
+ }
17
+ function useTagStore(props = {}) {
18
+ const [store, update] = useStore(Core.createTagStore, props);
19
+ return useTagStoreProps(store, update, props);
20
+ }
21
+
22
+ export {
23
+ useTagStoreProps,
24
+ useTagStore
25
+ };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./MIIHBIKN.js";
5
5
  import {
6
6
  useCompositeItem
7
- } from "./R33ISPJY.js";
7
+ } from "./VGORKDMQ.js";
8
8
  import {
9
9
  createElement,
10
10
  createHook,
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  useCompositeItem
4
- } from "./R33ISPJY.js";
4
+ } from "./VGORKDMQ.js";
5
5
  import {
6
6
  useToolbarContext
7
7
  } from "./766APSLG.js";
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import {
3
- useCommand
4
- } from "./PJ7ERAIM.js";
5
2
  import {
6
3
  useCollectionItem
7
4
  } from "./IFMAUEA7.js";
5
+ import {
6
+ useCommand
7
+ } from "./PJ7ERAIM.js";
8
8
  import {
9
9
  focusSilently,
10
10
  getEnabledItem,
@@ -42,11 +42,12 @@ import {
42
42
  // src/composite/composite-item.tsx
43
43
  import { useCallback, useContext, useMemo, useRef, useState } from "react";
44
44
  import {
45
- getDocument,
46
45
  getScrollingElement,
47
46
  getTextboxSelection,
47
+ getTextboxValue,
48
48
  isButton,
49
- isTextField
49
+ isTextField,
50
+ isTextbox
50
51
  } from "@ariakit/core/utils/dom";
51
52
  import { isPortalEvent, isSelfTarget } from "@ariakit/core/utils/events";
52
53
  import {
@@ -55,26 +56,11 @@ import {
55
56
  } from "@ariakit/core/utils/misc";
56
57
  import { jsx } from "react/jsx-runtime";
57
58
  var TagName = "button";
58
- function isTextbox(element) {
59
- return element.isContentEditable || isTextField(element);
60
- }
61
59
  function isEditableElement(element) {
62
- if (element.isContentEditable)
63
- return true;
64
- if (isTextField(element))
60
+ if (isTextbox(element))
65
61
  return true;
66
62
  return element.tagName === "INPUT" && !isButton(element);
67
63
  }
68
- function getValueLength(element) {
69
- if (isTextField(element)) {
70
- return element.value.length;
71
- } else if (element.isContentEditable) {
72
- const range = getDocument(element).createRange();
73
- range.selectNodeContents(element);
74
- return range.toString().length;
75
- }
76
- return 0;
77
- }
78
64
  function getNextPageOffset(scrollingElement, pageUp = false) {
79
65
  const height = scrollingElement.clientHeight;
80
66
  const { top } = scrollingElement.getBoundingClientRect();
@@ -329,14 +315,11 @@ var useCompositeItem = createHook(
329
315
  const isUp = isVertical && event.key === "ArrowUp";
330
316
  const isDown = isVertical && event.key === "ArrowDown";
331
317
  if (isRight || isDown) {
332
- if (selection.end !== getValueLength(currentTarget)) {
318
+ const { length: valueLength } = getTextboxValue(currentTarget);
319
+ if (selection.end !== valueLength)
333
320
  return;
334
- }
335
- } else if (isLeft || isUp) {
336
- if (selection.start !== 0) {
337
- return;
338
- }
339
- }
321
+ } else if ((isLeft || isUp) && selection.start !== 0)
322
+ return;
340
323
  }
341
324
  const nextId = action();
342
325
  if (preventScrollOnKeyDownProp(event) || nextId !== void 0) {
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import {
3
+ CompositeContextProvider,
4
+ CompositeScopedContextProvider
5
+ } from "./QFI3MCMR.js";
6
+ import {
7
+ createStoreContext
8
+ } from "./GUCZNEAD.js";
9
+
10
+ // src/tag/tag-context.tsx
11
+ import { createContext } from "react";
12
+ var TagValueContext = createContext(null);
13
+ var TagRemoveIdContext = createContext(
14
+ null
15
+ );
16
+ var ctx = createStoreContext(
17
+ [CompositeContextProvider],
18
+ [CompositeScopedContextProvider]
19
+ );
20
+ var useTagContext = ctx.useContext;
21
+ var useTagScopedContext = ctx.useScopedContext;
22
+ var useTagProviderContext = ctx.useProviderContext;
23
+ var TagContextProvider = ctx.ContextProvider;
24
+ var TagScopedContextProvider = ctx.ScopedContextProvider;
25
+
26
+ export {
27
+ TagValueContext,
28
+ TagRemoveIdContext,
29
+ useTagContext,
30
+ useTagScopedContext,
31
+ useTagProviderContext,
32
+ TagContextProvider,
33
+ TagScopedContextProvider
34
+ };
@@ -1,11 +1,11 @@
1
1
  "use client";
2
+ import {
3
+ useComboboxProviderContext
4
+ } from "../__chunks/N4X7J4OQ.js";
2
5
  import {
3
6
  useButton
4
7
  } from "../__chunks/CKAOM5LG.js";
5
8
  import "../__chunks/PJ7ERAIM.js";
6
- import {
7
- useComboboxProviderContext
8
- } from "../__chunks/N4X7J4OQ.js";
9
9
  import "../__chunks/QFI3MCMR.js";
10
10
  import "../__chunks/6LTHW2TQ.js";
11
11
  import "../__chunks/5B3U64HV.js";
@@ -1,13 +1,13 @@
1
1
  "use client";
2
+ import {
3
+ useComboboxProviderContext
4
+ } from "../__chunks/N4X7J4OQ.js";
2
5
  import {
3
6
  useDialogDisclosure
4
7
  } from "../__chunks/LTYBQEWX.js";
5
8
  import "../__chunks/R6SM2O47.js";
6
9
  import "../__chunks/CKAOM5LG.js";
7
10
  import "../__chunks/PJ7ERAIM.js";
8
- import {
9
- useComboboxProviderContext
10
- } from "../__chunks/N4X7J4OQ.js";
11
11
  import "../__chunks/QFI3MCMR.js";
12
12
  import "../__chunks/6LTHW2TQ.js";
13
13
  import "../__chunks/5B3U64HV.js";
@@ -93,6 +93,20 @@ export interface ComboboxItemOptions<T extends ElementType = TagName> extends Co
93
93
  * - [Command Menu](https://ariakit.org/examples/dialog-combobox-command-menu)
94
94
  */
95
95
  hideOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;
96
+ /**
97
+ * Whether to set the combobox
98
+ * [`value`](https://ariakit.org/reference/combobox-provider#value) state
99
+ * using this item's
100
+ * [`value`](https://ariakit.org/reference/combobox-item#value) when the item
101
+ * is clicked. The default is `true`, unless the combobox is
102
+ * [multi-selectable](https://ariakit.org/examples/combobox-multiple).
103
+ *
104
+ * Live examples:
105
+ * - [Menu with Combobox](https://ariakit.org/examples/menu-combobox)
106
+ * - [Submenu with
107
+ * Combobox](https://ariakit.org/examples/menu-nested-combobox)
108
+ */
109
+ setValueOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;
96
110
  /**
97
111
  * Whether to set the
98
112
  * [`selectedValue`](https://ariakit.org/reference/combobox-provider#selectedvalue)
@@ -108,19 +122,15 @@ export interface ComboboxItemOptions<T extends ElementType = TagName> extends Co
108
122
  */
109
123
  selectValueOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;
110
124
  /**
111
- * Whether to set the combobox
112
- * [`value`](https://ariakit.org/reference/combobox-provider#value) state
113
- * using this item's
114
- * [`value`](https://ariakit.org/reference/combobox-item#value) when the item
115
- * is clicked. The default is `true`, unless the combobox is
116
- * [multi-selectable](https://ariakit.org/examples/combobox-multiple).
117
- *
118
- * Live examples:
119
- * - [Menu with Combobox](https://ariakit.org/examples/menu-combobox)
120
- * - [Submenu with
121
- * Combobox](https://ariakit.org/examples/menu-nested-combobox)
125
+ * Whether to reset the the combobox input value when this item is selected or
126
+ * unselected by click. This prop is set to `true` by default if
127
+ * the combobox supports multiple selections. In other words, if the
128
+ * [`selectedValue`](https://ariakit.org/reference/combobox-provider#selectedvalue)
129
+ * or
130
+ * [`defaultSelectedValue`](https://ariakit.org/reference/combobox-provider#defaultselectedvalue)
131
+ * props are arrays.
122
132
  */
123
- setValueOnClick?: BooleanOrCallback<MouseEvent<HTMLElement>>;
133
+ resetValueOnSelect?: BooleanOrCallback<MouseEvent<HTMLElement>>;
124
134
  /**
125
135
  * @default false
126
136
  */