@react-aria/utils 3.8.2 → 3.11.1

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.
package/dist/main.js CHANGED
@@ -1,917 +1,892 @@
1
- var {
2
- clamp,
3
- snapValueToStep
4
- } = require("@react-stately/utils");
5
-
6
- exports.snapValueToStep = snapValueToStep;
7
- exports.clamp = clamp;
8
-
9
- var _clsx = $parcel$interopDefault(require("clsx"));
10
-
11
- var {
12
- useSSRSafeId
13
- } = require("@react-aria/ssr");
14
-
15
- var _react2 = require("react");
16
-
17
- var _react = $parcel$interopDefault(_react2);
1
+ var $gqa0x$react = require("react");
2
+ var $gqa0x$reactariassr = require("@react-aria/ssr");
3
+ var $gqa0x$clsx = require("clsx");
4
+ var $gqa0x$reactstatelyutils = require("@react-stately/utils");
5
+
6
+ function $parcel$exportWildcard(dest, source) {
7
+ Object.keys(source).forEach(function(key) {
8
+ if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
9
+ return;
10
+ }
18
11
 
19
- var {
20
- useEffect,
21
- useRef,
22
- useState,
23
- useCallback,
24
- useLayoutEffect: _useLayoutEffect
25
- } = _react2;
12
+ Object.defineProperty(dest, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return source[key];
16
+ }
17
+ });
18
+ });
26
19
 
20
+ return dest;
21
+ }
22
+ function $parcel$export(e, n, v, s) {
23
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
24
+ }
27
25
  function $parcel$interopDefault(a) {
28
26
  return a && a.__esModule ? a.default : a;
29
27
  }
28
+ var $dd96e9bc07c5b25f$exports = {};
30
29
 
31
- // During SSR, React emits a warning when calling useLayoutEffect.
32
- // Since neither useLayoutEffect nor useEffect run on the server,
33
- // we can suppress this by replace it with a noop on the server.
34
- const useLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : () => {};
35
- exports.useLayoutEffect = useLayoutEffect;
36
- let $f09fcd7f5f367fc80aacfeac62ed2$var$idsUpdaterMap = new Map();
37
- /**
38
- * If a default is not provided, generate an id.
39
- * @param defaultId - Default component id.
40
- */
41
-
42
- function useId(defaultId) {
43
- let isRendering = useRef(true);
44
- isRendering.current = true;
45
- let [value, setValue] = useState(defaultId);
46
- let nextId = useRef(null);
47
- let res = useSSRSafeId(value); // don't memo this, we want it new each render so that the Effects always run
48
-
49
- let updateValue = val => {
50
- if (!isRendering.current) {
51
- setValue(val);
52
- } else {
53
- nextId.current = val;
54
- }
55
- };
56
-
57
- $f09fcd7f5f367fc80aacfeac62ed2$var$idsUpdaterMap.set(res, updateValue);
58
- useLayoutEffect(() => {
59
- isRendering.current = false;
60
- }, [updateValue]);
61
- useLayoutEffect(() => {
62
- let r = res;
63
- return () => {
64
- $f09fcd7f5f367fc80aacfeac62ed2$var$idsUpdaterMap.delete(r);
65
- };
66
- }, [res]);
67
- useEffect(() => {
68
- let newId = nextId.current;
30
+ $parcel$export($dd96e9bc07c5b25f$exports, "useId", () => $dd96e9bc07c5b25f$export$f680877a34711e37);
31
+ $parcel$export($dd96e9bc07c5b25f$exports, "mergeIds", () => $dd96e9bc07c5b25f$export$cd8c9cb68f842629);
32
+ $parcel$export($dd96e9bc07c5b25f$exports, "useSlotId", () => $dd96e9bc07c5b25f$export$b4cc09c592e8fdb8);
69
33
 
70
- if (newId) {
71
- setValue(newId);
72
- nextId.current = null;
73
- }
74
- }, [setValue, updateValue]);
75
- return res;
76
- }
77
- /**
78
- * Merges two ids.
79
- * Different ids will trigger a side-effect and re-render components hooked up with `useId`.
80
- */
81
-
82
-
83
- exports.useId = useId;
34
+ var $565383b8cde869dd$exports = {};
84
35
 
85
- function mergeIds(idA, idB) {
86
- if (idA === idB) {
87
- return idA;
88
- }
36
+ $parcel$export($565383b8cde869dd$exports, "useLayoutEffect", () => $565383b8cde869dd$export$e5c5a5f917a5871c);
89
37
 
90
- let setIdA = $f09fcd7f5f367fc80aacfeac62ed2$var$idsUpdaterMap.get(idA);
38
+ const $565383b8cde869dd$export$e5c5a5f917a5871c = typeof window !== 'undefined' ? ($parcel$interopDefault($gqa0x$react)).useLayoutEffect : ()=>{
39
+ };
91
40
 
92
- if (setIdA) {
93
- setIdA(idB);
94
- return idB;
95
- }
96
-
97
- let setIdB = $f09fcd7f5f367fc80aacfeac62ed2$var$idsUpdaterMap.get(idB);
98
41
 
99
- if (setIdB) {
100
- setIdB(idA);
101
- return idA;
102
- }
103
42
 
104
- return idB;
105
- }
106
- /**
107
- * Used to generate an id, and after render, check if that id is rendered so we know
108
- * if we can use it in places such as labelledby.
109
- */
110
43
 
111
-
112
- exports.mergeIds = mergeIds;
113
-
114
- function useSlotId() {
115
- let id = useId();
116
- let [resolvedId, setResolvedId] = useState(id);
117
- useLayoutEffect(() => {
118
- let setCurr = $f09fcd7f5f367fc80aacfeac62ed2$var$idsUpdaterMap.get(id);
119
-
120
- if (setCurr && !document.getElementById(id)) {
121
- setResolvedId(null);
122
- } else {
123
- setResolvedId(id);
44
+ let $dd96e9bc07c5b25f$var$idsUpdaterMap = new Map();
45
+ function $dd96e9bc07c5b25f$export$f680877a34711e37(defaultId) {
46
+ let isRendering = $gqa0x$react.useRef(true);
47
+ isRendering.current = true;
48
+ let [value, setValue] = $gqa0x$react.useState(defaultId);
49
+ let nextId = $gqa0x$react.useRef(null);
50
+ let res = $gqa0x$reactariassr.useSSRSafeId(value);
51
+ // don't memo this, we want it new each render so that the Effects always run
52
+ let updateValue = (val)=>{
53
+ if (!isRendering.current) setValue(val);
54
+ else nextId.current = val;
55
+ };
56
+ $dd96e9bc07c5b25f$var$idsUpdaterMap.set(res, updateValue);
57
+ $565383b8cde869dd$export$e5c5a5f917a5871c(()=>{
58
+ isRendering.current = false;
59
+ }, [
60
+ updateValue
61
+ ]);
62
+ $565383b8cde869dd$export$e5c5a5f917a5871c(()=>{
63
+ let r = res;
64
+ return ()=>{
65
+ $dd96e9bc07c5b25f$var$idsUpdaterMap.delete(r);
66
+ };
67
+ }, [
68
+ res
69
+ ]);
70
+ $gqa0x$react.useEffect(()=>{
71
+ let newId = nextId.current;
72
+ if (newId) {
73
+ setValue(newId);
74
+ nextId.current = null;
75
+ }
76
+ }, [
77
+ setValue,
78
+ updateValue
79
+ ]);
80
+ return res;
81
+ }
82
+ function $dd96e9bc07c5b25f$export$cd8c9cb68f842629(idA, idB) {
83
+ if (idA === idB) return idA;
84
+ let setIdA = $dd96e9bc07c5b25f$var$idsUpdaterMap.get(idA);
85
+ if (setIdA) {
86
+ setIdA(idB);
87
+ return idB;
88
+ }
89
+ let setIdB = $dd96e9bc07c5b25f$var$idsUpdaterMap.get(idB);
90
+ if (setIdB) {
91
+ setIdB(idA);
92
+ return idA;
124
93
  }
125
- }, [id]);
126
- return resolvedId;
94
+ return idB;
95
+ }
96
+ function $dd96e9bc07c5b25f$export$b4cc09c592e8fdb8(depArray = []) {
97
+ let id = $dd96e9bc07c5b25f$export$f680877a34711e37();
98
+ let [resolvedId, setResolvedId] = $789b9514fd01258b$export$14d238f342723f25(id);
99
+ let updateId = $gqa0x$react.useCallback(()=>{
100
+ setResolvedId(function*() {
101
+ yield id;
102
+ yield document.getElementById(id) ? id : null;
103
+ });
104
+ }, [
105
+ id,
106
+ setResolvedId
107
+ ]);
108
+ $565383b8cde869dd$export$e5c5a5f917a5871c(updateId, [
109
+ id,
110
+ updateId,
111
+ ...depArray
112
+ ]);
113
+ return resolvedId;
114
+ }
115
+
116
+
117
+ var $5172289b7a1cda90$exports = {};
118
+
119
+ $parcel$export($5172289b7a1cda90$exports, "chain", () => $5172289b7a1cda90$export$e08e3b67e392101e);
120
+ function $5172289b7a1cda90$export$e08e3b67e392101e(...callbacks) {
121
+ return (...args)=>{
122
+ for (let callback of callbacks)if (typeof callback === 'function') callback(...args);
123
+ };
127
124
  }
128
125
 
129
- exports.useSlotId = useSlotId;
130
126
 
131
- /*
132
- * Copyright 2020 Adobe. All rights reserved.
133
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
134
- * you may not use this file except in compliance with the License. You may obtain a copy
135
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
136
- *
137
- * Unless required by applicable law or agreed to in writing, software distributed under
138
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
139
- * OF ANY KIND, either express or implied. See the License for the specific language
140
- * governing permissions and limitations under the License.
141
- */
127
+ var $ee1eca53264e4e21$exports = {};
142
128
 
143
- /**
144
- * Calls all functions in the order they were chained with the same arguments.
145
- */
146
- function chain() {
147
- for (var _len = arguments.length, callbacks = new Array(_len), _key = 0; _key < _len; _key++) {
148
- callbacks[_key] = arguments[_key];
149
- }
150
-
151
- return function () {
152
- for (let callback of callbacks) {
153
- if (typeof callback === 'function') {
154
- callback(...arguments);
155
- }
156
- }
157
- };
158
- }
129
+ $parcel$export($ee1eca53264e4e21$exports, "mergeProps", () => $ee1eca53264e4e21$export$9d1611c77c2fe928);
159
130
 
160
- exports.chain = chain;
161
131
 
162
- /**
163
- * Merges multiple props objects together. Event handlers are chained,
164
- * classNames are combined, and ids are deduplicated - different ids
165
- * will trigger a side-effect and re-render components hooked up with `useId`.
166
- * For all other props, the last prop object overrides all previous ones.
167
- * @param args - Multiple sets of props to merge together.
168
- */
169
- function mergeProps() {
170
- let result = {};
171
-
172
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
173
- args[_key] = arguments[_key];
174
- }
175
-
176
- for (let props of args) {
177
- for (let key in result) {
178
- // Chain events
179
- if (/^on[A-Z]/.test(key) && typeof result[key] === 'function' && typeof props[key] === 'function') {
180
- result[key] = chain(result[key], props[key]); // Merge classnames, sometimes classNames are empty string which eval to false, so we just need to do a type check
181
- } else if (key === 'className' && typeof result.className === 'string' && typeof props.className === 'string') {
182
- result[key] = _clsx(result.className, props.className);
183
- } else if (key === 'UNSAFE_className' && typeof result.UNSAFE_className === 'string' && typeof props.UNSAFE_className === 'string') {
184
- result[key] = _clsx(result.UNSAFE_className, props.UNSAFE_className);
185
- } else if (key === 'id' && result.id && props.id) {
186
- result.id = mergeIds(result.id, props.id); // Override others
187
- } else {
188
- result[key] = props[key] !== undefined ? props[key] : result[key];
189
- }
190
- } // Add props from b that are not in a
191
132
 
192
-
193
- for (let key in props) {
194
- if (result[key] === undefined) {
195
- result[key] = props[key];
196
- }
133
+ function $ee1eca53264e4e21$export$9d1611c77c2fe928(...args) {
134
+ // Start with a base clone of the first argument. This is a lot faster than starting
135
+ // with an empty object and adding properties as we go.
136
+ let result = {
137
+ ...args[0]
138
+ };
139
+ for(let i = 1; i < args.length; i++){
140
+ let props = args[i];
141
+ for(let key in props){
142
+ let a = result[key];
143
+ let b = props[key];
144
+ // Chain events
145
+ if (typeof a === 'function' && typeof b === 'function' && // This is a lot faster than a regex.
146
+ key[0] === 'o' && key[1] === 'n' && key.charCodeAt(2) >= /* 'A' */ 65 && key.charCodeAt(2) <= /* 'Z' */ 90) result[key] = $5172289b7a1cda90$export$e08e3b67e392101e(a, b);
147
+ else if ((key === 'className' || key === 'UNSAFE_className') && typeof a === 'string' && typeof b === 'string') result[key] = ($parcel$interopDefault($gqa0x$clsx))(a, b);
148
+ else if (key === 'id' && a && b) result.id = $dd96e9bc07c5b25f$export$cd8c9cb68f842629(a, b);
149
+ else result[key] = b !== undefined ? b : a;
150
+ }
197
151
  }
198
- }
199
-
200
- return result;
152
+ return result;
153
+ }
154
+
155
+
156
+ var $2f71b7bbfef4ef86$exports = {};
157
+
158
+ $parcel$export($2f71b7bbfef4ef86$exports, "filterDOMProps", () => $2f71b7bbfef4ef86$export$457c3d6518dd4c6f);
159
+ const $2f71b7bbfef4ef86$var$DOMPropNames = new Set([
160
+ 'id'
161
+ ]);
162
+ const $2f71b7bbfef4ef86$var$labelablePropNames = new Set([
163
+ 'aria-label',
164
+ 'aria-labelledby',
165
+ 'aria-describedby',
166
+ 'aria-details'
167
+ ]);
168
+ const $2f71b7bbfef4ef86$var$propRe = /^(data-.*)$/;
169
+ function $2f71b7bbfef4ef86$export$457c3d6518dd4c6f(props, opts = {
170
+ }) {
171
+ let { labelable: labelable , propNames: propNames } = opts;
172
+ let filteredProps = {
173
+ };
174
+ for(const prop in props)if (Object.prototype.hasOwnProperty.call(props, prop) && ($2f71b7bbfef4ef86$var$DOMPropNames.has(prop) || labelable && $2f71b7bbfef4ef86$var$labelablePropNames.has(prop) || propNames?.has(prop) || $2f71b7bbfef4ef86$var$propRe.test(prop))) filteredProps[prop] = props[prop];
175
+ return filteredProps;
201
176
  }
202
177
 
203
- exports.mergeProps = mergeProps;
204
- const $a736ffc3e05a0bfc1508098ba395b41$var$DOMPropNames = new Set(['id']);
205
- const $a736ffc3e05a0bfc1508098ba395b41$var$labelablePropNames = new Set(['aria-label', 'aria-labelledby', 'aria-describedby', 'aria-details']);
206
- const $a736ffc3e05a0bfc1508098ba395b41$var$propRe = /^(data-.*)$/;
207
178
 
208
- function filterDOMProps(props, opts) {
209
- if (opts === void 0) {
210
- opts = {};
211
- }
179
+ var $448ba02dcac1c856$exports = {};
212
180
 
213
- let {
214
- labelable,
215
- propNames
216
- } = opts;
217
- let filteredProps = {};
218
-
219
- for (const prop in props) {
220
- if (Object.prototype.hasOwnProperty.call(props, prop) && ($a736ffc3e05a0bfc1508098ba395b41$var$DOMPropNames.has(prop) || labelable && $a736ffc3e05a0bfc1508098ba395b41$var$labelablePropNames.has(prop) || propNames != null && propNames.has(prop) || $a736ffc3e05a0bfc1508098ba395b41$var$propRe.test(prop))) {
221
- filteredProps[prop] = props[prop];
181
+ $parcel$export($448ba02dcac1c856$exports, "focusWithoutScrolling", () => $448ba02dcac1c856$export$de79e2c695e052f3);
182
+ function $448ba02dcac1c856$export$de79e2c695e052f3(element) {
183
+ if ($448ba02dcac1c856$var$supportsPreventScroll()) element.focus({
184
+ preventScroll: true
185
+ });
186
+ else {
187
+ let scrollableElements = $448ba02dcac1c856$var$getScrollableElements(element);
188
+ element.focus();
189
+ $448ba02dcac1c856$var$restoreScrollPosition(scrollableElements);
222
190
  }
223
- }
224
-
225
- return filteredProps;
226
191
  }
227
-
228
- exports.filterDOMProps = filterDOMProps;
229
-
230
- // Currently necessary for Safari and old Edge:
231
- // https://caniuse.com/#feat=mdn-api_htmlelement_focus_preventscroll_option
232
- // See https://bugs.webkit.org/show_bug.cgi?id=178583
233
- //
234
- // Original licensing for the following methods can be found in the
235
- // NOTICE file in the root directory of this source tree.
236
- // See https://github.com/calvellido/focus-options-polyfill
237
- function focusWithoutScrolling(element) {
238
- if ($d2a175ba498dd7834499f256dfb330bc$var$supportsPreventScroll()) {
239
- element.focus({
240
- preventScroll: true
241
- });
242
- } else {
243
- let scrollableElements = $d2a175ba498dd7834499f256dfb330bc$var$getScrollableElements(element);
244
- element.focus();
245
- $d2a175ba498dd7834499f256dfb330bc$var$restoreScrollPosition(scrollableElements);
246
- }
247
- }
248
-
249
- exports.focusWithoutScrolling = focusWithoutScrolling;
250
- let $d2a175ba498dd7834499f256dfb330bc$var$supportsPreventScrollCached = null;
251
-
252
- function $d2a175ba498dd7834499f256dfb330bc$var$supportsPreventScroll() {
253
- if ($d2a175ba498dd7834499f256dfb330bc$var$supportsPreventScrollCached == null) {
254
- $d2a175ba498dd7834499f256dfb330bc$var$supportsPreventScrollCached = false;
255
-
256
- try {
257
- var focusElem = document.createElement('div');
258
- focusElem.focus({
259
- get preventScroll() {
260
- $d2a175ba498dd7834499f256dfb330bc$var$supportsPreventScrollCached = true;
261
- return true;
192
+ let $448ba02dcac1c856$var$supportsPreventScrollCached = null;
193
+ function $448ba02dcac1c856$var$supportsPreventScroll() {
194
+ if ($448ba02dcac1c856$var$supportsPreventScrollCached == null) {
195
+ $448ba02dcac1c856$var$supportsPreventScrollCached = false;
196
+ try {
197
+ var focusElem = document.createElement('div');
198
+ focusElem.focus({
199
+ get preventScroll () {
200
+ $448ba02dcac1c856$var$supportsPreventScrollCached = true;
201
+ return true;
202
+ }
203
+ });
204
+ } catch (e) {
205
+ // Ignore
262
206
  }
263
-
264
- });
265
- } catch (e) {// Ignore
266
207
  }
267
- }
268
-
269
- return $d2a175ba498dd7834499f256dfb330bc$var$supportsPreventScrollCached;
208
+ return $448ba02dcac1c856$var$supportsPreventScrollCached;
209
+ }
210
+ function $448ba02dcac1c856$var$getScrollableElements(element) {
211
+ var parent = element.parentNode;
212
+ var scrollableElements = [];
213
+ var rootScrollingElement = document.scrollingElement || document.documentElement;
214
+ while(parent instanceof HTMLElement && parent !== rootScrollingElement){
215
+ if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({
216
+ element: parent,
217
+ scrollTop: parent.scrollTop,
218
+ scrollLeft: parent.scrollLeft
219
+ });
220
+ parent = parent.parentNode;
221
+ }
222
+ if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({
223
+ element: rootScrollingElement,
224
+ scrollTop: rootScrollingElement.scrollTop,
225
+ scrollLeft: rootScrollingElement.scrollLeft
226
+ });
227
+ return scrollableElements;
270
228
  }
271
-
272
- function $d2a175ba498dd7834499f256dfb330bc$var$getScrollableElements(element) {
273
- var parent = element.parentNode;
274
- var scrollableElements = [];
275
- var rootScrollingElement = document.scrollingElement || document.documentElement;
276
-
277
- while (parent instanceof HTMLElement && parent !== rootScrollingElement) {
278
- if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) {
279
- scrollableElements.push({
280
- element: parent,
281
- scrollTop: parent.scrollTop,
282
- scrollLeft: parent.scrollLeft
283
- });
229
+ function $448ba02dcac1c856$var$restoreScrollPosition(scrollableElements) {
230
+ for (let { element: element , scrollTop: scrollTop , scrollLeft: scrollLeft } of scrollableElements){
231
+ element.scrollTop = scrollTop;
232
+ element.scrollLeft = scrollLeft;
284
233
  }
234
+ }
285
235
 
286
- parent = parent.parentNode;
287
- }
288
236
 
289
- if (rootScrollingElement instanceof HTMLElement) {
290
- scrollableElements.push({
291
- element: rootScrollingElement,
292
- scrollTop: rootScrollingElement.scrollTop,
293
- scrollLeft: rootScrollingElement.scrollLeft
294
- });
295
- }
237
+ var $391ef47b89fbbdf8$exports = {};
296
238
 
297
- return scrollableElements;
239
+ $parcel$export($391ef47b89fbbdf8$exports, "getOffset", () => $391ef47b89fbbdf8$export$622cea445a1c5b7d);
240
+ function $391ef47b89fbbdf8$export$622cea445a1c5b7d(element, reverse, orientation = 'horizontal') {
241
+ let rect = element.getBoundingClientRect();
242
+ if (reverse) return orientation === 'horizontal' ? rect.right : rect.bottom;
243
+ return orientation === 'horizontal' ? rect.left : rect.top;
298
244
  }
299
245
 
300
- function $d2a175ba498dd7834499f256dfb330bc$var$restoreScrollPosition(scrollableElements) {
301
- for (let {
302
- element,
303
- scrollTop,
304
- scrollLeft
305
- } of scrollableElements) {
306
- element.scrollTop = scrollTop;
307
- element.scrollLeft = scrollLeft;
308
- }
309
- }
310
246
 
311
- function getOffset(element, reverse, orientation) {
312
- if (orientation === void 0) {
313
- orientation = 'horizontal';
314
- }
247
+ var $c570a0a6fa1d588f$exports = {};
315
248
 
316
- let rect = element.getBoundingClientRect();
249
+ $parcel$export($c570a0a6fa1d588f$exports, "clamp", () => $gqa0x$reactstatelyutils.clamp);
250
+ $parcel$export($c570a0a6fa1d588f$exports, "snapValueToStep", () => $gqa0x$reactstatelyutils.snapValueToStep);
317
251
 
318
- if (reverse) {
319
- return orientation === 'horizontal' ? rect.right : rect.bottom;
320
- }
321
252
 
322
- return orientation === 'horizontal' ? rect.left : rect.top;
323
- }
324
253
 
325
- exports.getOffset = getOffset;
254
+ var $4da380280744869b$exports = {};
255
+
256
+ $parcel$export($4da380280744869b$exports, "runAfterTransition", () => $4da380280744869b$export$24490316f764c430);
257
+ /*
258
+ * Copyright 2020 Adobe. All rights reserved.
259
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
260
+ * you may not use this file except in compliance with the License. You may obtain a copy
261
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
262
+ *
263
+ * Unless required by applicable law or agreed to in writing, software distributed under
264
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
265
+ * OF ANY KIND, either express or implied. See the License for the specific language
266
+ * governing permissions and limitations under the License.
267
+ */ // We store a global list of elements that are currently transitioning,
326
268
  // mapped to a set of CSS properties that are transitioning for that element.
327
269
  // This is necessary rather than a simple count of transitions because of browser
328
270
  // bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather
329
271
  // than one or the other. So we need to track what's actually transitioning so that
330
272
  // we can ignore these duplicate events.
331
- let $a39a8553a97349a69bcc0255658c67ab$var$transitionsByElement = new Map(); // A list of callbacks to call once there are no transitioning elements.
332
-
333
- let $a39a8553a97349a69bcc0255658c67ab$var$transitionCallbacks = new Set();
334
-
335
- function $a39a8553a97349a69bcc0255658c67ab$var$setupGlobalEvents() {
336
- if (typeof window === 'undefined') {
337
- return;
338
- }
339
-
340
- let onTransitionStart = e => {
341
- // Add the transitioning property to the list for this element.
342
- let transitions = $a39a8553a97349a69bcc0255658c67ab$var$transitionsByElement.get(e.target);
343
-
344
- if (!transitions) {
345
- transitions = new Set();
346
- $a39a8553a97349a69bcc0255658c67ab$var$transitionsByElement.set(e.target, transitions); // The transitioncancel event must be registered on the element itself, rather than as a global
347
- // event. This enables us to handle when the node is deleted from the document while it is transitioning.
348
- // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.
349
-
350
- e.target.addEventListener('transitioncancel', onTransitionEnd);
351
- }
352
-
353
- transitions.add(e.propertyName);
354
- };
355
-
356
- let onTransitionEnd = e => {
357
- // Remove property from list of transitioning properties.
358
- let properties = $a39a8553a97349a69bcc0255658c67ab$var$transitionsByElement.get(e.target);
359
-
360
- if (!properties) {
361
- return;
362
- }
363
-
364
- properties.delete(e.propertyName); // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.
365
-
366
- if (properties.size === 0) {
367
- e.target.removeEventListener('transitioncancel', onTransitionEnd);
368
- $a39a8553a97349a69bcc0255658c67ab$var$transitionsByElement.delete(e.target);
369
- } // If no transitioning elements, call all of the queued callbacks.
370
-
371
-
372
- if ($a39a8553a97349a69bcc0255658c67ab$var$transitionsByElement.size === 0) {
373
- for (let cb of $a39a8553a97349a69bcc0255658c67ab$var$transitionCallbacks) {
374
- cb();
375
- }
376
-
377
- $a39a8553a97349a69bcc0255658c67ab$var$transitionCallbacks.clear();
378
- }
379
- };
380
-
381
- document.body.addEventListener('transitionrun', onTransitionStart);
382
- document.body.addEventListener('transitionend', onTransitionEnd);
383
- }
384
-
385
- if (typeof document !== 'undefined') {
386
- if (document.readyState !== 'loading') {
387
- $a39a8553a97349a69bcc0255658c67ab$var$setupGlobalEvents();
388
- } else {
389
- document.addEventListener('DOMContentLoaded', $a39a8553a97349a69bcc0255658c67ab$var$setupGlobalEvents);
390
- }
391
- }
392
-
393
- function runAfterTransition(fn) {
394
- // Wait one frame to see if an animation starts, e.g. a transition on mount.
395
- requestAnimationFrame(() => {
396
- // If no transitions are running, call the function immediately.
397
- // Otherwise, add it to a list of callbacks to run at the end of the animation.
398
- if ($a39a8553a97349a69bcc0255658c67ab$var$transitionsByElement.size === 0) {
399
- fn();
400
- } else {
401
- $a39a8553a97349a69bcc0255658c67ab$var$transitionCallbacks.add(fn);
402
- }
403
- });
404
- }
405
-
406
- exports.runAfterTransition = runAfterTransition;
407
- // Keep track of elements that we are currently handling dragging for via useDrag1D.
408
- // If there's an ancestor and a descendant both using useDrag1D(), and the user starts
409
- // dragging the descendant, we don't want useDrag1D events to fire for the ancestor.
410
- const $f9e3d2838685addd749dc9b533488cd5$var$draggingElements = []; // created for splitview, this should be reusable for things like sliders/dials
411
- // It also handles keyboard events on the target allowing for increment/decrement by a given stepsize as well as minifying/maximizing and toggling between minified and previous size
412
- // It can also take a 'reverse' param to say if we should measure from the right/bottom instead of the top/left
413
- // It can also handle either a vertical or horizontal movement, but not both at the same time
414
-
415
- function useDrag1D(props) {
416
- console.warn('useDrag1D is deprecated, please use `useMove` instead https://react-spectrum.adobe.com/react-aria/useMove.html');
417
- let {
418
- containerRef,
419
- reverse,
420
- orientation,
421
- onHover,
422
- onDrag,
423
- onPositionChange,
424
- onIncrement,
425
- onDecrement,
426
- onIncrementToMax,
427
- onDecrementToMin,
428
- onCollapseToggle
429
- } = props;
430
-
431
- let getPosition = e => orientation === 'horizontal' ? e.clientX : e.clientY;
432
-
433
- let getNextOffset = e => {
434
- let containerOffset = getOffset(containerRef.current, reverse, orientation);
435
- let mouseOffset = getPosition(e);
436
- let nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;
437
- return nextOffset;
438
- };
439
-
440
- let dragging = useRef(false);
441
- let prevPosition = useRef(0); // Keep track of the current handlers in a ref so that the events can access them.
442
-
443
- let handlers = useRef({
444
- onPositionChange,
445
- onDrag
446
- });
447
- handlers.current.onDrag = onDrag;
448
- handlers.current.onPositionChange = onPositionChange;
449
-
450
- let onMouseDragged = e => {
451
- e.preventDefault();
452
- let nextOffset = getNextOffset(e);
453
-
454
- if (!dragging.current) {
455
- dragging.current = true;
456
-
457
- if (handlers.current.onDrag) {
458
- handlers.current.onDrag(true);
459
- }
460
-
461
- if (handlers.current.onPositionChange) {
462
- handlers.current.onPositionChange(nextOffset);
463
- }
464
- }
465
-
466
- if (prevPosition.current === nextOffset) {
467
- return;
468
- }
469
-
470
- prevPosition.current = nextOffset;
471
-
472
- if (onPositionChange) {
473
- onPositionChange(nextOffset);
474
- }
475
- };
476
-
477
- let onMouseUp = e => {
478
- const target = e.target;
479
- dragging.current = false;
480
- let nextOffset = getNextOffset(e);
481
-
482
- if (handlers.current.onDrag) {
483
- handlers.current.onDrag(false);
484
- }
485
-
486
- if (handlers.current.onPositionChange) {
487
- handlers.current.onPositionChange(nextOffset);
488
- }
489
-
490
- $f9e3d2838685addd749dc9b533488cd5$var$draggingElements.splice($f9e3d2838685addd749dc9b533488cd5$var$draggingElements.indexOf(target), 1);
491
- window.removeEventListener('mouseup', onMouseUp, false);
492
- window.removeEventListener('mousemove', onMouseDragged, false);
493
- };
494
-
495
- let onMouseDown = e => {
496
- const target = e.currentTarget; // If we're already handling dragging on a descendant with useDrag1D, then
497
- // we don't want to handle the drag motion on this target as well.
498
-
499
- if ($f9e3d2838685addd749dc9b533488cd5$var$draggingElements.some(elt => target.contains(elt))) {
500
- return;
501
- }
502
-
503
- $f9e3d2838685addd749dc9b533488cd5$var$draggingElements.push(target);
504
- window.addEventListener('mousemove', onMouseDragged, false);
505
- window.addEventListener('mouseup', onMouseUp, false);
506
- };
507
-
508
- let onMouseEnter = () => {
509
- if (onHover) {
510
- onHover(true);
511
- }
512
- };
513
-
514
- let onMouseOut = () => {
515
- if (onHover) {
516
- onHover(false);
517
- }
518
- };
519
-
520
- let onKeyDown = e => {
521
- switch (e.key) {
522
- case 'Left':
523
- case 'ArrowLeft':
524
- if (orientation === 'horizontal') {
525
- e.preventDefault();
526
-
527
- if (onDecrement && !reverse) {
528
- onDecrement();
529
- } else if (onIncrement && reverse) {
530
- onIncrement();
531
- }
273
+ let $4da380280744869b$var$transitionsByElement = new Map();
274
+ // A list of callbacks to call once there are no transitioning elements.
275
+ let $4da380280744869b$var$transitionCallbacks = new Set();
276
+ function $4da380280744869b$var$setupGlobalEvents() {
277
+ if (typeof window === 'undefined') return;
278
+ let onTransitionStart = (e)=>{
279
+ // Add the transitioning property to the list for this element.
280
+ let transitions = $4da380280744869b$var$transitionsByElement.get(e.target);
281
+ if (!transitions) {
282
+ transitions = new Set();
283
+ $4da380280744869b$var$transitionsByElement.set(e.target, transitions);
284
+ // The transitioncancel event must be registered on the element itself, rather than as a global
285
+ // event. This enables us to handle when the node is deleted from the document while it is transitioning.
286
+ // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.
287
+ e.target.addEventListener('transitioncancel', onTransitionEnd);
532
288
  }
533
-
534
- break;
535
-
536
- case 'Up':
537
- case 'ArrowUp':
538
- if (orientation === 'vertical') {
539
- e.preventDefault();
540
-
541
- if (onDecrement && !reverse) {
542
- onDecrement();
543
- } else if (onIncrement && reverse) {
544
- onIncrement();
545
- }
289
+ transitions.add(e.propertyName);
290
+ };
291
+ let onTransitionEnd = (e)=>{
292
+ // Remove property from list of transitioning properties.
293
+ let properties = $4da380280744869b$var$transitionsByElement.get(e.target);
294
+ if (!properties) return;
295
+ properties.delete(e.propertyName);
296
+ // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.
297
+ if (properties.size === 0) {
298
+ e.target.removeEventListener('transitioncancel', onTransitionEnd);
299
+ $4da380280744869b$var$transitionsByElement.delete(e.target);
546
300
  }
547
-
548
- break;
549
-
550
- case 'Right':
551
- case 'ArrowRight':
552
- if (orientation === 'horizontal') {
553
- e.preventDefault();
554
-
555
- if (onIncrement && !reverse) {
556
- onIncrement();
557
- } else if (onDecrement && reverse) {
558
- onDecrement();
559
- }
301
+ // If no transitioning elements, call all of the queued callbacks.
302
+ if ($4da380280744869b$var$transitionsByElement.size === 0) {
303
+ for (let cb of $4da380280744869b$var$transitionCallbacks)cb();
304
+ $4da380280744869b$var$transitionCallbacks.clear();
560
305
  }
306
+ };
307
+ document.body.addEventListener('transitionrun', onTransitionStart);
308
+ document.body.addEventListener('transitionend', onTransitionEnd);
309
+ }
310
+ if (typeof document !== 'undefined') {
311
+ if (document.readyState !== 'loading') $4da380280744869b$var$setupGlobalEvents();
312
+ else document.addEventListener('DOMContentLoaded', $4da380280744869b$var$setupGlobalEvents);
313
+ }
314
+ function $4da380280744869b$export$24490316f764c430(fn) {
315
+ // Wait one frame to see if an animation starts, e.g. a transition on mount.
316
+ requestAnimationFrame(()=>{
317
+ // If no transitions are running, call the function immediately.
318
+ // Otherwise, add it to a list of callbacks to run at the end of the animation.
319
+ if ($4da380280744869b$var$transitionsByElement.size === 0) fn();
320
+ else $4da380280744869b$var$transitionCallbacks.add(fn);
321
+ });
322
+ }
561
323
 
562
- break;
563
324
 
564
- case 'Down':
565
- case 'ArrowDown':
566
- if (orientation === 'vertical') {
567
- e.preventDefault();
325
+ var $ca85cc095ee7bdf9$exports = {};
568
326
 
569
- if (onIncrement && !reverse) {
570
- onIncrement();
571
- } else if (onDecrement && reverse) {
572
- onDecrement();
573
- }
574
- }
327
+ $parcel$export($ca85cc095ee7bdf9$exports, "useDrag1D", () => $ca85cc095ee7bdf9$export$7bbed75feba39706);
575
328
 
576
- break;
577
329
 
578
- case 'Home':
330
+ // Keep track of elements that we are currently handling dragging for via useDrag1D.
331
+ // If there's an ancestor and a descendant both using useDrag1D(), and the user starts
332
+ // dragging the descendant, we don't want useDrag1D events to fire for the ancestor.
333
+ const $ca85cc095ee7bdf9$var$draggingElements = [];
334
+ function $ca85cc095ee7bdf9$export$7bbed75feba39706(props) {
335
+ console.warn('useDrag1D is deprecated, please use `useMove` instead https://react-spectrum.adobe.com/react-aria/useMove.html');
336
+ let { containerRef: containerRef , reverse: reverse , orientation: orientation , onHover: onHover , onDrag: onDrag , onPositionChange: onPositionChange , onIncrement: onIncrement , onDecrement: onDecrement , onIncrementToMax: onIncrementToMax , onDecrementToMin: onDecrementToMin , onCollapseToggle: onCollapseToggle } = props;
337
+ let getPosition = (e)=>orientation === 'horizontal' ? e.clientX : e.clientY
338
+ ;
339
+ let getNextOffset = (e)=>{
340
+ let containerOffset = $391ef47b89fbbdf8$export$622cea445a1c5b7d(containerRef.current, reverse, orientation);
341
+ let mouseOffset = getPosition(e);
342
+ let nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;
343
+ return nextOffset;
344
+ };
345
+ let dragging = $gqa0x$react.useRef(false);
346
+ let prevPosition = $gqa0x$react.useRef(0);
347
+ // Keep track of the current handlers in a ref so that the events can access them.
348
+ let handlers = $gqa0x$react.useRef({
349
+ onPositionChange: onPositionChange,
350
+ onDrag: onDrag
351
+ });
352
+ handlers.current.onDrag = onDrag;
353
+ handlers.current.onPositionChange = onPositionChange;
354
+ let onMouseDragged = (e)=>{
579
355
  e.preventDefault();
580
-
581
- if (onDecrementToMin) {
582
- onDecrementToMin();
356
+ let nextOffset = getNextOffset(e);
357
+ if (!dragging.current) {
358
+ dragging.current = true;
359
+ if (handlers.current.onDrag) handlers.current.onDrag(true);
360
+ if (handlers.current.onPositionChange) handlers.current.onPositionChange(nextOffset);
583
361
  }
584
-
585
- break;
586
-
587
- case 'End':
588
- e.preventDefault();
589
-
590
- if (onIncrementToMax) {
591
- onIncrementToMax();
362
+ if (prevPosition.current === nextOffset) return;
363
+ prevPosition.current = nextOffset;
364
+ if (onPositionChange) onPositionChange(nextOffset);
365
+ };
366
+ let onMouseUp = (e)=>{
367
+ const target = e.target;
368
+ dragging.current = false;
369
+ let nextOffset = getNextOffset(e);
370
+ if (handlers.current.onDrag) handlers.current.onDrag(false);
371
+ if (handlers.current.onPositionChange) handlers.current.onPositionChange(nextOffset);
372
+ $ca85cc095ee7bdf9$var$draggingElements.splice($ca85cc095ee7bdf9$var$draggingElements.indexOf(target), 1);
373
+ window.removeEventListener('mouseup', onMouseUp, false);
374
+ window.removeEventListener('mousemove', onMouseDragged, false);
375
+ };
376
+ let onMouseDown = (e)=>{
377
+ const target = e.currentTarget;
378
+ // If we're already handling dragging on a descendant with useDrag1D, then
379
+ // we don't want to handle the drag motion on this target as well.
380
+ if ($ca85cc095ee7bdf9$var$draggingElements.some((elt)=>target.contains(elt)
381
+ )) return;
382
+ $ca85cc095ee7bdf9$var$draggingElements.push(target);
383
+ window.addEventListener('mousemove', onMouseDragged, false);
384
+ window.addEventListener('mouseup', onMouseUp, false);
385
+ };
386
+ let onMouseEnter = ()=>{
387
+ if (onHover) onHover(true);
388
+ };
389
+ let onMouseOut = ()=>{
390
+ if (onHover) onHover(false);
391
+ };
392
+ let onKeyDown = (e)=>{
393
+ switch(e.key){
394
+ case 'Left':
395
+ case 'ArrowLeft':
396
+ if (orientation === 'horizontal') {
397
+ e.preventDefault();
398
+ if (onDecrement && !reverse) onDecrement();
399
+ else if (onIncrement && reverse) onIncrement();
400
+ }
401
+ break;
402
+ case 'Up':
403
+ case 'ArrowUp':
404
+ if (orientation === 'vertical') {
405
+ e.preventDefault();
406
+ if (onDecrement && !reverse) onDecrement();
407
+ else if (onIncrement && reverse) onIncrement();
408
+ }
409
+ break;
410
+ case 'Right':
411
+ case 'ArrowRight':
412
+ if (orientation === 'horizontal') {
413
+ e.preventDefault();
414
+ if (onIncrement && !reverse) onIncrement();
415
+ else if (onDecrement && reverse) onDecrement();
416
+ }
417
+ break;
418
+ case 'Down':
419
+ case 'ArrowDown':
420
+ if (orientation === 'vertical') {
421
+ e.preventDefault();
422
+ if (onIncrement && !reverse) onIncrement();
423
+ else if (onDecrement && reverse) onDecrement();
424
+ }
425
+ break;
426
+ case 'Home':
427
+ e.preventDefault();
428
+ if (onDecrementToMin) onDecrementToMin();
429
+ break;
430
+ case 'End':
431
+ e.preventDefault();
432
+ if (onIncrementToMax) onIncrementToMax();
433
+ break;
434
+ case 'Enter':
435
+ e.preventDefault();
436
+ if (onCollapseToggle) onCollapseToggle();
437
+ break;
592
438
  }
439
+ };
440
+ return {
441
+ onMouseDown: onMouseDown,
442
+ onMouseEnter: onMouseEnter,
443
+ onMouseOut: onMouseOut,
444
+ onKeyDown: onKeyDown
445
+ };
446
+ }
593
447
 
594
- break;
595
-
596
- case 'Enter':
597
- e.preventDefault();
598
448
 
599
- if (onCollapseToggle) {
600
- onCollapseToggle();
601
- }
449
+ var $efa617098dfd7e72$exports = {};
450
+
451
+ $parcel$export($efa617098dfd7e72$exports, "useGlobalListeners", () => $efa617098dfd7e72$export$4eaf04e54aa8eed6);
452
+
453
+ function $efa617098dfd7e72$export$4eaf04e54aa8eed6() {
454
+ let globalListeners = $gqa0x$react.useRef(new Map());
455
+ let addGlobalListener = $gqa0x$react.useCallback((eventTarget, type, listener, options)=>{
456
+ // Make sure we remove the listener after it is called with the `once` option.
457
+ let fn = options?.once ? (...args)=>{
458
+ globalListeners.current.delete(listener);
459
+ listener(...args);
460
+ } : listener;
461
+ globalListeners.current.set(listener, {
462
+ type: type,
463
+ eventTarget: eventTarget,
464
+ fn: fn,
465
+ options: options
466
+ });
467
+ eventTarget.addEventListener(type, listener, options);
468
+ }, []);
469
+ let removeGlobalListener = $gqa0x$react.useCallback((eventTarget, type, listener, options)=>{
470
+ let fn = globalListeners.current.get(listener)?.fn || listener;
471
+ eventTarget.removeEventListener(type, fn, options);
472
+ globalListeners.current.delete(listener);
473
+ }, []);
474
+ let removeAllGlobalListeners = $gqa0x$react.useCallback(()=>{
475
+ globalListeners.current.forEach((value, key)=>{
476
+ removeGlobalListener(value.eventTarget, value.type, key, value.options);
477
+ });
478
+ }, [
479
+ removeGlobalListener
480
+ ]);
481
+ // eslint-disable-next-line arrow-body-style
482
+ $gqa0x$react.useEffect(()=>{
483
+ return removeAllGlobalListeners;
484
+ }, [
485
+ removeAllGlobalListeners
486
+ ]);
487
+ return {
488
+ addGlobalListener: addGlobalListener,
489
+ removeGlobalListener: removeGlobalListener,
490
+ removeAllGlobalListeners: removeAllGlobalListeners
491
+ };
492
+ }
602
493
 
603
- break;
604
- }
605
- };
606
494
 
607
- return {
608
- onMouseDown,
609
- onMouseEnter,
610
- onMouseOut,
611
- onKeyDown
612
- };
495
+ var $e0460f7e24b931b0$exports = {};
496
+
497
+ $parcel$export($e0460f7e24b931b0$exports, "useLabels", () => $e0460f7e24b931b0$export$d6875122194c7b44);
498
+
499
+ function $e0460f7e24b931b0$export$d6875122194c7b44(props, defaultLabel) {
500
+ let { id: id , 'aria-label': label , 'aria-labelledby': labelledBy } = props;
501
+ // If there is both an aria-label and aria-labelledby,
502
+ // combine them by pointing to the element itself.
503
+ id = $dd96e9bc07c5b25f$export$f680877a34711e37(id);
504
+ if (labelledBy && label) {
505
+ let ids = new Set([
506
+ ...labelledBy.trim().split(/\s+/),
507
+ id
508
+ ]);
509
+ labelledBy = [
510
+ ...ids
511
+ ].join(' ');
512
+ } else if (labelledBy) labelledBy = labelledBy.trim().split(/\s+/).join(' ');
513
+ // If no labels are provided, use the default
514
+ if (!label && !labelledBy && defaultLabel) label = defaultLabel;
515
+ return {
516
+ id: id,
517
+ 'aria-label': label,
518
+ 'aria-labelledby': labelledBy
519
+ };
613
520
  }
614
521
 
615
- exports.useDrag1D = useDrag1D;
616
522
 
617
- function useGlobalListeners() {
618
- let globalListeners = useRef(new Map());
619
- let addGlobalListener = useCallback((eventTarget, type, listener, options) => {
620
- globalListeners.current.set(listener, {
621
- type,
622
- eventTarget,
623
- options
624
- });
625
- eventTarget.addEventListener(type, listener, options);
626
- }, []);
627
- let removeGlobalListener = useCallback((eventTarget, type, listener, options) => {
628
- eventTarget.removeEventListener(type, listener, options);
629
- globalListeners.current.delete(listener);
630
- }, []);
631
- let removeAllGlobalListeners = useCallback(() => {
632
- globalListeners.current.forEach((value, key) => {
633
- removeGlobalListener(value.eventTarget, value.type, key, value.options);
634
- });
635
- }, [removeGlobalListener]); // eslint-disable-next-line arrow-body-style
523
+ var $658832d06264448f$exports = {};
636
524
 
637
- useEffect(() => {
638
- return removeAllGlobalListeners;
639
- }, [removeAllGlobalListeners]);
640
- return {
641
- addGlobalListener,
642
- removeGlobalListener,
643
- removeAllGlobalListeners
644
- };
645
- }
525
+ $parcel$export($658832d06264448f$exports, "useObjectRef", () => $658832d06264448f$export$4338b53315abf666);
646
526
 
647
- exports.useGlobalListeners = useGlobalListeners;
648
527
 
649
- /**
650
- * Merges aria-label and aria-labelledby into aria-labelledby when both exist.
651
- * @param props - Aria label props.
652
- * @param defaultLabel - Default value for aria-label when not present.
653
- */
654
- function useLabels(props, defaultLabel) {
655
- let {
656
- id,
657
- 'aria-label': label,
658
- 'aria-labelledby': labelledBy
659
- } = props; // If there is both an aria-label and aria-labelledby,
660
- // combine them by pointing to the element itself.
661
-
662
- id = useId(id);
528
+ function $658832d06264448f$export$4338b53315abf666(forwardedRef) {
529
+ const objRef = $gqa0x$react.useRef();
530
+ /**
531
+ * We're using `useLayoutEffect` here instead of `useEffect` because we want
532
+ * to make sure that the `ref` value is up to date before other places in the
533
+ * the execution cycle try to read it.
534
+ */ $565383b8cde869dd$export$e5c5a5f917a5871c(()=>{
535
+ if (!forwardedRef) return;
536
+ if (typeof forwardedRef === 'function') forwardedRef(objRef.current);
537
+ else forwardedRef.current = objRef.current;
538
+ }, [
539
+ forwardedRef
540
+ ]);
541
+ return objRef;
542
+ }
663
543
 
664
- if (labelledBy && label) {
665
- let ids = new Set([...labelledBy.trim().split(/\s+/), id]);
666
- labelledBy = [...ids].join(' ');
667
- } else if (labelledBy) {
668
- labelledBy = labelledBy.trim().split(/\s+/).join(' ');
669
- } // If no labels are provided, use the default
670
544
 
545
+ var $5f37a52ce85585dd$exports = {};
671
546
 
672
- if (!label && !labelledBy && defaultLabel) {
673
- label = defaultLabel;
674
- }
547
+ $parcel$export($5f37a52ce85585dd$exports, "useUpdateEffect", () => $5f37a52ce85585dd$export$496315a1608d9602);
675
548
 
676
- return {
677
- id,
678
- 'aria-label': label,
679
- 'aria-labelledby': labelledBy
680
- };
549
+ function $5f37a52ce85585dd$export$496315a1608d9602(effect, dependencies) {
550
+ const isInitialMount = $gqa0x$react.useRef(true);
551
+ $gqa0x$react.useEffect(()=>{
552
+ if (isInitialMount.current) isInitialMount.current = false;
553
+ else effect();
554
+ // eslint-disable-next-line react-hooks/exhaustive-deps
555
+ }, dependencies);
681
556
  }
682
557
 
683
- exports.useLabels = useLabels;
684
558
 
685
- // Like useEffect, but only called for updates after the initial render.
686
- function useUpdateEffect(effect, dependencies) {
687
- const isInitialMount = useRef(true);
688
- useEffect(() => {
689
- if (isInitialMount.current) {
690
- isInitialMount.current = false;
691
- } else {
692
- effect();
693
- } // eslint-disable-next-line react-hooks/exhaustive-deps
694
559
 
695
- }, dependencies);
696
- }
560
+ var $3599a41724a37362$exports = {};
697
561
 
698
- exports.useUpdateEffect = useUpdateEffect;
562
+ $parcel$export($3599a41724a37362$exports, "useResizeObserver", () => $3599a41724a37362$export$683480f191c0e3ea);
699
563
 
700
- function $f58f1969071f2661185e38312efabfc$var$hasResizeObserver() {
701
- return typeof window.ResizeObserver !== 'undefined';
564
+ function $3599a41724a37362$var$hasResizeObserver() {
565
+ return typeof window.ResizeObserver !== 'undefined';
566
+ }
567
+ function $3599a41724a37362$export$683480f191c0e3ea(options) {
568
+ const { ref: ref , onResize: onResize } = options;
569
+ $gqa0x$react.useEffect(()=>{
570
+ let element = ref?.current;
571
+ if (!element) return;
572
+ if (!$3599a41724a37362$var$hasResizeObserver()) {
573
+ window.addEventListener('resize', onResize, false);
574
+ return ()=>{
575
+ window.removeEventListener('resize', onResize, false);
576
+ };
577
+ } else {
578
+ const resizeObserverInstance = new window.ResizeObserver((entries)=>{
579
+ if (!entries.length) return;
580
+ onResize();
581
+ });
582
+ resizeObserverInstance.observe(element);
583
+ return ()=>{
584
+ if (element) resizeObserverInstance.unobserve(element);
585
+ };
586
+ }
587
+ }, [
588
+ onResize,
589
+ ref
590
+ ]);
702
591
  }
703
592
 
704
- function useResizeObserver(options) {
705
- const {
706
- ref,
707
- onResize
708
- } = options;
709
- useEffect(() => {
710
- let element = ref == null ? void 0 : ref.current;
711
593
 
712
- if (!element) {
713
- return;
714
- }
594
+ var $c5073b0bf61d031a$exports = {};
715
595
 
716
- if (!$f58f1969071f2661185e38312efabfc$var$hasResizeObserver()) {
717
- window.addEventListener('resize', onResize, false);
718
- return () => {
719
- window.removeEventListener('resize', onResize, false);
720
- };
721
- } else {
722
- const resizeObserverInstance = new window.ResizeObserver(entries => {
723
- if (!entries.length) {
724
- return;
725
- }
596
+ $parcel$export($c5073b0bf61d031a$exports, "useSyncRef", () => $c5073b0bf61d031a$export$4debdb1a3f0fa79e);
726
597
 
727
- onResize();
728
- });
729
- resizeObserverInstance.observe(element);
730
- return () => {
731
- if (element) {
732
- resizeObserverInstance.unobserve(element);
598
+ function $c5073b0bf61d031a$export$4debdb1a3f0fa79e(context, ref) {
599
+ $565383b8cde869dd$export$e5c5a5f917a5871c(()=>{
600
+ if (context && context.ref && ref) {
601
+ context.ref.current = ref.current;
602
+ return ()=>{
603
+ context.ref.current = null;
604
+ };
733
605
  }
734
- };
735
- }
736
- }, [onResize, ref]);
737
- }
738
-
739
- exports.useResizeObserver = useResizeObserver;
740
-
741
- // Syncs ref from context with ref passed to hook
742
- function useSyncRef(context, ref) {
743
- useLayoutEffect(() => {
744
- if (context && context.ref && ref) {
745
- context.ref.current = ref.current;
746
- return () => {
747
- context.ref.current = null;
748
- };
749
- }
750
- }, [context, ref]);
606
+ }, [
607
+ context,
608
+ ref
609
+ ]);
751
610
  }
752
611
 
753
- exports.useSyncRef = useSyncRef;
754
612
 
755
- function getScrollParent(node) {
756
- while (node && !$e9be933e81f272fbb0513fcc706c7$var$isScrollable(node)) {
757
- node = node.parentElement;
758
- }
613
+ var $56cba3ac4ebbec36$exports = {};
759
614
 
760
- return node || document.scrollingElement || document.documentElement;
615
+ $parcel$export($56cba3ac4ebbec36$exports, "getScrollParent", () => $56cba3ac4ebbec36$export$cfa2225e87938781);
616
+ function $56cba3ac4ebbec36$export$cfa2225e87938781(node) {
617
+ while(node && !$56cba3ac4ebbec36$var$isScrollable(node))node = node.parentElement;
618
+ return node || document.scrollingElement || document.documentElement;
761
619
  }
762
-
763
- exports.getScrollParent = getScrollParent;
764
-
765
- function $e9be933e81f272fbb0513fcc706c7$var$isScrollable(node) {
766
- let style = window.getComputedStyle(node);
767
- return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);
620
+ function $56cba3ac4ebbec36$var$isScrollable(node) {
621
+ let style = window.getComputedStyle(node);
622
+ return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);
768
623
  }
769
624
 
770
- // @ts-ignore
771
- let $f1a92c0e19f2e1ad09851454bf93009$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;
772
-
773
- function useViewportSize() {
774
- let [size, setSize] = useState(() => $f1a92c0e19f2e1ad09851454bf93009$var$getViewportSize());
775
- useEffect(() => {
776
- // Use visualViewport api to track available height even on iOS virtual keyboard opening
777
- let onResize = () => {
778
- setSize(size => {
779
- let newSize = $f1a92c0e19f2e1ad09851454bf93009$var$getViewportSize();
780
-
781
- if (newSize.width === size.width && newSize.height === size.height) {
782
- return size;
783
- }
784
625
 
785
- return newSize;
786
- });
787
- };
626
+ var $eda1f9b13ac03ccc$exports = {};
788
627
 
789
- if (!$f1a92c0e19f2e1ad09851454bf93009$var$visualViewport) {
790
- window.addEventListener('resize', onResize);
791
- } else {
792
- $f1a92c0e19f2e1ad09851454bf93009$var$visualViewport.addEventListener('resize', onResize);
793
- }
628
+ $parcel$export($eda1f9b13ac03ccc$exports, "useViewportSize", () => $eda1f9b13ac03ccc$export$d699905dd57c73ca);
794
629
 
795
- return () => {
796
- if (!$f1a92c0e19f2e1ad09851454bf93009$var$visualViewport) {
797
- window.removeEventListener('resize', onResize);
798
- } else {
799
- $f1a92c0e19f2e1ad09851454bf93009$var$visualViewport.removeEventListener('resize', onResize);
800
- }
630
+ // @ts-ignore
631
+ let $eda1f9b13ac03ccc$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;
632
+ function $eda1f9b13ac03ccc$export$d699905dd57c73ca() {
633
+ let [size1, setSize] = $gqa0x$react.useState(()=>$eda1f9b13ac03ccc$var$getViewportSize()
634
+ );
635
+ $gqa0x$react.useEffect(()=>{
636
+ // Use visualViewport api to track available height even on iOS virtual keyboard opening
637
+ let onResize = ()=>{
638
+ setSize((size)=>{
639
+ let newSize = $eda1f9b13ac03ccc$var$getViewportSize();
640
+ if (newSize.width === size.width && newSize.height === size.height) return size;
641
+ return newSize;
642
+ });
643
+ };
644
+ if (!$eda1f9b13ac03ccc$var$visualViewport) window.addEventListener('resize', onResize);
645
+ else $eda1f9b13ac03ccc$var$visualViewport.addEventListener('resize', onResize);
646
+ return ()=>{
647
+ if (!$eda1f9b13ac03ccc$var$visualViewport) window.removeEventListener('resize', onResize);
648
+ else $eda1f9b13ac03ccc$var$visualViewport.removeEventListener('resize', onResize);
649
+ };
650
+ }, []);
651
+ return size1;
652
+ }
653
+ function $eda1f9b13ac03ccc$var$getViewportSize() {
654
+ return {
655
+ width: $eda1f9b13ac03ccc$var$visualViewport?.width || window.innerWidth,
656
+ height: $eda1f9b13ac03ccc$var$visualViewport?.height || window.innerHeight
801
657
  };
802
- }, []);
803
- return size;
804
658
  }
805
659
 
806
- exports.useViewportSize = useViewportSize;
807
660
 
808
- function $f1a92c0e19f2e1ad09851454bf93009$var$getViewportSize() {
809
- return {
810
- width: ($f1a92c0e19f2e1ad09851454bf93009$var$visualViewport == null ? void 0 : $f1a92c0e19f2e1ad09851454bf93009$var$visualViewport.width) || window.innerWidth,
811
- height: ($f1a92c0e19f2e1ad09851454bf93009$var$visualViewport == null ? void 0 : $f1a92c0e19f2e1ad09851454bf93009$var$visualViewport.height) || window.innerHeight
812
- };
661
+ var $fc64a6f8ffc8f0f9$exports = {};
662
+
663
+ $parcel$export($fc64a6f8ffc8f0f9$exports, "useDescription", () => $fc64a6f8ffc8f0f9$export$f8aeda7b10753fa1);
664
+
665
+
666
+ let $fc64a6f8ffc8f0f9$var$descriptionId = 0;
667
+ const $fc64a6f8ffc8f0f9$var$descriptionNodes = new Map();
668
+ function $fc64a6f8ffc8f0f9$export$f8aeda7b10753fa1(description) {
669
+ let [id1, setId] = $gqa0x$react.useState(null);
670
+ $565383b8cde869dd$export$e5c5a5f917a5871c(()=>{
671
+ if (!description) return;
672
+ let desc = $fc64a6f8ffc8f0f9$var$descriptionNodes.get(description);
673
+ if (!desc) {
674
+ let id = `react-aria-description-${$fc64a6f8ffc8f0f9$var$descriptionId++}`;
675
+ setId(id);
676
+ let node = document.createElement('div');
677
+ node.id = id;
678
+ node.style.display = 'none';
679
+ node.textContent = description;
680
+ document.body.appendChild(node);
681
+ desc = {
682
+ refCount: 0,
683
+ element: node
684
+ };
685
+ $fc64a6f8ffc8f0f9$var$descriptionNodes.set(description, desc);
686
+ } else setId(desc.element.id);
687
+ desc.refCount++;
688
+ return ()=>{
689
+ if (--desc.refCount === 0) {
690
+ desc.element.remove();
691
+ $fc64a6f8ffc8f0f9$var$descriptionNodes.delete(description);
692
+ }
693
+ };
694
+ }, [
695
+ description
696
+ ]);
697
+ return {
698
+ 'aria-describedby': description ? id1 : undefined
699
+ };
813
700
  }
814
701
 
815
- let $bd5928122fc632cc7302c36df9f$var$descriptionId = 0;
816
- const $bd5928122fc632cc7302c36df9f$var$descriptionNodes = new Map();
817
702
 
818
- function useDescription(description) {
819
- let [id, setId] = useState(null);
703
+ var $8dce0acd60edf5c8$exports = {};
820
704
 
821
- _useLayoutEffect(() => {
822
- if (!description) {
823
- return;
824
- }
825
-
826
- let desc = $bd5928122fc632cc7302c36df9f$var$descriptionNodes.get(description);
827
-
828
- if (!desc) {
829
- let id = "react-aria-description-" + $bd5928122fc632cc7302c36df9f$var$descriptionId++;
830
- setId(id);
831
- let node = document.createElement('div');
832
- node.id = id;
833
- node.style.display = 'none';
834
- node.textContent = description;
835
- document.body.appendChild(node);
836
- desc = {
837
- refCount: 0,
838
- element: node
839
- };
840
- $bd5928122fc632cc7302c36df9f$var$descriptionNodes.set(description, desc);
841
- } else {
842
- setId(desc.element.id);
843
- }
844
-
845
- desc.refCount++;
846
- return () => {
847
- if (--desc.refCount === 0) {
848
- desc.element.remove();
849
- $bd5928122fc632cc7302c36df9f$var$descriptionNodes.delete(description);
850
- }
851
- };
852
- }, [description]);
853
-
854
- return {
855
- 'aria-describedby': description ? id : undefined
856
- };
705
+ $parcel$export($8dce0acd60edf5c8$exports, "isMac", () => $8dce0acd60edf5c8$export$9ac100e40613ea10);
706
+ $parcel$export($8dce0acd60edf5c8$exports, "isIPhone", () => $8dce0acd60edf5c8$export$186c6964ca17d99);
707
+ $parcel$export($8dce0acd60edf5c8$exports, "isIPad", () => $8dce0acd60edf5c8$export$7bef049ce92e4224);
708
+ $parcel$export($8dce0acd60edf5c8$exports, "isIOS", () => $8dce0acd60edf5c8$export$fedb369cb70207f1);
709
+ $parcel$export($8dce0acd60edf5c8$exports, "isAppleDevice", () => $8dce0acd60edf5c8$export$e1865c3bedcd822b);
710
+ $parcel$export($8dce0acd60edf5c8$exports, "isWebKit", () => $8dce0acd60edf5c8$export$78551043582a6a98);
711
+ $parcel$export($8dce0acd60edf5c8$exports, "isChrome", () => $8dce0acd60edf5c8$export$6446a186d09e379e);
712
+ $parcel$export($8dce0acd60edf5c8$exports, "isAndroid", () => $8dce0acd60edf5c8$export$a11b0059900ceec8);
713
+ /*
714
+ * Copyright 2020 Adobe. All rights reserved.
715
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
716
+ * you may not use this file except in compliance with the License. You may obtain a copy
717
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
718
+ *
719
+ * Unless required by applicable law or agreed to in writing, software distributed under
720
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
721
+ * OF ANY KIND, either express or implied. See the License for the specific language
722
+ * governing permissions and limitations under the License.
723
+ */ function $8dce0acd60edf5c8$var$testUserAgent(re) {
724
+ return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.userAgent) : false;
857
725
  }
858
-
859
- exports.useDescription = useDescription;
860
-
861
- function $ffc9ede5fda79bf280c1bec834e32f$var$testUserAgent(re) {
862
- return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.userAgent) : false;
726
+ function $8dce0acd60edf5c8$var$testPlatform(re) {
727
+ return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.platform) : false;
863
728
  }
864
-
865
- function $ffc9ede5fda79bf280c1bec834e32f$var$testPlatform(re) {
866
- return typeof window !== 'undefined' && window.navigator != null ? re.test(window.navigator.platform) : false;
729
+ function $8dce0acd60edf5c8$export$9ac100e40613ea10() {
730
+ return $8dce0acd60edf5c8$var$testPlatform(/^Mac/);
867
731
  }
868
-
869
- function isMac() {
870
- return $ffc9ede5fda79bf280c1bec834e32f$var$testPlatform(/^Mac/);
732
+ function $8dce0acd60edf5c8$export$186c6964ca17d99() {
733
+ return $8dce0acd60edf5c8$var$testPlatform(/^iPhone/);
871
734
  }
872
-
873
- exports.isMac = isMac;
874
-
875
- function isIPhone() {
876
- return $ffc9ede5fda79bf280c1bec834e32f$var$testPlatform(/^iPhone/);
735
+ function $8dce0acd60edf5c8$export$7bef049ce92e4224() {
736
+ return $8dce0acd60edf5c8$var$testPlatform(/^iPad/) || $8dce0acd60edf5c8$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;
877
737
  }
878
-
879
- exports.isIPhone = isIPhone;
880
-
881
- function isIPad() {
882
- return $ffc9ede5fda79bf280c1bec834e32f$var$testPlatform(/^iPad/) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
883
- isMac() && navigator.maxTouchPoints > 1;
738
+ function $8dce0acd60edf5c8$export$fedb369cb70207f1() {
739
+ return $8dce0acd60edf5c8$export$186c6964ca17d99() || $8dce0acd60edf5c8$export$7bef049ce92e4224();
884
740
  }
885
-
886
- exports.isIPad = isIPad;
887
-
888
- function isIOS() {
889
- return isIPhone() || isIPad();
741
+ function $8dce0acd60edf5c8$export$e1865c3bedcd822b() {
742
+ return $8dce0acd60edf5c8$export$9ac100e40613ea10() || $8dce0acd60edf5c8$export$fedb369cb70207f1();
743
+ }
744
+ function $8dce0acd60edf5c8$export$78551043582a6a98() {
745
+ return $8dce0acd60edf5c8$var$testUserAgent(/AppleWebKit/) && !$8dce0acd60edf5c8$export$6446a186d09e379e();
746
+ }
747
+ function $8dce0acd60edf5c8$export$6446a186d09e379e() {
748
+ return $8dce0acd60edf5c8$var$testUserAgent(/Chrome/);
749
+ }
750
+ function $8dce0acd60edf5c8$export$a11b0059900ceec8() {
751
+ return $8dce0acd60edf5c8$var$testUserAgent(/Android/);
890
752
  }
891
753
 
892
- exports.isIOS = isIOS;
893
754
 
894
- function isAppleDevice() {
895
- return isMac() || isIOS();
896
- }
755
+ var $bc4cfb54fe7e6088$exports = {};
897
756
 
898
- exports.isAppleDevice = isAppleDevice;
757
+ $parcel$export($bc4cfb54fe7e6088$exports, "useEvent", () => $bc4cfb54fe7e6088$export$90fc3a17d93f704c);
899
758
 
900
- function isWebKit() {
901
- return $ffc9ede5fda79bf280c1bec834e32f$var$testUserAgent(/AppleWebKit/) && !isChrome();
759
+ function $bc4cfb54fe7e6088$export$90fc3a17d93f704c(ref, event, handler1, options) {
760
+ let handlerRef = $gqa0x$react.useRef(handler1);
761
+ handlerRef.current = handler1;
762
+ let isDisabled = handler1 == null;
763
+ $gqa0x$react.useEffect(()=>{
764
+ if (isDisabled) return;
765
+ let element = ref.current;
766
+ let handler = (e)=>handlerRef.current.call(this, e)
767
+ ;
768
+ element.addEventListener(event, handler, options);
769
+ return ()=>{
770
+ element.removeEventListener(event, handler, options);
771
+ };
772
+ }, [
773
+ ref,
774
+ event,
775
+ options,
776
+ isDisabled
777
+ ]);
902
778
  }
903
779
 
904
- exports.isWebKit = isWebKit;
905
780
 
906
- function isChrome() {
907
- return $ffc9ede5fda79bf280c1bec834e32f$var$testUserAgent(/Chrome/);
908
- }
781
+ var $789b9514fd01258b$exports = {};
782
+
783
+ $parcel$export($789b9514fd01258b$exports, "useValueEffect", () => $789b9514fd01258b$export$14d238f342723f25);
909
784
 
910
- exports.isChrome = isChrome;
911
785
 
912
- function isAndroid() {
913
- return $ffc9ede5fda79bf280c1bec834e32f$var$testUserAgent(/Android/);
786
+ function $789b9514fd01258b$export$14d238f342723f25(defaultValue) {
787
+ let [value, setValue] = $gqa0x$react.useState(defaultValue);
788
+ let valueRef = $gqa0x$react.useRef(value);
789
+ let effect = $gqa0x$react.useRef(null);
790
+ valueRef.current = value;
791
+ // Store the function in a ref so we can always access the current version
792
+ // which has the proper `value` in scope.
793
+ let nextRef = $gqa0x$react.useRef(null);
794
+ nextRef.current = ()=>{
795
+ // Run the generator to the next yield.
796
+ let newValue = effect.current.next();
797
+ // If the generator is done, reset the effect.
798
+ if (newValue.done) {
799
+ effect.current = null;
800
+ return;
801
+ }
802
+ // If the value is the same as the current value,
803
+ // then continue to the next yield. Otherwise,
804
+ // set the value in state and wait for the next layout effect.
805
+ if (value === newValue.value) nextRef.current();
806
+ else setValue(newValue.value);
807
+ };
808
+ $565383b8cde869dd$export$e5c5a5f917a5871c(()=>{
809
+ // If there is an effect currently running, continue to the next yield.
810
+ if (effect.current) nextRef.current();
811
+ });
812
+ let queue = $gqa0x$react.useCallback((fn)=>{
813
+ effect.current = fn(valueRef.current);
814
+ nextRef.current();
815
+ }, [
816
+ effect,
817
+ nextRef
818
+ ]);
819
+ return [
820
+ value,
821
+ queue
822
+ ];
823
+ }
824
+
825
+
826
+ var $c5c390447fdbf212$exports = {};
827
+
828
+ $parcel$export($c5c390447fdbf212$exports, "scrollIntoView", () => $c5c390447fdbf212$export$53a0910f038337bd);
829
+ function $c5c390447fdbf212$export$53a0910f038337bd(scrollView, element) {
830
+ let offsetX = $c5c390447fdbf212$var$relativeOffset(scrollView, element, 'left');
831
+ let offsetY = $c5c390447fdbf212$var$relativeOffset(scrollView, element, 'top');
832
+ let width = element.offsetWidth;
833
+ let height = element.offsetHeight;
834
+ let x = scrollView.scrollLeft;
835
+ let y = scrollView.scrollTop;
836
+ let maxX = x + scrollView.offsetWidth;
837
+ let maxY = y + scrollView.offsetHeight;
838
+ if (offsetX <= x) x = offsetX;
839
+ else if (offsetX + width > maxX) x += offsetX + width - maxX;
840
+ if (offsetY <= y) y = offsetY;
841
+ else if (offsetY + height > maxY) y += offsetY + height - maxY;
842
+ scrollView.scrollLeft = x;
843
+ scrollView.scrollTop = y;
914
844
  }
845
+ /**
846
+ * Computes the offset left or top from child to ancestor by accumulating
847
+ * offsetLeft or offsetTop through intervening offsetParents.
848
+ */ function $c5c390447fdbf212$var$relativeOffset(ancestor, child, axis) {
849
+ const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';
850
+ let sum = 0;
851
+ while(child.offsetParent){
852
+ sum += child[prop];
853
+ if (child.offsetParent === ancestor) break;
854
+ else if (child.offsetParent.contains(ancestor)) {
855
+ // If the ancestor is not `position:relative`, then we stop at
856
+ // _its_ offset parent, and we subtract off _its_ offset, so that
857
+ // we end up with the proper offset from child to ancestor.
858
+ sum -= ancestor[prop];
859
+ break;
860
+ }
861
+ child = child.offsetParent;
862
+ }
863
+ return sum;
864
+ }
865
+
866
+
867
+ $parcel$exportWildcard(module.exports, $dd96e9bc07c5b25f$exports);
868
+ $parcel$exportWildcard(module.exports, $5172289b7a1cda90$exports);
869
+ $parcel$exportWildcard(module.exports, $ee1eca53264e4e21$exports);
870
+ $parcel$exportWildcard(module.exports, $2f71b7bbfef4ef86$exports);
871
+ $parcel$exportWildcard(module.exports, $448ba02dcac1c856$exports);
872
+ $parcel$exportWildcard(module.exports, $391ef47b89fbbdf8$exports);
873
+ $parcel$exportWildcard(module.exports, $c570a0a6fa1d588f$exports);
874
+ $parcel$exportWildcard(module.exports, $4da380280744869b$exports);
875
+ $parcel$exportWildcard(module.exports, $ca85cc095ee7bdf9$exports);
876
+ $parcel$exportWildcard(module.exports, $efa617098dfd7e72$exports);
877
+ $parcel$exportWildcard(module.exports, $e0460f7e24b931b0$exports);
878
+ $parcel$exportWildcard(module.exports, $658832d06264448f$exports);
879
+ $parcel$exportWildcard(module.exports, $5f37a52ce85585dd$exports);
880
+ $parcel$exportWildcard(module.exports, $565383b8cde869dd$exports);
881
+ $parcel$exportWildcard(module.exports, $3599a41724a37362$exports);
882
+ $parcel$exportWildcard(module.exports, $c5073b0bf61d031a$exports);
883
+ $parcel$exportWildcard(module.exports, $56cba3ac4ebbec36$exports);
884
+ $parcel$exportWildcard(module.exports, $eda1f9b13ac03ccc$exports);
885
+ $parcel$exportWildcard(module.exports, $fc64a6f8ffc8f0f9$exports);
886
+ $parcel$exportWildcard(module.exports, $8dce0acd60edf5c8$exports);
887
+ $parcel$exportWildcard(module.exports, $bc4cfb54fe7e6088$exports);
888
+ $parcel$exportWildcard(module.exports, $789b9514fd01258b$exports);
889
+ $parcel$exportWildcard(module.exports, $c5c390447fdbf212$exports);
890
+
915
891
 
916
- exports.isAndroid = isAndroid;
917
892
  //# sourceMappingURL=main.js.map