@depup/react-aria-components 1.19.0-depup.27 → 1.20.0-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/PreviewTrigger/package.json +5 -0
  2. package/README.md +2 -2
  3. package/TokenField/package.json +5 -0
  4. package/changes.json +1 -1
  5. package/dist/exports/GridList.cjs.map +1 -1
  6. package/dist/exports/GridList.js.map +1 -1
  7. package/dist/exports/GridList.mjs.map +1 -1
  8. package/dist/exports/PreviewTrigger.cjs +26 -0
  9. package/dist/exports/PreviewTrigger.cjs.map +1 -0
  10. package/dist/exports/PreviewTrigger.js +21 -0
  11. package/dist/exports/PreviewTrigger.js.map +1 -0
  12. package/dist/exports/PreviewTrigger.mjs +21 -0
  13. package/dist/exports/PreviewTrigger.mjs.map +1 -0
  14. package/dist/exports/TokenField.cjs +31 -0
  15. package/dist/exports/TokenField.cjs.map +1 -0
  16. package/dist/exports/TokenField.js +21 -0
  17. package/dist/exports/TokenField.js.map +1 -0
  18. package/dist/exports/TokenField.mjs +21 -0
  19. package/dist/exports/TokenField.mjs.map +1 -0
  20. package/dist/exports/Tree.cjs.map +1 -1
  21. package/dist/exports/Tree.js.map +1 -1
  22. package/dist/exports/Tree.mjs.map +1 -1
  23. package/dist/exports/index.cjs +12 -0
  24. package/dist/exports/index.cjs.map +1 -1
  25. package/dist/exports/index.js +7 -1
  26. package/dist/exports/index.js.map +1 -1
  27. package/dist/exports/index.mjs +7 -1
  28. package/dist/exports/index.mjs.map +1 -1
  29. package/dist/private/Checkbox.cjs.map +1 -1
  30. package/dist/private/Checkbox.js.map +1 -1
  31. package/dist/private/Checkbox.mjs.map +1 -1
  32. package/dist/private/ComboBox.cjs +21 -2
  33. package/dist/private/ComboBox.cjs.map +1 -1
  34. package/dist/private/ComboBox.js +21 -2
  35. package/dist/private/ComboBox.js.map +1 -1
  36. package/dist/private/ComboBox.mjs +21 -2
  37. package/dist/private/ComboBox.mjs.map +1 -1
  38. package/dist/private/Dialog.cjs +15 -1
  39. package/dist/private/Dialog.cjs.map +1 -1
  40. package/dist/private/Dialog.js +15 -1
  41. package/dist/private/Dialog.js.map +1 -1
  42. package/dist/private/Dialog.mjs +15 -1
  43. package/dist/private/Dialog.mjs.map +1 -1
  44. package/dist/private/DragAndDrop.cjs +1 -0
  45. package/dist/private/DragAndDrop.cjs.map +1 -1
  46. package/dist/private/DragAndDrop.js +1 -0
  47. package/dist/private/DragAndDrop.js.map +1 -1
  48. package/dist/private/DragAndDrop.mjs +1 -0
  49. package/dist/private/DragAndDrop.mjs.map +1 -1
  50. package/dist/private/DropZone.cjs +5 -2
  51. package/dist/private/DropZone.cjs.map +1 -1
  52. package/dist/private/DropZone.js +5 -3
  53. package/dist/private/DropZone.js.map +1 -1
  54. package/dist/private/DropZone.mjs +5 -2
  55. package/dist/private/DropZone.mjs.map +1 -1
  56. package/dist/private/FileTrigger.cjs +1 -0
  57. package/dist/private/FileTrigger.cjs.map +1 -1
  58. package/dist/private/FileTrigger.js +1 -0
  59. package/dist/private/FileTrigger.js.map +1 -1
  60. package/dist/private/FileTrigger.mjs +1 -0
  61. package/dist/private/FileTrigger.mjs.map +1 -1
  62. package/dist/private/GridLayout.cjs +3 -1
  63. package/dist/private/GridLayout.cjs.map +1 -1
  64. package/dist/private/GridLayout.js +3 -1
  65. package/dist/private/GridLayout.js.map +1 -1
  66. package/dist/private/GridLayout.mjs +3 -1
  67. package/dist/private/GridLayout.mjs.map +1 -1
  68. package/dist/private/GridList.cjs +12 -1
  69. package/dist/private/GridList.cjs.map +1 -1
  70. package/dist/private/GridList.js +12 -1
  71. package/dist/private/GridList.js.map +1 -1
  72. package/dist/private/GridList.mjs +12 -1
  73. package/dist/private/GridList.mjs.map +1 -1
  74. package/dist/private/ListBox.cjs +9 -1
  75. package/dist/private/ListBox.cjs.map +1 -1
  76. package/dist/private/ListBox.js +9 -1
  77. package/dist/private/ListBox.js.map +1 -1
  78. package/dist/private/ListBox.mjs +9 -1
  79. package/dist/private/ListBox.mjs.map +1 -1
  80. package/dist/private/Menu.cjs +4 -2
  81. package/dist/private/Menu.cjs.map +1 -1
  82. package/dist/private/Menu.js +4 -2
  83. package/dist/private/Menu.js.map +1 -1
  84. package/dist/private/Menu.mjs +4 -2
  85. package/dist/private/Menu.mjs.map +1 -1
  86. package/dist/private/Meter.cjs +2 -1
  87. package/dist/private/Meter.cjs.map +1 -1
  88. package/dist/private/Meter.js +2 -1
  89. package/dist/private/Meter.js.map +1 -1
  90. package/dist/private/Meter.mjs +2 -1
  91. package/dist/private/Meter.mjs.map +1 -1
  92. package/dist/private/Modal.cjs +2 -0
  93. package/dist/private/Modal.cjs.map +1 -1
  94. package/dist/private/Modal.js +2 -0
  95. package/dist/private/Modal.js.map +1 -1
  96. package/dist/private/Modal.mjs +2 -0
  97. package/dist/private/Modal.mjs.map +1 -1
  98. package/dist/private/Popover.cjs +34 -9
  99. package/dist/private/Popover.cjs.map +1 -1
  100. package/dist/private/Popover.js +34 -9
  101. package/dist/private/Popover.js.map +1 -1
  102. package/dist/private/Popover.mjs +34 -9
  103. package/dist/private/Popover.mjs.map +1 -1
  104. package/dist/private/PreviewTrigger.cjs +88 -0
  105. package/dist/private/PreviewTrigger.cjs.map +1 -0
  106. package/dist/private/PreviewTrigger.js +80 -0
  107. package/dist/private/PreviewTrigger.js.map +1 -0
  108. package/dist/private/PreviewTrigger.mjs +79 -0
  109. package/dist/private/PreviewTrigger.mjs.map +1 -0
  110. package/dist/private/ProgressBar.cjs +6 -1
  111. package/dist/private/ProgressBar.cjs.map +1 -1
  112. package/dist/private/ProgressBar.js +6 -1
  113. package/dist/private/ProgressBar.js.map +1 -1
  114. package/dist/private/ProgressBar.mjs +6 -1
  115. package/dist/private/ProgressBar.mjs.map +1 -1
  116. package/dist/private/Select.cjs.map +1 -1
  117. package/dist/private/Select.js.map +1 -1
  118. package/dist/private/Select.mjs.map +1 -1
  119. package/dist/private/Table.cjs +26 -14
  120. package/dist/private/Table.cjs.map +1 -1
  121. package/dist/private/Table.js +26 -14
  122. package/dist/private/Table.js.map +1 -1
  123. package/dist/private/Table.mjs +26 -14
  124. package/dist/private/Table.mjs.map +1 -1
  125. package/dist/private/TableLayout.cjs +3 -1
  126. package/dist/private/TableLayout.cjs.map +1 -1
  127. package/dist/private/TableLayout.js +3 -1
  128. package/dist/private/TableLayout.js.map +1 -1
  129. package/dist/private/TableLayout.mjs +3 -1
  130. package/dist/private/TableLayout.mjs.map +1 -1
  131. package/dist/private/TagGroup.cjs +1 -0
  132. package/dist/private/TagGroup.cjs.map +1 -1
  133. package/dist/private/TagGroup.js +1 -0
  134. package/dist/private/TagGroup.js.map +1 -1
  135. package/dist/private/TagGroup.mjs +1 -0
  136. package/dist/private/TagGroup.mjs.map +1 -1
  137. package/dist/private/ToggleButton.cjs.map +1 -1
  138. package/dist/private/ToggleButton.js.map +1 -1
  139. package/dist/private/ToggleButton.mjs.map +1 -1
  140. package/dist/private/TokenField.cjs +207 -0
  141. package/dist/private/TokenField.cjs.map +1 -0
  142. package/dist/private/TokenField.js +197 -0
  143. package/dist/private/TokenField.js.map +1 -0
  144. package/dist/private/TokenField.mjs +195 -0
  145. package/dist/private/TokenField.mjs.map +1 -0
  146. package/dist/private/Tooltip.cjs +10 -2
  147. package/dist/private/Tooltip.cjs.map +1 -1
  148. package/dist/private/Tooltip.js +10 -2
  149. package/dist/private/Tooltip.js.map +1 -1
  150. package/dist/private/Tooltip.mjs +10 -2
  151. package/dist/private/Tooltip.mjs.map +1 -1
  152. package/dist/private/Tree.cjs +11 -1
  153. package/dist/private/Tree.cjs.map +1 -1
  154. package/dist/private/Tree.js +11 -1
  155. package/dist/private/Tree.js.map +1 -1
  156. package/dist/private/Tree.mjs +11 -1
  157. package/dist/private/Tree.mjs.map +1 -1
  158. package/dist/private/Virtualizer.cjs +18 -16
  159. package/dist/private/Virtualizer.cjs.map +1 -1
  160. package/dist/private/Virtualizer.js +18 -16
  161. package/dist/private/Virtualizer.js.map +1 -1
  162. package/dist/private/Virtualizer.mjs +18 -16
  163. package/dist/private/Virtualizer.mjs.map +1 -1
  164. package/dist/private/useDragAndDrop.cjs +7 -0
  165. package/dist/private/useDragAndDrop.cjs.map +1 -1
  166. package/dist/private/useDragAndDrop.js +7 -0
  167. package/dist/private/useDragAndDrop.js.map +1 -1
  168. package/dist/private/useDragAndDrop.mjs +7 -0
  169. package/dist/private/useDragAndDrop.mjs.map +1 -1
  170. package/dist/private/utils.cjs.map +1 -1
  171. package/dist/private/utils.js.map +1 -1
  172. package/dist/private/utils.mjs.map +1 -1
  173. package/dist/types/exports/GridList.d.ts +1 -1
  174. package/dist/types/exports/PreviewTrigger.d.ts +3 -0
  175. package/dist/types/exports/TokenField.d.ts +5 -0
  176. package/dist/types/exports/Tree.d.ts +1 -1
  177. package/dist/types/exports/index.d.ts +7 -2
  178. package/dist/types/src/ComboBox.d.ts +4 -1
  179. package/dist/types/src/GridList.d.ts +12 -1
  180. package/dist/types/src/ListBox.d.ts +1 -1
  181. package/dist/types/src/Popover.d.ts +7 -0
  182. package/dist/types/src/PreviewTrigger.d.ts +23 -0
  183. package/dist/types/src/Select.d.ts +1 -1
  184. package/dist/types/src/Table.d.ts +24 -0
  185. package/dist/types/src/TokenField.d.ts +111 -0
  186. package/dist/types/src/Tree.d.ts +7 -5
  187. package/dist/types/src/Virtualizer.d.ts +4 -0
  188. package/dist/types/src/utils.d.ts +19 -5
  189. package/i18n/ar-AE.js +1 -1
  190. package/i18n/ar-AE.mjs +1 -1
  191. package/i18n/bg-BG.js +1 -1
  192. package/i18n/bg-BG.mjs +1 -1
  193. package/i18n/cs-CZ.js +1 -1
  194. package/i18n/cs-CZ.mjs +1 -1
  195. package/i18n/da-DK.js +1 -1
  196. package/i18n/da-DK.mjs +1 -1
  197. package/i18n/de-DE.js +1 -1
  198. package/i18n/de-DE.mjs +1 -1
  199. package/i18n/el-GR.js +1 -1
  200. package/i18n/el-GR.mjs +1 -1
  201. package/i18n/en-US.js +1 -1
  202. package/i18n/en-US.mjs +1 -1
  203. package/i18n/es-ES.js +1 -1
  204. package/i18n/es-ES.mjs +1 -1
  205. package/i18n/et-EE.js +1 -1
  206. package/i18n/et-EE.mjs +1 -1
  207. package/i18n/fi-FI.js +1 -1
  208. package/i18n/fi-FI.mjs +1 -1
  209. package/i18n/fr-FR.js +1 -1
  210. package/i18n/fr-FR.mjs +1 -1
  211. package/i18n/he-IL.js +1 -1
  212. package/i18n/he-IL.mjs +1 -1
  213. package/i18n/hr-HR.js +1 -1
  214. package/i18n/hr-HR.mjs +1 -1
  215. package/i18n/hu-HU.js +1 -1
  216. package/i18n/hu-HU.mjs +1 -1
  217. package/i18n/it-IT.js +1 -1
  218. package/i18n/it-IT.mjs +1 -1
  219. package/i18n/ja-JP.js +1 -1
  220. package/i18n/ja-JP.mjs +1 -1
  221. package/i18n/ko-KR.js +1 -1
  222. package/i18n/ko-KR.mjs +1 -1
  223. package/i18n/lt-LT.js +1 -1
  224. package/i18n/lt-LT.mjs +1 -1
  225. package/i18n/lv-LV.js +1 -1
  226. package/i18n/lv-LV.mjs +1 -1
  227. package/i18n/nb-NO.js +1 -1
  228. package/i18n/nb-NO.mjs +1 -1
  229. package/i18n/nl-NL.js +1 -1
  230. package/i18n/nl-NL.mjs +1 -1
  231. package/i18n/pl-PL.js +1 -1
  232. package/i18n/pl-PL.mjs +1 -1
  233. package/i18n/pt-BR.js +1 -1
  234. package/i18n/pt-BR.mjs +1 -1
  235. package/i18n/pt-PT.js +1 -1
  236. package/i18n/pt-PT.mjs +1 -1
  237. package/i18n/ro-RO.js +1 -1
  238. package/i18n/ro-RO.mjs +1 -1
  239. package/i18n/ru-RU.js +1 -1
  240. package/i18n/ru-RU.mjs +1 -1
  241. package/i18n/sk-SK.js +1 -1
  242. package/i18n/sk-SK.mjs +1 -1
  243. package/i18n/sl-SI.js +1 -1
  244. package/i18n/sl-SI.mjs +1 -1
  245. package/i18n/sr-SP.js +1 -1
  246. package/i18n/sr-SP.mjs +1 -1
  247. package/i18n/sv-SE.js +1 -1
  248. package/i18n/sv-SE.mjs +1 -1
  249. package/i18n/tr-TR.js +1 -1
  250. package/i18n/tr-TR.mjs +1 -1
  251. package/i18n/uk-UA.js +1 -1
  252. package/i18n/uk-UA.mjs +1 -1
  253. package/i18n/zh-CN.js +1 -1
  254. package/i18n/zh-CN.mjs +1 -1
  255. package/i18n/zh-TW.js +1 -1
  256. package/i18n/zh-TW.mjs +1 -1
  257. package/package.json +32 -31
@@ -0,0 +1,195 @@
1
+ import {dom as $7230ffa83bc0c2cf$export$df3a06d6289f983e, Provider as $7230ffa83bc0c2cf$export$2881499e37b75b9a, useContextProps as $7230ffa83bc0c2cf$export$29f1550f4b0d4415, useRenderProps as $7230ffa83bc0c2cf$export$4d86445c2cf5e3, useSlot as $7230ffa83bc0c2cf$export$9d4c57ee4c6ffdd8, useSlottedContext as $7230ffa83bc0c2cf$export$fabf2dc03a41866e} from "./utils.mjs";
2
+ import {FieldInputContext as $4b38b5b75ecc6208$export$698f465ec27e93df} from "./Autocomplete.mjs";
3
+ import {LabelContext as $43a3b93638fe5db9$export$75b6ee27786ba447} from "./Label.mjs";
4
+ import {TextContext as $efe09c6d1c304b50$export$9afb8bc826b033ea} from "./Text.mjs";
5
+ import {createHideableComponent as $iRP3W$createHideableComponent} from "react-aria/private/collections/Hidden";
6
+ import {filterDOMProps as $iRP3W$filterDOMProps} from "react-aria/filterDOMProps";
7
+ import {useHover as $iRP3W$useHover} from "react-aria/useHover";
8
+ import {mergeProps as $iRP3W$mergeProps} from "react-aria/mergeProps";
9
+ import {mergeRefs as $iRP3W$mergeRefs} from "react-aria/mergeRefs";
10
+ import $iRP3W$react, {createContext as $iRP3W$createContext, forwardRef as $iRP3W$forwardRef, useContext as $iRP3W$useContext, useMemo as $iRP3W$useMemo, memo as $iRP3W$memo} from "react";
11
+ import {useTokenFieldState as $iRP3W$useTokenFieldState} from "react-stately/useTokenFieldState";
12
+ import {useFocusRing as $iRP3W$useFocusRing} from "react-aria/useFocusRing";
13
+ import {useObjectRef as $iRP3W$useObjectRef} from "react-aria/useObjectRef";
14
+ import {useTokenField as $iRP3W$useTokenField, useToken as $iRP3W$useToken} from "react-aria/useTokenField";
15
+
16
+ /*
17
+ * Copyright 2026 Adobe. All rights reserved.
18
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
19
+ * you may not use this file except in compliance with the License. You may obtain a copy
20
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
21
+ *
22
+ * Unless required by applicable law or agreed to in writing, software distributed under
23
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
24
+ * OF ANY KIND, either express or implied. See the License for the specific language
25
+ * governing permissions and limitations under the License.
26
+ */
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+ const $45dd9fe7ca53fba4$export$24532e5e37c56ff2 = /*#__PURE__*/ (0, $iRP3W$createContext)(null);
41
+ const $45dd9fe7ca53fba4$var$TokenInputContext = /*#__PURE__*/ (0, $iRP3W$createContext)(null);
42
+ const $45dd9fe7ca53fba4$export$e4550c392cbe69d7 = /*#__PURE__*/ (0, $iRP3W$createHideableComponent)(function TokenField(props, ref) {
43
+ [props, ref] = (0, $7230ffa83bc0c2cf$export$29f1550f4b0d4415)(props, ref, $45dd9fe7ca53fba4$export$24532e5e37c56ff2);
44
+ let [labelRef, label] = (0, $7230ffa83bc0c2cf$export$9d4c57ee4c6ffdd8)(!props['aria-label'] && !props['aria-labelledby']);
45
+ let fieldCtx = (0, $7230ffa83bc0c2cf$export$fabf2dc03a41866e)((0, $4b38b5b75ecc6208$export$698f465ec27e93df), props.slot);
46
+ let { value: _autocompleteValue, onChange: onAutocompleteChange, ref: autocompleteRef, ...autocompleteProps } = fieldCtx ?? {};
47
+ let inputRef = (0, $iRP3W$useObjectRef)(autocompleteRef);
48
+ let isDisabled = props.isDisabled || false;
49
+ let isReadOnly = props.isReadOnly || false;
50
+ let state = (0, $iRP3W$useTokenFieldState)({
51
+ ...props,
52
+ onChange: (value)=>{
53
+ props.onChange?.(value);
54
+ onAutocompleteChange?.(value.toString());
55
+ }
56
+ });
57
+ let { tokenFieldProps: tokenFieldProps, labelProps: labelProps, descriptionProps: descriptionProps } = (0, $iRP3W$useTokenField)({
58
+ ...props,
59
+ label: // @ts-ignore - not a public prop, used to determine if slot is present
60
+ label,
61
+ role: props.role || autocompleteProps['role'] || 'textbox'
62
+ }, state, inputRef);
63
+ let renderProps = (0, $7230ffa83bc0c2cf$export$4d86445c2cf5e3)({
64
+ ...props,
65
+ values: {
66
+ isDisabled: isDisabled,
67
+ isReadOnly: isReadOnly
68
+ },
69
+ defaultClassName: 'react-aria-TokenField'
70
+ });
71
+ let DOMProps = (0, $iRP3W$filterDOMProps)(props, {
72
+ global: true
73
+ });
74
+ return /*#__PURE__*/ (0, $iRP3W$react).createElement((0, $7230ffa83bc0c2cf$export$df3a06d6289f983e).div, {
75
+ ...DOMProps,
76
+ ...renderProps,
77
+ ref: ref,
78
+ slot: props.slot || undefined,
79
+ "data-disabled": isDisabled || undefined,
80
+ "data-readonly": isReadOnly || undefined
81
+ }, /*#__PURE__*/ (0, $iRP3W$react).createElement((0, $7230ffa83bc0c2cf$export$2881499e37b75b9a), {
82
+ values: [
83
+ [
84
+ (0, $43a3b93638fe5db9$export$75b6ee27786ba447),
85
+ {
86
+ ...labelProps,
87
+ elementType: 'span',
88
+ ref: labelRef
89
+ }
90
+ ],
91
+ [
92
+ (0, $efe09c6d1c304b50$export$9afb8bc826b033ea),
93
+ {
94
+ slots: {
95
+ description: descriptionProps
96
+ }
97
+ }
98
+ ],
99
+ [
100
+ $45dd9fe7ca53fba4$var$TokenInputContext,
101
+ {
102
+ tokenFieldProps: tokenFieldProps,
103
+ state: state,
104
+ isDisabled: isDisabled,
105
+ isReadOnly: isReadOnly,
106
+ autocompleteProps: autocompleteProps,
107
+ ref: inputRef
108
+ }
109
+ ]
110
+ ]
111
+ }, renderProps.children));
112
+ });
113
+ const $45dd9fe7ca53fba4$export$4ddf413e820cfcc4 = /*#__PURE__*/ (0, $iRP3W$forwardRef)(function TokenInput(props, forwardedRef) {
114
+ let { tokenFieldProps: tokenFieldProps, state: state, isDisabled: isDisabled = false, isReadOnly: isReadOnly = false, autocompleteProps: autocompleteProps, ref: contextRef } = (0, $iRP3W$useContext)($45dd9fe7ca53fba4$var$TokenInputContext);
115
+ let ref = (0, $iRP3W$useMemo)(()=>(0, $iRP3W$mergeRefs)(contextRef, forwardedRef), [
116
+ contextRef,
117
+ forwardedRef
118
+ ]);
119
+ let { children: children, ...domProps } = props;
120
+ let { isHovered: isHovered, hoverProps: hoverProps } = (0, $iRP3W$useHover)(domProps);
121
+ let { isFocused: isFocused, isFocusVisible: isFocusVisible, focusProps: focusProps } = (0, $iRP3W$useFocusRing)();
122
+ let renderProps = (0, $7230ffa83bc0c2cf$export$4d86445c2cf5e3)({
123
+ ...domProps,
124
+ defaultClassName: 'react-aria-TokenInput',
125
+ values: {
126
+ isHovered: isHovered,
127
+ isFocused: isFocused,
128
+ isFocusVisible: isFocusVisible,
129
+ isDisabled: isDisabled,
130
+ isReadOnly: isReadOnly
131
+ }
132
+ });
133
+ let DOMProps = (0, $iRP3W$filterDOMProps)(domProps, {
134
+ global: true
135
+ });
136
+ return /*#__PURE__*/ (0, $iRP3W$react).createElement((0, $7230ffa83bc0c2cf$export$df3a06d6289f983e).div, {
137
+ ...(0, $iRP3W$mergeProps)(DOMProps, renderProps, focusProps, hoverProps, tokenFieldProps, autocompleteProps),
138
+ ref: ref,
139
+ "data-focused": isFocused || undefined,
140
+ "data-focus-visible": isFocusVisible || undefined,
141
+ "data-disabled": isDisabled || undefined,
142
+ "data-readonly": isReadOnly || undefined,
143
+ style: {
144
+ ...renderProps.style,
145
+ ...tokenFieldProps?.style
146
+ }
147
+ }, /*#__PURE__*/ (0, $iRP3W$react).createElement($45dd9fe7ca53fba4$var$CompositionRenderBlocker, {
148
+ isComposing: state.isComposing
149
+ }, state.value.segments.map((v, i)=>{
150
+ switch(v.type){
151
+ case 'token':
152
+ {
153
+ let token = children(v);
154
+ return(// Wrap tokens in zero-width spaces so the cursor is placed correctly.
155
+ /*#__PURE__*/ (0, $iRP3W$react).createElement("span", {
156
+ key: i
157
+ }, '\u200b', token, '\u200b'));
158
+ }
159
+ case 'text':
160
+ return v.text;
161
+ }
162
+ }), state.value.segments.at(-1)?.text.endsWith('\n') && /*#__PURE__*/ (0, $iRP3W$react).createElement("br", null)));
163
+ });
164
+ const $45dd9fe7ca53fba4$export$50792b0e93539fde = /*#__PURE__*/ (0, $iRP3W$forwardRef)(function Token(props, ref) {
165
+ let { isDisabled: isDisabled } = (0, $iRP3W$useContext)($45dd9fe7ca53fba4$var$TokenInputContext);
166
+ let objectRef = (0, $iRP3W$useObjectRef)(ref);
167
+ let { tokenProps: tokenProps, isSelected: isSelected } = (0, $iRP3W$useToken)(props, {}, objectRef);
168
+ let renderProps = (0, $7230ffa83bc0c2cf$export$4d86445c2cf5e3)({
169
+ ...props,
170
+ defaultClassName: 'react-aria-Token',
171
+ values: {
172
+ isSelected: isSelected,
173
+ isDisabled: isDisabled
174
+ }
175
+ });
176
+ let DOMProps = (0, $iRP3W$filterDOMProps)(props, {
177
+ global: true
178
+ });
179
+ return /*#__PURE__*/ (0, $iRP3W$react).createElement((0, $7230ffa83bc0c2cf$export$df3a06d6289f983e).span, {
180
+ ref: objectRef,
181
+ ...(0, $iRP3W$mergeProps)(DOMProps, renderProps, tokenProps),
182
+ "data-selected": isSelected || undefined,
183
+ "data-disabled": isDisabled || undefined,
184
+ style: {
185
+ ...renderProps.style,
186
+ ...tokenProps.style
187
+ }
188
+ }, renderProps.children);
189
+ });
190
+ // Prevents React from re-rendering during composition events.
191
+ const $45dd9fe7ca53fba4$var$CompositionRenderBlocker = /*#__PURE__*/ (0, $iRP3W$memo)(({ children: children })=>children, (prevProps, nextProps)=>nextProps.isComposing ? true : prevProps.children === nextProps.children);
192
+
193
+
194
+ export {$45dd9fe7ca53fba4$export$24532e5e37c56ff2 as TokenFieldContext, $45dd9fe7ca53fba4$export$e4550c392cbe69d7 as TokenField, $45dd9fe7ca53fba4$export$4ddf413e820cfcc4 as TokenInput, $45dd9fe7ca53fba4$export$50792b0e93539fde as Token};
195
+ //# sourceMappingURL=TokenField.mjs.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/TokenField.tsx"],"sourcesContent":["/*\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaTokenFieldProps} from 'react-aria/useTokenField';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RenderProps,\n SlotProps,\n StyleRenderProps,\n useContextProps,\n useRenderProps,\n useSlot,\n useSlottedContext\n} from './utils';\nimport {createHideableComponent} from 'react-aria/private/collections/Hidden';\nimport {FieldInputContext} from './Autocomplete';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {forwardRefType, GlobalDOMAttributes} from '@react-types/shared';\nimport {HoverProps, useHover} from 'react-aria/useHover';\nimport {LabelContext} from './Label';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {mergeRefs} from 'react-aria/mergeRefs';\nimport React, {\n createContext,\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n memo,\n RefObject,\n useContext,\n useMemo\n} from 'react';\nimport {TextContext} from './Text';\nimport {\n TokenFieldState,\n TokenFieldValue,\n TokenSegment,\n useTokenFieldState\n} from 'react-stately/useTokenFieldState';\nimport {useFocusRing} from 'react-aria/useFocusRing';\nimport {useObjectRef} from 'react-aria/useObjectRef';\nimport {useToken, useTokenField} from 'react-aria/useTokenField';\n\nexport interface TokenFieldRenderProps {\n /**\n * Whether the token field is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the token field is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n}\n\nexport interface TokenFieldProps<T extends TokenFieldValue = TokenFieldValue>\n extends\n AriaTokenFieldProps<T>,\n RenderProps<TokenFieldRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-TokenField'\n */\n className?: ClassNameOrFunction<TokenFieldRenderProps>;\n}\n\nexport interface TokenInputRenderProps {\n /**\n * Whether the token input is currently hovered with a mouse.\n *\n * @selector [data-hovered]\n */\n isHovered: boolean;\n /**\n * Whether the token input is focused, either via a mouse or keyboard.\n *\n * @selector [data-focused]\n */\n isFocused: boolean;\n /**\n * Whether the token input is keyboard focused.\n *\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean;\n /**\n * Whether the token input is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n /**\n * Whether the token input is read only.\n *\n * @selector [data-readonly]\n */\n isReadOnly: boolean;\n}\n\nexport interface TokenInputProps<T extends TokenFieldValue = TokenFieldValue>\n extends\n HoverProps,\n StyleRenderProps<TokenInputRenderProps>,\n SlotProps,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * A function that renders a token for each segment in the token field.\n */\n children: (\n segment: TokenSegment<T extends TokenFieldValue<infer V> ? V : never>\n ) => React.ReactElement;\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-TokenInput'\n */\n className?: ClassNameOrFunction<TokenInputRenderProps>;\n}\n\ninterface TokenInputContextValue<T extends TokenFieldValue = TokenFieldValue> {\n tokenFieldProps: HTMLAttributes<HTMLDivElement>;\n state: TokenFieldState<T>;\n isDisabled: boolean;\n isReadOnly: boolean;\n autocompleteProps?: HTMLAttributes<HTMLDivElement>;\n ref: RefObject<HTMLDivElement | null>;\n}\n\nexport const TokenFieldContext = createContext<ContextValue<TokenFieldProps, HTMLDivElement>>(null);\nconst TokenInputContext = createContext<TokenInputContextValue | null>(null);\n\n/**\n * A token field allows users to enter text with inline tokens. Use it to build AI prompt fields,\n * tag inputs, structured search fields, mention inputs, and multi-select comboboxes.\n */\nexport const TokenField = /*#__PURE__*/ createHideableComponent(function TokenField<\n T extends TokenFieldValue = TokenFieldValue\n>(props: TokenFieldProps<T>, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, TokenFieldContext);\n let [labelRef, label] = useSlot(!props['aria-label'] && !props['aria-labelledby']);\n\n let fieldCtx = useSlottedContext(FieldInputContext, props.slot);\n let {\n value: _autocompleteValue,\n onChange: onAutocompleteChange,\n ref: autocompleteRef,\n ...autocompleteProps\n } = fieldCtx ?? {};\n let inputRef = useObjectRef(autocompleteRef);\n\n let isDisabled = props.isDisabled || false;\n let isReadOnly = props.isReadOnly || false;\n\n let state = useTokenFieldState<T>({\n ...props,\n onChange: (value: T) => {\n props.onChange?.(value);\n onAutocompleteChange?.(value.toString());\n }\n });\n\n let {tokenFieldProps, labelProps, descriptionProps} = useTokenField(\n {\n ...props,\n // @ts-ignore - not a public prop, used to determine if slot is present\n label,\n role: props.role || autocompleteProps['role'] || 'textbox'\n },\n state,\n inputRef\n );\n\n let renderProps = useRenderProps({\n ...props,\n values: {\n isDisabled,\n isReadOnly\n },\n defaultClassName: 'react-aria-TokenField'\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...DOMProps}\n {...renderProps}\n ref={ref}\n slot={props.slot || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}>\n <Provider\n values={[\n [LabelContext, {...labelProps, elementType: 'span', ref: labelRef}],\n [\n TextContext,\n {\n slots: {\n description: descriptionProps\n }\n }\n ],\n [\n TokenInputContext,\n {\n tokenFieldProps,\n state: state as any,\n isDisabled,\n isReadOnly,\n autocompleteProps: autocompleteProps as HTMLAttributes<HTMLDivElement>,\n ref: inputRef as RefObject<HTMLDivElement | null>\n }\n ]\n ]}>\n {renderProps.children}\n </Provider>\n </dom.div>\n );\n});\n\n/**\n * A token input represents the editable area within a token field.\n */\nexport const TokenInput = /*#__PURE__*/ (forwardRef as forwardRefType)(function TokenInput<\n T extends TokenFieldValue = TokenFieldValue\n>(props: TokenInputProps<T>, forwardedRef: ForwardedRef<HTMLDivElement | null>) {\n let {\n tokenFieldProps,\n state,\n isDisabled = false,\n isReadOnly = false,\n autocompleteProps,\n ref: contextRef\n } = useContext(TokenInputContext)!;\n let ref = useMemo(() => mergeRefs(contextRef, forwardedRef), [contextRef, forwardedRef]);\n let {children, ...domProps} = props;\n\n let {isHovered, hoverProps} = useHover(domProps);\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n\n let renderProps = useRenderProps({\n ...domProps,\n defaultClassName: 'react-aria-TokenInput',\n values: {\n isHovered,\n isFocused,\n isFocusVisible,\n isDisabled,\n isReadOnly\n }\n });\n\n let DOMProps = filterDOMProps(domProps, {global: true});\n\n return (\n <dom.div\n {...mergeProps(\n DOMProps,\n renderProps,\n focusProps,\n hoverProps,\n tokenFieldProps,\n autocompleteProps\n )}\n ref={ref}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n style={{...renderProps.style, ...tokenFieldProps?.style}}>\n <CompositionRenderBlocker isComposing={state.isComposing}>\n {state.value.segments.map((v, i) => {\n switch (v.type) {\n case 'token': {\n let token = children(v);\n return (\n // Wrap tokens in zero-width spaces so the cursor is placed correctly.\n <span key={i}>\n {'\\u200b'}\n {token}\n {'\\u200b'}\n </span>\n );\n }\n case 'text':\n return v.text;\n }\n })}\n {/* Force cursor to the next line if the last segment ends with a newline. */}\n {state.value.segments.at(-1)?.text.endsWith('\\n') && <br />}\n </CompositionRenderBlocker>\n </dom.div>\n );\n});\n\nexport interface TokenRenderProps {\n /**\n * Whether the token is selected.\n *\n * @selector [data-selected]\n */\n isSelected: boolean;\n /**\n * Whether the token is disabled.\n *\n * @selector [data-disabled]\n */\n isDisabled: boolean;\n}\n\nexport interface TokenProps\n extends RenderProps<TokenRenderProps, 'span'>, GlobalDOMAttributes<HTMLSpanElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Token'\n */\n className?: ClassNameOrFunction<TokenRenderProps>;\n}\n\n/**\n * A token represents an inline segment within a token field.\n */\nexport const Token = forwardRef(function Token(\n props: TokenProps,\n ref: ForwardedRef<HTMLSpanElement>\n) {\n let {isDisabled} = useContext(TokenInputContext)!;\n let objectRef = useObjectRef(ref);\n let {tokenProps, isSelected} = useToken(props, {}, objectRef);\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Token',\n values: {\n isSelected,\n isDisabled\n }\n });\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.span\n ref={objectRef}\n {...mergeProps(DOMProps, renderProps, tokenProps)}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n style={{\n ...renderProps.style,\n ...tokenProps.style\n }}>\n {renderProps.children}\n </dom.span>\n );\n});\n\n// Prevents React from re-rendering during composition events.\nconst CompositionRenderBlocker = memo(\n ({children}: {children: React.ReactNode; isComposing: boolean}) => children,\n (prevProps, nextProps) =>\n nextProps.isComposing ? true : prevProps.children === nextProps.children\n);\n"],"names":[],"version":3,"file":"TokenField.mjs.map"}
@@ -74,7 +74,10 @@ const $1f7d7e07fe5bbfc5$export$28c660c63b792dea = /*#__PURE__*/ (0, $cQApC$react
74
74
  let contextState = (0, $cQApC$react.useContext)($1f7d7e07fe5bbfc5$export$7a7623236eec67fa);
75
75
  let localState = (0, $cQApC$reactstatelyuseTooltipTriggerState.useTooltipTriggerState)(props);
76
76
  let state = props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;
77
- let isExiting = (0, $cQApC$reactariaprivateutilsanimation.useExitAnimation)(ref, state.isOpen) || props.isExiting || false;
77
+ // Skip the automatic exit animation when closing instantly (e.g. swapping between tooltips
78
+ // during warmup). An explicitly provided isExiting prop still takes precedence.
79
+ let exitAnimation = (0, $cQApC$reactariaprivateutilsanimation.useExitAnimation)(ref, state.isOpen);
80
+ let isExiting = props.isExiting || !state.shouldSkipAnimation && exitAnimation || false;
78
81
  if (!state.isOpen && !isExiting) return null;
79
82
  return /*#__PURE__*/ (0, ($parcel$interopDefault($cQApC$react))).createElement((0, $cQApC$reactariaprivateoverlaysuseModal.OverlayContainer), {
80
83
  portalContainer: UNSTABLE_portalContainer
@@ -100,7 +103,10 @@ function $1f7d7e07fe5bbfc5$var$TooltipInner(props) {
100
103
  containerPadding: props.containerPadding,
101
104
  onClose: ()=>state.close(true)
102
105
  });
103
- let isEntering = (0, $cQApC$reactariaprivateutilsanimation.useEnterAnimation)(props.tooltipRef, !!placement) || props.isEntering || false;
106
+ // Skip the automatic entry animation when opening instantly (e.g. swapping between tooltips
107
+ // during warmup). An explicitly provided isEntering prop still takes precedence.
108
+ let enterAnimation = (0, $cQApC$reactariaprivateutilsanimation.useEnterAnimation)(props.tooltipRef, !!placement);
109
+ let isEntering = props.isEntering || !state.shouldSkipAnimation && enterAnimation || false;
104
110
  let renderProps = (0, $048d76b84370f141$exports.useRenderProps)({
105
111
  ...props,
106
112
  defaultClassName: 'react-aria-Tooltip',
@@ -116,6 +122,7 @@ function $1f7d7e07fe5bbfc5$var$TooltipInner(props) {
116
122
  let DOMProps = (0, $cQApC$reactariafilterDOMProps.filterDOMProps)(props, {
117
123
  global: true
118
124
  });
125
+ // oxlint-disable react/react-compiler
119
126
  return /*#__PURE__*/ (0, ($parcel$interopDefault($cQApC$react))).createElement((0, $048d76b84370f141$exports.dom).div, {
120
127
  ...(0, $cQApC$reactariamergeProps.mergeProps)(DOMProps, renderProps, tooltipProps),
121
128
  ref: props.tooltipRef,
@@ -134,6 +141,7 @@ function $1f7d7e07fe5bbfc5$var$TooltipInner(props) {
134
141
  ref: arrowRef
135
142
  }
136
143
  }, renderProps.children));
144
+ // oxlint-enable react/react-compiler
137
145
  }
138
146
 
139
147
 
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/Tooltip.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n FocusableElement,\n forwardRefType,\n GlobalDOMAttributes,\n RefObject\n} from '@react-types/shared';\nimport {\n AriaPositionProps,\n Placement,\n PlacementAxis,\n PositionProps,\n useOverlayPosition\n} from 'react-aria/useOverlayPosition';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RenderProps,\n useContextProps,\n useRenderProps\n} from './utils';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FocusableProvider} from 'react-aria/private/interactions/useFocusable';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {OverlayArrowContext} from './OverlayArrow';\nimport {OverlayContainer} from 'react-aria/private/overlays/useModal';\nimport {OverlayTriggerProps} from 'react-stately/useOverlayTriggerState';\nimport React, {\n createContext,\n CSSProperties,\n ForwardedRef,\n forwardRef,\n JSX,\n ReactNode,\n useContext,\n useRef\n} from 'react';\nimport {\n TooltipTriggerProps,\n TooltipTriggerState,\n useTooltipTriggerState\n} from 'react-stately/useTooltipTriggerState';\nimport {useEnterAnimation, useExitAnimation} from 'react-aria/private/utils/animation';\nimport {useTooltip, useTooltipTrigger} from 'react-aria/useTooltipTrigger';\n\nexport interface TooltipTriggerComponentProps extends TooltipTriggerProps {\n children: ReactNode;\n}\n\nexport interface TooltipProps\n extends\n PositionProps,\n Pick<AriaPositionProps, 'arrowBoundaryOffset'>,\n OverlayTriggerProps,\n AriaLabelingProps,\n RenderProps<TooltipRenderProps>,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Tooltip'\n */\n className?: ClassNameOrFunction<TooltipRenderProps>;\n /**\n * The ref for the element which the tooltip positions itself with respect to.\n *\n * When used within a TooltipTrigger this is set automatically. It is only required when used\n * standalone.\n */\n triggerRef?: RefObject<Element | null>;\n /**\n * Whether the tooltip is currently performing an entry animation.\n */\n isEntering?: boolean;\n /**\n * Whether the tooltip is currently performing an exit animation.\n */\n isExiting?: boolean;\n /**\n * The container element in which the overlay portal will be placed. This may have unknown\n * behavior depending on where it is portalled to.\n *\n * @deprecated - Use a parent UNSAFE_PortalProvider to set your portal container instead.\n * @default document.body\n */\n UNSTABLE_portalContainer?: Element;\n /**\n * The placement of the tooltip with respect to the trigger.\n *\n * @default 'top'\n */\n placement?: Placement;\n}\n\nexport interface TooltipRenderProps {\n /**\n * The placement of the tooltip relative to the trigger.\n *\n * @selector [data-placement=\"left | right | top | bottom\"]\n */\n placement: PlacementAxis | null;\n /**\n * Whether the tooltip is currently entering. Use this to apply animations.\n *\n * @selector [data-entering]\n */\n isEntering: boolean;\n /**\n * Whether the tooltip is currently exiting. Use this to apply animations.\n *\n * @selector [data-exiting]\n */\n isExiting: boolean;\n /**\n * State of the tooltip.\n */\n state: TooltipTriggerState;\n}\n\nexport const TooltipTriggerStateContext = createContext<TooltipTriggerState | null>(null);\nexport const TooltipContext = createContext<ContextValue<TooltipProps, HTMLDivElement>>(null);\n\n/**\n * TooltipTrigger wraps around a trigger element and a Tooltip. It handles opening and closing\n * the Tooltip when the user hovers over or focuses the trigger, and positioning the Tooltip\n * relative to the trigger.\n */\nexport function TooltipTrigger(props: TooltipTriggerComponentProps): JSX.Element {\n let state = useTooltipTriggerState(props);\n let ref = useRef<FocusableElement>(null);\n let {triggerProps, tooltipProps} = useTooltipTrigger(props, state, ref);\n\n return (\n <Provider\n values={[\n [TooltipTriggerStateContext, state],\n [TooltipContext, {...tooltipProps, triggerRef: ref}]\n ]}>\n <FocusableProvider {...triggerProps} ref={ref}>\n {props.children}\n </FocusableProvider>\n </Provider>\n );\n}\n\n/**\n * A tooltip displays a description of an element on hover or focus.\n */\nexport const Tooltip = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tooltip(\n {UNSTABLE_portalContainer, ...props}: TooltipProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, TooltipContext);\n let contextState = useContext(TooltipTriggerStateContext);\n let localState = useTooltipTriggerState(props);\n let state =\n props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;\n let isExiting = useExitAnimation(ref, state.isOpen) || props.isExiting || false;\n if (!state.isOpen && !isExiting) {\n return null;\n }\n\n return (\n <OverlayContainer portalContainer={UNSTABLE_portalContainer}>\n <TooltipInner {...props} tooltipRef={ref} isExiting={isExiting} />\n </OverlayContainer>\n );\n});\n\nfunction TooltipInner(\n props: TooltipProps & {isExiting: boolean; tooltipRef: RefObject<HTMLDivElement | null>}\n) {\n let state = useContext(TooltipTriggerStateContext)!;\n let arrowRef = useRef<HTMLDivElement>(null);\n\n let {overlayProps, arrowProps, placement, triggerAnchorPoint} = useOverlayPosition({\n placement: props.placement || 'top',\n targetRef: props.triggerRef!,\n overlayRef: props.tooltipRef,\n arrowRef,\n offset: props.offset,\n crossOffset: props.crossOffset,\n isOpen: state.isOpen,\n arrowBoundaryOffset: props.arrowBoundaryOffset,\n shouldFlip: props.shouldFlip,\n containerPadding: props.containerPadding,\n onClose: () => state.close(true)\n });\n\n let isEntering = useEnterAnimation(props.tooltipRef, !!placement) || props.isEntering || false;\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tooltip',\n values: {\n placement,\n isEntering,\n isExiting: props.isExiting,\n state\n }\n });\n\n props = mergeProps(props, overlayProps);\n let {tooltipProps} = useTooltip(props, state);\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, tooltipProps)}\n ref={props.tooltipRef}\n style={\n {\n ...overlayProps.style,\n '--trigger-anchor-point': triggerAnchorPoint\n ? `${triggerAnchorPoint.x}px ${triggerAnchorPoint.y}px`\n : undefined,\n ...renderProps.style\n } as CSSProperties\n }\n data-placement={placement ?? undefined}\n data-entering={isEntering || undefined}\n data-exiting={props.isExiting || undefined}>\n <OverlayArrowContext.Provider value={{...arrowProps, placement, ref: arrowRef}}>\n {renderProps.children}\n </OverlayArrowContext.Provider>\n </dom.div>\n );\n}\n"],"names":[],"version":3,"file":"Tooltip.cjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/Tooltip.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n FocusableElement,\n forwardRefType,\n GlobalDOMAttributes,\n RefObject\n} from '@react-types/shared';\nimport {\n AriaPositionProps,\n Placement,\n PlacementAxis,\n PositionProps,\n useOverlayPosition\n} from 'react-aria/useOverlayPosition';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RenderProps,\n useContextProps,\n useRenderProps\n} from './utils';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FocusableProvider} from 'react-aria/private/interactions/useFocusable';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {OverlayArrowContext} from './OverlayArrow';\nimport {OverlayContainer} from 'react-aria/private/overlays/useModal';\nimport {OverlayTriggerProps} from 'react-stately/useOverlayTriggerState';\nimport React, {\n createContext,\n CSSProperties,\n ForwardedRef,\n forwardRef,\n JSX,\n ReactNode,\n useContext,\n useRef\n} from 'react';\nimport {\n TooltipTriggerProps,\n TooltipTriggerState,\n useTooltipTriggerState\n} from 'react-stately/useTooltipTriggerState';\nimport {useEnterAnimation, useExitAnimation} from 'react-aria/private/utils/animation';\nimport {useTooltip, useTooltipTrigger} from 'react-aria/useTooltipTrigger';\n\nexport interface TooltipTriggerComponentProps extends TooltipTriggerProps {\n children: ReactNode;\n}\n\nexport interface TooltipProps\n extends\n PositionProps,\n Pick<AriaPositionProps, 'arrowBoundaryOffset'>,\n OverlayTriggerProps,\n AriaLabelingProps,\n RenderProps<TooltipRenderProps>,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Tooltip'\n */\n className?: ClassNameOrFunction<TooltipRenderProps>;\n /**\n * The ref for the element which the tooltip positions itself with respect to.\n *\n * When used within a TooltipTrigger this is set automatically. It is only required when used\n * standalone.\n */\n triggerRef?: RefObject<Element | null>;\n /**\n * Whether the tooltip is currently performing an entry animation.\n */\n isEntering?: boolean;\n /**\n * Whether the tooltip is currently performing an exit animation.\n */\n isExiting?: boolean;\n /**\n * The container element in which the overlay portal will be placed. This may have unknown\n * behavior depending on where it is portalled to.\n *\n * @deprecated - Use a parent UNSAFE_PortalProvider to set your portal container instead.\n * @default document.body\n */\n UNSTABLE_portalContainer?: Element;\n /**\n * The placement of the tooltip with respect to the trigger.\n *\n * @default 'top'\n */\n placement?: Placement;\n}\n\nexport interface TooltipRenderProps {\n /**\n * The placement of the tooltip relative to the trigger.\n *\n * @selector [data-placement=\"left | right | top | bottom\"]\n */\n placement: PlacementAxis | null;\n /**\n * Whether the tooltip is currently entering. Use this to apply animations.\n *\n * @selector [data-entering]\n */\n isEntering: boolean;\n /**\n * Whether the tooltip is currently exiting. Use this to apply animations.\n *\n * @selector [data-exiting]\n */\n isExiting: boolean;\n /**\n * State of the tooltip.\n */\n state: TooltipTriggerState;\n}\n\nexport const TooltipTriggerStateContext = createContext<TooltipTriggerState | null>(null);\nexport const TooltipContext = createContext<ContextValue<TooltipProps, HTMLDivElement>>(null);\n\n/**\n * TooltipTrigger wraps around a trigger element and a Tooltip. It handles opening and closing\n * the Tooltip when the user hovers over or focuses the trigger, and positioning the Tooltip\n * relative to the trigger.\n */\nexport function TooltipTrigger(props: TooltipTriggerComponentProps): JSX.Element {\n let state = useTooltipTriggerState(props);\n let ref = useRef<FocusableElement>(null);\n let {triggerProps, tooltipProps} = useTooltipTrigger(props, state, ref);\n\n return (\n <Provider\n values={[\n [TooltipTriggerStateContext, state],\n [TooltipContext, {...tooltipProps, triggerRef: ref}]\n ]}>\n <FocusableProvider {...triggerProps} ref={ref}>\n {props.children}\n </FocusableProvider>\n </Provider>\n );\n}\n\n/**\n * A tooltip displays a description of an element on hover or focus.\n */\nexport const Tooltip = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tooltip(\n {UNSTABLE_portalContainer, ...props}: TooltipProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, TooltipContext);\n let contextState = useContext(TooltipTriggerStateContext);\n let localState = useTooltipTriggerState(props);\n let state =\n props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;\n // Skip the automatic exit animation when closing instantly (e.g. swapping between tooltips\n // during warmup). An explicitly provided isExiting prop still takes precedence.\n let exitAnimation = useExitAnimation(ref, state.isOpen);\n let isExiting = props.isExiting || (!state.shouldSkipAnimation && exitAnimation) || false;\n if (!state.isOpen && !isExiting) {\n return null;\n }\n\n return (\n <OverlayContainer portalContainer={UNSTABLE_portalContainer}>\n <TooltipInner {...props} tooltipRef={ref} isExiting={isExiting} />\n </OverlayContainer>\n );\n});\n\nfunction TooltipInner(\n props: TooltipProps & {isExiting: boolean; tooltipRef: RefObject<HTMLDivElement | null>}\n) {\n let state = useContext(TooltipTriggerStateContext)!;\n let arrowRef = useRef<HTMLDivElement>(null);\n\n let {overlayProps, arrowProps, placement, triggerAnchorPoint} = useOverlayPosition({\n placement: props.placement || 'top',\n targetRef: props.triggerRef!,\n overlayRef: props.tooltipRef,\n arrowRef,\n offset: props.offset,\n crossOffset: props.crossOffset,\n isOpen: state.isOpen,\n arrowBoundaryOffset: props.arrowBoundaryOffset,\n shouldFlip: props.shouldFlip,\n containerPadding: props.containerPadding,\n onClose: () => state.close(true)\n });\n\n // Skip the automatic entry animation when opening instantly (e.g. swapping between tooltips\n // during warmup). An explicitly provided isEntering prop still takes precedence.\n let enterAnimation = useEnterAnimation(props.tooltipRef, !!placement);\n let isEntering = props.isEntering || (!state.shouldSkipAnimation && enterAnimation) || false;\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tooltip',\n values: {\n placement,\n isEntering,\n isExiting: props.isExiting,\n state\n }\n });\n\n props = mergeProps(props, overlayProps);\n let {tooltipProps} = useTooltip(props, state);\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n // oxlint-disable react/react-compiler\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, tooltipProps)}\n ref={props.tooltipRef}\n style={\n {\n ...overlayProps.style,\n '--trigger-anchor-point': triggerAnchorPoint\n ? `${triggerAnchorPoint.x}px ${triggerAnchorPoint.y}px`\n : undefined,\n ...renderProps.style\n } as CSSProperties\n }\n data-placement={placement ?? undefined}\n data-entering={isEntering || undefined}\n data-exiting={props.isExiting || undefined}>\n <OverlayArrowContext.Provider value={{...arrowProps, placement, ref: arrowRef}}>\n {renderProps.children}\n </OverlayArrowContext.Provider>\n </dom.div>\n );\n // oxlint-enable react/react-compiler\n}\n"],"names":[],"version":3,"file":"Tooltip.cjs.map"}
@@ -61,7 +61,10 @@ const $86371daa326220e5$export$28c660c63b792dea = /*#__PURE__*/ (0, $kbHsW$forwa
61
61
  let contextState = (0, $kbHsW$useContext)($86371daa326220e5$export$7a7623236eec67fa);
62
62
  let localState = (0, $kbHsW$useTooltipTriggerState)(props);
63
63
  let state = props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;
64
- let isExiting = (0, $kbHsW$useExitAnimation)(ref, state.isOpen) || props.isExiting || false;
64
+ // Skip the automatic exit animation when closing instantly (e.g. swapping between tooltips
65
+ // during warmup). An explicitly provided isExiting prop still takes precedence.
66
+ let exitAnimation = (0, $kbHsW$useExitAnimation)(ref, state.isOpen);
67
+ let isExiting = props.isExiting || !state.shouldSkipAnimation && exitAnimation || false;
65
68
  if (!state.isOpen && !isExiting) return null;
66
69
  return /*#__PURE__*/ (0, $kbHsW$react).createElement((0, $kbHsW$OverlayContainer), {
67
70
  portalContainer: UNSTABLE_portalContainer
@@ -87,7 +90,10 @@ function $86371daa326220e5$var$TooltipInner(props) {
87
90
  containerPadding: props.containerPadding,
88
91
  onClose: ()=>state.close(true)
89
92
  });
90
- let isEntering = (0, $kbHsW$useEnterAnimation)(props.tooltipRef, !!placement) || props.isEntering || false;
93
+ // Skip the automatic entry animation when opening instantly (e.g. swapping between tooltips
94
+ // during warmup). An explicitly provided isEntering prop still takes precedence.
95
+ let enterAnimation = (0, $kbHsW$useEnterAnimation)(props.tooltipRef, !!placement);
96
+ let isEntering = props.isEntering || !state.shouldSkipAnimation && enterAnimation || false;
91
97
  let renderProps = (0, $b7b7a92703138c9b$export$4d86445c2cf5e3)({
92
98
  ...props,
93
99
  defaultClassName: 'react-aria-Tooltip',
@@ -103,6 +109,7 @@ function $86371daa326220e5$var$TooltipInner(props) {
103
109
  let DOMProps = (0, $kbHsW$filterDOMProps)(props, {
104
110
  global: true
105
111
  });
112
+ // oxlint-disable react/react-compiler
106
113
  return /*#__PURE__*/ (0, $kbHsW$react).createElement((0, $b7b7a92703138c9b$export$df3a06d6289f983e).div, {
107
114
  ...(0, $kbHsW$mergeProps)(DOMProps, renderProps, tooltipProps),
108
115
  ref: props.tooltipRef,
@@ -121,6 +128,7 @@ function $86371daa326220e5$var$TooltipInner(props) {
121
128
  ref: arrowRef
122
129
  }
123
130
  }, renderProps.children));
131
+ // oxlint-enable react/react-compiler
124
132
  }
125
133
 
126
134
 
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/Tooltip.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n FocusableElement,\n forwardRefType,\n GlobalDOMAttributes,\n RefObject\n} from '@react-types/shared';\nimport {\n AriaPositionProps,\n Placement,\n PlacementAxis,\n PositionProps,\n useOverlayPosition\n} from 'react-aria/useOverlayPosition';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RenderProps,\n useContextProps,\n useRenderProps\n} from './utils';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FocusableProvider} from 'react-aria/private/interactions/useFocusable';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {OverlayArrowContext} from './OverlayArrow';\nimport {OverlayContainer} from 'react-aria/private/overlays/useModal';\nimport {OverlayTriggerProps} from 'react-stately/useOverlayTriggerState';\nimport React, {\n createContext,\n CSSProperties,\n ForwardedRef,\n forwardRef,\n JSX,\n ReactNode,\n useContext,\n useRef\n} from 'react';\nimport {\n TooltipTriggerProps,\n TooltipTriggerState,\n useTooltipTriggerState\n} from 'react-stately/useTooltipTriggerState';\nimport {useEnterAnimation, useExitAnimation} from 'react-aria/private/utils/animation';\nimport {useTooltip, useTooltipTrigger} from 'react-aria/useTooltipTrigger';\n\nexport interface TooltipTriggerComponentProps extends TooltipTriggerProps {\n children: ReactNode;\n}\n\nexport interface TooltipProps\n extends\n PositionProps,\n Pick<AriaPositionProps, 'arrowBoundaryOffset'>,\n OverlayTriggerProps,\n AriaLabelingProps,\n RenderProps<TooltipRenderProps>,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Tooltip'\n */\n className?: ClassNameOrFunction<TooltipRenderProps>;\n /**\n * The ref for the element which the tooltip positions itself with respect to.\n *\n * When used within a TooltipTrigger this is set automatically. It is only required when used\n * standalone.\n */\n triggerRef?: RefObject<Element | null>;\n /**\n * Whether the tooltip is currently performing an entry animation.\n */\n isEntering?: boolean;\n /**\n * Whether the tooltip is currently performing an exit animation.\n */\n isExiting?: boolean;\n /**\n * The container element in which the overlay portal will be placed. This may have unknown\n * behavior depending on where it is portalled to.\n *\n * @deprecated - Use a parent UNSAFE_PortalProvider to set your portal container instead.\n * @default document.body\n */\n UNSTABLE_portalContainer?: Element;\n /**\n * The placement of the tooltip with respect to the trigger.\n *\n * @default 'top'\n */\n placement?: Placement;\n}\n\nexport interface TooltipRenderProps {\n /**\n * The placement of the tooltip relative to the trigger.\n *\n * @selector [data-placement=\"left | right | top | bottom\"]\n */\n placement: PlacementAxis | null;\n /**\n * Whether the tooltip is currently entering. Use this to apply animations.\n *\n * @selector [data-entering]\n */\n isEntering: boolean;\n /**\n * Whether the tooltip is currently exiting. Use this to apply animations.\n *\n * @selector [data-exiting]\n */\n isExiting: boolean;\n /**\n * State of the tooltip.\n */\n state: TooltipTriggerState;\n}\n\nexport const TooltipTriggerStateContext = createContext<TooltipTriggerState | null>(null);\nexport const TooltipContext = createContext<ContextValue<TooltipProps, HTMLDivElement>>(null);\n\n/**\n * TooltipTrigger wraps around a trigger element and a Tooltip. It handles opening and closing\n * the Tooltip when the user hovers over or focuses the trigger, and positioning the Tooltip\n * relative to the trigger.\n */\nexport function TooltipTrigger(props: TooltipTriggerComponentProps): JSX.Element {\n let state = useTooltipTriggerState(props);\n let ref = useRef<FocusableElement>(null);\n let {triggerProps, tooltipProps} = useTooltipTrigger(props, state, ref);\n\n return (\n <Provider\n values={[\n [TooltipTriggerStateContext, state],\n [TooltipContext, {...tooltipProps, triggerRef: ref}]\n ]}>\n <FocusableProvider {...triggerProps} ref={ref}>\n {props.children}\n </FocusableProvider>\n </Provider>\n );\n}\n\n/**\n * A tooltip displays a description of an element on hover or focus.\n */\nexport const Tooltip = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tooltip(\n {UNSTABLE_portalContainer, ...props}: TooltipProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, TooltipContext);\n let contextState = useContext(TooltipTriggerStateContext);\n let localState = useTooltipTriggerState(props);\n let state =\n props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;\n let isExiting = useExitAnimation(ref, state.isOpen) || props.isExiting || false;\n if (!state.isOpen && !isExiting) {\n return null;\n }\n\n return (\n <OverlayContainer portalContainer={UNSTABLE_portalContainer}>\n <TooltipInner {...props} tooltipRef={ref} isExiting={isExiting} />\n </OverlayContainer>\n );\n});\n\nfunction TooltipInner(\n props: TooltipProps & {isExiting: boolean; tooltipRef: RefObject<HTMLDivElement | null>}\n) {\n let state = useContext(TooltipTriggerStateContext)!;\n let arrowRef = useRef<HTMLDivElement>(null);\n\n let {overlayProps, arrowProps, placement, triggerAnchorPoint} = useOverlayPosition({\n placement: props.placement || 'top',\n targetRef: props.triggerRef!,\n overlayRef: props.tooltipRef,\n arrowRef,\n offset: props.offset,\n crossOffset: props.crossOffset,\n isOpen: state.isOpen,\n arrowBoundaryOffset: props.arrowBoundaryOffset,\n shouldFlip: props.shouldFlip,\n containerPadding: props.containerPadding,\n onClose: () => state.close(true)\n });\n\n let isEntering = useEnterAnimation(props.tooltipRef, !!placement) || props.isEntering || false;\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tooltip',\n values: {\n placement,\n isEntering,\n isExiting: props.isExiting,\n state\n }\n });\n\n props = mergeProps(props, overlayProps);\n let {tooltipProps} = useTooltip(props, state);\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, tooltipProps)}\n ref={props.tooltipRef}\n style={\n {\n ...overlayProps.style,\n '--trigger-anchor-point': triggerAnchorPoint\n ? `${triggerAnchorPoint.x}px ${triggerAnchorPoint.y}px`\n : undefined,\n ...renderProps.style\n } as CSSProperties\n }\n data-placement={placement ?? undefined}\n data-entering={isEntering || undefined}\n data-exiting={props.isExiting || undefined}>\n <OverlayArrowContext.Provider value={{...arrowProps, placement, ref: arrowRef}}>\n {renderProps.children}\n </OverlayArrowContext.Provider>\n </dom.div>\n );\n}\n"],"names":[],"version":3,"file":"Tooltip.js.map"}
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/Tooltip.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n FocusableElement,\n forwardRefType,\n GlobalDOMAttributes,\n RefObject\n} from '@react-types/shared';\nimport {\n AriaPositionProps,\n Placement,\n PlacementAxis,\n PositionProps,\n useOverlayPosition\n} from 'react-aria/useOverlayPosition';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RenderProps,\n useContextProps,\n useRenderProps\n} from './utils';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FocusableProvider} from 'react-aria/private/interactions/useFocusable';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {OverlayArrowContext} from './OverlayArrow';\nimport {OverlayContainer} from 'react-aria/private/overlays/useModal';\nimport {OverlayTriggerProps} from 'react-stately/useOverlayTriggerState';\nimport React, {\n createContext,\n CSSProperties,\n ForwardedRef,\n forwardRef,\n JSX,\n ReactNode,\n useContext,\n useRef\n} from 'react';\nimport {\n TooltipTriggerProps,\n TooltipTriggerState,\n useTooltipTriggerState\n} from 'react-stately/useTooltipTriggerState';\nimport {useEnterAnimation, useExitAnimation} from 'react-aria/private/utils/animation';\nimport {useTooltip, useTooltipTrigger} from 'react-aria/useTooltipTrigger';\n\nexport interface TooltipTriggerComponentProps extends TooltipTriggerProps {\n children: ReactNode;\n}\n\nexport interface TooltipProps\n extends\n PositionProps,\n Pick<AriaPositionProps, 'arrowBoundaryOffset'>,\n OverlayTriggerProps,\n AriaLabelingProps,\n RenderProps<TooltipRenderProps>,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Tooltip'\n */\n className?: ClassNameOrFunction<TooltipRenderProps>;\n /**\n * The ref for the element which the tooltip positions itself with respect to.\n *\n * When used within a TooltipTrigger this is set automatically. It is only required when used\n * standalone.\n */\n triggerRef?: RefObject<Element | null>;\n /**\n * Whether the tooltip is currently performing an entry animation.\n */\n isEntering?: boolean;\n /**\n * Whether the tooltip is currently performing an exit animation.\n */\n isExiting?: boolean;\n /**\n * The container element in which the overlay portal will be placed. This may have unknown\n * behavior depending on where it is portalled to.\n *\n * @deprecated - Use a parent UNSAFE_PortalProvider to set your portal container instead.\n * @default document.body\n */\n UNSTABLE_portalContainer?: Element;\n /**\n * The placement of the tooltip with respect to the trigger.\n *\n * @default 'top'\n */\n placement?: Placement;\n}\n\nexport interface TooltipRenderProps {\n /**\n * The placement of the tooltip relative to the trigger.\n *\n * @selector [data-placement=\"left | right | top | bottom\"]\n */\n placement: PlacementAxis | null;\n /**\n * Whether the tooltip is currently entering. Use this to apply animations.\n *\n * @selector [data-entering]\n */\n isEntering: boolean;\n /**\n * Whether the tooltip is currently exiting. Use this to apply animations.\n *\n * @selector [data-exiting]\n */\n isExiting: boolean;\n /**\n * State of the tooltip.\n */\n state: TooltipTriggerState;\n}\n\nexport const TooltipTriggerStateContext = createContext<TooltipTriggerState | null>(null);\nexport const TooltipContext = createContext<ContextValue<TooltipProps, HTMLDivElement>>(null);\n\n/**\n * TooltipTrigger wraps around a trigger element and a Tooltip. It handles opening and closing\n * the Tooltip when the user hovers over or focuses the trigger, and positioning the Tooltip\n * relative to the trigger.\n */\nexport function TooltipTrigger(props: TooltipTriggerComponentProps): JSX.Element {\n let state = useTooltipTriggerState(props);\n let ref = useRef<FocusableElement>(null);\n let {triggerProps, tooltipProps} = useTooltipTrigger(props, state, ref);\n\n return (\n <Provider\n values={[\n [TooltipTriggerStateContext, state],\n [TooltipContext, {...tooltipProps, triggerRef: ref}]\n ]}>\n <FocusableProvider {...triggerProps} ref={ref}>\n {props.children}\n </FocusableProvider>\n </Provider>\n );\n}\n\n/**\n * A tooltip displays a description of an element on hover or focus.\n */\nexport const Tooltip = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tooltip(\n {UNSTABLE_portalContainer, ...props}: TooltipProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, TooltipContext);\n let contextState = useContext(TooltipTriggerStateContext);\n let localState = useTooltipTriggerState(props);\n let state =\n props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;\n // Skip the automatic exit animation when closing instantly (e.g. swapping between tooltips\n // during warmup). An explicitly provided isExiting prop still takes precedence.\n let exitAnimation = useExitAnimation(ref, state.isOpen);\n let isExiting = props.isExiting || (!state.shouldSkipAnimation && exitAnimation) || false;\n if (!state.isOpen && !isExiting) {\n return null;\n }\n\n return (\n <OverlayContainer portalContainer={UNSTABLE_portalContainer}>\n <TooltipInner {...props} tooltipRef={ref} isExiting={isExiting} />\n </OverlayContainer>\n );\n});\n\nfunction TooltipInner(\n props: TooltipProps & {isExiting: boolean; tooltipRef: RefObject<HTMLDivElement | null>}\n) {\n let state = useContext(TooltipTriggerStateContext)!;\n let arrowRef = useRef<HTMLDivElement>(null);\n\n let {overlayProps, arrowProps, placement, triggerAnchorPoint} = useOverlayPosition({\n placement: props.placement || 'top',\n targetRef: props.triggerRef!,\n overlayRef: props.tooltipRef,\n arrowRef,\n offset: props.offset,\n crossOffset: props.crossOffset,\n isOpen: state.isOpen,\n arrowBoundaryOffset: props.arrowBoundaryOffset,\n shouldFlip: props.shouldFlip,\n containerPadding: props.containerPadding,\n onClose: () => state.close(true)\n });\n\n // Skip the automatic entry animation when opening instantly (e.g. swapping between tooltips\n // during warmup). An explicitly provided isEntering prop still takes precedence.\n let enterAnimation = useEnterAnimation(props.tooltipRef, !!placement);\n let isEntering = props.isEntering || (!state.shouldSkipAnimation && enterAnimation) || false;\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tooltip',\n values: {\n placement,\n isEntering,\n isExiting: props.isExiting,\n state\n }\n });\n\n props = mergeProps(props, overlayProps);\n let {tooltipProps} = useTooltip(props, state);\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n // oxlint-disable react/react-compiler\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, tooltipProps)}\n ref={props.tooltipRef}\n style={\n {\n ...overlayProps.style,\n '--trigger-anchor-point': triggerAnchorPoint\n ? `${triggerAnchorPoint.x}px ${triggerAnchorPoint.y}px`\n : undefined,\n ...renderProps.style\n } as CSSProperties\n }\n data-placement={placement ?? undefined}\n data-entering={isEntering || undefined}\n data-exiting={props.isExiting || undefined}>\n <OverlayArrowContext.Provider value={{...arrowProps, placement, ref: arrowRef}}>\n {renderProps.children}\n </OverlayArrowContext.Provider>\n </dom.div>\n );\n // oxlint-enable react/react-compiler\n}\n"],"names":[],"version":3,"file":"Tooltip.js.map"}
@@ -61,7 +61,10 @@ const $05a50f7d78b03ad9$export$28c660c63b792dea = /*#__PURE__*/ (0, $4nVq8$forwa
61
61
  let contextState = (0, $4nVq8$useContext)($05a50f7d78b03ad9$export$7a7623236eec67fa);
62
62
  let localState = (0, $4nVq8$useTooltipTriggerState)(props);
63
63
  let state = props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;
64
- let isExiting = (0, $4nVq8$useExitAnimation)(ref, state.isOpen) || props.isExiting || false;
64
+ // Skip the automatic exit animation when closing instantly (e.g. swapping between tooltips
65
+ // during warmup). An explicitly provided isExiting prop still takes precedence.
66
+ let exitAnimation = (0, $4nVq8$useExitAnimation)(ref, state.isOpen);
67
+ let isExiting = props.isExiting || !state.shouldSkipAnimation && exitAnimation || false;
65
68
  if (!state.isOpen && !isExiting) return null;
66
69
  return /*#__PURE__*/ (0, $4nVq8$react).createElement((0, $4nVq8$OverlayContainer), {
67
70
  portalContainer: UNSTABLE_portalContainer
@@ -87,7 +90,10 @@ function $05a50f7d78b03ad9$var$TooltipInner(props) {
87
90
  containerPadding: props.containerPadding,
88
91
  onClose: ()=>state.close(true)
89
92
  });
90
- let isEntering = (0, $4nVq8$useEnterAnimation)(props.tooltipRef, !!placement) || props.isEntering || false;
93
+ // Skip the automatic entry animation when opening instantly (e.g. swapping between tooltips
94
+ // during warmup). An explicitly provided isEntering prop still takes precedence.
95
+ let enterAnimation = (0, $4nVq8$useEnterAnimation)(props.tooltipRef, !!placement);
96
+ let isEntering = props.isEntering || !state.shouldSkipAnimation && enterAnimation || false;
91
97
  let renderProps = (0, $7230ffa83bc0c2cf$export$4d86445c2cf5e3)({
92
98
  ...props,
93
99
  defaultClassName: 'react-aria-Tooltip',
@@ -103,6 +109,7 @@ function $05a50f7d78b03ad9$var$TooltipInner(props) {
103
109
  let DOMProps = (0, $4nVq8$filterDOMProps)(props, {
104
110
  global: true
105
111
  });
112
+ // oxlint-disable react/react-compiler
106
113
  return /*#__PURE__*/ (0, $4nVq8$react).createElement((0, $7230ffa83bc0c2cf$export$df3a06d6289f983e).div, {
107
114
  ...(0, $4nVq8$mergeProps)(DOMProps, renderProps, tooltipProps),
108
115
  ref: props.tooltipRef,
@@ -121,6 +128,7 @@ function $05a50f7d78b03ad9$var$TooltipInner(props) {
121
128
  ref: arrowRef
122
129
  }
123
130
  }, renderProps.children));
131
+ // oxlint-enable react/react-compiler
124
132
  }
125
133
 
126
134
 
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/Tooltip.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n FocusableElement,\n forwardRefType,\n GlobalDOMAttributes,\n RefObject\n} from '@react-types/shared';\nimport {\n AriaPositionProps,\n Placement,\n PlacementAxis,\n PositionProps,\n useOverlayPosition\n} from 'react-aria/useOverlayPosition';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RenderProps,\n useContextProps,\n useRenderProps\n} from './utils';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FocusableProvider} from 'react-aria/private/interactions/useFocusable';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {OverlayArrowContext} from './OverlayArrow';\nimport {OverlayContainer} from 'react-aria/private/overlays/useModal';\nimport {OverlayTriggerProps} from 'react-stately/useOverlayTriggerState';\nimport React, {\n createContext,\n CSSProperties,\n ForwardedRef,\n forwardRef,\n JSX,\n ReactNode,\n useContext,\n useRef\n} from 'react';\nimport {\n TooltipTriggerProps,\n TooltipTriggerState,\n useTooltipTriggerState\n} from 'react-stately/useTooltipTriggerState';\nimport {useEnterAnimation, useExitAnimation} from 'react-aria/private/utils/animation';\nimport {useTooltip, useTooltipTrigger} from 'react-aria/useTooltipTrigger';\n\nexport interface TooltipTriggerComponentProps extends TooltipTriggerProps {\n children: ReactNode;\n}\n\nexport interface TooltipProps\n extends\n PositionProps,\n Pick<AriaPositionProps, 'arrowBoundaryOffset'>,\n OverlayTriggerProps,\n AriaLabelingProps,\n RenderProps<TooltipRenderProps>,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Tooltip'\n */\n className?: ClassNameOrFunction<TooltipRenderProps>;\n /**\n * The ref for the element which the tooltip positions itself with respect to.\n *\n * When used within a TooltipTrigger this is set automatically. It is only required when used\n * standalone.\n */\n triggerRef?: RefObject<Element | null>;\n /**\n * Whether the tooltip is currently performing an entry animation.\n */\n isEntering?: boolean;\n /**\n * Whether the tooltip is currently performing an exit animation.\n */\n isExiting?: boolean;\n /**\n * The container element in which the overlay portal will be placed. This may have unknown\n * behavior depending on where it is portalled to.\n *\n * @deprecated - Use a parent UNSAFE_PortalProvider to set your portal container instead.\n * @default document.body\n */\n UNSTABLE_portalContainer?: Element;\n /**\n * The placement of the tooltip with respect to the trigger.\n *\n * @default 'top'\n */\n placement?: Placement;\n}\n\nexport interface TooltipRenderProps {\n /**\n * The placement of the tooltip relative to the trigger.\n *\n * @selector [data-placement=\"left | right | top | bottom\"]\n */\n placement: PlacementAxis | null;\n /**\n * Whether the tooltip is currently entering. Use this to apply animations.\n *\n * @selector [data-entering]\n */\n isEntering: boolean;\n /**\n * Whether the tooltip is currently exiting. Use this to apply animations.\n *\n * @selector [data-exiting]\n */\n isExiting: boolean;\n /**\n * State of the tooltip.\n */\n state: TooltipTriggerState;\n}\n\nexport const TooltipTriggerStateContext = createContext<TooltipTriggerState | null>(null);\nexport const TooltipContext = createContext<ContextValue<TooltipProps, HTMLDivElement>>(null);\n\n/**\n * TooltipTrigger wraps around a trigger element and a Tooltip. It handles opening and closing\n * the Tooltip when the user hovers over or focuses the trigger, and positioning the Tooltip\n * relative to the trigger.\n */\nexport function TooltipTrigger(props: TooltipTriggerComponentProps): JSX.Element {\n let state = useTooltipTriggerState(props);\n let ref = useRef<FocusableElement>(null);\n let {triggerProps, tooltipProps} = useTooltipTrigger(props, state, ref);\n\n return (\n <Provider\n values={[\n [TooltipTriggerStateContext, state],\n [TooltipContext, {...tooltipProps, triggerRef: ref}]\n ]}>\n <FocusableProvider {...triggerProps} ref={ref}>\n {props.children}\n </FocusableProvider>\n </Provider>\n );\n}\n\n/**\n * A tooltip displays a description of an element on hover or focus.\n */\nexport const Tooltip = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tooltip(\n {UNSTABLE_portalContainer, ...props}: TooltipProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, TooltipContext);\n let contextState = useContext(TooltipTriggerStateContext);\n let localState = useTooltipTriggerState(props);\n let state =\n props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;\n let isExiting = useExitAnimation(ref, state.isOpen) || props.isExiting || false;\n if (!state.isOpen && !isExiting) {\n return null;\n }\n\n return (\n <OverlayContainer portalContainer={UNSTABLE_portalContainer}>\n <TooltipInner {...props} tooltipRef={ref} isExiting={isExiting} />\n </OverlayContainer>\n );\n});\n\nfunction TooltipInner(\n props: TooltipProps & {isExiting: boolean; tooltipRef: RefObject<HTMLDivElement | null>}\n) {\n let state = useContext(TooltipTriggerStateContext)!;\n let arrowRef = useRef<HTMLDivElement>(null);\n\n let {overlayProps, arrowProps, placement, triggerAnchorPoint} = useOverlayPosition({\n placement: props.placement || 'top',\n targetRef: props.triggerRef!,\n overlayRef: props.tooltipRef,\n arrowRef,\n offset: props.offset,\n crossOffset: props.crossOffset,\n isOpen: state.isOpen,\n arrowBoundaryOffset: props.arrowBoundaryOffset,\n shouldFlip: props.shouldFlip,\n containerPadding: props.containerPadding,\n onClose: () => state.close(true)\n });\n\n let isEntering = useEnterAnimation(props.tooltipRef, !!placement) || props.isEntering || false;\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tooltip',\n values: {\n placement,\n isEntering,\n isExiting: props.isExiting,\n state\n }\n });\n\n props = mergeProps(props, overlayProps);\n let {tooltipProps} = useTooltip(props, state);\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, tooltipProps)}\n ref={props.tooltipRef}\n style={\n {\n ...overlayProps.style,\n '--trigger-anchor-point': triggerAnchorPoint\n ? `${triggerAnchorPoint.x}px ${triggerAnchorPoint.y}px`\n : undefined,\n ...renderProps.style\n } as CSSProperties\n }\n data-placement={placement ?? undefined}\n data-entering={isEntering || undefined}\n data-exiting={props.isExiting || undefined}>\n <OverlayArrowContext.Provider value={{...arrowProps, placement, ref: arrowRef}}>\n {renderProps.children}\n </OverlayArrowContext.Provider>\n </dom.div>\n );\n}\n"],"names":[],"version":3,"file":"Tooltip.mjs.map"}
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/Tooltip.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n AriaLabelingProps,\n FocusableElement,\n forwardRefType,\n GlobalDOMAttributes,\n RefObject\n} from '@react-types/shared';\nimport {\n AriaPositionProps,\n Placement,\n PlacementAxis,\n PositionProps,\n useOverlayPosition\n} from 'react-aria/useOverlayPosition';\nimport {\n ClassNameOrFunction,\n ContextValue,\n dom,\n Provider,\n RenderProps,\n useContextProps,\n useRenderProps\n} from './utils';\nimport {filterDOMProps} from 'react-aria/filterDOMProps';\nimport {FocusableProvider} from 'react-aria/private/interactions/useFocusable';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport {OverlayArrowContext} from './OverlayArrow';\nimport {OverlayContainer} from 'react-aria/private/overlays/useModal';\nimport {OverlayTriggerProps} from 'react-stately/useOverlayTriggerState';\nimport React, {\n createContext,\n CSSProperties,\n ForwardedRef,\n forwardRef,\n JSX,\n ReactNode,\n useContext,\n useRef\n} from 'react';\nimport {\n TooltipTriggerProps,\n TooltipTriggerState,\n useTooltipTriggerState\n} from 'react-stately/useTooltipTriggerState';\nimport {useEnterAnimation, useExitAnimation} from 'react-aria/private/utils/animation';\nimport {useTooltip, useTooltipTrigger} from 'react-aria/useTooltipTrigger';\n\nexport interface TooltipTriggerComponentProps extends TooltipTriggerProps {\n children: ReactNode;\n}\n\nexport interface TooltipProps\n extends\n PositionProps,\n Pick<AriaPositionProps, 'arrowBoundaryOffset'>,\n OverlayTriggerProps,\n AriaLabelingProps,\n RenderProps<TooltipRenderProps>,\n GlobalDOMAttributes<HTMLDivElement> {\n /**\n * The CSS [className](https://developer.mozilla.org/en-US/docs/Web/API/Element/className) for the\n * element. A function may be provided to compute the class based on component state.\n *\n * @default 'react-aria-Tooltip'\n */\n className?: ClassNameOrFunction<TooltipRenderProps>;\n /**\n * The ref for the element which the tooltip positions itself with respect to.\n *\n * When used within a TooltipTrigger this is set automatically. It is only required when used\n * standalone.\n */\n triggerRef?: RefObject<Element | null>;\n /**\n * Whether the tooltip is currently performing an entry animation.\n */\n isEntering?: boolean;\n /**\n * Whether the tooltip is currently performing an exit animation.\n */\n isExiting?: boolean;\n /**\n * The container element in which the overlay portal will be placed. This may have unknown\n * behavior depending on where it is portalled to.\n *\n * @deprecated - Use a parent UNSAFE_PortalProvider to set your portal container instead.\n * @default document.body\n */\n UNSTABLE_portalContainer?: Element;\n /**\n * The placement of the tooltip with respect to the trigger.\n *\n * @default 'top'\n */\n placement?: Placement;\n}\n\nexport interface TooltipRenderProps {\n /**\n * The placement of the tooltip relative to the trigger.\n *\n * @selector [data-placement=\"left | right | top | bottom\"]\n */\n placement: PlacementAxis | null;\n /**\n * Whether the tooltip is currently entering. Use this to apply animations.\n *\n * @selector [data-entering]\n */\n isEntering: boolean;\n /**\n * Whether the tooltip is currently exiting. Use this to apply animations.\n *\n * @selector [data-exiting]\n */\n isExiting: boolean;\n /**\n * State of the tooltip.\n */\n state: TooltipTriggerState;\n}\n\nexport const TooltipTriggerStateContext = createContext<TooltipTriggerState | null>(null);\nexport const TooltipContext = createContext<ContextValue<TooltipProps, HTMLDivElement>>(null);\n\n/**\n * TooltipTrigger wraps around a trigger element and a Tooltip. It handles opening and closing\n * the Tooltip when the user hovers over or focuses the trigger, and positioning the Tooltip\n * relative to the trigger.\n */\nexport function TooltipTrigger(props: TooltipTriggerComponentProps): JSX.Element {\n let state = useTooltipTriggerState(props);\n let ref = useRef<FocusableElement>(null);\n let {triggerProps, tooltipProps} = useTooltipTrigger(props, state, ref);\n\n return (\n <Provider\n values={[\n [TooltipTriggerStateContext, state],\n [TooltipContext, {...tooltipProps, triggerRef: ref}]\n ]}>\n <FocusableProvider {...triggerProps} ref={ref}>\n {props.children}\n </FocusableProvider>\n </Provider>\n );\n}\n\n/**\n * A tooltip displays a description of an element on hover or focus.\n */\nexport const Tooltip = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tooltip(\n {UNSTABLE_portalContainer, ...props}: TooltipProps,\n ref: ForwardedRef<HTMLDivElement>\n) {\n [props, ref] = useContextProps(props, ref, TooltipContext);\n let contextState = useContext(TooltipTriggerStateContext);\n let localState = useTooltipTriggerState(props);\n let state =\n props.isOpen != null || props.defaultOpen != null || !contextState ? localState : contextState;\n // Skip the automatic exit animation when closing instantly (e.g. swapping between tooltips\n // during warmup). An explicitly provided isExiting prop still takes precedence.\n let exitAnimation = useExitAnimation(ref, state.isOpen);\n let isExiting = props.isExiting || (!state.shouldSkipAnimation && exitAnimation) || false;\n if (!state.isOpen && !isExiting) {\n return null;\n }\n\n return (\n <OverlayContainer portalContainer={UNSTABLE_portalContainer}>\n <TooltipInner {...props} tooltipRef={ref} isExiting={isExiting} />\n </OverlayContainer>\n );\n});\n\nfunction TooltipInner(\n props: TooltipProps & {isExiting: boolean; tooltipRef: RefObject<HTMLDivElement | null>}\n) {\n let state = useContext(TooltipTriggerStateContext)!;\n let arrowRef = useRef<HTMLDivElement>(null);\n\n let {overlayProps, arrowProps, placement, triggerAnchorPoint} = useOverlayPosition({\n placement: props.placement || 'top',\n targetRef: props.triggerRef!,\n overlayRef: props.tooltipRef,\n arrowRef,\n offset: props.offset,\n crossOffset: props.crossOffset,\n isOpen: state.isOpen,\n arrowBoundaryOffset: props.arrowBoundaryOffset,\n shouldFlip: props.shouldFlip,\n containerPadding: props.containerPadding,\n onClose: () => state.close(true)\n });\n\n // Skip the automatic entry animation when opening instantly (e.g. swapping between tooltips\n // during warmup). An explicitly provided isEntering prop still takes precedence.\n let enterAnimation = useEnterAnimation(props.tooltipRef, !!placement);\n let isEntering = props.isEntering || (!state.shouldSkipAnimation && enterAnimation) || false;\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tooltip',\n values: {\n placement,\n isEntering,\n isExiting: props.isExiting,\n state\n }\n });\n\n props = mergeProps(props, overlayProps);\n let {tooltipProps} = useTooltip(props, state);\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n // oxlint-disable react/react-compiler\n return (\n <dom.div\n {...mergeProps(DOMProps, renderProps, tooltipProps)}\n ref={props.tooltipRef}\n style={\n {\n ...overlayProps.style,\n '--trigger-anchor-point': triggerAnchorPoint\n ? `${triggerAnchorPoint.x}px ${triggerAnchorPoint.y}px`\n : undefined,\n ...renderProps.style\n } as CSSProperties\n }\n data-placement={placement ?? undefined}\n data-entering={isEntering || undefined}\n data-exiting={props.isExiting || undefined}>\n <OverlayArrowContext.Provider value={{...arrowProps, placement, ref: arrowRef}}>\n {renderProps.children}\n </OverlayArrowContext.Provider>\n </dom.div>\n );\n // oxlint-enable react/react-compiler\n}\n"],"names":[],"version":3,"file":"Tooltip.mjs.map"}
@@ -263,11 +263,13 @@ function $8b1888e80597ea2d$var$TreeInner({ props: props, collection: collection,
263
263
  let dragPreview = null;
264
264
  let preview = (0, $av2Q0$react.useRef)(null);
265
265
  if (hasDragHooks && dragAndDropHooks) {
266
+ // oxlint-disable-next-line react/react-compiler
266
267
  dragState = dragAndDropHooks.useDraggableCollectionState({
267
268
  collection: state.collection,
268
269
  selectionManager: state.selectionManager,
269
270
  preview: dragAndDropHooks.renderDragPreview ? preview : undefined
270
271
  });
272
+ // oxlint-disable-next-line react/react-compiler
271
273
  dragAndDropHooks.useDraggableCollection({}, dragState, ref);
272
274
  let DragPreview = dragAndDropHooks.DragPreview;
273
275
  dragPreview = dragAndDropHooks.renderDragPreview ? /*#__PURE__*/ (0, ($parcel$interopDefault($av2Q0$react))).createElement(DragPreview, {
@@ -276,6 +278,7 @@ function $8b1888e80597ea2d$var$TreeInner({ props: props, collection: collection,
276
278
  }
277
279
  let [treeDropTargetDelegate] = (0, $av2Q0$react.useState)(()=>new (0, $56f56e0916461149$exports.TreeDropTargetDelegate)());
278
280
  if (hasDropHooks && dragAndDropHooks) {
281
+ // oxlint-disable-next-line react/react-compiler
279
282
  dropState = dragAndDropHooks.useDroppableCollectionState({
280
283
  collection: state.collection,
281
284
  selectionManager: state.selectionManager
@@ -293,6 +296,7 @@ function $8b1888e80597ea2d$var$TreeInner({ props: props, collection: collection,
293
296
  direction: direction,
294
297
  layoutDelegate: layoutDelegate
295
298
  });
299
+ // oxlint-disable-next-line react/react-compiler
296
300
  droppableCollection = dragAndDropHooks.useDroppableCollection({
297
301
  keyboardDelegate: keyboardDelegate,
298
302
  dropTargetDelegate: treeDropTargetDelegate,
@@ -429,7 +433,9 @@ const $8b1888e80597ea2d$export$53d36ab85dc89436 = /*#__PURE__*/ (0, $av2Q0$react
429
433
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
430
434
  let { rowProps: rowProps, gridCellProps: gridCellProps, expandButtonProps: expandButtonProps, descriptionProps: descriptionProps, ...states } = (0, $av2Q0$reactariauseTree.useTreeItem)({
431
435
  node: item,
432
- shouldSelectOnPressUp: !!dragState
436
+ shouldSelectOnPressUp: !!dragState,
437
+ focusMode: props.focusMode,
438
+ allowsArrowNavigation: props.allowsArrowNavigation
433
439
  }, state, ref);
434
440
  let isExpanded = rowProps['aria-expanded'] === true;
435
441
  let hasChildItems = props.hasChildItems || [
@@ -605,6 +611,7 @@ const $8b1888e80597ea2d$export$53d36ab85dc89436 = /*#__PURE__*/ (0, $av2Q0$react
605
611
  (0, $365d89633c2041bc$exports.CheckboxContext),
606
612
  {
607
613
  slots: {
614
+ [(0, $048d76b84370f141$exports.DEFAULT_SLOT)]: {},
608
615
  selection: checkboxProps
609
616
  }
610
617
  }
@@ -613,6 +620,7 @@ const $8b1888e80597ea2d$export$53d36ab85dc89436 = /*#__PURE__*/ (0, $av2Q0$react
613
620
  (0, $365d89633c2041bc$exports.CheckboxFieldContext),
614
621
  {
615
622
  slots: {
623
+ [(0, $048d76b84370f141$exports.DEFAULT_SLOT)]: {},
616
624
  selection: checkboxProps
617
625
  }
618
626
  }
@@ -725,6 +733,7 @@ function $8b1888e80597ea2d$var$TreeDropIndicatorWrapper(props, ref) {
725
733
  ref = (0, $av2Q0$reactariauseObjectRef.useObjectRef)(ref);
726
734
  let { dragAndDropHooks: dragAndDropHooks, dropState: dropState } = (0, $av2Q0$react.useContext)((0, $d3d8871226fc64f2$exports.DragAndDropContext));
727
735
  let buttonRef = (0, $av2Q0$react.useRef)(null);
736
+ // oxlint-disable-next-line react/react-compiler
728
737
  let { dropIndicatorProps: dropIndicatorProps, isHidden: isHidden, isDropTarget: isDropTarget } = dragAndDropHooks.useDropIndicator(props, dropState, buttonRef);
729
738
  if (isHidden) return null;
730
739
  let level = dropState && props.target.type === 'item' ? (dropState.collection.getItem(props.target.key)?.level || 0) + 1 : 1;
@@ -771,6 +780,7 @@ const $8b1888e80597ea2d$var$TreeDropIndicatorForwardRef = /*#__PURE__*/ (0, $av2
771
780
  function $8b1888e80597ea2d$var$RootDropIndicator() {
772
781
  let { dragAndDropHooks: dragAndDropHooks, dropState: dropState } = (0, $av2Q0$react.useContext)((0, $d3d8871226fc64f2$exports.DragAndDropContext));
773
782
  let ref = (0, $av2Q0$react.useRef)(null);
783
+ // oxlint-disable-next-line react/react-compiler
774
784
  let { dropIndicatorProps: dropIndicatorProps } = dragAndDropHooks.useDropIndicator({
775
785
  target: {
776
786
  type: 'root'