@react-aria/selection 3.0.0-alpha.1 → 3.0.0-nightly-641446f65-240905

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 (53) hide show
  1. package/README.md +1 -1
  2. package/dist/DOMLayoutDelegate.main.js +53 -0
  3. package/dist/DOMLayoutDelegate.main.js.map +1 -0
  4. package/dist/DOMLayoutDelegate.mjs +48 -0
  5. package/dist/DOMLayoutDelegate.module.js +48 -0
  6. package/dist/DOMLayoutDelegate.module.js.map +1 -0
  7. package/dist/ListKeyboardDelegate.main.js +189 -0
  8. package/dist/ListKeyboardDelegate.main.js.map +1 -0
  9. package/dist/ListKeyboardDelegate.mjs +184 -0
  10. package/dist/ListKeyboardDelegate.module.js +184 -0
  11. package/dist/ListKeyboardDelegate.module.js.map +1 -0
  12. package/dist/import.mjs +27 -0
  13. package/dist/main.js +16 -608
  14. package/dist/main.js.map +1 -0
  15. package/dist/module.js +9 -563
  16. package/dist/module.js.map +1 -0
  17. package/dist/types.d.ts +218 -30
  18. package/dist/types.d.ts.map +1 -1
  19. package/dist/useSelectableCollection.main.js +318 -0
  20. package/dist/useSelectableCollection.main.js.map +1 -0
  21. package/dist/useSelectableCollection.mjs +313 -0
  22. package/dist/useSelectableCollection.module.js +313 -0
  23. package/dist/useSelectableCollection.module.js.map +1 -0
  24. package/dist/useSelectableItem.main.js +213 -0
  25. package/dist/useSelectableItem.main.js.map +1 -0
  26. package/dist/useSelectableItem.mjs +208 -0
  27. package/dist/useSelectableItem.module.js +208 -0
  28. package/dist/useSelectableItem.module.js.map +1 -0
  29. package/dist/useSelectableList.main.js +63 -0
  30. package/dist/useSelectableList.main.js.map +1 -0
  31. package/dist/useSelectableList.mjs +58 -0
  32. package/dist/useSelectableList.module.js +58 -0
  33. package/dist/useSelectableList.module.js.map +1 -0
  34. package/dist/useTypeSelect.main.js +73 -0
  35. package/dist/useTypeSelect.main.js.map +1 -0
  36. package/dist/useTypeSelect.mjs +68 -0
  37. package/dist/useTypeSelect.module.js +68 -0
  38. package/dist/useTypeSelect.module.js.map +1 -0
  39. package/dist/utils.main.js +32 -0
  40. package/dist/utils.main.js.map +1 -0
  41. package/dist/utils.mjs +26 -0
  42. package/dist/utils.module.js +26 -0
  43. package/dist/utils.module.js.map +1 -0
  44. package/package.json +20 -13
  45. package/src/DOMLayoutDelegate.ts +57 -0
  46. package/src/ListKeyboardDelegate.ts +288 -0
  47. package/src/index.ts +23 -0
  48. package/src/useSelectableCollection.ts +490 -0
  49. package/src/useSelectableItem.ts +374 -0
  50. package/src/useSelectableList.ts +85 -0
  51. package/src/useTypeSelect.ts +114 -0
  52. package/src/utils.ts +33 -0
  53. package/LICENSE +0 -201
package/dist/module.js CHANGED
@@ -1,370 +1,9 @@
1
- import { useEffect, useRef, useMemo } from "react";
2
- import { mergeProps, focusWithoutScrolling } from "@react-aria/utils";
3
- import _babelRuntimeHelpersEsmDefineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- import { useCollator } from "@react-aria/i18n";
5
- export function useTypeSelect(options) {
6
- let {
7
- keyboardDelegate,
8
- selectionManager,
9
- onTypeSelect
10
- } = options;
11
- let state = useRef({
12
- search: '',
13
- timeout: null
14
- }).current;
15
-
16
- let onKeyDown = e => {
17
- let character = $c52757753013b75867e6437272e1c64e$var$getStringForKey(e.key);
18
-
19
- if (!character) {
20
- return;
21
- }
22
-
23
- state.search += character; // Use the delegate to find a key to focus.
24
- // Prioritize items after the currently focused item, falling back to searching the whole list.
25
-
26
- let key = keyboardDelegate.getKeyForSearch(state.search, selectionManager.focusedKey);
27
-
28
- if (!key) {
29
- key = keyboardDelegate.getKeyForSearch(state.search);
30
- }
31
-
32
- if (key) {
33
- selectionManager.setFocusedKey(key);
34
-
35
- if (onTypeSelect) {
36
- onTypeSelect(key);
37
- }
38
- }
39
-
40
- clearTimeout(state.timeout);
41
- state.timeout = setTimeout(() => {
42
- state.search = '';
43
- }, 500);
44
- };
45
-
46
- return {
47
- typeSelectProps: {
48
- onKeyDown: keyboardDelegate.getKeyForSearch ? onKeyDown : null
49
- }
50
- };
51
- }
52
-
53
- function $c52757753013b75867e6437272e1c64e$var$getStringForKey(key) {
54
- // If the key is of length 1, it is an ASCII value.
55
- // Otherwise, if there are no ASCII characters in the key name,
56
- // it is a Unicode character.
57
- // See https://www.w3.org/TR/uievents-key/
58
- if (key.length === 1 || !/^[A-Z]/i.test(key)) {
59
- return key;
60
- }
61
-
62
- return '';
63
- }
64
-
65
- const $bcc7c0067661ae56b1d5dd7c698d093$var$isMac = typeof window !== 'undefined' && window.navigator != null ? /^Mac/.test(window.navigator.platform) : false;
66
-
67
- function $bcc7c0067661ae56b1d5dd7c698d093$var$isCtrlKeyPressed(e) {
68
- if ($bcc7c0067661ae56b1d5dd7c698d093$var$isMac) {
69
- return e.metaKey;
70
- }
71
-
72
- return e.ctrlKey;
73
- }
74
-
75
- export function useSelectableCollection(options) {
76
- let {
77
- selectionManager: manager,
78
- keyboardDelegate: delegate,
79
- autoFocus = false,
80
- shouldFocusWrap = false,
81
- disallowEmptySelection = false,
82
- disallowSelectAll = false
83
- } = options;
84
-
85
- let onKeyDown = e => {
86
- switch (e.key) {
87
- case 'ArrowDown':
88
- {
89
- if (delegate.getKeyBelow) {
90
- e.preventDefault();
91
- let nextKey = delegate.getKeyBelow(manager.focusedKey);
92
-
93
- if (nextKey) {
94
- manager.setFocusedKey(nextKey);
95
- } else if (shouldFocusWrap) {
96
- manager.setFocusedKey(delegate.getFirstKey());
97
- }
98
-
99
- if (e.shiftKey && manager.selectionMode === 'multiple') {
100
- manager.extendSelection(nextKey);
101
- }
102
- }
103
-
104
- break;
105
- }
106
-
107
- case 'ArrowUp':
108
- {
109
- if (delegate.getKeyAbove) {
110
- e.preventDefault();
111
- let nextKey = delegate.getKeyAbove(manager.focusedKey);
112
-
113
- if (nextKey) {
114
- manager.setFocusedKey(nextKey);
115
- } else if (shouldFocusWrap) {
116
- manager.setFocusedKey(delegate.getLastKey());
117
- }
118
-
119
- if (e.shiftKey && manager.selectionMode === 'multiple') {
120
- manager.extendSelection(nextKey);
121
- }
122
- }
123
-
124
- break;
125
- }
126
-
127
- case 'ArrowLeft':
128
- {
129
- if (delegate.getKeyLeftOf) {
130
- e.preventDefault();
131
- let nextKey = delegate.getKeyLeftOf(manager.focusedKey);
132
-
133
- if (nextKey) {
134
- manager.setFocusedKey(nextKey);
135
- }
136
-
137
- if (e.shiftKey && manager.selectionMode === 'multiple') {
138
- manager.extendSelection(nextKey);
139
- }
140
- }
141
-
142
- break;
143
- }
144
-
145
- case 'ArrowRight':
146
- {
147
- if (delegate.getKeyRightOf) {
148
- e.preventDefault();
149
- let nextKey = delegate.getKeyRightOf(manager.focusedKey);
150
-
151
- if (nextKey) {
152
- manager.setFocusedKey(nextKey);
153
- }
154
-
155
- if (e.shiftKey && manager.selectionMode === 'multiple') {
156
- manager.extendSelection(nextKey);
157
- }
158
- }
159
-
160
- break;
161
- }
162
-
163
- case 'Home':
164
- if (delegate.getFirstKey) {
165
- e.preventDefault();
166
- let firstKey = delegate.getFirstKey();
167
- manager.setFocusedKey(firstKey);
168
-
169
- if ($bcc7c0067661ae56b1d5dd7c698d093$var$isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {
170
- manager.extendSelection(firstKey);
171
- }
172
- }
173
-
174
- break;
175
-
176
- case 'End':
177
- if (delegate.getLastKey) {
178
- e.preventDefault();
179
- let lastKey = delegate.getLastKey();
180
- manager.setFocusedKey(lastKey);
181
-
182
- if ($bcc7c0067661ae56b1d5dd7c698d093$var$isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode === 'multiple') {
183
- manager.extendSelection(lastKey);
184
- }
185
- }
186
-
187
- break;
188
-
189
- case 'PageDown':
190
- if (delegate.getKeyPageBelow) {
191
- e.preventDefault();
192
- let nextKey = delegate.getKeyPageBelow(manager.focusedKey);
193
-
194
- if (nextKey) {
195
- manager.setFocusedKey(nextKey);
196
-
197
- if (e.shiftKey && manager.selectionMode === 'multiple') {
198
- manager.extendSelection(nextKey);
199
- }
200
- }
201
- }
202
-
203
- break;
204
-
205
- case 'PageUp':
206
- if (delegate.getKeyPageAbove) {
207
- e.preventDefault();
208
- let nextKey = delegate.getKeyPageAbove(manager.focusedKey);
209
-
210
- if (nextKey) {
211
- manager.setFocusedKey(nextKey);
212
-
213
- if (e.shiftKey && manager.selectionMode === 'multiple') {
214
- manager.extendSelection(nextKey);
215
- }
216
- }
217
- }
218
-
219
- break;
220
-
221
- case 'a':
222
- if ($bcc7c0067661ae56b1d5dd7c698d093$var$isCtrlKeyPressed(e) && manager.selectionMode === 'multiple' && disallowSelectAll !== true) {
223
- e.preventDefault();
224
- manager.selectAll();
225
- }
226
-
227
- break;
228
-
229
- case 'Escape':
230
- e.preventDefault();
231
-
232
- if (!disallowEmptySelection) {
233
- manager.clearSelection();
234
- }
235
-
236
- break;
237
- }
238
- };
239
-
240
- let onFocus = e => {
241
- manager.setFocused(true);
242
-
243
- if (manager.focusedKey == null && e.target === e.currentTarget) {
244
- // If the user hasn't yet interacted with the collection, there will be no focusedKey set.
245
- // Attempt to detect whether the user is tabbing forward or backward into the collection
246
- // and either focus the first or last item accordingly.
247
- let relatedTarget = e.relatedTarget;
248
-
249
- if (relatedTarget && e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING) {
250
- manager.setFocusedKey(delegate.getLastKey());
251
- } else {
252
- manager.setFocusedKey(delegate.getFirstKey());
253
- }
254
- }
255
- };
256
-
257
- let onBlur = () => {
258
- manager.setFocused(false);
259
- };
260
-
261
- useEffect(() => {
262
- if (autoFocus) {
263
- manager.setFocused(true); // By default, select first item for focus target
264
-
265
- let focusedKey = delegate.getFirstKey();
266
- let selectedKeys = manager.selectedKeys; // Set the last item as the new focus target if autoFocus is 'last' (i.e. ArrowUp opening the menu)
267
-
268
- if (autoFocus === 'last') {
269
- focusedKey = delegate.getLastKey();
270
- } // If there are any selected keys, make the first one the new focus target
271
-
272
-
273
- if (selectedKeys.size) {
274
- focusedKey = selectedKeys.values().next().value;
275
- }
276
-
277
- manager.setFocusedKey(focusedKey);
278
- } // eslint-disable-next-line react-hooks/exhaustive-deps
279
-
280
- }, []);
281
- let {
282
- typeSelectProps
283
- } = useTypeSelect({
284
- keyboardDelegate: delegate,
285
- selectionManager: manager
286
- });
287
- return {
288
- collectionProps: mergeProps(typeSelectProps, {
289
- onKeyDown,
290
- onFocus,
291
- onBlur
292
- })
293
- };
294
- }
295
- export function useSelectableItem(options) {
296
- let {
297
- selectionManager: manager,
298
- itemKey,
299
- itemRef,
300
- shouldSelectOnPressUp,
301
- isVirtualized
302
- } = options;
303
-
304
- let onSelect = e => {
305
- if (manager.selectionMode === 'none') {
306
- return;
307
- }
308
-
309
- if (manager.selectionMode === 'single') {
310
- if (manager.selectedKeys.has(itemKey)) {
311
- manager.toggleSelection(itemKey);
312
- } else {
313
- manager.replaceSelection(itemKey);
314
- }
315
- } else if (e.shiftKey) {
316
- manager.extendSelection(itemKey);
317
- } else if (manager) {
318
- manager.toggleSelection(itemKey);
319
- }
320
- }; // Focus the associated DOM node when this item becomes the focusedKey
321
-
322
-
323
- let isFocused = itemKey === manager.focusedKey;
324
- useEffect(() => {
325
- if (isFocused && manager.isFocused && document.activeElement !== itemRef.current) {
326
- focusWithoutScrolling(itemRef.current);
327
- }
328
- }, [itemRef, isFocused, manager.focusedKey, manager.isFocused]);
329
- let itemProps = {
330
- tabIndex: isFocused ? 0 : -1,
331
-
332
- onFocus() {
333
- manager.setFocusedKey(itemKey);
334
- }
335
-
336
- }; // By default, selection occurs on pointer down. This can be strange if selecting an
337
- // item causes the UI to disappear immediately (e.g. menuts).
338
- // If shouldSelectOnPressUp is true, we use onPressUp instead of onPressStart.
339
- // onPress requires a pointer down event on the same element as pointer up. For menus,
340
- // we want to be able to have the pointer down on the trigger that opens the menu and
341
- // the pointer up on the menu item rather than requiring a separate press.
342
- // For keyboard events, selection still occurrs on key down.
343
-
344
- if (shouldSelectOnPressUp) {
345
- itemProps.onPressStart = e => {
346
- if (e.pointerType === 'keyboard') {
347
- onSelect(e);
348
- }
349
- };
350
-
351
- itemProps.onPressUp = e => {
352
- if (e.pointerType !== 'keyboard') {
353
- onSelect(e);
354
- }
355
- };
356
- } else {
357
- itemProps.onPressStart = onSelect;
358
- }
359
-
360
- if (!isVirtualized) {
361
- itemProps['data-key'] = itemKey;
362
- }
363
-
364
- return {
365
- itemProps
366
- };
367
- }
1
+ import {useSelectableCollection as $ae20dd8cbca75726$export$d6daf82dcd84e87c} from "./useSelectableCollection.module.js";
2
+ import {useSelectableItem as $880e95eb8b93ba9a$export$ecf600387e221c37} from "./useSelectableItem.module.js";
3
+ import {useSelectableList as $982254629710d113$export$b95089534ab7c1fd} from "./useSelectableList.module.js";
4
+ import {ListKeyboardDelegate as $2a25aae57d74318e$export$a05409b8bb224a5a} from "./ListKeyboardDelegate.module.js";
5
+ import {DOMLayoutDelegate as $657e4dc4a6e88df0$export$8f5ed9ff9f511381} from "./DOMLayoutDelegate.module.js";
6
+ import {useTypeSelect as $fb3050f43d946246$export$e32c88dfddc6e1d8} from "./useTypeSelect.module.js";
368
7
 
369
8
  /*
370
9
  * Copyright 2020 Adobe. All rights reserved.
@@ -376,206 +15,13 @@ export function useSelectableItem(options) {
376
15
  * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
377
16
  * OF ANY KIND, either express or implied. See the License for the specific language
378
17
  * governing permissions and limitations under the License.
379
- */
380
- export class ListKeyboardDelegate {
381
- constructor(collection, ref, collator) {
382
- _babelRuntimeHelpersEsmDefineProperty(this, "collection", void 0);
383
-
384
- _babelRuntimeHelpersEsmDefineProperty(this, "ref", void 0);
385
-
386
- _babelRuntimeHelpersEsmDefineProperty(this, "collator", void 0);
387
-
388
- this.collection = collection;
389
- this.ref = ref;
390
- this.collator = collator;
391
- }
392
-
393
- getKeyBelow(key) {
394
- key = this.collection.getKeyAfter(key);
395
-
396
- while (key) {
397
- let item = this.collection.getItem(key);
398
-
399
- if (item.type === 'item' && !item.isDisabled) {
400
- return key;
401
- }
402
-
403
- key = this.collection.getKeyAfter(key);
404
- }
405
- }
406
-
407
- getKeyAbove(key) {
408
- key = this.collection.getKeyBefore(key);
409
-
410
- while (key) {
411
- let item = this.collection.getItem(key);
412
-
413
- if (item.type === 'item' && !item.isDisabled) {
414
- return key;
415
- }
416
-
417
- key = this.collection.getKeyBefore(key);
418
- }
419
- }
420
-
421
- getFirstKey() {
422
- let key = this.collection.getFirstKey();
423
-
424
- while (key) {
425
- let item = this.collection.getItem(key);
426
-
427
- if (item.type === 'item' && !item.isDisabled) {
428
- return key;
429
- }
430
-
431
- key = this.collection.getKeyAfter(key);
432
- }
433
- }
434
-
435
- getLastKey() {
436
- let key = this.collection.getLastKey();
437
-
438
- while (key) {
439
- let item = this.collection.getItem(key);
440
-
441
- if (item.type === 'item' && !item.isDisabled) {
442
- return key;
443
- }
444
-
445
- key = this.collection.getKeyBefore(key);
446
- }
447
- }
448
-
449
- getItem(key) {
450
- return this.ref.current.querySelector("[data-key=\"".concat(key, "\"]"));
451
- }
452
-
453
- getKeyPageAbove(key) {
454
- let menu = this.ref.current;
455
- let item = this.getItem(key);
456
-
457
- if (!item) {
458
- return null;
459
- }
460
-
461
- let pageY = Math.max(0, item.offsetTop + item.offsetHeight - menu.offsetHeight);
462
-
463
- while (item && item.offsetTop > pageY) {
464
- key = this.getKeyAbove(key);
465
- item = this.getItem(key);
466
- }
467
-
468
- return key;
469
- }
470
-
471
- getKeyPageBelow(key) {
472
- let menu = this.ref.current;
473
- let item = this.getItem(key);
474
-
475
- if (!item) {
476
- return null;
477
- }
478
-
479
- let pageY = Math.min(menu.scrollHeight, item.offsetTop - item.offsetHeight + menu.offsetHeight);
480
-
481
- while (item && item.offsetTop < pageY) {
482
- key = this.getKeyBelow(key);
483
- item = this.getItem(key);
484
- }
485
-
486
- return key;
487
- }
488
-
489
- getKeyForSearch(search, fromKey) {
490
- if (!this.collator) {
491
- return null;
492
- }
493
-
494
- let collection = this.collection;
495
- let key = fromKey ? this.getKeyBelow(fromKey) : this.getFirstKey();
496
-
497
- while (key) {
498
- let item = collection.getItem(key);
499
- let substring = item.textValue.slice(0, search.length);
500
-
501
- if (item.textValue && this.collator.compare(substring, search) === 0) {
502
- return key;
503
- }
504
-
505
- key = this.getKeyBelow(key);
506
- }
507
-
508
- return null;
509
- }
510
-
511
- }
512
- export function useSelectableList(props) {
513
- let {
514
- selectionManager,
515
- collection,
516
- ref,
517
- keyboardDelegate,
518
- autoFocus,
519
- shouldFocusWrap,
520
- isVirtualized,
521
- disallowEmptySelection
522
- } = props; // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).
523
- // When virtualized, the layout object will be passed in as a prop and override this.
18
+ */
524
19
 
525
- let collator = useCollator({
526
- usage: 'search',
527
- sensitivity: 'base'
528
- });
529
- let delegate = useMemo(() => keyboardDelegate || new ListKeyboardDelegate(collection, ref, collator), [keyboardDelegate, collection, ref, collator]); // If not virtualized, scroll the focused element into view when the focusedKey changes.
530
- // When virtualized, CollectionView handles this internally.
531
20
 
532
- useEffect(() => {
533
- if (!isVirtualized && selectionManager.focusedKey) {
534
- let element = ref.current.querySelector("[data-key=\"".concat(selectionManager.focusedKey, "\"]"));
535
21
 
536
- if (element) {
537
- $d628da5f2816d7464aa7d4edf8d3eb81$var$scrollIntoView(ref.current, element);
538
- }
539
- }
540
- }, [isVirtualized, ref, selectionManager.focusedKey]);
541
- let {
542
- collectionProps
543
- } = useSelectableCollection({
544
- selectionManager,
545
- keyboardDelegate: delegate,
546
- autoFocus,
547
- shouldFocusWrap,
548
- disallowEmptySelection
549
- });
550
- return {
551
- listProps: collectionProps
552
- };
553
- } // Scrolls `scrollView` so that `element` is visible.
554
- // Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),
555
- // but doesn't affect parents above `scrollView`.
556
22
 
557
- function $d628da5f2816d7464aa7d4edf8d3eb81$var$scrollIntoView(scrollView, element) {
558
- let offsetX = element.offsetLeft - scrollView.offsetLeft;
559
- let offsetY = element.offsetTop - scrollView.offsetTop;
560
- let width = element.offsetWidth;
561
- let height = element.offsetHeight;
562
- let x = scrollView.scrollLeft;
563
- let y = scrollView.scrollTop;
564
- let maxX = x + scrollView.offsetWidth;
565
- let maxY = y + scrollView.offsetHeight;
566
23
 
567
- if (offsetX <= x) {
568
- x = offsetX;
569
- } else if (offsetX + width > maxX) {
570
- x += offsetX + width - maxX;
571
- }
572
24
 
573
- if (offsetY <= y) {
574
- y = offsetY;
575
- } else if (offsetY + height > maxY) {
576
- y += offsetY + height - maxY;
577
- }
578
25
 
579
- scrollView.scrollLeft = x;
580
- scrollView.scrollTop = y;
581
- }
26
+ export {$ae20dd8cbca75726$export$d6daf82dcd84e87c as useSelectableCollection, $880e95eb8b93ba9a$export$ecf600387e221c37 as useSelectableItem, $982254629710d113$export$b95089534ab7c1fd as useSelectableList, $2a25aae57d74318e$export$a05409b8bb224a5a as ListKeyboardDelegate, $657e4dc4a6e88df0$export$8f5ed9ff9f511381 as DOMLayoutDelegate, $fb3050f43d946246$export$e32c88dfddc6e1d8 as useTypeSelect};
27
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;AAAA;;;;;;;;;;CAUC","sources":["packages/@react-aria/selection/src/index.ts"],"sourcesContent":["/*\n * Copyright 2020 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\nexport {useSelectableCollection} from './useSelectableCollection';\nexport {useSelectableItem} from './useSelectableItem';\nexport {useSelectableList} from './useSelectableList';\nexport {ListKeyboardDelegate} from './ListKeyboardDelegate';\nexport {DOMLayoutDelegate} from './DOMLayoutDelegate';\nexport {useTypeSelect} from './useTypeSelect';\n\nexport type {AriaSelectableCollectionOptions, SelectableCollectionAria} from './useSelectableCollection';\nexport type {AriaSelectableListOptions, SelectableListAria} from './useSelectableList';\nexport type {SelectableItemOptions, SelectableItemStates, SelectableItemAria} from './useSelectableItem';\nexport type {AriaTypeSelectOptions, TypeSelectAria} from './useTypeSelect';\n"],"names":[],"version":3,"file":"module.js.map"}