@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @ariakit/react-core
2
2
 
3
+ ## 0.4.5
4
+
5
+ ### Multi-selectable Combobox with inline autocomplete
6
+
7
+ When rendering a [Multi-selectable Combobox](https://ariakit.org/examples/combobox-multiple) with the [`autoComplete`](https://ariakit.org/reference/combobox#autocomplete) prop set to `"inline"` or `"both"`, the completion string will no longer be inserted into the input upon deselecting an item. This is because the completion string generally represents an addition action, whereas deselecting an item is a removal action.
8
+
9
+ ### Other updates
10
+
11
+ - Added new experimental Tag components.
12
+ - Updated [`Combobox`](https://ariakit.org/reference/combobox) to no longer use `ReactDOM.flushSync` when updating the value.
13
+ - Added new [`resetValueOnSelect`](https://ariakit.org/reference/combobox-item#resetvalueonselect) prop to [`ComboboxItem`](https://ariakit.org/reference/combobox-item).
14
+ - Added new [`resetValue`](https://ariakit.org/reference/use-combobox-store#resetvalue) method to combobox store.
15
+ - Added experimental `ComboboxValue` component.
16
+ - Improved JSDocs.
17
+ - Updated dependencies: `@ariakit/core@0.4.5`
18
+
3
19
  ## 0.4.4
4
20
 
5
21
  ### Combobox `autoFocusOnHide` behavior
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _U4NXCMZ3cjs = require('./U4NXCMZ3.cjs');
4
+ var _HD5AHCRIcjs = require('./HD5AHCRI.cjs');
5
5
 
6
6
 
7
- var _HD5AHCRIcjs = require('./HD5AHCRI.cjs');
7
+ var _U4NXCMZ3cjs = require('./U4NXCMZ3.cjs');
8
8
 
9
9
 
10
10
 
@@ -47,6 +47,7 @@ var _react = require('react');
47
47
 
48
48
 
49
49
 
50
+
50
51
  var _dom = require('@ariakit/core/utils/dom');
51
52
  var _events = require('@ariakit/core/utils/events');
52
53
 
@@ -55,26 +56,11 @@ var _events = require('@ariakit/core/utils/events');
55
56
  var _misc = require('@ariakit/core/utils/misc');
56
57
  var _jsxruntime = require('react/jsx-runtime');
57
58
  var TagName = "button";
58
- function isTextbox(element) {
59
- return element.isContentEditable || _dom.isTextField.call(void 0, element);
60
- }
61
59
  function isEditableElement(element) {
62
- if (element.isContentEditable)
63
- return true;
64
- if (_dom.isTextField.call(void 0, element))
60
+ if (_dom.isTextbox.call(void 0, element))
65
61
  return true;
66
62
  return element.tagName === "INPUT" && !_dom.isButton.call(void 0, element);
67
63
  }
68
- function getValueLength(element) {
69
- if (_dom.isTextField.call(void 0, element)) {
70
- return element.value.length;
71
- } else if (element.isContentEditable) {
72
- const range = _dom.getDocument.call(void 0, 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();
@@ -233,7 +219,7 @@ var useCompositeItem = _NGD3IQDBcjs.createHook.call(void 0,
233
219
  return;
234
220
  const { virtualFocus: virtualFocus2, baseElement: baseElement2 } = store.getState();
235
221
  store.setActiveId(id);
236
- if (isTextbox(event.currentTarget)) {
222
+ if (_dom.isTextbox.call(void 0, event.currentTarget)) {
237
223
  _6ZZYUFPWcjs.selectTextField.call(void 0, event.currentTarget);
238
224
  }
239
225
  if (!virtualFocus2)
@@ -322,21 +308,18 @@ var useCompositeItem = _NGD3IQDBcjs.createHook.call(void 0,
322
308
  };
323
309
  const action = keyMap[event.key];
324
310
  if (action) {
325
- if (isTextbox(currentTarget)) {
311
+ if (_dom.isTextbox.call(void 0, currentTarget)) {
326
312
  const selection = _dom.getTextboxSelection.call(void 0, currentTarget);
327
313
  const isLeft = isHorizontal && event.key === "ArrowLeft";
328
314
  const isRight = isHorizontal && event.key === "ArrowRight";
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 } = _dom.getTextboxValue.call(void 0, 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) {
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _QUHFOHHTcjs = require('./QUHFOHHT.cjs');
4
+ var _3HMQOCLFcjs = require('./3HMQOCLF.cjs');
5
5
 
6
6
 
7
7
  var _MVDQWSSVcjs = require('./MVDQWSSV.cjs');
@@ -23,7 +23,7 @@ var useToolbarItem = _NGD3IQDBcjs.createHook.call(void 0,
23
23
  var _b = _a, { store } = _b, props = _AV6KTKLEcjs.__objRest.call(void 0, _b, ["store"]);
24
24
  const context = _MVDQWSSVcjs.useToolbarContext.call(void 0, );
25
25
  store = store || context;
26
- props = _QUHFOHHTcjs.useCompositeItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store }, props));
26
+ props = _3HMQOCLFcjs.useCompositeItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, { store }, props));
27
27
  return props;
28
28
  }
29
29
  );
@@ -10,7 +10,7 @@ var _MNMEDFSMcjs = require('./MNMEDFSM.cjs');
10
10
  var _Q6QJEXBKcjs = require('./Q6QJEXBK.cjs');
11
11
 
12
12
 
13
- var _QUHFOHHTcjs = require('./QUHFOHHT.cjs');
13
+ var _3HMQOCLFcjs = require('./3HMQOCLF.cjs');
14
14
 
15
15
 
16
16
 
@@ -112,7 +112,7 @@ var useMenuItem = _NGD3IQDBcjs.createHook.call(void 0,
112
112
  }, props), {
113
113
  onClick
114
114
  });
115
- props = _QUHFOHHTcjs.useCompositeItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
115
+ props = _3HMQOCLFcjs.useCompositeItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
116
116
  store,
117
117
  preventScrollOnKeyDown
118
118
  }, props));
@@ -6,10 +6,10 @@
6
6
  var _KXQOQQ5Bcjs = require('./KXQOQQ5B.cjs');
7
7
 
8
8
 
9
- var _COWKMNMZcjs = require('./COWKMNMZ.cjs');
9
+ var _N43E53E6cjs = require('./N43E53E6.cjs');
10
10
 
11
11
 
12
- var _ZTAE5B6Wcjs = require('./ZTAE5B6W.cjs');
12
+ var _QJDA4LG6cjs = require('./QJDA4LG6.cjs');
13
13
 
14
14
 
15
15
 
@@ -284,7 +284,7 @@ var useHovercard = _NGD3IQDBcjs.createHook.call(void 0,
284
284
  const autoFocusOnShow = store.useState(
285
285
  (state) => modal || state.autoFocusOnShow
286
286
  );
287
- props = _COWKMNMZcjs.usePopover.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
287
+ props = _N43E53E6cjs.usePopover.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
288
288
  store,
289
289
  modal,
290
290
  portal,
@@ -305,7 +305,7 @@ var useHovercard = _NGD3IQDBcjs.createHook.call(void 0,
305
305
  return props;
306
306
  }
307
307
  );
308
- var Hovercard = _ZTAE5B6Wcjs.createDialogComponent.call(void 0,
308
+ var Hovercard = _QJDA4LG6cjs.createDialogComponent.call(void 0,
309
309
  _NGD3IQDBcjs.forwardRef.call(void 0, function Hovercard2(props) {
310
310
  const htmlProps = useHovercard(props);
311
311
  return _NGD3IQDBcjs.createElement.call(void 0, TagName, htmlProps);
@@ -0,0 +1,16 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+ // src/tag/utils.ts
4
+ var _react = require('react');
5
+ var _platform = require('@ariakit/core/utils/platform');
6
+ function useTouchDevice() {
7
+ const [touchDevice, setTouchDevice] = _react.useState.call(void 0, false);
8
+ _react.useEffect.call(void 0, () => {
9
+ setTouchDevice(_platform.isTouchDevice.call(void 0, ));
10
+ }, []);
11
+ return touchDevice;
12
+ }
13
+
14
+
15
+
16
+ exports.useTouchDevice = useTouchDevice;
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _ZTAE5B6Wcjs = require('./ZTAE5B6W.cjs');
5
+ var _QJDA4LG6cjs = require('./QJDA4LG6.cjs');
6
6
 
7
7
 
8
8
 
@@ -355,7 +355,7 @@ var usePopover = _NGD3IQDBcjs.createHook.call(void 0,
355
355
  position: "relative"
356
356
  }, props.style)
357
357
  });
358
- props = _ZTAE5B6Wcjs.useDialog.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
358
+ props = _QJDA4LG6cjs.useDialog.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
359
359
  store,
360
360
  modal,
361
361
  portal,
@@ -368,7 +368,7 @@ var usePopover = _NGD3IQDBcjs.createHook.call(void 0,
368
368
  return props;
369
369
  }
370
370
  );
371
- var Popover = _ZTAE5B6Wcjs.createDialogComponent.call(void 0,
371
+ var Popover = _QJDA4LG6cjs.createDialogComponent.call(void 0,
372
372
  _NGD3IQDBcjs.forwardRef.call(void 0, function Popover2(props) {
373
373
  const htmlProps = usePopover(props);
374
374
  return _NGD3IQDBcjs.createElement.call(void 0, TagName, htmlProps);
@@ -4,7 +4,7 @@
4
4
  var _OHXBMXTNcjs = require('./OHXBMXTN.cjs');
5
5
 
6
6
 
7
- var _QUHFOHHTcjs = require('./QUHFOHHT.cjs');
7
+ var _3HMQOCLFcjs = require('./3HMQOCLF.cjs');
8
8
 
9
9
 
10
10
 
@@ -147,7 +147,7 @@ var useRadio = _NGD3IQDBcjs.createHook.call(void 0, function useRadio2(_a) {
147
147
  onClick,
148
148
  onFocus
149
149
  });
150
- props = _QUHFOHHTcjs.useCompositeItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
150
+ props = _3HMQOCLFcjs.useCompositeItem.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
151
151
  store,
152
152
  clickOnEnter: !nativeRadio
153
153
  }, props));
@@ -0,0 +1,34 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
+
3
+
4
+
5
+ var _VPI3EKVYcjs = require('./VPI3EKVY.cjs');
6
+
7
+
8
+ var _NGD3IQDBcjs = require('./NGD3IQDB.cjs');
9
+
10
+ // src/tag/tag-context.tsx
11
+ var _react = require('react');
12
+ var TagValueContext = _react.createContext.call(void 0, null);
13
+ var TagRemoveIdContext = _react.createContext.call(void 0,
14
+ null
15
+ );
16
+ var ctx = _NGD3IQDBcjs.createStoreContext.call(void 0,
17
+ [_VPI3EKVYcjs.CompositeContextProvider],
18
+ [_VPI3EKVYcjs.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
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+ exports.TagValueContext = TagValueContext; exports.TagRemoveIdContext = TagRemoveIdContext; exports.useTagContext = useTagContext; exports.useTagScopedContext = useTagScopedContext; exports.useTagProviderContext = useTagProviderContext; exports.TagContextProvider = TagContextProvider; exports.TagScopedContextProvider = TagScopedContextProvider;
@@ -1,33 +1,33 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _TSEXNK3Kcjs = require('./TSEXNK3K.cjs');
4
+ var _VR6GCLOVcjs = require('./VR6GCLOV.cjs');
5
5
 
6
6
 
7
- var _JF225FQ5cjs = require('./JF225FQ5.cjs');
7
+ var _UUJ5Q6IAcjs = require('./UUJ5Q6IA.cjs');
8
8
 
9
9
 
10
+ var _4H7FYXWQcjs = require('./4H7FYXWQ.cjs');
10
11
 
11
- var _37BRXQN7cjs = require('./37BRXQN7.cjs');
12
12
 
13
+ var _JF225FQ5cjs = require('./JF225FQ5.cjs');
13
14
 
14
- var _PVYTX5U5cjs = require('./PVYTX5U5.cjs');
15
15
 
16
16
 
17
- var _UUJ5Q6IAcjs = require('./UUJ5Q6IA.cjs');
17
+ var _JKERATCGcjs = require('./JKERATCG.cjs');
18
18
 
19
19
 
20
- var _4H7FYXWQcjs = require('./4H7FYXWQ.cjs');
21
20
 
21
+ var _BX2QEIBHcjs = require('./BX2QEIBH.cjs');
22
22
 
23
23
 
24
- var _JKERATCGcjs = require('./JKERATCG.cjs');
24
+ var _6IUEXB4Lcjs = require('./6IUEXB4L.cjs');
25
25
 
26
26
 
27
27
  var _CXZMA435cjs = require('./CXZMA435.cjs');
28
28
 
29
29
 
30
- var _6IUEXB4Lcjs = require('./6IUEXB4L.cjs');
30
+ var _SL55T4ZBcjs = require('./SL55T4ZB.cjs');
31
31
 
32
32
 
33
33
  var _AFPGTIIHcjs = require('./AFPGTIIH.cjs');
@@ -136,7 +136,8 @@ var useDialog = _NGD3IQDBcjs.createHook.call(void 0, function useDialog2(_a) {
136
136
  autoFocusOnHide = true,
137
137
  initialFocus,
138
138
  finalFocus,
139
- unmountOnHide
139
+ unmountOnHide,
140
+ unstable_treeSnapshotKey
140
141
  } = _b, props = _AV6KTKLEcjs.__objRest.call(void 0, _b, [
141
142
  "store",
142
143
  "open",
@@ -153,7 +154,8 @@ var useDialog = _NGD3IQDBcjs.createHook.call(void 0, 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 = _GDEDCFNUcjs.useDialogProviderContext.call(void 0, );
159
161
  const ref = _react.useRef.call(void 0, null);
@@ -186,7 +188,7 @@ var useDialog = _NGD3IQDBcjs.createHook.call(void 0, function useDialog2(_a) {
186
188
  const mounted = store.useState("mounted");
187
189
  const contentElement = store.useState("contentElement");
188
190
  const hidden = _7CYY7U2Acjs.isHidden.call(void 0, mounted, props.hidden, props.alwaysVisible);
189
- _PVYTX5U5cjs.usePreventBodyScroll.call(void 0, contentElement, id, preventBodyScroll && !hidden);
191
+ _SL55T4ZBcjs.usePreventBodyScroll.call(void 0, contentElement, id, preventBodyScroll && !hidden);
190
192
  _4H7FYXWQcjs.useHideOnInteractOutside.call(void 0, store, hideOnInteractOutside, domReady);
191
193
  const { wrapElement, nestedDialogs } = _UUJ5Q6IAcjs.useNestedDialogs.call(void 0, store);
192
194
  props = _TW3SFX4Ccjs.useWrapElement.call(void 0, props, wrapElement, [wrapElement]);
@@ -259,7 +261,7 @@ var useDialog = _NGD3IQDBcjs.createHook.call(void 0, function useDialog2(_a) {
259
261
  const dialog = ref.current;
260
262
  if (!dialog)
261
263
  return;
262
- return _37BRXQN7cjs.disableTree.call(void 0, dialog);
264
+ return _BX2QEIBHcjs.disableTree.call(void 0, dialog);
263
265
  }, [open, mounted, domReady]);
264
266
  const canTakeTreeSnapshot = open && domReady;
265
267
  _TW3SFX4Ccjs.useSafeLayoutEffect.call(void 0, () => {
@@ -269,7 +271,7 @@ var useDialog = _NGD3IQDBcjs.createHook.call(void 0, function useDialog2(_a) {
269
271
  return;
270
272
  const dialog = ref.current;
271
273
  return _CXZMA435cjs.createWalkTreeSnapshot.call(void 0, id, [dialog]);
272
- }, [id, canTakeTreeSnapshot]);
274
+ }, [id, canTakeTreeSnapshot, unstable_treeSnapshotKey]);
273
275
  const getPersistentElementsProp = _TW3SFX4Ccjs.useEvent.call(void 0, getPersistentElements);
274
276
  _TW3SFX4Ccjs.useSafeLayoutEffect.call(void 0, () => {
275
277
  if (!id)
@@ -287,7 +289,7 @@ var useDialog = _NGD3IQDBcjs.createHook.call(void 0, function useDialog2(_a) {
287
289
  if (modal) {
288
290
  return _misc.chain.call(void 0,
289
291
  _JKERATCGcjs.markTreeOutside.call(void 0, id, allElements),
290
- _37BRXQN7cjs.disableTreeOutside.call(void 0, id, allElements)
292
+ _BX2QEIBHcjs.disableTreeOutside.call(void 0, id, allElements)
291
293
  );
292
294
  }
293
295
  return _JKERATCGcjs.markTreeOutside.call(void 0, id, [disclosureElement, ...allElements]);
@@ -297,7 +299,8 @@ var useDialog = _NGD3IQDBcjs.createHook.call(void 0, 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 = _TW3SFX4Ccjs.useBooleanEvent.call(void 0, autoFocusOnShow);
@@ -469,7 +472,7 @@ var useDialog = _NGD3IQDBcjs.createHook.call(void 0, function useDialog2(_a) {
469
472
  return element;
470
473
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
471
474
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
472
- _TSEXNK3Kcjs.DialogBackdrop,
475
+ _VR6GCLOVcjs.DialogBackdrop,
473
476
  {
474
477
  store,
475
478
  backdrop,
@@ -1,6 +1,9 @@
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; } }"use client";
2
2
 
3
3
 
4
+ var _PVLZGFP6cjs = require('./PVLZGFP6.cjs');
5
+
6
+
4
7
  var _4H5ZMMOIcjs = require('./4H5ZMMOI.cjs');
5
8
 
6
9
 
@@ -10,20 +13,35 @@ var _6RJSKW2Ccjs = require('./6RJSKW2C.cjs');
10
13
 
11
14
  var _GXMZA6DTcjs = require('./GXMZA6DT.cjs');
12
15
 
16
+
17
+ var _TW3SFX4Ccjs = require('./TW3SFX4C.cjs');
18
+
19
+
20
+
21
+ var _AV6KTKLEcjs = require('./AV6KTKLE.cjs');
22
+
13
23
  // src/combobox/combobox-store.ts
14
24
  var _comboboxstore = require('@ariakit/core/combobox/combobox-store'); var Core = _interopRequireWildcard(_comboboxstore);
15
25
  function useComboboxStoreProps(store, update, props) {
26
+ _TW3SFX4Ccjs.useUpdateEffect.call(void 0, update, [props.tag]);
16
27
  _GXMZA6DTcjs.useStoreProps.call(void 0, store, props, "value", "setValue");
17
28
  _GXMZA6DTcjs.useStoreProps.call(void 0, store, props, "selectedValue", "setSelectedValue");
18
29
  _GXMZA6DTcjs.useStoreProps.call(void 0, store, props, "resetValueOnHide");
19
30
  _GXMZA6DTcjs.useStoreProps.call(void 0, store, props, "resetValueOnSelect");
20
- return _4H5ZMMOIcjs.useCompositeStoreProps.call(void 0,
21
- _6RJSKW2Ccjs.usePopoverStoreProps.call(void 0, store, update, props),
22
- update,
23
- props
31
+ return Object.assign(
32
+ _4H5ZMMOIcjs.useCompositeStoreProps.call(void 0,
33
+ _6RJSKW2Ccjs.usePopoverStoreProps.call(void 0, store, update, props),
34
+ update,
35
+ props
36
+ ),
37
+ { tag: props.tag }
24
38
  );
25
39
  }
26
40
  function useComboboxStore(props = {}) {
41
+ const tag = _PVLZGFP6cjs.useTagContext.call(void 0, );
42
+ props = _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {}, props), {
43
+ tag: props.tag !== void 0 ? props.tag : tag
44
+ });
27
45
  const [store, update] = _GXMZA6DTcjs.useStore.call(void 0, Core.createComboboxStore, props);
28
46
  return useComboboxStoreProps(store, update, props);
29
47
  }
@@ -0,0 +1,25 @@
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; } }"use client";
2
+
3
+
4
+ var _4H5ZMMOIcjs = require('./4H5ZMMOI.cjs');
5
+
6
+
7
+
8
+ var _GXMZA6DTcjs = require('./GXMZA6DT.cjs');
9
+
10
+ // src/tag/tag-store.ts
11
+ var _tagstore = require('@ariakit/core/tag/tag-store'); var Core = _interopRequireWildcard(_tagstore);
12
+ function useTagStoreProps(store, update, props) {
13
+ _GXMZA6DTcjs.useStoreProps.call(void 0, store, props, "value", "setValue");
14
+ _GXMZA6DTcjs.useStoreProps.call(void 0, store, props, "values", "setValues");
15
+ return _4H5ZMMOIcjs.useCompositeStoreProps.call(void 0, store, update, props);
16
+ }
17
+ function useTagStore(props = {}) {
18
+ const [store, update] = _GXMZA6DTcjs.useStore.call(void 0, Core.createTagStore, props);
19
+ return useTagStoreProps(store, update, props);
20
+ }
21
+
22
+
23
+
24
+
25
+ exports.useTagStoreProps = useTagStoreProps; exports.useTagStore = useTagStore;
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _IXJIFLOAcjs = require('../__chunks/IXJIFLOA.cjs');
5
- require('../__chunks/U4NXCMZ3.cjs');
4
+ var _2IJSEADJcjs = require('../__chunks/2IJSEADJ.cjs');
6
5
 
7
6
 
8
- var _2IJSEADJcjs = require('../__chunks/2IJSEADJ.cjs');
7
+ var _IXJIFLOAcjs = require('../__chunks/IXJIFLOA.cjs');
8
+ require('../__chunks/U4NXCMZ3.cjs');
9
9
  require('../__chunks/VPI3EKVY.cjs');
10
10
  require('../__chunks/NEK2UEJN.cjs');
11
11
  require('../__chunks/77BAEZ2Z.cjs');
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
+ var _2IJSEADJcjs = require('../__chunks/2IJSEADJ.cjs');
5
+
6
+
4
7
  var _BSEVPIKOcjs = require('../__chunks/BSEVPIKO.cjs');
5
8
  require('../__chunks/27SIFUY3.cjs');
6
9
  require('../__chunks/IXJIFLOA.cjs');
7
10
  require('../__chunks/U4NXCMZ3.cjs');
8
-
9
-
10
- var _2IJSEADJcjs = require('../__chunks/2IJSEADJ.cjs');
11
11
  require('../__chunks/VPI3EKVY.cjs');
12
12
  require('../__chunks/NEK2UEJN.cjs');
13
13
  require('../__chunks/77BAEZ2Z.cjs');
@@ -4,15 +4,15 @@
4
4
  var _Q6QJEXBKcjs = require('../__chunks/Q6QJEXBK.cjs');
5
5
 
6
6
 
7
- var _QUHFOHHTcjs = require('../__chunks/QUHFOHHT.cjs');
8
- require('../__chunks/U4NXCMZ3.cjs');
9
7
 
10
8
 
11
9
 
10
+ var _2IJSEADJcjs = require('../__chunks/2IJSEADJ.cjs');
12
11
 
13
12
 
14
- var _2IJSEADJcjs = require('../__chunks/2IJSEADJ.cjs');
13
+ var _3HMQOCLFcjs = require('../__chunks/3HMQOCLF.cjs');
15
14
  require('../__chunks/HD5AHCRI.cjs');
15
+ require('../__chunks/U4NXCMZ3.cjs');
16
16
  require('../__chunks/6ZZYUFPW.cjs');
17
17
  require('../__chunks/VPI3EKVY.cjs');
18
18
  require('../__chunks/NEK2UEJN.cjs');
@@ -74,8 +74,9 @@ var useComboboxItem = _NGD3IQDBcjs.createHook.call(void 0,
74
74
  store,
75
75
  value,
76
76
  hideOnClick,
77
- selectValueOnClick = true,
78
77
  setValueOnClick,
78
+ selectValueOnClick = true,
79
+ resetValueOnSelect,
79
80
  focusOnHover = false,
80
81
  moveOnKeyPress = true,
81
82
  getItem: getItemProp
@@ -83,12 +84,14 @@ var useComboboxItem = _NGD3IQDBcjs.createHook.call(void 0,
83
84
  "store",
84
85
  "value",
85
86
  "hideOnClick",
86
- "selectValueOnClick",
87
87
  "setValueOnClick",
88
+ "selectValueOnClick",
89
+ "resetValueOnSelect",
88
90
  "focusOnHover",
89
91
  "moveOnKeyPress",
90
92
  "getItem"
91
93
  ]);
94
+ var _a2;
92
95
  const context = _2IJSEADJcjs.useComboboxScopedContext.call(void 0, );
93
96
  store = store || context;
94
97
  _misc.invariant.call(void 0,
@@ -108,11 +111,18 @@ var useComboboxItem = _NGD3IQDBcjs.createHook.call(void 0,
108
111
  const multiSelectable = store.useState(
109
112
  (state) => Array.isArray(state.selectedValue)
110
113
  );
114
+ const selected = store.useState(
115
+ (state) => isSelected(state.selectedValue, value)
116
+ );
117
+ const resetValueOnSelectState = store.useState("resetValueOnSelect");
111
118
  setValueOnClick = setValueOnClick != null ? setValueOnClick : !multiSelectable;
112
119
  hideOnClick = hideOnClick != null ? hideOnClick : value != null && !multiSelectable;
113
120
  const onClickProp = props.onClick;
114
121
  const setValueOnClickProp = _TW3SFX4Ccjs.useBooleanEvent.call(void 0, setValueOnClick);
115
122
  const selectValueOnClickProp = _TW3SFX4Ccjs.useBooleanEvent.call(void 0, selectValueOnClick);
123
+ const resetValueOnSelectProp = _TW3SFX4Ccjs.useBooleanEvent.call(void 0,
124
+ (_a2 = resetValueOnSelect != null ? resetValueOnSelect : resetValueOnSelectState) != null ? _a2 : multiSelectable
125
+ );
116
126
  const hideOnClickProp = _TW3SFX4Ccjs.useBooleanEvent.call(void 0, hideOnClick);
117
127
  const onClick = _TW3SFX4Ccjs.useEvent.call(void 0, (event) => {
118
128
  onClickProp == null ? void 0 : onClickProp(event);
@@ -124,6 +134,9 @@ var useComboboxItem = _NGD3IQDBcjs.createHook.call(void 0,
124
134
  return;
125
135
  if (value != null) {
126
136
  if (selectValueOnClickProp(event)) {
137
+ if (resetValueOnSelectProp(event)) {
138
+ store == null ? void 0 : store.resetValue();
139
+ }
127
140
  store == null ? void 0 : store.setSelectedValue((prevValue) => {
128
141
  if (!Array.isArray(prevValue))
129
142
  return value;
@@ -159,9 +172,6 @@ var useComboboxItem = _NGD3IQDBcjs.createHook.call(void 0,
159
172
  }
160
173
  }
161
174
  });
162
- const selected = store.useState(
163
- (state) => isSelected(state.selectedValue, value)
164
- );
165
175
  if (multiSelectable && selected != null) {
166
176
  props = _AV6KTKLEcjs.__spreadValues.call(void 0, {
167
177
  "aria-selected": selected
@@ -181,7 +191,7 @@ var useComboboxItem = _NGD3IQDBcjs.createHook.call(void 0,
181
191
  onKeyDown
182
192
  });
183
193
  const moveOnKeyPressProp = _TW3SFX4Ccjs.useBooleanEvent.call(void 0, moveOnKeyPress);
184
- props = _QUHFOHHTcjs.useCompositeItem.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
194
+ props = _3HMQOCLFcjs.useCompositeItem.call(void 0, _AV6KTKLEcjs.__spreadProps.call(void 0, _AV6KTKLEcjs.__spreadValues.call(void 0, {
185
195
  store
186
196
  }, props), {
187
197
  getItem,
@@ -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
  */